Merge pull request #1870 from saper/langinfo_h
authorRodrigo Kumpera <kumpera@gmail.com>
Mon, 17 Aug 2015 13:39:49 +0000 (09:39 -0400)
committerRodrigo Kumpera <kumpera@gmail.com>
Mon, 17 Aug 2015 13:39:49 +0000 (09:39 -0400)
[eglib] Prefer <langinfo.h> to <localcharset.h>

1462 files changed:
.gitignore
.gitmodules
Makefile.am
configure.ac
data/config.in
data/lock-decoder/LockTracerDecoder.cs
data/mono-nunit.pc.in
docs/Makefile.am
eglib/configure.ac
eglib/src/eglib-config.h.in
eglib/src/gmisc-unix.c
eglib/src/gspawn.c
external/Lucene.Net [deleted submodule]
external/Lucene.Net.Light [new submodule]
external/binary-reference-assemblies
external/referencesource
ikvm-native/Makefile.am
man/mono.1
man/mprof-report.1
mcs/Makefile
mcs/build/Makefile
mcs/build/common/Consts.cs.in
mcs/build/config-default.make
mcs/build/gensources.sh
mcs/build/library.make
mcs/build/profiles/monotouch.make
mcs/build/profiles/monotouch_runtime.make
mcs/build/profiles/monotouch_watch.make [new file with mode: 0644]
mcs/build/profiles/net_4_5.make [deleted file]
mcs/build/profiles/net_4_x.make [new file with mode: 0644]
mcs/build/profiles/xammac.make
mcs/build/profiles/xammac_net_4_5.make [new file with mode: 0644]
mcs/build/profiles/xbuild_12.make
mcs/build/profiles/xbuild_14.make
mcs/class/Facades/Makefile
mcs/class/Facades/Microsoft.Win32.Primitives/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/Microsoft.Win32.Primitives/Makefile [new file with mode: 0644]
mcs/class/Facades/Microsoft.Win32.Primitives/Microsoft.Win32.Primitives.dll.sources [new file with mode: 0644]
mcs/class/Facades/Microsoft.Win32.Primitives/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/Microsoft.Win32.Registry.AccessControl/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/Microsoft.Win32.Registry.AccessControl/Makefile [new file with mode: 0644]
mcs/class/Facades/Microsoft.Win32.Registry.AccessControl/Microsoft.Win32.Registry.AccessControl.dll.sources [new file with mode: 0644]
mcs/class/Facades/Microsoft.Win32.Registry.AccessControl/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/Microsoft.Win32.Registry/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/Microsoft.Win32.Registry/Makefile [new file with mode: 0644]
mcs/class/Facades/Microsoft.Win32.Registry/Microsoft.Win32.Registry.dll.sources [new file with mode: 0644]
mcs/class/Facades/Microsoft.Win32.Registry/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.AppContext/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.AppContext/Makefile [new file with mode: 0644]
mcs/class/Facades/System.AppContext/System.AppContext.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.AppContext/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Collections.Concurrent/_Makefile [new file with mode: 0644]
mcs/class/Facades/System.Collections.NonGeneric/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Collections.NonGeneric/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Collections.NonGeneric/System.Collections.NonGeneric.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Collections.NonGeneric/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Collections.Specialized/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Collections.Specialized/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Collections.Specialized/System.Collections.Specialized.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Collections.Specialized/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Collections/TypeForwarders.cs
mcs/class/Facades/System.ComponentModel.Annotations/TypeForwarders.cs
mcs/class/Facades/System.ComponentModel.EventBasedAsync/TypeForwarders.cs
mcs/class/Facades/System.ComponentModel.Primitives/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.ComponentModel.Primitives/Makefile [new file with mode: 0644]
mcs/class/Facades/System.ComponentModel.Primitives/System.ComponentModel.Primitives.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.ComponentModel.Primitives/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.ComponentModel.TypeConverter/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.ComponentModel.TypeConverter/Makefile [new file with mode: 0644]
mcs/class/Facades/System.ComponentModel.TypeConverter/System.ComponentModel.TypeConverter.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.ComponentModel.TypeConverter/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Console/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Console/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Console/System.Console.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Console/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Data.Common/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Data.Common/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Data.Common/System.Data.Common.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Data.Common/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Data.SqlClient/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Data.SqlClient/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Data.SqlClient/System.Data.SqlClient.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Data.SqlClient/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.FileVersionInfo/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.FileVersionInfo/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.FileVersionInfo/System.Diagnostics.FileVersionInfo.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.FileVersionInfo/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.PerformanceCounter/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.PerformanceCounter/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.PerformanceCounter/System.Diagnostics.PerformanceCounter.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.PerformanceCounter/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.Process/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.Process/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.Process/System.Diagnostics.Process.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.Process/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.StackTrace/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.StackTrace/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.StackTrace/System.Diagnostics.StackTrace.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.StackTrace/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.TextWriterTraceListener/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.TextWriterTraceListener/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.TextWriterTraceListener/System.Diagnostics.TextWriterTraceListener.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.TextWriterTraceListener/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.TraceEvent/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.TraceEvent/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.TraceEvent/System.Diagnostics.TraceEvent.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.TraceEvent/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.TraceSource/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.TraceSource/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.TraceSource/System.Diagnostics.TraceSource.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Diagnostics.TraceSource/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Globalization.Calendars/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Globalization.Calendars/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Globalization.Calendars/System.Globalization.Calendars.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Globalization.Calendars/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Globalization.Extensions/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Globalization.Extensions/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Globalization.Extensions/System.Globalization.Extensions.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Globalization.Extensions/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.Compression.ZipFile/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.Compression.ZipFile/Makefile [new file with mode: 0644]
mcs/class/Facades/System.IO.Compression.ZipFile/System.IO.Compression.ZipFile.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.IO.Compression.ZipFile/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.Compression/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.Compression/Makefile [new file with mode: 0644]
mcs/class/Facades/System.IO.Compression/System.IO.Compression.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.IO.Compression/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem.AccessControl/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem.AccessControl/Makefile [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem.AccessControl/System.IO.FileSystem.AccessControl.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem.AccessControl/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem.DriveInfo/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem.DriveInfo/Makefile [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem.DriveInfo/System.IO.FileSystem.DriveInfo.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem.DriveInfo/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem.Primitives/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem.Primitives/Makefile [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem.Primitives/System.IO.FileSystem.Primitives.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem.Primitives/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem.Watcher/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem.Watcher/Makefile [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem.Watcher/System.IO.FileSystem.Watcher.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem.Watcher/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem/Makefile [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem/System.IO.FileSystem.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.IO.FileSystem/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.IsolatedStorage/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.IsolatedStorage/Makefile [new file with mode: 0644]
mcs/class/Facades/System.IO.IsolatedStorage/System.IO.IsolatedStorage.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.IO.IsolatedStorage/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.MemoryMappedFiles/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.MemoryMappedFiles/Makefile [new file with mode: 0644]
mcs/class/Facades/System.IO.MemoryMappedFiles/System.IO.MemoryMappedFiles.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.IO.MemoryMappedFiles/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.Pipes/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.Pipes/Makefile [new file with mode: 0644]
mcs/class/Facades/System.IO.Pipes/System.IO.Pipes.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.IO.Pipes/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.UnmanagedMemoryStream/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.IO.UnmanagedMemoryStream/Makefile [new file with mode: 0644]
mcs/class/Facades/System.IO.UnmanagedMemoryStream/System.IO.UnmanagedMemoryStream.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.IO.UnmanagedMemoryStream/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Linq.Expressions/TypeForwarders.cs
mcs/class/Facades/System.Net.AuthenticationManager/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.AuthenticationManager/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Net.AuthenticationManager/System.Net.AuthenticationManager.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Net.AuthenticationManager/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.Cache/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.Cache/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Net.Cache/System.Net.Cache.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Net.Cache/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.Http.WebRequestHandler/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.Http.WebRequestHandler/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Net.Http.WebRequestHandler/System.Net.Http.WebRequestHandler.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Net.Http.WebRequestHandler/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.HttpListener/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.HttpListener/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Net.HttpListener/System.Net.HttpListener.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Net.HttpListener/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.Mail/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.Mail/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Net.Mail/System.Net.Mail.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Net.Mail/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.NameResolution/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.NameResolution/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Net.NameResolution/System.Net.NameResolution.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Net.NameResolution/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.NetworkInformation/TypeForwarders.cs
mcs/class/Facades/System.Net.Primitives/TypeForwarders.cs
mcs/class/Facades/System.Net.Security/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.Security/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Net.Security/System.Net.Security.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Net.Security/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.ServicePoint/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.ServicePoint/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Net.ServicePoint/System.Net.ServicePoint.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Net.ServicePoint/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.Sockets/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.Sockets/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Net.Sockets/System.Net.Sockets.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Net.Sockets/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.Utilities/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.Utilities/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Net.Utilities/System.Net.Utilities.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Net.Utilities/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.WebHeaderCollection/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.WebHeaderCollection/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Net.WebHeaderCollection/System.Net.WebHeaderCollection.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Net.WebHeaderCollection/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.WebSockets.Client/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.WebSockets.Client/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Net.WebSockets.Client/System.Net.WebSockets.Client.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Net.WebSockets.Client/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.WebSockets/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Net.WebSockets/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Net.WebSockets/System.Net.WebSockets.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Net.WebSockets/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.ObjectModel/TypeForwarders.cs
mcs/class/Facades/System.Private.CoreLib.InteropServices/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Private.CoreLib.InteropServices/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Private.CoreLib.InteropServices/System.Private.CoreLib.InteropServices.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Private.CoreLib.InteropServices/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Private.CoreLib.Threading/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Private.CoreLib.Threading/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Private.CoreLib.Threading/System.Private.CoreLib.Threading.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Private.CoreLib.Threading/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Reflection.TypeExtensions/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Reflection.TypeExtensions/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Reflection.TypeExtensions/System.Reflection.TypeExtensions.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Reflection.TypeExtensions/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Resources.ReaderWriter/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Resources.ReaderWriter/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Resources.ReaderWriter/System.Resources.ReaderWriter.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Resources.ReaderWriter/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Runtime.CompilerServices.VisualC/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Runtime.CompilerServices.VisualC/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Runtime.CompilerServices.VisualC/System.Runtime.CompilerServices.VisualC.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Runtime.CompilerServices.VisualC/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Runtime.Extensions/TypeForwarders.cs
mcs/class/Facades/System.Runtime.Handles/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Runtime.Handles/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Runtime.Handles/System.Runtime.Handles.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Runtime.Handles/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Runtime.Serialization.Xml/TypeForwarders.cs
mcs/class/Facades/System.Runtime/TypeForwarders.cs
mcs/class/Facades/System.Security.AccessControl/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.AccessControl/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Security.AccessControl/System.Security.AccessControl.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Security.AccessControl/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Claims/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Claims/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Security.Claims/System.Security.Claims.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Security.Claims/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.DeriveBytes/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.DeriveBytes/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.DeriveBytes/System.Security.Cryptography.DeriveBytes.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.DeriveBytes/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encoding/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encoding/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encoding/System.Security.Cryptography.Encoding.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encoding/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encryption.Aes/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encryption.Aes/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encryption.Aes/System.Security.Cryptography.Encryption.Aes.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encryption.Aes/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman/System.Security.Cryptography.Encryption.ECDiffieHellman.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encryption.ECDsa/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encryption.ECDsa/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encryption.ECDsa/System.Security.Cryptography.Encryption.ECDsa.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encryption.ECDsa/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encryption/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encryption/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encryption/System.Security.Cryptography.Encryption.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Encryption/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Hashing.Algorithms/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Hashing.Algorithms/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Hashing.Algorithms/System.Security.Cryptography.Hashing.Algorithms.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Hashing.Algorithms/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Hashing/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Hashing/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Hashing/System.Security.Cryptography.Hashing.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.Hashing/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.ProtectedData/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.ProtectedData/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.ProtectedData/System.Security.Cryptography.ProtectedData.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.ProtectedData/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.RSA/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.RSA/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.RSA/System.Security.Cryptography.RSA.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.RSA/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.RandomNumberGenerator/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.RandomNumberGenerator/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.RandomNumberGenerator/System.Security.Cryptography.RandomNumberGenerator.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.RandomNumberGenerator/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.X509Certificates/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.X509Certificates/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.X509Certificates/System.Security.Cryptography.X509Certificates.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Security.Cryptography.X509Certificates/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Principal.Windows/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.Principal.Windows/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Security.Principal.Windows/System.Security.Principal.Windows.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Security.Principal.Windows/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.SecureString/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Security.SecureString/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Security.SecureString/System.Security.SecureString.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Security.SecureString/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.ServiceModel.Duplex/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.ServiceModel.Duplex/Makefile [new file with mode: 0644]
mcs/class/Facades/System.ServiceModel.Duplex/System.ServiceModel.Duplex.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.ServiceModel.Duplex/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.ServiceModel.NetTcp/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.ServiceModel.NetTcp/Makefile [new file with mode: 0644]
mcs/class/Facades/System.ServiceModel.NetTcp/System.ServiceModel.NetTcp.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.ServiceModel.NetTcp/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.ServiceModel.Security/TypeForwarders.cs
mcs/class/Facades/System.ServiceProcess.ServiceController/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.ServiceProcess.ServiceController/Makefile [new file with mode: 0644]
mcs/class/Facades/System.ServiceProcess.ServiceController/System.ServiceProcess.ServiceController.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.ServiceProcess.ServiceController/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Text.Encoding.Extensions/TypeForwarders.cs
mcs/class/Facades/System.Text.Encoding/TypeForwarders.cs
mcs/class/Facades/System.Threading.AccessControl/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Threading.AccessControl/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Threading.AccessControl/System.Threading.AccessControl.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Threading.AccessControl/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Threading.Overlapped/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Threading.Overlapped/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Threading.Overlapped/System.Threading.Overlapped.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Threading.Overlapped/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Threading.Thread/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Threading.Thread/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Threading.Thread/System.Threading.Thread.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Threading.Thread/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Threading.ThreadPool/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Threading.ThreadPool/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Threading.ThreadPool/System.Threading.ThreadPool.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Threading.ThreadPool/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Threading/TypeForwarders.cs
mcs/class/Facades/System.Xml.ReaderWriter/TypeForwarders.cs
mcs/class/Facades/System.Xml.XPath.XDocument/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Xml.XPath.XDocument/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Xml.XPath.XDocument/System.Xml.XPath.XDocument.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Xml.XPath.XDocument/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Xml.XPath/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Xml.XPath/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Xml.XPath/System.Xml.XPath.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Xml.XPath/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Xml.XmlDocument/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Xml.XmlDocument/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Xml.XmlDocument/System.Xml.XmlDocument.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Xml.XmlDocument/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Facades/System.Xml.Xsl.Primitives/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/Facades/System.Xml.Xsl.Primitives/Makefile [new file with mode: 0644]
mcs/class/Facades/System.Xml.Xsl.Primitives/System.Xml.Xsl.Primitives.dll.sources [new file with mode: 0644]
mcs/class/Facades/System.Xml.Xsl.Primitives/TypeForwarders.cs [new file with mode: 0644]
mcs/class/Makefile
mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/BuildItem.cs
mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Engine.cs
mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Expression.cs
mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ExpressionCollection.cs
mcs/class/Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine/Consts.cs
mcs/class/Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine/TargetTest.cs
mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/ResolveAssemblyReference.cs
mcs/class/Microsoft.Build.Tasks/Test/Microsoft.Build.Tasks/CodeTaskFactoryTest.cs
mcs/class/Microsoft.Build.Tasks/Test/Microsoft.Build.Tasks/CscTest.cs
mcs/class/Microsoft.Build.Tasks/Test/Microsoft.Build.Tasks/MessageTest.cs
mcs/class/Microsoft.Build.Tasks/Test/Microsoft.Build.Tasks/WriteLinesToFileTest.cs
mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/TaskItem.cs
mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/ToolLocationHelper.cs
mcs/class/Microsoft.Build.Utilities/Test/Microsoft.Build.Utilities/ToolLocationHelperTest.cs
mcs/class/Microsoft.Build/xbuild-testing/.NETFramework/v2.0/RedistList/FrameworkList.xml
mcs/class/Microsoft.Build/xbuild-testing/.NETFramework/v3.5/RedistList/FrameworkList.xml
mcs/class/Microsoft.Build/xbuild-testing/.NETFramework/v4.0/RedistList/FrameworkList.xml
mcs/class/Microsoft.Build/xbuild-testing/.NETFramework/v4.5/RedistList/FrameworkList.xml
mcs/class/Mono.CSharp/Makefile
mcs/class/Mono.CSharp/monotouch_watch_Mono.CSharp.dll.sources [new file with mode: 0644]
mcs/class/Mono.CompilerServices.SymbolWriter/MonoSymbolTable.cs
mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0/UnsafeNativeMethods.cs
mcs/class/Mono.Data.Sqlite/Test/Bug27864.cs
mcs/class/Mono.Debugger.Soft/Makefile
mcs/class/Mono.Debugger.Soft/Test/dtest-app.cs
mcs/class/Mono.Debugger.Soft/Test/dtest.cs
mcs/class/Mono.Dynamic.Interpreter/Makefile
mcs/class/Mono.Parallel/Test/Mono.Collections.Concurrent/CollectionStressTestHelper.cs
mcs/class/Mono.Parallel/Test/Mono.Collections.Concurrent/ConcurrentSkipListTests.cs
mcs/class/Mono.Parallel/Test/Mono.Threading/ParallelTestHelper.cs
mcs/class/Mono.Parallel/Test/Mono.Threading/SnziTests.cs
mcs/class/Mono.Posix/Mono.Posix_test.dll.sources
mcs/class/Mono.Posix/Mono.Remoting.Channels.Unix/UnixServerTransportSink.cs
mcs/class/Mono.Posix/Mono.Unix.Native/NativeConvert.cs
mcs/class/Mono.Posix/Mono.Unix/PeerCred.cs
mcs/class/Mono.Posix/Mono.Unix/UnixMarshal.cs
mcs/class/Mono.Posix/Test/Mono.Unix.Android/TestHelper.cs [new file with mode: 0644]
mcs/class/Mono.Posix/Test/Mono.Unix.Native/RealTimeSignumTests.cs
mcs/class/Mono.Posix/Test/Mono.Unix/StdioFileStreamTest.cs
mcs/class/Mono.Posix/Test/Mono.Unix/UnixGroupTest.cs
mcs/class/Mono.Posix/Test/Mono.Unix/UnixMarshalTest.cs
mcs/class/Mono.Posix/Test/Mono.Unix/UnixPathTest.cs
mcs/class/Mono.Posix/Test/Mono.Unix/UnixSignalTest.cs
mcs/class/Mono.Posix/Test/Mono.Unix/UnixUserTest.cs
mcs/class/Mono.Reactive.Testing/Makefile
mcs/class/Mono.Security/Test/tools/sockethell/Makefile
mcs/class/Mono.Security/monotouch_watch_Mono.Security.dll.sources [new file with mode: 0644]
mcs/class/Mono.Simd/Makefile
mcs/class/PEAPI/Metadata.cs
mcs/class/RabbitMQ.Client/docs/specs/.gitignore
mcs/class/RabbitMQ.Client/docs/specs/net_2_0-api-0-8.cs [deleted file]
mcs/class/RabbitMQ.Client/docs/specs/net_2_0-api-0-9.cs [deleted file]
mcs/class/RabbitMQ.Client/docs/specs/net_2_0-api-qpid-0-8.cs [deleted file]
mcs/class/RabbitMQ.Client/docs/specs/net_4_0-api-0-8.cs [deleted file]
mcs/class/RabbitMQ.Client/docs/specs/net_4_0-api-0-9.cs [deleted file]
mcs/class/RabbitMQ.Client/docs/specs/net_4_0-api-qpid-0-8.cs [deleted file]
mcs/class/RabbitMQ.Client/docs/specs/net_4_5-api-0-8.cs [deleted file]
mcs/class/RabbitMQ.Client/docs/specs/net_4_5-api-0-9.cs [deleted file]
mcs/class/RabbitMQ.Client/docs/specs/net_4_5-api-qpid-0-8.cs [deleted file]
mcs/class/RabbitMQ.Client/src/client/Makefile
mcs/class/RabbitMQ.Client/src/client/net_2_0_RabbitMQ.Client.dll.sources [deleted file]
mcs/class/RabbitMQ.Client/src/client/net_4_0_RabbitMQ.Client.dll.sources [deleted file]
mcs/class/RabbitMQ.Client/src/client/net_4_5_RabbitMQ.Client.dll.sources [deleted file]
mcs/class/System.ComponentModel.Composition.4.5/Makefile
mcs/class/System.ComponentModel.DataAnnotations/Test/System.ComponentModel.DataAnnotations/AssociationAttributeTest.cs
mcs/class/System.ComponentModel.DataAnnotations/Test/System.ComponentModel.DataAnnotations/DisplayAttributeTest.cs
mcs/class/System.ComponentModel.DataAnnotations/Test/System.ComponentModel.DataAnnotations/EnumDataTypeAttributeTest.cs
mcs/class/System.ComponentModel.DataAnnotations/Test/System.ComponentModel.DataAnnotations/FilterUIHintAttributeTest.cs
mcs/class/System.ComponentModel.DataAnnotations/Test/System.ComponentModel.DataAnnotations/RangeAttributeTest.cs
mcs/class/System.ComponentModel.DataAnnotations/Test/System.ComponentModel.DataAnnotations/RegularExpressionAttributeTest.cs
mcs/class/System.ComponentModel.DataAnnotations/Test/System.ComponentModel.DataAnnotations/RequiredAttributeTest.cs
mcs/class/System.ComponentModel.DataAnnotations/Test/System.ComponentModel.DataAnnotations/StringLengthAttributeTest.cs
mcs/class/System.ComponentModel.DataAnnotations/Test/System.ComponentModel.DataAnnotations/UIHintAttributeTest.cs
mcs/class/System.ComponentModel.DataAnnotations/Test/System.ComponentModel.DataAnnotations/ValidationAttributeTest.cs
mcs/class/System.ComponentModel.DataAnnotations/Test/System.ComponentModel.DataAnnotations/ValidationContextTest.cs
mcs/class/System.ComponentModel.DataAnnotations/Test/System.ComponentModel.DataAnnotations/ValidationResultTest.cs
mcs/class/System.ComponentModel.DataAnnotations/Test/System.ComponentModel.DataAnnotations/ValidatorTest.cs
mcs/class/System.Configuration/System.Configuration_test_net_2_0.dll.config [deleted symlink]
mcs/class/System.Configuration/System.Configuration_test_net_4_0.dll.config [deleted symlink]
mcs/class/System.Configuration/System.Configuration_test_net_4_5.dll.config [deleted symlink]
mcs/class/System.Configuration/System.Configuration_test_net_4_x.dll.config [new symlink]
mcs/class/System.Configuration/Test/System.Configuration/ConfigurationPermissionTest.cs
mcs/class/System.Configuration/Test/Util/TestUtil.cs
mcs/class/System.Configuration/Test/standalone/Makefile
mcs/class/System.Core/Makefile
mcs/class/System.Core/ReferenceSources/SR.cs
mcs/class/System.Core/System.IO.MemoryMappedFiles/MemoryMappedFile.cs
mcs/class/System.Core/System.IO.MemoryMappedFiles/MemoryMappedView.cs [new file with mode: 0644]
mcs/class/System.Core/System.IO.MemoryMappedFiles/MemoryMappedViewAccessor.cs [deleted file]
mcs/class/System.Core/System.IO.MemoryMappedFiles/MemoryMappedViewStream.cs [deleted file]
mcs/class/System.Core/Test/System.IO.MemoryMappedFiles/MemoryMappedFileTest.cs
mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest.cs
mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_AddChecked.cs
mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_AndAlso.cs
mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Call.cs
mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Convert.cs
mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Equal.cs
mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Lambda.cs
mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_OrElse.cs
mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Quote.cs
mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_SubtractChecked.cs
mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_TypeIs.cs
mcs/class/System.Core/Test/System.Linq/EnumerableFixture.cs
mcs/class/System.Core/Test/System.Linq/ParallelEnumerableTests.cs
mcs/class/System.Core/Test/System.Linq/ParallelTestHelper.cs
mcs/class/System.Core/Test/System.Runtime.CompilerServices/DynamicAttributeTest.cs
mcs/class/System.Core/Test/System.Security.Cryptography/AesManagedTest.cs
mcs/class/System.Core/Test/System.Threading.Tasks/TaskExtensionsTests.cs
mcs/class/System.Core/Test/System.Threading/ReaderWriterLockSlimTest.cs
mcs/class/System.Core/basic_System.Core.dll.sources
mcs/class/System.Core/build_System.Core.dll.sources
mcs/class/System.Core/common_System.Core.dll.sources
mcs/class/System.Core/monotouch_watch_System.Core.dll.sources [new file with mode: 0644]
mcs/class/System.Core/net_4_5_System.Core.dll.sources [deleted file]
mcs/class/System.Core/net_4_x_System.Core.dll.sources [new file with mode: 0644]
mcs/class/System.Core/xammac_net_4_5_System.Core.dll.sources [new file with mode: 0644]
mcs/class/System.Data.Linq/Makefile
mcs/class/System.Data.Services.Client/Makefile
mcs/class/System.Data.Services.Client/System.Data.Services.Client.dll.sources
mcs/class/System.Data.Services.Client/mobile_System.Data.Services.Client.dll.sources [deleted file]
mcs/class/System.Data.Services.Client/mobile_static_System.Data.Services.Client.dll.sources [deleted file]
mcs/class/System.Data.Services.Client/monodroid_System.Data.Services.Client.dll.sources [deleted file]
mcs/class/System.Data.Services.Client/monotouch_System.Data.Services.Client.dll.sources [deleted file]
mcs/class/System.Data.Services.Client/net_2_0_System.Data.Services.Client.dll.sources [deleted file]
mcs/class/System.Data.Services.Client/net_4_0_System.Data.Services.Client.dll.sources [deleted file]
mcs/class/System.Data.Services.Client/net_4_5_System.Data.Services.Client.dll.sources [deleted file]
mcs/class/System.Data.Services.Client/xammac_System.Data.Services.Client.dll.sources [deleted file]
mcs/class/System.Data.Services/System.Data.Services.dll.sources
mcs/class/System.Data.Services/Test/System.Data.Services.Providers/DataServiceProviderMethodsTest.cs
mcs/class/System.Data.Services/Test/System.Data.Services.Providers/ResourceTypeTest.cs
mcs/class/System.Data.Services/net_4_0_System.Data.Services.dll.sources [deleted file]
mcs/class/System.Data.Services/net_4_5_System.Data.Services.dll.sources [deleted file]
mcs/class/System.Data/Makefile
mcs/class/System.Data/Microsoft.SqlServer.Server/SqlDataRecord.cs [new file with mode: 0644]
mcs/class/System.Data/Test/System.Data/DataTableTest.cs
mcs/class/System.Data/app_test_net_4_5.config [deleted file]
mcs/class/System.Data/app_test_net_4_x.config [new file with mode: 0644]
mcs/class/System.Data/mobile_System.Data.dll.sources
mcs/class/System.Data/monotouch_watch_System.Data.dll.sources [new file with mode: 0644]
mcs/class/System.Data/net_4_5_System.Data.dll.sources [deleted file]
mcs/class/System.Data/net_4_x_System.Data.dll.sources [new file with mode: 0644]
mcs/class/System.Data/xammac_net_4_5_System.Data.dll.sources [new file with mode: 0644]
mcs/class/System.Drawing/Test/DrawingTest/Test/Makefile
mcs/class/System.IO.Compression/SharpCompress/Archive/AbstractWritableArchive.cs
mcs/class/System.IO.Compression/SharpCompress/Archive/Zip/ZipArchive.cs
mcs/class/System.IO.Compression/SharpCompress/Writer/Zip/ZipWriter.cs
mcs/class/System.IO.Compression/ZipArchive.cs
mcs/class/System.IdentityModel.Selectors/Makefile
mcs/class/System.IdentityModel/Makefile
mcs/class/System.IdentityModel/System.IdentityModel.Selectors/CustomUserNameSecurityTokenAuthenticator.cs
mcs/class/System.IdentityModel/System.IdentityModel.Selectors/UserNamePasswordValidator.cs
mcs/class/System.Interactive.Async/Makefile
mcs/class/System.Interactive.Providers/Makefile
mcs/class/System.Interactive/Makefile
mcs/class/System.Json/Makefile
mcs/class/System.Json/System.Json.dll.sources
mcs/class/System.Json/System.Json/JavaScriptReader.cs [new file with mode: 0644]
mcs/class/System.Messaging/Makefile
mcs/class/System.Messaging/System.Messaging.Design/QueuePathEditor.cs
mcs/class/System.Messaging/System.Messaging/MessageQueue.cs
mcs/class/System.Messaging/System.Messaging/MessageQueueInstaller.cs
mcs/class/System.Net.Http/System.Net.Http.Headers/HttpContentHeaders.cs
mcs/class/System.Net.Http/System.Net.Http.Headers/HttpHeaders.cs
mcs/class/System.Net.Http/System.Net.Http/HttpClientHandler.cs
mcs/class/System.Net.Http/Test/System.Net.Http/HttpClientTest.cs
mcs/class/System.Net.Http/Test/System.Net.Http/StreamContentTest.cs
mcs/class/System.Net.Http/monotouch_System.Net.Http.dll.sources [deleted file]
mcs/class/System.Numerics.Vectors/Assembly/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/System.Numerics.Vectors/Makefile [new file with mode: 0644]
mcs/class/System.Numerics.Vectors/System.Numerics.Vectors.dll.sources [new file with mode: 0644]
mcs/class/System.Reactive.Core/Makefile
mcs/class/System.Reactive.Debugger/Makefile
mcs/class/System.Reactive.Experimental/Makefile
mcs/class/System.Reactive.Interfaces/Makefile
mcs/class/System.Reactive.Linq/Makefile
mcs/class/System.Reactive.Observable.Aliases/Makefile
mcs/class/System.Reactive.PlatformServices/Makefile
mcs/class/System.Reactive.Providers/Makefile
mcs/class/System.Reactive.Runtime.Remoting/Makefile
mcs/class/System.Reactive.Windows.Forms/Makefile
mcs/class/System.Reactive.Windows.Threading/Makefile
mcs/class/System.Runtime.Remoting/Test/HttpServerChannelTests.cs
mcs/class/System.Runtime.Serialization/ReferenceSources/JsonFormatWriterGenerator_static.cs
mcs/class/System.Runtime.Serialization/ReferenceSources/XmlFormatWriterGenerator_static.cs
mcs/class/System.Runtime.Serialization/System.Runtime.Serialization-net_4_5.csproj
mcs/class/System.Runtime.Serialization/Test/System.Runtime.Serialization/DataContractResolverTest.cs
mcs/class/System.Runtime.Serialization/Test/System.Runtime.Serialization/XsdDataContractImporterTest2.cs
mcs/class/System.Runtime.Serialization/monotouch_watch_System.Runtime.Serialization.dll.sources [new file with mode: 0644]
mcs/class/System.Runtime.Serialization/net_4_5_System.Runtime.Serialization.dll.sources [deleted file]
mcs/class/System.Runtime.Serialization/net_4_x_System.Runtime.Serialization.dll.sources [new file with mode: 0644]
mcs/class/System.Runtime.Serialization/xammac_net_4_5_System.Runtime.Serialization.dll.sources [new file with mode: 0644]
mcs/class/System.Security/Makefile
mcs/class/System.Security/Test/standalone_tests/Makefile
mcs/class/System.ServiceModel.Web/Makefile
mcs/class/System.ServiceModel.Web/System.Runtime.Serialization.Json/JavaScriptObjectDeserializer.cs [deleted file]
mcs/class/System.ServiceModel.Web/System.Runtime.Serialization.Json/JavaScriptReader.cs [deleted file]
mcs/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncodingBindingElement.cs
mcs/class/System.ServiceModel.Web/System.ServiceModel.Description/WebHttpBehavior.cs
mcs/class/System.ServiceModel.Web/System.ServiceModel.Web.dll.sources
mcs/class/System.ServiceModel.Web/System.ServiceModel.Web/WebOperationContext.cs
mcs/class/System.ServiceModel.Web/System.ServiceModel.Web_test.dll.sources
mcs/class/System.ServiceModel.Web/System.ServiceModel/WebHttpBinding.cs
mcs/class/System.ServiceModel.Web/Test/System.Runtime.Serialization.Json/DataContractJsonSerializerTest.cs
mcs/class/System.ServiceModel.Web/Test/System.ServiceModel.Description/WebHttpBehaviorTest.cs
mcs/class/System.ServiceModel.Web/Test/System.ServiceModel.Description/WebHttpEndpointTest.cs
mcs/class/System.ServiceModel.Web/Test/System.ServiceModel.Web/WebOperationContextTest.cs
mcs/class/System.ServiceModel.Web/Test/System.ServiceModel.Web/WebServiceHostTest.cs
mcs/class/System.ServiceModel.Web/common_System.ServiceModel.Web.dll.sources [deleted file]
mcs/class/System.ServiceModel.Web/monotouch_watch_System.ServiceModel.Web.dll.sources [new file with mode: 0644]
mcs/class/System.ServiceModel.Web/net_2_0_System.ServiceModel.Web.dll.sources [deleted file]
mcs/class/System.ServiceModel.Web/net_4_0_System.ServiceModel.Web.dll.sources [deleted file]
mcs/class/System.ServiceModel.Web/net_4_5_System.ServiceModel.Web.dll.sources [deleted file]
mcs/class/System.ServiceModel.Web/xammac_net_4_5_System.ServiceModel.Web.dll.sources [new file with mode: 0644]
mcs/class/System.ServiceModel/Assembly/AssemblyInfo.cs
mcs/class/System.ServiceModel/Dummy_2_1.cs
mcs/class/System.ServiceModel/Dummy_XM_4_5.cs [new file with mode: 0644]
mcs/class/System.ServiceModel/Makefile
mcs/class/System.ServiceModel/System.ServiceModel.Channels/BinaryMessageEncodingBindingElement.cs
mcs/class/System.ServiceModel/System.ServiceModel.Channels/FaultConverter.cs
mcs/class/System.ServiceModel/System.ServiceModel.Channels/HttpTransportBindingElement.cs
mcs/class/System.ServiceModel/System.ServiceModel.Channels/HttpsTransportBindingElement.cs
mcs/class/System.ServiceModel/System.ServiceModel.Channels/MessageEncodingBindingElement.cs
mcs/class/System.ServiceModel/System.ServiceModel.Channels/ReliableSessionBindingElement.cs
mcs/class/System.ServiceModel/System.ServiceModel.Channels/SecurityBindingElement.cs
mcs/class/System.ServiceModel/System.ServiceModel.Channels/TextMessageEncodingBindingElement.cs
mcs/class/System.ServiceModel/System.ServiceModel.Channels/TransportBindingElement.cs
mcs/class/System.ServiceModel/System.ServiceModel.Channels/TransportSecurityBindingElement.cs
mcs/class/System.ServiceModel/System.ServiceModel.Configuration/ConfigUtil.cs
mcs/class/System.ServiceModel/System.ServiceModel.Description/ClientCredentials.cs
mcs/class/System.ServiceModel/System.ServiceModel.Description/DataContractSerializerOperationBehavior.cs
mcs/class/System.ServiceModel/System.ServiceModel.Description/MessagePartDescription.cs
mcs/class/System.ServiceModel/System.ServiceModel.Description/XmlSerializerOperationBehavior.cs
mcs/class/System.ServiceModel/System.ServiceModel.Diagnostics/MessageLoggingSettings.cs
mcs/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChannelDispatcher.cs
mcs/class/System.ServiceModel/System.ServiceModel.Dispatcher/DispatchOperation.cs
mcs/class/System.ServiceModel/System.ServiceModel.Dispatcher/DispatchRuntime.cs
mcs/class/System.ServiceModel/System.ServiceModel.dll.sources
mcs/class/System.ServiceModel/System.ServiceModel/BasicHttpBinding_4_5.cs
mcs/class/System.ServiceModel/System.ServiceModel/BasicHttpsBinding.cs
mcs/class/System.ServiceModel/System.ServiceModel/ChannelFactory.cs
mcs/class/System.ServiceModel/System.ServiceModel/OperationContext.cs
mcs/class/System.ServiceModel/System.ServiceModel/SilverlightClientConfigLoader.cs
mcs/class/System.ServiceModel/System.ServiceModel_test.dll.sources
mcs/class/System.ServiceModel/Test/System.ServiceModel.Channels/AsymmetricSecurityBindingElementTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Channels/BinaryMessageEncodingBindingElementTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Channels/CustomBindingTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Channels/HttpTransportBindingElementTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Channels/MsmqBindingElementBaseTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Channels/SecurityBindingElementTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Channels/TcpTransportBindingElementTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Configuration/StandardEndpointsSectionTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Description/MetadataResolverTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Description/ServiceAuthorizationBehaviorTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Description/ServiceDebugBehaviorTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Description/ServiceEndpointTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Description/ServiceMetadataEndpointTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Dispatcher/Bug652331Test.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Dispatcher/Bug652331_2Test.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Dispatcher/ChannelDispatcherTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Dispatcher/DispatchOperationTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Security/SecurityMessagePropertyTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel/CallbackBehaviorAttributeTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel/ChannelFactory_1Test.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel/ClientBaseTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel/ClientBase_InteractiveChannelInitializerTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel/ClientCredentialsSecurityTokenManagerTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel/IntegratedConnectionTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel/NetTcpBindingTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel/OperationContextTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel/ServiceHostBaseTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel/ServiceHostTest.cs
mcs/class/System.ServiceModel/monotouch_watch_System.ServiceModel.dll.sources [new file with mode: 0644]
mcs/class/System.ServiceModel/net_4_0_System.ServiceModel.dll.sources [deleted file]
mcs/class/System.ServiceModel/net_4_5_System.ServiceModel.dll.sources [deleted file]
mcs/class/System.ServiceModel/xammac_net_4_5_System.ServiceModel.dll.sources [new file with mode: 0644]
mcs/class/System.Transactions/Makefile
mcs/class/System.Web.Abstractions/Makefile
mcs/class/System.Web.Abstractions/System.Web.Abstractions.dll.sources
mcs/class/System.Web.Abstractions/System.Web/HttpApplicationStateBase.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpApplicationStateWrapper.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpBrowserCapabilitiesBase.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpBrowserCapabilitiesWrapper.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpCachePolicyBase.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpCachePolicyWrapper.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpContextBase.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpContextWrapper.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpFileCollectionBase.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpFileCollectionWrapper.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpPostedFileBase.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpPostedFileWrapper.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpRequestBase.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpRequestWrapper.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpResponseBase.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpResponseWrapper.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpServerUtilityBase.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpServerUtilityWrapper.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpSessionStateBase.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpSessionStateWrapper.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpStaticObjectsCollectionBase.cs [deleted file]
mcs/class/System.Web.Abstractions/System.Web/HttpStaticObjectsCollectionWrapper.cs [deleted file]
mcs/class/System.Web.Abstractions/net_4_0_System.Web.Abstractions.dll.sources [deleted file]
mcs/class/System.Web.Abstractions/net_4_5_System.Web.Abstractions.dll.sources [deleted file]
mcs/class/System.Web.ApplicationServices/System.Web.ApplicationServices.dll.sources
mcs/class/System.Web.ApplicationServices/monotouch_runtime_System.Web.ApplicationServices.dll.sources [deleted file]
mcs/class/System.Web.ApplicationServices/net_4_0_System.Web.ApplicationServices.dll.sources [deleted file]
mcs/class/System.Web.ApplicationServices/net_4_5_System.Web.ApplicationServices.dll.sources [deleted file]
mcs/class/System.Web.DynamicData/Makefile
mcs/class/System.Web.DynamicData/Test/Common/TestsSetup.cs
mcs/class/System.Web.DynamicData/Test/WebPages/web.config.2.0 [deleted file]
mcs/class/System.Web.DynamicData/Test/WebPages/web.config.4.0 [deleted file]
mcs/class/System.Web.DynamicData/Test/WebPages/web.config.4.5 [deleted file]
mcs/class/System.Web.DynamicData/Test/WebPages/web.config.4.x [new file with mode: 0644]
mcs/class/System.Web.Extensions/Makefile
mcs/class/System.Web.Extensions/Test/System.Web.Script.Serialization/JavaScriptSerializerTest.cs
mcs/class/System.Web.Extensions/Test/System.Web.UI.WebControls/ListViewTest.cs
mcs/class/System.Web.Extensions/Test/code/WebTestLocal.cs
mcs/class/System.Web.Extensions/Test/resources/profile.config.2.0 [deleted file]
mcs/class/System.Web.Extensions/Test/resources/profile.config.4.0 [deleted file]
mcs/class/System.Web.Extensions/Test/resources/profile.config.4.5 [deleted file]
mcs/class/System.Web.Extensions/Test/resources/profile.config.4.x [new file with mode: 0644]
mcs/class/System.Web.Routing/Makefile
mcs/class/System.Web.Routing/System.Web.Routing.dll.sources
mcs/class/System.Web.Routing/System.Web.Routing/ChangeLog [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/HttpMethodConstraint.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/IRouteConstraint.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/IRouteHandler.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/PatternParser.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/PatternToken.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/PatternTokenType.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/RequestContext.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/Route.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/RouteBase.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/RouteCollection.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/RouteData.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/RouteDirection.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/RouteTable.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/RouteValueDictionary.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/RouteValueDictionaryExtensions.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/StopRoutingHandler.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/UrlRoutingHandler.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/UrlRoutingModule.cs [deleted file]
mcs/class/System.Web.Routing/System.Web.Routing/VirtualPathData.cs [deleted file]
mcs/class/System.Web.Routing/Test/System.Web.Routing/FakeHttpWorkerRequest.cs
mcs/class/System.Web.Routing/Test/System.Web.Routing/RequestContext.cs
mcs/class/System.Web.Routing/Test/System.Web.Routing/RouteCollectionTest.cs
mcs/class/System.Web.Routing/Test/System.Web.Routing/RouteTest.cs
mcs/class/System.Web.Routing/Test/System.Web.Routing/TestStubTypes.cs
mcs/class/System.Web.Routing/Test/System.Web.Routing/UrlRoutingModuleTest.cs
mcs/class/System.Web.Routing/net_4_0_System.Web.Routing.dll.sources [deleted file]
mcs/class/System.Web.Routing/net_4_5_System.Web.Routing.dll.sources [deleted file]
mcs/class/System.Web.Services/Makefile
mcs/class/System.Web.Services/System.Web.Services.Description/ExtensionManager.cs
mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionImporter.cs
mcs/class/System.Web.Services/System.Web.Services.Protocols/Methods.cs
mcs/class/System.Web.Services/System.Web.Services.Protocols/ServerType.cs
mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapExtension.cs
mcs/class/System.Web.Services/Test/standalone/Makefile
mcs/class/System.Web.Services/monotouch_watch_System.Web.Services.dll.sources [new file with mode: 0644]
mcs/class/System.Web.Services/xammac_net_4_5_System.Web.Services.dll.sources [new file with mode: 0644]
mcs/class/System.Web/Assembly/AssemblyInfo.cs
mcs/class/System.Web/System.Web-net_4_5.csproj
mcs/class/System.Web/System.Web-plainweb-net_4_5.csproj
mcs/class/System.Web/System.Web.Compilation/AppResourcesAssemblyBuilder.cs
mcs/class/System.Web/System.Web.Profile/ProfileGroupBase.cs [deleted file]
mcs/class/System.Web/System.Web.Routing/HttpMethodConstraint.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/IRouteConstraint.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/IRouteHandler.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/PatternParser.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/PatternToken.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/PatternTokenType.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/RequestContext.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/Route.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/RouteCollection.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/RouteData.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/RouteDirection.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/RouteTable.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/RouteValueDictionary.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/RouteValueDictionaryExtensions.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/StopRoutingHandler.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/UrlRoutingHandler.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/UrlRoutingModule.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.Routing/VirtualPathData.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web.UI.WebControls/Table.cs
mcs/class/System.Web/System.Web.Util/HttpEncoder.cs
mcs/class/System.Web/System.Web.dll.sources
mcs/class/System.Web/System.Web/HttpApplication.cs
mcs/class/System.Web/System.Web/HttpApplicationStateWrapper.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web/HttpBrowserCapabilitiesWrapper.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web/HttpCachePolicyWrapper.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web/HttpContextBase.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web/HttpContextWrapper.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web/HttpFileCollectionWrapper.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web/HttpRequest.cs
mcs/class/System.Web/System.Web/HttpRequestWrapper.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web/HttpResponseWrapper.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web/HttpServerUtilityWrapper.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web/HttpSessionStateWrapper.cs [new file with mode: 0644]
mcs/class/System.Web/System.Web/HttpUtility.cs
mcs/class/System.Web/System.Web/UnvalidatedRequestValuesBase.cs [deleted file]
mcs/class/System.Web/System.Web/UnvalidatedRequestValuesWrapper.cs [deleted file]
mcs/class/System.Web/System.Web_test.dll.sources
mcs/class/System.Web/Test/System.Web.Caching/FileResponseElementTest.cs
mcs/class/System.Web/Test/System.Web.Caching/HeaderElementTest.cs
mcs/class/System.Web/Test/System.Web.Caching/MemoryResponseElementTest.cs
mcs/class/System.Web/Test/System.Web.Caching/OutputCacheTest.cs
mcs/class/System.Web/Test/System.Web.Caching/SqlCacheDependencyTest.cs
mcs/class/System.Web/Test/System.Web.Caching/SubstitutionResponseElementTest.cs
mcs/class/System.Web/Test/System.Web.Compilation/BuildManagerTest.cs
mcs/class/System.Web/Test/System.Web.Compilation/BuildProviderTest.cs
mcs/class/System.Web/Test/System.Web.Compilation/RouteUrlExpressionBuilderTest.cs
mcs/class/System.Web/Test/System.Web.Configuration/MachineKeySectionTest.cs
mcs/class/System.Web/Test/System.Web.Configuration/MachineKeyValidationConverterTest.cs
mcs/class/System.Web/Test/System.Web.Security/MachineKeyTest.cs
mcs/class/System.Web/Test/System.Web.UI.HtmlControls/HtmlFormTest.cs
mcs/class/System.Web/Test/System.Web.UI.HtmlControls/HtmlInputButtonTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls.Adapters/MenuAdapterTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/BaseDataBoundControlTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/BaseDataListTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/BoundFieldTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangePasswordTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/CheckBoxFieldTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/CheckBoxListTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/CheckBoxTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/DataGridTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/DataKeyTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/DataListItemTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/DataListTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/DataSourceControlTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/DetailsViewTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/EditCommandColumnTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/FormViewTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/GridViewTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/HyperLinkTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/ImageButtonTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/ImageFieldTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/ImageMapTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/ImageTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/MasterPageTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/MenuItemBindingTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/MenuTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/ObjectDataSourceTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/ObjectDataSourceViewTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/RadioButtonListTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/RepeatInfoTest.auto.2.0.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/RepeatInfoTest.auto.4.0.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/RepeatInfoTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/RepeatInfoTest.gen.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/RouteParameterTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/SqlDataSourceViewTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/TableTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/TextBoxTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/TreeNodeTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/TreeViewTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/ValidationSummaryTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/WizardStepBaseTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/WizardTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/XmlDataSourceTest.cs
mcs/class/System.Web/Test/System.Web.UI/ControlTest.cs
mcs/class/System.Web/Test/System.Web.UI/DataKeyPropertyAttributeTest.cs
mcs/class/System.Web/Test/System.Web.UI/LosFormatterTest.cs
mcs/class/System.Web/Test/System.Web.Util/HttpEncoderTest.cs
mcs/class/System.Web/Test/System.Web.Util/MachineKeySectionUtilsTest.cs
mcs/class/System.Web/Test/System.Web.Util/RequestValidatorTest.cs
mcs/class/System.Web/Test/System.Web/HttpApplicationTest.cs
mcs/class/System.Web/Test/System.Web/HttpCookieTest.cs
mcs/class/System.Web/Test/System.Web/HttpExceptionTest.cs
mcs/class/System.Web/Test/System.Web/HttpResponseTest.cs
mcs/class/System.Web/Test/System.Web/HttpUtilityTest.cs
mcs/class/System.Web/Test/mainsoft/MainsoftWebApp/Makefile
mcs/class/System.Web/Test/mainsoft/NunitWeb/Makefile
mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/WebTestLocal.cs
mcs/class/System.Web/Test/standalone-tests/ApplicationPreStartMethods.cs
mcs/class/System.Web/Test/standalone-tests/BuildManagerCacheFiles.cs
mcs/class/System.Web/Test/standalone-tests/ControlRenderingCompatibilityVersion.cs
mcs/class/System.Web/Test/standalone-tests/Control_GetUniqueIDRelativeTo.cs
mcs/class/System.Web/Test/standalone-tests/DisabledAttributeRendering.cs
mcs/class/System.Web/Test/standalone-tests/EnableFormsAuthentication.cs
mcs/class/System.Web/Test/standalone-tests/GridViewShowHeaderWhenEmpty.cs
mcs/class/System.Web/Test/standalone-tests/GridViewSortingStyles.cs
mcs/class/System.Web/Test/standalone-tests/Menu_4.0_List.cs
mcs/class/System.Web/Test/standalone-tests/OutputCacheProvider.cs
mcs/class/System.Web/Test/standalone-tests/PageMetaAttributes.cs
mcs/class/System.Web/Test/standalone-tests/PageParserDefaultTypeProperties.cs
mcs/class/System.Web/Test/standalone-tests/RegisterBuildProvider.cs
mcs/class/System.Web/Test/standalone-tests/RequestValidator.cs
mcs/class/System.Web/Test/standalone-tests/RequestValidatorTestGenerated.cs
mcs/class/System.Web/Test/standalone-tests/Unhandled_Exception_Global_Asax.cs
mcs/class/System.Web/Test/standalone-tests/WebControlsMustUseIsEnabled_Bug571715.cs
mcs/class/System.Web/Test/standalone-tests/WebFormsRouting.cs
mcs/class/System.Web/monotouch_runtime_System.Web.dll.sources [deleted file]
mcs/class/System.Web/net_4_0_System.Web.dll.sources [deleted file]
mcs/class/System.Web/net_4_5_System.Web.dll.sources [deleted file]
mcs/class/System.XML/Makefile
mcs/class/System.XML/Test/System.Xml.Schema/standalone_tests/Makefile
mcs/class/System.XML/Test/System.Xml.Xsl/standalone_tests/Makefile
mcs/class/System.XML/Test/System.Xml/W3C/Makefile
mcs/class/System.XML/monotouch_watch_System.Xml.dll.sources [new file with mode: 0644]
mcs/class/System.Xaml/Makefile
mcs/class/System.Xaml/Test/System.Xaml/XamlObjectWriterTest.cs
mcs/class/System.Xaml/Test/System.Xaml/XamlXmlReaderTest.cs
mcs/class/System.Xaml/Test/System.Xaml/XamlXmlWriterTest.cs
mcs/class/System/Makefile
mcs/class/System/Microsoft.CSharp/CSharpCodeCompiler.cs
mcs/class/System/Microsoft.VisualBasic/VBCodeCompiler.cs
mcs/class/System/System-bare-net_4_5.csproj
mcs/class/System/System-net_4_5.csproj
mcs/class/System/System-secxml-net_4_5.csproj
mcs/class/System/System.Diagnostics/Process.cs
mcs/class/System/System.IO/KeventWatcher.cs
mcs/class/System/System.Net.Mail/SmtpDeliveryFormat.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/IPv4InterfaceStatistics.cs
mcs/class/System/System.Net.NetworkInformation/NetworkChange.cs
mcs/class/System/System.Net.NetworkInformation/NetworkInterface.cs
mcs/class/System/System.Net.NetworkInformation/UnicastIPAddressInformation.cs
mcs/class/System/System.Net.Security/EncryptionPolicy.cs [new file with mode: 0644]
mcs/class/System/System.Net/HttpListenerTimeoutManager.cs [new file with mode: 0644]
mcs/class/System/System.Net/ServicePoint.cs
mcs/class/System/System.Net/WebConnection.cs
mcs/class/System/System.Net/WebConnectionStream.cs
mcs/class/System/System.Security.Authentication.ExtendedProtection.Configuration/ConfigUtil.cs
mcs/class/System/System.Security.Authentication.ExtendedProtection.Configuration/ExtendedProtectionPolicyElement.cs
mcs/class/System/System.Security.Authentication.ExtendedProtection.Configuration/ServiceNameElement.cs
mcs/class/System/System.Security.Authentication.ExtendedProtection.Configuration/ServiceNameElementCollection.cs
mcs/class/System/System.Security.Cryptography/OidGroup.cs [new file with mode: 0644]
mcs/class/System/System.dll.sources
mcs/class/System/System/UriBuilder.cs
mcs/class/System/Test/System.Collections.Concurrent/BlockingCollectionTests.cs
mcs/class/System/Test/System.Collections.Concurrent/CollectionStressTestHelper.cs
mcs/class/System/Test/System.Collections.Concurrent/ConcurrentBagTests.cs
mcs/class/System/Test/System.Collections.Concurrent/ParallelTestHelper.cs
mcs/class/System/Test/System.Collections.Generic/SortedSetTest.cs
mcs/class/System/Test/System.Collections.ObjectModel/CollectionChangedEventValidators.cs
mcs/class/System/Test/System.Collections.ObjectModel/ObservableCollectionTest.cs
mcs/class/System/Test/System.Collections.ObjectModel/ReadOnlyObservableCollectionTest.cs
mcs/class/System/Test/System.ComponentModel/AsyncOperationManagerTest.cs
mcs/class/System/Test/System.ComponentModel/AttributeCollectionTest.cs
mcs/class/System/Test/System.ComponentModel/CultureInfoConverterTest.cs
mcs/class/System/Test/System.ComponentModel/DateTimeOffsetConverterTests.cs
mcs/class/System/Test/System.ComponentModel/PropertyDescriptorTests.cs
mcs/class/System/Test/System.ComponentModel/TypeDescriptionProviderTest.cs
mcs/class/System/Test/System.Configuration/ApplicationSettingsBaseTest.cs
mcs/class/System/Test/System.Diagnostics/ProcessTest.cs
mcs/class/System/Test/System.IO.Compression/DeflateStreamTest.cs
mcs/class/System/Test/System.Net.NetworkInformation/IPInterfacePropertiesTest.cs
mcs/class/System/Test/System.Net.Security/SslStreamTest.cs
mcs/class/System/Test/System.Net.WebSockets/ClientWebSocketTest.cs
mcs/class/System/Test/System.Net/HttpListenerTest.cs
mcs/class/System/Test/System.Net/HttpWebRequestTest.cs
mcs/class/System/Test/System.Net/HttpWebResponseTest.cs
mcs/class/System/Test/System.Net/IPAddressTest.cs
mcs/class/System/Test/System.Net/ServicePointManagerTest.cs
mcs/class/System/Test/System.Net/ServicePointTest.cs
mcs/class/System/Test/System.Net/SocketResponder.cs
mcs/class/System/Test/System.Net/WebClientTest.cs
mcs/class/System/Test/System.Net/WebClientTestAsync.cs
mcs/class/System/Test/System.Net/WebHeaderCollectionTest.cs
mcs/class/System/Test/System.Net/WebPermissionTest.cs
mcs/class/System/Test/System.Net/WebRequestTest.cs
mcs/class/System/Test/System.Net/WebUtilityTest.cs
mcs/class/System/Test/System.Runtime.Versioning/FrameworkNameTest.cs
mcs/class/System/Test/System.Threading/BarrierTest.cs
mcs/class/System/Test/System/UriBuilderTest.cs
mcs/class/System/Test/System/UriPermutationsTest.cs
mcs/class/System/Test/System/UriTest.cs
mcs/class/System/Test/System/UriTest2.cs
mcs/class/System/Test/System/UriTest3.cs
mcs/class/System/mobile_System.dll.sources
mcs/class/System/monotouch_watch_System.dll.sources [new file with mode: 0644]
mcs/class/WebMatrix.Data/Test/WebMatrix.Data/ConnectionEventArgsTests.cs
mcs/class/WebMatrix.Data/Test/WebMatrix.Data/DatabaseTests.cs
mcs/class/WebMatrix.Data/Test/WebMatrix.Data/DynamicRecordTests.cs
mcs/class/WindowsBase/Test/System.Windows.Markup/DateTimeValueSerializerTest.cs
mcs/class/WindowsBase/Test/System.Windows.Markup/ValueSerializerTest.cs
mcs/class/WindowsBase/ZipSharp/NativeUnzip.cs
mcs/class/corlib/DateTime.Now_Test.sh
mcs/class/corlib/Makefile
mcs/class/corlib/ReferenceSources/Environment.cs
mcs/class/corlib/ReferenceSources/TextInfo.cs
mcs/class/corlib/ReferenceSources/win32native.cs
mcs/class/corlib/System.Globalization/CultureInfo.cs
mcs/class/corlib/System.IO/FileStream.cs
mcs/class/corlib/System.Reflection.Emit/ConstructorBuilder.cs
mcs/class/corlib/System.Reflection.Emit/ILGenerator.cs
mcs/class/corlib/System.Reflection.Emit/MethodBuilder.cs
mcs/class/corlib/System.Reflection.Emit/ModuleBuilder.cs
mcs/class/corlib/System.Reflection.Emit/TypeBuilder.cs
mcs/class/corlib/System.Reflection/ExceptionHandlingClauseOptions.cs [deleted file]
mcs/class/corlib/System.Reflection/MonoEvent.cs
mcs/class/corlib/System.Reflection/MonoProperty.cs
mcs/class/corlib/System.Runtime.CompilerServices/ConditionalWeakTable.cs
mcs/class/corlib/System.Runtime.Remoting.Contexts/Context.cs
mcs/class/corlib/System.Threading/Monitor.cs
mcs/class/corlib/System.Threading/Thread.cs
mcs/class/corlib/System.Threading/ThreadPool.cs [deleted file]
mcs/class/corlib/System.Threading/Timer.cs
mcs/class/corlib/System/AppContext.cs [new file with mode: 0644]
mcs/class/corlib/System/Environment.cs
mcs/class/corlib/System/Math.cs [deleted file]
mcs/class/corlib/System/TimeZoneInfo.cs
mcs/class/corlib/Test/Microsoft.Win32/RegistryKeyTest.cs
mcs/class/corlib/Test/System.Collections.Concurrent/CollectionStressTestHelper.cs
mcs/class/corlib/Test/System.Collections.Concurrent/ConcurrentDictionaryTests.cs
mcs/class/corlib/Test/System.Collections.Concurrent/ConcurrentQueueTests.cs
mcs/class/corlib/Test/System.Collections.Concurrent/ConcurrentStackTests.cs
mcs/class/corlib/Test/System.Collections.Concurrent/ParallelConcurrentQueueTests.cs
mcs/class/corlib/Test/System.Collections.Concurrent/ParallelConcurrentStackTests.cs
mcs/class/corlib/Test/System.Collections.Concurrent/PartitionerTests.cs
mcs/class/corlib/Test/System.Collections.Generic/ComparerTest.cs
mcs/class/corlib/Test/System.Collections.Generic/ListTest.cs
mcs/class/corlib/Test/System.Collections/StructuralComparisonsTest.cs
mcs/class/corlib/Test/System.Diagnostics.Contracts/ContractAssertTest.cs
mcs/class/corlib/Test/System.Diagnostics.Contracts/ContractAssumeTest.cs
mcs/class/corlib/Test/System.Diagnostics.Contracts/ContractCollectionMethodsTest.cs
mcs/class/corlib/Test/System.Diagnostics.Contracts/ContractHelperTest.cs
mcs/class/corlib/Test/System.Diagnostics.Contracts/ContractMarkerMethodsTest.cs
mcs/class/corlib/Test/System.Diagnostics.Contracts/ContractMustUseRewriterTest.cs
mcs/class/corlib/Test/System.Diagnostics.Contracts/Helpers/RunAgainstReferenceAttribute.cs
mcs/class/corlib/Test/System.Diagnostics.Contracts/Helpers/TestContractBase.cs
mcs/class/corlib/Test/System.Diagnostics/StackFrameCas.cs
mcs/class/corlib/Test/System.Globalization/CultureInfoTest.cs
mcs/class/corlib/Test/System.Globalization/TextInfoTest.cs
mcs/class/corlib/Test/System.IO.IsolatedStorage/IsolatedStorageFileStreamTest.cs
mcs/class/corlib/Test/System.IO.IsolatedStorage/IsolatedStorageFileTest.cs
mcs/class/corlib/Test/System.IO.IsolatedStorage/IsolatedStorageTest.cs
mcs/class/corlib/Test/System.IO/DirectoryInfoTest.cs
mcs/class/corlib/Test/System.IO/DirectoryTest.cs
mcs/class/corlib/Test/System.IO/FileStreamTest.cs
mcs/class/corlib/Test/System.IO/FileTest.cs
mcs/class/corlib/Test/System.IO/PathTest.cs
mcs/class/corlib/Test/System.Reflection.Emit/AssemblyBuilderTest.cs
mcs/class/corlib/Test/System.Reflection.Emit/ConstructorBuilderTest.cs
mcs/class/corlib/Test/System.Reflection.Emit/DerivedTypesTest.cs
mcs/class/corlib/Test/System.Reflection.Emit/DynamicMethodTest.cs
mcs/class/corlib/Test/System.Reflection.Emit/EnumBuilderTest.cs
mcs/class/corlib/Test/System.Reflection.Emit/GenericTypeParameterBuilderTest.cs
mcs/class/corlib/Test/System.Reflection.Emit/MethodBuilderTestIL.cs [new file with mode: 0644]
mcs/class/corlib/Test/System.Reflection.Emit/ModuleBuilderTest.cs
mcs/class/corlib/Test/System.Reflection.Emit/TypeBuilderTest.cs
mcs/class/corlib/Test/System.Reflection/AssemblyNameTest.cs
mcs/class/corlib/Test/System.Reflection/AssemblyTest.cs
mcs/class/corlib/Test/System.Reflection/ConstructorInfoTest.cs
mcs/class/corlib/Test/System.Reflection/EventInfoTest.cs
mcs/class/corlib/Test/System.Reflection/MethodInfoTest.cs
mcs/class/corlib/Test/System.Reflection/ModuleTest.cs
mcs/class/corlib/Test/System.Reflection/MonoGenericClassTest.cs
mcs/class/corlib/Test/System.Reflection/ParameterInfoTest.cs
mcs/class/corlib/Test/System.Reflection/PropertyInfoTest.cs
mcs/class/corlib/Test/System.Resources/ResourceWriterTest.cs
mcs/class/corlib/Test/System.Runtime.CompilerServices/ConditionalWeakTableTest.cs
mcs/class/corlib/Test/System.Runtime.InteropServices/GCHandleTest.cs
mcs/class/corlib/Test/System.Runtime.InteropServices/RuntimeEnvironmentTest.cs
mcs/class/corlib/Test/System.Runtime.InteropServices/SafeHandleTest.cs
mcs/class/corlib/Test/System.Runtime.Remoting.Messaging/CallContextTest.cs
mcs/class/corlib/Test/System.Runtime.Serialization.Formatters.Binary/BinaryFormatterTest.cs
mcs/class/corlib/Test/System.Runtime.Serialization/SerializationBinderTest.cs
mcs/class/corlib/Test/System.Runtime.Serialization/SerializationInfoTest.cs
mcs/class/corlib/Test/System.Runtime.Versioning/TargetFrameworkAttributeTest.cs
mcs/class/corlib/Test/System.Security.AccessControl/ObjectSecurity_TTest.cs
mcs/class/corlib/Test/System.Security.Cryptography/AesCfbTest.cs
mcs/class/corlib/Test/System.Security.Cryptography/CspParametersTest.cs
mcs/class/corlib/Test/System.Security.Cryptography/HMACMD5Test.cs
mcs/class/corlib/Test/System.Security.Policy/EvidenceTest.cs
mcs/class/corlib/Test/System.Security.Policy/ZoneTest.cs
mcs/class/corlib/Test/System.Text/StringBuilderTest.cs
mcs/class/corlib/Test/System.Threading.Tasks/ParallelTestHelper.cs
mcs/class/corlib/Test/System.Threading.Tasks/ParallelTests.cs
mcs/class/corlib/Test/System.Threading.Tasks/TaskCompletionSourceTests.cs
mcs/class/corlib/Test/System.Threading.Tasks/TaskFactoryTest.cs
mcs/class/corlib/Test/System.Threading.Tasks/TaskFactoryTest_T.cs
mcs/class/corlib/Test/System.Threading.Tasks/TaskSchedulerTest.cs
mcs/class/corlib/Test/System.Threading.Tasks/TaskTest.cs
mcs/class/corlib/Test/System.Threading.Tasks/Task_T_Test.cs
mcs/class/corlib/Test/System.Threading/CancellationTokenSourceTest.cs
mcs/class/corlib/Test/System.Threading/CancellationTokenTests.cs
mcs/class/corlib/Test/System.Threading/CountdownEventTests.cs
mcs/class/corlib/Test/System.Threading/LazyInitializerTest.cs
mcs/class/corlib/Test/System.Threading/ManualResetEventSlimTests.cs
mcs/class/corlib/Test/System.Threading/MonitorTest.cs
mcs/class/corlib/Test/System.Threading/SemaphoreSlimTests.cs
mcs/class/corlib/Test/System.Threading/SpinLockTests.cs
mcs/class/corlib/Test/System.Threading/ThreadLocalTests.cs
mcs/class/corlib/Test/System.Threading/ThreadPoolTest.cs
mcs/class/corlib/Test/System.Threading/ThreadTest.cs
mcs/class/corlib/Test/System/ActivatorTest.cs
mcs/class/corlib/Test/System/AggregateExceptionTests.cs
mcs/class/corlib/Test/System/ArrayTest.cs
mcs/class/corlib/Test/System/CharCategoryTest.cs
mcs/class/corlib/Test/System/CharTest.cs
mcs/class/corlib/Test/System/DateTimeTest.cs
mcs/class/corlib/Test/System/EnumTest.cs
mcs/class/corlib/Test/System/EnvironmentCas.cs
mcs/class/corlib/Test/System/ExceptionCas.cs
mcs/class/corlib/Test/System/GuidTest.cs
mcs/class/corlib/Test/System/MathTest.cs
mcs/class/corlib/Test/System/StringTest.cs
mcs/class/corlib/Test/System/TimeSpanTest.cs
mcs/class/corlib/Test/System/TimeZoneInfoTest.cs
mcs/class/corlib/Test/System/TupleTest.cs
mcs/class/corlib/Test/System/TypeTest.cs
mcs/class/corlib/Test/System/TypedReferenceTest.cs
mcs/class/corlib/Test/System/VersionTest.cs
mcs/class/corlib/coreclr/AsyncLocal.cs [new file with mode: 0644]
mcs/class/corlib/coreclr/DisablePrivateReflectionAttribute.cs [new file with mode: 0644]
mcs/class/corlib/coreclr/EncodingProvider.cs [new file with mode: 0644]
mcs/class/corlib/coreclr/FormattableString.cs [new file with mode: 0644]
mcs/class/corlib/coreclr/FormattableStringFactory.cs [new file with mode: 0644]
mcs/class/corlib/coreclr/WaitHandleExtensions.cs [new file with mode: 0644]
mcs/class/corlib/corlib-net_4_5.csproj
mcs/class/corlib/corlib.dll.sources
mcs/class/corlib/corlib_test.dll.sources
mcs/class/corlib/monotouch_watch_corlib.dll.sources [new file with mode: 0644]
mcs/class/corlib/net_4_5_corlib.dll.sources [deleted file]
mcs/class/corlib/net_4_x_corlib.dll.sources [new file with mode: 0644]
mcs/class/monodoc/monodoc.dll.sources
mcs/class/test-helpers/NetworkHelpers.cs
mcs/errors/CS0101-9-2.cs [new file with mode: 0644]
mcs/errors/Makefile
mcs/errors/cs0101-9.cs [new file with mode: 0644]
mcs/errors/cs0516-3.cs [deleted file]
mcs/errors/cs0568-2.cs [new file with mode: 0644]
mcs/errors/cs0568.cs [new file with mode: 0644]
mcs/errors/cs0619-41.cs [new file with mode: 0644]
mcs/errors/cs0619-58.cs
mcs/errors/cs1644-45.cs [deleted file]
mcs/errors/cs1705-2.cs
mcs/errors/cs1705.cs
mcs/errors/cs1736-2.cs [deleted file]
mcs/errors/cs1940-2.cs [new file with mode: 0644]
mcs/errors/cs7064.cs [new file with mode: 0644]
mcs/errors/cs8075.cs
mcs/errors/cs8079.cs [deleted file]
mcs/errors/known-issues-net_4_5 [deleted file]
mcs/errors/known-issues-net_4_x [new file with mode: 0644]
mcs/ilasm/codegen/AssemblyNameStore.cs [deleted file]
mcs/ilasm/codegen/Class.cs [deleted file]
mcs/ilasm/codegen/ClassTable.cs [deleted file]
mcs/ilasm/codegen/ExternTypeRefInst.cs [deleted file]
mcs/ilasm/codegen/FieldTable.cs [deleted file]
mcs/ilasm/codegen/IClassRef.cs [deleted file]
mcs/ilasm/codegen/ITypeRef.cs [deleted file]
mcs/ilasm/codegen/Location.cs [deleted file]
mcs/ilasm/codegen/Method.cs [deleted file]
mcs/ilasm/codegen/MethodDef.cs
mcs/ilasm/codegen/MethodRef.cs
mcs/ilasm/codegen/MethodTable.cs [deleted file]
mcs/ilasm/codegen/PeapiTypeRef.cs
mcs/ilasm/codegen/TypeDef.cs
mcs/ilasm/ilasm.csproj [new file with mode: 0644]
mcs/ilasm/parser/ILParser.jay
mcs/ilasm/scanner/ILSyntaxError.cs [deleted file]
mcs/ilasm/scanner/ILTables.cs
mcs/mcs/anonymous.cs
mcs/mcs/assembly.cs
mcs/mcs/assign.cs
mcs/mcs/attribute.cs
mcs/mcs/class.cs
mcs/mcs/codegen.cs
mcs/mcs/const.cs
mcs/mcs/context.cs
mcs/mcs/cs-parser.jay
mcs/mcs/cs-tokenizer.cs
mcs/mcs/decl.cs
mcs/mcs/delegate.cs
mcs/mcs/dynamic.cs
mcs/mcs/ecore.cs
mcs/mcs/eval.cs
mcs/mcs/expression.cs
mcs/mcs/flowanalysis.cs
mcs/mcs/generic.cs
mcs/mcs/ikvm.cs
mcs/mcs/import.cs
mcs/mcs/lambda.cs
mcs/mcs/linq.cs
mcs/mcs/location.cs
mcs/mcs/method.cs
mcs/mcs/namespace.cs
mcs/mcs/parameter.cs
mcs/mcs/property.cs
mcs/mcs/statement.cs
mcs/mcs/support.cs
mcs/mcs/typespec.cs
mcs/tests/Makefile
mcs/tests/gtest-284.cs
mcs/tests/gtest-631.cs [new file with mode: 0644]
mcs/tests/gtest-632.cs [new file with mode: 0644]
mcs/tests/gtest-633.cs [new file with mode: 0644]
mcs/tests/gtest-autoproperty-13.cs [deleted file]
mcs/tests/gtest-autoproperty-19.cs [new file with mode: 0644]
mcs/tests/gtest-etree-01.cs
mcs/tests/gtest-exmethod-23.cs
mcs/tests/known-issues-net_4_5 [deleted file]
mcs/tests/known-issues-net_4_x [new file with mode: 0644]
mcs/tests/test-513.cs
mcs/tests/test-695.cs
mcs/tests/test-814.cs
mcs/tests/test-906.cs [deleted file]
mcs/tests/test-926.cs [new file with mode: 0644]
mcs/tests/test-async-68.cs [new file with mode: 0644]
mcs/tests/test-async-76.cs
mcs/tests/test-debug-14-ref.xml
mcs/tests/test-interpolation-02.cs
mcs/tests/test-interpolation-06.cs [new file with mode: 0644]
mcs/tests/test-interpolation-07.cs [new file with mode: 0644]
mcs/tests/test-interpolation-08.cs [new file with mode: 0644]
mcs/tests/test-null-operator-010.cs [deleted file]
mcs/tests/test-null-operator-011.cs [deleted file]
mcs/tests/test-null-operator-10.cs [new file with mode: 0644]
mcs/tests/test-null-operator-11.cs [new file with mode: 0644]
mcs/tests/test-null-operator-12.cs [new file with mode: 0644]
mcs/tests/test-null-operator-13.cs [new file with mode: 0644]
mcs/tests/test-null-operator-14.cs [new file with mode: 0644]
mcs/tests/test-null-operator-15.cs [new file with mode: 0644]
mcs/tests/test-partial-34.cs [new file with mode: 0644]
mcs/tests/test-xml-072-ref.xml [new file with mode: 0644]
mcs/tests/test-xml-072.cs [new file with mode: 0644]
mcs/tests/ver-il-net_4_5.xml [deleted file]
mcs/tests/ver-il-net_4_x.xml [new file with mode: 0644]
mcs/tools/linker/Mono.Linker.Steps/BlacklistStep.cs
mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs
mcs/tools/linker/Mono.Linker.Steps/ResolveFromXmlStep.cs
mcs/tools/linker/Mono.Linker.Steps/SweepStep.cs
mcs/tools/linker/Mono.Linker.Steps/TypeMapStep.cs
mcs/tools/linker/Mono.Linker/LinkContext.cs
mcs/tools/mdoc/Makefile
mcs/tools/mdoc/Mono.Documentation/monodocer.cs
mcs/tools/mdoc/Test/DocTest-enumerations.cs [new file with mode: 0644]
mcs/tools/mdoc/Test/en.expected-enumerations/MyNamespace/MyClass.xml [new file with mode: 0644]
mcs/tools/mdoc/Test/en.expected-enumerations/MyNamespace/MyEnum.xml [new file with mode: 0644]
mcs/tools/mdoc/Test/en.expected-enumerations/MyNamespace/MyEnumAttribute.xml [new file with mode: 0644]
mcs/tools/mdoc/Test/en.expected-enumerations/MyNamespace/MyFlagEnumAttribute.xml [new file with mode: 0644]
mcs/tools/mdoc/Test/en.expected-enumerations/ObjCRuntime/Platform.xml [new file with mode: 0644]
mcs/tools/mdoc/Test/en.expected-enumerations/index.xml [new file with mode: 0644]
mcs/tools/mdoc/Test/en.expected-enumerations/ns-MyNamespace.xml [new file with mode: 0644]
mcs/tools/mdoc/Test/en.expected-enumerations/ns-ObjCRuntime.xml [new file with mode: 0644]
mcs/tools/mkbundle/mkbundle.cs
mcs/tools/monop/Makefile
mcs/tools/resgen/Makefile
mcs/tools/xbuild/data/12.0/Microsoft.CSharp.targets
mcs/tools/xbuild/data/14.0/Microsoft.CSharp.targets
mcs/tools/xbuild/data/2.0/Microsoft.CSharp.targets
mcs/tools/xbuild/data/3.5/Microsoft.CSharp.targets
mcs/tools/xbuild/data/4.0/Microsoft.CSharp.targets
mcs/tools/xbuild/data/Microsoft.VisualBasic.targets
mcs/tools/xbuild/xbuild_test.make
mono/arch/arm/tramp.c [deleted file]
mono/arch/s390x/s390x-codegen.h
mono/io-layer/handles-private.h
mono/io-layer/handles.c
mono/io-layer/processes.c
mono/io-layer/thread-private.h
mono/io-layer/threads.h
mono/io-layer/wait.c
mono/io-layer/wthreads.c
mono/metadata/Makefile.am
mono/metadata/appdomain.c
mono/metadata/appdomain.h
mono/metadata/assembly.c
mono/metadata/assembly.h
mono/metadata/char-conversions.h [deleted file]
mono/metadata/class-internals.h
mono/metadata/class.c
mono/metadata/cominterop.c
mono/metadata/console-unix.c
mono/metadata/console-win32.c
mono/metadata/culture-info-tables.h
mono/metadata/debug-helpers.c
mono/metadata/debug-mono-ppdb.c
mono/metadata/domain-internals.h
mono/metadata/domain.c [changed mode: 0755->0644]
mono/metadata/file-io.c
mono/metadata/file-mmap-posix.c
mono/metadata/filewatcher.c
mono/metadata/filewatcher.h
mono/metadata/gc-internal.h
mono/metadata/gc-stats.c
mono/metadata/gc.c
mono/metadata/icall-def.h
mono/metadata/icall.c
mono/metadata/image.c
mono/metadata/loader.c
mono/metadata/locales.c
mono/metadata/marshal.c
mono/metadata/marshal.h
mono/metadata/metadata-internals.h
mono/metadata/metadata.c
mono/metadata/method-builder.c
mono/metadata/monitor.c
mono/metadata/monitor.h
mono/metadata/mono-config.c
mono/metadata/mono-cq.c [deleted file]
mono/metadata/mono-cq.h [deleted file]
mono/metadata/mono-hash.c
mono/metadata/mono-hash.h
mono/metadata/mono-wsq.c [deleted file]
mono/metadata/mono-wsq.h [deleted file]
mono/metadata/object-internals.h
mono/metadata/object-offsets.h
mono/metadata/object.c
mono/metadata/object.h
mono/metadata/process.c
mono/metadata/process.h
mono/metadata/profiler-private.h
mono/metadata/profiler.c
mono/metadata/profiler.h
mono/metadata/reflection.c
mono/metadata/remoting.c
mono/metadata/runtime.c
mono/metadata/sgen-client-mono.h
mono/metadata/sgen-mono.c
mono/metadata/sgen-new-bridge.c
mono/metadata/sgen-old-bridge.c
mono/metadata/sgen-os-coop.c [new file with mode: 0644]
mono/metadata/sgen-os-mach.c
mono/metadata/sgen-os-posix.c
mono/metadata/sgen-tarjan-bridge.c
mono/metadata/sgen-toggleref.c
mono/metadata/socket-io.c
mono/metadata/sysmath.c
mono/metadata/sysmath.h
mono/metadata/threadpool-internals.h [deleted file]
mono/metadata/threadpool-ms-io-epoll.c
mono/metadata/threadpool-ms-io-kqueue.c
mono/metadata/threadpool-ms-io-poll.c
mono/metadata/threadpool-ms-io.c
mono/metadata/threadpool-ms-io.h
mono/metadata/threadpool-ms.c
mono/metadata/threadpool-ms.h
mono/metadata/threadpool.c [deleted file]
mono/metadata/threadpool.h [deleted file]
mono/metadata/threads-types.h
mono/metadata/threads.c
mono/metadata/tpool-epoll.c [deleted file]
mono/metadata/tpool-kqueue.c [deleted file]
mono/metadata/tpool-poll.c [deleted file]
mono/mini/Makefile.am.in
mono/mini/TestDriver.cs
mono/mini/aot-compiler.c
mono/mini/aot-runtime.c
mono/mini/aot-tests.cs
mono/mini/basic-float.cs
mono/mini/branch-opts.c
mono/mini/cpu-arm.md
mono/mini/cpu-ppc.md
mono/mini/cpu-s390x.md
mono/mini/cpu-x86.md
mono/mini/debugger-agent.c
mono/mini/decompose.c
mono/mini/driver.c
mono/mini/dwarfwriter.c
mono/mini/exceptions-amd64.c
mono/mini/exceptions-arm.c
mono/mini/exceptions-ia64.c
mono/mini/exceptions-mips.c
mono/mini/exceptions-ppc.c
mono/mini/exceptions-s390x.c
mono/mini/exceptions-sparc.c
mono/mini/exceptions-x86.c
mono/mini/generics.cs
mono/mini/graph.c
mono/mini/gshared.cs
mono/mini/helpers.c
mono/mini/ir-emit.h
mono/mini/jit-icalls.c
mono/mini/jit-icalls.h
mono/mini/liveness.c
mono/mini/method-to-ir.c
mono/mini/mini-amd64.c
mono/mini/mini-amd64.h
mono/mini/mini-arm-tls.S [new file with mode: 0644]
mono/mini/mini-arm-tls.h [new file with mode: 0644]
mono/mini/mini-arm.c
mono/mini/mini-arm.h
mono/mini/mini-codegen.c
mono/mini/mini-darwin.c
mono/mini/mini-exceptions.c
mono/mini/mini-gc.c
mono/mini/mini-generic-sharing.c
mono/mini/mini-ia64.c
mono/mini/mini-llvm-cpp.cpp
mono/mini/mini-llvm-cpp.h
mono/mini/mini-llvm-loaded.c
mono/mini/mini-llvm.c
mono/mini/mini-mips.c
mono/mini/mini-ops.h
mono/mini/mini-posix.c
mono/mini/mini-ppc.c
mono/mini/mini-ppc.h
mono/mini/mini-runtime.c
mono/mini/mini-s390x.c
mono/mini/mini-s390x.h
mono/mini/mini-sparc.c
mono/mini/mini-trampolines.c
mono/mini/mini-unwind.h
mono/mini/mini-x86.c
mono/mini/mini-x86.h
mono/mini/mini.c
mono/mini/mini.h
mono/mini/objects.cs
mono/mini/patch-info.h
mono/mini/seq-points.c
mono/mini/ssa.c
mono/mini/support-s390x.h
mono/mini/tasklets.c
mono/mini/test_op_il_seq_point.sh
mono/mini/trace.c
mono/mini/tramp-amd64.c
mono/mini/tramp-arm.c
mono/mini/tramp-ia64.c
mono/mini/tramp-mips.c
mono/mini/tramp-ppc.c
mono/mini/tramp-s390x.c
mono/mini/tramp-sparc.c
mono/mini/tramp-x86.c
mono/mini/unwind.c
mono/mini/xdebug.c
mono/profiler/Makefile.am
mono/profiler/decode.c
mono/profiler/mono-codeanalyst.c [deleted file]
mono/profiler/proflog.c
mono/profiler/proflog.h
mono/sgen/gc-internal-agnostic.h
mono/sgen/sgen-alloc.c
mono/sgen/sgen-cardtable.c
mono/sgen/sgen-cardtable.h
mono/sgen/sgen-client.h
mono/sgen/sgen-conf.h
mono/sgen/sgen-copy-object.h
mono/sgen/sgen-debug.c
mono/sgen/sgen-descriptor.c
mono/sgen/sgen-descriptor.h
mono/sgen/sgen-fin-weak-hash.c
mono/sgen/sgen-gc.c
mono/sgen/sgen-gc.h
mono/sgen/sgen-gray.c
mono/sgen/sgen-gray.h
mono/sgen/sgen-los.c
mono/sgen/sgen-marksweep-drain-gray-stack.h
mono/sgen/sgen-marksweep-scan-object-concurrent.h
mono/sgen/sgen-marksweep.c
mono/sgen/sgen-minor-copy-object.h
mono/sgen/sgen-minor-scan-object.h
mono/sgen/sgen-nursery-allocator.c
mono/sgen/sgen-pinning-stats.c
mono/sgen/sgen-pinning.c
mono/sgen/sgen-pinning.h
mono/sgen/sgen-scan-object.h
mono/sgen/sgen-simple-nursery.c
mono/sgen/sgen-split-nursery.c
mono/sgen/sgen-workers.c
mono/tests/Makefile.am
mono/tests/assemblyresolve/Makefile.am
mono/tests/finalizer-exception.cs
mono/tests/find_aot_method_in_amodule_stress/Makefile [new file with mode: 0644]
mono/tests/find_aot_method_in_amodule_stress/Template.py [new file with mode: 0644]
mono/tests/gc-descriptors/Makefile.am
mono/tests/libtest.c
mono/tests/load-missing.il
mono/tests/monitor-resurrection.cs
mono/tests/pinvoke2.cs
mono/tests/shared-generic-synchronized.2.cs
mono/tests/synchronized.cs
mono/tests/test-tls.cs [new file with mode: 0644]
mono/tests/unhandled-exception.cs [new file with mode: 0644]
mono/unit-tests/test-conc-hashtable.c
mono/utils/Makefile.am
mono/utils/checked-build.c [new file with mode: 0644]
mono/utils/checked-build.h [new file with mode: 0644]
mono/utils/mach-support-amd64.c
mono/utils/mach-support-arm.c
mono/utils/mach-support-x86.c
mono/utils/mono-compiler.h
mono/utils/mono-conc-hashtable.c
mono/utils/mono-conc-hashtable.h
mono/utils/mono-context.c
mono/utils/mono-context.h
mono/utils/mono-hwcap-s390x.h
mono/utils/mono-lazy-init.h [new file with mode: 0644]
mono/utils/mono-logger-internal.h
mono/utils/mono-logger.c
mono/utils/mono-mutex.h
mono/utils/mono-proclib.c
mono/utils/mono-semaphore.c
mono/utils/mono-stack-unwinding.h
mono/utils/mono-threads-coop.c
mono/utils/mono-threads-coop.h
mono/utils/mono-threads-linux.c
mono/utils/mono-threads-mach.c
mono/utils/mono-threads-posix.c
mono/utils/mono-threads-state-machine.c
mono/utils/mono-threads-windows.c [changed mode: 0755->0644]
mono/utils/mono-threads.c
mono/utils/mono-threads.h
msvc/libmonoruntime.vcxproj
msvc/mono.def
msvc/scripts/order.xml
runtime/Makefile.am
scripts/Makefile.am
scripts/mono-find-provides.in
support/errno.c
support/signal.c
tools/locale-builder/Driver.cs
winconfig.h

index e5b638b53e876f7e84a53986c778fa3d6f435fdf..1cb061f77894615a877ca23c16bcce6acb8e816d 100644 (file)
@@ -23,7 +23,6 @@
 *.tlb
 *.tlh
 *.bak
-*.[Cc]ache
 *.ilk
 *.log
 *.lib
@@ -44,6 +43,8 @@ Ankh.NoLoad
 _ReSharper*/
 *.resharper
 [Tt]est[Rr]esult*
+*.orig
+*.rej
 
 # NuGet packages
 !.nuget/*
index 858838fc78f6b5a52e6602e3ee0fcf4723143f93..ee9a2ecdffda2721ce68ac538616e36d829f6b0a 100644 (file)
@@ -17,9 +17,6 @@
 [submodule "external/ikvm"]
        path = external/ikvm
        url = git://github.com/mono/ikvm-fork.git
-[submodule "external/Lucene.Net"]
-       path = external/Lucene.Net
-       url = git://github.com/mono/lucene.net.git
 [submodule "external/ikdasm"]
        path = external/ikdasm
        url = git://github.com/mono/ikdasm.git
@@ -30,3 +27,6 @@
 [submodule "external/reference-assemblies"]
        path = external/binary-reference-assemblies
        url = git://github.com/mono/reference-assemblies.git
+[submodule "external/Lucene.Net.Light"]
+       path = external/Lucene.Net.Light
+       url = git://github.com/mono/Lucene.Net.Light.git
index 68269d7e9175ba4c3ac2f06864f3c3b247b6f836..19f0cfbd7990508265351ab1424b1c6b397106a3 100644 (file)
@@ -10,19 +10,11 @@ SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scr
 ## 'tools' is not normally built
 DIST_SUBDIRS = m4 po $(libgc_dir) eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
 else
-if ONLY_MONOTOUCH
-SUBDIRS = $(MONOTOUCH_SUBDIRS) runtime
-else
-if ONLY_XAMMAC
-SUBDIRS = $(libgc_dir) eglib/src mono runtime
-else
 SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scripts man samples msvc $(docs_dir)
 # Keep in sync with SUBDIRS
 ## 'tools' is not normally built
 DIST_SUBDIRS = m4 po $(libgc_dir) eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
 endif
-endif
-endif
 
 all: update_submodules
 
index d7bfc65a77d237dacf034f05ceab6b07a3c9956e..9ea6638bd1852756ffe3c49428dea8a0e0c12055 100644 (file)
@@ -77,17 +77,10 @@ has_dtrace=no
 parallel_mark=yes
 ikvm_native=yes
 
-case "$host" in
-       powerpc*-*-linux*)
-               # https://bugzilla.novell.com/show_bug.cgi?id=504411
-               disable_munmap=yes
-       ;;
-esac
-
 host_win32=no
 target_win32=no
 platform_android=no
-platform_darwin=no
+host_darwin=no
 case "$host" in
        *-mingw*|*-*-cygwin*)
                AC_DEFINE(DISABLE_PORTABILITY,1,[Disable the io-portability layer])
@@ -118,7 +111,6 @@ case "$host" in
                libgc_configure_args="$libgc_configure_args --enable-win32-dllmain=yes"
                ;;
        *-*-*netbsd*)
-               host_win32=no
                CPPFLAGS="$CPPFLAGS -D_REENTRANT -DGC_NETBSD_THREADS -D_GNU_SOURCE"
                libmono_cflags="-D_REENTRANT"
                LDFLAGS="$LDFLAGS -pthread"
@@ -131,7 +123,6 @@ case "$host" in
                use_sigposix=yes
                ;;
        *-*-kfreebsd*-gnu)
-               host_win32=no
                CPPFLAGS="$CPPFLAGS -DGC_FREEBSD_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP -DUSE_MUNMAP -DTHREAD_LOCAL_ALLOC -pthread"
                libmono_cflags="-D_REENTRANT -DTHREAD_LOCAL_ALLOC -pthread"
                libmono_ldflags="-lpthread -pthread"
@@ -142,7 +133,6 @@ case "$host" in
                use_sigposix=yes
                ;;
        *-*-*freebsd*)
-               host_win32=no
                if test "x$PTHREAD_CFLAGS" = "x"; then
                        CPPFLAGS="$CPPFLAGS -DGC_FREEBSD_THREADS"
                        libmono_cflags=
@@ -166,7 +156,6 @@ case "$host" in
                has_dtrace=yes
                ;;
        *-*-*openbsd*)
-               host_win32=no
                CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE -DGC_OPENBSD_THREADS -DPLATFORM_BSD -D_REENTRANT -DUSE_MMAP"
                if test "x$disable_munmap" != "xyes"; then
                CPPFLAGS="$CPPFLAGS -DUSE_MUNMAP"
@@ -181,7 +170,6 @@ case "$host" in
                use_sigposix=yes
                ;;
        *-*-linux-android*)
-               host_win32=no
                platform_android=yes
                AC_DEFINE(PLATFORM_ANDROID,1,[Targeting the Android platform])
                AC_DEFINE(TARGET_ANDROID,1,[Targeting the Android platform])
@@ -220,7 +208,6 @@ case "$host" in
                mono_cv_clang=no
                ;;
        *-*-linux*)
-               host_win32=no
                CPPFLAGS="$CPPFLAGS -DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP"
                if test "x$disable_munmap" != "xyes"; then
                        CPPFLAGS="$CPPFLAGS -DUSE_MUNMAP"
@@ -239,10 +226,13 @@ case "$host" in
                        support_boehm=no
                        with_gc=sgen
                        ;;
+               powerpc*-*-linux*)
+                       # https://bugzilla.novell.com/show_bug.cgi?id=504411
+                       disable_munmap=yes
+                       ;;
                esac
                ;;
        *-*-nacl*)
-               host_win32=no
                CPPFLAGS="$CPPFLAGS -DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP"
                if test "x$disable_munmap" != "xyes"; then
                        CPPFLAGS="$CPPFLAGS -DUSE_MUNMAP"
@@ -256,7 +246,6 @@ case "$host" in
                AC_DEFINE(DISABLE_ATTACH, 1, [Disable agent attach support])
                ;;
        *-*-hpux*)
-               host_win32=no
                CPPFLAGS="$CPPFLAGS -DGC_HPUX_THREADS -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_REENTRANT"
                # +ESdbgasm only valid on bundled cc on RISC
                # silently ignored for ia64
@@ -275,7 +264,6 @@ case "$host" in
                use_sigposix=yes
                ;;
        *-*-solaris*)
-               host_win32=no
                CPPFLAGS="$CPPFLAGS -DGC_SOLARIS_THREADS -DGC_SOLARIS_PTHREADS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_MMAP -DUSE_MUNMAP -DPLATFORM_SOLARIS"
                need_link_unlink=yes
                libmono_cflags="-D_REENTRANT"
@@ -288,10 +276,9 @@ case "$host" in
                ;;
        *-*-darwin*)
                parallel_mark="Disabled_Currently_Hangs_On_MacOSX"
-               host_win32=no
-               platform_darwin=yes
+               host_darwin=yes
                target_mach=yes
-               CPPFLAGS="$CPPFLAGS -no-cpp-precomp -D_THREAD_SAFE -DGC_MACOSX_THREADS -DPLATFORM_MACOSX -DUSE_MMAP -DUSE_MUNMAP"
+               CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE -DGC_MACOSX_THREADS -DPLATFORM_MACOSX -DUSE_MMAP -DUSE_MUNMAP"
                libmono_cflags="-D_THREAD_SAFE"
                need_link_unlink=yes
                AC_DEFINE(PTHREAD_POINTER_ID)
@@ -327,7 +314,6 @@ case "$host" in
                esac
                ;;
        *-*-haiku*)
-               host_win32=no
                CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_THREAD_SAFE"
                libmono_cflags="-D_REENTRANT -D_THREAD_SAFE"
                libdl=
@@ -339,7 +325,6 @@ case "$host" in
                ;;
        *)
                AC_MSG_WARN([*** Please add $host to configure.ac checks!])
-               host_win32=no
                libdl="-ldl"
                ;;
 esac
@@ -360,9 +345,8 @@ fi
 AC_SUBST(extra_runtime_ldflags)
 AM_CONDITIONAL(HOST_WIN32, test x$host_win32 = xyes)
 AM_CONDITIONAL(TARGET_WIN32, test x$target_win32 = xyes)
-AM_CONDITIONAL(PLATFORM_GNU, echo x$target_os | grep -q -- -gnu)
 AM_CONDITIONAL(PLATFORM_LINUX, echo x$target_os | grep -q linux)
-AM_CONDITIONAL(PLATFORM_DARWIN, test x$platform_darwin = xyes)
+AM_CONDITIONAL(PLATFORM_DARWIN, test x$host_darwin = xyes)
 AM_CONDITIONAL(PLATFORM_SIGPOSIX, test x$use_sigposix = xyes)
 AM_CONDITIONAL(PLATFORM_ANDROID, test x$platform_android = xyes)
 
@@ -428,7 +412,7 @@ AC_PROG_LD_GNU
 
 AM_ICONV()
 
-AC_CHECK_HEADERS(sys/filio.h sys/sockio.h netdb.h utime.h sys/utime.h semaphore.h sys/un.h linux/rtc.h sys/syscall.h sys/mkdev.h sys/uio.h sys/param.h sys/sysctl.h libproc.h)
+AC_CHECK_HEADERS(sys/filio.h sys/sockio.h netdb.h utime.h sys/utime.h semaphore.h sys/un.h linux/rtc.h sys/syscall.h sys/mkdev.h sys/uio.h sys/param.h sys/sysctl.h libproc.h sys/prctl.h)
 AC_CHECK_HEADERS(sys/param.h sys/socket.h sys/ipc.h sys/sem.h sys/utsname.h alloca.h ucontext.h pwd.h sys/select.h netinet/tcp.h netinet/in.h unistd.h sys/types.h link.h asm/sigcontext.h sys/inotify.h arpa/inet.h complex.h)
 AC_CHECK_HEADERS([linux/netlink.h linux/rtnetlink.h],
                   [], [], [#include <stddef.h>
@@ -667,17 +651,9 @@ AC_CONFIG_SUBDIRS(eglib)
 
 GLIB_CFLAGS='-I$(top_srcdir)/eglib/src -I$(top_builddir)/eglib/src'
 GLIB_LIBS='-L$(top_builddir)/eglib/src -leglib -lm'
-BUILD_GLIB_CFLAGS="$GLIB_CFLAGS"
-BUILD_GLIB_LIBS="$GLIB_LIBS"
-GMODULE_CFLAGS="$GLIB_CFLAGS"
-GMODULE_LIBS="$GLIB_LIBS"
   
 AC_SUBST(GLIB_CFLAGS)
 AC_SUBST(GLIB_LIBS)
-AC_SUBST(GMODULE_CFLAGS)
-AC_SUBST(GMODULE_LIBS)
-AC_SUBST(BUILD_GLIB_CFLAGS)
-AC_SUBST(BUILD_GLIB_LIBS)
 
 # Enable support for fast thread-local storage
 # Some systems have broken support, so we allow to disable it.
@@ -953,12 +929,6 @@ if test x$has_extension_module != xno ; then
        AC_MSG_NOTICE([Enabling mono extension module.])
 fi
 
-AC_ARG_ENABLE(gsharing, [  --enable-gsharing Enable gsharing], enable_gsharing=$enableval, enable_gsharing=no)
-if test x$enable_gsharing = xyes; then
-       AC_DEFINE(ENABLE_GSHAREDVT,1,[Gsharing])
-fi
-
-# A synonym
 AC_ARG_ENABLE(gsharedvt, [  --enable-gsharedvt Enable generic valuetype sharing], enable_gsharedvt=$enableval, enable_gsharedvt=no)
 if test x$enable_gsharedvt = xyes; then
        AC_DEFINE(ENABLE_GSHAREDVT,1,[Gsharedvt])
@@ -1100,6 +1070,8 @@ dnl *** Checks for signals
 dnl ***********************************
 AC_CHECK_HEADERS(signal.h)
 AC_CHECK_FUNCS(sigaction)
+AC_CHECK_FUNCS(kill)
+AC_CHECK_FUNCS(signal)
 
 if test x$host_win32 = xno; then
 
@@ -1176,6 +1148,7 @@ if test x$host_win32 = xno; then
        AC_CHECK_FUNCS(dladdr)
        AC_CHECK_FUNCS(sysconf)
        AC_CHECK_FUNCS(getrlimit)
+       AC_CHECK_FUNCS(prctl)
 
        AC_CHECK_FUNCS(sched_setaffinity)
        AC_CHECK_FUNCS(sched_getcpu)
@@ -1938,7 +1911,7 @@ if test x$host_win32 = xno; then
        dnl * back 
        dnl **************************************
        if test "x$havekqueue" = "xyes" -a "x$ac_cv_header_sys_event_h" = "xyes"; then
-               if test "x$platform_darwin" = "xno"; then
+               if test "x$host_darwin" = "xno"; then
                        AC_DEFINE(USE_KQUEUE_FOR_THREADPOOL, 1, [Use kqueue for the threadpool])
                fi
        fi
@@ -2097,6 +2070,8 @@ if test x$host_win32 = xno; then
        AC_CHECK_FUNCS(fstatat mknodat readlinkat)
        AC_CHECK_FUNCS(readv writev preadv pwritev)
        AC_CHECK_FUNCS(setpgid)
+       AC_CHECK_FUNCS(system)
+       AC_CHECK_FUNCS(fork execve)
        AC_CHECK_SIZEOF(size_t)
        AC_CHECK_TYPES([blksize_t], [AC_DEFINE(HAVE_BLKSIZE_T)], , 
                [#include <sys/types.h>
@@ -2185,10 +2160,6 @@ if test x$host_win32 = xno; then
         #endif
        ])
        AC_CHECK_HEADERS([termios.h])
-
-       dnl * This is provided in io-layer, but on windows it's only available
-       dnl * on xp+
-       AC_DEFINE(HAVE_GETPROCESSID, 1, [Define if GetProcessId is available])
 else
        dnl *********************************
        dnl *** Checks for Windows compilation ***
@@ -2347,16 +2318,6 @@ else
        AC_CHECK_DECLS(InterlockedAdd, [], [], [[#include <windows.h>]])
        AC_CHECK_DECLS(InterlockedAdd64, [], [], [[#include <windows.h>]])
        AC_CHECK_DECLS(__readfsdword, [], [], [[#include <windows.h>]])
-
-       AC_MSG_CHECKING(for GetProcessId)
-       AC_TRY_COMPILE([#include <windows.h>], [
-               GetProcessId (0);
-       ], [
-          AC_MSG_RESULT(yes)
-          AC_DEFINE(HAVE_GETPROCESSID)
-       ], [
-          AC_MSG_RESULT(no)
-       ])
 fi
 
 dnl socklen_t check
@@ -2401,8 +2362,6 @@ if test "x$ac_cv_truncl" != "xyes"; then
    AC_CHECK_LIB(sunmath, aintl, [ AC_DEFINE(HAVE_AINTL, 1, [Has the 'aintl' function]) LIBS="$LIBS -lsunmath"])
 fi
 
-AC_CHECK_FUNCS(round)
-AC_CHECK_FUNCS(rint)
 AC_CHECK_FUNCS(execvp)
 
 dnl ****************************
@@ -2474,7 +2433,7 @@ fi
  
 AC_MSG_CHECKING([if inter-process shared handles are requested])
 # Same as --enable-minimal=shared_handles
-AC_ARG_ENABLE(shared-handles, [  --disable-shared-handles disable inter-process shared handles], try_shared_handles=$enableval, try_shared_handles=yes)
+AC_ARG_ENABLE(shared-handles, [  --disable-shared-handles disable inter-process shared handles], try_shared_handles=$enableval, try_shared_handles=no)
 AC_MSG_RESULT($try_shared_handles)
 if test "x$try_shared_handles" != "xyes"; then
        AC_DEFINE(DISABLE_SHARED_HANDLES, 1, [Disable inter-process shared handles])
@@ -2724,13 +2683,11 @@ XINERAMA="libXinerama.so.1"
 sizeof_register="SIZEOF_VOID_P"
 
 jit_wanted=true
-sgen_supported=false
 boehm_supported=true
 case "$host" in
        mips*)
                TARGET=MIPS;
                arch_target=mips;
-               sgen_supported=true
                ACCESS_UNALIGNED="no"
 
                AC_MSG_CHECKING(for mips n32)
@@ -2769,25 +2726,20 @@ case "$host" in
                        # foo.c:6: warning: visibility attribute not supported in this configuration; ignored
                        # ld: fatal: relocation error: R_386_GOTOFF: file /var/tmp//ccxYR96k.o: symbol astruct: relocation must bind locally
                        have_visibility_hidden=no
-                       sgen_supported=true
                        ;;
                  mingw*|cygwin*)
-                       sgen_supported=true
                        have_visibility_hidden=no                 
                        ;;
                  haiku*)
                        LIBC=libroot.so
                        ;;
                  linux*)
-                       sgen_supported=true
                        AOT_SUPPORTED="yes"
                        ;;
                  darwin*)
-                       sgen_supported=true
                        AOT_SUPPORTED="yes"
                        ;;
                  openbsd*|freebsd*|kfreebsd-gnu*)
-                       sgen_supported=true
                        ;;
                esac
                ;;
@@ -2800,18 +2752,14 @@ case "$host" in
                fi
                case $host_os in
                  linux*)
-                       sgen_supported=true
                        AOT_SUPPORTED="yes"
                        ;;
                  darwin*)
-                       sgen_supported=true
                        AOT_SUPPORTED="yes"
                        ;;
                  openbsd*|freebsd*|kfreebsd-gnu*)
-                       sgen_supported=true
                        ;;
                  mingw*)
-                       sgen_supported=true
                        ;;
                esac
                case "$host" in
@@ -2851,7 +2799,6 @@ case "$host" in
                if test x"$AR" = xfalse; then
                        AC_MSG_ERROR([The required utility 'ar' is not found in your PATH. Usually it can be found in /usr/ccs/bin.])
                fi
-               sgen_supported=true
                ;;
        *-mingw*|*-*-cygwin*)
                # When this is enabled, it leads to very strange crashes at runtime (gcc-3.4.4)
@@ -2871,22 +2818,27 @@ case "$host" in
                arch_target=ppc;
                case $host_os in
                  linux*|darwin*)
-                       sgen_supported=true
                        ;;
                esac
                ;;
+       armv7k-*-darwin*)
+               TARGET=ARM;
+               TARGET_SYS=WATCHOS
+               arch_target=arm;
+               ACCESS_UNALIGNED="no"
+               CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
+               ;;
+
        arm*-darwin*)
                TARGET=ARM;
                arch_target=arm;
                ACCESS_UNALIGNED="no"
                CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
-               sgen_supported=true
                ;;
        arm*-linux*)
                TARGET=ARM;
                arch_target=arm;
                ACCESS_UNALIGNED="no"
-               sgen_supported=true
                AOT_SUPPORTED="yes"
                CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
                ;;
@@ -2895,21 +2847,18 @@ case "$host" in
 #              TARGET=ARM;
 #              arch_target=arm;
 #              ACCESS_UNALIGNED="no"
-#              sgen_supported=true
 #              AOT_SUPPORTED="no"
 #              ;;
        aarch64-*)
                # https://lkml.org/lkml/2012/7/15/133
                TARGET=ARM64
                arch_target=arm64
-               sgen_supported=true
                boehm_supported=false
                ;;
        s390x-*-linux*)
                TARGET=S390X;
                arch_target=s390x;
                ACCESS_UNALIGNED="yes"
-               sgen_supported=true
                CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES"
                ;;
 esac
@@ -2928,6 +2877,11 @@ if test "x$host" != "x$target"; then
                # Can't use tls, since it depends on the runtime detection of tls offsets
                # in mono-compiler.h
                with_tls=pthread
+               case "$target" in
+               armv7k-*)
+                       AC_DEFINE(TARGET_WATCHOS, 1, [...])
+                       ;;
+               esac            
                ;;
    powerpc64-ps3-linux-gnu)
                TARGET=POWERPC64
@@ -3008,7 +2962,6 @@ if test "x$host" != "x$target"; then
                AC_DEFINE(TARGET_X86, 1, [...])
                AC_DEFINE(TARGET_ANDROID, 1, [...])
                CPPFLAGS="$CPPFLAGS"
-               sgen_supported=true
                # Can't use tls, since it depends on the runtime detection of tls offsets
                # in mono-compiler.h            
                with_tls=pthread
@@ -3020,7 +2973,6 @@ if test "x$host" != "x$target"; then
                AC_DEFINE(TARGET_AMD64, 1, [...])
                AC_DEFINE(TARGET_ANDROID, 1, [...])
                CPPFLAGS="$CPPFLAGS"
-               sgen_supported=true
                # Can't use tls, since it depends on the runtime detection of tls offsets
                # in mono-compiler.h
                with_tls=pthread
@@ -3032,7 +2984,6 @@ if test "x$host" != "x$target"; then
                AC_DEFINE(TARGET_AMD64, 1, [...])
                AC_DEFINE(TARGET_PS4, 1, [...])
                CPPFLAGS="$CPPFLAGS"
-               sgen_supported=true
                # Can't use tls, since it depends on the runtime detection of tls offsets
                # in mono-compiler.h
                with_tls=pthread
@@ -3145,7 +3096,12 @@ if test x$GCC = "xyes"; then
 fi
 
 if test "x$target_mach" = "xyes"; then
-   if test "x$TARGET" = "xARM" -o "x$TARGET" = "xARM64"; then
+
+   if test "x$TARGET_SYS" = "xWATCHOS"; then
+         AC_DEFINE(TARGET_WATCHOS,1,[The JIT/AOT targets WatchOS])
+         CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DTARGET_WATCHOS"
+         CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DTARGET_WATCHOS"
+   elif test "x$TARGET" = "xARM" -o "x$TARGET" = "xARM64"; then
          AC_DEFINE(TARGET_IOS,1,[The JIT/AOT targets iOS])
          CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DTARGET_IOS"
          CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DTARGET_IOS"
@@ -3195,21 +3151,11 @@ fi
 dnl 
 dnl Simple Generational checks (sgen)
 dnl
-if $sgen_supported; then
-   build_sgen_default=yes
-else
-   build_sgen_default=no
-fi
 SGEN_DEFINES=
-AC_ARG_WITH(sgen, [  --with-sgen=yes,no             Extra Generational GC, default=yes],[buildsgen=$with_sgen],[buildsgen=$build_sgen_default])
+AC_ARG_WITH(sgen, [  --with-sgen=yes,no             Extra Generational GC, default=yes],[buildsgen=$with_sgen],[buildsgen=yes])
 if test x$buildsgen = xyes; then
-   if $sgen_supported; then
-       SGEN_DEFINES="-DHAVE_SGEN_GC -DHAVE_MOVING_COLLECTOR"
-       gc_msg="sgen and $gc_msg"
-   else
-       buildsgen=no
-       AC_MSG_WARN("Sgen is not supported on this platform")
-   fi
+   SGEN_DEFINES="-DHAVE_SGEN_GC -DHAVE_MOVING_COLLECTOR"
+   gc_msg="sgen and $gc_msg"
 fi
 AC_SUBST(SGEN_DEFINES)
 AM_CONDITIONAL(SUPPORT_SGEN, test x$buildsgen = xyes)
@@ -3355,7 +3301,7 @@ if test ${TARGET} = ARM; then
        fpu=NONE
 
        # iOS GCC always uses the 'softfp' ABI.
-       if test x"$GCC" = xyes && test x$platform_darwin = xyes; then
+       if test x"$GCC" = xyes && test x$host_darwin = xyes; then
                fpu=VFP
        fi
 
@@ -3489,10 +3435,11 @@ case "x$libgc" in
                ;;
 esac
 
-AC_ARG_WITH(profile4_5,[  --with-profile4_5=yes,no        If you want to install the 4.5 FX (defaults to yes)],                [], [with_profile4_5=yes])
-AC_ARG_WITH(monodroid, [  --with-monodroid=yes,no         If you want to build the MonoDroid assemblies (defaults to no)],     [], [with_monodroid=no])
-AC_ARG_WITH(monotouch, [  --with-monotouch=yes,no,only    If you want to build the MonoTouch assemblies (defaults to no)],     [], [with_monotouch=no])
-AC_ARG_WITH(xammac,    [  --with-xammac=yes,no,only       If you want to build the Xamarin.Mac assemblies (defaults to no)],   [], [with_xammac=no])
+AC_ARG_WITH(profile4_x,      [  --with-profile4=yes,no          If you want to install the 4.6 FX (defaults to yes)],                 [], [with_profile4_x=yes])
+AC_ARG_WITH(monodroid,       [  --with-monodroid=yes,no         If you want to build the MonoDroid assemblies (defaults to no)],      [], [with_monodroid=no])
+AC_ARG_WITH(monotouch,       [  --with-monotouch=yes,no         If you want to build the Xamarin.iOS assemblies (defaults to no)],    [], [with_monotouch=no])
+AC_ARG_WITH(monotouch_watch, [  --with-monotouch_watch=yes,no   If you want to build the Xamarin.WatchOS assemblies (defaults to no)],[], [with_monotouch_watch=no])
+AC_ARG_WITH(xammac,          [  --with-xammac=yes,no            If you want to build the Xamarin.Mac assemblies (defaults to no)],    [], [with_xammac=no])
 
 OPROFILE=no
 AC_ARG_WITH(oprofile,[  --with-oprofile=no,<oprofile install dir>   Enable oprofile support (defaults to no)],[
@@ -3523,7 +3470,7 @@ AC_ARG_WITH(mcs_docs,[  --with-mcs-docs=yes,no         If you want to build the
                DISABLE_MCS_DOCS=yes
        fi
 ])
-if test x$with_profile4_5 != xyes; then
+if test x$with_profile4_x != xyes; then
        DISABLE_MCS_DOCS=yes
 fi
 
@@ -3539,6 +3486,13 @@ AC_ARG_WITH(cooperative_gc, [  --with-cooperative-gc=yes|no      Enable cooperat
        fi
 ], [with_cooperative_gc=no])
 
+AC_ARG_WITH(checked_build, [  --with-checked-build=yes|no      Enable checked build (expensive asserts)) (defaults to no)],[
+       if test x$with_checked_build != xno ; then
+               AC_DEFINE(CHECKED_BUILD,1,[Enable checked build.])
+       fi
+], [with_checked_build=no])
+
+
 AC_CHECK_HEADER([malloc.h], 
                [AC_DEFINE([HAVE_USR_INCLUDE_MALLOC_H], [1], 
                        [Define to 1 if you have /usr/include/malloc.h.])],,)
@@ -3569,9 +3523,10 @@ dnl Consistency settings
 dnl
 if test x$cross_compiling = xyes -o x$enable_mcs_build = xno; then
    DISABLE_MCS_DOCS=yes
-   with_profile4_5=no
+   with_profile4_x=no
    with_monodroid=no
    with_monotouch=no
+   with_monotouch_watch=no
    with_xammac=no
 fi
 
@@ -3591,12 +3546,11 @@ AC_SUBST(OPROFILE_LIBS)
 
 libmono_ldflags="$libmono_ldflags $LIBS"
 
-AM_CONDITIONAL(INSTALL_4_5, [test "x$with_profile4_5" = xyes])
+AM_CONDITIONAL(INSTALL_4_x, [test "x$with_profile4_x" = xyes])
 AM_CONDITIONAL(INSTALL_MONODROID, [test "x$with_monodroid" != "xno"])
 AM_CONDITIONAL(INSTALL_MONOTOUCH, [test "x$with_monotouch" != "xno"])
+AM_CONDITIONAL(INSTALL_MONOTOUCH_WATCH, [test "x$with_monotouch_watch" != "xno"])
 AM_CONDITIONAL(INSTALL_XAMMAC, [test "x$with_xammac" != "xno"])
-AM_CONDITIONAL(ONLY_MONOTOUCH, [test "x$with_monotouch" = "xonly"])
-AM_CONDITIONAL(ONLY_XAMMAC, [test "x$with_xammac" = "xonly"])
 
 AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes)
 AM_CONDITIONAL(MIPS_SGI, test ${TARGET}${ac_cv_prog_gcc} = MIPSno)
@@ -3649,6 +3603,22 @@ else
 fi
 AC_SUBST(mono_cfg_dir)
 
+default_profile=net_4_x
+if test -z "$INSTALL_MONODROID_TRUE"; then :
+   default_profile=monodroid
+fi
+if test -z "$INSTALL_MONOTOUCH_TRUE"; then :
+   default_profile=monotouch
+fi
+if test -z "$INSTALL_XAMMAC_TRUE"; then :
+   default_profile=xammac
+fi
+if test -z "$INSTALL_4_x_TRUE"; then :
+   default_profile=net_4_x
+fi
+DEFAULT_PROFILE=$default_profile
+AC_SUBST(DEFAULT_PROFILE)
+
 AC_CONFIG_FILES([po/mcs/Makefile.in])
 
 AC_CONFIG_FILES([runtime/mono-wrapper],[chmod +x runtime/mono-wrapper])
@@ -3897,7 +3867,7 @@ if test x$host_win32 = xyes; then
    sed -e "s,-mno-cygwin,,g" libtool > libtool.new; mv libtool.new libtool; chmod 755 libtool
 fi
 
-if test x$platform_darwin = xyes; then
+if test x$host_darwin = xyes; then
    # This doesn't seem to be required and it slows down parallel builds
    sed -e 's,lock_old_archive_extraction=yes,lock_old_archive_extraction=no,g' < libtool > libtool.new && mv libtool.new libtool && chmod +x libtool
 fi
@@ -3946,7 +3916,7 @@ fi
 
     echo "MONO_VERSION = $myver" >> $mcs_topdir/build/config.make
 
-    if test x$platform_darwin = xyes; then
+    if test x$host_darwin = xyes; then
       echo "PLATFORM = darwin" >> $mcs_topdir/build/config.make
     fi
 
@@ -3965,20 +3935,6 @@ fi
     if test x$has_extension_module != xno; then
         echo "EXTENSION_MODULE = 1" >> $srcdir/$mcsdir/build/config.make
     fi
-
-       default_profile=net_4_5
-    if test -z "$INSTALL_MONODROID_TRUE"; then :
-               default_profile=monodroid
-    fi
-    if test -z "$INSTALL_MONOTOUCH_TRUE"; then :
-               default_profile=monotouch
-    fi
-       if test -z "$INSTALL_XAMMAC_TRUE"; then :
-               default_profile=xammac
-       fi
-    if test -z "$INSTALL_4_5_TRUE"; then :
-               default_profile=net_4_5
-    fi
     
     echo "DEFAULT_PROFILE = $default_profile" >> $srcdir/$mcsdir/build/config.make
     
@@ -4008,13 +3964,14 @@ echo "
        LLVM Back End: $enable_llvm (dynamically loaded: $enable_loadedllvm)
 
    Libraries:
-       .NET 4.5:      $with_profile4_5
-       MonoDroid:     $with_monodroid
-       MonoTouch:     $with_monotouch
-       Xamarin.Mac:   $with_xammac
-       JNI support:   $jdk_headers_found
-       libgdiplus:    $libgdiplus_msg
-       zlib:          $zlib_msg
+       .NET 4.6:        $with_profile4_x
+       MonoDroid:       $with_monodroid
+       Xamarin.iOS:     $with_monotouch
+       Xamarin.WatchOS: $with_monotouch_watch
+       Xamarin.Mac:     $with_xammac
+       JNI support:     $jdk_headers_found
+       libgdiplus:      $libgdiplus_msg
+       zlib:            $zlib_msg
        $disabled
 "
 if test x$with_static_mono = xno -a "x$host_win32" != "xyes"; then
index b7601766e9549accaa0bea356184ddbe6dfe08dc..b4b7243ecfd001bb60aeb9b0979840a8cd170c28 100644 (file)
@@ -10,7 +10,7 @@
        <dllmap dll="i:odbc32.dll" target="libiodbc.dylib" os="osx"/>
        <dllmap dll="oci" target="libclntsh@libsuffix@" os="!windows"/>
        <dllmap dll="db2cli" target="libdb2_36@libsuffix@" os="!windows"/>
-       <dllmap dll="MonoPosixHelper" target="@prefix@/@reloc_libdir@/libMonoPosixHelper@libsuffix@" os="!windows" />
+       <dllmap dll="MonoPosixHelper" target="$mono_libdir/libMonoPosixHelper@libsuffix@" os="!windows" />
        <dllmap dll="i:msvcrt" target="@LIBC@" os="!windows"/>
        <dllmap dll="i:msvcrt.dll" target="@LIBC@" os="!windows"/>
        <dllmap dll="sqlite" target="@SQLITE@" os="!windows"/>
index 04fed0f2873b652f8f1901d5e0453e4bdaeca171..08576f1a7de515eeda783c2936310d8288aa6629 100644 (file)
@@ -144,7 +144,8 @@ public enum Lock {
        AssemblyBindingLock,
        MarshalLock,
        ClassesLock,
-       LoaderGlobalDataLock
+       LoaderGlobalDataLock,
+       ThreadsLock,
 }
 
 public class SimLock
@@ -242,7 +243,24 @@ public class SimLock
        }
 
        public override string ToString () {
-               return String.Format ("{0}", kind);
+               switch (kind) {
+               case Lock.LoaderLock:
+               case Lock.IcallLock:
+               case Lock.AssemblyBindingLock:
+               case Lock.MarshalLock:
+               case Lock.ClassesLock:
+               case Lock.LoaderGlobalDataLock:
+               case Lock.ThreadsLock:
+                       return String.Format ("{0}", kind);
+
+               case Lock.ImageDataLock:
+               case Lock.DomainLock:
+               case Lock.DomainAssembliesLock:
+               case Lock.DomainJitCodeHashLock:
+                       return String.Format ("{0}[{1}]", kind, id);
+               default:
+                       return String.Format ("Unknown({0})[{1}]", kind, id);
+               }
        }
 }
 
@@ -311,6 +329,10 @@ public class Trace {
                "add_record",
                "mono_locks_lock_acquired",
                "mono_locks_lock_released",
+               "mono_threads_lock",
+               "mono_threads_unlock",
+               "mono_domain_lock",
+               "mono_domain_unlock",
        };
 
        public Trace (string[] fields) {
index 5f4e116ab2985ad03aae5944fd3c4a54e3db9d3d..64268cd8d9983b1857d05709b9216c328e9f16ad 100644 (file)
@@ -6,4 +6,4 @@ libdir=${exec_prefix}/lib
 Name: Mono NUnit
 Description: Mono's version of NUnit
 Version: @VERSION@
-Libs: -r:${libdir}/mono/2.0/nunit.core.dll -r:${libdir}/mono/2.0/nunit.core.interfaces.dll -r:${libdir}/mono/2.0/nunit.core.extensions.dll -r:${libdir}/mono/2.0/nunit.framework.dll -r:${libdir}/mono/2.0/nunit.framework.extensions.dll -r:${libdir}/mono/2.0/nunit.mocks.dll -r:${libdir}/mono/2.0/nunit.util.dll -r:${libdir}/mono/2.0/nunit-console-runner.dll 
+Libs: -r:${libdir}/mono/4.5/nunit.core.dll -r:${libdir}/mono/4.5/nunit.core.interfaces.dll -r:${libdir}/mono/4.5/nunit.core.extensions.dll -r:${libdir}/mono/4.5/nunit.framework.dll -r:${libdir}/mono/4.5/nunit.framework.extensions.dll -r:${libdir}/mono/4.5/nunit.mocks.dll -r:${libdir}/mono/4.5/nunit.util.dll -r:${libdir}/mono/4.5/nunit-console-runner.dll 
index 9c514420403427864d1c3e36e808f0371b6c01c4..bb90f1f20019cc4d19c08a843d38fbccc27a6fda 100644 (file)
@@ -54,6 +54,10 @@ EXTRA_DIST = \
        TODO                    \
        unmanaged-calls 
 
+-include $(mcs_topdir)/build/config.make
+
+CLASS=$(mcs_topdir)/class/lib/$(DEFAULT_PROFILE)
+
 dist-hook:
        $(mkdir_p)  $(distdir)/sources
        $(mkdir_p)  $(distdir)/svgs
@@ -89,14 +93,14 @@ mono-file-formats.tree: $(srcdir)/docs.make $(srcdir)/Makefile.am $(srcdir)/depl
 deploy/.stamp: convert.exe Makefile.am 
        $(mkdir_p) html
        runtimedir=`cd ../runtime && pwd`; export runtimedir; \
-       MONO_PATH=../mcs/class/lib/net_4_5 perl $(srcdir)/exdoc -h $(srcdir) -t . $(srcdir)/../mono/*/*.c
+       MONO_PATH=$(CLASS) perl $(srcdir)/exdoc -h $(srcdir) -t . $(srcdir)/../mono/*/*.c
        touch $@
 
 extract: deploy/.stamp
 
 convert.exe: convert.cs AgilityPack.dll
-       $(TOOL_MAKE) PROFILE=net_4_5 convert.exe
+       $(TOOL_MAKE) convert.exe
 
 AgilityPack.dll: 
-       $(TOOL_MAKE) PROFILE=net_4_5 AgilityPack.dll
+       $(TOOL_MAKE) AgilityPack.dll
 
index 5281419c00bcffd42155da17f705895cd7232e29..9d094ea7cdfaef28532cc71d1d167c34141178ce 100644 (file)
@@ -136,6 +136,7 @@ AC_CHECK_SIZEOF(long)
 AC_CHECK_SIZEOF(long long)
 AC_CHECK_FUNCS(strlcpy stpcpy strtok_r rewinddir vasprintf)
 AC_CHECK_FUNCS(getrlimit)
+AC_CHECK_FUNCS(fork execv execve)
 
 #
 # Mono currently supports 10.6, but strndup is not available prior to 10.7; avoiding
@@ -150,7 +151,7 @@ elif test x$target_ios = xno; then
 AC_CHECK_FUNCS(strndup getpwuid_r)
 fi
 
-AM_CONDITIONAL(NEED_VASPRINTF, test x$have_vasprintf = x )
+AM_CONDITIONAL(NEED_VASPRINTF, test x$ac_cv_func_vasprintf = x )
 AM_ICONV()
 AC_SEARCH_LIBS(sqrtf, m)
 
index ba0f93f9be53ddad6d9470987036458efb4df91e..8f5a245cfebac07514f809750e28dd8210685183 100644 (file)
@@ -36,7 +36,7 @@ typedef signed   @GSIZE@ gssize;
 #define G_HAVE_ISO_VARARGS
 #endif
 
-#if defined (__native_client__)
+#if defined (__native_client__) || defined (HOST_WATCHOS)
 #undef G_BREAKPOINT
 #define G_BREAKPOINT()
 #endif
index c7bd3f8e994c3beb2160b7a727e10aa3f84daa0a..273024871c5f890e01410f8a12094cf256cd33d8 100644 (file)
@@ -104,13 +104,15 @@ get_pw_data (void)
                                home_dir = g_strdup (pw.pw_dir);
                        if (user_name == NULL)
                                user_name = g_strdup (pw.pw_name);
-               } else {
-                       if (user_name == NULL)
-                               user_name = "somebody";
                }
        }
 #endif
 
+       if (user_name == NULL)
+               user_name = "somebody";
+       if (home_dir == NULL)
+               home_dir = "/";
+
        pthread_mutex_unlock (&pw_lock);
 }
 
index a01904e3e3440cffe35c1ce0383382d9e8ceb227..4d0bf9e8eca919c44d609095fef62b01ada0f9a9 100644 (file)
@@ -248,6 +248,9 @@ g_spawn_command_line_sync (const gchar *command_line,
                                GError **error)
 {
 #ifdef G_OS_WIN32
+#elif !defined (HAVE_FORK) || !defined (HAVE_EXECV)
+       fprintf (stderr, "g_spawn_command_line_sync not supported on this platform\n");
+       return FALSE;
 #else
        pid_t pid;
        gchar **argv;
@@ -344,6 +347,9 @@ g_spawn_async_with_pipes (const gchar *working_directory,
                        GError **error)
 {
 #ifdef G_OS_WIN32
+#elif !defined (HAVE_FORK) || !defined (HAVE_EXECVE)
+       fprintf (stderr, "g_spawn_async_with_pipes is not supported on this platform\n");
+       return FALSE;
 #else
        pid_t pid;
        int info_pipe [2];
diff --git a/external/Lucene.Net b/external/Lucene.Net
deleted file mode 160000 (submodule)
index 88fb67b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 88fb67b07621dfed054d8d75fd50672fb26349df
diff --git a/external/Lucene.Net.Light b/external/Lucene.Net.Light
new file mode 160000 (submodule)
index 0000000..85978b7
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 85978b7eb94738f516824341213d5e94060f5284
index 7120b21603354fced392a43ab7c581d0114fecac..f4f5f2f4cd5573e06f0bf1fb60e236f0aebf37a4 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 7120b21603354fced392a43ab7c581d0114fecac
+Subproject commit f4f5f2f4cd5573e06f0bf1fb60e236f0aebf37a4
index abe1cdfb1f941a03c477546534b33693a2ed1b40..3976a6088118b35ed318f8e78767066cb78ffdf9 160000 (submodule)
@@ -1 +1 @@
-Subproject commit abe1cdfb1f941a03c477546534b33693a2ed1b40
+Subproject commit 3976a6088118b35ed318f8e78767066cb78ffdf9
index a916688137c5acd05967a4e7c7b02e2b785d46eb..4f391fe60cbd36f3b3528e05a45d81ee60f390d8 100644 (file)
@@ -1,9 +1,9 @@
 
-AM_CPPFLAGS = $(GMODULE_CFLAGS)
+AM_CPPFLAGS = $(GLIB_CFLAGS)
 
 lib_LTLIBRARIES = libikvm-native.la
 
 libikvm_native_la_SOURCES = jni.c os.c jni.h
 
 libikvm_native_la_LDFLAGS = -avoid-version
-libikvm_native_la_LIBADD = $(GMODULE_LIBS)
+libikvm_native_la_LIBADD = $(GLIB_LIBS)
index 2658da659ce42b4038d27ce664849240c6129816..2a9347fca0b0eae0a7ced1a04d401de6be72e47e 100644 (file)
@@ -1482,12 +1482,6 @@ include "clearlooks", "nice" and "win32".
 .Sp
 The default is "win32".  
 .TP
-\fBMONO_THREAPOOL\fR
-This environment variable can be used to choose the implementation of
-the ThreadPool used at runtime.  By default this uses the long term
-Mono threadpool implementation.   But a new "microsoft" value switches
-the threadpool implementation to Microsoft's CoreCLR/ReferenceSource implementation.
-.TP
 \fBMONO_TLS_SESSION_CACHE_TIMEOUT\fR
 The time, in seconds, that the SSL/TLS session cache will keep it's entry to
 avoid a new negotiation between the client and a server. Negotiation are very
index fec61afe13a7af95869aacc7b38b30d208604b94..c166333233651b48fb029e11b1ce082876b5b6a6 100644 (file)
@@ -337,6 +337,10 @@ version
 .IP \[bu] 2
 \f[I]thread\f[]: thread information
 .IP \[bu] 2
+\f[I]domain\f[]: app domain information
+.IP \[bu] 2
+\f[I]context\f[]: remoting context information
+.IP \[bu] 2
 \f[I]heapshot\f[]: live heap usage at heap shots
 .IP \[bu] 2
 \f[I]counters\f[]: counters samples
index 4ff236774e5fc48ce71182e663ed95b3543ffbdf..f465c09c247c8f5ffc195d14ac61cb31ed401001 100644 (file)
@@ -8,12 +8,14 @@ basic_SUBDIRS := build jay mcs class
 build_SUBDIRS := build class mcs class/aot-compiler tools
 monodroid_SUBDIRS := build class
 monotouch_SUBDIRS := build class
+monotouch_watch_SUBDIRS := build class
 monotouch_runtime_SUBDIRS := build class
 xammac_SUBDIRS := build class
 mobile_SUBDIRS := build class
 mobile_static_SUBDIRS := build class
 binary_reference_assemblies_SUBDIRS := build class
-net_4_5_SUBDIRS := build mcs class nunit24 ilasm tools tests errors docs
+net_4_x_SUBDIRS := build mcs class nunit24 ilasm tools tests errors docs
+xammac_net_4_5_SUBDIRS := build class
 xbuild_12_SUBDIRS := build class tools/xbuild
 xbuild_14_SUBDIRS := build class tools/xbuild
 
@@ -30,7 +32,7 @@ dir-check:
 
 # fun specialty targets
 
-PROFILES = net_4_5 binary_reference_assemblies xbuild_12 xbuild_14
+PROFILES = net_4_x binary_reference_assemblies xbuild_12 xbuild_14
 
 .PHONY: all-profiles $(STD_TARGETS:=-profiles)
 all-profiles $(STD_TARGETS:=-profiles): %-profiles: profiles-do--%
@@ -53,14 +55,16 @@ profiles-do--run-test:
 
 # Orchestrate the bootstrap here.
 _boot_ = all clean install
-$(_boot_:%=profile-do--xbuild_14--%):         profile-do--xbuild_14--%:         profile-do--net_4_5--%
-$(_boot_:%=profile-do--xbuild_12--%):         profile-do--xbuild_12--%:         profile-do--net_4_5--%
+$(_boot_:%=profile-do--xbuild_14--%):         profile-do--xbuild_14--%:         profile-do--net_4_x--%
+$(_boot_:%=profile-do--xbuild_12--%):         profile-do--xbuild_12--%:         profile-do--net_4_x--%
 $(_boot_:%=profile-do--binary_reference_assemblies--%):           profile-do--binary_reference_assemblies--%:           profile-do--build--%
-$(_boot_:%=profile-do--net_4_5--%):           profile-do--net_4_5--%:           profile-do--build--%
+$(_boot_:%=profile-do--net_4_x--%):           profile-do--net_4_x--%:           profile-do--build--%
 $(_boot_:%=profile-do--monodroid--%):         profile-do--monodroid--%:         profile-do--build--%
 $(_boot_:%=profile-do--monotouch--%):         profile-do--monotouch--%:         profile-do--build--%
+$(_boot_:%=profile-do--monotouch_watch--%):   profile-do--monotouch_watch--%:   profile-do--build--%
 $(_boot_:%=profile-do--monotouch_runtime--%):  profile-do--monotouch_runtime--%:  profile-do--build--%
 $(_boot_:%=profile-do--xammac--%):            profile-do--xammac--%:            profile-do--build--%
+$(_boot_:%=profile-do--xammac_net_4_5--%):    profile-do--xammac_net_4_5--%:           profile-do--build--%
 $(_boot_:%=profile-do--mobile--%):            profile-do--mobile--%:         profile-do--build--%
 $(_boot_:%=profile-do--mobile_static--%):     profile-do--mobile_static--%:     profile-do--build--%
 $(_boot_:%=profile-do--build--%):             profile-do--build--%:             profile-do--basic--%
index e6d2d0a68afacb7f7ae7b6d2aa6402fc0707c015..8048c5fdf3beb54fe2bdcdd761616bf177795d5b 100644 (file)
@@ -19,7 +19,7 @@ PROFILES = \
        basic \
        build \
        binary_reference_assemblies \
-       net_4_5 \
+       net_4_x \
        xbuild_12 \
        xbuild_14
 
index b8222d8beedcb002ebc056ea1bb4ed82b70ba4e6..52b3e1a2a9e82522ef25631d3b0c49f59d4ed798 100644 (file)
@@ -45,6 +45,12 @@ static class Consts
        public const string VsVersion = "9.0.0.0"; // unused, but needed for compilation
        public const string FxFileVersion = "4.0.50524.0";
        public const string VsFileVersion = "9.0.50727.42"; // unused, but needed for compilation
+#elif NET_4_6
+       public const string FxVersion = "4.0.0.0";
+       public const string FxFileVersion = "4.6.57.0";
+       
+       public const string VsVersion = "0.0.0.0"; // Useless ?
+       public const string VsFileVersion = "11.0.0.0"; // TODO:
 #elif NET_4_5
        public const string FxVersion = "4.0.0.0";
        public const string FxFileVersion = "4.0.30319.17020";
index e351b073af3550739361308ad09c02e1f52c5b8c..124bb2a3f81fe6abaaff5adb3eb68d48c44c75a5 100644 (file)
@@ -30,7 +30,7 @@ TEST_RUNTIME = MONO_PATH="$(topdir)/class/lib/$(PROFILE)$(PLATFORM_PATH_SEPARATO
 
 DEFAULT_MCS_FLAGS := $(MCS_FLAGS)
 DEFAULT_MBAS_FLAGS := $(MBAS_FLAGS)
-DEFAULT_PROFILE := net_4_5
+DEFAULT_PROFILE := net_4_x
 
 # You shouldn't need to set these but might on a 
 # weird platform.
index bc76b711d39879770af0f547f8186669c295c245..db7bf638bed6ba87b23dda367abd1e874c72f0a1 100644 (file)
@@ -34,7 +34,9 @@ rm -f $outfile.makefrag
 process_includes $incfile $outfile.inc
 
 if test x$extfile != x -a -f "$extfile"; then
-       cat $extfile >> $outfile.inc
+       process_includes $extfile $outfile.ext.inc
+       cat $outfile.ext.inc >> $outfile.inc
+       rm -f $outfile.ext.inc
 fi
 
 sort -u $outfile.inc > $outfile.inc_s
index 74f89aeec024746a9b51c5884b429628796b4be8..01d775db736c971ed0a33eee9f749f5dc89cc61e 100644 (file)
@@ -58,7 +58,7 @@ endif
 endif
 
 ifndef response
-response = $(depsdir)/$(PROFILE)_$(LIBRARY).response
+response = $(depsdir)/$(PROFILE)_$(LIBRARY_SUBDIR)_$(LIBRARY).response
 library_CLEAN_FILES += $(response)
 endif
 
@@ -306,7 +306,7 @@ all-local: $(the_lib)$(PLATFORM_AOT_SUFFIX)
 endif
 endif
 
-makefrag = $(depsdir)/$(PROFILE)_$(LIBRARY).makefrag
+makefrag = $(depsdir)/$(PROFILE)_$(LIBRARY_SUBDIR)_$(LIBRARY).makefrag
 library_CLEAN_FILES += $(makefrag)
 $(makefrag): $(sourcefile)
 #      @echo Creating $@ ...
index 5edd15f54b73e4c1bd9050ddc7bd7aa4bd3128f5..00eabf5d16197a1d84f396461c2873984f5a8418 100644 (file)
@@ -6,7 +6,7 @@ BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PA
 MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_GMCS)
 
 # Use system resgen as we don't want local System.Windows.Forms dependency
-RESGEN resgen2
+RESGEN := $(dir $(shell which $(EXTERNAL_MCS)))resgen2
 
 profile-check:
        @:
index b85e0f52f52bbd6be85f0a6f626bbf3c1b7eaa93..577ab86656f1959e2e599131a5e2b44d4b15e7d6 100644 (file)
@@ -6,7 +6,7 @@ BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PA
 MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_GMCS)
 
 # Use system resgen as we don't want local System.Windows.Forms dependency
-RESGEN resgen2
+RESGEN := $(dir $(shell which $(EXTERNAL_MCS)))resgen2
 
 # nuttzing!
 
diff --git a/mcs/build/profiles/monotouch_watch.make b/mcs/build/profiles/monotouch_watch.make
new file mode 100644 (file)
index 0000000..eb28801
--- /dev/null
@@ -0,0 +1,4 @@
+include $(topdir)/build/profiles/monotouch.make
+
+PROFILE_MCS_FLAGS += \
+       -d:MONOTOUCH_WATCH
diff --git a/mcs/build/profiles/net_4_5.make b/mcs/build/profiles/net_4_5.make
deleted file mode 100644 (file)
index b5f059d..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- makefile -*-
-
-BOOTSTRAP_PROFILE = build
-
-BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_GMCS)
-MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_GMCS)
-
-# nuttzing!
-
-profile-check:
-       @:
-
-DEFAULT_REFERENCES = -r:mscorlib.dll
-PROFILE_MCS_FLAGS = -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE  -nowarn:1699 -nostdlib -lib:$(topdir)/class/lib/$(PROFILE) $(DEFAULT_REFERENCES) $(PLATFORM_DEBUG_FLAGS)
-
-FRAMEWORK_VERSION = 4.5
-XBUILD_VERSION = 4.0
diff --git a/mcs/build/profiles/net_4_x.make b/mcs/build/profiles/net_4_x.make
new file mode 100644 (file)
index 0000000..a634dac
--- /dev/null
@@ -0,0 +1,17 @@
+# -*- makefile -*-
+
+BOOTSTRAP_PROFILE = build
+
+BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_GMCS)
+MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_GMCS)
+
+# nuttzing!
+
+profile-check:
+       @:
+
+DEFAULT_REFERENCES = -r:mscorlib.dll
+PROFILE_MCS_FLAGS = -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE  -nowarn:1699 -nostdlib -lib:$(topdir)/class/lib/$(PROFILE) $(DEFAULT_REFERENCES) $(PLATFORM_DEBUG_FLAGS)
+
+FRAMEWORK_VERSION = 4.5
+XBUILD_VERSION = 4.0
index 3a91b7620e2960a986b6fd3eb54cf34335945190..421e05fbcd1f75f7b0589bc8c02848d1cfeac375 100644 (file)
@@ -4,7 +4,7 @@ BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PA
 MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_GMCS)
 
 # Use system resgen as we don't want local System.Windows.Forms dependency
-RESGEN resgen2
+RESGEN := $(dir $(shell which $(EXTERNAL_MCS)))resgen2
 
 profile-check:
        @:
diff --git a/mcs/build/profiles/xammac_net_4_5.make b/mcs/build/profiles/xammac_net_4_5.make
new file mode 100644 (file)
index 0000000..4ea4eb1
--- /dev/null
@@ -0,0 +1,11 @@
+include $(topdir)/build/profiles/net_4_5.make
+PROFILE_MCS_FLAGS += -d:NO_SYSTEM_DRAWING_DEPENDENCY -d:NO_WINFORMS_DEPENDENCY -d:NO_SYSTEM_WEB_DEPENDENCY -d:XAMMAC_4_5
+XAMMAC_4_5=1
+NO_WINDOWS_BASE=1
+NO_SYSTEM_WEB_DEPENDENCY=1
+NO_SYSTEM_WEB_APPSERVICES_DEPENDENCY=1
+NO_WINFORMS_DEPENDENCY=1
+NO_SYSTEM_DRAWING_DEPENDENCY=1
+NO_SYSTEM_SERVICEMODEL_ACTIVATION_DEPENDENCY=1
+NO_SYSTEM_DESIGN_DEPENDENCY=1
+NO_SYSTEM_DIRECTORY_SERVICES_DEPENDENCY=1
index 4e0f9940dfeb23af2f1e773605a5e5abe7f804a7..7150d2529e9085cf0967696a6d2cd8855916af8f 100644 (file)
@@ -1,7 +1,7 @@
 # -*- makefile -*-
 
-include $(topdir)/build/profiles/net_4_5.make
+include $(topdir)/build/profiles/net_4_x.make
 
-PROFILE_MCS_FLAGS := $(PROFILE_MCS_FLAGS) -d:XBUILD_12 -d:MONO -d:DISABLE_CAS_USE  -lib:$(topdir)/class/lib/net_4_5
+PROFILE_MCS_FLAGS := $(PROFILE_MCS_FLAGS) -d:XBUILD_12 -d:MONO -d:DISABLE_CAS_USE  -lib:$(topdir)/class/lib/net_4_x
 
 XBUILD_VERSION = 12.0
index eeff40826788f5c4bfac80a996cb07f5cb655e29..4e35ffc2305ef7a8c198773b45bdfda9b53b012a 100644 (file)
@@ -1,7 +1,7 @@
 # -*- makefile -*-
 
-include $(topdir)/build/profiles/net_4_5.make
+include $(topdir)/build/profiles/net_4_x.make
 
-PROFILE_MCS_FLAGS := $(PROFILE_MCS_FLAGS) -d:XBUILD_12 -d:XBUILD_14 -d:MONO -d:DISABLE_CAS_USE  -lib:$(topdir)/class/lib/net_4_5
+PROFILE_MCS_FLAGS := $(PROFILE_MCS_FLAGS) -d:XBUILD_12 -d:XBUILD_14 -d:MONO -d:DISABLE_CAS_USE  -lib:$(topdir)/class/lib/net_4_x
 
 XBUILD_VERSION = 14.0
index f4291c1f3de70d9c137b31d6fab9bbd2af58e412..8545b270aafc560e14d67f2be08490b0c6dda7d6 100644 (file)
@@ -9,15 +9,36 @@ monotouch_SUBDIRS = System.Collections.Concurrent System.Collections System.Comp
        System.Runtime.InteropServices System.Runtime.InteropServices.WindowsRuntime System.Runtime.Numerics System.Runtime.Serialization.Json \
        System.Runtime.Serialization.Primitives System.Runtime.Serialization.Xml System.Runtime System.Security.Principal System.ServiceModel.Http \
        System.ServiceModel.Primitives System.ServiceModel.Security System.Text.Encoding.Extensions System.Text.Encoding System.Text.RegularExpressions System.Threading.Tasks.Parallel \
-       System.Threading.Tasks System.Threading.Timer System.Threading System.Xml.ReaderWriter System.Xml.XDocument System.Xml.XmlSerializer
+       System.Threading.Tasks System.Threading.Timer System.Threading System.Xml.ReaderWriter System.Xml.XDocument System.Xml.XmlSerializer \
+       System.Runtime.Handles System.ServiceModel.Duplex System.ServiceModel.NetTcp \
+       Microsoft.Win32.Primitives Microsoft.Win32.Registry System.AppContext System.Collections.NonGeneric System.Collections.Specialized System.ComponentModel.Primitives \
+       System.ComponentModel.TypeConverter System.Console System.Data.Common System.Data.SqlClient System.Diagnostics.FileVersionInfo \
+       System.Diagnostics.Process System.Diagnostics.TextWriterTraceListener System.Diagnostics.TraceEvent System.Diagnostics.TraceSource System.Globalization.Calendars \
+       System.IO.Compression System.IO.Compression.ZipFile System.IO.FileSystem System.IO.FileSystem.DriveInfo System.IO.FileSystem.Primitives \
+       System.IO.IsolatedStorage System.IO.MemoryMappedFiles System.IO.UnmanagedMemoryStream System.Net.AuthenticationManager System.Net.Cache \
+       System.Net.Http.WebRequestHandler System.Net.HttpListener System.Net.Mail System.Net.NameResolution System.Net.Security System.Net.ServicePoint System.Net.Sockets \
+       System.Net.Utilities System.Net.WebHeaderCollection System.Net.WebSockets System.Net.WebSockets.Client System.Resources.ReaderWriter System.Runtime.CompilerServices.VisualC \
+       System.Security.AccessControl System.Security.Claims System.Security.Cryptography.DeriveBytes System.Security.Cryptography.Encoding System.Security.Cryptography.Encryption \
+       System.Security.Cryptography.Encryption.Aes System.Security.Cryptography.Encryption.ECDiffieHellman System.Security.Cryptography.Encryption.ECDsa System.Security.Cryptography.Hashing \
+       System.Security.Cryptography.Hashing.Algorithms System.Security.Cryptography.RSA System.Security.Cryptography.RandomNumberGenerator \
+       System.Security.Cryptography.X509Certificates System.Security.Principal.Windows System.Threading.Thread System.Threading.ThreadPool \
+       System.Xml.XPath System.Xml.XmlDocument System.Xml.Xsl.Primitives Microsoft.Win32.Registry.AccessControl System.Diagnostics.StackTrace System.Globalization.Extensions \
+       System.IO.FileSystem.AccessControl System.Private.CoreLib.InteropServices System.Private.CoreLib.Threading System.Reflection.TypeExtensions \
+       System.Security.SecureString System.Threading.AccessControl System.Threading.Overlapped System.Xml.XPath.XDocument
+
+reflection_SUBDIRS = System.Reflection.Emit.ILGeneration System.Reflection.Emit.Lightweight System.Reflection.Emit
 
 mobile_static_SUBDIRS = $(monotouch_SUBDIRS)
 
-net_4_5_SUBDIRS = $(monotouch_SUBDIRS) System.Reflection.Emit.ILGeneration System.Reflection.Emit.Lightweight System.Reflection.Emit
+net_4_5_SUBDIRS = $(monotouch_SUBDIRS) $(reflection_SUBDIRS) System.Diagnostics.PerformanceCounter \
+       System.IO.FileSystem.Watcher System.IO.Pipes System.Security.Cryptography.ProtectedData System.ServiceProcess.ServiceController 
 
-monodroid_SUBDIRS = $(net_4_5_SUBDIRS)
+monodroid_SUBDIRS = $(monotouch_SUBDIRS) $(reflection_SUBDIRS)
 
 xammac_SUBDIRS = $(net_4_5_SUBDIRS)
+xammac_net_4_5_SUBDIRS = $(net_4_5_SUBDIRS)
+
+monotouch_watch_SUBDIRS = $(monotouch_SUBDIRS)
 
 PROFILE_SUBDIRS = $(net_4_5_SUBDIRS)
 
diff --git a/mcs/class/Facades/Microsoft.Win32.Primitives/AssemblyInfo.cs b/mcs/class/Facades/Microsoft.Win32.Primitives/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..d532b59
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("Microsoft.Win32.Primitives.dll")]
+[assembly: AssemblyDescription ("Microsoft.Win32.Primitives.dll")]
+[assembly: AssemblyDefaultAlias ("Microsoft.Win32.Primitives.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/Microsoft.Win32.Primitives/Makefile b/mcs/class/Facades/Microsoft.Win32.Primitives/Makefile
new file mode 100644 (file)
index 0000000..18edf54
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/Microsoft.Win32.Primitives
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = Microsoft.Win32.Primitives.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/Microsoft.Win32.Primitives/Microsoft.Win32.Primitives.dll.sources b/mcs/class/Facades/Microsoft.Win32.Primitives/Microsoft.Win32.Primitives.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/Microsoft.Win32.Primitives/TypeForwarders.cs b/mcs/class/Facades/Microsoft.Win32.Primitives/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..17bc31b
--- /dev/null
@@ -0,0 +1,25 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.Win32Exception))]
+
+
diff --git a/mcs/class/Facades/Microsoft.Win32.Registry.AccessControl/AssemblyInfo.cs b/mcs/class/Facades/Microsoft.Win32.Registry.AccessControl/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..7af0a4b
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("Microsoft.Win32.Registry.AccessControl.dll")]
+[assembly: AssemblyDescription ("Microsoft.Win32.Registry.AccessControl.dll")]
+[assembly: AssemblyDefaultAlias ("Microsoft.Win32.Registry.AccessControl.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/Microsoft.Win32.Registry.AccessControl/Makefile b/mcs/class/Facades/Microsoft.Win32.Registry.AccessControl/Makefile
new file mode 100644 (file)
index 0000000..8942bcf
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/Microsoft.Win32.Registry.AccessControl
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = Microsoft.Win32.Registry.AccessControl.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/Microsoft.Win32.Registry.AccessControl/Microsoft.Win32.Registry.AccessControl.dll.sources b/mcs/class/Facades/Microsoft.Win32.Registry.AccessControl/Microsoft.Win32.Registry.AccessControl.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/Microsoft.Win32.Registry.AccessControl/TypeForwarders.cs b/mcs/class/Facades/Microsoft.Win32.Registry.AccessControl/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..cb252be
--- /dev/null
@@ -0,0 +1,26 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.RegistryAccessRule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.RegistryAuditRule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.RegistrySecurity))]
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryAclExtensions))]
diff --git a/mcs/class/Facades/Microsoft.Win32.Registry/AssemblyInfo.cs b/mcs/class/Facades/Microsoft.Win32.Registry/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..7725ad8
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("Microsoft.Win32.Registry.dll")]
+[assembly: AssemblyDescription ("Microsoft.Win32.Registry.dll")]
+[assembly: AssemblyDefaultAlias ("Microsoft.Win32.Registry.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/Microsoft.Win32.Registry/Makefile b/mcs/class/Facades/Microsoft.Win32.Registry/Makefile
new file mode 100644 (file)
index 0000000..25a3d14
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/Microsoft.Win32.Registry
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = Microsoft.Win32.Registry.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/Microsoft.Win32.Registry/Microsoft.Win32.Registry.dll.sources b/mcs/class/Facades/Microsoft.Win32.Registry/Microsoft.Win32.Registry.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/Microsoft.Win32.Registry/TypeForwarders.cs b/mcs/class/Facades/Microsoft.Win32.Registry/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..ecf772d
--- /dev/null
@@ -0,0 +1,35 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+#if !MOBILE
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.Registry))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryHive))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryKey))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryValueKind))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryValueOptions))]
+#endif
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryOptions))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryView))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.SafeHandles.SafeRegistryHandle))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.RegistryRights))]
+
+
diff --git a/mcs/class/Facades/System.AppContext/AssemblyInfo.cs b/mcs/class/Facades/System.AppContext/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..d7f216e
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.AppContext.dll")]
+[assembly: AssemblyDescription ("System.AppContext.dll")]
+[assembly: AssemblyDefaultAlias ("System.AppContext.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.AppContext/Makefile b/mcs/class/Facades/System.AppContext/Makefile
new file mode 100644 (file)
index 0000000..8b8da8f
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.AppContext
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.AppContext.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.AppContext/System.AppContext.dll.sources b/mcs/class/Facades/System.AppContext/System.AppContext.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.AppContext/TypeForwarders.cs b/mcs/class/Facades/System.AppContext/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..2ea4e41
--- /dev/null
@@ -0,0 +1,25 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.AppContext))]
+
+
diff --git a/mcs/class/Facades/System.Collections.Concurrent/_Makefile b/mcs/class/Facades/System.Collections.Concurrent/_Makefile
new file mode 100644 (file)
index 0000000..4eeef25
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Collections.Concurrent
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Collections.Concurrent.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Collections.NonGeneric/AssemblyInfo.cs b/mcs/class/Facades/System.Collections.NonGeneric/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..964ecaa
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Collections.NonGeneric.dll")]
+[assembly: AssemblyDescription ("System.Collections.NonGeneric.dll")]
+[assembly: AssemblyDefaultAlias ("System.Collections.NonGeneric.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Collections.NonGeneric/Makefile b/mcs/class/Facades/System.Collections.NonGeneric/Makefile
new file mode 100644 (file)
index 0000000..9dc84f8
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Collections.NonGeneric
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Collections.NonGeneric.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Collections.NonGeneric/System.Collections.NonGeneric.dll.sources b/mcs/class/Facades/System.Collections.NonGeneric/System.Collections.NonGeneric.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Collections.NonGeneric/TypeForwarders.cs b/mcs/class/Facades/System.Collections.NonGeneric/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..d93abbb
--- /dev/null
@@ -0,0 +1,35 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.ArrayList))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.CaseInsensitiveComparer))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.CollectionBase))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Comparer))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.DictionaryBase))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Hashtable))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Queue))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.ReadOnlyCollectionBase))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.SortedList))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Specialized.CollectionsUtil))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Stack))]
+
+
diff --git a/mcs/class/Facades/System.Collections.Specialized/AssemblyInfo.cs b/mcs/class/Facades/System.Collections.Specialized/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..87ce5ca
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Collections.Specialized.dll")]
+[assembly: AssemblyDescription ("System.Collections.Specialized.dll")]
+[assembly: AssemblyDefaultAlias ("System.Collections.Specialized.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Collections.Specialized/Makefile b/mcs/class/Facades/System.Collections.Specialized/Makefile
new file mode 100644 (file)
index 0000000..3b0c07c
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Collections.Specialized
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Collections.Specialized.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Collections.Specialized/System.Collections.Specialized.dll.sources b/mcs/class/Facades/System.Collections.Specialized/System.Collections.Specialized.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Collections.Specialized/TypeForwarders.cs b/mcs/class/Facades/System.Collections.Specialized/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..84534ec
--- /dev/null
@@ -0,0 +1,34 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Specialized.BitVector32))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Specialized.HybridDictionary))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Specialized.IOrderedDictionary))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Specialized.ListDictionary))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Specialized.NameObjectCollectionBase))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Specialized.NameValueCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Specialized.OrderedDictionary))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Specialized.StringCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Specialized.StringDictionary))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Specialized.StringEnumerator))]
+
+
index 9a2b8f18f67a6000f6da3f19910b131c32e7c63c..1d2c1639f39a1b30865163b645a7e0994a88b17f 100644 (file)
@@ -34,3 +34,4 @@
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Generic.Stack<>))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.StructuralComparisons))]
 
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Collections.Generic.SortedList<,>))]
index e7c1feff498541e03e31e38bfd783d2000018e0d..1250bbdb98088564a408f37d957324f99f474a42 100644 (file)
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.ValidationResult))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.Validator))]
 
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.CompareAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.CreditCardAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.EmailAddressAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.FileExtensionsAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.IValidatableObject))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.MaxLengthAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.MinLengthAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.PhoneAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.ScaffoldColumnAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.Schema.ColumnAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.Schema.ComplexTypeAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.Schema.ForeignKeyAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.Schema.InversePropertyAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.Schema.NotMappedAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.Schema.TableAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DataAnnotations.UrlAttribute))]
index eeef8ec2c5def0d0beb792ab480ffa1998ccd9d2..affd43747e3718e084099099d0a67775ebcde3f2 100644 (file)
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ProgressChangedEventArgs))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ProgressChangedEventHandler))]
 
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.AsyncOperation))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.AsyncOperationManager))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.BackgroundWorker))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DoWorkEventArgs))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DoWorkEventHandler))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.RunWorkerCompletedEventArgs))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.RunWorkerCompletedEventHandler))]
diff --git a/mcs/class/Facades/System.ComponentModel.Primitives/AssemblyInfo.cs b/mcs/class/Facades/System.ComponentModel.Primitives/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..4b1c3bc
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.ComponentModel.Primitives.dll")]
+[assembly: AssemblyDescription ("System.ComponentModel.Primitives.dll")]
+[assembly: AssemblyDefaultAlias ("System.ComponentModel.Primitives.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.ComponentModel.Primitives/Makefile b/mcs/class/Facades/System.ComponentModel.Primitives/Makefile
new file mode 100644 (file)
index 0000000..d97df87
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.ComponentModel.Primitives
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.ComponentModel.Primitives.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.ComponentModel.Primitives/System.ComponentModel.Primitives.dll.sources b/mcs/class/Facades/System.ComponentModel.Primitives/System.ComponentModel.Primitives.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.ComponentModel.Primitives/TypeForwarders.cs b/mcs/class/Facades/System.ComponentModel.Primitives/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..81a899b
--- /dev/null
@@ -0,0 +1,28 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ComponentCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.IComponent))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.IContainer))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ISite))]
+
+
diff --git a/mcs/class/Facades/System.ComponentModel.TypeConverter/AssemblyInfo.cs b/mcs/class/Facades/System.ComponentModel.TypeConverter/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..63868e4
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.ComponentModel.TypeConverter.dll")]
+[assembly: AssemblyDescription ("System.ComponentModel.TypeConverter.dll")]
+[assembly: AssemblyDefaultAlias ("System.ComponentModel.TypeConverter.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.ComponentModel.TypeConverter/Makefile b/mcs/class/Facades/System.ComponentModel.TypeConverter/Makefile
new file mode 100644 (file)
index 0000000..3723623
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.ComponentModel.TypeConverter
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.ComponentModel.TypeConverter.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.ComponentModel.TypeConverter/System.ComponentModel.TypeConverter.dll.sources b/mcs/class/Facades/System.ComponentModel.TypeConverter/System.ComponentModel.TypeConverter.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.ComponentModel.TypeConverter/TypeForwarders.cs b/mcs/class/Facades/System.ComponentModel.TypeConverter/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..4a50ae3
--- /dev/null
@@ -0,0 +1,54 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ArrayConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.BaseNumberConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.BooleanConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ByteConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.CharConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.CollectionConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DateTimeConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DateTimeOffsetConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DecimalConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DoubleConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.EnumConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.GuidConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.Int16Converter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.Int32Converter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.Int64Converter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ITypeDescriptorContext))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.MultilineStringConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.NullableConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.PropertyDescriptor))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.SByteConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.SingleConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.StringConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TimeSpanConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TypeConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TypeConverterAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TypeDescriptor))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TypeListConverter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.UInt16Converter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.UInt32Converter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.UInt64Converter))]
+
+
diff --git a/mcs/class/Facades/System.Console/AssemblyInfo.cs b/mcs/class/Facades/System.Console/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..3114ac2
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Console.dll")]
+[assembly: AssemblyDescription ("System.Console.dll")]
+[assembly: AssemblyDefaultAlias ("System.Console.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Console/Makefile b/mcs/class/Facades/System.Console/Makefile
new file mode 100644 (file)
index 0000000..ecabbb2
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Console
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Console.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Console/System.Console.dll.sources b/mcs/class/Facades/System.Console/System.Console.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Console/TypeForwarders.cs b/mcs/class/Facades/System.Console/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..5987d7b
--- /dev/null
@@ -0,0 +1,29 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Console))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ConsoleCancelEventArgs))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ConsoleCancelEventHandler))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ConsoleColor))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ConsoleSpecialKey))]
+
+
diff --git a/mcs/class/Facades/System.Data.Common/AssemblyInfo.cs b/mcs/class/Facades/System.Data.Common/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..1a98388
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Data.Common.dll")]
+[assembly: AssemblyDescription ("System.Data.Common.dll")]
+[assembly: AssemblyDefaultAlias ("System.Data.Common.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Data.Common/Makefile b/mcs/class/Facades/System.Data.Common/Makefile
new file mode 100644 (file)
index 0000000..0b46feb
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Data.Common
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Data.Common.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Data.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Data.Common/System.Data.Common.dll.sources b/mcs/class/Facades/System.Data.Common/System.Data.Common.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Data.Common/TypeForwarders.cs b/mcs/class/Facades/System.Data.Common/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..52b199a
--- /dev/null
@@ -0,0 +1,43 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.CommandBehavior))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.CommandType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.Common.DbCommand))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.Common.DbConnection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.Common.DbConnectionStringBuilder))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.Common.DbDataReader))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.Common.DbException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.Common.DbParameter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.Common.DbParameterCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.Common.DbProviderFactory))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.Common.DbTransaction))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.ConnectionState))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.DbType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.IsolationLevel))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.ParameterDirection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.StateChangeEventArgs))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.StateChangeEventHandler))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.UpdateRowSource))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.DBNull))]
+
+
diff --git a/mcs/class/Facades/System.Data.SqlClient/AssemblyInfo.cs b/mcs/class/Facades/System.Data.SqlClient/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..ca9dc4b
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Data.SqlClient.dll")]
+[assembly: AssemblyDescription ("System.Data.SqlClient.dll")]
+[assembly: AssemblyDefaultAlias ("System.Data.SqlClient.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Data.SqlClient/Makefile b/mcs/class/Facades/System.Data.SqlClient/Makefile
new file mode 100644 (file)
index 0000000..6706728
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Data.SqlClient
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Data.SqlClient.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Data.dll /r:System.Xml.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Data.SqlClient/System.Data.SqlClient.dll.sources b/mcs/class/Facades/System.Data.SqlClient/System.Data.SqlClient.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Data.SqlClient/TypeForwarders.cs b/mcs/class/Facades/System.Data.SqlClient/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..d930326
--- /dev/null
@@ -0,0 +1,65 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.SqlServer.Server.SqlDataRecord))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.SqlServer.Server.SqlMetaData))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlClient.ApplicationIntent))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlClient.SortOrder))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlClient.SqlClientFactory))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlClient.SqlCommand))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlClient.SqlConnection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlClient.SqlConnectionStringBuilder))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlClient.SqlDataReader))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlClient.SqlError))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlClient.SqlErrorCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlClient.SqlException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlClient.SqlInfoMessageEventArgs))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlClient.SqlInfoMessageEventHandler))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlClient.SqlParameter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlClient.SqlParameterCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlClient.SqlTransaction))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlDbType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.INullable))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlBinary))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlBoolean))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlByte))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlBytes))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlChars))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlCompareOptions))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlDateTime))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlDecimal))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlDouble))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlGuid))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlInt16))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlInt32))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlInt64))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlMoney))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlNullValueException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlSingle))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlString))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlTruncateException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlTypeException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.SqlTypes.SqlXml))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.StatementCompletedEventArgs))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Data.StatementCompletedEventHandler))]
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.FileVersionInfo/AssemblyInfo.cs b/mcs/class/Facades/System.Diagnostics.FileVersionInfo/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..070d6db
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Diagnostics.FileVersionInfo.dll")]
+[assembly: AssemblyDescription ("System.Diagnostics.FileVersionInfo.dll")]
+[assembly: AssemblyDefaultAlias ("System.Diagnostics.FileVersionInfo.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.FileVersionInfo/Makefile b/mcs/class/Facades/System.Diagnostics.FileVersionInfo/Makefile
new file mode 100644 (file)
index 0000000..b8e2dac
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Diagnostics.FileVersionInfo
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Diagnostics.FileVersionInfo.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.FileVersionInfo/System.Diagnostics.FileVersionInfo.dll.sources b/mcs/class/Facades/System.Diagnostics.FileVersionInfo/System.Diagnostics.FileVersionInfo.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Diagnostics.FileVersionInfo/TypeForwarders.cs b/mcs/class/Facades/System.Diagnostics.FileVersionInfo/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..66e1472
--- /dev/null
@@ -0,0 +1,25 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.FileVersionInfo))]
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.PerformanceCounter/AssemblyInfo.cs b/mcs/class/Facades/System.Diagnostics.PerformanceCounter/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..b995757
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Diagnostics.PerformanceCounter.dll")]
+[assembly: AssemblyDescription ("System.Diagnostics.PerformanceCounter.dll")]
+[assembly: AssemblyDefaultAlias ("System.Diagnostics.PerformanceCounter.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.PerformanceCounter/Makefile b/mcs/class/Facades/System.Diagnostics.PerformanceCounter/Makefile
new file mode 100644 (file)
index 0000000..ab906c0
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Diagnostics.PerformanceCounter
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Diagnostics.PerformanceCounter.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.PerformanceCounter/System.Diagnostics.PerformanceCounter.dll.sources b/mcs/class/Facades/System.Diagnostics.PerformanceCounter/System.Diagnostics.PerformanceCounter.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Diagnostics.PerformanceCounter/TypeForwarders.cs b/mcs/class/Facades/System.Diagnostics.PerformanceCounter/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..12bef0d
--- /dev/null
@@ -0,0 +1,28 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.CounterSample))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.PerformanceCounter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.PerformanceCounterInstanceLifetime))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.PerformanceCounterType))]
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.Process/AssemblyInfo.cs b/mcs/class/Facades/System.Diagnostics.Process/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..d5aafde
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Diagnostics.Process.dll")]
+[assembly: AssemblyDescription ("System.Diagnostics.Process.dll")]
+[assembly: AssemblyDefaultAlias ("System.Diagnostics.Process.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.Process/Makefile b/mcs/class/Facades/System.Diagnostics.Process/Makefile
new file mode 100644 (file)
index 0000000..881456c
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Diagnostics.Process
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Diagnostics.Process.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.Process/System.Diagnostics.Process.dll.sources b/mcs/class/Facades/System.Diagnostics.Process/System.Diagnostics.Process.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Diagnostics.Process/TypeForwarders.cs b/mcs/class/Facades/System.Diagnostics.Process/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..7601feb
--- /dev/null
@@ -0,0 +1,37 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+// TODO: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.SafeHandles.SafeProcessHandle))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.DataReceivedEventArgs))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.DataReceivedEventHandler))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.Process))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.ProcessModule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.ProcessModuleCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.ProcessPriorityClass))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.ProcessStartInfo))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.ProcessThread))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.ProcessThreadCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.ThreadPriorityLevel))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.ThreadState))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.ThreadWaitReason))]
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.StackTrace/AssemblyInfo.cs b/mcs/class/Facades/System.Diagnostics.StackTrace/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..ae2f9e0
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Diagnostics.StackTrace.dll")]
+[assembly: AssemblyDescription ("System.Diagnostics.StackTrace.dll")]
+[assembly: AssemblyDefaultAlias ("System.Diagnostics.StackTrace.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.StackTrace/Makefile b/mcs/class/Facades/System.Diagnostics.StackTrace/Makefile
new file mode 100644 (file)
index 0000000..491f82d
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Diagnostics.StackTrace
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Diagnostics.StackTrace.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.StackTrace/System.Diagnostics.StackTrace.dll.sources b/mcs/class/Facades/System.Diagnostics.StackTrace/System.Diagnostics.StackTrace.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Diagnostics.StackTrace/TypeForwarders.cs b/mcs/class/Facades/System.Diagnostics.StackTrace/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..b07464d
--- /dev/null
@@ -0,0 +1,26 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.StackFrame))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.StackTrace))]
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.StackFrameExtensions))]
+
diff --git a/mcs/class/Facades/System.Diagnostics.TextWriterTraceListener/AssemblyInfo.cs b/mcs/class/Facades/System.Diagnostics.TextWriterTraceListener/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..ad5d47e
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Diagnostics.TextWriterTraceListener.dll")]
+[assembly: AssemblyDescription ("System.Diagnostics.TextWriterTraceListener.dll")]
+[assembly: AssemblyDefaultAlias ("System.Diagnostics.TextWriterTraceListener.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.TextWriterTraceListener/Makefile b/mcs/class/Facades/System.Diagnostics.TextWriterTraceListener/Makefile
new file mode 100644 (file)
index 0000000..80d1f45
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Diagnostics.TextWriterTraceListener
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Diagnostics.TextWriterTraceListener.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.TextWriterTraceListener/System.Diagnostics.TextWriterTraceListener.dll.sources b/mcs/class/Facades/System.Diagnostics.TextWriterTraceListener/System.Diagnostics.TextWriterTraceListener.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Diagnostics.TextWriterTraceListener/TypeForwarders.cs b/mcs/class/Facades/System.Diagnostics.TextWriterTraceListener/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..c119cca
--- /dev/null
@@ -0,0 +1,26 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.DelimitedListTraceListener))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TextWriterTraceListener))]
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.TraceEvent/AssemblyInfo.cs b/mcs/class/Facades/System.Diagnostics.TraceEvent/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..ad70d77
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Diagnostics.TraceEvent.dll")]
+[assembly: AssemblyDescription ("System.Diagnostics.TraceEvent.dll")]
+[assembly: AssemblyDefaultAlias ("System.Diagnostics.TraceEvent.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.TraceEvent/Makefile b/mcs/class/Facades/System.Diagnostics.TraceEvent/Makefile
new file mode 100644 (file)
index 0000000..c49247d
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Diagnostics.TraceEvent
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Diagnostics.TraceEvent.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.TraceEvent/System.Diagnostics.TraceEvent.dll.sources b/mcs/class/Facades/System.Diagnostics.TraceEvent/System.Diagnostics.TraceEvent.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Diagnostics.TraceEvent/TypeForwarders.cs b/mcs/class/Facades/System.Diagnostics.TraceEvent/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..a0b1e5c
--- /dev/null
@@ -0,0 +1,34 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.SourceLevels))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.SourceSwitch))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.Switch))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TraceEventCache))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TraceEventType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TraceFilter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TraceListener))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TraceListenerCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TraceOptions))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TraceSource))]
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.TraceSource/AssemblyInfo.cs b/mcs/class/Facades/System.Diagnostics.TraceSource/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..82810cc
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Diagnostics.TraceSource.dll")]
+[assembly: AssemblyDescription ("System.Diagnostics.TraceSource.dll")]
+[assembly: AssemblyDefaultAlias ("System.Diagnostics.TraceSource.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.TraceSource/Makefile b/mcs/class/Facades/System.Diagnostics.TraceSource/Makefile
new file mode 100644 (file)
index 0000000..aa77eda
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Diagnostics.TraceSource
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Diagnostics.TraceSource.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Diagnostics.TraceSource/System.Diagnostics.TraceSource.dll.sources b/mcs/class/Facades/System.Diagnostics.TraceSource/System.Diagnostics.TraceSource.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Diagnostics.TraceSource/TypeForwarders.cs b/mcs/class/Facades/System.Diagnostics.TraceSource/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..885fd6f
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.BooleanSwitch))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.DefaultTraceListener))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.EventTypeFilter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.SourceFilter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.SourceLevels))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.SourceSwitch))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.Switch))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.Trace))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TraceEventCache))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TraceEventType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TraceFilter))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TraceLevel))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TraceListener))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TraceListenerCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TraceOptions))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TraceSource))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.TraceSwitch))]
+
+
diff --git a/mcs/class/Facades/System.Globalization.Calendars/AssemblyInfo.cs b/mcs/class/Facades/System.Globalization.Calendars/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..153def5
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Globalization.Calendars.dll")]
+[assembly: AssemblyDescription ("System.Globalization.Calendars.dll")]
+[assembly: AssemblyDefaultAlias ("System.Globalization.Calendars.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Globalization.Calendars/Makefile b/mcs/class/Facades/System.Globalization.Calendars/Makefile
new file mode 100644 (file)
index 0000000..7e8a385
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Globalization.Calendars
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Globalization.Calendars.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Globalization.Calendars/System.Globalization.Calendars.dll.sources b/mcs/class/Facades/System.Globalization.Calendars/System.Globalization.Calendars.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Globalization.Calendars/TypeForwarders.cs b/mcs/class/Facades/System.Globalization.Calendars/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..568e61b
--- /dev/null
@@ -0,0 +1,40 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.ChineseLunisolarCalendar))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.EastAsianLunisolarCalendar))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.GregorianCalendar))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.GregorianCalendarTypes))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.HebrewCalendar))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.HijriCalendar))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.JapaneseCalendar))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.JapaneseLunisolarCalendar))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.JulianCalendar))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.KoreanCalendar))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.KoreanLunisolarCalendar))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.PersianCalendar))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.TaiwanCalendar))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.TaiwanLunisolarCalendar))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.ThaiBuddhistCalendar))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.UmAlQuraCalendar))]
+
+
diff --git a/mcs/class/Facades/System.Globalization.Extensions/AssemblyInfo.cs b/mcs/class/Facades/System.Globalization.Extensions/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..56f7889
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Globalization.Extensions.dll")]
+[assembly: AssemblyDescription ("System.Globalization.Extensions.dll")]
+[assembly: AssemblyDefaultAlias ("System.Globalization.Extensions.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Globalization.Extensions/Makefile b/mcs/class/Facades/System.Globalization.Extensions/Makefile
new file mode 100644 (file)
index 0000000..f5e3a58
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Globalization.Extensions
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Globalization.Extensions.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Globalization.Extensions/System.Globalization.Extensions.dll.sources b/mcs/class/Facades/System.Globalization.Extensions/System.Globalization.Extensions.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Globalization.Extensions/TypeForwarders.cs b/mcs/class/Facades/System.Globalization.Extensions/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..2f88c33
--- /dev/null
@@ -0,0 +1,26 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.IdnMapping))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.NormalizationForm))]
+// Missing: [assembly:System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Globalization.GlobalizationExtensions))]
+// Missing: [assembly:System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.StringNormalizationExtensions))]
diff --git a/mcs/class/Facades/System.IO.Compression.ZipFile/AssemblyInfo.cs b/mcs/class/Facades/System.IO.Compression.ZipFile/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..7600498
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.IO.Compression.ZipFile.dll")]
+[assembly: AssemblyDescription ("System.IO.Compression.ZipFile.dll")]
+[assembly: AssemblyDefaultAlias ("System.IO.Compression.ZipFile.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.IO.Compression.ZipFile/Makefile b/mcs/class/Facades/System.IO.Compression.ZipFile/Makefile
new file mode 100644 (file)
index 0000000..25a310e
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.IO.Compression.ZipFile
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.IO.Compression.ZipFile.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.IO.Compression.FileSystem.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.IO.Compression.ZipFile/System.IO.Compression.ZipFile.dll.sources b/mcs/class/Facades/System.IO.Compression.ZipFile/System.IO.Compression.ZipFile.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.IO.Compression.ZipFile/TypeForwarders.cs b/mcs/class/Facades/System.IO.Compression.ZipFile/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..ed404ec
--- /dev/null
@@ -0,0 +1,26 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Compression.ZipFile))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Compression.ZipFileExtensions))]
+
+
diff --git a/mcs/class/Facades/System.IO.Compression/AssemblyInfo.cs b/mcs/class/Facades/System.IO.Compression/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..47a9c1f
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.IO.Compression.dll")]
+[assembly: AssemblyDescription ("System.IO.Compression.dll")]
+[assembly: AssemblyDefaultAlias ("System.IO.Compression.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.IO.Compression/Makefile b/mcs/class/Facades/System.IO.Compression/Makefile
new file mode 100644 (file)
index 0000000..282611a
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.IO.Compression
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.IO.Compression.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.IO.Compression.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.IO.Compression/System.IO.Compression.dll.sources b/mcs/class/Facades/System.IO.Compression/System.IO.Compression.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.IO.Compression/TypeForwarders.cs b/mcs/class/Facades/System.IO.Compression/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..6747adb
--- /dev/null
@@ -0,0 +1,31 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Compression.CompressionLevel))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Compression.CompressionMode))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Compression.DeflateStream))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Compression.GZipStream))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Compression.ZipArchive))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Compression.ZipArchiveEntry))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Compression.ZipArchiveMode))]
+
+
diff --git a/mcs/class/Facades/System.IO.FileSystem.AccessControl/AssemblyInfo.cs b/mcs/class/Facades/System.IO.FileSystem.AccessControl/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..30286f0
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.IO.FileSystem.AccessControl.dll")]
+[assembly: AssemblyDescription ("System.IO.FileSystem.AccessControl.dll")]
+[assembly: AssemblyDefaultAlias ("System.IO.FileSystem.AccessControl.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.IO.FileSystem.AccessControl/Makefile b/mcs/class/Facades/System.IO.FileSystem.AccessControl/Makefile
new file mode 100644 (file)
index 0000000..087369b
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.IO.FileSystem.AccessControl
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.IO.FileSystem.AccessControl.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.IO.FileSystem.AccessControl/System.IO.FileSystem.AccessControl.dll.sources b/mcs/class/Facades/System.IO.FileSystem.AccessControl/System.IO.FileSystem.AccessControl.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.IO.FileSystem.AccessControl/TypeForwarders.cs b/mcs/class/Facades/System.IO.FileSystem.AccessControl/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..12daecd
--- /dev/null
@@ -0,0 +1,31 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.DirectoryObjectSecurity))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.DirectorySecurity))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.FileSecurity))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.FileSystemAccessRule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.FileSystemAuditRule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.FileSystemRights))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.FileSystemSecurity))]
+
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.FileSystemAclExtensions))]
diff --git a/mcs/class/Facades/System.IO.FileSystem.DriveInfo/AssemblyInfo.cs b/mcs/class/Facades/System.IO.FileSystem.DriveInfo/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..d9b6ee4
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.IO.FileSystem.DriveInfo.dll")]
+[assembly: AssemblyDescription ("System.IO.FileSystem.DriveInfo.dll")]
+[assembly: AssemblyDefaultAlias ("System.IO.FileSystem.DriveInfo.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.IO.FileSystem.DriveInfo/Makefile b/mcs/class/Facades/System.IO.FileSystem.DriveInfo/Makefile
new file mode 100644 (file)
index 0000000..58c439f
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.IO.FileSystem.DriveInfo
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.IO.FileSystem.DriveInfo.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.IO.FileSystem.DriveInfo/System.IO.FileSystem.DriveInfo.dll.sources b/mcs/class/Facades/System.IO.FileSystem.DriveInfo/System.IO.FileSystem.DriveInfo.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.IO.FileSystem.DriveInfo/TypeForwarders.cs b/mcs/class/Facades/System.IO.FileSystem.DriveInfo/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..75fa066
--- /dev/null
@@ -0,0 +1,27 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.DriveInfo))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.DriveNotFoundException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.DriveType))]
+
+
diff --git a/mcs/class/Facades/System.IO.FileSystem.Primitives/AssemblyInfo.cs b/mcs/class/Facades/System.IO.FileSystem.Primitives/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..ce31ea4
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.IO.FileSystem.Primitives.dll")]
+[assembly: AssemblyDescription ("System.IO.FileSystem.Primitives.dll")]
+[assembly: AssemblyDefaultAlias ("System.IO.FileSystem.Primitives.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.IO.FileSystem.Primitives/Makefile b/mcs/class/Facades/System.IO.FileSystem.Primitives/Makefile
new file mode 100644 (file)
index 0000000..d8f4ae4
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.IO.FileSystem.Primitives
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.IO.FileSystem.Primitives.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.IO.FileSystem.Primitives/System.IO.FileSystem.Primitives.dll.sources b/mcs/class/Facades/System.IO.FileSystem.Primitives/System.IO.FileSystem.Primitives.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.IO.FileSystem.Primitives/TypeForwarders.cs b/mcs/class/Facades/System.IO.FileSystem.Primitives/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..73de81d
--- /dev/null
@@ -0,0 +1,28 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.FileAccess))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.FileAttributes))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.FileMode))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.FileShare))]
+
+
diff --git a/mcs/class/Facades/System.IO.FileSystem.Watcher/AssemblyInfo.cs b/mcs/class/Facades/System.IO.FileSystem.Watcher/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..f6f7bae
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.IO.FileSystem.Watcher.dll")]
+[assembly: AssemblyDescription ("System.IO.FileSystem.Watcher.dll")]
+[assembly: AssemblyDefaultAlias ("System.IO.FileSystem.Watcher.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.IO.FileSystem.Watcher/Makefile b/mcs/class/Facades/System.IO.FileSystem.Watcher/Makefile
new file mode 100644 (file)
index 0000000..3d79846
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.IO.FileSystem.Watcher
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.IO.FileSystem.Watcher.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.IO.FileSystem.Watcher/System.IO.FileSystem.Watcher.dll.sources b/mcs/class/Facades/System.IO.FileSystem.Watcher/System.IO.FileSystem.Watcher.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.IO.FileSystem.Watcher/TypeForwarders.cs b/mcs/class/Facades/System.IO.FileSystem.Watcher/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..6237d34
--- /dev/null
@@ -0,0 +1,33 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.ErrorEventArgs))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.ErrorEventHandler))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.FileSystemEventArgs))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.FileSystemEventHandler))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.FileSystemWatcher))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.NotifyFilters))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.RenamedEventArgs))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.RenamedEventHandler))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.WatcherChangeTypes))]
+
+
diff --git a/mcs/class/Facades/System.IO.FileSystem/AssemblyInfo.cs b/mcs/class/Facades/System.IO.FileSystem/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..6c8e983
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.IO.FileSystem.dll")]
+[assembly: AssemblyDescription ("System.IO.FileSystem.dll")]
+[assembly: AssemblyDefaultAlias ("System.IO.FileSystem.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.IO.FileSystem/Makefile b/mcs/class/Facades/System.IO.FileSystem/Makefile
new file mode 100644 (file)
index 0000000..2bcff2e
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.IO.FileSystem
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.IO.FileSystem.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.IO.FileSystem/System.IO.FileSystem.dll.sources b/mcs/class/Facades/System.IO.FileSystem/System.IO.FileSystem.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.IO.FileSystem/TypeForwarders.cs b/mcs/class/Facades/System.IO.FileSystem/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..d2b7f6a
--- /dev/null
@@ -0,0 +1,33 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.SafeHandles.SafeFileHandle))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Directory))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.DirectoryInfo))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.File))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.FileInfo))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.FileOptions))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.FileStream))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.FileSystemInfo))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.SearchOption))]
+
+
diff --git a/mcs/class/Facades/System.IO.IsolatedStorage/AssemblyInfo.cs b/mcs/class/Facades/System.IO.IsolatedStorage/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..fd84746
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.IO.IsolatedStorage.dll")]
+[assembly: AssemblyDescription ("System.IO.IsolatedStorage.dll")]
+[assembly: AssemblyDefaultAlias ("System.IO.IsolatedStorage.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.IO.IsolatedStorage/Makefile b/mcs/class/Facades/System.IO.IsolatedStorage/Makefile
new file mode 100644 (file)
index 0000000..101b660
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.IO.IsolatedStorage
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.IO.IsolatedStorage.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.IO.IsolatedStorage/System.IO.IsolatedStorage.dll.sources b/mcs/class/Facades/System.IO.IsolatedStorage/System.IO.IsolatedStorage.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.IO.IsolatedStorage/TypeForwarders.cs b/mcs/class/Facades/System.IO.IsolatedStorage/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..baebc70
--- /dev/null
@@ -0,0 +1,27 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.IsolatedStorage.IsolatedStorageException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.IsolatedStorage.IsolatedStorageFile))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.IsolatedStorage.IsolatedStorageFileStream))]
+
+
diff --git a/mcs/class/Facades/System.IO.MemoryMappedFiles/AssemblyInfo.cs b/mcs/class/Facades/System.IO.MemoryMappedFiles/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..bb2e888
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.IO.MemoryMappedFiles.dll")]
+[assembly: AssemblyDescription ("System.IO.MemoryMappedFiles.dll")]
+[assembly: AssemblyDefaultAlias ("System.IO.MemoryMappedFiles.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.IO.MemoryMappedFiles/Makefile b/mcs/class/Facades/System.IO.MemoryMappedFiles/Makefile
new file mode 100644 (file)
index 0000000..5d44a22
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.IO.MemoryMappedFiles
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.IO.MemoryMappedFiles.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Core.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.IO.MemoryMappedFiles/System.IO.MemoryMappedFiles.dll.sources b/mcs/class/Facades/System.IO.MemoryMappedFiles/System.IO.MemoryMappedFiles.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.IO.MemoryMappedFiles/TypeForwarders.cs b/mcs/class/Facades/System.IO.MemoryMappedFiles/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..999f6ea
--- /dev/null
@@ -0,0 +1,32 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.SafeHandles.SafeMemoryMappedFileHandle))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.SafeHandles.SafeMemoryMappedViewHandle))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.MemoryMappedFiles.MemoryMappedFile))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.MemoryMappedFiles.MemoryMappedFileAccess))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.MemoryMappedFiles.MemoryMappedFileOptions))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.MemoryMappedFiles.MemoryMappedFileRights))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.MemoryMappedFiles.MemoryMappedViewAccessor))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.MemoryMappedFiles.MemoryMappedViewStream))]
+
+
diff --git a/mcs/class/Facades/System.IO.Pipes/AssemblyInfo.cs b/mcs/class/Facades/System.IO.Pipes/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..1cdd544
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.IO.Pipes.dll")]
+[assembly: AssemblyDescription ("System.IO.Pipes.dll")]
+[assembly: AssemblyDefaultAlias ("System.IO.Pipes.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.IO.Pipes/Makefile b/mcs/class/Facades/System.IO.Pipes/Makefile
new file mode 100644 (file)
index 0000000..4ddb0a1
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.IO.Pipes
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.IO.Pipes.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Core.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.IO.Pipes/System.IO.Pipes.dll.sources b/mcs/class/Facades/System.IO.Pipes/System.IO.Pipes.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.IO.Pipes/TypeForwarders.cs b/mcs/class/Facades/System.IO.Pipes/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..43a367d
--- /dev/null
@@ -0,0 +1,33 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.SafeHandles.SafePipeHandle))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Pipes.AnonymousPipeClientStream))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Pipes.AnonymousPipeServerStream))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Pipes.NamedPipeClientStream))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Pipes.NamedPipeServerStream))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Pipes.PipeDirection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Pipes.PipeOptions))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Pipes.PipeStream))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.Pipes.PipeTransmissionMode))]
+
+
diff --git a/mcs/class/Facades/System.IO.UnmanagedMemoryStream/AssemblyInfo.cs b/mcs/class/Facades/System.IO.UnmanagedMemoryStream/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..9f7e2b9
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.IO.UnmanagedMemoryStream.dll")]
+[assembly: AssemblyDescription ("System.IO.UnmanagedMemoryStream.dll")]
+[assembly: AssemblyDefaultAlias ("System.IO.UnmanagedMemoryStream.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.IO.UnmanagedMemoryStream/Makefile b/mcs/class/Facades/System.IO.UnmanagedMemoryStream/Makefile
new file mode 100644 (file)
index 0000000..b36d019
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.IO.UnmanagedMemoryStream
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.IO.UnmanagedMemoryStream.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.IO.UnmanagedMemoryStream/System.IO.UnmanagedMemoryStream.dll.sources b/mcs/class/Facades/System.IO.UnmanagedMemoryStream/System.IO.UnmanagedMemoryStream.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.IO.UnmanagedMemoryStream/TypeForwarders.cs b/mcs/class/Facades/System.IO.UnmanagedMemoryStream/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..3113164
--- /dev/null
@@ -0,0 +1,26 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.UnmanagedMemoryAccessor))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.UnmanagedMemoryStream))]
+
+
index db18f12782143efb95a74816fc3712c7632bd330..52af3f619ecce003dda88b62803983097f0e368f 100644 (file)
@@ -65,3 +65,5 @@
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Linq.IQueryable<>))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Linq.IQueryProvider))]
 
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Linq.Expressions.IArgumentProvider))]
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Linq.Expressions.IDynamicExpression))]
diff --git a/mcs/class/Facades/System.Net.AuthenticationManager/AssemblyInfo.cs b/mcs/class/Facades/System.Net.AuthenticationManager/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..497dd44
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Net.AuthenticationManager.dll")]
+[assembly: AssemblyDescription ("System.Net.AuthenticationManager.dll")]
+[assembly: AssemblyDefaultAlias ("System.Net.AuthenticationManager.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Net.AuthenticationManager/Makefile b/mcs/class/Facades/System.Net.AuthenticationManager/Makefile
new file mode 100644 (file)
index 0000000..f0ca464
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Net.AuthenticationManager
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Net.AuthenticationManager.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Net.AuthenticationManager/System.Net.AuthenticationManager.dll.sources b/mcs/class/Facades/System.Net.AuthenticationManager/System.Net.AuthenticationManager.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Net.AuthenticationManager/TypeForwarders.cs b/mcs/class/Facades/System.Net.AuthenticationManager/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..2471057
--- /dev/null
@@ -0,0 +1,28 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.AuthenticationManager))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Authorization))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.IAuthenticationModule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.ICredentialPolicy))]
+
+
diff --git a/mcs/class/Facades/System.Net.Cache/AssemblyInfo.cs b/mcs/class/Facades/System.Net.Cache/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..c9e72d3
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Net.Cache.dll")]
+[assembly: AssemblyDescription ("System.Net.Cache.dll")]
+[assembly: AssemblyDefaultAlias ("System.Net.Cache.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Net.Cache/Makefile b/mcs/class/Facades/System.Net.Cache/Makefile
new file mode 100644 (file)
index 0000000..5586573
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Net.Cache
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Net.Cache.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Net.Cache/System.Net.Cache.dll.sources b/mcs/class/Facades/System.Net.Cache/System.Net.Cache.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Net.Cache/TypeForwarders.cs b/mcs/class/Facades/System.Net.Cache/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..4a06ee2
--- /dev/null
@@ -0,0 +1,29 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Cache.HttpCacheAgeControl))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Cache.HttpRequestCacheLevel))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Cache.HttpRequestCachePolicy))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Cache.RequestCacheLevel))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Cache.RequestCachePolicy))]
+
+
diff --git a/mcs/class/Facades/System.Net.Http.WebRequestHandler/AssemblyInfo.cs b/mcs/class/Facades/System.Net.Http.WebRequestHandler/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..dc2e630
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Net.Http.WebRequestHandler.dll")]
+[assembly: AssemblyDescription ("System.Net.Http.WebRequestHandler.dll")]
+[assembly: AssemblyDefaultAlias ("System.Net.Http.WebRequestHandler.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Net.Http.WebRequestHandler/Makefile b/mcs/class/Facades/System.Net.Http.WebRequestHandler/Makefile
new file mode 100644 (file)
index 0000000..04c74b1
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Net.Http.WebRequestHandler
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Net.Http.WebRequestHandler.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Net.Http.WebRequest.dll /r:System.Net.Http.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Net.Http.WebRequestHandler/System.Net.Http.WebRequestHandler.dll.sources b/mcs/class/Facades/System.Net.Http.WebRequestHandler/System.Net.Http.WebRequestHandler.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Net.Http.WebRequestHandler/TypeForwarders.cs b/mcs/class/Facades/System.Net.Http.WebRequestHandler/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..fb583ab
--- /dev/null
@@ -0,0 +1,25 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Http.WebRequestHandler))]
+
+
diff --git a/mcs/class/Facades/System.Net.HttpListener/AssemblyInfo.cs b/mcs/class/Facades/System.Net.HttpListener/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..1de79d2
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Net.HttpListener.dll")]
+[assembly: AssemblyDescription ("System.Net.HttpListener.dll")]
+[assembly: AssemblyDefaultAlias ("System.Net.HttpListener.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Net.HttpListener/Makefile b/mcs/class/Facades/System.Net.HttpListener/Makefile
new file mode 100644 (file)
index 0000000..ede6c67
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Net.HttpListener
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Net.HttpListener.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Net.HttpListener/System.Net.HttpListener.dll.sources b/mcs/class/Facades/System.Net.HttpListener/System.Net.HttpListener.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Net.HttpListener/TypeForwarders.cs b/mcs/class/Facades/System.Net.HttpListener/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..6493a1d
--- /dev/null
@@ -0,0 +1,33 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.AuthenticationSchemeSelector))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.HttpListener))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.HttpListenerBasicIdentity))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.HttpListenerContext))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.HttpListenerException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.HttpListenerPrefixCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.HttpListenerRequest))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.HttpListenerResponse))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.HttpListenerTimeoutManager))]
+
+
diff --git a/mcs/class/Facades/System.Net.Mail/AssemblyInfo.cs b/mcs/class/Facades/System.Net.Mail/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..9d98c93
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Net.Mail.dll")]
+[assembly: AssemblyDescription ("System.Net.Mail.dll")]
+[assembly: AssemblyDefaultAlias ("System.Net.Mail.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Net.Mail/Makefile b/mcs/class/Facades/System.Net.Mail/Makefile
new file mode 100644 (file)
index 0000000..a6a328a
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Net.Mail
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Net.Mail.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Net.Mail/System.Net.Mail.dll.sources b/mcs/class/Facades/System.Net.Mail/System.Net.Mail.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Net.Mail/TypeForwarders.cs b/mcs/class/Facades/System.Net.Mail/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..81e722e
--- /dev/null
@@ -0,0 +1,49 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.AlternateView))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.AlternateViewCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.Attachment))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.AttachmentBase))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.AttachmentCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.DeliveryNotificationOptions))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.LinkedResource))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.LinkedResourceCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.MailAddress))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.MailAddressCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.MailMessage))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.MailPriority))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.SmtpAccess))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.SmtpClient))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.SmtpDeliveryFormat))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.SmtpDeliveryMethod))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.SmtpException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.SmtpFailedRecipientException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.SmtpFailedRecipientsException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mail.SmtpStatusCode))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mime.ContentDisposition))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mime.ContentType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mime.DispositionTypeNames))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mime.MediaTypeNames))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Mime.TransferEncoding))]
+
+
diff --git a/mcs/class/Facades/System.Net.NameResolution/AssemblyInfo.cs b/mcs/class/Facades/System.Net.NameResolution/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..a776848
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Net.NameResolution.dll")]
+[assembly: AssemblyDescription ("System.Net.NameResolution.dll")]
+[assembly: AssemblyDefaultAlias ("System.Net.NameResolution.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Net.NameResolution/Makefile b/mcs/class/Facades/System.Net.NameResolution/Makefile
new file mode 100644 (file)
index 0000000..07f556a
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Net.NameResolution
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Net.NameResolution.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Net.NameResolution/System.Net.NameResolution.dll.sources b/mcs/class/Facades/System.Net.NameResolution/System.Net.NameResolution.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Net.NameResolution/TypeForwarders.cs b/mcs/class/Facades/System.Net.NameResolution/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..67d1922
--- /dev/null
@@ -0,0 +1,26 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Dns))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.IPHostEntry))]
+
+
index c16fa7fdaa4e632c971ede89d33d93e7d50828e0..1c7ee4bd09480b68f9bd225fd0c536a2d8bc64f0 100644 (file)
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.NetworkChange))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.NetworkInterface))]
 
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.DuplicateAddressDetectionState))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.GatewayIPAddressInformation))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.GatewayIPAddressInformationCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.IcmpV4Statistics))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.IcmpV6Statistics))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.IPAddressInformation))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.IPAddressInformationCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.IPGlobalProperties))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.IPGlobalStatistics))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.IPInterfaceProperties))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.IPInterfaceStatistics))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.IPv4InterfaceProperties))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.IPv4InterfaceStatistics))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.IPv6InterfaceProperties))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.MulticastIPAddressInformation))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.MulticastIPAddressInformationCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.NetBiosNodeType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.NetworkInformationException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.NetworkInterfaceComponent))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.NetworkInterfaceType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.OperationalStatus))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.PhysicalAddress))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.PrefixOrigin))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.ScopeLevel))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.SuffixOrigin))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.TcpConnectionInformation))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.TcpState))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.TcpStatistics))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.UdpStatistics))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.UnicastIPAddressInformation))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.UnicastIPAddressInformationCollection))]
index 1d78a8dbaa5fada2690a08bbd1550bafc1ab84dd..c4e271bcd449417a1a43462bd032e9d421127364 100644 (file)
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkCredential))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.TransportContext))]
 
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.DnsEndPoint))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.EndPoint))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.IPAddress))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.IPEndPoint))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.IPAddressCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Security.AuthenticationLevel))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Security.SslPolicyErrors))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.SocketAddress))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.AddressFamily))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.SocketError))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.SocketException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Authentication.CipherAlgorithmType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Authentication.ExchangeAlgorithmType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Authentication.ExtendedProtection.ChannelBinding))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Authentication.ExtendedProtection.ChannelBindingKind))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Authentication.HashAlgorithmType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Authentication.SslProtocols))]
diff --git a/mcs/class/Facades/System.Net.Security/AssemblyInfo.cs b/mcs/class/Facades/System.Net.Security/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..c809f83
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Net.Security.dll")]
+[assembly: AssemblyDescription ("System.Net.Security.dll")]
+[assembly: AssemblyDefaultAlias ("System.Net.Security.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Net.Security/Makefile b/mcs/class/Facades/System.Net.Security/Makefile
new file mode 100644 (file)
index 0000000..e1e00e7
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Net.Security
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Net.Security.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Net.Security/System.Net.Security.dll.sources b/mcs/class/Facades/System.Net.Security/System.Net.Security.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Net.Security/TypeForwarders.cs b/mcs/class/Facades/System.Net.Security/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..884e50a
--- /dev/null
@@ -0,0 +1,33 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Security.EncryptionPolicy))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Security.LocalCertificateSelectionCallback))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Security.RemoteCertificateValidationCallback))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Security.SslStream))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Authentication.AuthenticationException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Authentication.ExtendedProtection.PolicyEnforcement))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Authentication.ExtendedProtection.ProtectionScenario))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Authentication.ExtendedProtection.ServiceNameCollection))]
+
+
diff --git a/mcs/class/Facades/System.Net.ServicePoint/AssemblyInfo.cs b/mcs/class/Facades/System.Net.ServicePoint/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..ebad6bf
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Net.ServicePoint.dll")]
+[assembly: AssemblyDescription ("System.Net.ServicePoint.dll")]
+[assembly: AssemblyDefaultAlias ("System.Net.ServicePoint.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Net.ServicePoint/Makefile b/mcs/class/Facades/System.Net.ServicePoint/Makefile
new file mode 100644 (file)
index 0000000..cdfab70
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Net.ServicePoint
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Net.ServicePoint.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Net.ServicePoint/System.Net.ServicePoint.dll.sources b/mcs/class/Facades/System.Net.ServicePoint/System.Net.ServicePoint.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Net.ServicePoint/TypeForwarders.cs b/mcs/class/Facades/System.Net.ServicePoint/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..b8f4034
--- /dev/null
@@ -0,0 +1,28 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.BindIPEndPoint))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.SecurityProtocolType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.ServicePoint))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.ServicePointManager))]
+
+
diff --git a/mcs/class/Facades/System.Net.Sockets/AssemblyInfo.cs b/mcs/class/Facades/System.Net.Sockets/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..33d399e
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Net.Sockets.dll")]
+[assembly: AssemblyDescription ("System.Net.Sockets.dll")]
+[assembly: AssemblyDefaultAlias ("System.Net.Sockets.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Net.Sockets/Makefile b/mcs/class/Facades/System.Net.Sockets/Makefile
new file mode 100644 (file)
index 0000000..98052e7
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Net.Sockets
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Net.Sockets.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Net.Sockets/System.Net.Sockets.dll.sources b/mcs/class/Facades/System.Net.Sockets/System.Net.Sockets.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Net.Sockets/TypeForwarders.cs b/mcs/class/Facades/System.Net.Sockets/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..b27fc86
--- /dev/null
@@ -0,0 +1,49 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.IOControlCode))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.IPPacketInformation))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.IPProtectionLevel))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.IPv6MulticastOption))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.LingerOption))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.MulticastOption))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.NetworkStream))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.ProtocolType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.SelectMode))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.SendPacketsElement))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.Socket))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.SocketAsyncEventArgs))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.SocketAsyncOperation))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.SocketFlags))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.SocketInformation))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.SocketInformationOptions))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.SocketOptionLevel))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.SocketOptionName))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.SocketShutdown))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.SocketType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.TcpClient))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.TcpListener))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.TransmitFileOptions))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.UdpClient))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.Sockets.UdpReceiveResult))]
+
+
diff --git a/mcs/class/Facades/System.Net.Utilities/AssemblyInfo.cs b/mcs/class/Facades/System.Net.Utilities/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..bdae143
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Net.Utilities.dll")]
+[assembly: AssemblyDescription ("System.Net.Utilities.dll")]
+[assembly: AssemblyDefaultAlias ("System.Net.Utilities.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Net.Utilities/Makefile b/mcs/class/Facades/System.Net.Utilities/Makefile
new file mode 100644 (file)
index 0000000..ef1a805
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Net.Utilities
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Net.Utilities.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Net.Utilities/System.Net.Utilities.dll.sources b/mcs/class/Facades/System.Net.Utilities/System.Net.Utilities.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Net.Utilities/TypeForwarders.cs b/mcs/class/Facades/System.Net.Utilities/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..d62a7b3
--- /dev/null
@@ -0,0 +1,29 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.IPStatus))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.Ping))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.PingException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.PingOptions))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.NetworkInformation.PingReply))]
+
+
diff --git a/mcs/class/Facades/System.Net.WebHeaderCollection/AssemblyInfo.cs b/mcs/class/Facades/System.Net.WebHeaderCollection/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..2d8c976
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Net.WebHeaderCollection.dll")]
+[assembly: AssemblyDescription ("System.Net.WebHeaderCollection.dll")]
+[assembly: AssemblyDefaultAlias ("System.Net.WebHeaderCollection.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Net.WebHeaderCollection/Makefile b/mcs/class/Facades/System.Net.WebHeaderCollection/Makefile
new file mode 100644 (file)
index 0000000..fc84749
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Net.WebHeaderCollection
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Net.WebHeaderCollection.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Net.WebHeaderCollection/System.Net.WebHeaderCollection.dll.sources b/mcs/class/Facades/System.Net.WebHeaderCollection/System.Net.WebHeaderCollection.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Net.WebHeaderCollection/TypeForwarders.cs b/mcs/class/Facades/System.Net.WebHeaderCollection/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..559eb1c
--- /dev/null
@@ -0,0 +1,27 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.HttpRequestHeader))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.HttpResponseHeader))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.WebHeaderCollection))]
+
+
diff --git a/mcs/class/Facades/System.Net.WebSockets.Client/AssemblyInfo.cs b/mcs/class/Facades/System.Net.WebSockets.Client/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..529b9e6
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Net.WebSockets.Client.dll")]
+[assembly: AssemblyDescription ("System.Net.WebSockets.Client.dll")]
+[assembly: AssemblyDefaultAlias ("System.Net.WebSockets.Client.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Net.WebSockets.Client/Makefile b/mcs/class/Facades/System.Net.WebSockets.Client/Makefile
new file mode 100644 (file)
index 0000000..29eac24
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Net.WebSockets.Client
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Net.WebSockets.Client.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Net.WebSockets.Client/System.Net.WebSockets.Client.dll.sources b/mcs/class/Facades/System.Net.WebSockets.Client/System.Net.WebSockets.Client.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Net.WebSockets.Client/TypeForwarders.cs b/mcs/class/Facades/System.Net.WebSockets.Client/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..0eb6d7c
--- /dev/null
@@ -0,0 +1,26 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.WebSockets.ClientWebSocket))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.WebSockets.ClientWebSocketOptions))]
+
+
diff --git a/mcs/class/Facades/System.Net.WebSockets/AssemblyInfo.cs b/mcs/class/Facades/System.Net.WebSockets/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..1513c60
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Net.WebSockets.dll")]
+[assembly: AssemblyDescription ("System.Net.WebSockets.dll")]
+[assembly: AssemblyDefaultAlias ("System.Net.WebSockets.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Net.WebSockets/Makefile b/mcs/class/Facades/System.Net.WebSockets/Makefile
new file mode 100644 (file)
index 0000000..7fcaa1f
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Net.WebSockets
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Net.WebSockets.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Net.WebSockets/System.Net.WebSockets.dll.sources b/mcs/class/Facades/System.Net.WebSockets/System.Net.WebSockets.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Net.WebSockets/TypeForwarders.cs b/mcs/class/Facades/System.Net.WebSockets/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..93406a5
--- /dev/null
@@ -0,0 +1,31 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.WebSockets.WebSocket))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.WebSockets.WebSocketCloseStatus))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.WebSockets.WebSocketError))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.WebSockets.WebSocketException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.WebSockets.WebSocketMessageType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.WebSockets.WebSocketReceiveResult))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Net.WebSockets.WebSocketState))]
+
+
index 456c9db6eb1c89d5f2a7da8c6c37867115cbfbe0..d0e15bece8387a5a5fe9e4dda88281b32d6bd963 100644 (file)
@@ -35,3 +35,6 @@
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.PropertyChangedEventHandler))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Windows.Input.ICommand))]
 
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.INotifyPropertyChanging))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.PropertyChangingEventArgs))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.PropertyChangingEventHandler))]
diff --git a/mcs/class/Facades/System.Private.CoreLib.InteropServices/AssemblyInfo.cs b/mcs/class/Facades/System.Private.CoreLib.InteropServices/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..6ab82d6
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Private.CoreLib.InteropServices.dll")]
+[assembly: AssemblyDescription ("System.Private.CoreLib.InteropServices.dll")]
+[assembly: AssemblyDefaultAlias ("System.Private.CoreLib.InteropServices.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Private.CoreLib.InteropServices/Makefile b/mcs/class/Facades/System.Private.CoreLib.InteropServices/Makefile
new file mode 100644 (file)
index 0000000..886829a
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Private.CoreLib.InteropServices
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Private.CoreLib.InteropServices.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Private.CoreLib.InteropServices/System.Private.CoreLib.InteropServices.dll.sources b/mcs/class/Facades/System.Private.CoreLib.InteropServices/System.Private.CoreLib.InteropServices.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Private.CoreLib.InteropServices/TypeForwarders.cs b/mcs/class/Facades/System.Private.CoreLib.InteropServices/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..7a1269d
--- /dev/null
@@ -0,0 +1,34 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.InteropServices.CallingConvention))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.InteropServices.DllImportAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.InteropServices.GCHandle))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.InteropServices.GCHandleType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.InteropServices.SafeHandle))]
+
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Internal.Reflection.Execution.PayForPlayExperience.MissingMetadataExceptionCreator))]
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.DependencyReductionTypeRemoved))]
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.PreInitializedAttribute))]
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.InteropServices.InteropExtensions))]
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.InteropServices.NativeCallableAttributes))]
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.RuntimeImportAttribute))]
diff --git a/mcs/class/Facades/System.Private.CoreLib.Threading/AssemblyInfo.cs b/mcs/class/Facades/System.Private.CoreLib.Threading/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..de58780
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Private.CoreLib.Threading.dll")]
+[assembly: AssemblyDescription ("System.Private.CoreLib.Threading.dll")]
+[assembly: AssemblyDefaultAlias ("System.Private.CoreLib.Threading.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Private.CoreLib.Threading/Makefile b/mcs/class/Facades/System.Private.CoreLib.Threading/Makefile
new file mode 100644 (file)
index 0000000..dabd525
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Private.CoreLib.Threading
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Private.CoreLib.Threading.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Private.CoreLib.Threading/System.Private.CoreLib.Threading.dll.sources b/mcs/class/Facades/System.Private.CoreLib.Threading/System.Private.CoreLib.Threading.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Private.CoreLib.Threading/TypeForwarders.cs b/mcs/class/Facades/System.Private.CoreLib.Threading/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..7b9aa7a
--- /dev/null
@@ -0,0 +1,40 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.AbandonedMutexException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.AutoResetEvent))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.EventResetMode))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.EventWaitHandle))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.Interlocked))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.LazyInitializer))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.ManualResetEvent))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.Monitor))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.Mutex))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.Semaphore))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.SemaphoreFullException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.SpinWait))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.SynchronizationLockException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.Volatile))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.WaitHandleCannotBeOpenedException))]
+
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.Condition))]
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.Lock))]
diff --git a/mcs/class/Facades/System.Reflection.TypeExtensions/AssemblyInfo.cs b/mcs/class/Facades/System.Reflection.TypeExtensions/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..f431e75
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Reflection.TypeExtensions.dll")]
+[assembly: AssemblyDescription ("System.Reflection.TypeExtensions.dll")]
+[assembly: AssemblyDefaultAlias ("System.Reflection.TypeExtensions.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Reflection.TypeExtensions/Makefile b/mcs/class/Facades/System.Reflection.TypeExtensions/Makefile
new file mode 100644 (file)
index 0000000..45991d2
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Reflection.TypeExtensions
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Reflection.TypeExtensions.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Reflection.TypeExtensions/System.Reflection.TypeExtensions.dll.sources b/mcs/class/Facades/System.Reflection.TypeExtensions/System.Reflection.TypeExtensions.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Reflection.TypeExtensions/TypeForwarders.cs b/mcs/class/Facades/System.Reflection.TypeExtensions/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..a6b0138
--- /dev/null
@@ -0,0 +1,29 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Reflection.BindingFlags))]
+
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Reflection.AssemblyExtensions))]
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Reflection.EventInfoExtensions))]
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Reflection.MethodInfoExtensions))]
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Reflection.PropertyInfoExtensions))]
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Reflection.TypeExtensions))]
diff --git a/mcs/class/Facades/System.Resources.ReaderWriter/AssemblyInfo.cs b/mcs/class/Facades/System.Resources.ReaderWriter/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..1525b34
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Resources.ReaderWriter.dll")]
+[assembly: AssemblyDescription ("System.Resources.ReaderWriter.dll")]
+[assembly: AssemblyDefaultAlias ("System.Resources.ReaderWriter.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Resources.ReaderWriter/Makefile b/mcs/class/Facades/System.Resources.ReaderWriter/Makefile
new file mode 100644 (file)
index 0000000..7ac21c9
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Resources.ReaderWriter
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Resources.ReaderWriter.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Resources.ReaderWriter/System.Resources.ReaderWriter.dll.sources b/mcs/class/Facades/System.Resources.ReaderWriter/System.Resources.ReaderWriter.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Resources.ReaderWriter/TypeForwarders.cs b/mcs/class/Facades/System.Resources.ReaderWriter/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..5fdaf76
--- /dev/null
@@ -0,0 +1,26 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Resources.ResourceReader))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Resources.ResourceWriter))]
+
+
diff --git a/mcs/class/Facades/System.Runtime.CompilerServices.VisualC/AssemblyInfo.cs b/mcs/class/Facades/System.Runtime.CompilerServices.VisualC/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..5643e79
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Runtime.CompilerServices.VisualC.dll")]
+[assembly: AssemblyDescription ("System.Runtime.CompilerServices.VisualC.dll")]
+[assembly: AssemblyDefaultAlias ("System.Runtime.CompilerServices.VisualC.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Runtime.CompilerServices.VisualC/Makefile b/mcs/class/Facades/System.Runtime.CompilerServices.VisualC/Makefile
new file mode 100644 (file)
index 0000000..42666b2
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Runtime.CompilerServices.VisualC
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Runtime.CompilerServices.VisualC.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Runtime.CompilerServices.VisualC/System.Runtime.CompilerServices.VisualC.dll.sources b/mcs/class/Facades/System.Runtime.CompilerServices.VisualC/System.Runtime.CompilerServices.VisualC.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Runtime.CompilerServices.VisualC/TypeForwarders.cs b/mcs/class/Facades/System.Runtime.CompilerServices.VisualC/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..6376b81
--- /dev/null
@@ -0,0 +1,39 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.CallConvCdecl))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.CallConvFastcall))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.CallConvStdcall))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.CallConvThiscall))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.IsBoxed))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.IsByValue))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.IsCopyConstructed))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.IsExplicitlyDereferenced))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.IsImplicitlyDereferenced))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.IsJitIntrinsic))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.IsLong))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.IsSignUnspecifiedByte))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.IsUdtReturn))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.NativeCppClassAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.RequiredAttributeAttribute))]
+
+
index a12987dbdc9a3f4f5499be921bce29b62c9eb4eb..eff0fd568d7458892320963fba4bffc7a8ea395a 100644 (file)
@@ -33,3 +33,4 @@
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.StringComparer))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.UriBuilder))]
 
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.Versioning.FrameworkName))]
diff --git a/mcs/class/Facades/System.Runtime.Handles/AssemblyInfo.cs b/mcs/class/Facades/System.Runtime.Handles/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..2ff294b
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2013 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Runtime.Handles.dll")]
+[assembly: AssemblyDescription ("System.Runtime.Handles.dll")]
+[assembly: AssemblyDefaultAlias ("System.Runtime.Handles.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2013 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Runtime.Handles/Makefile b/mcs/class/Facades/System.Runtime.Handles/Makefile
new file mode 100644 (file)
index 0000000..f151966
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Runtime.Handles
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Runtime.Handles.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System System.Core
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Runtime.Handles/System.Runtime.Handles.dll.sources b/mcs/class/Facades/System.Runtime.Handles/System.Runtime.Handles.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Runtime.Handles/TypeForwarders.cs b/mcs/class/Facades/System.Runtime.Handles/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..416c416
--- /dev/null
@@ -0,0 +1,27 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.SafeHandles.SafeWaitHandle))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.HandleInheritability))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.InteropServices.CriticalHandle))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.InteropServices.SafeHandle))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.WaitHandleExtensions))]
index 34638aee54c488e026ce8aecd7c65a64a7eaa1a6..bfd4e7e471152d2a9dd1c7fbc18e223e53328c91 100644 (file)
@@ -35,3 +35,4 @@
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlDictionaryString))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlDictionaryWriter))]
 
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.OnXmlDictionaryReaderClose))]
index ef2bb4b820ba21ea7546e42df4c8ec0d102f1647..7184eee8b4b3c1e703575c9713013c51d1fe9f09 100644 (file)
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.WeakReference<>))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(void))]
 
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.FieldAccessException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.FormattableString))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IConvertible))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.InsufficientExecutionStackException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.InvalidProgramException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.DirectoryNotFoundException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.FileLoadException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.FileNotFoundException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.IOException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.IO.PathTooLongException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.MethodAccessException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.MissingFieldException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.MissingMethodException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Reflection.ProcessorArchitecture))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.DisablePrivateReflectionAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.FormattableStringFactory))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Runtime.CompilerServices.IsConst))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.TypeCode))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.UriFormatException))]
diff --git a/mcs/class/Facades/System.Security.AccessControl/AssemblyInfo.cs b/mcs/class/Facades/System.Security.AccessControl/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..f7e9306
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Security.AccessControl.dll")]
+[assembly: AssemblyDescription ("System.Security.AccessControl.dll")]
+[assembly: AssemblyDefaultAlias ("System.Security.AccessControl.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Security.AccessControl/Makefile b/mcs/class/Facades/System.Security.AccessControl/Makefile
new file mode 100644 (file)
index 0000000..c8507cd
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Security.AccessControl
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Security.AccessControl.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Security.AccessControl/System.Security.AccessControl.dll.sources b/mcs/class/Facades/System.Security.AccessControl/System.Security.AccessControl.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Security.AccessControl/TypeForwarders.cs b/mcs/class/Facades/System.Security.AccessControl/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..92ad9b6
--- /dev/null
@@ -0,0 +1,68 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.AccessControlActions))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.AccessControlModification))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.AccessControlSections))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.AccessControlType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.AccessRule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.AccessRule<>))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.AceEnumerator))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.AceFlags))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.AceQualifier))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.AceType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.AuditFlags))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.AuditRule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.AuditRule<>))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.AuthorizationRule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.AuthorizationRuleCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.CommonAce))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.CommonAcl))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.CommonObjectSecurity))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.CommonSecurityDescriptor))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.CompoundAce))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.CompoundAceType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.ControlFlags))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.CustomAce))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.DiscretionaryAcl))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.GenericAce))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.GenericAcl))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.GenericSecurityDescriptor))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.InheritanceFlags))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.KnownAce))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.NativeObjectSecurity))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.ObjectAccessRule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.ObjectAce))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.ObjectAceFlags))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.ObjectAuditRule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.ObjectSecurity))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.ObjectSecurity<>))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.PrivilegeNotHeldException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.PropagationFlags))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.QualifiedAce))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.RawAcl))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.RawSecurityDescriptor))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.ResourceType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.SecurityInfos))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.SystemAcl))]
+
+
diff --git a/mcs/class/Facades/System.Security.Claims/AssemblyInfo.cs b/mcs/class/Facades/System.Security.Claims/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..ec3ca1a
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Security.Claims.dll")]
+[assembly: AssemblyDescription ("System.Security.Claims.dll")]
+[assembly: AssemblyDefaultAlias ("System.Security.Claims.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Security.Claims/Makefile b/mcs/class/Facades/System.Security.Claims/Makefile
new file mode 100644 (file)
index 0000000..b546310
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Security.Claims
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Security.Claims.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Security.Claims/System.Security.Claims.dll.sources b/mcs/class/Facades/System.Security.Claims/System.Security.Claims.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Security.Claims/TypeForwarders.cs b/mcs/class/Facades/System.Security.Claims/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..f5e7819
--- /dev/null
@@ -0,0 +1,31 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Claims.Claim))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Claims.ClaimsIdentity))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Claims.ClaimsPrincipal))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Claims.ClaimTypes))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Claims.ClaimValueTypes))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Principal.GenericIdentity))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Principal.GenericPrincipal))]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.DeriveBytes/AssemblyInfo.cs b/mcs/class/Facades/System.Security.Cryptography.DeriveBytes/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..3dbb8e8
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Security.Cryptography.DeriveBytes.dll")]
+[assembly: AssemblyDescription ("System.Security.Cryptography.DeriveBytes.dll")]
+[assembly: AssemblyDefaultAlias ("System.Security.Cryptography.DeriveBytes.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.DeriveBytes/Makefile b/mcs/class/Facades/System.Security.Cryptography.DeriveBytes/Makefile
new file mode 100644 (file)
index 0000000..9d4816b
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Security.Cryptography.DeriveBytes
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Security.Cryptography.DeriveBytes.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.DeriveBytes/System.Security.Cryptography.DeriveBytes.dll.sources b/mcs/class/Facades/System.Security.Cryptography.DeriveBytes/System.Security.Cryptography.DeriveBytes.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.DeriveBytes/TypeForwarders.cs b/mcs/class/Facades/System.Security.Cryptography.DeriveBytes/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..b8a9ae1
--- /dev/null
@@ -0,0 +1,26 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.DeriveBytes))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.Rfc2898DeriveBytes))]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encoding/AssemblyInfo.cs b/mcs/class/Facades/System.Security.Cryptography.Encoding/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..a8394fe
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Security.Cryptography.Encoding.dll")]
+[assembly: AssemblyDescription ("System.Security.Cryptography.Encoding.dll")]
+[assembly: AssemblyDefaultAlias ("System.Security.Cryptography.Encoding.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encoding/Makefile b/mcs/class/Facades/System.Security.Cryptography.Encoding/Makefile
new file mode 100644 (file)
index 0000000..b9e2818
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Security.Cryptography.Encoding
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Security.Cryptography.Encoding.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encoding/System.Security.Cryptography.Encoding.dll.sources b/mcs/class/Facades/System.Security.Cryptography.Encoding/System.Security.Cryptography.Encoding.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encoding/TypeForwarders.cs b/mcs/class/Facades/System.Security.Cryptography.Encoding/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..49d9014
--- /dev/null
@@ -0,0 +1,29 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.AsnEncodedData))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.Oid))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.OidCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.OidEnumerator))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.OidGroup))]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encryption.Aes/AssemblyInfo.cs b/mcs/class/Facades/System.Security.Cryptography.Encryption.Aes/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..61acb09
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Security.Cryptography.Encryption.Aes.dll")]
+[assembly: AssemblyDescription ("System.Security.Cryptography.Encryption.Aes.dll")]
+[assembly: AssemblyDefaultAlias ("System.Security.Cryptography.Encryption.Aes.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encryption.Aes/Makefile b/mcs/class/Facades/System.Security.Cryptography.Encryption.Aes/Makefile
new file mode 100644 (file)
index 0000000..65ac718
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Security.Cryptography.Encryption.Aes
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Security.Cryptography.Encryption.Aes.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encryption.Aes/System.Security.Cryptography.Encryption.Aes.dll.sources b/mcs/class/Facades/System.Security.Cryptography.Encryption.Aes/System.Security.Cryptography.Encryption.Aes.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encryption.Aes/TypeForwarders.cs b/mcs/class/Facades/System.Security.Cryptography.Encryption.Aes/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..888877a
--- /dev/null
@@ -0,0 +1,25 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.Aes))]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman/AssemblyInfo.cs b/mcs/class/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..12a5999
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Security.Cryptography.Encryption.ECDiffieHellman.dll")]
+[assembly: AssemblyDescription ("System.Security.Cryptography.Encryption.ECDiffieHellman.dll")]
+[assembly: AssemblyDefaultAlias ("System.Security.Cryptography.Encryption.ECDiffieHellman.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman/Makefile b/mcs/class/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman/Makefile
new file mode 100644 (file)
index 0000000..e64e774
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Security.Cryptography.Encryption.ECDiffieHellman.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Core.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman/System.Security.Cryptography.Encryption.ECDiffieHellman.dll.sources b/mcs/class/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman/System.Security.Cryptography.Encryption.ECDiffieHellman.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman/TypeForwarders.cs b/mcs/class/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..d974130
--- /dev/null
@@ -0,0 +1,27 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+//[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.ECDiffieHellman))]
+//[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.ECDiffieHellmanPublicKey))]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encryption.ECDsa/AssemblyInfo.cs b/mcs/class/Facades/System.Security.Cryptography.Encryption.ECDsa/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..9e44eab
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Security.Cryptography.Encryption.ECDsa.dll")]
+[assembly: AssemblyDescription ("System.Security.Cryptography.Encryption.ECDsa.dll")]
+[assembly: AssemblyDefaultAlias ("System.Security.Cryptography.Encryption.ECDsa.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encryption.ECDsa/Makefile b/mcs/class/Facades/System.Security.Cryptography.Encryption.ECDsa/Makefile
new file mode 100644 (file)
index 0000000..b364a8d
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Security.Cryptography.Encryption.ECDsa
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Security.Cryptography.Encryption.ECDsa.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Core.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encryption.ECDsa/System.Security.Cryptography.Encryption.ECDsa.dll.sources b/mcs/class/Facades/System.Security.Cryptography.Encryption.ECDsa/System.Security.Cryptography.Encryption.ECDsa.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encryption.ECDsa/TypeForwarders.cs b/mcs/class/Facades/System.Security.Cryptography.Encryption.ECDsa/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..d1b44de
--- /dev/null
@@ -0,0 +1,25 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.ECDsa))]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encryption/AssemblyInfo.cs b/mcs/class/Facades/System.Security.Cryptography.Encryption/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..f3c99c8
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Security.Cryptography.Encryption.dll")]
+[assembly: AssemblyDescription ("System.Security.Cryptography.Encryption.dll")]
+[assembly: AssemblyDefaultAlias ("System.Security.Cryptography.Encryption.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encryption/Makefile b/mcs/class/Facades/System.Security.Cryptography.Encryption/Makefile
new file mode 100644 (file)
index 0000000..54f49c5
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Security.Cryptography.Encryption
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Security.Cryptography.Encryption.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encryption/System.Security.Cryptography.Encryption.dll.sources b/mcs/class/Facades/System.Security.Cryptography.Encryption/System.Security.Cryptography.Encryption.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Encryption/TypeForwarders.cs b/mcs/class/Facades/System.Security.Cryptography.Encryption/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..71815aa
--- /dev/null
@@ -0,0 +1,33 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.AsymmetricAlgorithm))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.CipherMode))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.CryptographicException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.CryptoStream))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.CryptoStreamMode))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.ICryptoTransform))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.KeySizes))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.PaddingMode))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.SymmetricAlgorithm))]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Hashing.Algorithms/AssemblyInfo.cs b/mcs/class/Facades/System.Security.Cryptography.Hashing.Algorithms/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..e6da632
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Security.Cryptography.Hashing.Algorithms.dll")]
+[assembly: AssemblyDescription ("System.Security.Cryptography.Hashing.Algorithms.dll")]
+[assembly: AssemblyDefaultAlias ("System.Security.Cryptography.Hashing.Algorithms.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Hashing.Algorithms/Makefile b/mcs/class/Facades/System.Security.Cryptography.Hashing.Algorithms/Makefile
new file mode 100644 (file)
index 0000000..4dcc414
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Security.Cryptography.Hashing.Algorithms
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Security.Cryptography.Hashing.Algorithms.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Hashing.Algorithms/System.Security.Cryptography.Hashing.Algorithms.dll.sources b/mcs/class/Facades/System.Security.Cryptography.Hashing.Algorithms/System.Security.Cryptography.Hashing.Algorithms.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Hashing.Algorithms/TypeForwarders.cs b/mcs/class/Facades/System.Security.Cryptography.Hashing.Algorithms/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..cc2253a
--- /dev/null
@@ -0,0 +1,33 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.HMACSHA1))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.HMACSHA256))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.HMACSHA384))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.HMACSHA512))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.MD5))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.SHA1))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.SHA256))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.SHA384))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.SHA512))]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Hashing/AssemblyInfo.cs b/mcs/class/Facades/System.Security.Cryptography.Hashing/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..9a0cb01
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Security.Cryptography.Hashing.dll")]
+[assembly: AssemblyDescription ("System.Security.Cryptography.Hashing.dll")]
+[assembly: AssemblyDefaultAlias ("System.Security.Cryptography.Hashing.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Hashing/Makefile b/mcs/class/Facades/System.Security.Cryptography.Hashing/Makefile
new file mode 100644 (file)
index 0000000..5416125
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Security.Cryptography.Hashing
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Security.Cryptography.Hashing.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Hashing/System.Security.Cryptography.Hashing.dll.sources b/mcs/class/Facades/System.Security.Cryptography.Hashing/System.Security.Cryptography.Hashing.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.Hashing/TypeForwarders.cs b/mcs/class/Facades/System.Security.Cryptography.Hashing/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..da978ab
--- /dev/null
@@ -0,0 +1,27 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.HashAlgorithm))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.HMAC))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.KeyedHashAlgorithm))]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.ProtectedData/AssemblyInfo.cs b/mcs/class/Facades/System.Security.Cryptography.ProtectedData/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..e269b46
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Security.Cryptography.ProtectedData.dll")]
+[assembly: AssemblyDescription ("System.Security.Cryptography.ProtectedData.dll")]
+[assembly: AssemblyDefaultAlias ("System.Security.Cryptography.ProtectedData.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.ProtectedData/Makefile b/mcs/class/Facades/System.Security.Cryptography.ProtectedData/Makefile
new file mode 100644 (file)
index 0000000..56189e5
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Security.Cryptography.ProtectedData
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Security.Cryptography.ProtectedData.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Security.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.ProtectedData/System.Security.Cryptography.ProtectedData.dll.sources b/mcs/class/Facades/System.Security.Cryptography.ProtectedData/System.Security.Cryptography.ProtectedData.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.ProtectedData/TypeForwarders.cs b/mcs/class/Facades/System.Security.Cryptography.ProtectedData/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..a8a99a9
--- /dev/null
@@ -0,0 +1,26 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.DataProtectionScope))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.ProtectedData))]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.RSA/AssemblyInfo.cs b/mcs/class/Facades/System.Security.Cryptography.RSA/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..63feb71
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Security.Cryptography.RSA.dll")]
+[assembly: AssemblyDescription ("System.Security.Cryptography.RSA.dll")]
+[assembly: AssemblyDefaultAlias ("System.Security.Cryptography.RSA.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.RSA/Makefile b/mcs/class/Facades/System.Security.Cryptography.RSA/Makefile
new file mode 100644 (file)
index 0000000..0c4121c
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Security.Cryptography.RSA
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Security.Cryptography.RSA.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.RSA/System.Security.Cryptography.RSA.dll.sources b/mcs/class/Facades/System.Security.Cryptography.RSA/System.Security.Cryptography.RSA.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.RSA/TypeForwarders.cs b/mcs/class/Facades/System.Security.Cryptography.RSA/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..81c224c
--- /dev/null
@@ -0,0 +1,32 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.CspKeyContainerInfo))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.CspParameters))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.CspProviderFlags))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.ICspAsymmetricAlgorithm))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.KeyNumber))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.RSA))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.RSACryptoServiceProvider))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.RSAParameters))]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.RandomNumberGenerator/AssemblyInfo.cs b/mcs/class/Facades/System.Security.Cryptography.RandomNumberGenerator/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..4b0d53f
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Security.Cryptography.RandomNumberGenerator.dll")]
+[assembly: AssemblyDescription ("System.Security.Cryptography.RandomNumberGenerator.dll")]
+[assembly: AssemblyDefaultAlias ("System.Security.Cryptography.RandomNumberGenerator.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.RandomNumberGenerator/Makefile b/mcs/class/Facades/System.Security.Cryptography.RandomNumberGenerator/Makefile
new file mode 100644 (file)
index 0000000..532d2d3
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Security.Cryptography.RandomNumberGenerator
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Security.Cryptography.RandomNumberGenerator.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.RandomNumberGenerator/System.Security.Cryptography.RandomNumberGenerator.dll.sources b/mcs/class/Facades/System.Security.Cryptography.RandomNumberGenerator/System.Security.Cryptography.RandomNumberGenerator.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.RandomNumberGenerator/TypeForwarders.cs b/mcs/class/Facades/System.Security.Cryptography.RandomNumberGenerator/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..e0d92c9
--- /dev/null
@@ -0,0 +1,25 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.RandomNumberGenerator))]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.X509Certificates/AssemblyInfo.cs b/mcs/class/Facades/System.Security.Cryptography.X509Certificates/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..1f49a7b
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Security.Cryptography.X509Certificates.dll")]
+[assembly: AssemblyDescription ("System.Security.Cryptography.X509Certificates.dll")]
+[assembly: AssemblyDefaultAlias ("System.Security.Cryptography.X509Certificates.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.X509Certificates/Makefile b/mcs/class/Facades/System.Security.Cryptography.X509Certificates/Makefile
new file mode 100644 (file)
index 0000000..6e783c1
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Security.Cryptography.X509Certificates
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Security.Cryptography.X509Certificates.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.X509Certificates/System.Security.Cryptography.X509Certificates.dll.sources b/mcs/class/Facades/System.Security.Cryptography.X509Certificates/System.Security.Cryptography.X509Certificates.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Security.Cryptography.X509Certificates/TypeForwarders.cs b/mcs/class/Facades/System.Security.Cryptography.X509Certificates/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..4984b09
--- /dev/null
@@ -0,0 +1,60 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+//TODO:[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.SafeHandles.SafeX509ChainHandle))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.OpenFlags))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.PublicKey))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.StoreLocation))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.StoreName))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X500DistinguishedName))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X500DistinguishedNameFlags))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509BasicConstraintsExtension))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509Certificate))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509Certificate2))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509Certificate2Collection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509Certificate2Enumerator))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509CertificateCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509Chain))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509ChainElement))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509ChainElementCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509ChainElementEnumerator))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509ChainPolicy))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509ChainStatus))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509ChainStatusFlags))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509ContentType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509EnhancedKeyUsageExtension))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509Extension))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509ExtensionCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509ExtensionEnumerator))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509FindType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509KeyStorageFlags))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509KeyUsageExtension))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509KeyUsageFlags))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509NameType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509RevocationFlag))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509RevocationMode))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509Store))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierHashAlgorithm))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Cryptography.X509Certificates.X509VerificationFlags))]
+
+
diff --git a/mcs/class/Facades/System.Security.Principal.Windows/AssemblyInfo.cs b/mcs/class/Facades/System.Security.Principal.Windows/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..7e52ff6
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Security.Principal.Windows.dll")]
+[assembly: AssemblyDescription ("System.Security.Principal.Windows.dll")]
+[assembly: AssemblyDefaultAlias ("System.Security.Principal.Windows.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Security.Principal.Windows/Makefile b/mcs/class/Facades/System.Security.Principal.Windows/Makefile
new file mode 100644 (file)
index 0000000..8a512fb
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Security.Principal.Windows
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Security.Principal.Windows.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Security.Principal.Windows/System.Security.Principal.Windows.dll.sources b/mcs/class/Facades/System.Security.Principal.Windows/System.Security.Principal.Windows.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Security.Principal.Windows/TypeForwarders.cs b/mcs/class/Facades/System.Security.Principal.Windows/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..8ce4172
--- /dev/null
@@ -0,0 +1,35 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+//TODO:[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Principal.IdentityNotMappedException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Principal.IdentityReference))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Principal.IdentityReferenceCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Principal.NTAccount))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Principal.SecurityIdentifier))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Principal.TokenAccessLevels))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Principal.WellKnownSidType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Principal.WindowsBuiltInRole))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Principal.WindowsIdentity))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.Principal.WindowsPrincipal))]
+
+
diff --git a/mcs/class/Facades/System.Security.SecureString/AssemblyInfo.cs b/mcs/class/Facades/System.Security.SecureString/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..27af1f1
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Security.SecureString.dll")]
+[assembly: AssemblyDescription ("System.Security.SecureString.dll")]
+[assembly: AssemblyDefaultAlias ("System.Security.SecureString.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Security.SecureString/Makefile b/mcs/class/Facades/System.Security.SecureString/Makefile
new file mode 100644 (file)
index 0000000..1fcf675
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Security.SecureString
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Security.SecureString.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Security.SecureString/System.Security.SecureString.dll.sources b/mcs/class/Facades/System.Security.SecureString/System.Security.SecureString.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Security.SecureString/TypeForwarders.cs b/mcs/class/Facades/System.Security.SecureString/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..d8898cb
--- /dev/null
@@ -0,0 +1,25 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.SecureString))]
+
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.SecureStringMarshal))]
diff --git a/mcs/class/Facades/System.ServiceModel.Duplex/AssemblyInfo.cs b/mcs/class/Facades/System.ServiceModel.Duplex/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..2dc616e
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2013 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.ServiceModel.Http.dll")]
+[assembly: AssemblyDescription ("System.ServiceModel.Http.dll")]
+[assembly: AssemblyDefaultAlias ("System.ServiceModel.Http.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2013 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.ServiceModel.Duplex/Makefile b/mcs/class/Facades/System.ServiceModel.Duplex/Makefile
new file mode 100644 (file)
index 0000000..f3c2d8b
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.ServiceModel.Duplex
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.ServiceModel.Duplex.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System.ServiceModel
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.ServiceModel.Duplex/System.ServiceModel.Duplex.dll.sources b/mcs/class/Facades/System.ServiceModel.Duplex/System.ServiceModel.Duplex.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.ServiceModel.Duplex/TypeForwarders.cs b/mcs/class/Facades/System.ServiceModel.Duplex/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..3b1a392
--- /dev/null
@@ -0,0 +1,28 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+#if !MOBILE
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.CallbackBehaviorAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.DuplexChannelFactory<>))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.DuplexClientBase<>))]
+#endif
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.InstanceContext))]
diff --git a/mcs/class/Facades/System.ServiceModel.NetTcp/AssemblyInfo.cs b/mcs/class/Facades/System.ServiceModel.NetTcp/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..2dc616e
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2013 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.ServiceModel.Http.dll")]
+[assembly: AssemblyDescription ("System.ServiceModel.Http.dll")]
+[assembly: AssemblyDefaultAlias ("System.ServiceModel.Http.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2013 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.ServiceModel.NetTcp/Makefile b/mcs/class/Facades/System.ServiceModel.NetTcp/Makefile
new file mode 100644 (file)
index 0000000..06ec1cd
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.ServiceModel.NetTcp
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.ServiceModel.NetTcp.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System.ServiceModel
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.ServiceModel.NetTcp/System.ServiceModel.NetTcp.dll.sources b/mcs/class/Facades/System.ServiceModel.NetTcp/System.ServiceModel.NetTcp.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.ServiceModel.NetTcp/TypeForwarders.cs b/mcs/class/Facades/System.ServiceModel.NetTcp/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..41b9ff3
--- /dev/null
@@ -0,0 +1,34 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+#if !MOBILE
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.Channels.ConnectionOrientedTransportBindingElement))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.Channels.SslStreamSecurityBindingElement))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.Channels.TcpConnectionPoolSettings))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.Channels.TcpTransportBindingElement))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.Channels.WindowsStreamSecurityBindingElement))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.MessageSecurityOverTcp))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.NetTcpBinding))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.NetTcpSecurity))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.TcpTransportSecurity))]
+#endif
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.TcpClientCredentialType))]
index dc2f5dc8c617b4426c5e0b4da20326f6e167e889..61d5b5a04468de6b95b1eac09e189e718aee5d87 100644 (file)
@@ -26,6 +26,7 @@
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.Channels.TransportSecurityBindingElement))]
 #if !MOBILE
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.DnsEndpointIdentity))]
+#if !XAMMAC_4_5
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.MessageSecurityVersion))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.Security.BasicSecurityProfileVersion))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.Security.SecureConversationVersion))]
@@ -36,6 +37,7 @@
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.Security.Tokens.SupportingTokenParameters))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.Security.Tokens.UserNameSecurityTokenParameters))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.Security.TrustVersion))]
+#endif
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.SpnEndpointIdentity))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceModel.UpnEndpointIdentity))]
 #endif
diff --git a/mcs/class/Facades/System.ServiceProcess.ServiceController/AssemblyInfo.cs b/mcs/class/Facades/System.ServiceProcess.ServiceController/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..0a10348
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.ServiceProcess.ServiceController.dll")]
+[assembly: AssemblyDescription ("System.ServiceProcess.ServiceController.dll")]
+[assembly: AssemblyDefaultAlias ("System.ServiceProcess.ServiceController.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.ServiceProcess.ServiceController/Makefile b/mcs/class/Facades/System.ServiceProcess.ServiceController/Makefile
new file mode 100644 (file)
index 0000000..8c4bbbf
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.ServiceProcess.ServiceController
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.ServiceProcess.ServiceController.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.ServiceProcess.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.ServiceProcess.ServiceController/System.ServiceProcess.ServiceController.dll.sources b/mcs/class/Facades/System.ServiceProcess.ServiceController/System.ServiceProcess.ServiceController.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.ServiceProcess.ServiceController/TypeForwarders.cs b/mcs/class/Facades/System.ServiceProcess.ServiceController/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..6a21dfc
--- /dev/null
@@ -0,0 +1,29 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceProcess.ServiceController))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceProcess.ServiceControllerStatus))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceProcess.ServiceStartMode))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceProcess.ServiceType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ServiceProcess.TimeoutException))]
+
+
index fe366378eb9196b0ae978f103983015125e3df74..30f1297b9407ad035b908d8b0745686e6c9762b5 100644 (file)
@@ -23,3 +23,6 @@
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.UnicodeEncoding))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.UTF8Encoding))]
 
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.ASCIIEncoding))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.UTF32Encoding))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.UTF7Encoding))]
index 8c132eccc56829334c59a1a791a779b3bf161814..bc19f92a03b6242f5df641df39a8eee18d5f783c 100644 (file)
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.EncoderFallbackException))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.Encoding))]
 
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.DecoderExceptionFallback))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.DecoderFallback))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.DecoderFallbackBuffer))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.DecoderReplacementFallback))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.EncoderExceptionFallback))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.EncoderFallback))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.EncoderFallbackBuffer))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.EncoderReplacementFallback))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Text.EncodingProvider))]
diff --git a/mcs/class/Facades/System.Threading.AccessControl/AssemblyInfo.cs b/mcs/class/Facades/System.Threading.AccessControl/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..76e2db5
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Threading.AccessControl.dll")]
+[assembly: AssemblyDescription ("System.Threading.AccessControl.dll")]
+[assembly: AssemblyDefaultAlias ("System.Threading.AccessControl.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Threading.AccessControl/Makefile b/mcs/class/Facades/System.Threading.AccessControl/Makefile
new file mode 100644 (file)
index 0000000..1eb1844
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Threading.AccessControl
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Threading.AccessControl.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Threading.AccessControl/System.Threading.AccessControl.dll.sources b/mcs/class/Facades/System.Threading.AccessControl/System.Threading.AccessControl.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Threading.AccessControl/TypeForwarders.cs b/mcs/class/Facades/System.Threading.AccessControl/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..8871794
--- /dev/null
@@ -0,0 +1,36 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.EventWaitHandleAccessRule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.EventWaitHandleAuditRule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.EventWaitHandleRights))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.EventWaitHandleSecurity))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.MutexAccessRule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.MutexAuditRule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.MutexRights))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.MutexSecurity))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.SemaphoreAccessRule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.SemaphoreAuditRule))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.SemaphoreRights))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.SemaphoreSecurity))]
+
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.ThreadingAclExtensions))]
diff --git a/mcs/class/Facades/System.Threading.Overlapped/AssemblyInfo.cs b/mcs/class/Facades/System.Threading.Overlapped/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..37bca06
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Threading.Overlapped.dll")]
+[assembly: AssemblyDescription ("System.Threading.Overlapped.dll")]
+[assembly: AssemblyDefaultAlias ("System.Threading.Overlapped.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Threading.Overlapped/Makefile b/mcs/class/Facades/System.Threading.Overlapped/Makefile
new file mode 100644 (file)
index 0000000..b1d0254
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Threading.Overlapped
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Threading.Overlapped.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Threading.Overlapped/System.Threading.Overlapped.dll.sources b/mcs/class/Facades/System.Threading.Overlapped/System.Threading.Overlapped.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Threading.Overlapped/TypeForwarders.cs b/mcs/class/Facades/System.Threading.Overlapped/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..127e5a1
--- /dev/null
@@ -0,0 +1,27 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.IOCompletionCallback))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.NativeOverlapped))]
+
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.PreAllocatedOverlapped))]
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.ThreadPoolBoundHandle))]
diff --git a/mcs/class/Facades/System.Threading.Thread/AssemblyInfo.cs b/mcs/class/Facades/System.Threading.Thread/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..c94f1e2
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Threading.Thread.dll")]
+[assembly: AssemblyDescription ("System.Threading.Thread.dll")]
+[assembly: AssemblyDefaultAlias ("System.Threading.Thread.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Threading.Thread/Makefile b/mcs/class/Facades/System.Threading.Thread/Makefile
new file mode 100644 (file)
index 0000000..d57451b
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Threading.Thread
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Threading.Thread.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Threading.Thread/System.Threading.Thread.dll.sources b/mcs/class/Facades/System.Threading.Thread/System.Threading.Thread.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Threading.Thread/TypeForwarders.cs b/mcs/class/Facades/System.Threading.Thread/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..18225ab
--- /dev/null
@@ -0,0 +1,30 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.ParameterizedThreadStart))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.Thread))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.ThreadStart))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.ThreadStartException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.ThreadState))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.ThreadStateException))]
+
+
diff --git a/mcs/class/Facades/System.Threading.ThreadPool/AssemblyInfo.cs b/mcs/class/Facades/System.Threading.ThreadPool/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..44825c0
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Threading.ThreadPool.dll")]
+[assembly: AssemblyDescription ("System.Threading.ThreadPool.dll")]
+[assembly: AssemblyDefaultAlias ("System.Threading.ThreadPool.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Threading.ThreadPool/Makefile b/mcs/class/Facades/System.Threading.ThreadPool/Makefile
new file mode 100644 (file)
index 0000000..d8c862a
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Threading.ThreadPool
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Threading.ThreadPool.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Threading.ThreadPool/System.Threading.ThreadPool.dll.sources b/mcs/class/Facades/System.Threading.ThreadPool/System.Threading.ThreadPool.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Threading.ThreadPool/TypeForwarders.cs b/mcs/class/Facades/System.Threading.ThreadPool/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..89e7f72
--- /dev/null
@@ -0,0 +1,28 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.RegisteredWaitHandle))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.ThreadPool))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.WaitCallback))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.WaitOrTimerCallback))]
+
+
index 7d6affcb01138c96e98fce13e4a50015ba448cc8..9fd6afd99afed1e115f2575866a9595e116742f0 100644 (file)
@@ -48,3 +48,7 @@
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.Volatile))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.WaitHandleCannotBeOpenedException))]
 
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.AsyncLocal<>))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.AsyncLocalValueChangedArgs<>))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.ContextCallback))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Threading.ExecutionContext))]
index f3ee0d8101f703cd01414eb590d22a7cb7f09531..1b3e7a3a46b6e5b29adbd0c1754c3b9bb289b10a 100644 (file)
@@ -45,3 +45,6 @@
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlWriter))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlWriterSettings))]
 
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.Serialization.IXmlSerializable))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlDateTimeSerializationMode))]
+
diff --git a/mcs/class/Facades/System.Xml.XPath.XDocument/AssemblyInfo.cs b/mcs/class/Facades/System.Xml.XPath.XDocument/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..26f4eb8
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Xml.XPath.XDocument.dll")]
+[assembly: AssemblyDescription ("System.Xml.XPath.XDocument.dll")]
+[assembly: AssemblyDefaultAlias ("System.Xml.XPath.XDocument.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Xml.XPath.XDocument/Makefile b/mcs/class/Facades/System.Xml.XPath.XDocument/Makefile
new file mode 100644 (file)
index 0000000..a75dedf
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Xml.XPath.XDocument
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Xml.XPath.XDocument.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Xml.Linq.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Xml.XPath.XDocument/System.Xml.XPath.XDocument.dll.sources b/mcs/class/Facades/System.Xml.XPath.XDocument/System.Xml.XPath.XDocument.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Xml.XPath.XDocument/TypeForwarders.cs b/mcs/class/Facades/System.Xml.XPath.XDocument/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..a9ce642
--- /dev/null
@@ -0,0 +1,25 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XPath.Extensions))]
+
+//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XPath.XDocumentExtensions))]
diff --git a/mcs/class/Facades/System.Xml.XPath/AssemblyInfo.cs b/mcs/class/Facades/System.Xml.XPath/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..1a93dd2
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Xml.XPath.dll")]
+[assembly: AssemblyDescription ("System.Xml.XPath.dll")]
+[assembly: AssemblyDefaultAlias ("System.Xml.XPath.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Xml.XPath/Makefile b/mcs/class/Facades/System.Xml.XPath/Makefile
new file mode 100644 (file)
index 0000000..3085087
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Xml.XPath
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Xml.XPath.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Xml.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Xml.XPath/System.Xml.XPath.dll.sources b/mcs/class/Facades/System.Xml.XPath/System.Xml.XPath.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Xml.XPath/TypeForwarders.cs b/mcs/class/Facades/System.Xml.XPath/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..310ee66
--- /dev/null
@@ -0,0 +1,38 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlNodeOrder))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XPath.IXPathNavigable))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XPath.XmlCaseOrder))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XPath.XmlDataType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XPath.XmlSortOrder))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XPath.XPathDocument))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XPath.XPathException))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XPath.XPathExpression))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XPath.XPathItem))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XPath.XPathNamespaceScope))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XPath.XPathNavigator))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XPath.XPathNodeIterator))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XPath.XPathNodeType))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XPath.XPathResultType))]
+
+
diff --git a/mcs/class/Facades/System.Xml.XmlDocument/AssemblyInfo.cs b/mcs/class/Facades/System.Xml.XmlDocument/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..f83abeb
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Xml.XmlDocument.dll")]
+[assembly: AssemblyDescription ("System.Xml.XmlDocument.dll")]
+[assembly: AssemblyDefaultAlias ("System.Xml.XmlDocument.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Xml.XmlDocument/Makefile b/mcs/class/Facades/System.Xml.XmlDocument/Makefile
new file mode 100644 (file)
index 0000000..4a65050
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Xml.XmlDocument
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Xml.XmlDocument.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Xml.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Xml.XmlDocument/System.Xml.XmlDocument.dll.sources b/mcs/class/Facades/System.Xml.XmlDocument/System.Xml.XmlDocument.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Xml.XmlDocument/TypeForwarders.cs b/mcs/class/Facades/System.Xml.XmlDocument/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..ae5eed6
--- /dev/null
@@ -0,0 +1,45 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlAttributeCollection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlCDataSection))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlCharacterData))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlComment))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlDeclaration))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlDocument))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlDocumentFragment))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlElement))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlImplementation))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlLinkedNode))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlNamedNodeMap))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlNode))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlNodeChangedAction))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlNodeChangedEventArgs))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlNodeChangedEventHandler))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlNodeList))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlProcessingInstruction))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlSignificantWhitespace))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlText))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.XmlWhitespace))]
+
+
diff --git a/mcs/class/Facades/System.Xml.Xsl.Primitives/AssemblyInfo.cs b/mcs/class/Facades/System.Xml.Xsl.Primitives/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..decfeec
--- /dev/null
@@ -0,0 +1,41 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyTitle ("System.Xml.Xsl.Primitives.dll")]
+[assembly: AssemblyDescription ("System.Xml.Xsl.Primitives.dll")]
+[assembly: AssemblyDefaultAlias ("System.Xml.Xsl.Primitives.dll")]
+[assembly: AssemblyCompany ("Xamarin, Inc.")]
+[assembly: AssemblyProduct ("Mono Common Language Infrastructure")]
+[assembly: AssemblyCopyright ("Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)")]
+[assembly: AssemblyVersion ("4.0.0.0")]
+[assembly: AssemblyInformationalVersion ("4.0.0.0")]
+[assembly: AssemblyFileVersion ("4.0.0.0")]
+[assembly: AssemblyDelaySign (true)]
+[assembly: AssemblyKeyFile ("../../msfinal.pub")]
+
+[assembly: ReferenceAssembly]
+
+
diff --git a/mcs/class/Facades/System.Xml.Xsl.Primitives/Makefile b/mcs/class/Facades/System.Xml.Xsl.Primitives/Makefile
new file mode 100644 (file)
index 0000000..feb9873
--- /dev/null
@@ -0,0 +1,23 @@
+MCS_BUILD_DIR = ../../../build
+
+thisdir = class/Facades/System.Xml.Xsl.Primitives
+SUBDIRS = 
+include $(MCS_BUILD_DIR)/rules.make
+
+LIBRARY_SUBDIR = Facades
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)/Facades
+
+LIBRARY = System.Xml.Xsl.Primitives.dll
+
+KEY_FILE = ../../msfinal.pub
+SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
+LIB_REFS = System
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Xml.dll
+
+PLATFORM_DEBUG_FLAGS =
+
+NO_TEST = yes
+
+include $(MCS_BUILD_DIR)/library.make
+
+
diff --git a/mcs/class/Facades/System.Xml.Xsl.Primitives/System.Xml.Xsl.Primitives.dll.sources b/mcs/class/Facades/System.Xml.Xsl.Primitives/System.Xml.Xsl.Primitives.dll.sources
new file mode 100644 (file)
index 0000000..8e33d4d
--- /dev/null
@@ -0,0 +1,3 @@
+TypeForwarders.cs
+AssemblyInfo.cs
+
diff --git a/mcs/class/Facades/System.Xml.Xsl.Primitives/TypeForwarders.cs b/mcs/class/Facades/System.Xml.Xsl.Primitives/TypeForwarders.cs
new file mode 100644 (file)
index 0000000..3c736d3
--- /dev/null
@@ -0,0 +1,27 @@
+// 
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.Xsl.IXsltContextFunction))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.Xsl.IXsltContextVariable))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Xml.Xsl.XsltContext))]
+
+
index 07ec322f493b27dc0cfc7f8528fb9f5b77afd468..3e336f985322c2432cac9a767a64a41f79cdf98b 100644 (file)
@@ -46,20 +46,22 @@ mobile_common_dirs := \
        System.ComponentModel.DataAnnotations \
        System.ComponentModel.Composition.4.5 \
        System.Net \
+       System.Net.Http \
+       System.Net.Http.WebRequest      \
        System.Windows \
        System.Xml.Serialization \
        Mono.CSharp     \
-       Microsoft.CSharp \
-       $(pcl_facade_dirs)
+       Microsoft.CSharp
 
 mobile_static_dirs := \
        $(mobile_common_dirs)   \
-       Mono.Dynamic.Interpreter
+       Mono.Dynamic.Interpreter        \
+       $(pcl_facade_dirs)
 
 mobile_dynamic_dirs := \
        $(mobile_common_dirs)   \
        Mono.CompilerServices.SymbolWriter      \
-       System.Net.Http
+       $(pcl_facade_dirs)
 
 xammac_dirs := \
        $(mobile_dynamic_dirs)
@@ -70,6 +72,8 @@ monodroid_dirs := \
 monotouch_dirs := \
        $(mobile_static_dirs)
 
+monotouch_watch_dirs := $(monotouch_dirs)
+
 monotouch_runtime_dirs := \
        corlib \
        System \
@@ -77,7 +81,51 @@ monotouch_runtime_dirs := \
        System.XML \
        Mono.CSharp
 
-net_4_5_dirs := \
+xammac_4_5_dirs := \
+       corlib  \
+       System  \
+       Mono.Posix                      \
+       System.Core     \
+       System.XML      \
+       Mono.Security   \
+       System  \
+       I18N            \
+       System.ServiceModel.Internals   \
+       SMDiagnostics   \
+       System.Numerics \
+       Mono.Data.Tds   \
+       System.Transactions     \
+       System.EnterpriseServices       \
+       System.Data     \
+       System.Runtime.Serialization    \
+       System.Xml.Linq \
+       Mono.Data.Sqlite        \
+       System.Runtime.Serialization.Formatters.Soap \
+       System.ComponentModel.DataAnnotations \
+       System.IdentityModel            \
+       System.IdentityModel.Selectors  \
+       Mono.Messaging                  \
+       System.Configuration.Install    \
+       System.Messaging                \
+       System.Web.Services \
+       System.ServiceModel     \
+       System.ServiceModel.Web \
+       System.Json     \
+       System.Data.Services.Client \
+       System.IO.Compression \
+       System.IO.Compression.FileSystem \
+       System.ComponentModel.Composition.4.5 \
+       System.Net \
+       System.Windows \
+       System.Xml.Serialization \
+       Mono.CSharp     \
+       Microsoft.CSharp \
+       Mono.CompilerServices.SymbolWriter      \
+       System.Data.Linq                \
+       System.Net.Http \
+       $(pcl_facade_dirs)
+
+net_4_x_dirs := \
        corlib                          \
        System                          \
        System.XML                      \
@@ -93,6 +141,7 @@ net_4_5_dirs := \
        System.EnterpriseServices       \
        Mono.Data.Tds                   \
        System.Numerics         \
+       System.Numerics.Vectors         \
        System.Data                     \
        System.ComponentModel.DataAnnotations   \
        Accessibility                   \
@@ -158,9 +207,9 @@ net_4_5_dirs := \
        System.Web.Http.SelfHost \
        System.Web.Http.WebHost
 
-# These are the subdirs which depends on libs in net_4_5_dirs
+# These are the subdirs which depends on libs in net_4_x_dirs
 # or have proper dependencies between each other
-net_4_5_parallel_dirs := \
+net_4_x_parallel_dirs := \
        PEAPI                           \
        I18N                            \
        Mono.Http                       \
@@ -221,19 +270,21 @@ xbuild_4_0_dirs := \
 
 monodroid_SUBDIRS := $(monodroid_dirs)
 monotouch_SUBDIRS := $(monotouch_dirs)
+monotouch_watch_SUBDIRS := $(monotouch_watch_dirs)
 monotouch_runtime_SUBDIRS := $(monotouch_runtime_dirs)
 mobile_static_SUBDIRS := $(mobile_static_dirs)
 mobile_SUBDIRS := $(mobile_dynamic_dirs)
 xammac_SUBDIRS := $(xammac_dirs)
+xammac_net_4_5_SUBDIRS := $(xammac_4_5_dirs)
 binary_reference_assemblies_SUBDIRS := reference-assemblies
-net_4_5_SUBDIRS := $(net_4_5_dirs) $(xbuild_4_0_dirs)
-net_4_5_PARALLEL_SUBDIRS := $(net_4_5_parallel_dirs) aot-compiler
+net_4_x_SUBDIRS := $(net_4_x_dirs) $(xbuild_4_0_dirs)
+net_4_x_PARALLEL_SUBDIRS := $(net_4_x_parallel_dirs) aot-compiler
 xbuild_12_SUBDIRS := $(xbuild_4_0_dirs)
 xbuild_14_SUBDIRS := $(xbuild_4_0_dirs)
 
 include ../build/rules.make
 
-SUBDIRS = $(mobile_static_dirs) $(mobile_dynamic_dirs) $(monotouch_dirs) $(monodroid_dirs) $(xammac_dirs) $(net_4_5_dirs) $(net_4_5_parallel_dirs)
+SUBDIRS = $(mobile_static_dirs) $(mobile_dynamic_dirs) $(monotouch_dirs) $(monodroid_dirs) $(xammac_dirs) $(net_4_x_dirs) $(net_4_x_parallel_dirs) $(xammac_net_4_5_SUBDIRS)
 
 DIST_ONLY_SUBDIRS = dlr aot-compiler reference-assemblies $(xbuild_4_0_dirs)
 
index 57352e70f4f287d3fea971795266fd008039e9eb..f663120bf798730223c944db359caa7873771dc5 100644 (file)
@@ -472,7 +472,7 @@ namespace Microsoft.Build.BuildEngine {
 
                        BuildItemGroup big;                     
                        BuildItem bi = new BuildItem (this);
-                       bi.finalItemSpec = ((ITaskItem2)taskitem).EvaluatedIncludeEscaped;
+                       bi.finalItemSpec = taskitem.ItemSpec;
 
                        foreach (DictionaryEntry de in taskitem.CloneCustomMetadata ()) {
                                bi.unevaluatedMetadata.Add ((string) de.Key, (string) de.Value);
index 8cd12c087d73126e54540979380732d2662603d5..9e7ba2405204959bcbe2eda7480dc49ca5e72ce5 100644 (file)
@@ -118,6 +118,9 @@ namespace Microsoft.Build.BuildEngine {
                                                ToolLocationHelper.GetPathToDotNetFramework (TargetDotNetFrameworkVersion.Version40)));
 #if XBUILD_12
                        Toolsets.Add (new Toolset ("12.0", ToolLocationHelper.GetPathToBuildTools ("12.0")));
+#endif
+#if XBUILD_14
+                       Toolsets.Add (new Toolset ("14.0", ToolLocationHelper.GetPathToBuildTools ("14.0")));
 #endif
                }
                
index 536204e94fef828b98836d56953377718b88a22b..ccfc0fa3a0ea8a46c1a5018af0732e84820892b4 100644 (file)
@@ -156,7 +156,7 @@ namespace Microsoft.Build.BuildEngine {
                        for (int i = 0; i < lists.Count; i++) {
                                foreach (object o in lists [i]) {
                                        if (o is string)
-                                               expressionCollection.Add ((string) o);
+                                               expressionCollection.Add (MSBuildUtils.Unescape ((string) o));
                                        else if (!allowItems && o is ItemReference)
                                                expressionCollection.Add (((ItemReference) o).OriginalString);
                                        else if (!allowMd && o is MetadataReference) {
index d629906633200d69b14afb6c493cff7268e19b8f..ca0034a10923b5ab756aa8c38ba1c96c82115856 100644 (file)
@@ -233,11 +233,11 @@ namespace Microsoft.Build.BuildEngine {
                        // Trim and Remove empty items
                        List<ITaskItem> toRemove = new List<ITaskItem> ();
                        for (int i = 0; i < finalItems.Count; i ++) {
-                               string s = ((ITaskItem2)finalItems [i]).EvaluatedIncludeEscaped.Trim ();
+                               string s = finalItems [i].ItemSpec.Trim ();
                                if (s.Length == 0)
                                        toRemove.Add (finalItems [i]);
                                else
-                                       ((ITaskItem2)finalItems [i]).EvaluatedIncludeEscaped = s;
+                                       finalItems [i].ItemSpec = s;
                        }
                        foreach (ITaskItem ti in toRemove)
                                finalItems.Remove (ti);
index 9294337b69366e0703c6f4682d66c518b80c1a61..f53c0d29bf8fa3ba480283d6088acfb1854d82a4 100644 (file)
@@ -44,11 +44,9 @@ public static class Consts {
 #elif XBUILD_12
                                string profile = "xbuild_12";
 #elif NET_4_5
-                               string profile = "net_4_5";
-#elif NET_4_0
-                               string profile = "net_4_0";
+                               string profile = "net_4_x";
 #else
-                               string profile = "net_2_0";
+                               #error "Unknown profile"
 #endif
                                var corlib = typeof (object).Assembly.Location;
                                var lib = Path.GetDirectoryName (Path.GetDirectoryName (corlib));
index d5750ef2ce3394e31018916367bb45f73f1eed3c..6c7919e6ae7db4d7c36cc02ad79cc4ceebc10ab3 100644 (file)
@@ -905,7 +905,6 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
                        Assert.AreEqual (0, logger.NormalMessageCount, "Unexpected extra messages found");
                }
 
-#if NET_4_0
                [Test]
                [Category ("NotDotNet")]
                public void TestBeforeAndAfterTargets ()
@@ -960,7 +959,6 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
                        //warnings for referencing unknown targets: NonExistant and Foo
                        Assert.AreEqual (2, logger.WarningsCount, "Expected warnings not raised");
                }
-#endif
 
                [Test]
                public void TestTargetReturns ()
index a4fa05f915892dfd090be3fcbb01980aa3d2bfb1..b0ca8776aa9cf4c2761c84a5938e99a7fef43031 100644 (file)
@@ -208,9 +208,36 @@ namespace Microsoft.Build.Tasks {
                        if (!TryGetSpecificVersionValue (item, out specific_version))
                                return null;
 
+                       var spath_index  = 0;
                        foreach (string spath in search_paths) {
+                               if (string.IsNullOrEmpty (spath))
+                                       continue;
                                assembly_resolver.LogSearchMessage ("For searchpath {0}", spath);
 
+                               // The first value of search_paths can be the parent assembly directory.
+                               // In that case the value would be treated as a directory.
+                               // This code checks if we should treat the value as a TargetFramework assembly.
+                               // Doing so avoids CopyLocal beeing set to true.
+                               if (spath_index++ == 0 && targetFrameworkDirectories != null) {
+                                       foreach (string fpath in targetFrameworkDirectories) {
+                                               if (string.IsNullOrEmpty (fpath))
+                                                       continue;
+                                               if (String.Compare (
+                                                               Path.GetFullPath (spath).TrimEnd (Path.DirectorySeparatorChar),
+                                                               Path.GetFullPath (fpath).TrimEnd (Path.DirectorySeparatorChar),
+                                                               StringComparison.InvariantCulture) != 0)
+                                                       continue;
+
+                                               resolved = assembly_resolver.FindInTargetFramework (item,
+                                                       fpath, specific_version);
+
+                                               break;
+                                       }
+
+                                       if  (resolved != null)
+                                               break;
+                               }
+
                                if (String.Compare (spath, "{HintPathFromItem}") == 0) {
                                        resolved = assembly_resolver.ResolveHintPathReference (item, specific_version);
                                } else if (String.Compare (spath, "{TargetFrameworkDirectory}") == 0) {
index ac5136a17a6c1dd7eabd3f01d05cd25cf274b9b2..e665a41cebfd6fa4869e4fbba2cdc3927fed736d 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.IO;
 using System.Linq;
@@ -207,4 +206,3 @@ Log.LogWarning(""Color: "" + System.Drawing.Color.CornflowerBlue);
        }
 }
 
-#endif
index 711bdb26afc536c33d6956c2263eb699d4857e0d..37f26bd7935ba72c214627ebb5efb3f101f6800c 100644 (file)
@@ -44,20 +44,6 @@ namespace MonoTests.Microsoft.Build.Tasks {
                public void ARFC (CommandLineBuilderExtension commandLine)
                {
                        base.AddResponseFileCommands (commandLine);
-#if !NET_4_0
-                       string s = commandLine.ToString ();
-                       if (s.Length == 6)
-                               Assert.AreEqual ("/sdk:2", s);
-                       else
-                               Assert.AreEqual ("/sdk:2 ", s.Substring (0, 7));
-
-                       BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic;
-                       PropertyInfo pi = typeof (CommandLineBuilderExtension).GetProperty ("CommandLine", flags);
-                       System.Text.StringBuilder sb = (System.Text.StringBuilder) pi.GetValue (commandLine, null);
-                       sb.Length = 0;
-                       if (s.Length > 6)
-                               sb.Append (s.Substring (7));
-#endif
                }
 
                public void ACLC (CommandLineBuilderExtension commandLine)
index 1aa785622ba7e91e8b9f10a9d9d3cb286d17750f..24b76b6c07c3d633162467a01cb9077bbbc96397 100644 (file)
@@ -79,6 +79,7 @@ namespace MonoTests.Microsoft.Build.Tasks {
                                                <Message Text='Text5' Importance='normal'/>
                                                <Message Text='Text6' Importance='high'/>
                                                <Message Text='Text7' />
+                                               <Message Text='%22abc test%22 123 %22def%22' />
                                                <Message Text='Text8' Importance='weird_importance'/>
                                        </Target>
                                </Project>
@@ -102,7 +103,8 @@ namespace MonoTests.Microsoft.Build.Tasks {
                        Assert.AreEqual (0, testLogger.CheckAny ("Text5", MessageImportance.Normal), "A5");
                        Assert.AreEqual (0, testLogger.CheckAny ("Text6", MessageImportance.High), "A6");
                        Assert.AreEqual (0, testLogger.CheckAny ("Text7", MessageImportance.Normal), "A7");
-                       Assert.AreEqual (1, testLogger.CheckAny ("Text8", MessageImportance.Normal), "A8");
+                       Assert.AreEqual (0, testLogger.CheckAny ("\"abc test\" 123 \"def\"", MessageImportance.Normal), "A8");
+                       Assert.AreEqual (1, testLogger.CheckAny ("Text8", MessageImportance.Normal), "A9");
                }
        }
 }      
index 4a61015f0be8d245ee5ddfae52cb8bd4b48eb3fe..3342c003e8bf890d8df77900cb32aee9f6d3eb0f 100755 (executable)
@@ -91,6 +91,7 @@ namespace MonoTests.Microsoft.Build.Tasks {
                }
 
                [Test]
+               [Category("NotWorking")] // this fails due to an xbuild bug, it works on MS.NET
                public void TestLineWithEscapedSemicolon ()
                {
                        string[] lines = new string[] { "abc%3Btest%3B%3B", "%3Bdef" };
@@ -101,6 +102,7 @@ namespace MonoTests.Microsoft.Build.Tasks {
                }
 
                [Test]
+               [Category("NotWorking")] // this fails due to an xbuild bug, it works on MS.NET
                public void TestLineWithEscapedSpace ()
                {
                        string[] lines = new string[] { "  %20%20abc%20test  ", "  def%20%20" };
@@ -110,6 +112,16 @@ namespace MonoTests.Microsoft.Build.Tasks {
                        });
                }
 
+               [Test]
+               public void TestLineWithEscapedQuote ()
+               {
+                       string[] lines = new string[] { "%22abc test%22 123 %22def%22" };
+                       CreateProjectAndCheck (full_filepath, lines, false, true, delegate () {
+                               CheckFileExists (full_filepath, true);
+                               CheckLines (full_filepath, new string [] {"\"abc test\" 123 \"def\""});
+                       });
+               }
+
                [Test]
                public void TestNoOverwrite ()
                {
index 5e818caf70756dba3b45a18c8443ad9eccf03891..2d2de50cd9e6d8c4d73ab42bade65cbea2c89ff2 100644 (file)
@@ -173,7 +173,7 @@ namespace Microsoft.Build.Utilities
                }
                public override string ToString ()
                {
-                       return ItemSpec;
+                       return escapedItemSpec;
                }
                
                public string ItemSpec {
index 767a4037e45f8da1fc66b6f20eca94cc6329f00e..8f040e404ebb8ca8d9673b3865f9690d752dc1c4 100644 (file)
@@ -69,9 +69,9 @@ namespace Microsoft.Build.Utilities
                                        // mono's 4.0 is not an actual framework directory with all tools etc
                                        // it's simply reference assemblies. So like .NET we consider 4.5 to
                                        // be a complete replacement for 4.0.
-                                       Path.Combine (lib_mono_dir, "net_4_5"),
-                                       Path.Combine (lib_mono_dir, "net_4_5"),
-                                       Path.Combine (lib_mono_dir, "net_4_5")
+                                       Path.Combine (lib_mono_dir, "net_4_x"),
+                                       Path.Combine (lib_mono_dir, "net_4_x"),
+                                       Path.Combine (lib_mono_dir, "net_4_x")
                                };      
                        } else if (runningOnDotNet) {
                                mono_dir = new string [] {
index fbb567d28271a41a60d4eecde45ef027759a293e..5c49349931654ef3ebf1d1cf458e118d5a16e88d 100644 (file)
@@ -1,4 +1,4 @@
-#if NET_4_0
+
 using System;
 using NUnit.Framework;
 using Microsoft.Build.Utilities;
@@ -18,4 +18,3 @@ namespace MonoTests.Microsoft.Build.Utilities
        }
 }
 
-#endif
index 79b73d66e45203cd0793be019ffaa89493e1a8af..1d691129cd3f9a56610d8e96600c0e87ea4e6559 100644 (file)
@@ -1,3 +1,3 @@
 <?xml version="1.0" encoding="utf-8"?>
-<FileList Name=".NET Framework 2.0" TargetFrameworkDirectory="..\..\..\..\..\lib\net_4_5">
+<FileList Name=".NET Framework 2.0" TargetFrameworkDirectory="..\..\..\..\..\lib\net_4_x">
 </FileList>
index dab4ced6ae593df460bd9ed7f2195e29652783e1..6c27505b7822e32790d11d88ed8f7823cfb7b272 100644 (file)
@@ -1,3 +1,3 @@
 <?xml version="1.0" encoding="utf-8"?>
-<FileList  Name=".NET Framework 3.5" TargetFrameworkDirectory="..\..\..\..\..\lib\net_4_5">
+<FileList  Name=".NET Framework 3.5" TargetFrameworkDirectory="..\..\..\..\..\lib\net_4_x">
 </FileList>
index e373f1e968d790e5ef8a00082ba14ff63930bff1..072008d373174c4eae8e69918ee4d047c32eaa35 100644 (file)
@@ -1,3 +1,3 @@
 <?xml version="1.0" encoding="utf-8"?>
-<FileList  Name=".NET Framework 4" TargetFrameworkDirectory="..\..\..\..\..\lib\net_4_5">
+<FileList  Name=".NET Framework 4" TargetFrameworkDirectory="..\..\..\..\..\lib\net_4_x">
 </FileList>
index 9223cbbd843a96a8741831ec97571ffd6e7a5e4a..2bd2baeb469ef628a3a12cfb7ba6faf554152b8c 100644 (file)
@@ -1,3 +1,3 @@
 <?xml version="1.0" encoding="utf-8"?>
-<FileList  Name=".NET Framework 4.5" TargetFrameworkDirectory="..\..\..\..\..\lib\net_4_5">
+<FileList  Name=".NET Framework 4.5" TargetFrameworkDirectory="..\..\..\..\..\lib\net_4_x">
 </FileList>
index 74f8e7ae15e41a184a90e0fd8a41891e38ab4336..74a1f0fe8f1d0d100662902af57852779e78c6e9 100644 (file)
@@ -7,7 +7,7 @@ LIBRARY = Mono.CSharp.dll
 LIB_REFS = System.Core System.Xml System
 LIB_MCS_FLAGS =
 
-MOBILE_STATIC := $(filter mobile_static monotouch, $(PROFILE))
+MOBILE_STATIC := $(filter mobile_static monotouch monotouch_watch, $(PROFILE))
 
 ifdef MOBILE_STATIC
 LIB_MCS_FLAGS += -d:IOS_REFLECTION
diff --git a/mcs/class/Mono.CSharp/monotouch_watch_Mono.CSharp.dll.sources b/mcs/class/Mono.CSharp/monotouch_watch_Mono.CSharp.dll.sources
new file mode 100644 (file)
index 0000000..6a71501
--- /dev/null
@@ -0,0 +1,2 @@
+#include mobile_static_Mono.CSharp.dll.sources
+monotouch.cs
index 277f25a7f6fade9f356f88b0795e82941db80e57..4d142314b9efb96d53d59d4ab4b061ccf22d780d 100644 (file)
@@ -205,7 +205,7 @@ namespace Mono.CompilerServices.SymbolWriter
                public static readonly LineNumberEntry Null = new LineNumberEntry (0, 0, 0, 0);
 
                public LineNumberEntry (int file, int row, int column, int offset)
-                       : this (file, row, offset, column, false)
+                       : this (file, row, column, offset, false)
                {
                }
 
index bde7bdeb3dafee0e39a050753dff01fdc5887be8..c5ae7c6ff2cf89e15ebc564530921fa6c3d0474b 100644 (file)
@@ -30,6 +30,8 @@ namespace Mono.Data.Sqlite
     private const string SQLITE_DLL = "SQLite.Interop.DLL";\r
 #endif // USE_INTEROP_DLL\r
 \r
+#elif MONOTOUCH\r
+       private const string SQLITE_DLL = "/usr/lib/libsqlite3.dylib";\r
 #else\r
     private const string SQLITE_DLL = "sqlite3";\r
 #endif\r
index a3a5376e48c330eeb01ca2ea8c0d9084e9e3ff65..d64d3055b999b36e07e8ba66aeed04a5aba275c0 100644 (file)
@@ -92,14 +92,12 @@ namespace MonoTests.Mono.Data.Sqlite {
                                                        Assert.AreEqual(dr["Company.Name"], "Test CO");
                                                        i += 2;
                                                }
-                                               Assert.IsTrue(dr.FieldCount>0);
+                                               Assert.IsTrue(dr.FieldCount>0, i.ToString ());
                                        }
-                                       if (BCL.Tests.TestRuntime.CheckSystemVersion (8, 2))
-                                               Assert.IsTrue (false, "Apple fixed bug 27864, this check can now be removed");
                                }
                        } catch (SqliteException ex) {
-
-                               if (BCL.Tests.TestRuntime.CheckSystemVersion (8, 2)) // Expected Exception on iOS 8.2+, if this does not happen anymore it means apple fixed it
+                               // Expected Exception from iOS 8.2 (broken) to 9.0 (fixed)
+                               if (BCL.Tests.TestRuntime.CheckSystemVersion (8,2) && !BCL.Tests.TestRuntime.CheckSystemVersion (9,0)) 
                                        Assert.That (ex.Message.Contains ("no such column: com.Name"));
                                else
                                        throw new AssertionException ("Unexpected Sqlite Error", ex); // This should not happen
index ef23ec5d568ecc7832802ebec971e6fa81108559..659cf71668e2ae51c6e6846d8730e97ce77b1de8 100644 (file)
@@ -9,7 +9,7 @@ LIB_MCS_FLAGS = /r:$(corlib) /unsafe -D:MONO_DATACONVERTER_STATIC_METHODS -keyfi
 
 TEST_MCS_FLAGS = /r:Mono.Cecil.dll /r:System.dll /r:System.Core.dll
 
-VALID_TEST_PROFILE := $(filter net_4_5, $(PROFILE))
+VALID_TEST_PROFILE := $(filter net_4_x, $(PROFILE))
 
 # The test exe is not profile specific, and compiling a 2.0 will make the 4.5 tests fail
 ifdef VALID_TEST_PROFILE
index dcc840d9886e84e0036186db99d1817271a348ea..d922e9e0e640b4ab9bc3f8689299c099dce6e444 100644 (file)
@@ -86,6 +86,22 @@ public struct AStruct : ITest2 {
        public byte k;
        public IntPtr j;
        public int l;
+/*
+       public AStruct () {
+               i = 0;
+               s = null;
+               k = 0;
+               j = IntPtr.Zero;
+               l = 0;
+       }
+*/
+       public AStruct (int arg) {
+               i = arg;
+               s = null;
+               k = 0;
+               j = IntPtr.Zero;
+               l = 0;
+       }
 
        [MethodImplAttribute (MethodImplOptions.NoInlining)]
        public int foo (int val) {
@@ -316,6 +332,7 @@ public class Tests : TestsBase, ITest2
                gc_suspend ();
                set_ip ();
                step_filters ();
+               local_reflect ();
                if (args.Length > 0 && args [0] == "domain-test")
                        /* This takes a lot of time, so execute it conditionally */
                        domains ();
@@ -329,6 +346,11 @@ public class Tests : TestsBase, ITest2
                return 3;
        }
 
+       public static void local_reflect () {
+               //Breakpoint line below, and reflect someField via ObjectMirror;
+               LocalReflectClass.RunMe ();
+       }
+
        public static void breakpoints () {
                /* Call these early so it is JITted by the time a breakpoint is placed on it */
                bp3 ();
@@ -1463,3 +1485,23 @@ public class LineNumbers
                #line 55 "FOO"
        }
 }
+
+class LocalReflectClass
+{
+       public static void RunMe ()
+       {
+               var reflectMe = new someClass ();
+               reflectMe.someMethod ();
+       }
+
+       class someClass : ContextBoundObject
+       {
+               public object someField;
+
+               public void someMethod ()
+               {
+               }
+       }
+}
+
+
index e51cdc061a0accf8d07308fa4bbf81ffa194a440..641fefd2afe9c647385e3ad22f0e18a355ee6f2e 100644 (file)
@@ -383,6 +383,52 @@ public class DebuggerTests
                return req;
        }
 
+       [Test]
+       public void ClassLocalReflection () {
+               MethodMirror m = entry_point.DeclaringType.Assembly.GetType ("LocalReflectClass").GetMethod ("RunMe");
+
+               Assert.IsNotNull (m);
+               //Console.WriteLine ("X: " + name + " " + m.ILOffsets.Count + " " + m.Locations.Count);
+               var offset = -1;
+               int method_base_linum = m.Locations [0].LineNumber;
+               foreach (var location in m.Locations)
+                       if (location.LineNumber == method_base_linum + 2) {
+                               offset = location.ILOffset;
+                               break;
+                       }
+
+               var req = vm.SetBreakpoint (m, offset);
+
+               Event e = null;
+
+               while (true) {
+                       vm.Resume ();
+                       e = GetNextEvent ();
+                       if (e is BreakpointEvent)
+                               break;
+               }
+
+               req.Disable ();
+
+               Assert.IsInstanceOfType (typeof (BreakpointEvent), e);
+               Assert.AreEqual (m.Name, (e as BreakpointEvent).Method.Name);
+
+               e = single_step (e.Thread);
+
+               var frame = e.Thread.GetFrames ()[0];
+               Value variable = frame.GetValue (frame.Method.GetLocal ("reflectMe"));
+
+               ObjectMirror thisObj = (ObjectMirror)variable;
+               TypeMirror thisType = thisObj.Type;
+               FieldInfoMirror thisFi = null;
+               foreach (var fi in thisType.GetFields ())
+                       if (fi.Name == "someField")
+                               thisFi = fi;
+
+               var gotVal = thisObj.GetValue (thisFi);
+               // If we got this far, we're good.
+       }
+
        [Test]
        public void SingleStepping () {
                Event e = run_until ("single_stepping");
@@ -2240,6 +2286,12 @@ public class DebuggerTests
                v = s.InvokeMethod (e.Thread, m, null);
                AssertValue (42, v);
 
+               // Pass boxed struct as this
+               var boxed_this = t.NewInstance () as ObjectMirror;
+               m = t.GetMethod ("invoke_return_int");
+               v = boxed_this.InvokeMethod (e.Thread, m, null);
+               AssertValue (0, v);
+
                // Pass struct as this, receive intptr
                m = t.GetMethod ("invoke_return_intptr");
                v = s.InvokeMethod (e.Thread, m, null);
@@ -2257,6 +2309,13 @@ public class DebuggerTests
                v = s.InvokeMethod (e.Thread, m, null);
                AssertValue (42, v);
 
+               // .ctor
+               s = frame.GetArgument (1) as StructMirror;
+               t = s.Type;
+               m = t.GetMethods ().First (method => method.Name == ".ctor" && method.GetParameters ().Length == 1);
+               v = t.InvokeMethod (e.Thread, m, new Value [] { vm.CreateValue (1) });
+               AssertValue (1, (v as StructMirror)["i"]);
+
 #if NET_4_5
                // Invoke a method which changes state
                s = frame.GetArgument (1) as StructMirror;
index a8cdba45d46beae535363ab32830f4b2e438f7da..fd1d15500a60f6f97888848074a9ef8ae51e1372 100644 (file)
@@ -10,7 +10,7 @@ LIB_MCS_FLAGS = \
        -d:MONO_INTERPRETER \
        -delaysign -keyfile:../mono.pub
 
-MOBILE_STATIC := $(filter mobile_static monotouch monotouch_runtime, $(PROFILE))
+MOBILE_STATIC := $(filter mobile_static monotouch monotouch_runtime monotouch_watch, $(PROFILE))
 
 ifdef MOBILE_STATIC
 mono_dynamic_interpreter_deps = $(the_libdir_base)plaincore/System.Core.dll
index e05f022bb2dbe4d429bdd06c0ffaa9b0974941c8..289aa8f125758423122cf7273dbc4513ed8d9c6a 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // 
 // CollectionStressTestHelper.cs
 //  
@@ -126,4 +125,3 @@ namespace MonoTests.Mono.Collections.Concurrent
                }
        }
 }
-#endif
index b239cdc1d5c1aa6a9402fa8c136b323f9c5149b6..ea69137e0e4f33d22738f26e0cd33ab6d2671879 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // ConcurrentSkipListTests.cs
 //
 // Copyright (c) 2008 Jérémie "Garuma" Laval
@@ -110,4 +109,3 @@ namespace MonoTests.Mono.Collections.Concurrent
                 
        }
 }
-#endif
index 2b5bf5b54c4933f610e698cb87ca73cdfa70d136..b0e3839dde566f634209f03a1ec2d3b3d1c3dc1d 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // TestHelper.cs
 //
 // Copyright (c) 2008 Jérémie "Garuma" Laval
@@ -86,4 +85,3 @@ namespace MonoTests.Mono.Threading.Tasks
                }
        }
 }
-#endif
index 30db2ef2995699376433394146c2006fc0e28b38..2b5ccf8ee41b6adc2afde1d142d14e6dceda6248 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // 
 // SnziTests.cs
 //  
@@ -135,4 +134,3 @@ namespace MonoTests.Mono.Threading
                }
        }
 }
-#endif
\ No newline at end of file
index 270b0b6aee680cb64332b06638110b58a6eda18b..0f84821b52ee01392b762e7b76723da1306510b2 100644 (file)
@@ -6,5 +6,6 @@ Mono.Unix/UnixMarshalTest.cs
 Mono.Unix/UnixPathTest.cs
 Mono.Unix/UnixSignalTest.cs
 Mono.Unix/UnixUserTest.cs
+Mono.Unix.Android/TestHelper.cs
 Mono.Unix.Native/RealTimeSignumTests.cs
 Mono.Unix.Native/StdlibTest.cs
index 5a709ec8645884fccf8bde65d9059eff6f5a81e2..6f91096693ef5520db14bb51be6fbd1149229266 100644 (file)
@@ -34,7 +34,6 @@ using System.Collections;
 using System.Runtime.Remoting.Messaging;
 using System.IO;
 using System.Runtime.Remoting.Channels;
-using Mono.Posix;
 
 namespace Mono.Remoting.Channels.Unix
 {
index ffa329f1b5bf3d5fa7cc75a7a6e93355b118d117..4e2613b127991263f8ba2d31fede7f7da2a99f1f 100644 (file)
@@ -17,10 +17,10 @@ namespace Mono.Unix.Native {
                //
                // Non-generated exports
                //
-
+#if !MONODROID
                [DllImport (LIB, EntryPoint="Mono_Posix_FromRealTimeSignum")]
                private static extern int FromRealTimeSignum (Int32 offset, out Int32 rval);
-
+#endif
                // convert a realtime signal to os signal
                public static int FromRealTimeSignum (RealTimeSignum sig)
                {
index d071ec9f280741992e01dd23cf27ba7ef6a45023..aa7bf80a469d5a04cfaecc52feeb646a9d5384bc 100644 (file)
@@ -33,6 +33,12 @@ using System.Net.Sockets;
 
 namespace Mono.Unix
 {
+       internal struct PeerCredData {
+               public int pid;
+               public int uid;
+               public int gid;
+       }
+
        public class PeerCred
        {
                /* Make sure this doesn't clash with anything in
@@ -40,14 +46,14 @@ namespace Mono.Unix
                 * runtime
                 */
                private const int so_peercred=10001;
-               private Mono.Posix.PeerCredData data;
+               private PeerCredData data;
                
                public PeerCred (Socket sock) {
                        if (sock.AddressFamily != AddressFamily.Unix) {
                                throw new ArgumentException ("Only Unix sockets are supported", "sock");
                        }
 
-                       data = (Mono.Posix.PeerCredData)
+                       data = (PeerCredData)
                                sock.GetSocketOption (SocketOptionLevel.Socket, (SocketOptionName)so_peercred);
                }
                
index 9282356acf54dce7a9cb0bf9e2d0549efb51e1df..334b6f2a49b42c089ea2b1492109021cbc75628a 100644 (file)
@@ -176,6 +176,10 @@ namespace Mono.Unix {
                        else if (typeof(UnicodeEncoding).IsAssignableFrom (encodingType)) {
                                len = GetInt16BufferLength (p);
                        }
+                       // Encodings that will always end with a 0x00000000 32-bit word
+                       else if (typeof(UTF32Encoding).IsAssignableFrom (encodingType)) {
+                               len = GetInt32BufferLength (p);
+                       }
                        // Some non-public encoding, such as Latin1 or a DBCS charset.
                        // Look for a sequence of encoding.GetMaxByteCount() bytes that are all
                        // 0, which should be the terminating null.
diff --git a/mcs/class/Mono.Posix/Test/Mono.Unix.Android/TestHelper.cs b/mcs/class/Mono.Posix/Test/Mono.Unix.Android/TestHelper.cs
new file mode 100644 (file)
index 0000000..a7a56a4
--- /dev/null
@@ -0,0 +1,12 @@
+namespace Mono.Unix.Android
+{
+       // Another version of this class is used by the Xamarin.Android test suite
+       // It is here to keep the test code #ifdef free as much as possible
+       public class TestHelper
+       {
+               public static bool CanUseRealTimeSignals ()
+               {
+                       return true;
+               }
+       }
+}
\ No newline at end of file
index ccc7cffa91f1ca36af7eb2d2d6f0b0e3fc9318d3..f68fe53b8ce70b896dbb603a9530042fddae1885 100644 (file)
@@ -8,11 +8,14 @@
 //
 
 using NUnit.Framework;
+#if !MONODROID
 using NUnit.Framework.SyntaxHelpers;
+#endif
 using System;
 using System.Text;
 using System.Threading;
 using Mono.Unix;
+using Mono.Unix.Android;
 using Mono.Unix.Native;
 
 namespace MonoTests.Mono.Unix.Native {
@@ -25,6 +28,8 @@ namespace MonoTests.Mono.Unix.Native {
                [ExpectedException (typeof (ArgumentOutOfRangeException))]
                public void TestRealTimeOutOfRange ()
                {
+                       if (!TestHelper.CanUseRealTimeSignals ())
+                               return;
                        RealTimeSignum rts = new RealTimeSignum (int.MaxValue);
                }
 
@@ -32,12 +37,16 @@ namespace MonoTests.Mono.Unix.Native {
                [ExpectedException (typeof (ArgumentOutOfRangeException))]
                public void TestRealTimeSignumNegativeOffset ()
                {
+                       if (!TestHelper.CanUseRealTimeSignals ())
+                               return;
                        RealTimeSignum rts1 = new RealTimeSignum (-1);
                }
 
                [Test]
                public void TestRTSignalEquality ()
                {
+                       if (!TestHelper.CanUseRealTimeSignals ())
+                               return;
                        RealTimeSignum rts1 = new RealTimeSignum (0);
                        RealTimeSignum rts2 = new RealTimeSignum (0);
                        Assert.That (rts1 == rts2, Is.True);
@@ -47,6 +56,8 @@ namespace MonoTests.Mono.Unix.Native {
                [Test]
                public void TestRTSignalInequality ()
                {
+                       if (!TestHelper.CanUseRealTimeSignals ())
+                               return;
                        RealTimeSignum rts1 = new RealTimeSignum (0);
                        RealTimeSignum rts2 = new RealTimeSignum (1);
                        Assert.That (rts1 == rts2, Is.False);
@@ -56,6 +67,8 @@ namespace MonoTests.Mono.Unix.Native {
                [Test]
                public void TestRTSignalGetHashCodeEquality ()
                {
+                       if (!TestHelper.CanUseRealTimeSignals ())
+                               return;
                        RealTimeSignum rts1 = new RealTimeSignum (0);
                        RealTimeSignum rts2 = new RealTimeSignum (0);
                        Assert.That (rts1.GetHashCode (), Is.EqualTo(rts2.GetHashCode ()));
@@ -64,6 +77,8 @@ namespace MonoTests.Mono.Unix.Native {
                [Test]
                public void TestRTSignalGetHashCodeInequality ()
                {
+                       if (!TestHelper.CanUseRealTimeSignals ())
+                               return;
                        RealTimeSignum rts1 = new RealTimeSignum (0);
                        RealTimeSignum rts2 = new RealTimeSignum (1);
                        Assert.That (rts1.GetHashCode (), Is.Not.EqualTo(rts2.GetHashCode ()));
@@ -72,6 +87,8 @@ namespace MonoTests.Mono.Unix.Native {
                [Test]
                public void TestIsRTSignalPropertyForRTSignum ()
                {
+                       if (!TestHelper.CanUseRealTimeSignals ())
+                               return;
                        UnixSignal signal1 = new UnixSignal(new RealTimeSignum (0));
                        Assert.That (signal1.IsRealTimeSignal, Is.True);
                }
@@ -79,6 +96,8 @@ namespace MonoTests.Mono.Unix.Native {
                [Test]
                public void TestIsRTSignalPropertyForSignum ()
                {
+                       if (!TestHelper.CanUseRealTimeSignals ())
+                               return;
                        UnixSignal signal1 = new UnixSignal (Signum.SIGSEGV);
                        Assert.That (signal1.IsRealTimeSignal, Is.False);
                }
index 1b0df494a7749bed531d88f739422ac5efe86675..aaae08271ed602f6f7d2db79f171aafc98a013bb 100644 (file)
@@ -226,21 +226,22 @@ namespace MonoTests.System.IO
                {
                        StdioFileStream fs = null;
                        StdioFileStream fs2 = null;
+                       string tempPath = Path.Combine (Path.GetTempPath (), "temp");
                        try {
-                               if (!File.Exists ("temp")) {
-                                       TextWriter tw = File.CreateText ("temp");
+                               if (!File.Exists (tempPath)) {
+                                       TextWriter tw = File.CreateText (tempPath);
                                        tw.Write ("FOO");
                                        tw.Close ();
                                }
-                               fs = new StdioFileStream ("temp", FileMode.Open, FileAccess.Read);
-                               fs2 = new StdioFileStream ("temp", FileMode.Open, FileAccess.Read);
+                               fs = new StdioFileStream (tempPath, FileMode.Open, FileAccess.Read);
+                               fs2 = new StdioFileStream (tempPath, FileMode.Open, FileAccess.Read);
                        } finally {
                                if (fs != null)
                                        fs.Close ();
                                if (fs2 != null)
                                        fs2.Close ();
-                               if (File.Exists ("temp"))
-                                       File.Delete ("temp");
+                               if (File.Exists (tempPath))
+                                       File.Delete (tempPath);
                        }
                }
 
@@ -856,7 +857,8 @@ namespace MonoTests.System.IO
                [ExpectedException (typeof (NotSupportedException))]
                public void SetLengthWithClosedBaseStream ()
                {
-                       StdioFileStream fs = new StdioFileStream ("temp", FileMode.Create);
+                       string path = TempFolder + Path.DirectorySeparatorChar + "temp";
+                       StdioFileStream fs = new StdioFileStream (path, FileMode.Create);
                        BufferedStream bs = new BufferedStream (fs);
                        fs.Close ();
 
index 0d2971ef8d035c1847e5341a4660bac2b8332a67..81e775e64b0d517b962928b2b4bd04301390aabf 100644 (file)
@@ -25,6 +25,7 @@ namespace MonoTests.Mono.Unix {
        public class UnixGroupTest
        {
                [Test]
+               [Category ("AndroidNotWorking")] // API 21 conditionally has setgrent in the NDK headers, but bionic doesn't export it
                public void ListAllGroups_ToString ()
                {
                        try {
@@ -41,6 +42,7 @@ namespace MonoTests.Mono.Unix {
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // API 21 conditionally has setgrent in the NDK headers, but bionic doesn't export it
                public void ReentrantConstructors ()
                {
                        var seen = new Dictionary<string, object> ();
@@ -65,6 +67,7 @@ namespace MonoTests.Mono.Unix {
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // API 21 conditionally has setgrent in the NDK headers, but bionic doesn't export it
                public void NonReentrantSyscalls ()
                {
                        var seen = new Dictionary<string, object> ();
@@ -95,6 +98,7 @@ namespace MonoTests.Mono.Unix {
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // API 21 conditionally has getgrnam_r in the NDK headers, but bionic doesn't export it
                public void InvalidGroups_Constructor_Name ()
                {
                        string[] badGroups = new string[]{"i'm bad", "so am i", "does-not-exist"};
index 889d8ba06f542687876d5fe6fb3660ab850005dd..e27a5dd246c68ef04c4f602b6fda95195e4f69aa 100644 (file)
@@ -8,6 +8,7 @@
 
 using NUnit.Framework;
 using System;
+using System.Collections.Generic;
 using System.IO;
 using System.Runtime.InteropServices;
 using System.Text;
@@ -87,6 +88,69 @@ namespace MonoTests.Mono.Unix {
                        string s = UnixMarshal.PtrToString (p);
                        UnixMarshal.FreeHeap (p);
                }
+
+               [Test]
+               public void TestUtf32PtrToString ()
+               {
+                       var utf32NativeEndianNoBom = new UTF32Encoding(
+                               bigEndian: !BitConverter.IsLittleEndian,
+                               byteOrderMark: false,
+                               throwOnInvalidCharacters: true
+                       );
+
+                       // assemble a buffer that contains:
+                       // 1. eight garbage bytes
+                       // 2. the native-endian UTF-32 string "Hello, World" without BOM
+                       // 3. four 0 bytes (as a C wide string terminator)
+                       // 4. the native-endian UTF-32 string "broken" without BOM
+                       // 5. eight 0 bytes
+                       // 6. four garbage bytes
+                       var buf = new List<byte>();
+                       for (int i = 0; i < 2; ++i) {
+                               buf.Add((byte)0x12);
+                               buf.Add((byte)0x34);
+                               buf.Add((byte)0x56);
+                               buf.Add((byte)0x78);
+                       }
+
+                       buf.AddRange(utf32NativeEndianNoBom.GetBytes("Hello, World"));
+
+                       for (int i = 0; i < 4; ++i) {
+                               buf.Add((byte)0x00);
+                       }
+
+                       buf.AddRange(utf32NativeEndianNoBom.GetBytes("broken"));
+
+                       for (int i = 0; i < 8; ++i) {
+                               buf.Add((byte)0x00);
+                       }
+
+                       buf.Add((byte)0x12);
+                       buf.Add((byte)0x34);
+                       buf.Add((byte)0x56);
+                       buf.Add((byte)0x78);
+
+                       // get the array version of this
+                       var bufArr = buf.ToArray();
+
+                       // allocate a buffer that will contain this string
+                       IntPtr bufPtr = UnixMarshal.AllocHeap(bufArr.Length);
+                       string returned;
+                       try
+                       {
+                               // copy it in
+                               Marshal.Copy(bufArr, 0, bufPtr, bufArr.Length);
+
+                               // try getting it back
+                               returned = UnixMarshal.PtrToString(bufPtr + 8, utf32NativeEndianNoBom);
+                       }
+                       finally
+                       {
+                               UnixMarshal.FreeHeap(bufPtr);
+                       }
+
+                       Assert.AreEqual("Hello, World", returned);
+               }
        }
 }
 
index 5c288de14537acf8da009e9453536d79c00c1beb..c21348748dcbace4ecaa98b58e0591dfa6012e5a 100644 (file)
@@ -37,7 +37,7 @@ namespace MonoTests.Mono.Unix
                        Assert.AreEqual ("one", path);
 
                        path = UnixPath.Combine (current, "one");
-                       expected = current + DSC + "one";
+                       expected = (current == "/" ? String.Empty : current) + DSC + "one";
                        Assert.AreEqual (expected, path);
 
                        path = UnixPath.Combine ("one", current);
index 3098596b4b0becd52c8deda139b7408c1fa4efb7..f88defeaff50b92118b6d1f2fec9d742ce00a208 100644 (file)
@@ -8,15 +8,18 @@
 //
 
 using NUnit.Framework;
+#if !MONODROID
 using NUnit.Framework.SyntaxHelpers;
+#endif
 using System;
 using System.Text;
 using System.Threading;
 using Mono.Unix;
+using Mono.Unix.Android;
 using Mono.Unix.Native;
-
+#if !MONODROID
 namespace NUnit.Framework.SyntaxHelpers { class Dummy {} }
-
+#endif
 namespace MonoTests.Mono.Unix {
 
        [TestFixture]
@@ -125,6 +128,8 @@ namespace MonoTests.Mono.Unix {
                [Category ("NotOnMac")]
                public void TestRealTimeCstor ()
                {
+                       if (!TestHelper.CanUseRealTimeSignals ())
+                               return;
                        RealTimeSignum rts = new RealTimeSignum (0);
                        using (UnixSignal s = new UnixSignal (rts))
                        {
@@ -138,6 +143,8 @@ namespace MonoTests.Mono.Unix {
                [Category ("NotOnMac")]
                public void TestSignumPropertyThrows ()
                {
+                       if (!TestHelper.CanUseRealTimeSignals ())
+                               return;
                        UnixSignal signal1 = new UnixSignal (new RealTimeSignum (0));
                        Signum s = signal1.Signum;
                }
@@ -146,6 +153,8 @@ namespace MonoTests.Mono.Unix {
                [Category ("NotOnMac")]
                public void TestRealTimeSignumProperty ()
                {
+                       if (!TestHelper.CanUseRealTimeSignals ())
+                               return;
                        RealTimeSignum rts = new RealTimeSignum (0);
                        UnixSignal signal1 = new UnixSignal (rts);
                        Assert.That (signal1.RealTimeSignum, Is.EqualTo (rts));
@@ -156,6 +165,8 @@ namespace MonoTests.Mono.Unix {
                [Category ("NotOnMac")]
                public void TestRealTimePropertyThrows ()
                {
+                       if (!TestHelper.CanUseRealTimeSignals ())
+                               return;
                        UnixSignal signal1 = new UnixSignal (Signum.SIGSEGV);
                        RealTimeSignum s = signal1.RealTimeSignum;
                }
@@ -164,6 +175,8 @@ namespace MonoTests.Mono.Unix {
                [Category ("NotOnMac")]
                public void TestRaiseRTMINSignal ()
                {
+                       if (!TestHelper.CanUseRealTimeSignals ())
+                               return;
                        RealTimeSignum rts = new RealTimeSignum (0);
                        using (UnixSignal signal = new UnixSignal (rts))
                        {
@@ -178,6 +191,8 @@ namespace MonoTests.Mono.Unix {
                [Category ("NotOnMac")]
                public void TestRaiseRTMINPlusOneSignal ()
                {
+                       if (!TestHelper.CanUseRealTimeSignals ())
+                               return;
                        /*this number is a guestimate, but it's ok*/
                        for (int i = 1; i < 10; ++i) {
                                RealTimeSignum rts = new RealTimeSignum (i);
@@ -203,6 +218,8 @@ namespace MonoTests.Mono.Unix {
                [Category ("NotOnMac")]
                public void TestCanRegisterRTSignalMultipleTimes ()
                {
+                       if (!TestHelper.CanUseRealTimeSignals ())
+                               return;
                        /*this number is a guestimate, but it's ok*/
                        for (int i = 1; i < 10; ++i) {
                                RealTimeSignum rts = new RealTimeSignum (i);
@@ -375,6 +392,7 @@ namespace MonoTests.Mono.Unix {
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Android 4.4.4 doesn't have signal(2)
                public void TestSignalActionInteraction ()
                {
                        using (UnixSignal a = new UnixSignal (Signum.SIGINT)) {
index 366f5e6ad3b570dddbc03a24213be6ad98ce9706..30f0450637ca6e68faa464296628120ee4abfd73 100644 (file)
@@ -25,6 +25,7 @@ namespace MonoTests.Mono.Unix {
        public class UnixUserTest
        {
                [Test]
+               [Category ("AndroidNotWorking")] // setpwent is missing from bionic
                public void ListAllUsers_ToString ()
                {
                        try {
@@ -80,6 +81,7 @@ namespace MonoTests.Mono.Unix {
 
                [Test]
                [Category ("NotOnMac")]
+               [Category ("AndroidNotWorking")] // setpwent is missing from bionic
                public void NonReentrantSyscalls ()
                {
                        ArrayList user_ids = new ArrayList (4);
@@ -119,6 +121,7 @@ namespace MonoTests.Mono.Unix {
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // API 21 has getpwnam_r in the NDK headers, but bionic doesn't export it
                public void InvalidUsers_Constructor_Name ()
                {
                        string[] badUsers = new string[]{"i'm bad", "so am i", "does-not-exist"};
index 0708f3df124ccb90a5cb2024affe935a3be88415..ae7afa670cb5380ad33e9656aace557e13adde50 100644 (file)
@@ -23,7 +23,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618
 
 EXTRA_DISTFILES = more_build_args
 
-VALID_PROFILE := $(filter net_4_5, $(PROFILE))
+VALID_PROFILE := $(filter net_4_x, $(PROFILE))
 ifndef VALID_PROFILE
 LIBRARY_NAME = dummy-System.Mono.Reactive.Testing.dll
 NO_TEST = yes
index 52a8400507d36d73d7926e703466de0b479f9842..0ad21f2c4362fb069ea223c73805ebcfc041e0e6 100644 (file)
@@ -2,14 +2,14 @@ thisdir = class/Mono.Security/Test/tools/sockethell
 SUBDIRS = 
 include ../../../../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.dll -r:Mono.Security.dll -r:../../../../lib/net_4_5/nunit.framework.dll
+LOCAL_MCS_FLAGS = -r:System.dll -r:Mono.Security.dll -r:../../../../lib/net_4_x/nunit.framework.dll
 
 all-local install-local uninstall-local:
 
 test-local:
 
 run-test-local: SocketHell.dll
-       mono ../../../../lib/net_4_5/nunit-console.exe SocketHell.dll
+       mono ../../../../lib/net_4_x/nunit-console.exe SocketHell.dll
 
 clean-local:
        rm -f *.dll *.mdb *.pdb TestResult.xml
diff --git a/mcs/class/Mono.Security/monotouch_watch_Mono.Security.dll.sources b/mcs/class/Mono.Security/monotouch_watch_Mono.Security.dll.sources
new file mode 100644 (file)
index 0000000..007d940
--- /dev/null
@@ -0,0 +1 @@
+#include monotouch_Mono.Security.dll.sources
\ No newline at end of file
index 17b2df2aabbf00d61cdb9d00fbc16c589d75f4a9..3e394f9287d9844f3ccad7606f3d0bfaed7988a9 100644 (file)
@@ -9,14 +9,5 @@ TEST_MCS_FLAGS = -r:Mono.Simd.dll
 
 NO_TEST = yes
 
-
-# This is a .NET 2.0+ only assembly
-VALID_PROFILE := $(filter net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-Mono.Simd.dll
-NO_INSTALL = yes
-NO_TEST = yes
-endif
-
 include ../../build/library.make
 
index c23512476609367cc651d8789d58134e6ca000b3..d983c8a2a2c754365ecb6c3d626726079f4c8104 100644 (file)
@@ -444,9 +444,59 @@ namespace PEAPI {
                        cVal = val;
                        tabIx = MDTable.CustomAttribute;
 
-                       var bac = val as ByteArrConst;
+                       byteVal = ConstantToByteArray (val);
+               }
+
+               static byte[] ConstantToByteArray (Constant c)
+               {
+                       var bac = c as ByteArrConst;
                        if (bac != null)
-                               byteVal = bac.val;
+                               return bac.val;
+
+                       var ms = new MemoryStream ();
+                       // Version info
+                       ms.WriteByte (1);
+                       ms.WriteByte (0);
+
+                       if (c == null) {
+                               ms.WriteByte (0);
+                               ms.WriteByte (0);
+                               return ms.ToArray ();
+                       }
+
+                       var sc = c as StringConst;
+                       if (sc != null) {
+                               string value = sc.val;
+                               if (value == null)
+                                       throw new NotImplementedException ();
+
+                               var buf = Encoding.UTF8.GetBytes (value);
+                               MetaData.CompressNum ((uint) buf.Length, ms);
+                               var byteVal = ms.ToArray ();
+                               System.Array.Resize (ref byteVal, (int) ms.Length + buf.Length + 2);
+                               System.Array.Copy (buf, 0, byteVal, ms.Length, buf.Length);
+                               return byteVal;
+                       }
+
+                       var ac = c as ArrayConstant;
+                       if (ac != null) {
+                               var bw = new BinaryWriter (ms);
+                               if (ac.ExplicitSize != null)
+                                       bw.Write (ac.ExplicitSize.Value);
+                               ac.Write (bw);
+                               bw.Write ((short)0);
+                               return ms.ToArray ();
+                       }
+
+                       var bc = c as DataConstant;
+                       if (bc != null) {
+                               var bw = new BinaryWriter (ms);
+                               bc.Write (bw);
+                               bw.Write ((short)0);
+                               return ms.ToArray ();
+                       }
+
+                       throw new NotImplementedException (c.GetType ().ToString ());
                }
 
                internal CustomAttribute(MetaDataElement paren, Method constrType,
@@ -2916,7 +2966,7 @@ namespace PEAPI {
        /// <summary>
        /// Boolean constant
        /// </summary>
-       public class BoolConst : Constant {
+       public class BoolConst : DataConstant {
                bool val;
 
                /// <summary>
@@ -3114,7 +3164,7 @@ namespace PEAPI {
 
        }
 
-       public class UIntConst : Constant {
+       public class UIntConst : DataConstant {
                ulong val;
 
                public UIntConst(byte val) 
@@ -3169,7 +3219,7 @@ namespace PEAPI {
        }
 
        public class StringConst : DataConstant {
-               string val;
+               internal string val;
 
                public StringConst(string val) 
                {
@@ -3270,6 +3320,8 @@ namespace PEAPI {
                        }
                }
 
+               public int? ExplicitSize { get; set; }
+
                internal sealed override void Write(BinaryWriter bw) 
                {
                        for (int i=0; i < dataVals.Length; i++) {
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..bf7e29294f66f56461037a9eb4bde63925c277c9 100644 (file)
@@ -0,0 +1,3 @@
+*-0-8.cs
+*-api-0-9.cs
+*-api-qpid-0-8.cs
\ No newline at end of file
diff --git a/mcs/class/RabbitMQ.Client/docs/specs/net_2_0-api-0-8.cs b/mcs/class/RabbitMQ.Client/docs/specs/net_2_0-api-0-8.cs
deleted file mode 100644 (file)
index 472ea42..0000000
+++ /dev/null
@@ -1,6431 +0,0 @@
-// Autogenerated code. Do not edit.
-
-// This source code is dual-licensed under the Apache License, version
-// 2.0, and the Mozilla Public License, version 1.1.
-//
-// The APL v2.0:
-//
-//---------------------------------------------------------------------------
-//   Copyright (C) 2007-2010 LShift Ltd., Cohesive Financial
-//   Technologies LLC., and Rabbit Technologies Ltd.
-//
-//   Licensed under the Apache License, Version 2.0 (the "License");
-//   you may not use this file except in compliance with the License.
-//   You may obtain a copy of the License at
-//
-//       http://www.apache.org/licenses/LICENSE-2.0
-//
-//   Unless required by applicable law or agreed to in writing, software
-//   distributed under the License is distributed on an "AS IS" BASIS,
-//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//   See the License for the specific language governing permissions and
-//   limitations under the License.
-//---------------------------------------------------------------------------
-//
-// The MPL v1.1:
-//
-//---------------------------------------------------------------------------
-//   The contents of this file are subject to the Mozilla Public License
-//   Version 1.1 (the "License"); you may not use this file except in
-//   compliance with the License. You may obtain a copy of the License at
-//   http://www.rabbitmq.com/mpl.html
-//
-//   Software distributed under the License is distributed on an "AS IS"
-//   basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//   License for the specific language governing rights and limitations
-//   under the License.
-//
-//   The Original Code is The RabbitMQ .NET Client.
-//
-//   The Initial Developers of the Original Code are LShift Ltd,
-//   Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
-//   Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
-//   are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
-//   Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created by LShift Ltd are Copyright (C) 2007-2010 LShift
-//   Ltd. Portions created by Cohesive Financial Technologies LLC are
-//   Copyright (C) 2007-2010 Cohesive Financial Technologies
-//   LLC. Portions created by Rabbit Technologies Ltd are Copyright
-//   (C) 2007-2010 Rabbit Technologies Ltd.
-//
-//   All Rights Reserved.
-//
-//   Contributor(s): ______________________________________.
-//
-//---------------------------------------------------------------------------
-
-using RabbitMQ.Client;
-using RabbitMQ.Client.Exceptions;
-
-namespace RabbitMQ.Client.Framing.v0_8 {
-  public class Protocol: RabbitMQ.Client.Framing.Impl.v0_8.ProtocolBase {
-    ///<summary>Protocol major version (= 8)</summary>
-    public override int MajorVersion { get { return 8; } }
-    ///<summary>Protocol minor version (= 0)</summary>
-    public override int MinorVersion { get { return 0; } }
-    ///<summary>Protocol API name (= AMQP_0_8)</summary>
-    public override string ApiName { get { return "AMQP_0_8"; } }
-    ///<summary>Default TCP port (= 5672)</summary>
-    public override int DefaultPort { get { return 5672; } }
-
-    public override RabbitMQ.Client.Impl.MethodBase DecodeMethodFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-      ushort methodId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 10: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionStart result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionStartOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionSecure result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionSecure();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionSecureOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionSecureOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionTune result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionTune();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionTuneOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionTuneOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionOpen result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionRedirect result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionRedirect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionClose result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 61: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 20: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelOpen result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelFlow result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelFlow();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelFlowOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelFlowOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelAlert result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelAlert();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelClose result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 30: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.AccessRequest result = new RabbitMQ.Client.Framing.Impl.v0_8.AccessRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.AccessRequestOk result = new RabbitMQ.Client.Framing.Impl.v0_8.AccessRequestOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 40: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeclare result = new RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDelete result = new RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 50: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueDeclare result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueBind result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueBind();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueBindOk result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueBindOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueUnbind result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueUnbind();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 51: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueUnbindOk result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueUnbindOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueuePurge result = new RabbitMQ.Client.Framing.Impl.v0_8.QueuePurge();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueuePurgeOk result = new RabbitMQ.Client.Framing.Impl.v0_8.QueuePurgeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueDelete result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 60: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicQos result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicConsume result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicCancel result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicPublish result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicReturn result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicGet result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicGet();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 71: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicGetOk result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicGetOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 72: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicGetEmpty result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicGetEmpty();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicAck result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicReject result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicRecover result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicRecover();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 70: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileQos result = new RabbitMQ.Client.Framing.Impl.v0_8.FileQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8.FileQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileConsume result = new RabbitMQ.Client.Framing.Impl.v0_8.FileConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8.FileConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileCancel result = new RabbitMQ.Client.Framing.Impl.v0_8.FileCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8.FileCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileOpen result = new RabbitMQ.Client.Framing.Impl.v0_8.FileOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8.FileOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileStage result = new RabbitMQ.Client.Framing.Impl.v0_8.FileStage();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FilePublish result = new RabbitMQ.Client.Framing.Impl.v0_8.FilePublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileReturn result = new RabbitMQ.Client.Framing.Impl.v0_8.FileReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8.FileDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileAck result = new RabbitMQ.Client.Framing.Impl.v0_8.FileAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileReject result = new RabbitMQ.Client.Framing.Impl.v0_8.FileReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 80: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamQos result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamConsume result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamCancel result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamPublish result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamReturn result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 90: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxSelect result = new RabbitMQ.Client.Framing.Impl.v0_8.TxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxCommit result = new RabbitMQ.Client.Framing.Impl.v0_8.TxCommit();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxCommitOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TxCommitOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxRollback result = new RabbitMQ.Client.Framing.Impl.v0_8.TxRollback();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxRollbackOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TxRollbackOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 100: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.DtxSelect result = new RabbitMQ.Client.Framing.Impl.v0_8.DtxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.DtxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_8.DtxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.DtxStart result = new RabbitMQ.Client.Framing.Impl.v0_8.DtxStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.DtxStartOk result = new RabbitMQ.Client.Framing.Impl.v0_8.DtxStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 110: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TunnelRequest result = new RabbitMQ.Client.Framing.Impl.v0_8.TunnelRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 120: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestInteger result = new RabbitMQ.Client.Framing.Impl.v0_8.TestInteger();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestIntegerOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TestIntegerOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestString result = new RabbitMQ.Client.Framing.Impl.v0_8.TestString();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestStringOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TestStringOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestTable result = new RabbitMQ.Client.Framing.Impl.v0_8.TestTable();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestTableOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TestTableOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestContent result = new RabbitMQ.Client.Framing.Impl.v0_8.TestContent();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestContentOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TestContentOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, methodId);
-    }
-
-    public override RabbitMQ.Client.Impl.ContentHeaderBase DecodeContentHeaderFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 60: return new BasicProperties();
-        case 70: return new FileProperties();
-        case 80: return new StreamProperties();
-        case 110: return new TunnelProperties();
-        case 120: return new TestProperties();
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, 0);
-    }
-  }
-  public class Constants {
-    ///<summary>(= 1)</summary>
-    public const int FrameMethod = 1;
-    ///<summary>(= 2)</summary>
-    public const int FrameHeader = 2;
-    ///<summary>(= 3)</summary>
-    public const int FrameBody = 3;
-    ///<summary>(= 4)</summary>
-    public const int FrameOobMethod = 4;
-    ///<summary>(= 5)</summary>
-    public const int FrameOobHeader = 5;
-    ///<summary>(= 6)</summary>
-    public const int FrameOobBody = 6;
-    ///<summary>(= 7)</summary>
-    public const int FrameTrace = 7;
-    ///<summary>(= 8)</summary>
-    public const int FrameHeartbeat = 8;
-    ///<summary>(= 4096)</summary>
-    public const int FrameMinSize = 4096;
-    ///<summary>(= 206)</summary>
-    public const int FrameEnd = 206;
-    ///<summary>(= 200)</summary>
-    public const int ReplySuccess = 200;
-    ///<summary>(= 310)</summary>
-    public const int NotDelivered = 310;
-    ///<summary>(= 311)</summary>
-    public const int ContentTooLarge = 311;
-    ///<summary>(= 320)</summary>
-    public const int ConnectionForced = 320;
-    ///<summary>(= 402)</summary>
-    public const int InvalidPath = 402;
-    ///<summary>(= 403)</summary>
-    public const int AccessRefused = 403;
-    ///<summary>(= 404)</summary>
-    public const int NotFound = 404;
-    ///<summary>(= 405)</summary>
-    public const int ResourceLocked = 405;
-    ///<summary>(= 501)</summary>
-    public const int FrameError = 501;
-    ///<summary>(= 502)</summary>
-    public const int SyntaxError = 502;
-    ///<summary>(= 503)</summary>
-    public const int CommandInvalid = 503;
-    ///<summary>(= 504)</summary>
-    public const int ChannelError = 504;
-    ///<summary>(= 506)</summary>
-    public const int ResourceError = 506;
-    ///<summary>(= 530)</summary>
-    public const int NotAllowed = 530;
-    ///<summary>(= 540)</summary>
-    public const int NotImplemented = 540;
-    ///<summary>(= 541)</summary>
-    public const int InternalError = 541;
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start".</summary>
-  public interface IConnectionStart: IMethod {
-    byte VersionMajor { get; }
-    byte VersionMinor { get; }
-    System.Collections.IDictionary ServerProperties { get; }
-    byte[] Mechanisms { get; }
-    byte[] Locales { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start-ok".</summary>
-  public interface IConnectionStartOk: IMethod {
-    System.Collections.IDictionary ClientProperties { get; }
-    string Mechanism { get; }
-    byte[] Response { get; }
-    string Locale { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure".</summary>
-  public interface IConnectionSecure: IMethod {
-    byte[] Challenge { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure-ok".</summary>
-  public interface IConnectionSecureOk: IMethod {
-    byte[] Response { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune".</summary>
-  public interface IConnectionTune: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune-ok".</summary>
-  public interface IConnectionTuneOk: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open".</summary>
-  public interface IConnectionOpen: IMethod {
-    string VirtualHost { get; }
-    string Capabilities { get; }
-    bool Insist { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open-ok".</summary>
-  public interface IConnectionOpenOk: IMethod {
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.redirect".</summary>
-  public interface IConnectionRedirect: IMethod {
-    string Host { get; }
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close".</summary>
-  public interface IConnectionClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close-ok".</summary>
-  public interface IConnectionCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open".</summary>
-  public interface IChannelOpen: IMethod {
-    string OutOfBand { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open-ok".</summary>
-  public interface IChannelOpenOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow".</summary>
-  public interface IChannelFlow: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow-ok".</summary>
-  public interface IChannelFlowOk: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.alert".</summary>
-  public interface IChannelAlert: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    System.Collections.IDictionary Details { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close".</summary>
-  public interface IChannelClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close-ok".</summary>
-  public interface IChannelCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request".</summary>
-  public interface IAccessRequest: IMethod {
-    string Realm { get; }
-    bool Exclusive { get; }
-    bool Passive { get; }
-    bool Active { get; }
-    bool Write { get; }
-    bool Read { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request-ok".</summary>
-  public interface IAccessRequestOk: IMethod {
-    ushort Ticket { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare".</summary>
-  public interface IExchangeDeclare: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string Type { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool AutoDelete { get; }
-    bool Internal { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare-ok".</summary>
-  public interface IExchangeDeclareOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete".</summary>
-  public interface IExchangeDelete: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    bool IfUnused { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete-ok".</summary>
-  public interface IExchangeDeleteOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare".</summary>
-  public interface IQueueDeclare: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool Exclusive { get; }
-    bool AutoDelete { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare-ok".</summary>
-  public interface IQueueDeclareOk: IMethod {
-    string Queue { get; }
-    uint MessageCount { get; }
-    uint ConsumerCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind".</summary>
-  public interface IQueueBind: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind-ok".</summary>
-  public interface IQueueBindOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.unbind".</summary>
-  public interface IQueueUnbind: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.unbind-ok".</summary>
-  public interface IQueueUnbindOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge".</summary>
-  public interface IQueuePurge: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge-ok".</summary>
-  public interface IQueuePurgeOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete".</summary>
-  public interface IQueueDelete: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool IfUnused { get; }
-    bool IfEmpty { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete-ok".</summary>
-  public interface IQueueDeleteOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos".</summary>
-  public interface IBasicQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos-ok".</summary>
-  public interface IBasicQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume".</summary>
-  public interface IBasicConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume-ok".</summary>
-  public interface IBasicConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel".</summary>
-  public interface IBasicCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel-ok".</summary>
-  public interface IBasicCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.publish".</summary>
-  public interface IBasicPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.return".</summary>
-  public interface IBasicReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.deliver".</summary>
-  public interface IBasicDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get".</summary>
-  public interface IBasicGet: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool NoAck { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-ok".</summary>
-  public interface IBasicGetOk: IMethod {
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-empty".</summary>
-  public interface IBasicGetEmpty: IMethod {
-    string ClusterId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.ack".</summary>
-  public interface IBasicAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.reject".</summary>
-  public interface IBasicReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.recover".</summary>
-  public interface IBasicRecover: IMethod {
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos".</summary>
-  public interface IFileQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos-ok".</summary>
-  public interface IFileQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume".</summary>
-  public interface IFileConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume-ok".</summary>
-  public interface IFileConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel".</summary>
-  public interface IFileCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel-ok".</summary>
-  public interface IFileCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open".</summary>
-  public interface IFileOpen: IMethod {
-    string Identifier { get; }
-    ulong ContentSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open-ok".</summary>
-  public interface IFileOpenOk: IMethod {
-    ulong StagedSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.stage".</summary>
-  public interface IFileStage: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.publish".</summary>
-  public interface IFilePublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.return".</summary>
-  public interface IFileReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.deliver".</summary>
-  public interface IFileDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.ack".</summary>
-  public interface IFileAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.reject".</summary>
-  public interface IFileReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos".</summary>
-  public interface IStreamQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    uint ConsumeRate { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos-ok".</summary>
-  public interface IStreamQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume".</summary>
-  public interface IStreamConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume-ok".</summary>
-  public interface IStreamConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel".</summary>
-  public interface IStreamCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel-ok".</summary>
-  public interface IStreamCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.publish".</summary>
-  public interface IStreamPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.return".</summary>
-  public interface IStreamReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.deliver".</summary>
-  public interface IStreamDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    string Exchange { get; }
-    string Queue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select".</summary>
-  public interface ITxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select-ok".</summary>
-  public interface ITxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit".</summary>
-  public interface ITxCommit: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit-ok".</summary>
-  public interface ITxCommitOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback".</summary>
-  public interface ITxRollback: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback-ok".</summary>
-  public interface ITxRollbackOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select".</summary>
-  public interface IDtxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select-ok".</summary>
-  public interface IDtxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start".</summary>
-  public interface IDtxStart: IMethod {
-    string DtxIdentifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start-ok".</summary>
-  public interface IDtxStartOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tunnel.request".</summary>
-  public interface ITunnelRequest: IMethod {
-    System.Collections.IDictionary MetaData { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.integer".</summary>
-  public interface ITestInteger: IMethod {
-    byte Integer1 { get; }
-    ushort Integer2 { get; }
-    uint Integer3 { get; }
-    ulong Integer4 { get; }
-    byte Operation { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.integer-ok".</summary>
-  public interface ITestIntegerOk: IMethod {
-    ulong Result { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.string".</summary>
-  public interface ITestString: IMethod {
-    string String1 { get; }
-    byte[] String2 { get; }
-    byte Operation { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.string-ok".</summary>
-  public interface ITestStringOk: IMethod {
-    byte[] Result { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.table".</summary>
-  public interface ITestTable: IMethod {
-    System.Collections.IDictionary Table { get; }
-    byte IntegerOp { get; }
-    byte StringOp { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.table-ok".</summary>
-  public interface ITestTableOk: IMethod {
-    ulong IntegerResult { get; }
-    byte[] StringResult { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.content".</summary>
-  public interface ITestContent: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.content-ok".</summary>
-  public interface ITestContentOk: IMethod {
-    uint ContentChecksum { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "basic"</summary>
-  public class BasicProperties: RabbitMQ.Client.Impl.BasicProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_deliveryMode;
-    private byte m_priority;
-    private string m_correlationId;
-    private string m_replyTo;
-    private string m_expiration;
-    private string m_messageId;
-    private AmqpTimestamp m_timestamp;
-    private string m_type;
-    private string m_userId;
-    private string m_appId;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_deliveryMode_present = false;
-    private bool m_priority_present = false;
-    private bool m_correlationId_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_expiration_present = false;
-    private bool m_messageId_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_type_present = false;
-    private bool m_userId_present = false;
-    private bool m_appId_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte DeliveryMode {
-      get {
-        return m_deliveryMode;
-      }
-      set {
-        m_deliveryMode_present = true;
-        m_deliveryMode = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string CorrelationId {
-      get {
-        return m_correlationId;
-      }
-      set {
-        m_correlationId_present = true;
-        m_correlationId = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string Expiration {
-      get {
-        return m_expiration;
-      }
-      set {
-        m_expiration_present = true;
-        m_expiration = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string Type {
-      get {
-        return m_type;
-      }
-      set {
-        m_type_present = true;
-        m_type = value;
-      }
-    }
-    public override string UserId {
-      get {
-        return m_userId;
-      }
-      set {
-        m_userId_present = true;
-        m_userId = value;
-      }
-    }
-    public override string AppId {
-      get {
-        return m_appId;
-      }
-      set {
-        m_appId_present = true;
-        m_appId = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearDeliveryMode() { m_deliveryMode_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearCorrelationId() { m_correlationId_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearExpiration() { m_expiration_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearType() { m_type_present = false; }
-    public override void ClearUserId() { m_userId_present = false; }
-    public override void ClearAppId() { m_appId_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsDeliveryModePresent() { return m_deliveryMode_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsCorrelationIdPresent() { return m_correlationId_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsExpirationPresent() { return m_expiration_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsTypePresent() { return m_type_present; }
-    public override bool IsUserIdPresent() { return m_userId_present; }
-    public override bool IsAppIdPresent() { return m_appId_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public BasicProperties() {}
-    public override int ProtocolClassId { get { return 60; } }
-    public override string ProtocolClassName { get { return "basic"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_deliveryMode_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_correlationId_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_expiration_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_type_present = reader.ReadPresence();
-      m_userId_present = reader.ReadPresence();
-      m_appId_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_deliveryMode_present) { m_deliveryMode = reader.ReadOctet(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_correlationId_present) { m_correlationId = reader.ReadShortstr(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_expiration_present) { m_expiration = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_type_present) { m_type = reader.ReadShortstr(); }
-      if (m_userId_present) { m_userId = reader.ReadShortstr(); }
-      if (m_appId_present) { m_appId = reader.ReadShortstr(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_deliveryMode_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_correlationId_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_expiration_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_type_present);
-      writer.WritePresence(m_userId_present);
-      writer.WritePresence(m_appId_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_deliveryMode_present) { writer.WriteOctet(m_deliveryMode); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_correlationId_present) { writer.WriteShortstr(m_correlationId); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_expiration_present) { writer.WriteShortstr(m_expiration); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_type_present) { writer.WriteShortstr(m_type); }
-      if (m_userId_present) { writer.WriteShortstr(m_userId); }
-      if (m_appId_present) { writer.WriteShortstr(m_appId); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("delivery mode="); sb.Append(m_deliveryMode_present ? m_deliveryMode.ToString() : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("correlation id="); sb.Append(m_correlationId_present ? (m_correlationId == null ? "(null)" : m_correlationId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("reply to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("expiration="); sb.Append(m_expiration_present ? (m_expiration == null ? "(null)" : m_expiration.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("type="); sb.Append(m_type_present ? (m_type == null ? "(null)" : m_type.ToString()) : "_"); sb.Append(", ");
-      sb.Append("user id="); sb.Append(m_userId_present ? (m_userId == null ? "(null)" : m_userId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("app id="); sb.Append(m_appId_present ? (m_appId == null ? "(null)" : m_appId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("cluster id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "file"</summary>
-  public class FileProperties: RabbitMQ.Client.Impl.FileProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private string m_replyTo;
-    private string m_messageId;
-    private string m_filename;
-    private AmqpTimestamp m_timestamp;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_messageId_present = false;
-    private bool m_filename_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override string Filename {
-      get {
-        return m_filename;
-      }
-      set {
-        m_filename_present = true;
-        m_filename = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearFilename() { m_filename_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsFilenamePresent() { return m_filename_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public FileProperties() {}
-    public override int ProtocolClassId { get { return 70; } }
-    public override string ProtocolClassName { get { return "file"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_filename_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_filename_present) { m_filename = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_filename_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_filename_present) { writer.WriteShortstr(m_filename); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("reply to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("filename="); sb.Append(m_filename_present ? (m_filename == null ? "(null)" : m_filename.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("cluster id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "stream"</summary>
-  public class StreamProperties: RabbitMQ.Client.Impl.StreamProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private AmqpTimestamp m_timestamp;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_timestamp_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-
-    public StreamProperties() {}
-    public override int ProtocolClassId { get { return 80; } }
-    public override string ProtocolClassName { get { return "stream"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "tunnel"</summary>
-  public class TunnelProperties: RabbitMQ.Client.Impl.ContentHeaderBase {
-    private System.Collections.IDictionary m_headers;
-    private string m_proxyName;
-    private string m_dataName;
-    private byte m_durable;
-    private byte m_broadcast;
-
-    private bool m_headers_present = false;
-    private bool m_proxyName_present = false;
-    private bool m_dataName_present = false;
-    private bool m_durable_present = false;
-    private bool m_broadcast_present = false;
-
-    public System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public string ProxyName {
-      get {
-        return m_proxyName;
-      }
-      set {
-        m_proxyName_present = true;
-        m_proxyName = value;
-      }
-    }
-    public string DataName {
-      get {
-        return m_dataName;
-      }
-      set {
-        m_dataName_present = true;
-        m_dataName = value;
-      }
-    }
-    public byte Durable {
-      get {
-        return m_durable;
-      }
-      set {
-        m_durable_present = true;
-        m_durable = value;
-      }
-    }
-    public byte Broadcast {
-      get {
-        return m_broadcast;
-      }
-      set {
-        m_broadcast_present = true;
-        m_broadcast = value;
-      }
-    }
-
-    public void ClearHeaders() { m_headers_present = false; }
-    public void ClearProxyName() { m_proxyName_present = false; }
-    public void ClearDataName() { m_dataName_present = false; }
-    public void ClearDurable() { m_durable_present = false; }
-    public void ClearBroadcast() { m_broadcast_present = false; }
-
-    public bool IsHeadersPresent() { return m_headers_present; }
-    public bool IsProxyNamePresent() { return m_proxyName_present; }
-    public bool IsDataNamePresent() { return m_dataName_present; }
-    public bool IsDurablePresent() { return m_durable_present; }
-    public bool IsBroadcastPresent() { return m_broadcast_present; }
-
-    public TunnelProperties() {}
-    public override int ProtocolClassId { get { return 110; } }
-    public override string ProtocolClassName { get { return "tunnel"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_headers_present = reader.ReadPresence();
-      m_proxyName_present = reader.ReadPresence();
-      m_dataName_present = reader.ReadPresence();
-      m_durable_present = reader.ReadPresence();
-      m_broadcast_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_proxyName_present) { m_proxyName = reader.ReadShortstr(); }
-      if (m_dataName_present) { m_dataName = reader.ReadShortstr(); }
-      if (m_durable_present) { m_durable = reader.ReadOctet(); }
-      if (m_broadcast_present) { m_broadcast = reader.ReadOctet(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_proxyName_present);
-      writer.WritePresence(m_dataName_present);
-      writer.WritePresence(m_durable_present);
-      writer.WritePresence(m_broadcast_present);
-      writer.FinishPresence();
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_proxyName_present) { writer.WriteShortstr(m_proxyName); }
-      if (m_dataName_present) { writer.WriteShortstr(m_dataName); }
-      if (m_durable_present) { writer.WriteOctet(m_durable); }
-      if (m_broadcast_present) { writer.WriteOctet(m_broadcast); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("proxy name="); sb.Append(m_proxyName_present ? (m_proxyName == null ? "(null)" : m_proxyName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("data name="); sb.Append(m_dataName_present ? (m_dataName == null ? "(null)" : m_dataName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("durable="); sb.Append(m_durable_present ? m_durable.ToString() : "_"); sb.Append(", ");
-      sb.Append("broadcast="); sb.Append(m_broadcast_present ? m_broadcast.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "test"</summary>
-  public class TestProperties: RabbitMQ.Client.Impl.ContentHeaderBase {
-
-
-
-
-
-    public TestProperties() {}
-    public override int ProtocolClassId { get { return 120; } }
-    public override string ProtocolClassName { get { return "test"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      reader.FinishPresence();
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.FinishPresence();
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-}
-namespace RabbitMQ.Client.Framing.Impl.v0_8 {
-  using RabbitMQ.Client.Framing.v0_8;
-  public enum ClassId {
-    Connection = 10,
-    Channel = 20,
-    Access = 30,
-    Exchange = 40,
-    Queue = 50,
-    Basic = 60,
-    File = 70,
-    Stream = 80,
-    Tx = 90,
-    Dtx = 100,
-    Tunnel = 110,
-    Test = 120,
-    Invalid = -1
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStart: RabbitMQ.Client.Impl.MethodBase, IConnectionStart {
-    public const int ClassId = 10;
-    public const int MethodId = 10;
-
-    public byte m_versionMajor;
-    public byte m_versionMinor;
-    public System.Collections.IDictionary m_serverProperties;
-    public byte[] m_mechanisms;
-    public byte[] m_locales;
-
-    byte IConnectionStart.VersionMajor { get { return m_versionMajor; } }
-    byte IConnectionStart.VersionMinor { get { return m_versionMinor; } }
-    System.Collections.IDictionary IConnectionStart.ServerProperties { get { return m_serverProperties; } }
-    byte[] IConnectionStart.Mechanisms { get { return m_mechanisms; } }
-    byte[] IConnectionStart.Locales { get { return m_locales; } }
-
-    public ConnectionStart() {}
-    public ConnectionStart(
-      byte initVersionMajor,
-      byte initVersionMinor,
-      System.Collections.IDictionary initServerProperties,
-      byte[] initMechanisms,
-      byte[] initLocales)
-    {
-      m_versionMajor = initVersionMajor;
-      m_versionMinor = initVersionMinor;
-      m_serverProperties = initServerProperties;
-      m_mechanisms = initMechanisms;
-      m_locales = initLocales;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "connection.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_versionMajor = reader.ReadOctet();
-      m_versionMinor = reader.ReadOctet();
-      m_serverProperties = reader.ReadTable();
-      m_mechanisms = reader.ReadLongstr();
-      m_locales = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteOctet(m_versionMajor);
-      writer.WriteOctet(m_versionMinor);
-      writer.WriteTable(m_serverProperties);
-      writer.WriteLongstr(m_mechanisms);
-      writer.WriteLongstr(m_locales);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_versionMajor); sb.Append(",");
-      sb.Append(m_versionMinor); sb.Append(",");
-      sb.Append(m_serverProperties); sb.Append(",");
-      sb.Append(m_mechanisms); sb.Append(",");
-      sb.Append(m_locales);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStartOk: RabbitMQ.Client.Impl.MethodBase, IConnectionStartOk {
-    public const int ClassId = 10;
-    public const int MethodId = 11;
-
-    public System.Collections.IDictionary m_clientProperties;
-    public string m_mechanism;
-    public byte[] m_response;
-    public string m_locale;
-
-    System.Collections.IDictionary IConnectionStartOk.ClientProperties { get { return m_clientProperties; } }
-    string IConnectionStartOk.Mechanism { get { return m_mechanism; } }
-    byte[] IConnectionStartOk.Response { get { return m_response; } }
-    string IConnectionStartOk.Locale { get { return m_locale; } }
-
-    public ConnectionStartOk() {}
-    public ConnectionStartOk(
-      System.Collections.IDictionary initClientProperties,
-      string initMechanism,
-      byte[] initResponse,
-      string initLocale)
-    {
-      m_clientProperties = initClientProperties;
-      m_mechanism = initMechanism;
-      m_response = initResponse;
-      m_locale = initLocale;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "connection.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clientProperties = reader.ReadTable();
-      m_mechanism = reader.ReadShortstr();
-      m_response = reader.ReadLongstr();
-      m_locale = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_clientProperties);
-      writer.WriteShortstr(m_mechanism);
-      writer.WriteLongstr(m_response);
-      writer.WriteShortstr(m_locale);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clientProperties); sb.Append(",");
-      sb.Append(m_mechanism); sb.Append(",");
-      sb.Append(m_response); sb.Append(",");
-      sb.Append(m_locale);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecure: RabbitMQ.Client.Impl.MethodBase, IConnectionSecure {
-    public const int ClassId = 10;
-    public const int MethodId = 20;
-
-    public byte[] m_challenge;
-
-    byte[] IConnectionSecure.Challenge { get { return m_challenge; } }
-
-    public ConnectionSecure() {}
-    public ConnectionSecure(
-      byte[] initChallenge)
-    {
-      m_challenge = initChallenge;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "connection.secure"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_challenge = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_challenge);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_challenge);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecureOk: RabbitMQ.Client.Impl.MethodBase, IConnectionSecureOk {
-    public const int ClassId = 10;
-    public const int MethodId = 21;
-
-    public byte[] m_response;
-
-    byte[] IConnectionSecureOk.Response { get { return m_response; } }
-
-    public ConnectionSecureOk() {}
-    public ConnectionSecureOk(
-      byte[] initResponse)
-    {
-      m_response = initResponse;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "connection.secure-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_response = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_response);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_response);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTune: RabbitMQ.Client.Impl.MethodBase, IConnectionTune {
-    public const int ClassId = 10;
-    public const int MethodId = 30;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTune.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTune.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTune.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTune() {}
-    public ConnectionTune(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "connection.tune"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTuneOk: RabbitMQ.Client.Impl.MethodBase, IConnectionTuneOk {
-    public const int ClassId = 10;
-    public const int MethodId = 31;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTuneOk.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTuneOk.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTuneOk.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTuneOk() {}
-    public ConnectionTuneOk(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "connection.tune-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpen: RabbitMQ.Client.Impl.MethodBase, IConnectionOpen {
-    public const int ClassId = 10;
-    public const int MethodId = 40;
-
-    public string m_virtualHost;
-    public string m_capabilities;
-    public bool m_insist;
-
-    string IConnectionOpen.VirtualHost { get { return m_virtualHost; } }
-    string IConnectionOpen.Capabilities { get { return m_capabilities; } }
-    bool IConnectionOpen.Insist { get { return m_insist; } }
-
-    public ConnectionOpen() {}
-    public ConnectionOpen(
-      string initVirtualHost,
-      string initCapabilities,
-      bool initInsist)
-    {
-      m_virtualHost = initVirtualHost;
-      m_capabilities = initCapabilities;
-      m_insist = initInsist;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "connection.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_virtualHost = reader.ReadShortstr();
-      m_capabilities = reader.ReadShortstr();
-      m_insist = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_virtualHost);
-      writer.WriteShortstr(m_capabilities);
-      writer.WriteBit(m_insist);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_virtualHost); sb.Append(",");
-      sb.Append(m_capabilities); sb.Append(",");
-      sb.Append(m_insist);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpenOk: RabbitMQ.Client.Impl.MethodBase, IConnectionOpenOk {
-    public const int ClassId = 10;
-    public const int MethodId = 41;
-
-    public string m_knownHosts;
-
-    string IConnectionOpenOk.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionOpenOk() {}
-    public ConnectionOpenOk(
-      string initKnownHosts)
-    {
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "connection.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionRedirect: RabbitMQ.Client.Impl.MethodBase, IConnectionRedirect {
-    public const int ClassId = 10;
-    public const int MethodId = 50;
-
-    public string m_host;
-    public string m_knownHosts;
-
-    string IConnectionRedirect.Host { get { return m_host; } }
-    string IConnectionRedirect.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionRedirect() {}
-    public ConnectionRedirect(
-      string initHost,
-      string initKnownHosts)
-    {
-      m_host = initHost;
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "connection.redirect"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_host = reader.ReadShortstr();
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_host);
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_host); sb.Append(",");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionClose: RabbitMQ.Client.Impl.MethodBase, IConnectionClose {
-    public const int ClassId = 10;
-    public const int MethodId = 60;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IConnectionClose.ReplyCode { get { return m_replyCode; } }
-    string IConnectionClose.ReplyText { get { return m_replyText; } }
-    ushort IConnectionClose.ClassId { get { return m_classId; } }
-    ushort IConnectionClose.MethodId { get { return m_methodId; } }
-
-    public ConnectionClose() {}
-    public ConnectionClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "connection.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionCloseOk: RabbitMQ.Client.Impl.MethodBase, IConnectionCloseOk {
-    public const int ClassId = 10;
-    public const int MethodId = 61;
-
-
-
-    public ConnectionCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 61; } }
-    public override string ProtocolMethodName { get { return "connection.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpen: RabbitMQ.Client.Impl.MethodBase, IChannelOpen {
-    public const int ClassId = 20;
-    public const int MethodId = 10;
-
-    public string m_outOfBand;
-
-    string IChannelOpen.OutOfBand { get { return m_outOfBand; } }
-
-    public ChannelOpen() {}
-    public ChannelOpen(
-      string initOutOfBand)
-    {
-      m_outOfBand = initOutOfBand;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "channel.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_outOfBand = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_outOfBand);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_outOfBand);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpenOk: RabbitMQ.Client.Impl.MethodBase, IChannelOpenOk {
-    public const int ClassId = 20;
-    public const int MethodId = 11;
-
-
-
-    public ChannelOpenOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "channel.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlow: RabbitMQ.Client.Impl.MethodBase, IChannelFlow {
-    public const int ClassId = 20;
-    public const int MethodId = 20;
-
-    public bool m_active;
-
-    bool IChannelFlow.Active { get { return m_active; } }
-
-    public ChannelFlow() {}
-    public ChannelFlow(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "channel.flow"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlowOk: RabbitMQ.Client.Impl.MethodBase, IChannelFlowOk {
-    public const int ClassId = 20;
-    public const int MethodId = 21;
-
-    public bool m_active;
-
-    bool IChannelFlowOk.Active { get { return m_active; } }
-
-    public ChannelFlowOk() {}
-    public ChannelFlowOk(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "channel.flow-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelAlert: RabbitMQ.Client.Impl.MethodBase, IChannelAlert {
-    public const int ClassId = 20;
-    public const int MethodId = 30;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public System.Collections.IDictionary m_details;
-
-    ushort IChannelAlert.ReplyCode { get { return m_replyCode; } }
-    string IChannelAlert.ReplyText { get { return m_replyText; } }
-    System.Collections.IDictionary IChannelAlert.Details { get { return m_details; } }
-
-    public ChannelAlert() {}
-    public ChannelAlert(
-      ushort initReplyCode,
-      string initReplyText,
-      System.Collections.IDictionary initDetails)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_details = initDetails;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "channel.alert"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_details = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteTable(m_details);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_details);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelClose: RabbitMQ.Client.Impl.MethodBase, IChannelClose {
-    public const int ClassId = 20;
-    public const int MethodId = 40;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IChannelClose.ReplyCode { get { return m_replyCode; } }
-    string IChannelClose.ReplyText { get { return m_replyText; } }
-    ushort IChannelClose.ClassId { get { return m_classId; } }
-    ushort IChannelClose.MethodId { get { return m_methodId; } }
-
-    public ChannelClose() {}
-    public ChannelClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "channel.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelCloseOk: RabbitMQ.Client.Impl.MethodBase, IChannelCloseOk {
-    public const int ClassId = 20;
-    public const int MethodId = 41;
-
-
-
-    public ChannelCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "channel.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequest: RabbitMQ.Client.Impl.MethodBase, IAccessRequest {
-    public const int ClassId = 30;
-    public const int MethodId = 10;
-
-    public string m_realm;
-    public bool m_exclusive;
-    public bool m_passive;
-    public bool m_active;
-    public bool m_write;
-    public bool m_read;
-
-    string IAccessRequest.Realm { get { return m_realm; } }
-    bool IAccessRequest.Exclusive { get { return m_exclusive; } }
-    bool IAccessRequest.Passive { get { return m_passive; } }
-    bool IAccessRequest.Active { get { return m_active; } }
-    bool IAccessRequest.Write { get { return m_write; } }
-    bool IAccessRequest.Read { get { return m_read; } }
-
-    public AccessRequest() {}
-    public AccessRequest(
-      string initRealm,
-      bool initExclusive,
-      bool initPassive,
-      bool initActive,
-      bool initWrite,
-      bool initRead)
-    {
-      m_realm = initRealm;
-      m_exclusive = initExclusive;
-      m_passive = initPassive;
-      m_active = initActive;
-      m_write = initWrite;
-      m_read = initRead;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "access.request"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_realm = reader.ReadShortstr();
-      m_exclusive = reader.ReadBit();
-      m_passive = reader.ReadBit();
-      m_active = reader.ReadBit();
-      m_write = reader.ReadBit();
-      m_read = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_realm);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_active);
-      writer.WriteBit(m_write);
-      writer.WriteBit(m_read);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_realm); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_active); sb.Append(",");
-      sb.Append(m_write); sb.Append(",");
-      sb.Append(m_read);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequestOk: RabbitMQ.Client.Impl.MethodBase, IAccessRequestOk {
-    public const int ClassId = 30;
-    public const int MethodId = 11;
-
-    public ushort m_ticket;
-
-    ushort IAccessRequestOk.Ticket { get { return m_ticket; } }
-
-    public AccessRequestOk() {}
-    public AccessRequestOk(
-      ushort initTicket)
-    {
-      m_ticket = initTicket;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "access.request-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclare: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclare {
-    public const int ClassId = 40;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_type;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_autoDelete;
-    public bool m_internal;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IExchangeDeclare.Ticket { get { return m_ticket; } }
-    string IExchangeDeclare.Exchange { get { return m_exchange; } }
-    string IExchangeDeclare.Type { get { return m_type; } }
-    bool IExchangeDeclare.Passive { get { return m_passive; } }
-    bool IExchangeDeclare.Durable { get { return m_durable; } }
-    bool IExchangeDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IExchangeDeclare.Internal { get { return m_internal; } }
-    bool IExchangeDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IExchangeDeclare.Arguments { get { return m_arguments; } }
-
-    public ExchangeDeclare() {}
-    public ExchangeDeclare(
-      ushort initTicket,
-      string initExchange,
-      string initType,
-      bool initPassive,
-      bool initDurable,
-      bool initAutoDelete,
-      bool initInternal,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_type = initType;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_autoDelete = initAutoDelete;
-      m_internal = initInternal;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "exchange.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_type = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_internal = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_type);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_internal);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_type); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_internal); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclareOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclareOk {
-    public const int ClassId = 40;
-    public const int MethodId = 11;
-
-
-
-    public ExchangeDeclareOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "exchange.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDelete: RabbitMQ.Client.Impl.MethodBase, IExchangeDelete {
-    public const int ClassId = 40;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public bool m_ifUnused;
-    public bool m_nowait;
-
-    ushort IExchangeDelete.Ticket { get { return m_ticket; } }
-    string IExchangeDelete.Exchange { get { return m_exchange; } }
-    bool IExchangeDelete.IfUnused { get { return m_ifUnused; } }
-    bool IExchangeDelete.Nowait { get { return m_nowait; } }
-
-    public ExchangeDelete() {}
-    public ExchangeDelete(
-      ushort initTicket,
-      string initExchange,
-      bool initIfUnused,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_ifUnused = initIfUnused;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "exchange.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeleteOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeleteOk {
-    public const int ClassId = 40;
-    public const int MethodId = 21;
-
-
-
-    public ExchangeDeleteOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "exchange.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclare: RabbitMQ.Client.Impl.MethodBase, IQueueDeclare {
-    public const int ClassId = 50;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_exclusive;
-    public bool m_autoDelete;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueDeclare.Ticket { get { return m_ticket; } }
-    string IQueueDeclare.Queue { get { return m_queue; } }
-    bool IQueueDeclare.Passive { get { return m_passive; } }
-    bool IQueueDeclare.Durable { get { return m_durable; } }
-    bool IQueueDeclare.Exclusive { get { return m_exclusive; } }
-    bool IQueueDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IQueueDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueDeclare.Arguments { get { return m_arguments; } }
-
-    public QueueDeclare() {}
-    public QueueDeclare(
-      ushort initTicket,
-      string initQueue,
-      bool initPassive,
-      bool initDurable,
-      bool initExclusive,
-      bool initAutoDelete,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_exclusive = initExclusive;
-      m_autoDelete = initAutoDelete;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "queue.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclareOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeclareOk {
-    public const int ClassId = 50;
-    public const int MethodId = 11;
-
-    public string m_queue;
-    public uint m_messageCount;
-    public uint m_consumerCount;
-
-    string IQueueDeclareOk.Queue { get { return m_queue; } }
-    uint IQueueDeclareOk.MessageCount { get { return m_messageCount; } }
-    uint IQueueDeclareOk.ConsumerCount { get { return m_consumerCount; } }
-
-    public QueueDeclareOk() {}
-    public QueueDeclareOk(
-      string initQueue,
-      uint initMessageCount,
-      uint initConsumerCount)
-    {
-      m_queue = initQueue;
-      m_messageCount = initMessageCount;
-      m_consumerCount = initConsumerCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "queue.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_queue = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-      m_consumerCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_queue);
-      writer.WriteLong(m_messageCount);
-      writer.WriteLong(m_consumerCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_messageCount); sb.Append(",");
-      sb.Append(m_consumerCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBind: RabbitMQ.Client.Impl.MethodBase, IQueueBind {
-    public const int ClassId = 50;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueBind.Ticket { get { return m_ticket; } }
-    string IQueueBind.Queue { get { return m_queue; } }
-    string IQueueBind.Exchange { get { return m_exchange; } }
-    string IQueueBind.RoutingKey { get { return m_routingKey; } }
-    bool IQueueBind.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueBind.Arguments { get { return m_arguments; } }
-
-    public QueueBind() {}
-    public QueueBind(
-      ushort initTicket,
-      string initQueue,
-      string initExchange,
-      string initRoutingKey,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "queue.bind"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBindOk: RabbitMQ.Client.Impl.MethodBase, IQueueBindOk {
-    public const int ClassId = 50;
-    public const int MethodId = 21;
-
-
-
-    public QueueBindOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "queue.bind-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueUnbind: RabbitMQ.Client.Impl.MethodBase, IQueueUnbind {
-    public const int ClassId = 50;
-    public const int MethodId = 50;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_exchange;
-    public string m_routingKey;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueUnbind.Ticket { get { return m_ticket; } }
-    string IQueueUnbind.Queue { get { return m_queue; } }
-    string IQueueUnbind.Exchange { get { return m_exchange; } }
-    string IQueueUnbind.RoutingKey { get { return m_routingKey; } }
-    System.Collections.IDictionary IQueueUnbind.Arguments { get { return m_arguments; } }
-
-    public QueueUnbind() {}
-    public QueueUnbind(
-      ushort initTicket,
-      string initQueue,
-      string initExchange,
-      string initRoutingKey,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "queue.unbind"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueUnbindOk: RabbitMQ.Client.Impl.MethodBase, IQueueUnbindOk {
-    public const int ClassId = 50;
-    public const int MethodId = 51;
-
-
-
-    public QueueUnbindOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 51; } }
-    public override string ProtocolMethodName { get { return "queue.unbind-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurge: RabbitMQ.Client.Impl.MethodBase, IQueuePurge {
-    public const int ClassId = 50;
-    public const int MethodId = 30;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_nowait;
-
-    ushort IQueuePurge.Ticket { get { return m_ticket; } }
-    string IQueuePurge.Queue { get { return m_queue; } }
-    bool IQueuePurge.Nowait { get { return m_nowait; } }
-
-    public QueuePurge() {}
-    public QueuePurge(
-      ushort initTicket,
-      string initQueue,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "queue.purge"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurgeOk: RabbitMQ.Client.Impl.MethodBase, IQueuePurgeOk {
-    public const int ClassId = 50;
-    public const int MethodId = 31;
-
-    public uint m_messageCount;
-
-    uint IQueuePurgeOk.MessageCount { get { return m_messageCount; } }
-
-    public QueuePurgeOk() {}
-    public QueuePurgeOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "queue.purge-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDelete: RabbitMQ.Client.Impl.MethodBase, IQueueDelete {
-    public const int ClassId = 50;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_ifUnused;
-    public bool m_ifEmpty;
-    public bool m_nowait;
-
-    ushort IQueueDelete.Ticket { get { return m_ticket; } }
-    string IQueueDelete.Queue { get { return m_queue; } }
-    bool IQueueDelete.IfUnused { get { return m_ifUnused; } }
-    bool IQueueDelete.IfEmpty { get { return m_ifEmpty; } }
-    bool IQueueDelete.Nowait { get { return m_nowait; } }
-
-    public QueueDelete() {}
-    public QueueDelete(
-      ushort initTicket,
-      string initQueue,
-      bool initIfUnused,
-      bool initIfEmpty,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_ifUnused = initIfUnused;
-      m_ifEmpty = initIfEmpty;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "queue.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_ifEmpty = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_ifEmpty);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_ifEmpty); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeleteOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeleteOk {
-    public const int ClassId = 50;
-    public const int MethodId = 41;
-
-    public uint m_messageCount;
-
-    uint IQueueDeleteOk.MessageCount { get { return m_messageCount; } }
-
-    public QueueDeleteOk() {}
-    public QueueDeleteOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "queue.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQos: RabbitMQ.Client.Impl.MethodBase, IBasicQos {
-    public const int ClassId = 60;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IBasicQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IBasicQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IBasicQos.Global { get { return m_global; } }
-
-    public BasicQos() {}
-    public BasicQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "basic.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQosOk: RabbitMQ.Client.Impl.MethodBase, IBasicQosOk {
-    public const int ClassId = 60;
-    public const int MethodId = 11;
-
-
-
-    public BasicQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "basic.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsume: RabbitMQ.Client.Impl.MethodBase, IBasicConsume {
-    public const int ClassId = 60;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-
-    ushort IBasicConsume.Ticket { get { return m_ticket; } }
-    string IBasicConsume.Queue { get { return m_queue; } }
-    string IBasicConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicConsume.NoLocal { get { return m_noLocal; } }
-    bool IBasicConsume.NoAck { get { return m_noAck; } }
-    bool IBasicConsume.Exclusive { get { return m_exclusive; } }
-    bool IBasicConsume.Nowait { get { return m_nowait; } }
-
-    public BasicConsume() {}
-    public BasicConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "basic.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsumeOk: RabbitMQ.Client.Impl.MethodBase, IBasicConsumeOk {
-    public const int ClassId = 60;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IBasicConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicConsumeOk() {}
-    public BasicConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "basic.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancel: RabbitMQ.Client.Impl.MethodBase, IBasicCancel {
-    public const int ClassId = 60;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IBasicCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicCancel.Nowait { get { return m_nowait; } }
-
-    public BasicCancel() {}
-    public BasicCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "basic.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancelOk: RabbitMQ.Client.Impl.MethodBase, IBasicCancelOk {
-    public const int ClassId = 60;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IBasicCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicCancelOk() {}
-    public BasicCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "basic.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicPublish: RabbitMQ.Client.Impl.MethodBase, IBasicPublish {
-    public const int ClassId = 60;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IBasicPublish.Ticket { get { return m_ticket; } }
-    string IBasicPublish.Exchange { get { return m_exchange; } }
-    string IBasicPublish.RoutingKey { get { return m_routingKey; } }
-    bool IBasicPublish.Mandatory { get { return m_mandatory; } }
-    bool IBasicPublish.Immediate { get { return m_immediate; } }
-
-    public BasicPublish() {}
-    public BasicPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "basic.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReturn: RabbitMQ.Client.Impl.MethodBase, IBasicReturn {
-    public const int ClassId = 60;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IBasicReturn.ReplyCode { get { return m_replyCode; } }
-    string IBasicReturn.ReplyText { get { return m_replyText; } }
-    string IBasicReturn.Exchange { get { return m_exchange; } }
-    string IBasicReturn.RoutingKey { get { return m_routingKey; } }
-
-    public BasicReturn() {}
-    public BasicReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "basic.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicDeliver: RabbitMQ.Client.Impl.MethodBase, IBasicDeliver {
-    public const int ClassId = 60;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-
-    string IBasicDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IBasicDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicDeliver.Redelivered { get { return m_redelivered; } }
-    string IBasicDeliver.Exchange { get { return m_exchange; } }
-    string IBasicDeliver.RoutingKey { get { return m_routingKey; } }
-
-    public BasicDeliver() {}
-    public BasicDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "basic.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGet: RabbitMQ.Client.Impl.MethodBase, IBasicGet {
-    public const int ClassId = 60;
-    public const int MethodId = 70;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_noAck;
-
-    ushort IBasicGet.Ticket { get { return m_ticket; } }
-    string IBasicGet.Queue { get { return m_queue; } }
-    bool IBasicGet.NoAck { get { return m_noAck; } }
-
-    public BasicGet() {}
-    public BasicGet(
-      ushort initTicket,
-      string initQueue,
-      bool initNoAck)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_noAck = initNoAck;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "basic.get"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_noAck = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_noAck);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_noAck);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetOk: RabbitMQ.Client.Impl.MethodBase, IBasicGetOk {
-    public const int ClassId = 60;
-    public const int MethodId = 71;
-
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public uint m_messageCount;
-
-    ulong IBasicGetOk.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicGetOk.Redelivered { get { return m_redelivered; } }
-    string IBasicGetOk.Exchange { get { return m_exchange; } }
-    string IBasicGetOk.RoutingKey { get { return m_routingKey; } }
-    uint IBasicGetOk.MessageCount { get { return m_messageCount; } }
-
-    public BasicGetOk() {}
-    public BasicGetOk(
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      uint initMessageCount)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 71; } }
-    public override string ProtocolMethodName { get { return "basic.get-ok"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetEmpty: RabbitMQ.Client.Impl.MethodBase, IBasicGetEmpty {
-    public const int ClassId = 60;
-    public const int MethodId = 72;
-
-    public string m_clusterId;
-
-    string IBasicGetEmpty.ClusterId { get { return m_clusterId; } }
-
-    public BasicGetEmpty() {}
-    public BasicGetEmpty(
-      string initClusterId)
-    {
-      m_clusterId = initClusterId;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 72; } }
-    public override string ProtocolMethodName { get { return "basic.get-empty"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clusterId = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_clusterId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clusterId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicAck: RabbitMQ.Client.Impl.MethodBase, IBasicAck {
-    public const int ClassId = 60;
-    public const int MethodId = 80;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IBasicAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicAck.Multiple { get { return m_multiple; } }
-
-    public BasicAck() {}
-    public BasicAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "basic.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReject: RabbitMQ.Client.Impl.MethodBase, IBasicReject {
-    public const int ClassId = 60;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IBasicReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicReject.Requeue { get { return m_requeue; } }
-
-    public BasicReject() {}
-    public BasicReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "basic.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicRecover: RabbitMQ.Client.Impl.MethodBase, IBasicRecover {
-    public const int ClassId = 60;
-    public const int MethodId = 100;
-
-    public bool m_requeue;
-
-    bool IBasicRecover.Requeue { get { return m_requeue; } }
-
-    public BasicRecover() {}
-    public BasicRecover(
-      bool initRequeue)
-    {
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "basic.recover"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQos: RabbitMQ.Client.Impl.MethodBase, IFileQos {
-    public const int ClassId = 70;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IFileQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IFileQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IFileQos.Global { get { return m_global; } }
-
-    public FileQos() {}
-    public FileQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "file.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQosOk: RabbitMQ.Client.Impl.MethodBase, IFileQosOk {
-    public const int ClassId = 70;
-    public const int MethodId = 11;
-
-
-
-    public FileQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "file.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsume: RabbitMQ.Client.Impl.MethodBase, IFileConsume {
-    public const int ClassId = 70;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-
-    ushort IFileConsume.Ticket { get { return m_ticket; } }
-    string IFileConsume.Queue { get { return m_queue; } }
-    string IFileConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileConsume.NoLocal { get { return m_noLocal; } }
-    bool IFileConsume.NoAck { get { return m_noAck; } }
-    bool IFileConsume.Exclusive { get { return m_exclusive; } }
-    bool IFileConsume.Nowait { get { return m_nowait; } }
-
-    public FileConsume() {}
-    public FileConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "file.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsumeOk: RabbitMQ.Client.Impl.MethodBase, IFileConsumeOk {
-    public const int ClassId = 70;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IFileConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileConsumeOk() {}
-    public FileConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "file.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancel: RabbitMQ.Client.Impl.MethodBase, IFileCancel {
-    public const int ClassId = 70;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IFileCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileCancel.Nowait { get { return m_nowait; } }
-
-    public FileCancel() {}
-    public FileCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "file.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancelOk: RabbitMQ.Client.Impl.MethodBase, IFileCancelOk {
-    public const int ClassId = 70;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IFileCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileCancelOk() {}
-    public FileCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "file.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpen: RabbitMQ.Client.Impl.MethodBase, IFileOpen {
-    public const int ClassId = 70;
-    public const int MethodId = 40;
-
-    public string m_identifier;
-    public ulong m_contentSize;
-
-    string IFileOpen.Identifier { get { return m_identifier; } }
-    ulong IFileOpen.ContentSize { get { return m_contentSize; } }
-
-    public FileOpen() {}
-    public FileOpen(
-      string initIdentifier,
-      ulong initContentSize)
-    {
-      m_identifier = initIdentifier;
-      m_contentSize = initContentSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "file.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_identifier = reader.ReadShortstr();
-      m_contentSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_identifier);
-      writer.WriteLonglong(m_contentSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_identifier); sb.Append(",");
-      sb.Append(m_contentSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpenOk: RabbitMQ.Client.Impl.MethodBase, IFileOpenOk {
-    public const int ClassId = 70;
-    public const int MethodId = 41;
-
-    public ulong m_stagedSize;
-
-    ulong IFileOpenOk.StagedSize { get { return m_stagedSize; } }
-
-    public FileOpenOk() {}
-    public FileOpenOk(
-      ulong initStagedSize)
-    {
-      m_stagedSize = initStagedSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "file.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_stagedSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_stagedSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_stagedSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileStage: RabbitMQ.Client.Impl.MethodBase, IFileStage {
-    public const int ClassId = 70;
-    public const int MethodId = 50;
-
-
-
-    public FileStage(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "file.stage"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FilePublish: RabbitMQ.Client.Impl.MethodBase, IFilePublish {
-    public const int ClassId = 70;
-    public const int MethodId = 60;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-    public string m_identifier;
-
-    ushort IFilePublish.Ticket { get { return m_ticket; } }
-    string IFilePublish.Exchange { get { return m_exchange; } }
-    string IFilePublish.RoutingKey { get { return m_routingKey; } }
-    bool IFilePublish.Mandatory { get { return m_mandatory; } }
-    bool IFilePublish.Immediate { get { return m_immediate; } }
-    string IFilePublish.Identifier { get { return m_identifier; } }
-
-    public FilePublish() {}
-    public FilePublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate,
-      string initIdentifier)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "file.publish"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReturn: RabbitMQ.Client.Impl.MethodBase, IFileReturn {
-    public const int ClassId = 70;
-    public const int MethodId = 70;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IFileReturn.ReplyCode { get { return m_replyCode; } }
-    string IFileReturn.ReplyText { get { return m_replyText; } }
-    string IFileReturn.Exchange { get { return m_exchange; } }
-    string IFileReturn.RoutingKey { get { return m_routingKey; } }
-
-    public FileReturn() {}
-    public FileReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "file.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileDeliver: RabbitMQ.Client.Impl.MethodBase, IFileDeliver {
-    public const int ClassId = 70;
-    public const int MethodId = 80;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public string m_identifier;
-
-    string IFileDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IFileDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileDeliver.Redelivered { get { return m_redelivered; } }
-    string IFileDeliver.Exchange { get { return m_exchange; } }
-    string IFileDeliver.RoutingKey { get { return m_routingKey; } }
-    string IFileDeliver.Identifier { get { return m_identifier; } }
-
-    public FileDeliver() {}
-    public FileDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      string initIdentifier)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "file.deliver"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileAck: RabbitMQ.Client.Impl.MethodBase, IFileAck {
-    public const int ClassId = 70;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IFileAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileAck.Multiple { get { return m_multiple; } }
-
-    public FileAck() {}
-    public FileAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "file.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReject: RabbitMQ.Client.Impl.MethodBase, IFileReject {
-    public const int ClassId = 70;
-    public const int MethodId = 100;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IFileReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileReject.Requeue { get { return m_requeue; } }
-
-    public FileReject() {}
-    public FileReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "file.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQos: RabbitMQ.Client.Impl.MethodBase, IStreamQos {
-    public const int ClassId = 80;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public uint m_consumeRate;
-    public bool m_global;
-
-    uint IStreamQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IStreamQos.PrefetchCount { get { return m_prefetchCount; } }
-    uint IStreamQos.ConsumeRate { get { return m_consumeRate; } }
-    bool IStreamQos.Global { get { return m_global; } }
-
-    public StreamQos() {}
-    public StreamQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      uint initConsumeRate,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_consumeRate = initConsumeRate;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "stream.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_consumeRate = reader.ReadLong();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteLong(m_consumeRate);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_consumeRate); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQosOk: RabbitMQ.Client.Impl.MethodBase, IStreamQosOk {
-    public const int ClassId = 80;
-    public const int MethodId = 11;
-
-
-
-    public StreamQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "stream.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsume: RabbitMQ.Client.Impl.MethodBase, IStreamConsume {
-    public const int ClassId = 80;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_exclusive;
-    public bool m_nowait;
-
-    ushort IStreamConsume.Ticket { get { return m_ticket; } }
-    string IStreamConsume.Queue { get { return m_queue; } }
-    string IStreamConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamConsume.NoLocal { get { return m_noLocal; } }
-    bool IStreamConsume.Exclusive { get { return m_exclusive; } }
-    bool IStreamConsume.Nowait { get { return m_nowait; } }
-
-    public StreamConsume() {}
-    public StreamConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initExclusive,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "stream.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsumeOk: RabbitMQ.Client.Impl.MethodBase, IStreamConsumeOk {
-    public const int ClassId = 80;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IStreamConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamConsumeOk() {}
-    public StreamConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "stream.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancel: RabbitMQ.Client.Impl.MethodBase, IStreamCancel {
-    public const int ClassId = 80;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IStreamCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamCancel.Nowait { get { return m_nowait; } }
-
-    public StreamCancel() {}
-    public StreamCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "stream.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancelOk: RabbitMQ.Client.Impl.MethodBase, IStreamCancelOk {
-    public const int ClassId = 80;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IStreamCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamCancelOk() {}
-    public StreamCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "stream.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamPublish: RabbitMQ.Client.Impl.MethodBase, IStreamPublish {
-    public const int ClassId = 80;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IStreamPublish.Ticket { get { return m_ticket; } }
-    string IStreamPublish.Exchange { get { return m_exchange; } }
-    string IStreamPublish.RoutingKey { get { return m_routingKey; } }
-    bool IStreamPublish.Mandatory { get { return m_mandatory; } }
-    bool IStreamPublish.Immediate { get { return m_immediate; } }
-
-    public StreamPublish() {}
-    public StreamPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "stream.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamReturn: RabbitMQ.Client.Impl.MethodBase, IStreamReturn {
-    public const int ClassId = 80;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IStreamReturn.ReplyCode { get { return m_replyCode; } }
-    string IStreamReturn.ReplyText { get { return m_replyText; } }
-    string IStreamReturn.Exchange { get { return m_exchange; } }
-    string IStreamReturn.RoutingKey { get { return m_routingKey; } }
-
-    public StreamReturn() {}
-    public StreamReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "stream.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamDeliver: RabbitMQ.Client.Impl.MethodBase, IStreamDeliver {
-    public const int ClassId = 80;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public string m_exchange;
-    public string m_queue;
-
-    string IStreamDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IStreamDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    string IStreamDeliver.Exchange { get { return m_exchange; } }
-    string IStreamDeliver.Queue { get { return m_queue; } }
-
-    public StreamDeliver() {}
-    public StreamDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      string initExchange,
-      string initQueue)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_exchange = initExchange;
-      m_queue = initQueue;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "stream.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_exchange = reader.ReadShortstr();
-      m_queue = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_queue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_queue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelect: RabbitMQ.Client.Impl.MethodBase, ITxSelect {
-    public const int ClassId = 90;
-    public const int MethodId = 10;
-
-
-
-    public TxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelectOk: RabbitMQ.Client.Impl.MethodBase, ITxSelectOk {
-    public const int ClassId = 90;
-    public const int MethodId = 11;
-
-
-
-    public TxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "tx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommit: RabbitMQ.Client.Impl.MethodBase, ITxCommit {
-    public const int ClassId = 90;
-    public const int MethodId = 20;
-
-
-
-    public TxCommit(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "tx.commit"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommitOk: RabbitMQ.Client.Impl.MethodBase, ITxCommitOk {
-    public const int ClassId = 90;
-    public const int MethodId = 21;
-
-
-
-    public TxCommitOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "tx.commit-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollback: RabbitMQ.Client.Impl.MethodBase, ITxRollback {
-    public const int ClassId = 90;
-    public const int MethodId = 30;
-
-
-
-    public TxRollback(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "tx.rollback"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollbackOk: RabbitMQ.Client.Impl.MethodBase, ITxRollbackOk {
-    public const int ClassId = 90;
-    public const int MethodId = 31;
-
-
-
-    public TxRollbackOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "tx.rollback-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelect: RabbitMQ.Client.Impl.MethodBase, IDtxSelect {
-    public const int ClassId = 100;
-    public const int MethodId = 10;
-
-
-
-    public DtxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "dtx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelectOk: RabbitMQ.Client.Impl.MethodBase, IDtxSelectOk {
-    public const int ClassId = 100;
-    public const int MethodId = 11;
-
-
-
-    public DtxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "dtx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStart: RabbitMQ.Client.Impl.MethodBase, IDtxStart {
-    public const int ClassId = 100;
-    public const int MethodId = 20;
-
-    public string m_dtxIdentifier;
-
-    string IDtxStart.DtxIdentifier { get { return m_dtxIdentifier; } }
-
-    public DtxStart() {}
-    public DtxStart(
-      string initDtxIdentifier)
-    {
-      m_dtxIdentifier = initDtxIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "dtx.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_dtxIdentifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_dtxIdentifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_dtxIdentifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStartOk: RabbitMQ.Client.Impl.MethodBase, IDtxStartOk {
-    public const int ClassId = 100;
-    public const int MethodId = 21;
-
-
-
-    public DtxStartOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "dtx.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TunnelRequest: RabbitMQ.Client.Impl.MethodBase, ITunnelRequest {
-    public const int ClassId = 110;
-    public const int MethodId = 10;
-
-    public System.Collections.IDictionary m_metaData;
-
-    System.Collections.IDictionary ITunnelRequest.MetaData { get { return m_metaData; } }
-
-    public TunnelRequest() {}
-    public TunnelRequest(
-      System.Collections.IDictionary initMetaData)
-    {
-      m_metaData = initMetaData;
-    }
-
-    public override int ProtocolClassId { get { return 110; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tunnel.request"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_metaData = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_metaData);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_metaData);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestInteger: RabbitMQ.Client.Impl.MethodBase, ITestInteger {
-    public const int ClassId = 120;
-    public const int MethodId = 10;
-
-    public byte m_integer1;
-    public ushort m_integer2;
-    public uint m_integer3;
-    public ulong m_integer4;
-    public byte m_operation;
-
-    byte ITestInteger.Integer1 { get { return m_integer1; } }
-    ushort ITestInteger.Integer2 { get { return m_integer2; } }
-    uint ITestInteger.Integer3 { get { return m_integer3; } }
-    ulong ITestInteger.Integer4 { get { return m_integer4; } }
-    byte ITestInteger.Operation { get { return m_operation; } }
-
-    public TestInteger() {}
-    public TestInteger(
-      byte initInteger1,
-      ushort initInteger2,
-      uint initInteger3,
-      ulong initInteger4,
-      byte initOperation)
-    {
-      m_integer1 = initInteger1;
-      m_integer2 = initInteger2;
-      m_integer3 = initInteger3;
-      m_integer4 = initInteger4;
-      m_operation = initOperation;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "test.integer"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_integer1 = reader.ReadOctet();
-      m_integer2 = reader.ReadShort();
-      m_integer3 = reader.ReadLong();
-      m_integer4 = reader.ReadLonglong();
-      m_operation = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteOctet(m_integer1);
-      writer.WriteShort(m_integer2);
-      writer.WriteLong(m_integer3);
-      writer.WriteLonglong(m_integer4);
-      writer.WriteOctet(m_operation);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_integer1); sb.Append(",");
-      sb.Append(m_integer2); sb.Append(",");
-      sb.Append(m_integer3); sb.Append(",");
-      sb.Append(m_integer4); sb.Append(",");
-      sb.Append(m_operation);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestIntegerOk: RabbitMQ.Client.Impl.MethodBase, ITestIntegerOk {
-    public const int ClassId = 120;
-    public const int MethodId = 11;
-
-    public ulong m_result;
-
-    ulong ITestIntegerOk.Result { get { return m_result; } }
-
-    public TestIntegerOk() {}
-    public TestIntegerOk(
-      ulong initResult)
-    {
-      m_result = initResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "test.integer-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_result = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_result);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_result);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestString: RabbitMQ.Client.Impl.MethodBase, ITestString {
-    public const int ClassId = 120;
-    public const int MethodId = 20;
-
-    public string m_string1;
-    public byte[] m_string2;
-    public byte m_operation;
-
-    string ITestString.String1 { get { return m_string1; } }
-    byte[] ITestString.String2 { get { return m_string2; } }
-    byte ITestString.Operation { get { return m_operation; } }
-
-    public TestString() {}
-    public TestString(
-      string initString1,
-      byte[] initString2,
-      byte initOperation)
-    {
-      m_string1 = initString1;
-      m_string2 = initString2;
-      m_operation = initOperation;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "test.string"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_string1 = reader.ReadShortstr();
-      m_string2 = reader.ReadLongstr();
-      m_operation = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_string1);
-      writer.WriteLongstr(m_string2);
-      writer.WriteOctet(m_operation);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_string1); sb.Append(",");
-      sb.Append(m_string2); sb.Append(",");
-      sb.Append(m_operation);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestStringOk: RabbitMQ.Client.Impl.MethodBase, ITestStringOk {
-    public const int ClassId = 120;
-    public const int MethodId = 21;
-
-    public byte[] m_result;
-
-    byte[] ITestStringOk.Result { get { return m_result; } }
-
-    public TestStringOk() {}
-    public TestStringOk(
-      byte[] initResult)
-    {
-      m_result = initResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "test.string-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_result = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_result);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_result);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestTable: RabbitMQ.Client.Impl.MethodBase, ITestTable {
-    public const int ClassId = 120;
-    public const int MethodId = 30;
-
-    public System.Collections.IDictionary m_table;
-    public byte m_integerOp;
-    public byte m_stringOp;
-
-    System.Collections.IDictionary ITestTable.Table { get { return m_table; } }
-    byte ITestTable.IntegerOp { get { return m_integerOp; } }
-    byte ITestTable.StringOp { get { return m_stringOp; } }
-
-    public TestTable() {}
-    public TestTable(
-      System.Collections.IDictionary initTable,
-      byte initIntegerOp,
-      byte initStringOp)
-    {
-      m_table = initTable;
-      m_integerOp = initIntegerOp;
-      m_stringOp = initStringOp;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "test.table"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_table = reader.ReadTable();
-      m_integerOp = reader.ReadOctet();
-      m_stringOp = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_table);
-      writer.WriteOctet(m_integerOp);
-      writer.WriteOctet(m_stringOp);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_table); sb.Append(",");
-      sb.Append(m_integerOp); sb.Append(",");
-      sb.Append(m_stringOp);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestTableOk: RabbitMQ.Client.Impl.MethodBase, ITestTableOk {
-    public const int ClassId = 120;
-    public const int MethodId = 31;
-
-    public ulong m_integerResult;
-    public byte[] m_stringResult;
-
-    ulong ITestTableOk.IntegerResult { get { return m_integerResult; } }
-    byte[] ITestTableOk.StringResult { get { return m_stringResult; } }
-
-    public TestTableOk() {}
-    public TestTableOk(
-      ulong initIntegerResult,
-      byte[] initStringResult)
-    {
-      m_integerResult = initIntegerResult;
-      m_stringResult = initStringResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "test.table-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_integerResult = reader.ReadLonglong();
-      m_stringResult = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_integerResult);
-      writer.WriteLongstr(m_stringResult);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_integerResult); sb.Append(",");
-      sb.Append(m_stringResult);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestContent: RabbitMQ.Client.Impl.MethodBase, ITestContent {
-    public const int ClassId = 120;
-    public const int MethodId = 40;
-
-
-
-    public TestContent(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "test.content"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestContentOk: RabbitMQ.Client.Impl.MethodBase, ITestContentOk {
-    public const int ClassId = 120;
-    public const int MethodId = 41;
-
-    public uint m_contentChecksum;
-
-    uint ITestContentOk.ContentChecksum { get { return m_contentChecksum; } }
-
-    public TestContentOk() {}
-    public TestContentOk(
-      uint initContentChecksum)
-    {
-      m_contentChecksum = initContentChecksum;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "test.content-ok"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_contentChecksum = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_contentChecksum);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_contentChecksum);
-      sb.Append(")");
-    }
-  }
-
-  public class Model: RabbitMQ.Client.Impl.ModelBase {
-    public Model(RabbitMQ.Client.Impl.ISession session): base(session) {}
-    public override void _Private_BasicPublish(
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @mandatory,
-      System.Boolean @immediate,
-      RabbitMQ.Client.IBasicProperties @basicProperties,
-      System.Byte[] @body)
-    {
-      BasicPublish __req = new BasicPublish();
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_mandatory = @mandatory;
-      __req.m_immediate = @immediate;
-      ModelSend(__req, (BasicProperties) basicProperties,body);
-    }
-    public override void _Private_BasicConsume(
-      System.String @queue,
-      System.String @consumerTag,
-      System.Boolean @noLocal,
-      System.Boolean @noAck,
-      System.Boolean @exclusive,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @filter)
-    {
-      BasicConsume __req = new BasicConsume();
-      __req.m_queue = @queue;
-      __req.m_consumerTag = @consumerTag;
-      __req.m_noLocal = @noLocal;
-      __req.m_noAck = @noAck;
-      __req.m_exclusive = @exclusive;
-      __req.m_nowait = @nowait;
-      if (@filter != null) {
-        throw new UnsupportedMethodFieldException("_Private_BasicConsume","filter");
-      }
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicCancel(
-      System.String @consumerTag,
-      System.Boolean @nowait)
-    {
-      BasicCancel __req = new BasicCancel();
-      __req.m_consumerTag = @consumerTag;
-      __req.m_nowait = @nowait;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelOpen(
-      System.String @outOfBand)
-    {
-      ChannelOpen __req = new ChannelOpen();
-      __req.m_outOfBand = @outOfBand;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelOpenOk __rep = __repBase as ChannelOpenOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ChannelCloseOk()
-    {
-      ChannelCloseOk __req = new ChannelCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ChannelClose __req = new ChannelClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicGet(
-      System.String @queue,
-      System.Boolean @noAck)
-    {
-      BasicGet __req = new BasicGet();
-      __req.m_queue = @queue;
-      __req.m_noAck = @noAck;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelFlowOk()
-    {
-      ChannelFlowOk __req = new ChannelFlowOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.Impl.ConnectionTuneDetails ConnectionStartOk(
-      System.Collections.IDictionary @clientProperties,
-      System.String @mechanism,
-      System.Byte[] @response,
-      System.String @locale)
-    {
-      ConnectionStartOk __req = new ConnectionStartOk();
-      __req.m_clientProperties = @clientProperties;
-      __req.m_mechanism = @mechanism;
-      __req.m_response = @response;
-      __req.m_locale = @locale;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionTune __rep = __repBase as ConnectionTune;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      RabbitMQ.Client.Impl.ConnectionTuneDetails __result = new RabbitMQ.Client.Impl.ConnectionTuneDetails();
-      __result.m_channelMax = __rep.m_channelMax;
-      __result.m_frameMax = __rep.m_frameMax;
-      __result.m_heartbeat = __rep.m_heartbeat;
-      return __result;
-    }
-    public override void ConnectionTuneOk(
-      System.UInt16 @channelMax,
-      System.UInt32 @frameMax,
-      System.UInt16 @heartbeat)
-    {
-      ConnectionTuneOk __req = new ConnectionTuneOk();
-      __req.m_channelMax = @channelMax;
-      __req.m_frameMax = @frameMax;
-      __req.m_heartbeat = @heartbeat;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionOpen(
-      System.String @virtualHost,
-      System.String @capabilities,
-      System.Boolean @insist)
-    {
-      ConnectionOpen __req = new ConnectionOpen();
-      __req.m_virtualHost = @virtualHost;
-      __req.m_capabilities = @capabilities;
-      __req.m_insist = @insist;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ConnectionClose __req = new ConnectionClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionCloseOk __rep = __repBase as ConnectionCloseOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ConnectionCloseOk()
-    {
-      ConnectionCloseOk __req = new ConnectionCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.IBasicProperties CreateBasicProperties()
-    {
-      return new BasicProperties();
-    }
-    public override RabbitMQ.Client.IFileProperties CreateFileProperties()
-    {
-      return new FileProperties();
-    }
-    public override RabbitMQ.Client.IStreamProperties CreateStreamProperties()
-    {
-      return new StreamProperties();
-    }
-    public override void ChannelFlow(
-      System.Boolean @active)
-    {
-      ChannelFlow __req = new ChannelFlow();
-      __req.m_active = @active;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelFlowOk __rep = __repBase as ChannelFlowOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDeclare(
-      System.String @exchange,
-      System.String @type,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @autoDelete,
-      System.Boolean @internal,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      ExchangeDeclare __req = new ExchangeDeclare();
-      __req.m_exchange = @exchange;
-      __req.m_type = @type;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_internal = @internal;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeclareOk __rep = __repBase as ExchangeDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDelete(
-      System.String @exchange,
-      System.Boolean @ifUnused,
-      System.Boolean @nowait)
-    {
-      ExchangeDelete __req = new ExchangeDelete();
-      __req.m_exchange = @exchange;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeleteOk __rep = __repBase as ExchangeDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override System.String QueueDeclare(
-      System.String @queue,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @exclusive,
-      System.Boolean @autoDelete,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueDeclare __req = new QueueDeclare();
-      __req.m_queue = @queue;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_exclusive = @exclusive;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return null;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeclareOk __rep = __repBase as QueueDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_queue;
-    }
-    public override void QueueBind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueBind __req = new QueueBind();
-      __req.m_queue = @queue;
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueBindOk __rep = __repBase as QueueBindOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void QueueUnbind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueUnbind __req = new QueueUnbind();
-      __req.m_queue = @queue;
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_arguments = @arguments;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueUnbindOk __rep = __repBase as QueueUnbindOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override System.UInt32 QueuePurge(
-      System.String @queue,
-      System.Boolean @nowait)
-    {
-      QueuePurge __req = new QueuePurge();
-      __req.m_queue = @queue;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueuePurgeOk __rep = __repBase as QueuePurgeOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override System.UInt32 QueueDelete(
-      System.String @queue,
-      System.Boolean @ifUnused,
-      System.Boolean @ifEmpty,
-      System.Boolean @nowait)
-    {
-      QueueDelete __req = new QueueDelete();
-      __req.m_queue = @queue;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_ifEmpty = @ifEmpty;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeleteOk __rep = __repBase as QueueDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override void BasicQos(
-      System.UInt32 @prefetchSize,
-      System.UInt16 @prefetchCount,
-      System.Boolean @global)
-    {
-      BasicQos __req = new BasicQos();
-      __req.m_prefetchSize = @prefetchSize;
-      __req.m_prefetchCount = @prefetchCount;
-      __req.m_global = @global;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      BasicQosOk __rep = __repBase as BasicQosOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void BasicAck(
-      System.UInt64 @deliveryTag,
-      System.Boolean @multiple)
-    {
-      BasicAck __req = new BasicAck();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_multiple = @multiple;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicReject(
-      System.UInt64 @deliveryTag,
-      System.Boolean @requeue)
-    {
-      BasicReject __req = new BasicReject();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_requeue = @requeue;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicRecover(
-      System.Boolean @requeue)
-    {
-      BasicRecover __req = new BasicRecover();
-      __req.m_requeue = @requeue;
-      ModelSend(__req,null,null);
-    }
-    public override void TxSelect()
-    {
-      TxSelect __req = new TxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxSelectOk __rep = __repBase as TxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxCommit()
-    {
-      TxCommit __req = new TxCommit();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxCommitOk __rep = __repBase as TxCommitOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxRollback()
-    {
-      TxRollback __req = new TxRollback();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxRollbackOk __rep = __repBase as TxRollbackOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxSelect()
-    {
-      DtxSelect __req = new DtxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxSelectOk __rep = __repBase as DtxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxStart(
-      System.String @dtxIdentifier)
-    {
-      DtxStart __req = new DtxStart();
-      __req.m_dtxIdentifier = @dtxIdentifier;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxStartOk __rep = __repBase as DtxStartOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override bool DispatchAsynchronous(RabbitMQ.Client.Impl.Command cmd) {
-      RabbitMQ.Client.Impl.MethodBase __method = (RabbitMQ.Client.Impl.MethodBase) cmd.Method;
-      switch ((__method.ProtocolClassId << 16) | __method.ProtocolMethodId) {
-        case 3932181: {
-          BasicConsumeOk __impl = (BasicConsumeOk) __method;
-          HandleBasicConsumeOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932191: {
-          BasicCancelOk __impl = (BasicCancelOk) __method;
-          HandleBasicCancelOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932231: {
-          BasicGetOk __impl = (BasicGetOk) __method;
-          HandleBasicGetOk(
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            __impl.m_messageCount,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932232: {
-          HandleBasicGetEmpty();
-          return true;
-        }
-        case 3932220: {
-          BasicDeliver __impl = (BasicDeliver) __method;
-          HandleBasicDeliver(
-            __impl.m_consumerTag,
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932210: {
-          BasicReturn __impl = (BasicReturn) __method;
-          HandleBasicReturn(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 1310740: {
-          ChannelFlow __impl = (ChannelFlow) __method;
-          HandleChannelFlow(
-            __impl.m_active);
-          return true;
-        }
-        case 1310760: {
-          ChannelClose __impl = (ChannelClose) __method;
-          HandleChannelClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        case 1310761: {
-          HandleChannelCloseOk();
-          return true;
-        }
-        case 655370: {
-          ConnectionStart __impl = (ConnectionStart) __method;
-          HandleConnectionStart(
-            __impl.m_versionMajor,
-            __impl.m_versionMinor,
-            __impl.m_serverProperties,
-            __impl.m_mechanisms,
-            __impl.m_locales);
-          return true;
-        }
-        case 655401: {
-          ConnectionOpenOk __impl = (ConnectionOpenOk) __method;
-          HandleConnectionOpenOk(
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655410: {
-          ConnectionRedirect __impl = (ConnectionRedirect) __method;
-          HandleConnectionRedirect(
-            __impl.m_host,
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655420: {
-          ConnectionClose __impl = (ConnectionClose) __method;
-          HandleConnectionClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        default: return false;
-      }
-    }
-  }
-}
diff --git a/mcs/class/RabbitMQ.Client/docs/specs/net_2_0-api-0-9.cs b/mcs/class/RabbitMQ.Client/docs/specs/net_2_0-api-0-9.cs
deleted file mode 100644 (file)
index fb67270..0000000
+++ /dev/null
@@ -1,7050 +0,0 @@
-// Autogenerated code. Do not edit.
-
-// This source code is dual-licensed under the Apache License, version
-// 2.0, and the Mozilla Public License, version 1.1.
-//
-// The APL v2.0:
-//
-//---------------------------------------------------------------------------
-//   Copyright (C) 2007-2010 LShift Ltd., Cohesive Financial
-//   Technologies LLC., and Rabbit Technologies Ltd.
-//
-//   Licensed under the Apache License, Version 2.0 (the "License");
-//   you may not use this file except in compliance with the License.
-//   You may obtain a copy of the License at
-//
-//       http://www.apache.org/licenses/LICENSE-2.0
-//
-//   Unless required by applicable law or agreed to in writing, software
-//   distributed under the License is distributed on an "AS IS" BASIS,
-//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//   See the License for the specific language governing permissions and
-//   limitations under the License.
-//---------------------------------------------------------------------------
-//
-// The MPL v1.1:
-//
-//---------------------------------------------------------------------------
-//   The contents of this file are subject to the Mozilla Public License
-//   Version 1.1 (the "License"); you may not use this file except in
-//   compliance with the License. You may obtain a copy of the License at
-//   http://www.rabbitmq.com/mpl.html
-//
-//   Software distributed under the License is distributed on an "AS IS"
-//   basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//   License for the specific language governing rights and limitations
-//   under the License.
-//
-//   The Original Code is The RabbitMQ .NET Client.
-//
-//   The Initial Developers of the Original Code are LShift Ltd,
-//   Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
-//   Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
-//   are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
-//   Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created by LShift Ltd are Copyright (C) 2007-2010 LShift
-//   Ltd. Portions created by Cohesive Financial Technologies LLC are
-//   Copyright (C) 2007-2010 Cohesive Financial Technologies
-//   LLC. Portions created by Rabbit Technologies Ltd are Copyright
-//   (C) 2007-2010 Rabbit Technologies Ltd.
-//
-//   All Rights Reserved.
-//
-//   Contributor(s): ______________________________________.
-//
-//---------------------------------------------------------------------------
-
-using RabbitMQ.Client;
-using RabbitMQ.Client.Exceptions;
-
-namespace RabbitMQ.Client.Framing.v0_9 {
-  public class Protocol: RabbitMQ.Client.Framing.Impl.v0_9.ProtocolBase {
-    ///<summary>Protocol major version (= 0)</summary>
-    public override int MajorVersion { get { return 0; } }
-    ///<summary>Protocol minor version (= 9)</summary>
-    public override int MinorVersion { get { return 9; } }
-    ///<summary>Protocol API name (= AMQP_0_9)</summary>
-    public override string ApiName { get { return "AMQP_0_9"; } }
-    ///<summary>Default TCP port (= 5672)</summary>
-    public override int DefaultPort { get { return 5672; } }
-
-    public override RabbitMQ.Client.Impl.MethodBase DecodeMethodFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-      ushort methodId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 10: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionStart result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionStartOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionSecure result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionSecure();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionSecureOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionSecureOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionTune result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionTune();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionTuneOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionTuneOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionOpen result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 42: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionRedirect result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionRedirect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionClose result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 51: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 20: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelOpen result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelFlow result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelFlow();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelFlowOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelFlowOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelClose result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelResume result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelResume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelPing result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelPing();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelPong result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelPong();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 30: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.AccessRequest result = new RabbitMQ.Client.Framing.Impl.v0_9.AccessRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.AccessRequestOk result = new RabbitMQ.Client.Framing.Impl.v0_9.AccessRequestOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 40: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeclare result = new RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDelete result = new RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 50: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueDeclare result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueBind result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueBind();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueBindOk result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueBindOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueUnbind result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueUnbind();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 51: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueUnbindOk result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueUnbindOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueuePurge result = new RabbitMQ.Client.Framing.Impl.v0_9.QueuePurge();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueuePurgeOk result = new RabbitMQ.Client.Framing.Impl.v0_9.QueuePurgeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueDelete result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 60: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicQos result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicQosOk result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicConsume result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicCancel result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicPublish result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicReturn result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicDeliver result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicGet result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicGet();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 71: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicGetOk result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicGetOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 72: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicGetEmpty result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicGetEmpty();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicAck result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicReject result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicRecover result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicRecover();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 70: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileQos result = new RabbitMQ.Client.Framing.Impl.v0_9.FileQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileQosOk result = new RabbitMQ.Client.Framing.Impl.v0_9.FileQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileConsume result = new RabbitMQ.Client.Framing.Impl.v0_9.FileConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_9.FileConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileCancel result = new RabbitMQ.Client.Framing.Impl.v0_9.FileCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_9.FileCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileOpen result = new RabbitMQ.Client.Framing.Impl.v0_9.FileOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_9.FileOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileStage result = new RabbitMQ.Client.Framing.Impl.v0_9.FileStage();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FilePublish result = new RabbitMQ.Client.Framing.Impl.v0_9.FilePublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileReturn result = new RabbitMQ.Client.Framing.Impl.v0_9.FileReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileDeliver result = new RabbitMQ.Client.Framing.Impl.v0_9.FileDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileAck result = new RabbitMQ.Client.Framing.Impl.v0_9.FileAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileReject result = new RabbitMQ.Client.Framing.Impl.v0_9.FileReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 80: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamQos result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamQosOk result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamConsume result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamCancel result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamPublish result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamReturn result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamDeliver result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 90: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxSelect result = new RabbitMQ.Client.Framing.Impl.v0_9.TxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_9.TxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxCommit result = new RabbitMQ.Client.Framing.Impl.v0_9.TxCommit();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxCommitOk result = new RabbitMQ.Client.Framing.Impl.v0_9.TxCommitOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxRollback result = new RabbitMQ.Client.Framing.Impl.v0_9.TxRollback();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxRollbackOk result = new RabbitMQ.Client.Framing.Impl.v0_9.TxRollbackOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 100: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.DtxSelect result = new RabbitMQ.Client.Framing.Impl.v0_9.DtxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.DtxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_9.DtxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.DtxStart result = new RabbitMQ.Client.Framing.Impl.v0_9.DtxStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.DtxStartOk result = new RabbitMQ.Client.Framing.Impl.v0_9.DtxStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 110: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TunnelRequest result = new RabbitMQ.Client.Framing.Impl.v0_9.TunnelRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 120: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageTransfer result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageTransfer();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageConsume result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageCancel result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageGet result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageGet();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageRecover result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageRecover();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageOpen result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageClose result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageAppend result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageAppend();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageCheckpoint result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageCheckpoint();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageResume result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageResume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 110: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageQos result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 500: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageOk result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 510: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageEmpty result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageEmpty();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 520: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageReject result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 530: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageOffset result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageOffset();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, methodId);
-    }
-
-    public override RabbitMQ.Client.Impl.ContentHeaderBase DecodeContentHeaderFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 60: return new BasicProperties();
-        case 70: return new FileProperties();
-        case 80: return new StreamProperties();
-        case 110: return new TunnelProperties();
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, 0);
-    }
-  }
-  public class Constants {
-    ///<summary>(= 1)</summary>
-    public const int FrameMethod = 1;
-    ///<summary>(= 2)</summary>
-    public const int FrameHeader = 2;
-    ///<summary>(= 3)</summary>
-    public const int FrameBody = 3;
-    ///<summary>(= 4)</summary>
-    public const int FrameOobMethod = 4;
-    ///<summary>(= 5)</summary>
-    public const int FrameOobHeader = 5;
-    ///<summary>(= 6)</summary>
-    public const int FrameOobBody = 6;
-    ///<summary>(= 7)</summary>
-    public const int FrameTrace = 7;
-    ///<summary>(= 8)</summary>
-    public const int FrameHeartbeat = 8;
-    ///<summary>(= 4096)</summary>
-    public const int FrameMinSize = 4096;
-    ///<summary>(= 206)</summary>
-    public const int FrameEnd = 206;
-    ///<summary>(= 200)</summary>
-    public const int ReplySuccess = 200;
-    ///<summary>(= 310)</summary>
-    public const int NotDelivered = 310;
-    ///<summary>(= 311)</summary>
-    public const int ContentTooLarge = 311;
-    ///<summary>(= 312)</summary>
-    public const int NoRoute = 312;
-    ///<summary>(= 313)</summary>
-    public const int NoConsumers = 313;
-    ///<summary>(= 320)</summary>
-    public const int ConnectionForced = 320;
-    ///<summary>(= 402)</summary>
-    public const int InvalidPath = 402;
-    ///<summary>(= 403)</summary>
-    public const int AccessRefused = 403;
-    ///<summary>(= 404)</summary>
-    public const int NotFound = 404;
-    ///<summary>(= 405)</summary>
-    public const int ResourceLocked = 405;
-    ///<summary>(= 406)</summary>
-    public const int PreconditionFailed = 406;
-    ///<summary>(= 501)</summary>
-    public const int FrameError = 501;
-    ///<summary>(= 502)</summary>
-    public const int SyntaxError = 502;
-    ///<summary>(= 503)</summary>
-    public const int CommandInvalid = 503;
-    ///<summary>(= 504)</summary>
-    public const int ChannelError = 504;
-    ///<summary>(= 506)</summary>
-    public const int ResourceError = 506;
-    ///<summary>(= 530)</summary>
-    public const int NotAllowed = 530;
-    ///<summary>(= 540)</summary>
-    public const int NotImplemented = 540;
-    ///<summary>(= 541)</summary>
-    public const int InternalError = 541;
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start".</summary>
-  public interface IConnectionStart: IMethod {
-    byte VersionMajor { get; }
-    byte VersionMinor { get; }
-    System.Collections.IDictionary ServerProperties { get; }
-    byte[] Mechanisms { get; }
-    byte[] Locales { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start-ok".</summary>
-  public interface IConnectionStartOk: IMethod {
-    System.Collections.IDictionary ClientProperties { get; }
-    string Mechanism { get; }
-    byte[] Response { get; }
-    string Locale { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure".</summary>
-  public interface IConnectionSecure: IMethod {
-    byte[] Challenge { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure-ok".</summary>
-  public interface IConnectionSecureOk: IMethod {
-    byte[] Response { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune".</summary>
-  public interface IConnectionTune: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune-ok".</summary>
-  public interface IConnectionTuneOk: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open".</summary>
-  public interface IConnectionOpen: IMethod {
-    string VirtualHost { get; }
-    string Capabilities { get; }
-    bool Insist { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open-ok".</summary>
-  public interface IConnectionOpenOk: IMethod {
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.redirect".</summary>
-  public interface IConnectionRedirect: IMethod {
-    string Host { get; }
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close".</summary>
-  public interface IConnectionClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close-ok".</summary>
-  public interface IConnectionCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open".</summary>
-  public interface IChannelOpen: IMethod {
-    string OutOfBand { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open-ok".</summary>
-  public interface IChannelOpenOk: IMethod {
-    byte[] ChannelId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow".</summary>
-  public interface IChannelFlow: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow-ok".</summary>
-  public interface IChannelFlowOk: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close".</summary>
-  public interface IChannelClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close-ok".</summary>
-  public interface IChannelCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.resume".</summary>
-  public interface IChannelResume: IMethod {
-    byte[] ChannelId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.ping".</summary>
-  public interface IChannelPing: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.pong".</summary>
-  public interface IChannelPong: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.ok".</summary>
-  public interface IChannelOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request".</summary>
-  public interface IAccessRequest: IMethod {
-    string Realm { get; }
-    bool Exclusive { get; }
-    bool Passive { get; }
-    bool Active { get; }
-    bool Write { get; }
-    bool Read { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request-ok".</summary>
-  public interface IAccessRequestOk: IMethod {
-    ushort Ticket { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare".</summary>
-  public interface IExchangeDeclare: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string Type { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool AutoDelete { get; }
-    bool Internal { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare-ok".</summary>
-  public interface IExchangeDeclareOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete".</summary>
-  public interface IExchangeDelete: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    bool IfUnused { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete-ok".</summary>
-  public interface IExchangeDeleteOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare".</summary>
-  public interface IQueueDeclare: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool Exclusive { get; }
-    bool AutoDelete { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare-ok".</summary>
-  public interface IQueueDeclareOk: IMethod {
-    string Queue { get; }
-    uint MessageCount { get; }
-    uint ConsumerCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind".</summary>
-  public interface IQueueBind: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind-ok".</summary>
-  public interface IQueueBindOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.unbind".</summary>
-  public interface IQueueUnbind: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.unbind-ok".</summary>
-  public interface IQueueUnbindOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge".</summary>
-  public interface IQueuePurge: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge-ok".</summary>
-  public interface IQueuePurgeOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete".</summary>
-  public interface IQueueDelete: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool IfUnused { get; }
-    bool IfEmpty { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete-ok".</summary>
-  public interface IQueueDeleteOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos".</summary>
-  public interface IBasicQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos-ok".</summary>
-  public interface IBasicQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume".</summary>
-  public interface IBasicConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Filter { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume-ok".</summary>
-  public interface IBasicConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel".</summary>
-  public interface IBasicCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel-ok".</summary>
-  public interface IBasicCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.publish".</summary>
-  public interface IBasicPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.return".</summary>
-  public interface IBasicReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.deliver".</summary>
-  public interface IBasicDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get".</summary>
-  public interface IBasicGet: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool NoAck { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-ok".</summary>
-  public interface IBasicGetOk: IMethod {
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-empty".</summary>
-  public interface IBasicGetEmpty: IMethod {
-    string ClusterId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.ack".</summary>
-  public interface IBasicAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.reject".</summary>
-  public interface IBasicReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.recover".</summary>
-  public interface IBasicRecover: IMethod {
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos".</summary>
-  public interface IFileQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos-ok".</summary>
-  public interface IFileQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume".</summary>
-  public interface IFileConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Filter { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume-ok".</summary>
-  public interface IFileConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel".</summary>
-  public interface IFileCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel-ok".</summary>
-  public interface IFileCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open".</summary>
-  public interface IFileOpen: IMethod {
-    string Identifier { get; }
-    ulong ContentSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open-ok".</summary>
-  public interface IFileOpenOk: IMethod {
-    ulong StagedSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.stage".</summary>
-  public interface IFileStage: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.publish".</summary>
-  public interface IFilePublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.return".</summary>
-  public interface IFileReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.deliver".</summary>
-  public interface IFileDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.ack".</summary>
-  public interface IFileAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.reject".</summary>
-  public interface IFileReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos".</summary>
-  public interface IStreamQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    uint ConsumeRate { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos-ok".</summary>
-  public interface IStreamQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume".</summary>
-  public interface IStreamConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Filter { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume-ok".</summary>
-  public interface IStreamConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel".</summary>
-  public interface IStreamCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel-ok".</summary>
-  public interface IStreamCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.publish".</summary>
-  public interface IStreamPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.return".</summary>
-  public interface IStreamReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.deliver".</summary>
-  public interface IStreamDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    string Exchange { get; }
-    string Queue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select".</summary>
-  public interface ITxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select-ok".</summary>
-  public interface ITxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit".</summary>
-  public interface ITxCommit: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit-ok".</summary>
-  public interface ITxCommitOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback".</summary>
-  public interface ITxRollback: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback-ok".</summary>
-  public interface ITxRollbackOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select".</summary>
-  public interface IDtxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select-ok".</summary>
-  public interface IDtxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start".</summary>
-  public interface IDtxStart: IMethod {
-    string DtxIdentifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start-ok".</summary>
-  public interface IDtxStartOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tunnel.request".</summary>
-  public interface ITunnelRequest: IMethod {
-    System.Collections.IDictionary MetaData { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.transfer".</summary>
-  public interface IMessageTransfer: IMethod {
-    ushort Ticket { get; }
-    string Destination { get; }
-    bool Redelivered { get; }
-    bool Immediate { get; }
-    ulong Ttl { get; }
-    byte Priority { get; }
-    AmqpTimestamp Timestamp { get; }
-    byte DeliveryMode { get; }
-    AmqpTimestamp Expiration { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    string MessageId { get; }
-    string CorrelationId { get; }
-    string ReplyTo { get; }
-    string ContentType { get; }
-    string ContentEncoding { get; }
-    string UserId { get; }
-    string AppId { get; }
-    string TransactionId { get; }
-    byte[] SecurityToken { get; }
-    System.Collections.IDictionary ApplicationHeaders { get; }
-    byte[] Body { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.consume".</summary>
-  public interface IMessageConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Destination { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    System.Collections.IDictionary Filter { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.cancel".</summary>
-  public interface IMessageCancel: IMethod {
-    string Destination { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.get".</summary>
-  public interface IMessageGet: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Destination { get; }
-    bool NoAck { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.recover".</summary>
-  public interface IMessageRecover: IMethod {
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.open".</summary>
-  public interface IMessageOpen: IMethod {
-    byte[] Reference { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.close".</summary>
-  public interface IMessageClose: IMethod {
-    byte[] Reference { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.append".</summary>
-  public interface IMessageAppend: IMethod {
-    byte[] Reference { get; }
-    byte[] Bytes { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.checkpoint".</summary>
-  public interface IMessageCheckpoint: IMethod {
-    byte[] Reference { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.resume".</summary>
-  public interface IMessageResume: IMethod {
-    byte[] Reference { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.qos".</summary>
-  public interface IMessageQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.ok".</summary>
-  public interface IMessageOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.empty".</summary>
-  public interface IMessageEmpty: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.reject".</summary>
-  public interface IMessageReject: IMethod {
-    ushort Code { get; }
-    string Text { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.offset".</summary>
-  public interface IMessageOffset: IMethod {
-    ulong Value { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "basic"</summary>
-  public class BasicProperties: RabbitMQ.Client.Impl.BasicProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_deliveryMode;
-    private byte m_priority;
-    private string m_correlationId;
-    private string m_replyTo;
-    private string m_expiration;
-    private string m_messageId;
-    private AmqpTimestamp m_timestamp;
-    private string m_type;
-    private string m_userId;
-    private string m_appId;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_deliveryMode_present = false;
-    private bool m_priority_present = false;
-    private bool m_correlationId_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_expiration_present = false;
-    private bool m_messageId_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_type_present = false;
-    private bool m_userId_present = false;
-    private bool m_appId_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte DeliveryMode {
-      get {
-        return m_deliveryMode;
-      }
-      set {
-        m_deliveryMode_present = true;
-        m_deliveryMode = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string CorrelationId {
-      get {
-        return m_correlationId;
-      }
-      set {
-        m_correlationId_present = true;
-        m_correlationId = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string Expiration {
-      get {
-        return m_expiration;
-      }
-      set {
-        m_expiration_present = true;
-        m_expiration = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string Type {
-      get {
-        return m_type;
-      }
-      set {
-        m_type_present = true;
-        m_type = value;
-      }
-    }
-    public override string UserId {
-      get {
-        return m_userId;
-      }
-      set {
-        m_userId_present = true;
-        m_userId = value;
-      }
-    }
-    public override string AppId {
-      get {
-        return m_appId;
-      }
-      set {
-        m_appId_present = true;
-        m_appId = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearDeliveryMode() { m_deliveryMode_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearCorrelationId() { m_correlationId_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearExpiration() { m_expiration_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearType() { m_type_present = false; }
-    public override void ClearUserId() { m_userId_present = false; }
-    public override void ClearAppId() { m_appId_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsDeliveryModePresent() { return m_deliveryMode_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsCorrelationIdPresent() { return m_correlationId_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsExpirationPresent() { return m_expiration_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsTypePresent() { return m_type_present; }
-    public override bool IsUserIdPresent() { return m_userId_present; }
-    public override bool IsAppIdPresent() { return m_appId_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public BasicProperties() {}
-    public override int ProtocolClassId { get { return 60; } }
-    public override string ProtocolClassName { get { return "basic"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_deliveryMode_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_correlationId_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_expiration_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_type_present = reader.ReadPresence();
-      m_userId_present = reader.ReadPresence();
-      m_appId_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_deliveryMode_present) { m_deliveryMode = reader.ReadOctet(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_correlationId_present) { m_correlationId = reader.ReadShortstr(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_expiration_present) { m_expiration = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_type_present) { m_type = reader.ReadShortstr(); }
-      if (m_userId_present) { m_userId = reader.ReadShortstr(); }
-      if (m_appId_present) { m_appId = reader.ReadShortstr(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_deliveryMode_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_correlationId_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_expiration_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_type_present);
-      writer.WritePresence(m_userId_present);
-      writer.WritePresence(m_appId_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_deliveryMode_present) { writer.WriteOctet(m_deliveryMode); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_correlationId_present) { writer.WriteShortstr(m_correlationId); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_expiration_present) { writer.WriteShortstr(m_expiration); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_type_present) { writer.WriteShortstr(m_type); }
-      if (m_userId_present) { writer.WriteShortstr(m_userId); }
-      if (m_appId_present) { writer.WriteShortstr(m_appId); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content-type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content-encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("delivery-mode="); sb.Append(m_deliveryMode_present ? m_deliveryMode.ToString() : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("correlation-id="); sb.Append(m_correlationId_present ? (m_correlationId == null ? "(null)" : m_correlationId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("reply-to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("expiration="); sb.Append(m_expiration_present ? (m_expiration == null ? "(null)" : m_expiration.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message-id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("type="); sb.Append(m_type_present ? (m_type == null ? "(null)" : m_type.ToString()) : "_"); sb.Append(", ");
-      sb.Append("user-id="); sb.Append(m_userId_present ? (m_userId == null ? "(null)" : m_userId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("app-id="); sb.Append(m_appId_present ? (m_appId == null ? "(null)" : m_appId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("cluster-id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "file"</summary>
-  public class FileProperties: RabbitMQ.Client.Impl.FileProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private string m_replyTo;
-    private string m_messageId;
-    private string m_filename;
-    private AmqpTimestamp m_timestamp;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_messageId_present = false;
-    private bool m_filename_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override string Filename {
-      get {
-        return m_filename;
-      }
-      set {
-        m_filename_present = true;
-        m_filename = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearFilename() { m_filename_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsFilenamePresent() { return m_filename_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public FileProperties() {}
-    public override int ProtocolClassId { get { return 70; } }
-    public override string ProtocolClassName { get { return "file"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_filename_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_filename_present) { m_filename = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_filename_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_filename_present) { writer.WriteShortstr(m_filename); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content-type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content-encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("reply-to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message-id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("filename="); sb.Append(m_filename_present ? (m_filename == null ? "(null)" : m_filename.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("cluster-id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "stream"</summary>
-  public class StreamProperties: RabbitMQ.Client.Impl.StreamProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private AmqpTimestamp m_timestamp;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_timestamp_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-
-    public StreamProperties() {}
-    public override int ProtocolClassId { get { return 80; } }
-    public override string ProtocolClassName { get { return "stream"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content-type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content-encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "tunnel"</summary>
-  public class TunnelProperties: RabbitMQ.Client.Impl.ContentHeaderBase {
-    private System.Collections.IDictionary m_headers;
-    private string m_proxyName;
-    private string m_dataName;
-    private byte m_durable;
-    private byte m_broadcast;
-
-    private bool m_headers_present = false;
-    private bool m_proxyName_present = false;
-    private bool m_dataName_present = false;
-    private bool m_durable_present = false;
-    private bool m_broadcast_present = false;
-
-    public System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public string ProxyName {
-      get {
-        return m_proxyName;
-      }
-      set {
-        m_proxyName_present = true;
-        m_proxyName = value;
-      }
-    }
-    public string DataName {
-      get {
-        return m_dataName;
-      }
-      set {
-        m_dataName_present = true;
-        m_dataName = value;
-      }
-    }
-    public byte Durable {
-      get {
-        return m_durable;
-      }
-      set {
-        m_durable_present = true;
-        m_durable = value;
-      }
-    }
-    public byte Broadcast {
-      get {
-        return m_broadcast;
-      }
-      set {
-        m_broadcast_present = true;
-        m_broadcast = value;
-      }
-    }
-
-    public void ClearHeaders() { m_headers_present = false; }
-    public void ClearProxyName() { m_proxyName_present = false; }
-    public void ClearDataName() { m_dataName_present = false; }
-    public void ClearDurable() { m_durable_present = false; }
-    public void ClearBroadcast() { m_broadcast_present = false; }
-
-    public bool IsHeadersPresent() { return m_headers_present; }
-    public bool IsProxyNamePresent() { return m_proxyName_present; }
-    public bool IsDataNamePresent() { return m_dataName_present; }
-    public bool IsDurablePresent() { return m_durable_present; }
-    public bool IsBroadcastPresent() { return m_broadcast_present; }
-
-    public TunnelProperties() {}
-    public override int ProtocolClassId { get { return 110; } }
-    public override string ProtocolClassName { get { return "tunnel"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_headers_present = reader.ReadPresence();
-      m_proxyName_present = reader.ReadPresence();
-      m_dataName_present = reader.ReadPresence();
-      m_durable_present = reader.ReadPresence();
-      m_broadcast_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_proxyName_present) { m_proxyName = reader.ReadShortstr(); }
-      if (m_dataName_present) { m_dataName = reader.ReadShortstr(); }
-      if (m_durable_present) { m_durable = reader.ReadOctet(); }
-      if (m_broadcast_present) { m_broadcast = reader.ReadOctet(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_proxyName_present);
-      writer.WritePresence(m_dataName_present);
-      writer.WritePresence(m_durable_present);
-      writer.WritePresence(m_broadcast_present);
-      writer.FinishPresence();
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_proxyName_present) { writer.WriteShortstr(m_proxyName); }
-      if (m_dataName_present) { writer.WriteShortstr(m_dataName); }
-      if (m_durable_present) { writer.WriteOctet(m_durable); }
-      if (m_broadcast_present) { writer.WriteOctet(m_broadcast); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("proxy-name="); sb.Append(m_proxyName_present ? (m_proxyName == null ? "(null)" : m_proxyName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("data-name="); sb.Append(m_dataName_present ? (m_dataName == null ? "(null)" : m_dataName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("durable="); sb.Append(m_durable_present ? m_durable.ToString() : "_"); sb.Append(", ");
-      sb.Append("broadcast="); sb.Append(m_broadcast_present ? m_broadcast.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-}
-namespace RabbitMQ.Client.Framing.Impl.v0_9 {
-  using RabbitMQ.Client.Framing.v0_9;
-  public enum ClassId {
-    Connection = 10,
-    Channel = 20,
-    Access = 30,
-    Exchange = 40,
-    Queue = 50,
-    Basic = 60,
-    File = 70,
-    Stream = 80,
-    Tx = 90,
-    Dtx = 100,
-    Tunnel = 110,
-    Message = 120,
-    Invalid = -1
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStart: RabbitMQ.Client.Impl.MethodBase, IConnectionStart {
-    public const int ClassId = 10;
-    public const int MethodId = 10;
-
-    public byte m_versionMajor;
-    public byte m_versionMinor;
-    public System.Collections.IDictionary m_serverProperties;
-    public byte[] m_mechanisms;
-    public byte[] m_locales;
-
-    byte IConnectionStart.VersionMajor { get { return m_versionMajor; } }
-    byte IConnectionStart.VersionMinor { get { return m_versionMinor; } }
-    System.Collections.IDictionary IConnectionStart.ServerProperties { get { return m_serverProperties; } }
-    byte[] IConnectionStart.Mechanisms { get { return m_mechanisms; } }
-    byte[] IConnectionStart.Locales { get { return m_locales; } }
-
-    public ConnectionStart() {}
-    public ConnectionStart(
-      byte initVersionMajor,
-      byte initVersionMinor,
-      System.Collections.IDictionary initServerProperties,
-      byte[] initMechanisms,
-      byte[] initLocales)
-    {
-      m_versionMajor = initVersionMajor;
-      m_versionMinor = initVersionMinor;
-      m_serverProperties = initServerProperties;
-      m_mechanisms = initMechanisms;
-      m_locales = initLocales;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "connection.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_versionMajor = reader.ReadOctet();
-      m_versionMinor = reader.ReadOctet();
-      m_serverProperties = reader.ReadTable();
-      m_mechanisms = reader.ReadLongstr();
-      m_locales = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteOctet(m_versionMajor);
-      writer.WriteOctet(m_versionMinor);
-      writer.WriteTable(m_serverProperties);
-      writer.WriteLongstr(m_mechanisms);
-      writer.WriteLongstr(m_locales);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_versionMajor); sb.Append(",");
-      sb.Append(m_versionMinor); sb.Append(",");
-      sb.Append(m_serverProperties); sb.Append(",");
-      sb.Append(m_mechanisms); sb.Append(",");
-      sb.Append(m_locales);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStartOk: RabbitMQ.Client.Impl.MethodBase, IConnectionStartOk {
-    public const int ClassId = 10;
-    public const int MethodId = 11;
-
-    public System.Collections.IDictionary m_clientProperties;
-    public string m_mechanism;
-    public byte[] m_response;
-    public string m_locale;
-
-    System.Collections.IDictionary IConnectionStartOk.ClientProperties { get { return m_clientProperties; } }
-    string IConnectionStartOk.Mechanism { get { return m_mechanism; } }
-    byte[] IConnectionStartOk.Response { get { return m_response; } }
-    string IConnectionStartOk.Locale { get { return m_locale; } }
-
-    public ConnectionStartOk() {}
-    public ConnectionStartOk(
-      System.Collections.IDictionary initClientProperties,
-      string initMechanism,
-      byte[] initResponse,
-      string initLocale)
-    {
-      m_clientProperties = initClientProperties;
-      m_mechanism = initMechanism;
-      m_response = initResponse;
-      m_locale = initLocale;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "connection.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clientProperties = reader.ReadTable();
-      m_mechanism = reader.ReadShortstr();
-      m_response = reader.ReadLongstr();
-      m_locale = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_clientProperties);
-      writer.WriteShortstr(m_mechanism);
-      writer.WriteLongstr(m_response);
-      writer.WriteShortstr(m_locale);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clientProperties); sb.Append(",");
-      sb.Append(m_mechanism); sb.Append(",");
-      sb.Append(m_response); sb.Append(",");
-      sb.Append(m_locale);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecure: RabbitMQ.Client.Impl.MethodBase, IConnectionSecure {
-    public const int ClassId = 10;
-    public const int MethodId = 20;
-
-    public byte[] m_challenge;
-
-    byte[] IConnectionSecure.Challenge { get { return m_challenge; } }
-
-    public ConnectionSecure() {}
-    public ConnectionSecure(
-      byte[] initChallenge)
-    {
-      m_challenge = initChallenge;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "connection.secure"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_challenge = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_challenge);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_challenge);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecureOk: RabbitMQ.Client.Impl.MethodBase, IConnectionSecureOk {
-    public const int ClassId = 10;
-    public const int MethodId = 21;
-
-    public byte[] m_response;
-
-    byte[] IConnectionSecureOk.Response { get { return m_response; } }
-
-    public ConnectionSecureOk() {}
-    public ConnectionSecureOk(
-      byte[] initResponse)
-    {
-      m_response = initResponse;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "connection.secure-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_response = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_response);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_response);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTune: RabbitMQ.Client.Impl.MethodBase, IConnectionTune {
-    public const int ClassId = 10;
-    public const int MethodId = 30;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTune.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTune.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTune.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTune() {}
-    public ConnectionTune(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "connection.tune"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTuneOk: RabbitMQ.Client.Impl.MethodBase, IConnectionTuneOk {
-    public const int ClassId = 10;
-    public const int MethodId = 31;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTuneOk.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTuneOk.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTuneOk.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTuneOk() {}
-    public ConnectionTuneOk(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "connection.tune-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpen: RabbitMQ.Client.Impl.MethodBase, IConnectionOpen {
-    public const int ClassId = 10;
-    public const int MethodId = 40;
-
-    public string m_virtualHost;
-    public string m_capabilities;
-    public bool m_insist;
-
-    string IConnectionOpen.VirtualHost { get { return m_virtualHost; } }
-    string IConnectionOpen.Capabilities { get { return m_capabilities; } }
-    bool IConnectionOpen.Insist { get { return m_insist; } }
-
-    public ConnectionOpen() {}
-    public ConnectionOpen(
-      string initVirtualHost,
-      string initCapabilities,
-      bool initInsist)
-    {
-      m_virtualHost = initVirtualHost;
-      m_capabilities = initCapabilities;
-      m_insist = initInsist;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "connection.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_virtualHost = reader.ReadShortstr();
-      m_capabilities = reader.ReadShortstr();
-      m_insist = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_virtualHost);
-      writer.WriteShortstr(m_capabilities);
-      writer.WriteBit(m_insist);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_virtualHost); sb.Append(",");
-      sb.Append(m_capabilities); sb.Append(",");
-      sb.Append(m_insist);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpenOk: RabbitMQ.Client.Impl.MethodBase, IConnectionOpenOk {
-    public const int ClassId = 10;
-    public const int MethodId = 41;
-
-    public string m_knownHosts;
-
-    string IConnectionOpenOk.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionOpenOk() {}
-    public ConnectionOpenOk(
-      string initKnownHosts)
-    {
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "connection.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionRedirect: RabbitMQ.Client.Impl.MethodBase, IConnectionRedirect {
-    public const int ClassId = 10;
-    public const int MethodId = 42;
-
-    public string m_host;
-    public string m_knownHosts;
-
-    string IConnectionRedirect.Host { get { return m_host; } }
-    string IConnectionRedirect.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionRedirect() {}
-    public ConnectionRedirect(
-      string initHost,
-      string initKnownHosts)
-    {
-      m_host = initHost;
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 42; } }
-    public override string ProtocolMethodName { get { return "connection.redirect"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_host = reader.ReadShortstr();
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_host);
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_host); sb.Append(",");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionClose: RabbitMQ.Client.Impl.MethodBase, IConnectionClose {
-    public const int ClassId = 10;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IConnectionClose.ReplyCode { get { return m_replyCode; } }
-    string IConnectionClose.ReplyText { get { return m_replyText; } }
-    ushort IConnectionClose.ClassId { get { return m_classId; } }
-    ushort IConnectionClose.MethodId { get { return m_methodId; } }
-
-    public ConnectionClose() {}
-    public ConnectionClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "connection.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionCloseOk: RabbitMQ.Client.Impl.MethodBase, IConnectionCloseOk {
-    public const int ClassId = 10;
-    public const int MethodId = 51;
-
-
-
-    public ConnectionCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 51; } }
-    public override string ProtocolMethodName { get { return "connection.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpen: RabbitMQ.Client.Impl.MethodBase, IChannelOpen {
-    public const int ClassId = 20;
-    public const int MethodId = 10;
-
-    public string m_outOfBand;
-
-    string IChannelOpen.OutOfBand { get { return m_outOfBand; } }
-
-    public ChannelOpen() {}
-    public ChannelOpen(
-      string initOutOfBand)
-    {
-      m_outOfBand = initOutOfBand;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "channel.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_outOfBand = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_outOfBand);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_outOfBand);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpenOk: RabbitMQ.Client.Impl.MethodBase, IChannelOpenOk {
-    public const int ClassId = 20;
-    public const int MethodId = 11;
-
-    public byte[] m_channelId;
-
-    byte[] IChannelOpenOk.ChannelId { get { return m_channelId; } }
-
-    public ChannelOpenOk() {}
-    public ChannelOpenOk(
-      byte[] initChannelId)
-    {
-      m_channelId = initChannelId;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "channel.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelId = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_channelId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlow: RabbitMQ.Client.Impl.MethodBase, IChannelFlow {
-    public const int ClassId = 20;
-    public const int MethodId = 20;
-
-    public bool m_active;
-
-    bool IChannelFlow.Active { get { return m_active; } }
-
-    public ChannelFlow() {}
-    public ChannelFlow(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "channel.flow"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlowOk: RabbitMQ.Client.Impl.MethodBase, IChannelFlowOk {
-    public const int ClassId = 20;
-    public const int MethodId = 21;
-
-    public bool m_active;
-
-    bool IChannelFlowOk.Active { get { return m_active; } }
-
-    public ChannelFlowOk() {}
-    public ChannelFlowOk(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "channel.flow-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelClose: RabbitMQ.Client.Impl.MethodBase, IChannelClose {
-    public const int ClassId = 20;
-    public const int MethodId = 40;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IChannelClose.ReplyCode { get { return m_replyCode; } }
-    string IChannelClose.ReplyText { get { return m_replyText; } }
-    ushort IChannelClose.ClassId { get { return m_classId; } }
-    ushort IChannelClose.MethodId { get { return m_methodId; } }
-
-    public ChannelClose() {}
-    public ChannelClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "channel.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelCloseOk: RabbitMQ.Client.Impl.MethodBase, IChannelCloseOk {
-    public const int ClassId = 20;
-    public const int MethodId = 41;
-
-
-
-    public ChannelCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "channel.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelResume: RabbitMQ.Client.Impl.MethodBase, IChannelResume {
-    public const int ClassId = 20;
-    public const int MethodId = 50;
-
-    public byte[] m_channelId;
-
-    byte[] IChannelResume.ChannelId { get { return m_channelId; } }
-
-    public ChannelResume() {}
-    public ChannelResume(
-      byte[] initChannelId)
-    {
-      m_channelId = initChannelId;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "channel.resume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelId = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_channelId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelPing: RabbitMQ.Client.Impl.MethodBase, IChannelPing {
-    public const int ClassId = 20;
-    public const int MethodId = 60;
-
-
-
-    public ChannelPing(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "channel.ping"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelPong: RabbitMQ.Client.Impl.MethodBase, IChannelPong {
-    public const int ClassId = 20;
-    public const int MethodId = 70;
-
-
-
-    public ChannelPong(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "channel.pong"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOk: RabbitMQ.Client.Impl.MethodBase, IChannelOk {
-    public const int ClassId = 20;
-    public const int MethodId = 80;
-
-
-
-    public ChannelOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "channel.ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequest: RabbitMQ.Client.Impl.MethodBase, IAccessRequest {
-    public const int ClassId = 30;
-    public const int MethodId = 10;
-
-    public string m_realm;
-    public bool m_exclusive;
-    public bool m_passive;
-    public bool m_active;
-    public bool m_write;
-    public bool m_read;
-
-    string IAccessRequest.Realm { get { return m_realm; } }
-    bool IAccessRequest.Exclusive { get { return m_exclusive; } }
-    bool IAccessRequest.Passive { get { return m_passive; } }
-    bool IAccessRequest.Active { get { return m_active; } }
-    bool IAccessRequest.Write { get { return m_write; } }
-    bool IAccessRequest.Read { get { return m_read; } }
-
-    public AccessRequest() {}
-    public AccessRequest(
-      string initRealm,
-      bool initExclusive,
-      bool initPassive,
-      bool initActive,
-      bool initWrite,
-      bool initRead)
-    {
-      m_realm = initRealm;
-      m_exclusive = initExclusive;
-      m_passive = initPassive;
-      m_active = initActive;
-      m_write = initWrite;
-      m_read = initRead;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "access.request"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_realm = reader.ReadShortstr();
-      m_exclusive = reader.ReadBit();
-      m_passive = reader.ReadBit();
-      m_active = reader.ReadBit();
-      m_write = reader.ReadBit();
-      m_read = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_realm);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_active);
-      writer.WriteBit(m_write);
-      writer.WriteBit(m_read);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_realm); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_active); sb.Append(",");
-      sb.Append(m_write); sb.Append(",");
-      sb.Append(m_read);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequestOk: RabbitMQ.Client.Impl.MethodBase, IAccessRequestOk {
-    public const int ClassId = 30;
-    public const int MethodId = 11;
-
-    public ushort m_ticket;
-
-    ushort IAccessRequestOk.Ticket { get { return m_ticket; } }
-
-    public AccessRequestOk() {}
-    public AccessRequestOk(
-      ushort initTicket)
-    {
-      m_ticket = initTicket;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "access.request-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclare: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclare {
-    public const int ClassId = 40;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_type;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_autoDelete;
-    public bool m_internal;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IExchangeDeclare.Ticket { get { return m_ticket; } }
-    string IExchangeDeclare.Exchange { get { return m_exchange; } }
-    string IExchangeDeclare.Type { get { return m_type; } }
-    bool IExchangeDeclare.Passive { get { return m_passive; } }
-    bool IExchangeDeclare.Durable { get { return m_durable; } }
-    bool IExchangeDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IExchangeDeclare.Internal { get { return m_internal; } }
-    bool IExchangeDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IExchangeDeclare.Arguments { get { return m_arguments; } }
-
-    public ExchangeDeclare() {}
-    public ExchangeDeclare(
-      ushort initTicket,
-      string initExchange,
-      string initType,
-      bool initPassive,
-      bool initDurable,
-      bool initAutoDelete,
-      bool initInternal,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_type = initType;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_autoDelete = initAutoDelete;
-      m_internal = initInternal;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "exchange.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_type = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_internal = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_type);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_internal);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_type); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_internal); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclareOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclareOk {
-    public const int ClassId = 40;
-    public const int MethodId = 11;
-
-
-
-    public ExchangeDeclareOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "exchange.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDelete: RabbitMQ.Client.Impl.MethodBase, IExchangeDelete {
-    public const int ClassId = 40;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public bool m_ifUnused;
-    public bool m_nowait;
-
-    ushort IExchangeDelete.Ticket { get { return m_ticket; } }
-    string IExchangeDelete.Exchange { get { return m_exchange; } }
-    bool IExchangeDelete.IfUnused { get { return m_ifUnused; } }
-    bool IExchangeDelete.Nowait { get { return m_nowait; } }
-
-    public ExchangeDelete() {}
-    public ExchangeDelete(
-      ushort initTicket,
-      string initExchange,
-      bool initIfUnused,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_ifUnused = initIfUnused;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "exchange.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeleteOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeleteOk {
-    public const int ClassId = 40;
-    public const int MethodId = 21;
-
-
-
-    public ExchangeDeleteOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "exchange.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclare: RabbitMQ.Client.Impl.MethodBase, IQueueDeclare {
-    public const int ClassId = 50;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_exclusive;
-    public bool m_autoDelete;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueDeclare.Ticket { get { return m_ticket; } }
-    string IQueueDeclare.Queue { get { return m_queue; } }
-    bool IQueueDeclare.Passive { get { return m_passive; } }
-    bool IQueueDeclare.Durable { get { return m_durable; } }
-    bool IQueueDeclare.Exclusive { get { return m_exclusive; } }
-    bool IQueueDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IQueueDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueDeclare.Arguments { get { return m_arguments; } }
-
-    public QueueDeclare() {}
-    public QueueDeclare(
-      ushort initTicket,
-      string initQueue,
-      bool initPassive,
-      bool initDurable,
-      bool initExclusive,
-      bool initAutoDelete,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_exclusive = initExclusive;
-      m_autoDelete = initAutoDelete;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "queue.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclareOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeclareOk {
-    public const int ClassId = 50;
-    public const int MethodId = 11;
-
-    public string m_queue;
-    public uint m_messageCount;
-    public uint m_consumerCount;
-
-    string IQueueDeclareOk.Queue { get { return m_queue; } }
-    uint IQueueDeclareOk.MessageCount { get { return m_messageCount; } }
-    uint IQueueDeclareOk.ConsumerCount { get { return m_consumerCount; } }
-
-    public QueueDeclareOk() {}
-    public QueueDeclareOk(
-      string initQueue,
-      uint initMessageCount,
-      uint initConsumerCount)
-    {
-      m_queue = initQueue;
-      m_messageCount = initMessageCount;
-      m_consumerCount = initConsumerCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "queue.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_queue = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-      m_consumerCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_queue);
-      writer.WriteLong(m_messageCount);
-      writer.WriteLong(m_consumerCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_messageCount); sb.Append(",");
-      sb.Append(m_consumerCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBind: RabbitMQ.Client.Impl.MethodBase, IQueueBind {
-    public const int ClassId = 50;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueBind.Ticket { get { return m_ticket; } }
-    string IQueueBind.Queue { get { return m_queue; } }
-    string IQueueBind.Exchange { get { return m_exchange; } }
-    string IQueueBind.RoutingKey { get { return m_routingKey; } }
-    bool IQueueBind.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueBind.Arguments { get { return m_arguments; } }
-
-    public QueueBind() {}
-    public QueueBind(
-      ushort initTicket,
-      string initQueue,
-      string initExchange,
-      string initRoutingKey,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "queue.bind"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBindOk: RabbitMQ.Client.Impl.MethodBase, IQueueBindOk {
-    public const int ClassId = 50;
-    public const int MethodId = 21;
-
-
-
-    public QueueBindOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "queue.bind-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueUnbind: RabbitMQ.Client.Impl.MethodBase, IQueueUnbind {
-    public const int ClassId = 50;
-    public const int MethodId = 50;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_exchange;
-    public string m_routingKey;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueUnbind.Ticket { get { return m_ticket; } }
-    string IQueueUnbind.Queue { get { return m_queue; } }
-    string IQueueUnbind.Exchange { get { return m_exchange; } }
-    string IQueueUnbind.RoutingKey { get { return m_routingKey; } }
-    System.Collections.IDictionary IQueueUnbind.Arguments { get { return m_arguments; } }
-
-    public QueueUnbind() {}
-    public QueueUnbind(
-      ushort initTicket,
-      string initQueue,
-      string initExchange,
-      string initRoutingKey,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "queue.unbind"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueUnbindOk: RabbitMQ.Client.Impl.MethodBase, IQueueUnbindOk {
-    public const int ClassId = 50;
-    public const int MethodId = 51;
-
-
-
-    public QueueUnbindOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 51; } }
-    public override string ProtocolMethodName { get { return "queue.unbind-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurge: RabbitMQ.Client.Impl.MethodBase, IQueuePurge {
-    public const int ClassId = 50;
-    public const int MethodId = 30;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_nowait;
-
-    ushort IQueuePurge.Ticket { get { return m_ticket; } }
-    string IQueuePurge.Queue { get { return m_queue; } }
-    bool IQueuePurge.Nowait { get { return m_nowait; } }
-
-    public QueuePurge() {}
-    public QueuePurge(
-      ushort initTicket,
-      string initQueue,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "queue.purge"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurgeOk: RabbitMQ.Client.Impl.MethodBase, IQueuePurgeOk {
-    public const int ClassId = 50;
-    public const int MethodId = 31;
-
-    public uint m_messageCount;
-
-    uint IQueuePurgeOk.MessageCount { get { return m_messageCount; } }
-
-    public QueuePurgeOk() {}
-    public QueuePurgeOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "queue.purge-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDelete: RabbitMQ.Client.Impl.MethodBase, IQueueDelete {
-    public const int ClassId = 50;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_ifUnused;
-    public bool m_ifEmpty;
-    public bool m_nowait;
-
-    ushort IQueueDelete.Ticket { get { return m_ticket; } }
-    string IQueueDelete.Queue { get { return m_queue; } }
-    bool IQueueDelete.IfUnused { get { return m_ifUnused; } }
-    bool IQueueDelete.IfEmpty { get { return m_ifEmpty; } }
-    bool IQueueDelete.Nowait { get { return m_nowait; } }
-
-    public QueueDelete() {}
-    public QueueDelete(
-      ushort initTicket,
-      string initQueue,
-      bool initIfUnused,
-      bool initIfEmpty,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_ifUnused = initIfUnused;
-      m_ifEmpty = initIfEmpty;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "queue.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_ifEmpty = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_ifEmpty);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_ifEmpty); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeleteOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeleteOk {
-    public const int ClassId = 50;
-    public const int MethodId = 41;
-
-    public uint m_messageCount;
-
-    uint IQueueDeleteOk.MessageCount { get { return m_messageCount; } }
-
-    public QueueDeleteOk() {}
-    public QueueDeleteOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "queue.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQos: RabbitMQ.Client.Impl.MethodBase, IBasicQos {
-    public const int ClassId = 60;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IBasicQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IBasicQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IBasicQos.Global { get { return m_global; } }
-
-    public BasicQos() {}
-    public BasicQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "basic.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQosOk: RabbitMQ.Client.Impl.MethodBase, IBasicQosOk {
-    public const int ClassId = 60;
-    public const int MethodId = 11;
-
-
-
-    public BasicQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "basic.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsume: RabbitMQ.Client.Impl.MethodBase, IBasicConsume {
-    public const int ClassId = 60;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_filter;
-
-    ushort IBasicConsume.Ticket { get { return m_ticket; } }
-    string IBasicConsume.Queue { get { return m_queue; } }
-    string IBasicConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicConsume.NoLocal { get { return m_noLocal; } }
-    bool IBasicConsume.NoAck { get { return m_noAck; } }
-    bool IBasicConsume.Exclusive { get { return m_exclusive; } }
-    bool IBasicConsume.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IBasicConsume.Filter { get { return m_filter; } }
-
-    public BasicConsume() {}
-    public BasicConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait,
-      System.Collections.IDictionary initFilter)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-      m_filter = initFilter;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "basic.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_filter = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_filter);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_filter);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsumeOk: RabbitMQ.Client.Impl.MethodBase, IBasicConsumeOk {
-    public const int ClassId = 60;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IBasicConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicConsumeOk() {}
-    public BasicConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "basic.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancel: RabbitMQ.Client.Impl.MethodBase, IBasicCancel {
-    public const int ClassId = 60;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IBasicCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicCancel.Nowait { get { return m_nowait; } }
-
-    public BasicCancel() {}
-    public BasicCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "basic.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancelOk: RabbitMQ.Client.Impl.MethodBase, IBasicCancelOk {
-    public const int ClassId = 60;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IBasicCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicCancelOk() {}
-    public BasicCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "basic.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicPublish: RabbitMQ.Client.Impl.MethodBase, IBasicPublish {
-    public const int ClassId = 60;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IBasicPublish.Ticket { get { return m_ticket; } }
-    string IBasicPublish.Exchange { get { return m_exchange; } }
-    string IBasicPublish.RoutingKey { get { return m_routingKey; } }
-    bool IBasicPublish.Mandatory { get { return m_mandatory; } }
-    bool IBasicPublish.Immediate { get { return m_immediate; } }
-
-    public BasicPublish() {}
-    public BasicPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "basic.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReturn: RabbitMQ.Client.Impl.MethodBase, IBasicReturn {
-    public const int ClassId = 60;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IBasicReturn.ReplyCode { get { return m_replyCode; } }
-    string IBasicReturn.ReplyText { get { return m_replyText; } }
-    string IBasicReturn.Exchange { get { return m_exchange; } }
-    string IBasicReturn.RoutingKey { get { return m_routingKey; } }
-
-    public BasicReturn() {}
-    public BasicReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "basic.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicDeliver: RabbitMQ.Client.Impl.MethodBase, IBasicDeliver {
-    public const int ClassId = 60;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-
-    string IBasicDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IBasicDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicDeliver.Redelivered { get { return m_redelivered; } }
-    string IBasicDeliver.Exchange { get { return m_exchange; } }
-    string IBasicDeliver.RoutingKey { get { return m_routingKey; } }
-
-    public BasicDeliver() {}
-    public BasicDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "basic.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGet: RabbitMQ.Client.Impl.MethodBase, IBasicGet {
-    public const int ClassId = 60;
-    public const int MethodId = 70;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_noAck;
-
-    ushort IBasicGet.Ticket { get { return m_ticket; } }
-    string IBasicGet.Queue { get { return m_queue; } }
-    bool IBasicGet.NoAck { get { return m_noAck; } }
-
-    public BasicGet() {}
-    public BasicGet(
-      ushort initTicket,
-      string initQueue,
-      bool initNoAck)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_noAck = initNoAck;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "basic.get"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_noAck = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_noAck);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_noAck);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetOk: RabbitMQ.Client.Impl.MethodBase, IBasicGetOk {
-    public const int ClassId = 60;
-    public const int MethodId = 71;
-
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public uint m_messageCount;
-
-    ulong IBasicGetOk.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicGetOk.Redelivered { get { return m_redelivered; } }
-    string IBasicGetOk.Exchange { get { return m_exchange; } }
-    string IBasicGetOk.RoutingKey { get { return m_routingKey; } }
-    uint IBasicGetOk.MessageCount { get { return m_messageCount; } }
-
-    public BasicGetOk() {}
-    public BasicGetOk(
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      uint initMessageCount)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 71; } }
-    public override string ProtocolMethodName { get { return "basic.get-ok"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetEmpty: RabbitMQ.Client.Impl.MethodBase, IBasicGetEmpty {
-    public const int ClassId = 60;
-    public const int MethodId = 72;
-
-    public string m_clusterId;
-
-    string IBasicGetEmpty.ClusterId { get { return m_clusterId; } }
-
-    public BasicGetEmpty() {}
-    public BasicGetEmpty(
-      string initClusterId)
-    {
-      m_clusterId = initClusterId;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 72; } }
-    public override string ProtocolMethodName { get { return "basic.get-empty"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clusterId = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_clusterId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clusterId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicAck: RabbitMQ.Client.Impl.MethodBase, IBasicAck {
-    public const int ClassId = 60;
-    public const int MethodId = 80;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IBasicAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicAck.Multiple { get { return m_multiple; } }
-
-    public BasicAck() {}
-    public BasicAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "basic.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReject: RabbitMQ.Client.Impl.MethodBase, IBasicReject {
-    public const int ClassId = 60;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IBasicReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicReject.Requeue { get { return m_requeue; } }
-
-    public BasicReject() {}
-    public BasicReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "basic.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicRecover: RabbitMQ.Client.Impl.MethodBase, IBasicRecover {
-    public const int ClassId = 60;
-    public const int MethodId = 100;
-
-    public bool m_requeue;
-
-    bool IBasicRecover.Requeue { get { return m_requeue; } }
-
-    public BasicRecover() {}
-    public BasicRecover(
-      bool initRequeue)
-    {
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "basic.recover"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQos: RabbitMQ.Client.Impl.MethodBase, IFileQos {
-    public const int ClassId = 70;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IFileQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IFileQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IFileQos.Global { get { return m_global; } }
-
-    public FileQos() {}
-    public FileQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "file.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQosOk: RabbitMQ.Client.Impl.MethodBase, IFileQosOk {
-    public const int ClassId = 70;
-    public const int MethodId = 11;
-
-
-
-    public FileQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "file.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsume: RabbitMQ.Client.Impl.MethodBase, IFileConsume {
-    public const int ClassId = 70;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_filter;
-
-    ushort IFileConsume.Ticket { get { return m_ticket; } }
-    string IFileConsume.Queue { get { return m_queue; } }
-    string IFileConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileConsume.NoLocal { get { return m_noLocal; } }
-    bool IFileConsume.NoAck { get { return m_noAck; } }
-    bool IFileConsume.Exclusive { get { return m_exclusive; } }
-    bool IFileConsume.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IFileConsume.Filter { get { return m_filter; } }
-
-    public FileConsume() {}
-    public FileConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait,
-      System.Collections.IDictionary initFilter)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-      m_filter = initFilter;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "file.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_filter = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_filter);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_filter);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsumeOk: RabbitMQ.Client.Impl.MethodBase, IFileConsumeOk {
-    public const int ClassId = 70;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IFileConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileConsumeOk() {}
-    public FileConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "file.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancel: RabbitMQ.Client.Impl.MethodBase, IFileCancel {
-    public const int ClassId = 70;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IFileCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileCancel.Nowait { get { return m_nowait; } }
-
-    public FileCancel() {}
-    public FileCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "file.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancelOk: RabbitMQ.Client.Impl.MethodBase, IFileCancelOk {
-    public const int ClassId = 70;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IFileCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileCancelOk() {}
-    public FileCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "file.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpen: RabbitMQ.Client.Impl.MethodBase, IFileOpen {
-    public const int ClassId = 70;
-    public const int MethodId = 40;
-
-    public string m_identifier;
-    public ulong m_contentSize;
-
-    string IFileOpen.Identifier { get { return m_identifier; } }
-    ulong IFileOpen.ContentSize { get { return m_contentSize; } }
-
-    public FileOpen() {}
-    public FileOpen(
-      string initIdentifier,
-      ulong initContentSize)
-    {
-      m_identifier = initIdentifier;
-      m_contentSize = initContentSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "file.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_identifier = reader.ReadShortstr();
-      m_contentSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_identifier);
-      writer.WriteLonglong(m_contentSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_identifier); sb.Append(",");
-      sb.Append(m_contentSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpenOk: RabbitMQ.Client.Impl.MethodBase, IFileOpenOk {
-    public const int ClassId = 70;
-    public const int MethodId = 41;
-
-    public ulong m_stagedSize;
-
-    ulong IFileOpenOk.StagedSize { get { return m_stagedSize; } }
-
-    public FileOpenOk() {}
-    public FileOpenOk(
-      ulong initStagedSize)
-    {
-      m_stagedSize = initStagedSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "file.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_stagedSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_stagedSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_stagedSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileStage: RabbitMQ.Client.Impl.MethodBase, IFileStage {
-    public const int ClassId = 70;
-    public const int MethodId = 50;
-
-
-
-    public FileStage(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "file.stage"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FilePublish: RabbitMQ.Client.Impl.MethodBase, IFilePublish {
-    public const int ClassId = 70;
-    public const int MethodId = 60;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-    public string m_identifier;
-
-    ushort IFilePublish.Ticket { get { return m_ticket; } }
-    string IFilePublish.Exchange { get { return m_exchange; } }
-    string IFilePublish.RoutingKey { get { return m_routingKey; } }
-    bool IFilePublish.Mandatory { get { return m_mandatory; } }
-    bool IFilePublish.Immediate { get { return m_immediate; } }
-    string IFilePublish.Identifier { get { return m_identifier; } }
-
-    public FilePublish() {}
-    public FilePublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate,
-      string initIdentifier)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "file.publish"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReturn: RabbitMQ.Client.Impl.MethodBase, IFileReturn {
-    public const int ClassId = 70;
-    public const int MethodId = 70;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IFileReturn.ReplyCode { get { return m_replyCode; } }
-    string IFileReturn.ReplyText { get { return m_replyText; } }
-    string IFileReturn.Exchange { get { return m_exchange; } }
-    string IFileReturn.RoutingKey { get { return m_routingKey; } }
-
-    public FileReturn() {}
-    public FileReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "file.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileDeliver: RabbitMQ.Client.Impl.MethodBase, IFileDeliver {
-    public const int ClassId = 70;
-    public const int MethodId = 80;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public string m_identifier;
-
-    string IFileDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IFileDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileDeliver.Redelivered { get { return m_redelivered; } }
-    string IFileDeliver.Exchange { get { return m_exchange; } }
-    string IFileDeliver.RoutingKey { get { return m_routingKey; } }
-    string IFileDeliver.Identifier { get { return m_identifier; } }
-
-    public FileDeliver() {}
-    public FileDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      string initIdentifier)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "file.deliver"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileAck: RabbitMQ.Client.Impl.MethodBase, IFileAck {
-    public const int ClassId = 70;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IFileAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileAck.Multiple { get { return m_multiple; } }
-
-    public FileAck() {}
-    public FileAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "file.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReject: RabbitMQ.Client.Impl.MethodBase, IFileReject {
-    public const int ClassId = 70;
-    public const int MethodId = 100;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IFileReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileReject.Requeue { get { return m_requeue; } }
-
-    public FileReject() {}
-    public FileReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "file.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQos: RabbitMQ.Client.Impl.MethodBase, IStreamQos {
-    public const int ClassId = 80;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public uint m_consumeRate;
-    public bool m_global;
-
-    uint IStreamQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IStreamQos.PrefetchCount { get { return m_prefetchCount; } }
-    uint IStreamQos.ConsumeRate { get { return m_consumeRate; } }
-    bool IStreamQos.Global { get { return m_global; } }
-
-    public StreamQos() {}
-    public StreamQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      uint initConsumeRate,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_consumeRate = initConsumeRate;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "stream.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_consumeRate = reader.ReadLong();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteLong(m_consumeRate);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_consumeRate); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQosOk: RabbitMQ.Client.Impl.MethodBase, IStreamQosOk {
-    public const int ClassId = 80;
-    public const int MethodId = 11;
-
-
-
-    public StreamQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "stream.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsume: RabbitMQ.Client.Impl.MethodBase, IStreamConsume {
-    public const int ClassId = 80;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_exclusive;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_filter;
-
-    ushort IStreamConsume.Ticket { get { return m_ticket; } }
-    string IStreamConsume.Queue { get { return m_queue; } }
-    string IStreamConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamConsume.NoLocal { get { return m_noLocal; } }
-    bool IStreamConsume.Exclusive { get { return m_exclusive; } }
-    bool IStreamConsume.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IStreamConsume.Filter { get { return m_filter; } }
-
-    public StreamConsume() {}
-    public StreamConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initExclusive,
-      bool initNowait,
-      System.Collections.IDictionary initFilter)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-      m_filter = initFilter;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "stream.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_filter = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_filter);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_filter);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsumeOk: RabbitMQ.Client.Impl.MethodBase, IStreamConsumeOk {
-    public const int ClassId = 80;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IStreamConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamConsumeOk() {}
-    public StreamConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "stream.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancel: RabbitMQ.Client.Impl.MethodBase, IStreamCancel {
-    public const int ClassId = 80;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IStreamCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamCancel.Nowait { get { return m_nowait; } }
-
-    public StreamCancel() {}
-    public StreamCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "stream.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancelOk: RabbitMQ.Client.Impl.MethodBase, IStreamCancelOk {
-    public const int ClassId = 80;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IStreamCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamCancelOk() {}
-    public StreamCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "stream.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamPublish: RabbitMQ.Client.Impl.MethodBase, IStreamPublish {
-    public const int ClassId = 80;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IStreamPublish.Ticket { get { return m_ticket; } }
-    string IStreamPublish.Exchange { get { return m_exchange; } }
-    string IStreamPublish.RoutingKey { get { return m_routingKey; } }
-    bool IStreamPublish.Mandatory { get { return m_mandatory; } }
-    bool IStreamPublish.Immediate { get { return m_immediate; } }
-
-    public StreamPublish() {}
-    public StreamPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "stream.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamReturn: RabbitMQ.Client.Impl.MethodBase, IStreamReturn {
-    public const int ClassId = 80;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IStreamReturn.ReplyCode { get { return m_replyCode; } }
-    string IStreamReturn.ReplyText { get { return m_replyText; } }
-    string IStreamReturn.Exchange { get { return m_exchange; } }
-    string IStreamReturn.RoutingKey { get { return m_routingKey; } }
-
-    public StreamReturn() {}
-    public StreamReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "stream.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamDeliver: RabbitMQ.Client.Impl.MethodBase, IStreamDeliver {
-    public const int ClassId = 80;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public string m_exchange;
-    public string m_queue;
-
-    string IStreamDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IStreamDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    string IStreamDeliver.Exchange { get { return m_exchange; } }
-    string IStreamDeliver.Queue { get { return m_queue; } }
-
-    public StreamDeliver() {}
-    public StreamDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      string initExchange,
-      string initQueue)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_exchange = initExchange;
-      m_queue = initQueue;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "stream.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_exchange = reader.ReadShortstr();
-      m_queue = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_queue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_queue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelect: RabbitMQ.Client.Impl.MethodBase, ITxSelect {
-    public const int ClassId = 90;
-    public const int MethodId = 10;
-
-
-
-    public TxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelectOk: RabbitMQ.Client.Impl.MethodBase, ITxSelectOk {
-    public const int ClassId = 90;
-    public const int MethodId = 11;
-
-
-
-    public TxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "tx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommit: RabbitMQ.Client.Impl.MethodBase, ITxCommit {
-    public const int ClassId = 90;
-    public const int MethodId = 20;
-
-
-
-    public TxCommit(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "tx.commit"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommitOk: RabbitMQ.Client.Impl.MethodBase, ITxCommitOk {
-    public const int ClassId = 90;
-    public const int MethodId = 21;
-
-
-
-    public TxCommitOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "tx.commit-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollback: RabbitMQ.Client.Impl.MethodBase, ITxRollback {
-    public const int ClassId = 90;
-    public const int MethodId = 30;
-
-
-
-    public TxRollback(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "tx.rollback"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollbackOk: RabbitMQ.Client.Impl.MethodBase, ITxRollbackOk {
-    public const int ClassId = 90;
-    public const int MethodId = 31;
-
-
-
-    public TxRollbackOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "tx.rollback-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelect: RabbitMQ.Client.Impl.MethodBase, IDtxSelect {
-    public const int ClassId = 100;
-    public const int MethodId = 10;
-
-
-
-    public DtxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "dtx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelectOk: RabbitMQ.Client.Impl.MethodBase, IDtxSelectOk {
-    public const int ClassId = 100;
-    public const int MethodId = 11;
-
-
-
-    public DtxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "dtx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStart: RabbitMQ.Client.Impl.MethodBase, IDtxStart {
-    public const int ClassId = 100;
-    public const int MethodId = 20;
-
-    public string m_dtxIdentifier;
-
-    string IDtxStart.DtxIdentifier { get { return m_dtxIdentifier; } }
-
-    public DtxStart() {}
-    public DtxStart(
-      string initDtxIdentifier)
-    {
-      m_dtxIdentifier = initDtxIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "dtx.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_dtxIdentifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_dtxIdentifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_dtxIdentifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStartOk: RabbitMQ.Client.Impl.MethodBase, IDtxStartOk {
-    public const int ClassId = 100;
-    public const int MethodId = 21;
-
-
-
-    public DtxStartOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "dtx.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TunnelRequest: RabbitMQ.Client.Impl.MethodBase, ITunnelRequest {
-    public const int ClassId = 110;
-    public const int MethodId = 10;
-
-    public System.Collections.IDictionary m_metaData;
-
-    System.Collections.IDictionary ITunnelRequest.MetaData { get { return m_metaData; } }
-
-    public TunnelRequest() {}
-    public TunnelRequest(
-      System.Collections.IDictionary initMetaData)
-    {
-      m_metaData = initMetaData;
-    }
-
-    public override int ProtocolClassId { get { return 110; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tunnel.request"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_metaData = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_metaData);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_metaData);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageTransfer: RabbitMQ.Client.Impl.MethodBase, IMessageTransfer {
-    public const int ClassId = 120;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_destination;
-    public bool m_redelivered;
-    public bool m_immediate;
-    public ulong m_ttl;
-    public byte m_priority;
-    public AmqpTimestamp m_timestamp;
-    public byte m_deliveryMode;
-    public AmqpTimestamp m_expiration;
-    public string m_exchange;
-    public string m_routingKey;
-    public string m_messageId;
-    public string m_correlationId;
-    public string m_replyTo;
-    public string m_contentType;
-    public string m_contentEncoding;
-    public string m_userId;
-    public string m_appId;
-    public string m_transactionId;
-    public byte[] m_securityToken;
-    public System.Collections.IDictionary m_applicationHeaders;
-    public byte[] m_body;
-
-    ushort IMessageTransfer.Ticket { get { return m_ticket; } }
-    string IMessageTransfer.Destination { get { return m_destination; } }
-    bool IMessageTransfer.Redelivered { get { return m_redelivered; } }
-    bool IMessageTransfer.Immediate { get { return m_immediate; } }
-    ulong IMessageTransfer.Ttl { get { return m_ttl; } }
-    byte IMessageTransfer.Priority { get { return m_priority; } }
-    AmqpTimestamp IMessageTransfer.Timestamp { get { return m_timestamp; } }
-    byte IMessageTransfer.DeliveryMode { get { return m_deliveryMode; } }
-    AmqpTimestamp IMessageTransfer.Expiration { get { return m_expiration; } }
-    string IMessageTransfer.Exchange { get { return m_exchange; } }
-    string IMessageTransfer.RoutingKey { get { return m_routingKey; } }
-    string IMessageTransfer.MessageId { get { return m_messageId; } }
-    string IMessageTransfer.CorrelationId { get { return m_correlationId; } }
-    string IMessageTransfer.ReplyTo { get { return m_replyTo; } }
-    string IMessageTransfer.ContentType { get { return m_contentType; } }
-    string IMessageTransfer.ContentEncoding { get { return m_contentEncoding; } }
-    string IMessageTransfer.UserId { get { return m_userId; } }
-    string IMessageTransfer.AppId { get { return m_appId; } }
-    string IMessageTransfer.TransactionId { get { return m_transactionId; } }
-    byte[] IMessageTransfer.SecurityToken { get { return m_securityToken; } }
-    System.Collections.IDictionary IMessageTransfer.ApplicationHeaders { get { return m_applicationHeaders; } }
-    byte[] IMessageTransfer.Body { get { return m_body; } }
-
-    public MessageTransfer() {}
-    public MessageTransfer(
-      ushort initTicket,
-      string initDestination,
-      bool initRedelivered,
-      bool initImmediate,
-      ulong initTtl,
-      byte initPriority,
-      AmqpTimestamp initTimestamp,
-      byte initDeliveryMode,
-      AmqpTimestamp initExpiration,
-      string initExchange,
-      string initRoutingKey,
-      string initMessageId,
-      string initCorrelationId,
-      string initReplyTo,
-      string initContentType,
-      string initContentEncoding,
-      string initUserId,
-      string initAppId,
-      string initTransactionId,
-      byte[] initSecurityToken,
-      System.Collections.IDictionary initApplicationHeaders,
-      byte[] initBody)
-    {
-      m_ticket = initTicket;
-      m_destination = initDestination;
-      m_redelivered = initRedelivered;
-      m_immediate = initImmediate;
-      m_ttl = initTtl;
-      m_priority = initPriority;
-      m_timestamp = initTimestamp;
-      m_deliveryMode = initDeliveryMode;
-      m_expiration = initExpiration;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_messageId = initMessageId;
-      m_correlationId = initCorrelationId;
-      m_replyTo = initReplyTo;
-      m_contentType = initContentType;
-      m_contentEncoding = initContentEncoding;
-      m_userId = initUserId;
-      m_appId = initAppId;
-      m_transactionId = initTransactionId;
-      m_securityToken = initSecurityToken;
-      m_applicationHeaders = initApplicationHeaders;
-      m_body = initBody;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "message.transfer"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_destination = reader.ReadShortstr();
-      m_redelivered = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-      m_ttl = reader.ReadLonglong();
-      m_priority = reader.ReadOctet();
-      m_timestamp = reader.ReadTimestamp();
-      m_deliveryMode = reader.ReadOctet();
-      m_expiration = reader.ReadTimestamp();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_messageId = reader.ReadShortstr();
-      m_correlationId = reader.ReadShortstr();
-      m_replyTo = reader.ReadShortstr();
-      m_contentType = reader.ReadShortstr();
-      m_contentEncoding = reader.ReadShortstr();
-      m_userId = reader.ReadShortstr();
-      m_appId = reader.ReadShortstr();
-      m_transactionId = reader.ReadShortstr();
-      m_securityToken = reader.ReadLongstr();
-      m_applicationHeaders = reader.ReadTable();
-      m_body = reader.ReadContent();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_destination);
-      writer.WriteBit(m_redelivered);
-      writer.WriteBit(m_immediate);
-      writer.WriteLonglong(m_ttl);
-      writer.WriteOctet(m_priority);
-      writer.WriteTimestamp(m_timestamp);
-      writer.WriteOctet(m_deliveryMode);
-      writer.WriteTimestamp(m_expiration);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteShortstr(m_messageId);
-      writer.WriteShortstr(m_correlationId);
-      writer.WriteShortstr(m_replyTo);
-      writer.WriteShortstr(m_contentType);
-      writer.WriteShortstr(m_contentEncoding);
-      writer.WriteShortstr(m_userId);
-      writer.WriteShortstr(m_appId);
-      writer.WriteShortstr(m_transactionId);
-      writer.WriteLongstr(m_securityToken);
-      writer.WriteTable(m_applicationHeaders);
-      writer.WriteContent(m_body);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_destination); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_immediate); sb.Append(",");
-      sb.Append(m_ttl); sb.Append(",");
-      sb.Append(m_priority); sb.Append(",");
-      sb.Append(m_timestamp); sb.Append(",");
-      sb.Append(m_deliveryMode); sb.Append(",");
-      sb.Append(m_expiration); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_messageId); sb.Append(",");
-      sb.Append(m_correlationId); sb.Append(",");
-      sb.Append(m_replyTo); sb.Append(",");
-      sb.Append(m_contentType); sb.Append(",");
-      sb.Append(m_contentEncoding); sb.Append(",");
-      sb.Append(m_userId); sb.Append(",");
-      sb.Append(m_appId); sb.Append(",");
-      sb.Append(m_transactionId); sb.Append(",");
-      sb.Append(m_securityToken); sb.Append(",");
-      sb.Append(m_applicationHeaders); sb.Append(",");
-      sb.Append(m_body);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageConsume: RabbitMQ.Client.Impl.MethodBase, IMessageConsume {
-    public const int ClassId = 120;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_destination;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public System.Collections.IDictionary m_filter;
-
-    ushort IMessageConsume.Ticket { get { return m_ticket; } }
-    string IMessageConsume.Queue { get { return m_queue; } }
-    string IMessageConsume.Destination { get { return m_destination; } }
-    bool IMessageConsume.NoLocal { get { return m_noLocal; } }
-    bool IMessageConsume.NoAck { get { return m_noAck; } }
-    bool IMessageConsume.Exclusive { get { return m_exclusive; } }
-    System.Collections.IDictionary IMessageConsume.Filter { get { return m_filter; } }
-
-    public MessageConsume() {}
-    public MessageConsume(
-      ushort initTicket,
-      string initQueue,
-      string initDestination,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      System.Collections.IDictionary initFilter)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_destination = initDestination;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_filter = initFilter;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "message.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_destination = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_filter = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_destination);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteTable(m_filter);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_destination); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_filter);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageCancel: RabbitMQ.Client.Impl.MethodBase, IMessageCancel {
-    public const int ClassId = 120;
-    public const int MethodId = 30;
-
-    public string m_destination;
-
-    string IMessageCancel.Destination { get { return m_destination; } }
-
-    public MessageCancel() {}
-    public MessageCancel(
-      string initDestination)
-    {
-      m_destination = initDestination;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "message.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_destination = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_destination);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_destination);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageGet: RabbitMQ.Client.Impl.MethodBase, IMessageGet {
-    public const int ClassId = 120;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_destination;
-    public bool m_noAck;
-
-    ushort IMessageGet.Ticket { get { return m_ticket; } }
-    string IMessageGet.Queue { get { return m_queue; } }
-    string IMessageGet.Destination { get { return m_destination; } }
-    bool IMessageGet.NoAck { get { return m_noAck; } }
-
-    public MessageGet() {}
-    public MessageGet(
-      ushort initTicket,
-      string initQueue,
-      string initDestination,
-      bool initNoAck)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_destination = initDestination;
-      m_noAck = initNoAck;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "message.get"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_destination = reader.ReadShortstr();
-      m_noAck = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_destination);
-      writer.WriteBit(m_noAck);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_destination); sb.Append(",");
-      sb.Append(m_noAck);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageRecover: RabbitMQ.Client.Impl.MethodBase, IMessageRecover {
-    public const int ClassId = 120;
-    public const int MethodId = 50;
-
-    public bool m_requeue;
-
-    bool IMessageRecover.Requeue { get { return m_requeue; } }
-
-    public MessageRecover() {}
-    public MessageRecover(
-      bool initRequeue)
-    {
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "message.recover"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageOpen: RabbitMQ.Client.Impl.MethodBase, IMessageOpen {
-    public const int ClassId = 120;
-    public const int MethodId = 60;
-
-    public byte[] m_reference;
-
-    byte[] IMessageOpen.Reference { get { return m_reference; } }
-
-    public MessageOpen() {}
-    public MessageOpen(
-      byte[] initReference)
-    {
-      m_reference = initReference;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "message.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_reference = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_reference);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_reference);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageClose: RabbitMQ.Client.Impl.MethodBase, IMessageClose {
-    public const int ClassId = 120;
-    public const int MethodId = 70;
-
-    public byte[] m_reference;
-
-    byte[] IMessageClose.Reference { get { return m_reference; } }
-
-    public MessageClose() {}
-    public MessageClose(
-      byte[] initReference)
-    {
-      m_reference = initReference;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "message.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_reference = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_reference);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_reference);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageAppend: RabbitMQ.Client.Impl.MethodBase, IMessageAppend {
-    public const int ClassId = 120;
-    public const int MethodId = 80;
-
-    public byte[] m_reference;
-    public byte[] m_bytes;
-
-    byte[] IMessageAppend.Reference { get { return m_reference; } }
-    byte[] IMessageAppend.Bytes { get { return m_bytes; } }
-
-    public MessageAppend() {}
-    public MessageAppend(
-      byte[] initReference,
-      byte[] initBytes)
-    {
-      m_reference = initReference;
-      m_bytes = initBytes;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "message.append"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_reference = reader.ReadLongstr();
-      m_bytes = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_reference);
-      writer.WriteLongstr(m_bytes);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_reference); sb.Append(",");
-      sb.Append(m_bytes);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageCheckpoint: RabbitMQ.Client.Impl.MethodBase, IMessageCheckpoint {
-    public const int ClassId = 120;
-    public const int MethodId = 90;
-
-    public byte[] m_reference;
-    public string m_identifier;
-
-    byte[] IMessageCheckpoint.Reference { get { return m_reference; } }
-    string IMessageCheckpoint.Identifier { get { return m_identifier; } }
-
-    public MessageCheckpoint() {}
-    public MessageCheckpoint(
-      byte[] initReference,
-      string initIdentifier)
-    {
-      m_reference = initReference;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "message.checkpoint"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_reference = reader.ReadLongstr();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_reference);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_reference); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageResume: RabbitMQ.Client.Impl.MethodBase, IMessageResume {
-    public const int ClassId = 120;
-    public const int MethodId = 100;
-
-    public byte[] m_reference;
-    public string m_identifier;
-
-    byte[] IMessageResume.Reference { get { return m_reference; } }
-    string IMessageResume.Identifier { get { return m_identifier; } }
-
-    public MessageResume() {}
-    public MessageResume(
-      byte[] initReference,
-      string initIdentifier)
-    {
-      m_reference = initReference;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "message.resume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_reference = reader.ReadLongstr();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_reference);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_reference); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageQos: RabbitMQ.Client.Impl.MethodBase, IMessageQos {
-    public const int ClassId = 120;
-    public const int MethodId = 110;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IMessageQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IMessageQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IMessageQos.Global { get { return m_global; } }
-
-    public MessageQos() {}
-    public MessageQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 110; } }
-    public override string ProtocolMethodName { get { return "message.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageOk: RabbitMQ.Client.Impl.MethodBase, IMessageOk {
-    public const int ClassId = 120;
-    public const int MethodId = 500;
-
-
-
-    public MessageOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 500; } }
-    public override string ProtocolMethodName { get { return "message.ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageEmpty: RabbitMQ.Client.Impl.MethodBase, IMessageEmpty {
-    public const int ClassId = 120;
-    public const int MethodId = 510;
-
-
-
-    public MessageEmpty(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 510; } }
-    public override string ProtocolMethodName { get { return "message.empty"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageReject: RabbitMQ.Client.Impl.MethodBase, IMessageReject {
-    public const int ClassId = 120;
-    public const int MethodId = 520;
-
-    public ushort m_code;
-    public string m_text;
-
-    ushort IMessageReject.Code { get { return m_code; } }
-    string IMessageReject.Text { get { return m_text; } }
-
-    public MessageReject() {}
-    public MessageReject(
-      ushort initCode,
-      string initText)
-    {
-      m_code = initCode;
-      m_text = initText;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 520; } }
-    public override string ProtocolMethodName { get { return "message.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_code = reader.ReadShort();
-      m_text = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_code);
-      writer.WriteShortstr(m_text);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_code); sb.Append(",");
-      sb.Append(m_text);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageOffset: RabbitMQ.Client.Impl.MethodBase, IMessageOffset {
-    public const int ClassId = 120;
-    public const int MethodId = 530;
-
-    public ulong m_value;
-
-    ulong IMessageOffset.Value { get { return m_value; } }
-
-    public MessageOffset() {}
-    public MessageOffset(
-      ulong initValue)
-    {
-      m_value = initValue;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 530; } }
-    public override string ProtocolMethodName { get { return "message.offset"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_value = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_value);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_value);
-      sb.Append(")");
-    }
-  }
-
-  public class Model: RabbitMQ.Client.Impl.ModelBase {
-    public Model(RabbitMQ.Client.Impl.ISession session): base(session) {}
-    public override void _Private_BasicPublish(
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @mandatory,
-      System.Boolean @immediate,
-      RabbitMQ.Client.IBasicProperties @basicProperties,
-      System.Byte[] @body)
-    {
-      BasicPublish __req = new BasicPublish();
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_mandatory = @mandatory;
-      __req.m_immediate = @immediate;
-      ModelSend(__req, (BasicProperties) basicProperties,body);
-    }
-    public override void _Private_BasicConsume(
-      System.String @queue,
-      System.String @consumerTag,
-      System.Boolean @noLocal,
-      System.Boolean @noAck,
-      System.Boolean @exclusive,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @filter)
-    {
-      BasicConsume __req = new BasicConsume();
-      __req.m_queue = @queue;
-      __req.m_consumerTag = @consumerTag;
-      __req.m_noLocal = @noLocal;
-      __req.m_noAck = @noAck;
-      __req.m_exclusive = @exclusive;
-      __req.m_nowait = @nowait;
-      __req.m_filter = @filter;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicCancel(
-      System.String @consumerTag,
-      System.Boolean @nowait)
-    {
-      BasicCancel __req = new BasicCancel();
-      __req.m_consumerTag = @consumerTag;
-      __req.m_nowait = @nowait;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelOpen(
-      System.String @outOfBand)
-    {
-      ChannelOpen __req = new ChannelOpen();
-      __req.m_outOfBand = @outOfBand;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelOpenOk __rep = __repBase as ChannelOpenOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ChannelCloseOk()
-    {
-      ChannelCloseOk __req = new ChannelCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ChannelClose __req = new ChannelClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicGet(
-      System.String @queue,
-      System.Boolean @noAck)
-    {
-      BasicGet __req = new BasicGet();
-      __req.m_queue = @queue;
-      __req.m_noAck = @noAck;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelFlowOk()
-    {
-      ChannelFlowOk __req = new ChannelFlowOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.Impl.ConnectionTuneDetails ConnectionStartOk(
-      System.Collections.IDictionary @clientProperties,
-      System.String @mechanism,
-      System.Byte[] @response,
-      System.String @locale)
-    {
-      ConnectionStartOk __req = new ConnectionStartOk();
-      __req.m_clientProperties = @clientProperties;
-      __req.m_mechanism = @mechanism;
-      __req.m_response = @response;
-      __req.m_locale = @locale;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionTune __rep = __repBase as ConnectionTune;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      RabbitMQ.Client.Impl.ConnectionTuneDetails __result = new RabbitMQ.Client.Impl.ConnectionTuneDetails();
-      __result.m_channelMax = __rep.m_channelMax;
-      __result.m_frameMax = __rep.m_frameMax;
-      __result.m_heartbeat = __rep.m_heartbeat;
-      return __result;
-    }
-    public override void ConnectionTuneOk(
-      System.UInt16 @channelMax,
-      System.UInt32 @frameMax,
-      System.UInt16 @heartbeat)
-    {
-      ConnectionTuneOk __req = new ConnectionTuneOk();
-      __req.m_channelMax = @channelMax;
-      __req.m_frameMax = @frameMax;
-      __req.m_heartbeat = @heartbeat;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionOpen(
-      System.String @virtualHost,
-      System.String @capabilities,
-      System.Boolean @insist)
-    {
-      ConnectionOpen __req = new ConnectionOpen();
-      __req.m_virtualHost = @virtualHost;
-      __req.m_capabilities = @capabilities;
-      __req.m_insist = @insist;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ConnectionClose __req = new ConnectionClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionCloseOk __rep = __repBase as ConnectionCloseOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ConnectionCloseOk()
-    {
-      ConnectionCloseOk __req = new ConnectionCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.IBasicProperties CreateBasicProperties()
-    {
-      return new BasicProperties();
-    }
-    public override RabbitMQ.Client.IFileProperties CreateFileProperties()
-    {
-      return new FileProperties();
-    }
-    public override RabbitMQ.Client.IStreamProperties CreateStreamProperties()
-    {
-      return new StreamProperties();
-    }
-    public override void ChannelFlow(
-      System.Boolean @active)
-    {
-      ChannelFlow __req = new ChannelFlow();
-      __req.m_active = @active;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelFlowOk __rep = __repBase as ChannelFlowOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDeclare(
-      System.String @exchange,
-      System.String @type,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @autoDelete,
-      System.Boolean @internal,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      ExchangeDeclare __req = new ExchangeDeclare();
-      __req.m_exchange = @exchange;
-      __req.m_type = @type;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_internal = @internal;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeclareOk __rep = __repBase as ExchangeDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDelete(
-      System.String @exchange,
-      System.Boolean @ifUnused,
-      System.Boolean @nowait)
-    {
-      ExchangeDelete __req = new ExchangeDelete();
-      __req.m_exchange = @exchange;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeleteOk __rep = __repBase as ExchangeDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override System.String QueueDeclare(
-      System.String @queue,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @exclusive,
-      System.Boolean @autoDelete,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueDeclare __req = new QueueDeclare();
-      __req.m_queue = @queue;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_exclusive = @exclusive;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return null;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeclareOk __rep = __repBase as QueueDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_queue;
-    }
-    public override void QueueBind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueBind __req = new QueueBind();
-      __req.m_queue = @queue;
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueBindOk __rep = __repBase as QueueBindOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void QueueUnbind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueUnbind __req = new QueueUnbind();
-      __req.m_queue = @queue;
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_arguments = @arguments;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueUnbindOk __rep = __repBase as QueueUnbindOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override System.UInt32 QueuePurge(
-      System.String @queue,
-      System.Boolean @nowait)
-    {
-      QueuePurge __req = new QueuePurge();
-      __req.m_queue = @queue;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueuePurgeOk __rep = __repBase as QueuePurgeOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override System.UInt32 QueueDelete(
-      System.String @queue,
-      System.Boolean @ifUnused,
-      System.Boolean @ifEmpty,
-      System.Boolean @nowait)
-    {
-      QueueDelete __req = new QueueDelete();
-      __req.m_queue = @queue;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_ifEmpty = @ifEmpty;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeleteOk __rep = __repBase as QueueDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override void BasicQos(
-      System.UInt32 @prefetchSize,
-      System.UInt16 @prefetchCount,
-      System.Boolean @global)
-    {
-      BasicQos __req = new BasicQos();
-      __req.m_prefetchSize = @prefetchSize;
-      __req.m_prefetchCount = @prefetchCount;
-      __req.m_global = @global;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      BasicQosOk __rep = __repBase as BasicQosOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void BasicAck(
-      System.UInt64 @deliveryTag,
-      System.Boolean @multiple)
-    {
-      BasicAck __req = new BasicAck();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_multiple = @multiple;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicReject(
-      System.UInt64 @deliveryTag,
-      System.Boolean @requeue)
-    {
-      BasicReject __req = new BasicReject();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_requeue = @requeue;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicRecover(
-      System.Boolean @requeue)
-    {
-      BasicRecover __req = new BasicRecover();
-      __req.m_requeue = @requeue;
-      ModelSend(__req,null,null);
-    }
-    public override void TxSelect()
-    {
-      TxSelect __req = new TxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxSelectOk __rep = __repBase as TxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxCommit()
-    {
-      TxCommit __req = new TxCommit();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxCommitOk __rep = __repBase as TxCommitOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxRollback()
-    {
-      TxRollback __req = new TxRollback();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxRollbackOk __rep = __repBase as TxRollbackOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxSelect()
-    {
-      DtxSelect __req = new DtxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxSelectOk __rep = __repBase as DtxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxStart(
-      System.String @dtxIdentifier)
-    {
-      DtxStart __req = new DtxStart();
-      __req.m_dtxIdentifier = @dtxIdentifier;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxStartOk __rep = __repBase as DtxStartOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override bool DispatchAsynchronous(RabbitMQ.Client.Impl.Command cmd) {
-      RabbitMQ.Client.Impl.MethodBase __method = (RabbitMQ.Client.Impl.MethodBase) cmd.Method;
-      switch ((__method.ProtocolClassId << 16) | __method.ProtocolMethodId) {
-        case 3932181: {
-          BasicConsumeOk __impl = (BasicConsumeOk) __method;
-          HandleBasicConsumeOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932191: {
-          BasicCancelOk __impl = (BasicCancelOk) __method;
-          HandleBasicCancelOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932231: {
-          BasicGetOk __impl = (BasicGetOk) __method;
-          HandleBasicGetOk(
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            __impl.m_messageCount,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932232: {
-          HandleBasicGetEmpty();
-          return true;
-        }
-        case 3932220: {
-          BasicDeliver __impl = (BasicDeliver) __method;
-          HandleBasicDeliver(
-            __impl.m_consumerTag,
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932210: {
-          BasicReturn __impl = (BasicReturn) __method;
-          HandleBasicReturn(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 1310740: {
-          ChannelFlow __impl = (ChannelFlow) __method;
-          HandleChannelFlow(
-            __impl.m_active);
-          return true;
-        }
-        case 1310760: {
-          ChannelClose __impl = (ChannelClose) __method;
-          HandleChannelClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        case 1310761: {
-          HandleChannelCloseOk();
-          return true;
-        }
-        case 655370: {
-          ConnectionStart __impl = (ConnectionStart) __method;
-          HandleConnectionStart(
-            __impl.m_versionMajor,
-            __impl.m_versionMinor,
-            __impl.m_serverProperties,
-            __impl.m_mechanisms,
-            __impl.m_locales);
-          return true;
-        }
-        case 655401: {
-          ConnectionOpenOk __impl = (ConnectionOpenOk) __method;
-          HandleConnectionOpenOk(
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655402: {
-          ConnectionRedirect __impl = (ConnectionRedirect) __method;
-          HandleConnectionRedirect(
-            __impl.m_host,
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655410: {
-          ConnectionClose __impl = (ConnectionClose) __method;
-          HandleConnectionClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        default: return false;
-      }
-    }
-  }
-}
diff --git a/mcs/class/RabbitMQ.Client/docs/specs/net_2_0-api-qpid-0-8.cs b/mcs/class/RabbitMQ.Client/docs/specs/net_2_0-api-qpid-0-8.cs
deleted file mode 100644 (file)
index 9305215..0000000
+++ /dev/null
@@ -1,6468 +0,0 @@
-// Autogenerated code. Do not edit.
-
-// This source code is dual-licensed under the Apache License, version
-// 2.0, and the Mozilla Public License, version 1.1.
-//
-// The APL v2.0:
-//
-//---------------------------------------------------------------------------
-//   Copyright (C) 2007-2010 LShift Ltd., Cohesive Financial
-//   Technologies LLC., and Rabbit Technologies Ltd.
-//
-//   Licensed under the Apache License, Version 2.0 (the "License");
-//   you may not use this file except in compliance with the License.
-//   You may obtain a copy of the License at
-//
-//       http://www.apache.org/licenses/LICENSE-2.0
-//
-//   Unless required by applicable law or agreed to in writing, software
-//   distributed under the License is distributed on an "AS IS" BASIS,
-//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//   See the License for the specific language governing permissions and
-//   limitations under the License.
-//---------------------------------------------------------------------------
-//
-// The MPL v1.1:
-//
-//---------------------------------------------------------------------------
-//   The contents of this file are subject to the Mozilla Public License
-//   Version 1.1 (the "License"); you may not use this file except in
-//   compliance with the License. You may obtain a copy of the License at
-//   http://www.rabbitmq.com/mpl.html
-//
-//   Software distributed under the License is distributed on an "AS IS"
-//   basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//   License for the specific language governing rights and limitations
-//   under the License.
-//
-//   The Original Code is The RabbitMQ .NET Client.
-//
-//   The Initial Developers of the Original Code are LShift Ltd,
-//   Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
-//   Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
-//   are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
-//   Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created by LShift Ltd are Copyright (C) 2007-2010 LShift
-//   Ltd. Portions created by Cohesive Financial Technologies LLC are
-//   Copyright (C) 2007-2010 Cohesive Financial Technologies
-//   LLC. Portions created by Rabbit Technologies Ltd are Copyright
-//   (C) 2007-2010 Rabbit Technologies Ltd.
-//
-//   All Rights Reserved.
-//
-//   Contributor(s): ______________________________________.
-//
-//---------------------------------------------------------------------------
-
-using RabbitMQ.Client;
-using RabbitMQ.Client.Exceptions;
-
-namespace RabbitMQ.Client.Framing.v0_8qpid {
-  public class Protocol: RabbitMQ.Client.Framing.Impl.v0_8qpid.ProtocolBase {
-    ///<summary>Protocol major version (= 8)</summary>
-    public override int MajorVersion { get { return 8; } }
-    ///<summary>Protocol minor version (= 0)</summary>
-    public override int MinorVersion { get { return 0; } }
-    ///<summary>Protocol API name (= AMQP_0_8_QPID)</summary>
-    public override string ApiName { get { return "AMQP_0_8_QPID"; } }
-    ///<summary>Default TCP port (= 5672)</summary>
-    public override int DefaultPort { get { return 5672; } }
-
-    public override RabbitMQ.Client.Impl.MethodBase DecodeMethodFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-      ushort methodId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 10: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionStart result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionStartOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionSecure result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionSecure();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionSecureOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionSecureOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionTune result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionTune();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionTuneOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionTuneOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionOpen result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionRedirect result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionRedirect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionClose result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 61: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 20: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelOpen result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelFlow result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelFlow();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelFlowOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelFlowOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelAlert result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelAlert();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelClose result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 30: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.AccessRequest result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.AccessRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.AccessRequestOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.AccessRequestOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 40: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeclare result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDelete result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 22: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeBound result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeBound();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 23: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeBoundOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeBoundOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 50: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeclare result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueBind result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueBind();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueBindOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueBindOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueuePurge result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueuePurge();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueuePurgeOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueuePurgeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDelete result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 60: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicQos result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicConsume result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicCancel result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicPublish result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicReturn result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGet result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGet();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 71: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGetOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGetOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 72: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGetEmpty result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGetEmpty();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicAck result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicReject result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicRecover result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicRecover();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 101: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicRecoverOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicRecoverOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 70: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileQos result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileConsume result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileCancel result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileOpen result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileStage result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileStage();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FilePublish result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FilePublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileReturn result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileAck result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileReject result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 80: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamQos result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamConsume result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamCancel result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamPublish result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamReturn result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 90: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxSelect result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxCommit result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxCommit();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxCommitOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxCommitOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxRollback result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxRollback();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxRollbackOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxRollbackOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 100: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxSelect result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxStart result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxStartOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 110: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TunnelRequest result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TunnelRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 120: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestInteger result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestInteger();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestIntegerOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestIntegerOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestString result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestString();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestStringOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestStringOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestTable result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestTable();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestTableOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestTableOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestContent result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestContent();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestContentOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestContentOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, methodId);
-    }
-
-    public override RabbitMQ.Client.Impl.ContentHeaderBase DecodeContentHeaderFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 60: return new BasicProperties();
-        case 70: return new FileProperties();
-        case 80: return new StreamProperties();
-        case 110: return new TunnelProperties();
-        case 120: return new TestProperties();
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, 0);
-    }
-  }
-  public class Constants {
-    ///<summary>(= 1)</summary>
-    public const int FrameMethod = 1;
-    ///<summary>(= 2)</summary>
-    public const int FrameHeader = 2;
-    ///<summary>(= 3)</summary>
-    public const int FrameBody = 3;
-    ///<summary>(= 4)</summary>
-    public const int FrameOobMethod = 4;
-    ///<summary>(= 5)</summary>
-    public const int FrameOobHeader = 5;
-    ///<summary>(= 6)</summary>
-    public const int FrameOobBody = 6;
-    ///<summary>(= 7)</summary>
-    public const int FrameTrace = 7;
-    ///<summary>(= 8)</summary>
-    public const int FrameHeartbeat = 8;
-    ///<summary>(= 4096)</summary>
-    public const int FrameMinSize = 4096;
-    ///<summary>(= 206)</summary>
-    public const int FrameEnd = 206;
-    ///<summary>(= 200)</summary>
-    public const int ReplySuccess = 200;
-    ///<summary>(= 310)</summary>
-    public const int NotDelivered = 310;
-    ///<summary>(= 311)</summary>
-    public const int ContentTooLarge = 311;
-    ///<summary>(= 320)</summary>
-    public const int ConnectionForced = 320;
-    ///<summary>(= 402)</summary>
-    public const int InvalidPath = 402;
-    ///<summary>(= 403)</summary>
-    public const int AccessRefused = 403;
-    ///<summary>(= 404)</summary>
-    public const int NotFound = 404;
-    ///<summary>(= 405)</summary>
-    public const int ResourceLocked = 405;
-    ///<summary>(= 501)</summary>
-    public const int FrameError = 501;
-    ///<summary>(= 502)</summary>
-    public const int SyntaxError = 502;
-    ///<summary>(= 503)</summary>
-    public const int CommandInvalid = 503;
-    ///<summary>(= 504)</summary>
-    public const int ChannelError = 504;
-    ///<summary>(= 506)</summary>
-    public const int ResourceError = 506;
-    ///<summary>(= 530)</summary>
-    public const int NotAllowed = 530;
-    ///<summary>(= 540)</summary>
-    public const int NotImplemented = 540;
-    ///<summary>(= 541)</summary>
-    public const int InternalError = 541;
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start".</summary>
-  public interface IConnectionStart: IMethod {
-    byte VersionMajor { get; }
-    byte VersionMinor { get; }
-    System.Collections.IDictionary ServerProperties { get; }
-    byte[] Mechanisms { get; }
-    byte[] Locales { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start-ok".</summary>
-  public interface IConnectionStartOk: IMethod {
-    System.Collections.IDictionary ClientProperties { get; }
-    string Mechanism { get; }
-    byte[] Response { get; }
-    string Locale { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure".</summary>
-  public interface IConnectionSecure: IMethod {
-    byte[] Challenge { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure-ok".</summary>
-  public interface IConnectionSecureOk: IMethod {
-    byte[] Response { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune".</summary>
-  public interface IConnectionTune: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune-ok".</summary>
-  public interface IConnectionTuneOk: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open".</summary>
-  public interface IConnectionOpen: IMethod {
-    string VirtualHost { get; }
-    string Capabilities { get; }
-    bool Insist { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open-ok".</summary>
-  public interface IConnectionOpenOk: IMethod {
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.redirect".</summary>
-  public interface IConnectionRedirect: IMethod {
-    string Host { get; }
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close".</summary>
-  public interface IConnectionClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close-ok".</summary>
-  public interface IConnectionCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open".</summary>
-  public interface IChannelOpen: IMethod {
-    string OutOfBand { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open-ok".</summary>
-  public interface IChannelOpenOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow".</summary>
-  public interface IChannelFlow: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow-ok".</summary>
-  public interface IChannelFlowOk: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.alert".</summary>
-  public interface IChannelAlert: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    System.Collections.IDictionary Details { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close".</summary>
-  public interface IChannelClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close-ok".</summary>
-  public interface IChannelCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request".</summary>
-  public interface IAccessRequest: IMethod {
-    string Realm { get; }
-    bool Exclusive { get; }
-    bool Passive { get; }
-    bool Active { get; }
-    bool Write { get; }
-    bool Read { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request-ok".</summary>
-  public interface IAccessRequestOk: IMethod {
-    ushort Ticket { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare".</summary>
-  public interface IExchangeDeclare: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string Type { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool AutoDelete { get; }
-    bool Internal { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare-ok".</summary>
-  public interface IExchangeDeclareOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete".</summary>
-  public interface IExchangeDelete: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    bool IfUnused { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete-ok".</summary>
-  public interface IExchangeDeleteOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.bound".</summary>
-  public interface IExchangeBound: IMethod {
-    string Exchange { get; }
-    string RoutingKey { get; }
-    string Queue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.bound-ok".</summary>
-  public interface IExchangeBoundOk: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare".</summary>
-  public interface IQueueDeclare: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool Exclusive { get; }
-    bool AutoDelete { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare-ok".</summary>
-  public interface IQueueDeclareOk: IMethod {
-    string Queue { get; }
-    uint MessageCount { get; }
-    uint ConsumerCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind".</summary>
-  public interface IQueueBind: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind-ok".</summary>
-  public interface IQueueBindOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge".</summary>
-  public interface IQueuePurge: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge-ok".</summary>
-  public interface IQueuePurgeOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete".</summary>
-  public interface IQueueDelete: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool IfUnused { get; }
-    bool IfEmpty { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete-ok".</summary>
-  public interface IQueueDeleteOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos".</summary>
-  public interface IBasicQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos-ok".</summary>
-  public interface IBasicQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume".</summary>
-  public interface IBasicConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume-ok".</summary>
-  public interface IBasicConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel".</summary>
-  public interface IBasicCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel-ok".</summary>
-  public interface IBasicCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.publish".</summary>
-  public interface IBasicPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.return".</summary>
-  public interface IBasicReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.deliver".</summary>
-  public interface IBasicDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get".</summary>
-  public interface IBasicGet: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool NoAck { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-ok".</summary>
-  public interface IBasicGetOk: IMethod {
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-empty".</summary>
-  public interface IBasicGetEmpty: IMethod {
-    string ClusterId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.ack".</summary>
-  public interface IBasicAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.reject".</summary>
-  public interface IBasicReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.recover".</summary>
-  public interface IBasicRecover: IMethod {
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.recover-ok".</summary>
-  public interface IBasicRecoverOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos".</summary>
-  public interface IFileQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos-ok".</summary>
-  public interface IFileQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume".</summary>
-  public interface IFileConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume-ok".</summary>
-  public interface IFileConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel".</summary>
-  public interface IFileCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel-ok".</summary>
-  public interface IFileCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open".</summary>
-  public interface IFileOpen: IMethod {
-    string Identifier { get; }
-    ulong ContentSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open-ok".</summary>
-  public interface IFileOpenOk: IMethod {
-    ulong StagedSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.stage".</summary>
-  public interface IFileStage: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.publish".</summary>
-  public interface IFilePublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.return".</summary>
-  public interface IFileReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.deliver".</summary>
-  public interface IFileDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.ack".</summary>
-  public interface IFileAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.reject".</summary>
-  public interface IFileReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos".</summary>
-  public interface IStreamQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    uint ConsumeRate { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos-ok".</summary>
-  public interface IStreamQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume".</summary>
-  public interface IStreamConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume-ok".</summary>
-  public interface IStreamConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel".</summary>
-  public interface IStreamCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel-ok".</summary>
-  public interface IStreamCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.publish".</summary>
-  public interface IStreamPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.return".</summary>
-  public interface IStreamReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.deliver".</summary>
-  public interface IStreamDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    string Exchange { get; }
-    string Queue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select".</summary>
-  public interface ITxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select-ok".</summary>
-  public interface ITxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit".</summary>
-  public interface ITxCommit: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit-ok".</summary>
-  public interface ITxCommitOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback".</summary>
-  public interface ITxRollback: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback-ok".</summary>
-  public interface ITxRollbackOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select".</summary>
-  public interface IDtxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select-ok".</summary>
-  public interface IDtxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start".</summary>
-  public interface IDtxStart: IMethod {
-    string DtxIdentifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start-ok".</summary>
-  public interface IDtxStartOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tunnel.request".</summary>
-  public interface ITunnelRequest: IMethod {
-    System.Collections.IDictionary MetaData { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.integer".</summary>
-  public interface ITestInteger: IMethod {
-    byte Integer1 { get; }
-    ushort Integer2 { get; }
-    uint Integer3 { get; }
-    ulong Integer4 { get; }
-    byte Operation { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.integer-ok".</summary>
-  public interface ITestIntegerOk: IMethod {
-    ulong Result { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.string".</summary>
-  public interface ITestString: IMethod {
-    string String1 { get; }
-    byte[] String2 { get; }
-    byte Operation { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.string-ok".</summary>
-  public interface ITestStringOk: IMethod {
-    byte[] Result { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.table".</summary>
-  public interface ITestTable: IMethod {
-    System.Collections.IDictionary Table { get; }
-    byte IntegerOp { get; }
-    byte StringOp { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.table-ok".</summary>
-  public interface ITestTableOk: IMethod {
-    ulong IntegerResult { get; }
-    byte[] StringResult { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.content".</summary>
-  public interface ITestContent: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.content-ok".</summary>
-  public interface ITestContentOk: IMethod {
-    uint ContentChecksum { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "basic"</summary>
-  public class BasicProperties: RabbitMQ.Client.Impl.BasicProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_deliveryMode;
-    private byte m_priority;
-    private string m_correlationId;
-    private string m_replyTo;
-    private string m_expiration;
-    private string m_messageId;
-    private AmqpTimestamp m_timestamp;
-    private string m_type;
-    private string m_userId;
-    private string m_appId;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_deliveryMode_present = false;
-    private bool m_priority_present = false;
-    private bool m_correlationId_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_expiration_present = false;
-    private bool m_messageId_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_type_present = false;
-    private bool m_userId_present = false;
-    private bool m_appId_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte DeliveryMode {
-      get {
-        return m_deliveryMode;
-      }
-      set {
-        m_deliveryMode_present = true;
-        m_deliveryMode = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string CorrelationId {
-      get {
-        return m_correlationId;
-      }
-      set {
-        m_correlationId_present = true;
-        m_correlationId = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string Expiration {
-      get {
-        return m_expiration;
-      }
-      set {
-        m_expiration_present = true;
-        m_expiration = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string Type {
-      get {
-        return m_type;
-      }
-      set {
-        m_type_present = true;
-        m_type = value;
-      }
-    }
-    public override string UserId {
-      get {
-        return m_userId;
-      }
-      set {
-        m_userId_present = true;
-        m_userId = value;
-      }
-    }
-    public override string AppId {
-      get {
-        return m_appId;
-      }
-      set {
-        m_appId_present = true;
-        m_appId = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearDeliveryMode() { m_deliveryMode_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearCorrelationId() { m_correlationId_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearExpiration() { m_expiration_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearType() { m_type_present = false; }
-    public override void ClearUserId() { m_userId_present = false; }
-    public override void ClearAppId() { m_appId_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsDeliveryModePresent() { return m_deliveryMode_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsCorrelationIdPresent() { return m_correlationId_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsExpirationPresent() { return m_expiration_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsTypePresent() { return m_type_present; }
-    public override bool IsUserIdPresent() { return m_userId_present; }
-    public override bool IsAppIdPresent() { return m_appId_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public BasicProperties() {}
-    public override int ProtocolClassId { get { return 60; } }
-    public override string ProtocolClassName { get { return "basic"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_deliveryMode_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_correlationId_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_expiration_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_type_present = reader.ReadPresence();
-      m_userId_present = reader.ReadPresence();
-      m_appId_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_deliveryMode_present) { m_deliveryMode = reader.ReadOctet(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_correlationId_present) { m_correlationId = reader.ReadShortstr(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_expiration_present) { m_expiration = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_type_present) { m_type = reader.ReadShortstr(); }
-      if (m_userId_present) { m_userId = reader.ReadShortstr(); }
-      if (m_appId_present) { m_appId = reader.ReadShortstr(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_deliveryMode_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_correlationId_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_expiration_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_type_present);
-      writer.WritePresence(m_userId_present);
-      writer.WritePresence(m_appId_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_deliveryMode_present) { writer.WriteOctet(m_deliveryMode); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_correlationId_present) { writer.WriteShortstr(m_correlationId); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_expiration_present) { writer.WriteShortstr(m_expiration); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_type_present) { writer.WriteShortstr(m_type); }
-      if (m_userId_present) { writer.WriteShortstr(m_userId); }
-      if (m_appId_present) { writer.WriteShortstr(m_appId); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("delivery mode="); sb.Append(m_deliveryMode_present ? m_deliveryMode.ToString() : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("correlation id="); sb.Append(m_correlationId_present ? (m_correlationId == null ? "(null)" : m_correlationId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("reply to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("expiration="); sb.Append(m_expiration_present ? (m_expiration == null ? "(null)" : m_expiration.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("type="); sb.Append(m_type_present ? (m_type == null ? "(null)" : m_type.ToString()) : "_"); sb.Append(", ");
-      sb.Append("user id="); sb.Append(m_userId_present ? (m_userId == null ? "(null)" : m_userId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("app id="); sb.Append(m_appId_present ? (m_appId == null ? "(null)" : m_appId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("cluster id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "file"</summary>
-  public class FileProperties: RabbitMQ.Client.Impl.FileProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private string m_replyTo;
-    private string m_messageId;
-    private string m_filename;
-    private AmqpTimestamp m_timestamp;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_messageId_present = false;
-    private bool m_filename_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override string Filename {
-      get {
-        return m_filename;
-      }
-      set {
-        m_filename_present = true;
-        m_filename = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearFilename() { m_filename_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsFilenamePresent() { return m_filename_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public FileProperties() {}
-    public override int ProtocolClassId { get { return 70; } }
-    public override string ProtocolClassName { get { return "file"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_filename_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_filename_present) { m_filename = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_filename_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_filename_present) { writer.WriteShortstr(m_filename); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("reply to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("filename="); sb.Append(m_filename_present ? (m_filename == null ? "(null)" : m_filename.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("cluster id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "stream"</summary>
-  public class StreamProperties: RabbitMQ.Client.Impl.StreamProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private AmqpTimestamp m_timestamp;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_timestamp_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-
-    public StreamProperties() {}
-    public override int ProtocolClassId { get { return 80; } }
-    public override string ProtocolClassName { get { return "stream"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "tunnel"</summary>
-  public class TunnelProperties: RabbitMQ.Client.Impl.ContentHeaderBase {
-    private System.Collections.IDictionary m_headers;
-    private string m_proxyName;
-    private string m_dataName;
-    private byte m_durable;
-    private byte m_broadcast;
-
-    private bool m_headers_present = false;
-    private bool m_proxyName_present = false;
-    private bool m_dataName_present = false;
-    private bool m_durable_present = false;
-    private bool m_broadcast_present = false;
-
-    public System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public string ProxyName {
-      get {
-        return m_proxyName;
-      }
-      set {
-        m_proxyName_present = true;
-        m_proxyName = value;
-      }
-    }
-    public string DataName {
-      get {
-        return m_dataName;
-      }
-      set {
-        m_dataName_present = true;
-        m_dataName = value;
-      }
-    }
-    public byte Durable {
-      get {
-        return m_durable;
-      }
-      set {
-        m_durable_present = true;
-        m_durable = value;
-      }
-    }
-    public byte Broadcast {
-      get {
-        return m_broadcast;
-      }
-      set {
-        m_broadcast_present = true;
-        m_broadcast = value;
-      }
-    }
-
-    public void ClearHeaders() { m_headers_present = false; }
-    public void ClearProxyName() { m_proxyName_present = false; }
-    public void ClearDataName() { m_dataName_present = false; }
-    public void ClearDurable() { m_durable_present = false; }
-    public void ClearBroadcast() { m_broadcast_present = false; }
-
-    public bool IsHeadersPresent() { return m_headers_present; }
-    public bool IsProxyNamePresent() { return m_proxyName_present; }
-    public bool IsDataNamePresent() { return m_dataName_present; }
-    public bool IsDurablePresent() { return m_durable_present; }
-    public bool IsBroadcastPresent() { return m_broadcast_present; }
-
-    public TunnelProperties() {}
-    public override int ProtocolClassId { get { return 110; } }
-    public override string ProtocolClassName { get { return "tunnel"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_headers_present = reader.ReadPresence();
-      m_proxyName_present = reader.ReadPresence();
-      m_dataName_present = reader.ReadPresence();
-      m_durable_present = reader.ReadPresence();
-      m_broadcast_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_proxyName_present) { m_proxyName = reader.ReadShortstr(); }
-      if (m_dataName_present) { m_dataName = reader.ReadShortstr(); }
-      if (m_durable_present) { m_durable = reader.ReadOctet(); }
-      if (m_broadcast_present) { m_broadcast = reader.ReadOctet(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_proxyName_present);
-      writer.WritePresence(m_dataName_present);
-      writer.WritePresence(m_durable_present);
-      writer.WritePresence(m_broadcast_present);
-      writer.FinishPresence();
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_proxyName_present) { writer.WriteShortstr(m_proxyName); }
-      if (m_dataName_present) { writer.WriteShortstr(m_dataName); }
-      if (m_durable_present) { writer.WriteOctet(m_durable); }
-      if (m_broadcast_present) { writer.WriteOctet(m_broadcast); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("proxy name="); sb.Append(m_proxyName_present ? (m_proxyName == null ? "(null)" : m_proxyName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("data name="); sb.Append(m_dataName_present ? (m_dataName == null ? "(null)" : m_dataName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("durable="); sb.Append(m_durable_present ? m_durable.ToString() : "_"); sb.Append(", ");
-      sb.Append("broadcast="); sb.Append(m_broadcast_present ? m_broadcast.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "test"</summary>
-  public class TestProperties: RabbitMQ.Client.Impl.ContentHeaderBase {
-
-
-
-
-
-    public TestProperties() {}
-    public override int ProtocolClassId { get { return 120; } }
-    public override string ProtocolClassName { get { return "test"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      reader.FinishPresence();
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.FinishPresence();
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-}
-namespace RabbitMQ.Client.Framing.Impl.v0_8qpid {
-  using RabbitMQ.Client.Framing.v0_8qpid;
-  public enum ClassId {
-    Connection = 10,
-    Channel = 20,
-    Access = 30,
-    Exchange = 40,
-    Queue = 50,
-    Basic = 60,
-    File = 70,
-    Stream = 80,
-    Tx = 90,
-    Dtx = 100,
-    Tunnel = 110,
-    Test = 120,
-    Invalid = -1
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStart: RabbitMQ.Client.Impl.MethodBase, IConnectionStart {
-    public const int ClassId = 10;
-    public const int MethodId = 10;
-
-    public byte m_versionMajor;
-    public byte m_versionMinor;
-    public System.Collections.IDictionary m_serverProperties;
-    public byte[] m_mechanisms;
-    public byte[] m_locales;
-
-    byte IConnectionStart.VersionMajor { get { return m_versionMajor; } }
-    byte IConnectionStart.VersionMinor { get { return m_versionMinor; } }
-    System.Collections.IDictionary IConnectionStart.ServerProperties { get { return m_serverProperties; } }
-    byte[] IConnectionStart.Mechanisms { get { return m_mechanisms; } }
-    byte[] IConnectionStart.Locales { get { return m_locales; } }
-
-    public ConnectionStart() {}
-    public ConnectionStart(
-      byte initVersionMajor,
-      byte initVersionMinor,
-      System.Collections.IDictionary initServerProperties,
-      byte[] initMechanisms,
-      byte[] initLocales)
-    {
-      m_versionMajor = initVersionMajor;
-      m_versionMinor = initVersionMinor;
-      m_serverProperties = initServerProperties;
-      m_mechanisms = initMechanisms;
-      m_locales = initLocales;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "connection.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_versionMajor = reader.ReadOctet();
-      m_versionMinor = reader.ReadOctet();
-      m_serverProperties = reader.ReadTable();
-      m_mechanisms = reader.ReadLongstr();
-      m_locales = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteOctet(m_versionMajor);
-      writer.WriteOctet(m_versionMinor);
-      writer.WriteTable(m_serverProperties);
-      writer.WriteLongstr(m_mechanisms);
-      writer.WriteLongstr(m_locales);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_versionMajor); sb.Append(",");
-      sb.Append(m_versionMinor); sb.Append(",");
-      sb.Append(m_serverProperties); sb.Append(",");
-      sb.Append(m_mechanisms); sb.Append(",");
-      sb.Append(m_locales);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStartOk: RabbitMQ.Client.Impl.MethodBase, IConnectionStartOk {
-    public const int ClassId = 10;
-    public const int MethodId = 11;
-
-    public System.Collections.IDictionary m_clientProperties;
-    public string m_mechanism;
-    public byte[] m_response;
-    public string m_locale;
-
-    System.Collections.IDictionary IConnectionStartOk.ClientProperties { get { return m_clientProperties; } }
-    string IConnectionStartOk.Mechanism { get { return m_mechanism; } }
-    byte[] IConnectionStartOk.Response { get { return m_response; } }
-    string IConnectionStartOk.Locale { get { return m_locale; } }
-
-    public ConnectionStartOk() {}
-    public ConnectionStartOk(
-      System.Collections.IDictionary initClientProperties,
-      string initMechanism,
-      byte[] initResponse,
-      string initLocale)
-    {
-      m_clientProperties = initClientProperties;
-      m_mechanism = initMechanism;
-      m_response = initResponse;
-      m_locale = initLocale;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "connection.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clientProperties = reader.ReadTable();
-      m_mechanism = reader.ReadShortstr();
-      m_response = reader.ReadLongstr();
-      m_locale = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_clientProperties);
-      writer.WriteShortstr(m_mechanism);
-      writer.WriteLongstr(m_response);
-      writer.WriteShortstr(m_locale);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clientProperties); sb.Append(",");
-      sb.Append(m_mechanism); sb.Append(",");
-      sb.Append(m_response); sb.Append(",");
-      sb.Append(m_locale);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecure: RabbitMQ.Client.Impl.MethodBase, IConnectionSecure {
-    public const int ClassId = 10;
-    public const int MethodId = 20;
-
-    public byte[] m_challenge;
-
-    byte[] IConnectionSecure.Challenge { get { return m_challenge; } }
-
-    public ConnectionSecure() {}
-    public ConnectionSecure(
-      byte[] initChallenge)
-    {
-      m_challenge = initChallenge;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "connection.secure"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_challenge = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_challenge);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_challenge);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecureOk: RabbitMQ.Client.Impl.MethodBase, IConnectionSecureOk {
-    public const int ClassId = 10;
-    public const int MethodId = 21;
-
-    public byte[] m_response;
-
-    byte[] IConnectionSecureOk.Response { get { return m_response; } }
-
-    public ConnectionSecureOk() {}
-    public ConnectionSecureOk(
-      byte[] initResponse)
-    {
-      m_response = initResponse;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "connection.secure-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_response = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_response);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_response);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTune: RabbitMQ.Client.Impl.MethodBase, IConnectionTune {
-    public const int ClassId = 10;
-    public const int MethodId = 30;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTune.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTune.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTune.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTune() {}
-    public ConnectionTune(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "connection.tune"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTuneOk: RabbitMQ.Client.Impl.MethodBase, IConnectionTuneOk {
-    public const int ClassId = 10;
-    public const int MethodId = 31;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTuneOk.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTuneOk.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTuneOk.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTuneOk() {}
-    public ConnectionTuneOk(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "connection.tune-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpen: RabbitMQ.Client.Impl.MethodBase, IConnectionOpen {
-    public const int ClassId = 10;
-    public const int MethodId = 40;
-
-    public string m_virtualHost;
-    public string m_capabilities;
-    public bool m_insist;
-
-    string IConnectionOpen.VirtualHost { get { return m_virtualHost; } }
-    string IConnectionOpen.Capabilities { get { return m_capabilities; } }
-    bool IConnectionOpen.Insist { get { return m_insist; } }
-
-    public ConnectionOpen() {}
-    public ConnectionOpen(
-      string initVirtualHost,
-      string initCapabilities,
-      bool initInsist)
-    {
-      m_virtualHost = initVirtualHost;
-      m_capabilities = initCapabilities;
-      m_insist = initInsist;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "connection.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_virtualHost = reader.ReadShortstr();
-      m_capabilities = reader.ReadShortstr();
-      m_insist = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_virtualHost);
-      writer.WriteShortstr(m_capabilities);
-      writer.WriteBit(m_insist);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_virtualHost); sb.Append(",");
-      sb.Append(m_capabilities); sb.Append(",");
-      sb.Append(m_insist);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpenOk: RabbitMQ.Client.Impl.MethodBase, IConnectionOpenOk {
-    public const int ClassId = 10;
-    public const int MethodId = 41;
-
-    public string m_knownHosts;
-
-    string IConnectionOpenOk.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionOpenOk() {}
-    public ConnectionOpenOk(
-      string initKnownHosts)
-    {
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "connection.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionRedirect: RabbitMQ.Client.Impl.MethodBase, IConnectionRedirect {
-    public const int ClassId = 10;
-    public const int MethodId = 50;
-
-    public string m_host;
-    public string m_knownHosts;
-
-    string IConnectionRedirect.Host { get { return m_host; } }
-    string IConnectionRedirect.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionRedirect() {}
-    public ConnectionRedirect(
-      string initHost,
-      string initKnownHosts)
-    {
-      m_host = initHost;
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "connection.redirect"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_host = reader.ReadShortstr();
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_host);
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_host); sb.Append(",");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionClose: RabbitMQ.Client.Impl.MethodBase, IConnectionClose {
-    public const int ClassId = 10;
-    public const int MethodId = 60;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IConnectionClose.ReplyCode { get { return m_replyCode; } }
-    string IConnectionClose.ReplyText { get { return m_replyText; } }
-    ushort IConnectionClose.ClassId { get { return m_classId; } }
-    ushort IConnectionClose.MethodId { get { return m_methodId; } }
-
-    public ConnectionClose() {}
-    public ConnectionClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "connection.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionCloseOk: RabbitMQ.Client.Impl.MethodBase, IConnectionCloseOk {
-    public const int ClassId = 10;
-    public const int MethodId = 61;
-
-
-
-    public ConnectionCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 61; } }
-    public override string ProtocolMethodName { get { return "connection.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpen: RabbitMQ.Client.Impl.MethodBase, IChannelOpen {
-    public const int ClassId = 20;
-    public const int MethodId = 10;
-
-    public string m_outOfBand;
-
-    string IChannelOpen.OutOfBand { get { return m_outOfBand; } }
-
-    public ChannelOpen() {}
-    public ChannelOpen(
-      string initOutOfBand)
-    {
-      m_outOfBand = initOutOfBand;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "channel.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_outOfBand = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_outOfBand);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_outOfBand);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpenOk: RabbitMQ.Client.Impl.MethodBase, IChannelOpenOk {
-    public const int ClassId = 20;
-    public const int MethodId = 11;
-
-
-
-    public ChannelOpenOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "channel.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlow: RabbitMQ.Client.Impl.MethodBase, IChannelFlow {
-    public const int ClassId = 20;
-    public const int MethodId = 20;
-
-    public bool m_active;
-
-    bool IChannelFlow.Active { get { return m_active; } }
-
-    public ChannelFlow() {}
-    public ChannelFlow(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "channel.flow"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlowOk: RabbitMQ.Client.Impl.MethodBase, IChannelFlowOk {
-    public const int ClassId = 20;
-    public const int MethodId = 21;
-
-    public bool m_active;
-
-    bool IChannelFlowOk.Active { get { return m_active; } }
-
-    public ChannelFlowOk() {}
-    public ChannelFlowOk(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "channel.flow-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelAlert: RabbitMQ.Client.Impl.MethodBase, IChannelAlert {
-    public const int ClassId = 20;
-    public const int MethodId = 30;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public System.Collections.IDictionary m_details;
-
-    ushort IChannelAlert.ReplyCode { get { return m_replyCode; } }
-    string IChannelAlert.ReplyText { get { return m_replyText; } }
-    System.Collections.IDictionary IChannelAlert.Details { get { return m_details; } }
-
-    public ChannelAlert() {}
-    public ChannelAlert(
-      ushort initReplyCode,
-      string initReplyText,
-      System.Collections.IDictionary initDetails)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_details = initDetails;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "channel.alert"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_details = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteTable(m_details);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_details);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelClose: RabbitMQ.Client.Impl.MethodBase, IChannelClose {
-    public const int ClassId = 20;
-    public const int MethodId = 40;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IChannelClose.ReplyCode { get { return m_replyCode; } }
-    string IChannelClose.ReplyText { get { return m_replyText; } }
-    ushort IChannelClose.ClassId { get { return m_classId; } }
-    ushort IChannelClose.MethodId { get { return m_methodId; } }
-
-    public ChannelClose() {}
-    public ChannelClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "channel.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelCloseOk: RabbitMQ.Client.Impl.MethodBase, IChannelCloseOk {
-    public const int ClassId = 20;
-    public const int MethodId = 41;
-
-
-
-    public ChannelCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "channel.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequest: RabbitMQ.Client.Impl.MethodBase, IAccessRequest {
-    public const int ClassId = 30;
-    public const int MethodId = 10;
-
-    public string m_realm;
-    public bool m_exclusive;
-    public bool m_passive;
-    public bool m_active;
-    public bool m_write;
-    public bool m_read;
-
-    string IAccessRequest.Realm { get { return m_realm; } }
-    bool IAccessRequest.Exclusive { get { return m_exclusive; } }
-    bool IAccessRequest.Passive { get { return m_passive; } }
-    bool IAccessRequest.Active { get { return m_active; } }
-    bool IAccessRequest.Write { get { return m_write; } }
-    bool IAccessRequest.Read { get { return m_read; } }
-
-    public AccessRequest() {}
-    public AccessRequest(
-      string initRealm,
-      bool initExclusive,
-      bool initPassive,
-      bool initActive,
-      bool initWrite,
-      bool initRead)
-    {
-      m_realm = initRealm;
-      m_exclusive = initExclusive;
-      m_passive = initPassive;
-      m_active = initActive;
-      m_write = initWrite;
-      m_read = initRead;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "access.request"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_realm = reader.ReadShortstr();
-      m_exclusive = reader.ReadBit();
-      m_passive = reader.ReadBit();
-      m_active = reader.ReadBit();
-      m_write = reader.ReadBit();
-      m_read = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_realm);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_active);
-      writer.WriteBit(m_write);
-      writer.WriteBit(m_read);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_realm); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_active); sb.Append(",");
-      sb.Append(m_write); sb.Append(",");
-      sb.Append(m_read);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequestOk: RabbitMQ.Client.Impl.MethodBase, IAccessRequestOk {
-    public const int ClassId = 30;
-    public const int MethodId = 11;
-
-    public ushort m_ticket;
-
-    ushort IAccessRequestOk.Ticket { get { return m_ticket; } }
-
-    public AccessRequestOk() {}
-    public AccessRequestOk(
-      ushort initTicket)
-    {
-      m_ticket = initTicket;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "access.request-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclare: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclare {
-    public const int ClassId = 40;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_type;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_autoDelete;
-    public bool m_internal;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IExchangeDeclare.Ticket { get { return m_ticket; } }
-    string IExchangeDeclare.Exchange { get { return m_exchange; } }
-    string IExchangeDeclare.Type { get { return m_type; } }
-    bool IExchangeDeclare.Passive { get { return m_passive; } }
-    bool IExchangeDeclare.Durable { get { return m_durable; } }
-    bool IExchangeDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IExchangeDeclare.Internal { get { return m_internal; } }
-    bool IExchangeDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IExchangeDeclare.Arguments { get { return m_arguments; } }
-
-    public ExchangeDeclare() {}
-    public ExchangeDeclare(
-      ushort initTicket,
-      string initExchange,
-      string initType,
-      bool initPassive,
-      bool initDurable,
-      bool initAutoDelete,
-      bool initInternal,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_type = initType;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_autoDelete = initAutoDelete;
-      m_internal = initInternal;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "exchange.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_type = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_internal = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_type);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_internal);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_type); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_internal); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclareOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclareOk {
-    public const int ClassId = 40;
-    public const int MethodId = 11;
-
-
-
-    public ExchangeDeclareOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "exchange.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDelete: RabbitMQ.Client.Impl.MethodBase, IExchangeDelete {
-    public const int ClassId = 40;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public bool m_ifUnused;
-    public bool m_nowait;
-
-    ushort IExchangeDelete.Ticket { get { return m_ticket; } }
-    string IExchangeDelete.Exchange { get { return m_exchange; } }
-    bool IExchangeDelete.IfUnused { get { return m_ifUnused; } }
-    bool IExchangeDelete.Nowait { get { return m_nowait; } }
-
-    public ExchangeDelete() {}
-    public ExchangeDelete(
-      ushort initTicket,
-      string initExchange,
-      bool initIfUnused,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_ifUnused = initIfUnused;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "exchange.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeleteOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeleteOk {
-    public const int ClassId = 40;
-    public const int MethodId = 21;
-
-
-
-    public ExchangeDeleteOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "exchange.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeBound: RabbitMQ.Client.Impl.MethodBase, IExchangeBound {
-    public const int ClassId = 40;
-    public const int MethodId = 22;
-
-    public string m_exchange;
-    public string m_routingKey;
-    public string m_queue;
-
-    string IExchangeBound.Exchange { get { return m_exchange; } }
-    string IExchangeBound.RoutingKey { get { return m_routingKey; } }
-    string IExchangeBound.Queue { get { return m_queue; } }
-
-    public ExchangeBound() {}
-    public ExchangeBound(
-      string initExchange,
-      string initRoutingKey,
-      string initQueue)
-    {
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_queue = initQueue;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 22; } }
-    public override string ProtocolMethodName { get { return "exchange.bound"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_queue = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteShortstr(m_queue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_queue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeBoundOk: RabbitMQ.Client.Impl.MethodBase, IExchangeBoundOk {
-    public const int ClassId = 40;
-    public const int MethodId = 23;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-
-    ushort IExchangeBoundOk.ReplyCode { get { return m_replyCode; } }
-    string IExchangeBoundOk.ReplyText { get { return m_replyText; } }
-
-    public ExchangeBoundOk() {}
-    public ExchangeBoundOk(
-      ushort initReplyCode,
-      string initReplyText)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 23; } }
-    public override string ProtocolMethodName { get { return "exchange.bound-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclare: RabbitMQ.Client.Impl.MethodBase, IQueueDeclare {
-    public const int ClassId = 50;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_exclusive;
-    public bool m_autoDelete;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueDeclare.Ticket { get { return m_ticket; } }
-    string IQueueDeclare.Queue { get { return m_queue; } }
-    bool IQueueDeclare.Passive { get { return m_passive; } }
-    bool IQueueDeclare.Durable { get { return m_durable; } }
-    bool IQueueDeclare.Exclusive { get { return m_exclusive; } }
-    bool IQueueDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IQueueDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueDeclare.Arguments { get { return m_arguments; } }
-
-    public QueueDeclare() {}
-    public QueueDeclare(
-      ushort initTicket,
-      string initQueue,
-      bool initPassive,
-      bool initDurable,
-      bool initExclusive,
-      bool initAutoDelete,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_exclusive = initExclusive;
-      m_autoDelete = initAutoDelete;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "queue.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclareOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeclareOk {
-    public const int ClassId = 50;
-    public const int MethodId = 11;
-
-    public string m_queue;
-    public uint m_messageCount;
-    public uint m_consumerCount;
-
-    string IQueueDeclareOk.Queue { get { return m_queue; } }
-    uint IQueueDeclareOk.MessageCount { get { return m_messageCount; } }
-    uint IQueueDeclareOk.ConsumerCount { get { return m_consumerCount; } }
-
-    public QueueDeclareOk() {}
-    public QueueDeclareOk(
-      string initQueue,
-      uint initMessageCount,
-      uint initConsumerCount)
-    {
-      m_queue = initQueue;
-      m_messageCount = initMessageCount;
-      m_consumerCount = initConsumerCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "queue.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_queue = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-      m_consumerCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_queue);
-      writer.WriteLong(m_messageCount);
-      writer.WriteLong(m_consumerCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_messageCount); sb.Append(",");
-      sb.Append(m_consumerCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBind: RabbitMQ.Client.Impl.MethodBase, IQueueBind {
-    public const int ClassId = 50;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueBind.Ticket { get { return m_ticket; } }
-    string IQueueBind.Queue { get { return m_queue; } }
-    string IQueueBind.Exchange { get { return m_exchange; } }
-    string IQueueBind.RoutingKey { get { return m_routingKey; } }
-    bool IQueueBind.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueBind.Arguments { get { return m_arguments; } }
-
-    public QueueBind() {}
-    public QueueBind(
-      ushort initTicket,
-      string initQueue,
-      string initExchange,
-      string initRoutingKey,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "queue.bind"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBindOk: RabbitMQ.Client.Impl.MethodBase, IQueueBindOk {
-    public const int ClassId = 50;
-    public const int MethodId = 21;
-
-
-
-    public QueueBindOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "queue.bind-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurge: RabbitMQ.Client.Impl.MethodBase, IQueuePurge {
-    public const int ClassId = 50;
-    public const int MethodId = 30;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_nowait;
-
-    ushort IQueuePurge.Ticket { get { return m_ticket; } }
-    string IQueuePurge.Queue { get { return m_queue; } }
-    bool IQueuePurge.Nowait { get { return m_nowait; } }
-
-    public QueuePurge() {}
-    public QueuePurge(
-      ushort initTicket,
-      string initQueue,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "queue.purge"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurgeOk: RabbitMQ.Client.Impl.MethodBase, IQueuePurgeOk {
-    public const int ClassId = 50;
-    public const int MethodId = 31;
-
-    public uint m_messageCount;
-
-    uint IQueuePurgeOk.MessageCount { get { return m_messageCount; } }
-
-    public QueuePurgeOk() {}
-    public QueuePurgeOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "queue.purge-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDelete: RabbitMQ.Client.Impl.MethodBase, IQueueDelete {
-    public const int ClassId = 50;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_ifUnused;
-    public bool m_ifEmpty;
-    public bool m_nowait;
-
-    ushort IQueueDelete.Ticket { get { return m_ticket; } }
-    string IQueueDelete.Queue { get { return m_queue; } }
-    bool IQueueDelete.IfUnused { get { return m_ifUnused; } }
-    bool IQueueDelete.IfEmpty { get { return m_ifEmpty; } }
-    bool IQueueDelete.Nowait { get { return m_nowait; } }
-
-    public QueueDelete() {}
-    public QueueDelete(
-      ushort initTicket,
-      string initQueue,
-      bool initIfUnused,
-      bool initIfEmpty,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_ifUnused = initIfUnused;
-      m_ifEmpty = initIfEmpty;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "queue.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_ifEmpty = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_ifEmpty);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_ifEmpty); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeleteOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeleteOk {
-    public const int ClassId = 50;
-    public const int MethodId = 41;
-
-    public uint m_messageCount;
-
-    uint IQueueDeleteOk.MessageCount { get { return m_messageCount; } }
-
-    public QueueDeleteOk() {}
-    public QueueDeleteOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "queue.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQos: RabbitMQ.Client.Impl.MethodBase, IBasicQos {
-    public const int ClassId = 60;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IBasicQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IBasicQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IBasicQos.Global { get { return m_global; } }
-
-    public BasicQos() {}
-    public BasicQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "basic.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQosOk: RabbitMQ.Client.Impl.MethodBase, IBasicQosOk {
-    public const int ClassId = 60;
-    public const int MethodId = 11;
-
-
-
-    public BasicQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "basic.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsume: RabbitMQ.Client.Impl.MethodBase, IBasicConsume {
-    public const int ClassId = 60;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IBasicConsume.Ticket { get { return m_ticket; } }
-    string IBasicConsume.Queue { get { return m_queue; } }
-    string IBasicConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicConsume.NoLocal { get { return m_noLocal; } }
-    bool IBasicConsume.NoAck { get { return m_noAck; } }
-    bool IBasicConsume.Exclusive { get { return m_exclusive; } }
-    bool IBasicConsume.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IBasicConsume.Arguments { get { return m_arguments; } }
-
-    public BasicConsume() {}
-    public BasicConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "basic.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsumeOk: RabbitMQ.Client.Impl.MethodBase, IBasicConsumeOk {
-    public const int ClassId = 60;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IBasicConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicConsumeOk() {}
-    public BasicConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "basic.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancel: RabbitMQ.Client.Impl.MethodBase, IBasicCancel {
-    public const int ClassId = 60;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IBasicCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicCancel.Nowait { get { return m_nowait; } }
-
-    public BasicCancel() {}
-    public BasicCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "basic.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancelOk: RabbitMQ.Client.Impl.MethodBase, IBasicCancelOk {
-    public const int ClassId = 60;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IBasicCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicCancelOk() {}
-    public BasicCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "basic.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicPublish: RabbitMQ.Client.Impl.MethodBase, IBasicPublish {
-    public const int ClassId = 60;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IBasicPublish.Ticket { get { return m_ticket; } }
-    string IBasicPublish.Exchange { get { return m_exchange; } }
-    string IBasicPublish.RoutingKey { get { return m_routingKey; } }
-    bool IBasicPublish.Mandatory { get { return m_mandatory; } }
-    bool IBasicPublish.Immediate { get { return m_immediate; } }
-
-    public BasicPublish() {}
-    public BasicPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "basic.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReturn: RabbitMQ.Client.Impl.MethodBase, IBasicReturn {
-    public const int ClassId = 60;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IBasicReturn.ReplyCode { get { return m_replyCode; } }
-    string IBasicReturn.ReplyText { get { return m_replyText; } }
-    string IBasicReturn.Exchange { get { return m_exchange; } }
-    string IBasicReturn.RoutingKey { get { return m_routingKey; } }
-
-    public BasicReturn() {}
-    public BasicReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "basic.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicDeliver: RabbitMQ.Client.Impl.MethodBase, IBasicDeliver {
-    public const int ClassId = 60;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-
-    string IBasicDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IBasicDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicDeliver.Redelivered { get { return m_redelivered; } }
-    string IBasicDeliver.Exchange { get { return m_exchange; } }
-    string IBasicDeliver.RoutingKey { get { return m_routingKey; } }
-
-    public BasicDeliver() {}
-    public BasicDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "basic.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGet: RabbitMQ.Client.Impl.MethodBase, IBasicGet {
-    public const int ClassId = 60;
-    public const int MethodId = 70;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_noAck;
-
-    ushort IBasicGet.Ticket { get { return m_ticket; } }
-    string IBasicGet.Queue { get { return m_queue; } }
-    bool IBasicGet.NoAck { get { return m_noAck; } }
-
-    public BasicGet() {}
-    public BasicGet(
-      ushort initTicket,
-      string initQueue,
-      bool initNoAck)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_noAck = initNoAck;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "basic.get"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_noAck = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_noAck);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_noAck);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetOk: RabbitMQ.Client.Impl.MethodBase, IBasicGetOk {
-    public const int ClassId = 60;
-    public const int MethodId = 71;
-
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public uint m_messageCount;
-
-    ulong IBasicGetOk.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicGetOk.Redelivered { get { return m_redelivered; } }
-    string IBasicGetOk.Exchange { get { return m_exchange; } }
-    string IBasicGetOk.RoutingKey { get { return m_routingKey; } }
-    uint IBasicGetOk.MessageCount { get { return m_messageCount; } }
-
-    public BasicGetOk() {}
-    public BasicGetOk(
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      uint initMessageCount)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 71; } }
-    public override string ProtocolMethodName { get { return "basic.get-ok"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetEmpty: RabbitMQ.Client.Impl.MethodBase, IBasicGetEmpty {
-    public const int ClassId = 60;
-    public const int MethodId = 72;
-
-    public string m_clusterId;
-
-    string IBasicGetEmpty.ClusterId { get { return m_clusterId; } }
-
-    public BasicGetEmpty() {}
-    public BasicGetEmpty(
-      string initClusterId)
-    {
-      m_clusterId = initClusterId;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 72; } }
-    public override string ProtocolMethodName { get { return "basic.get-empty"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clusterId = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_clusterId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clusterId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicAck: RabbitMQ.Client.Impl.MethodBase, IBasicAck {
-    public const int ClassId = 60;
-    public const int MethodId = 80;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IBasicAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicAck.Multiple { get { return m_multiple; } }
-
-    public BasicAck() {}
-    public BasicAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "basic.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReject: RabbitMQ.Client.Impl.MethodBase, IBasicReject {
-    public const int ClassId = 60;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IBasicReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicReject.Requeue { get { return m_requeue; } }
-
-    public BasicReject() {}
-    public BasicReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "basic.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicRecover: RabbitMQ.Client.Impl.MethodBase, IBasicRecover {
-    public const int ClassId = 60;
-    public const int MethodId = 100;
-
-    public bool m_requeue;
-
-    bool IBasicRecover.Requeue { get { return m_requeue; } }
-
-    public BasicRecover() {}
-    public BasicRecover(
-      bool initRequeue)
-    {
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "basic.recover"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicRecoverOk: RabbitMQ.Client.Impl.MethodBase, IBasicRecoverOk {
-    public const int ClassId = 60;
-    public const int MethodId = 101;
-
-
-
-    public BasicRecoverOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 101; } }
-    public override string ProtocolMethodName { get { return "basic.recover-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQos: RabbitMQ.Client.Impl.MethodBase, IFileQos {
-    public const int ClassId = 70;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IFileQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IFileQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IFileQos.Global { get { return m_global; } }
-
-    public FileQos() {}
-    public FileQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "file.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQosOk: RabbitMQ.Client.Impl.MethodBase, IFileQosOk {
-    public const int ClassId = 70;
-    public const int MethodId = 11;
-
-
-
-    public FileQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "file.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsume: RabbitMQ.Client.Impl.MethodBase, IFileConsume {
-    public const int ClassId = 70;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-
-    ushort IFileConsume.Ticket { get { return m_ticket; } }
-    string IFileConsume.Queue { get { return m_queue; } }
-    string IFileConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileConsume.NoLocal { get { return m_noLocal; } }
-    bool IFileConsume.NoAck { get { return m_noAck; } }
-    bool IFileConsume.Exclusive { get { return m_exclusive; } }
-    bool IFileConsume.Nowait { get { return m_nowait; } }
-
-    public FileConsume() {}
-    public FileConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "file.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsumeOk: RabbitMQ.Client.Impl.MethodBase, IFileConsumeOk {
-    public const int ClassId = 70;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IFileConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileConsumeOk() {}
-    public FileConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "file.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancel: RabbitMQ.Client.Impl.MethodBase, IFileCancel {
-    public const int ClassId = 70;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IFileCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileCancel.Nowait { get { return m_nowait; } }
-
-    public FileCancel() {}
-    public FileCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "file.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancelOk: RabbitMQ.Client.Impl.MethodBase, IFileCancelOk {
-    public const int ClassId = 70;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IFileCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileCancelOk() {}
-    public FileCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "file.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpen: RabbitMQ.Client.Impl.MethodBase, IFileOpen {
-    public const int ClassId = 70;
-    public const int MethodId = 40;
-
-    public string m_identifier;
-    public ulong m_contentSize;
-
-    string IFileOpen.Identifier { get { return m_identifier; } }
-    ulong IFileOpen.ContentSize { get { return m_contentSize; } }
-
-    public FileOpen() {}
-    public FileOpen(
-      string initIdentifier,
-      ulong initContentSize)
-    {
-      m_identifier = initIdentifier;
-      m_contentSize = initContentSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "file.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_identifier = reader.ReadShortstr();
-      m_contentSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_identifier);
-      writer.WriteLonglong(m_contentSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_identifier); sb.Append(",");
-      sb.Append(m_contentSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpenOk: RabbitMQ.Client.Impl.MethodBase, IFileOpenOk {
-    public const int ClassId = 70;
-    public const int MethodId = 41;
-
-    public ulong m_stagedSize;
-
-    ulong IFileOpenOk.StagedSize { get { return m_stagedSize; } }
-
-    public FileOpenOk() {}
-    public FileOpenOk(
-      ulong initStagedSize)
-    {
-      m_stagedSize = initStagedSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "file.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_stagedSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_stagedSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_stagedSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileStage: RabbitMQ.Client.Impl.MethodBase, IFileStage {
-    public const int ClassId = 70;
-    public const int MethodId = 50;
-
-
-
-    public FileStage(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "file.stage"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FilePublish: RabbitMQ.Client.Impl.MethodBase, IFilePublish {
-    public const int ClassId = 70;
-    public const int MethodId = 60;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-    public string m_identifier;
-
-    ushort IFilePublish.Ticket { get { return m_ticket; } }
-    string IFilePublish.Exchange { get { return m_exchange; } }
-    string IFilePublish.RoutingKey { get { return m_routingKey; } }
-    bool IFilePublish.Mandatory { get { return m_mandatory; } }
-    bool IFilePublish.Immediate { get { return m_immediate; } }
-    string IFilePublish.Identifier { get { return m_identifier; } }
-
-    public FilePublish() {}
-    public FilePublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate,
-      string initIdentifier)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "file.publish"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReturn: RabbitMQ.Client.Impl.MethodBase, IFileReturn {
-    public const int ClassId = 70;
-    public const int MethodId = 70;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IFileReturn.ReplyCode { get { return m_replyCode; } }
-    string IFileReturn.ReplyText { get { return m_replyText; } }
-    string IFileReturn.Exchange { get { return m_exchange; } }
-    string IFileReturn.RoutingKey { get { return m_routingKey; } }
-
-    public FileReturn() {}
-    public FileReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "file.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileDeliver: RabbitMQ.Client.Impl.MethodBase, IFileDeliver {
-    public const int ClassId = 70;
-    public const int MethodId = 80;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public string m_identifier;
-
-    string IFileDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IFileDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileDeliver.Redelivered { get { return m_redelivered; } }
-    string IFileDeliver.Exchange { get { return m_exchange; } }
-    string IFileDeliver.RoutingKey { get { return m_routingKey; } }
-    string IFileDeliver.Identifier { get { return m_identifier; } }
-
-    public FileDeliver() {}
-    public FileDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      string initIdentifier)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "file.deliver"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileAck: RabbitMQ.Client.Impl.MethodBase, IFileAck {
-    public const int ClassId = 70;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IFileAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileAck.Multiple { get { return m_multiple; } }
-
-    public FileAck() {}
-    public FileAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "file.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReject: RabbitMQ.Client.Impl.MethodBase, IFileReject {
-    public const int ClassId = 70;
-    public const int MethodId = 100;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IFileReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileReject.Requeue { get { return m_requeue; } }
-
-    public FileReject() {}
-    public FileReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "file.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQos: RabbitMQ.Client.Impl.MethodBase, IStreamQos {
-    public const int ClassId = 80;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public uint m_consumeRate;
-    public bool m_global;
-
-    uint IStreamQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IStreamQos.PrefetchCount { get { return m_prefetchCount; } }
-    uint IStreamQos.ConsumeRate { get { return m_consumeRate; } }
-    bool IStreamQos.Global { get { return m_global; } }
-
-    public StreamQos() {}
-    public StreamQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      uint initConsumeRate,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_consumeRate = initConsumeRate;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "stream.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_consumeRate = reader.ReadLong();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteLong(m_consumeRate);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_consumeRate); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQosOk: RabbitMQ.Client.Impl.MethodBase, IStreamQosOk {
-    public const int ClassId = 80;
-    public const int MethodId = 11;
-
-
-
-    public StreamQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "stream.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsume: RabbitMQ.Client.Impl.MethodBase, IStreamConsume {
-    public const int ClassId = 80;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_exclusive;
-    public bool m_nowait;
-
-    ushort IStreamConsume.Ticket { get { return m_ticket; } }
-    string IStreamConsume.Queue { get { return m_queue; } }
-    string IStreamConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamConsume.NoLocal { get { return m_noLocal; } }
-    bool IStreamConsume.Exclusive { get { return m_exclusive; } }
-    bool IStreamConsume.Nowait { get { return m_nowait; } }
-
-    public StreamConsume() {}
-    public StreamConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initExclusive,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "stream.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsumeOk: RabbitMQ.Client.Impl.MethodBase, IStreamConsumeOk {
-    public const int ClassId = 80;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IStreamConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamConsumeOk() {}
-    public StreamConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "stream.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancel: RabbitMQ.Client.Impl.MethodBase, IStreamCancel {
-    public const int ClassId = 80;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IStreamCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamCancel.Nowait { get { return m_nowait; } }
-
-    public StreamCancel() {}
-    public StreamCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "stream.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancelOk: RabbitMQ.Client.Impl.MethodBase, IStreamCancelOk {
-    public const int ClassId = 80;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IStreamCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamCancelOk() {}
-    public StreamCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "stream.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamPublish: RabbitMQ.Client.Impl.MethodBase, IStreamPublish {
-    public const int ClassId = 80;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IStreamPublish.Ticket { get { return m_ticket; } }
-    string IStreamPublish.Exchange { get { return m_exchange; } }
-    string IStreamPublish.RoutingKey { get { return m_routingKey; } }
-    bool IStreamPublish.Mandatory { get { return m_mandatory; } }
-    bool IStreamPublish.Immediate { get { return m_immediate; } }
-
-    public StreamPublish() {}
-    public StreamPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "stream.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamReturn: RabbitMQ.Client.Impl.MethodBase, IStreamReturn {
-    public const int ClassId = 80;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IStreamReturn.ReplyCode { get { return m_replyCode; } }
-    string IStreamReturn.ReplyText { get { return m_replyText; } }
-    string IStreamReturn.Exchange { get { return m_exchange; } }
-    string IStreamReturn.RoutingKey { get { return m_routingKey; } }
-
-    public StreamReturn() {}
-    public StreamReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "stream.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamDeliver: RabbitMQ.Client.Impl.MethodBase, IStreamDeliver {
-    public const int ClassId = 80;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public string m_exchange;
-    public string m_queue;
-
-    string IStreamDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IStreamDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    string IStreamDeliver.Exchange { get { return m_exchange; } }
-    string IStreamDeliver.Queue { get { return m_queue; } }
-
-    public StreamDeliver() {}
-    public StreamDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      string initExchange,
-      string initQueue)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_exchange = initExchange;
-      m_queue = initQueue;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "stream.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_exchange = reader.ReadShortstr();
-      m_queue = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_queue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_queue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelect: RabbitMQ.Client.Impl.MethodBase, ITxSelect {
-    public const int ClassId = 90;
-    public const int MethodId = 10;
-
-
-
-    public TxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelectOk: RabbitMQ.Client.Impl.MethodBase, ITxSelectOk {
-    public const int ClassId = 90;
-    public const int MethodId = 11;
-
-
-
-    public TxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "tx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommit: RabbitMQ.Client.Impl.MethodBase, ITxCommit {
-    public const int ClassId = 90;
-    public const int MethodId = 20;
-
-
-
-    public TxCommit(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "tx.commit"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommitOk: RabbitMQ.Client.Impl.MethodBase, ITxCommitOk {
-    public const int ClassId = 90;
-    public const int MethodId = 21;
-
-
-
-    public TxCommitOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "tx.commit-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollback: RabbitMQ.Client.Impl.MethodBase, ITxRollback {
-    public const int ClassId = 90;
-    public const int MethodId = 30;
-
-
-
-    public TxRollback(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "tx.rollback"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollbackOk: RabbitMQ.Client.Impl.MethodBase, ITxRollbackOk {
-    public const int ClassId = 90;
-    public const int MethodId = 31;
-
-
-
-    public TxRollbackOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "tx.rollback-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelect: RabbitMQ.Client.Impl.MethodBase, IDtxSelect {
-    public const int ClassId = 100;
-    public const int MethodId = 10;
-
-
-
-    public DtxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "dtx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelectOk: RabbitMQ.Client.Impl.MethodBase, IDtxSelectOk {
-    public const int ClassId = 100;
-    public const int MethodId = 11;
-
-
-
-    public DtxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "dtx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStart: RabbitMQ.Client.Impl.MethodBase, IDtxStart {
-    public const int ClassId = 100;
-    public const int MethodId = 20;
-
-    public string m_dtxIdentifier;
-
-    string IDtxStart.DtxIdentifier { get { return m_dtxIdentifier; } }
-
-    public DtxStart() {}
-    public DtxStart(
-      string initDtxIdentifier)
-    {
-      m_dtxIdentifier = initDtxIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "dtx.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_dtxIdentifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_dtxIdentifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_dtxIdentifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStartOk: RabbitMQ.Client.Impl.MethodBase, IDtxStartOk {
-    public const int ClassId = 100;
-    public const int MethodId = 21;
-
-
-
-    public DtxStartOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "dtx.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TunnelRequest: RabbitMQ.Client.Impl.MethodBase, ITunnelRequest {
-    public const int ClassId = 110;
-    public const int MethodId = 10;
-
-    public System.Collections.IDictionary m_metaData;
-
-    System.Collections.IDictionary ITunnelRequest.MetaData { get { return m_metaData; } }
-
-    public TunnelRequest() {}
-    public TunnelRequest(
-      System.Collections.IDictionary initMetaData)
-    {
-      m_metaData = initMetaData;
-    }
-
-    public override int ProtocolClassId { get { return 110; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tunnel.request"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_metaData = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_metaData);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_metaData);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestInteger: RabbitMQ.Client.Impl.MethodBase, ITestInteger {
-    public const int ClassId = 120;
-    public const int MethodId = 10;
-
-    public byte m_integer1;
-    public ushort m_integer2;
-    public uint m_integer3;
-    public ulong m_integer4;
-    public byte m_operation;
-
-    byte ITestInteger.Integer1 { get { return m_integer1; } }
-    ushort ITestInteger.Integer2 { get { return m_integer2; } }
-    uint ITestInteger.Integer3 { get { return m_integer3; } }
-    ulong ITestInteger.Integer4 { get { return m_integer4; } }
-    byte ITestInteger.Operation { get { return m_operation; } }
-
-    public TestInteger() {}
-    public TestInteger(
-      byte initInteger1,
-      ushort initInteger2,
-      uint initInteger3,
-      ulong initInteger4,
-      byte initOperation)
-    {
-      m_integer1 = initInteger1;
-      m_integer2 = initInteger2;
-      m_integer3 = initInteger3;
-      m_integer4 = initInteger4;
-      m_operation = initOperation;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "test.integer"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_integer1 = reader.ReadOctet();
-      m_integer2 = reader.ReadShort();
-      m_integer3 = reader.ReadLong();
-      m_integer4 = reader.ReadLonglong();
-      m_operation = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteOctet(m_integer1);
-      writer.WriteShort(m_integer2);
-      writer.WriteLong(m_integer3);
-      writer.WriteLonglong(m_integer4);
-      writer.WriteOctet(m_operation);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_integer1); sb.Append(",");
-      sb.Append(m_integer2); sb.Append(",");
-      sb.Append(m_integer3); sb.Append(",");
-      sb.Append(m_integer4); sb.Append(",");
-      sb.Append(m_operation);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestIntegerOk: RabbitMQ.Client.Impl.MethodBase, ITestIntegerOk {
-    public const int ClassId = 120;
-    public const int MethodId = 11;
-
-    public ulong m_result;
-
-    ulong ITestIntegerOk.Result { get { return m_result; } }
-
-    public TestIntegerOk() {}
-    public TestIntegerOk(
-      ulong initResult)
-    {
-      m_result = initResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "test.integer-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_result = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_result);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_result);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestString: RabbitMQ.Client.Impl.MethodBase, ITestString {
-    public const int ClassId = 120;
-    public const int MethodId = 20;
-
-    public string m_string1;
-    public byte[] m_string2;
-    public byte m_operation;
-
-    string ITestString.String1 { get { return m_string1; } }
-    byte[] ITestString.String2 { get { return m_string2; } }
-    byte ITestString.Operation { get { return m_operation; } }
-
-    public TestString() {}
-    public TestString(
-      string initString1,
-      byte[] initString2,
-      byte initOperation)
-    {
-      m_string1 = initString1;
-      m_string2 = initString2;
-      m_operation = initOperation;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "test.string"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_string1 = reader.ReadShortstr();
-      m_string2 = reader.ReadLongstr();
-      m_operation = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_string1);
-      writer.WriteLongstr(m_string2);
-      writer.WriteOctet(m_operation);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_string1); sb.Append(",");
-      sb.Append(m_string2); sb.Append(",");
-      sb.Append(m_operation);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestStringOk: RabbitMQ.Client.Impl.MethodBase, ITestStringOk {
-    public const int ClassId = 120;
-    public const int MethodId = 21;
-
-    public byte[] m_result;
-
-    byte[] ITestStringOk.Result { get { return m_result; } }
-
-    public TestStringOk() {}
-    public TestStringOk(
-      byte[] initResult)
-    {
-      m_result = initResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "test.string-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_result = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_result);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_result);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestTable: RabbitMQ.Client.Impl.MethodBase, ITestTable {
-    public const int ClassId = 120;
-    public const int MethodId = 30;
-
-    public System.Collections.IDictionary m_table;
-    public byte m_integerOp;
-    public byte m_stringOp;
-
-    System.Collections.IDictionary ITestTable.Table { get { return m_table; } }
-    byte ITestTable.IntegerOp { get { return m_integerOp; } }
-    byte ITestTable.StringOp { get { return m_stringOp; } }
-
-    public TestTable() {}
-    public TestTable(
-      System.Collections.IDictionary initTable,
-      byte initIntegerOp,
-      byte initStringOp)
-    {
-      m_table = initTable;
-      m_integerOp = initIntegerOp;
-      m_stringOp = initStringOp;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "test.table"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_table = reader.ReadTable();
-      m_integerOp = reader.ReadOctet();
-      m_stringOp = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_table);
-      writer.WriteOctet(m_integerOp);
-      writer.WriteOctet(m_stringOp);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_table); sb.Append(",");
-      sb.Append(m_integerOp); sb.Append(",");
-      sb.Append(m_stringOp);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestTableOk: RabbitMQ.Client.Impl.MethodBase, ITestTableOk {
-    public const int ClassId = 120;
-    public const int MethodId = 31;
-
-    public ulong m_integerResult;
-    public byte[] m_stringResult;
-
-    ulong ITestTableOk.IntegerResult { get { return m_integerResult; } }
-    byte[] ITestTableOk.StringResult { get { return m_stringResult; } }
-
-    public TestTableOk() {}
-    public TestTableOk(
-      ulong initIntegerResult,
-      byte[] initStringResult)
-    {
-      m_integerResult = initIntegerResult;
-      m_stringResult = initStringResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "test.table-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_integerResult = reader.ReadLonglong();
-      m_stringResult = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_integerResult);
-      writer.WriteLongstr(m_stringResult);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_integerResult); sb.Append(",");
-      sb.Append(m_stringResult);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestContent: RabbitMQ.Client.Impl.MethodBase, ITestContent {
-    public const int ClassId = 120;
-    public const int MethodId = 40;
-
-
-
-    public TestContent(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "test.content"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestContentOk: RabbitMQ.Client.Impl.MethodBase, ITestContentOk {
-    public const int ClassId = 120;
-    public const int MethodId = 41;
-
-    public uint m_contentChecksum;
-
-    uint ITestContentOk.ContentChecksum { get { return m_contentChecksum; } }
-
-    public TestContentOk() {}
-    public TestContentOk(
-      uint initContentChecksum)
-    {
-      m_contentChecksum = initContentChecksum;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "test.content-ok"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_contentChecksum = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_contentChecksum);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_contentChecksum);
-      sb.Append(")");
-    }
-  }
-
-  public class Model: RabbitMQ.Client.Impl.ModelBase {
-    public Model(RabbitMQ.Client.Impl.ISession session): base(session) {}
-    public override void _Private_BasicPublish(
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @mandatory,
-      System.Boolean @immediate,
-      RabbitMQ.Client.IBasicProperties @basicProperties,
-      System.Byte[] @body)
-    {
-      BasicPublish __req = new BasicPublish();
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_mandatory = @mandatory;
-      __req.m_immediate = @immediate;
-      ModelSend(__req, (BasicProperties) basicProperties,body);
-    }
-    public override void _Private_BasicConsume(
-      System.String @queue,
-      System.String @consumerTag,
-      System.Boolean @noLocal,
-      System.Boolean @noAck,
-      System.Boolean @exclusive,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @filter)
-    {
-      BasicConsume __req = new BasicConsume();
-      __req.m_queue = @queue;
-      __req.m_consumerTag = @consumerTag;
-      __req.m_noLocal = @noLocal;
-      __req.m_noAck = @noAck;
-      __req.m_exclusive = @exclusive;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @filter;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicCancel(
-      System.String @consumerTag,
-      System.Boolean @nowait)
-    {
-      BasicCancel __req = new BasicCancel();
-      __req.m_consumerTag = @consumerTag;
-      __req.m_nowait = @nowait;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelOpen(
-      System.String @outOfBand)
-    {
-      ChannelOpen __req = new ChannelOpen();
-      __req.m_outOfBand = @outOfBand;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelOpenOk __rep = __repBase as ChannelOpenOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ChannelCloseOk()
-    {
-      ChannelCloseOk __req = new ChannelCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ChannelClose __req = new ChannelClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicGet(
-      System.String @queue,
-      System.Boolean @noAck)
-    {
-      BasicGet __req = new BasicGet();
-      __req.m_queue = @queue;
-      __req.m_noAck = @noAck;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelFlowOk()
-    {
-      ChannelFlowOk __req = new ChannelFlowOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.Impl.ConnectionTuneDetails ConnectionStartOk(
-      System.Collections.IDictionary @clientProperties,
-      System.String @mechanism,
-      System.Byte[] @response,
-      System.String @locale)
-    {
-      ConnectionStartOk __req = new ConnectionStartOk();
-      __req.m_clientProperties = @clientProperties;
-      __req.m_mechanism = @mechanism;
-      __req.m_response = @response;
-      __req.m_locale = @locale;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionTune __rep = __repBase as ConnectionTune;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      RabbitMQ.Client.Impl.ConnectionTuneDetails __result = new RabbitMQ.Client.Impl.ConnectionTuneDetails();
-      __result.m_channelMax = __rep.m_channelMax;
-      __result.m_frameMax = __rep.m_frameMax;
-      __result.m_heartbeat = __rep.m_heartbeat;
-      return __result;
-    }
-    public override void ConnectionTuneOk(
-      System.UInt16 @channelMax,
-      System.UInt32 @frameMax,
-      System.UInt16 @heartbeat)
-    {
-      ConnectionTuneOk __req = new ConnectionTuneOk();
-      __req.m_channelMax = @channelMax;
-      __req.m_frameMax = @frameMax;
-      __req.m_heartbeat = @heartbeat;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionOpen(
-      System.String @virtualHost,
-      System.String @capabilities,
-      System.Boolean @insist)
-    {
-      ConnectionOpen __req = new ConnectionOpen();
-      __req.m_virtualHost = @virtualHost;
-      __req.m_capabilities = @capabilities;
-      __req.m_insist = @insist;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ConnectionClose __req = new ConnectionClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionCloseOk __rep = __repBase as ConnectionCloseOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ConnectionCloseOk()
-    {
-      ConnectionCloseOk __req = new ConnectionCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.IBasicProperties CreateBasicProperties()
-    {
-      return new BasicProperties();
-    }
-    public override RabbitMQ.Client.IFileProperties CreateFileProperties()
-    {
-      return new FileProperties();
-    }
-    public override RabbitMQ.Client.IStreamProperties CreateStreamProperties()
-    {
-      return new StreamProperties();
-    }
-    public override void ChannelFlow(
-      System.Boolean @active)
-    {
-      ChannelFlow __req = new ChannelFlow();
-      __req.m_active = @active;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelFlowOk __rep = __repBase as ChannelFlowOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDeclare(
-      System.String @exchange,
-      System.String @type,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @autoDelete,
-      System.Boolean @internal,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      ExchangeDeclare __req = new ExchangeDeclare();
-      __req.m_exchange = @exchange;
-      __req.m_type = @type;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_internal = @internal;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeclareOk __rep = __repBase as ExchangeDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDelete(
-      System.String @exchange,
-      System.Boolean @ifUnused,
-      System.Boolean @nowait)
-    {
-      ExchangeDelete __req = new ExchangeDelete();
-      __req.m_exchange = @exchange;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeleteOk __rep = __repBase as ExchangeDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override System.String QueueDeclare(
-      System.String @queue,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @exclusive,
-      System.Boolean @autoDelete,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueDeclare __req = new QueueDeclare();
-      __req.m_queue = @queue;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_exclusive = @exclusive;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return null;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeclareOk __rep = __repBase as QueueDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_queue;
-    }
-    public override void QueueBind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueBind __req = new QueueBind();
-      __req.m_queue = @queue;
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueBindOk __rep = __repBase as QueueBindOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void QueueUnbind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Collections.IDictionary @arguments)
-    {
-      throw new UnsupportedMethodException("QueueUnbind");
-    }
-    public override System.UInt32 QueuePurge(
-      System.String @queue,
-      System.Boolean @nowait)
-    {
-      QueuePurge __req = new QueuePurge();
-      __req.m_queue = @queue;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueuePurgeOk __rep = __repBase as QueuePurgeOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override System.UInt32 QueueDelete(
-      System.String @queue,
-      System.Boolean @ifUnused,
-      System.Boolean @ifEmpty,
-      System.Boolean @nowait)
-    {
-      QueueDelete __req = new QueueDelete();
-      __req.m_queue = @queue;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_ifEmpty = @ifEmpty;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeleteOk __rep = __repBase as QueueDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override void BasicQos(
-      System.UInt32 @prefetchSize,
-      System.UInt16 @prefetchCount,
-      System.Boolean @global)
-    {
-      BasicQos __req = new BasicQos();
-      __req.m_prefetchSize = @prefetchSize;
-      __req.m_prefetchCount = @prefetchCount;
-      __req.m_global = @global;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      BasicQosOk __rep = __repBase as BasicQosOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void BasicAck(
-      System.UInt64 @deliveryTag,
-      System.Boolean @multiple)
-    {
-      BasicAck __req = new BasicAck();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_multiple = @multiple;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicReject(
-      System.UInt64 @deliveryTag,
-      System.Boolean @requeue)
-    {
-      BasicReject __req = new BasicReject();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_requeue = @requeue;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicRecover(
-      System.Boolean @requeue)
-    {
-      BasicRecover __req = new BasicRecover();
-      __req.m_requeue = @requeue;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      BasicRecoverOk __rep = __repBase as BasicRecoverOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxSelect()
-    {
-      TxSelect __req = new TxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxSelectOk __rep = __repBase as TxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxCommit()
-    {
-      TxCommit __req = new TxCommit();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxCommitOk __rep = __repBase as TxCommitOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxRollback()
-    {
-      TxRollback __req = new TxRollback();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxRollbackOk __rep = __repBase as TxRollbackOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxSelect()
-    {
-      DtxSelect __req = new DtxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxSelectOk __rep = __repBase as DtxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxStart(
-      System.String @dtxIdentifier)
-    {
-      DtxStart __req = new DtxStart();
-      __req.m_dtxIdentifier = @dtxIdentifier;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxStartOk __rep = __repBase as DtxStartOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override bool DispatchAsynchronous(RabbitMQ.Client.Impl.Command cmd) {
-      RabbitMQ.Client.Impl.MethodBase __method = (RabbitMQ.Client.Impl.MethodBase) cmd.Method;
-      switch ((__method.ProtocolClassId << 16) | __method.ProtocolMethodId) {
-        case 3932181: {
-          BasicConsumeOk __impl = (BasicConsumeOk) __method;
-          HandleBasicConsumeOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932191: {
-          BasicCancelOk __impl = (BasicCancelOk) __method;
-          HandleBasicCancelOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932231: {
-          BasicGetOk __impl = (BasicGetOk) __method;
-          HandleBasicGetOk(
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            __impl.m_messageCount,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932232: {
-          HandleBasicGetEmpty();
-          return true;
-        }
-        case 3932220: {
-          BasicDeliver __impl = (BasicDeliver) __method;
-          HandleBasicDeliver(
-            __impl.m_consumerTag,
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932210: {
-          BasicReturn __impl = (BasicReturn) __method;
-          HandleBasicReturn(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 1310740: {
-          ChannelFlow __impl = (ChannelFlow) __method;
-          HandleChannelFlow(
-            __impl.m_active);
-          return true;
-        }
-        case 1310760: {
-          ChannelClose __impl = (ChannelClose) __method;
-          HandleChannelClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        case 1310761: {
-          HandleChannelCloseOk();
-          return true;
-        }
-        case 655370: {
-          ConnectionStart __impl = (ConnectionStart) __method;
-          HandleConnectionStart(
-            __impl.m_versionMajor,
-            __impl.m_versionMinor,
-            __impl.m_serverProperties,
-            __impl.m_mechanisms,
-            __impl.m_locales);
-          return true;
-        }
-        case 655401: {
-          ConnectionOpenOk __impl = (ConnectionOpenOk) __method;
-          HandleConnectionOpenOk(
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655410: {
-          ConnectionRedirect __impl = (ConnectionRedirect) __method;
-          HandleConnectionRedirect(
-            __impl.m_host,
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655420: {
-          ConnectionClose __impl = (ConnectionClose) __method;
-          HandleConnectionClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        default: return false;
-      }
-    }
-  }
-}
diff --git a/mcs/class/RabbitMQ.Client/docs/specs/net_4_0-api-0-8.cs b/mcs/class/RabbitMQ.Client/docs/specs/net_4_0-api-0-8.cs
deleted file mode 100644 (file)
index 472ea42..0000000
+++ /dev/null
@@ -1,6431 +0,0 @@
-// Autogenerated code. Do not edit.
-
-// This source code is dual-licensed under the Apache License, version
-// 2.0, and the Mozilla Public License, version 1.1.
-//
-// The APL v2.0:
-//
-//---------------------------------------------------------------------------
-//   Copyright (C) 2007-2010 LShift Ltd., Cohesive Financial
-//   Technologies LLC., and Rabbit Technologies Ltd.
-//
-//   Licensed under the Apache License, Version 2.0 (the "License");
-//   you may not use this file except in compliance with the License.
-//   You may obtain a copy of the License at
-//
-//       http://www.apache.org/licenses/LICENSE-2.0
-//
-//   Unless required by applicable law or agreed to in writing, software
-//   distributed under the License is distributed on an "AS IS" BASIS,
-//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//   See the License for the specific language governing permissions and
-//   limitations under the License.
-//---------------------------------------------------------------------------
-//
-// The MPL v1.1:
-//
-//---------------------------------------------------------------------------
-//   The contents of this file are subject to the Mozilla Public License
-//   Version 1.1 (the "License"); you may not use this file except in
-//   compliance with the License. You may obtain a copy of the License at
-//   http://www.rabbitmq.com/mpl.html
-//
-//   Software distributed under the License is distributed on an "AS IS"
-//   basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//   License for the specific language governing rights and limitations
-//   under the License.
-//
-//   The Original Code is The RabbitMQ .NET Client.
-//
-//   The Initial Developers of the Original Code are LShift Ltd,
-//   Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
-//   Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
-//   are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
-//   Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created by LShift Ltd are Copyright (C) 2007-2010 LShift
-//   Ltd. Portions created by Cohesive Financial Technologies LLC are
-//   Copyright (C) 2007-2010 Cohesive Financial Technologies
-//   LLC. Portions created by Rabbit Technologies Ltd are Copyright
-//   (C) 2007-2010 Rabbit Technologies Ltd.
-//
-//   All Rights Reserved.
-//
-//   Contributor(s): ______________________________________.
-//
-//---------------------------------------------------------------------------
-
-using RabbitMQ.Client;
-using RabbitMQ.Client.Exceptions;
-
-namespace RabbitMQ.Client.Framing.v0_8 {
-  public class Protocol: RabbitMQ.Client.Framing.Impl.v0_8.ProtocolBase {
-    ///<summary>Protocol major version (= 8)</summary>
-    public override int MajorVersion { get { return 8; } }
-    ///<summary>Protocol minor version (= 0)</summary>
-    public override int MinorVersion { get { return 0; } }
-    ///<summary>Protocol API name (= AMQP_0_8)</summary>
-    public override string ApiName { get { return "AMQP_0_8"; } }
-    ///<summary>Default TCP port (= 5672)</summary>
-    public override int DefaultPort { get { return 5672; } }
-
-    public override RabbitMQ.Client.Impl.MethodBase DecodeMethodFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-      ushort methodId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 10: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionStart result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionStartOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionSecure result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionSecure();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionSecureOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionSecureOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionTune result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionTune();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionTuneOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionTuneOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionOpen result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionRedirect result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionRedirect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionClose result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 61: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 20: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelOpen result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelFlow result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelFlow();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelFlowOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelFlowOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelAlert result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelAlert();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelClose result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 30: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.AccessRequest result = new RabbitMQ.Client.Framing.Impl.v0_8.AccessRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.AccessRequestOk result = new RabbitMQ.Client.Framing.Impl.v0_8.AccessRequestOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 40: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeclare result = new RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDelete result = new RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 50: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueDeclare result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueBind result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueBind();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueBindOk result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueBindOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueUnbind result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueUnbind();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 51: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueUnbindOk result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueUnbindOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueuePurge result = new RabbitMQ.Client.Framing.Impl.v0_8.QueuePurge();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueuePurgeOk result = new RabbitMQ.Client.Framing.Impl.v0_8.QueuePurgeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueDelete result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 60: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicQos result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicConsume result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicCancel result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicPublish result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicReturn result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicGet result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicGet();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 71: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicGetOk result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicGetOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 72: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicGetEmpty result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicGetEmpty();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicAck result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicReject result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicRecover result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicRecover();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 70: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileQos result = new RabbitMQ.Client.Framing.Impl.v0_8.FileQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8.FileQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileConsume result = new RabbitMQ.Client.Framing.Impl.v0_8.FileConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8.FileConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileCancel result = new RabbitMQ.Client.Framing.Impl.v0_8.FileCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8.FileCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileOpen result = new RabbitMQ.Client.Framing.Impl.v0_8.FileOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8.FileOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileStage result = new RabbitMQ.Client.Framing.Impl.v0_8.FileStage();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FilePublish result = new RabbitMQ.Client.Framing.Impl.v0_8.FilePublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileReturn result = new RabbitMQ.Client.Framing.Impl.v0_8.FileReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8.FileDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileAck result = new RabbitMQ.Client.Framing.Impl.v0_8.FileAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileReject result = new RabbitMQ.Client.Framing.Impl.v0_8.FileReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 80: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamQos result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamConsume result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamCancel result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamPublish result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamReturn result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 90: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxSelect result = new RabbitMQ.Client.Framing.Impl.v0_8.TxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxCommit result = new RabbitMQ.Client.Framing.Impl.v0_8.TxCommit();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxCommitOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TxCommitOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxRollback result = new RabbitMQ.Client.Framing.Impl.v0_8.TxRollback();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxRollbackOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TxRollbackOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 100: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.DtxSelect result = new RabbitMQ.Client.Framing.Impl.v0_8.DtxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.DtxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_8.DtxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.DtxStart result = new RabbitMQ.Client.Framing.Impl.v0_8.DtxStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.DtxStartOk result = new RabbitMQ.Client.Framing.Impl.v0_8.DtxStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 110: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TunnelRequest result = new RabbitMQ.Client.Framing.Impl.v0_8.TunnelRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 120: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestInteger result = new RabbitMQ.Client.Framing.Impl.v0_8.TestInteger();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestIntegerOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TestIntegerOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestString result = new RabbitMQ.Client.Framing.Impl.v0_8.TestString();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestStringOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TestStringOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestTable result = new RabbitMQ.Client.Framing.Impl.v0_8.TestTable();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestTableOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TestTableOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestContent result = new RabbitMQ.Client.Framing.Impl.v0_8.TestContent();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestContentOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TestContentOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, methodId);
-    }
-
-    public override RabbitMQ.Client.Impl.ContentHeaderBase DecodeContentHeaderFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 60: return new BasicProperties();
-        case 70: return new FileProperties();
-        case 80: return new StreamProperties();
-        case 110: return new TunnelProperties();
-        case 120: return new TestProperties();
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, 0);
-    }
-  }
-  public class Constants {
-    ///<summary>(= 1)</summary>
-    public const int FrameMethod = 1;
-    ///<summary>(= 2)</summary>
-    public const int FrameHeader = 2;
-    ///<summary>(= 3)</summary>
-    public const int FrameBody = 3;
-    ///<summary>(= 4)</summary>
-    public const int FrameOobMethod = 4;
-    ///<summary>(= 5)</summary>
-    public const int FrameOobHeader = 5;
-    ///<summary>(= 6)</summary>
-    public const int FrameOobBody = 6;
-    ///<summary>(= 7)</summary>
-    public const int FrameTrace = 7;
-    ///<summary>(= 8)</summary>
-    public const int FrameHeartbeat = 8;
-    ///<summary>(= 4096)</summary>
-    public const int FrameMinSize = 4096;
-    ///<summary>(= 206)</summary>
-    public const int FrameEnd = 206;
-    ///<summary>(= 200)</summary>
-    public const int ReplySuccess = 200;
-    ///<summary>(= 310)</summary>
-    public const int NotDelivered = 310;
-    ///<summary>(= 311)</summary>
-    public const int ContentTooLarge = 311;
-    ///<summary>(= 320)</summary>
-    public const int ConnectionForced = 320;
-    ///<summary>(= 402)</summary>
-    public const int InvalidPath = 402;
-    ///<summary>(= 403)</summary>
-    public const int AccessRefused = 403;
-    ///<summary>(= 404)</summary>
-    public const int NotFound = 404;
-    ///<summary>(= 405)</summary>
-    public const int ResourceLocked = 405;
-    ///<summary>(= 501)</summary>
-    public const int FrameError = 501;
-    ///<summary>(= 502)</summary>
-    public const int SyntaxError = 502;
-    ///<summary>(= 503)</summary>
-    public const int CommandInvalid = 503;
-    ///<summary>(= 504)</summary>
-    public const int ChannelError = 504;
-    ///<summary>(= 506)</summary>
-    public const int ResourceError = 506;
-    ///<summary>(= 530)</summary>
-    public const int NotAllowed = 530;
-    ///<summary>(= 540)</summary>
-    public const int NotImplemented = 540;
-    ///<summary>(= 541)</summary>
-    public const int InternalError = 541;
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start".</summary>
-  public interface IConnectionStart: IMethod {
-    byte VersionMajor { get; }
-    byte VersionMinor { get; }
-    System.Collections.IDictionary ServerProperties { get; }
-    byte[] Mechanisms { get; }
-    byte[] Locales { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start-ok".</summary>
-  public interface IConnectionStartOk: IMethod {
-    System.Collections.IDictionary ClientProperties { get; }
-    string Mechanism { get; }
-    byte[] Response { get; }
-    string Locale { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure".</summary>
-  public interface IConnectionSecure: IMethod {
-    byte[] Challenge { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure-ok".</summary>
-  public interface IConnectionSecureOk: IMethod {
-    byte[] Response { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune".</summary>
-  public interface IConnectionTune: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune-ok".</summary>
-  public interface IConnectionTuneOk: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open".</summary>
-  public interface IConnectionOpen: IMethod {
-    string VirtualHost { get; }
-    string Capabilities { get; }
-    bool Insist { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open-ok".</summary>
-  public interface IConnectionOpenOk: IMethod {
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.redirect".</summary>
-  public interface IConnectionRedirect: IMethod {
-    string Host { get; }
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close".</summary>
-  public interface IConnectionClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close-ok".</summary>
-  public interface IConnectionCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open".</summary>
-  public interface IChannelOpen: IMethod {
-    string OutOfBand { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open-ok".</summary>
-  public interface IChannelOpenOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow".</summary>
-  public interface IChannelFlow: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow-ok".</summary>
-  public interface IChannelFlowOk: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.alert".</summary>
-  public interface IChannelAlert: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    System.Collections.IDictionary Details { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close".</summary>
-  public interface IChannelClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close-ok".</summary>
-  public interface IChannelCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request".</summary>
-  public interface IAccessRequest: IMethod {
-    string Realm { get; }
-    bool Exclusive { get; }
-    bool Passive { get; }
-    bool Active { get; }
-    bool Write { get; }
-    bool Read { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request-ok".</summary>
-  public interface IAccessRequestOk: IMethod {
-    ushort Ticket { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare".</summary>
-  public interface IExchangeDeclare: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string Type { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool AutoDelete { get; }
-    bool Internal { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare-ok".</summary>
-  public interface IExchangeDeclareOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete".</summary>
-  public interface IExchangeDelete: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    bool IfUnused { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete-ok".</summary>
-  public interface IExchangeDeleteOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare".</summary>
-  public interface IQueueDeclare: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool Exclusive { get; }
-    bool AutoDelete { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare-ok".</summary>
-  public interface IQueueDeclareOk: IMethod {
-    string Queue { get; }
-    uint MessageCount { get; }
-    uint ConsumerCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind".</summary>
-  public interface IQueueBind: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind-ok".</summary>
-  public interface IQueueBindOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.unbind".</summary>
-  public interface IQueueUnbind: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.unbind-ok".</summary>
-  public interface IQueueUnbindOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge".</summary>
-  public interface IQueuePurge: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge-ok".</summary>
-  public interface IQueuePurgeOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete".</summary>
-  public interface IQueueDelete: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool IfUnused { get; }
-    bool IfEmpty { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete-ok".</summary>
-  public interface IQueueDeleteOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos".</summary>
-  public interface IBasicQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos-ok".</summary>
-  public interface IBasicQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume".</summary>
-  public interface IBasicConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume-ok".</summary>
-  public interface IBasicConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel".</summary>
-  public interface IBasicCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel-ok".</summary>
-  public interface IBasicCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.publish".</summary>
-  public interface IBasicPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.return".</summary>
-  public interface IBasicReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.deliver".</summary>
-  public interface IBasicDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get".</summary>
-  public interface IBasicGet: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool NoAck { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-ok".</summary>
-  public interface IBasicGetOk: IMethod {
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-empty".</summary>
-  public interface IBasicGetEmpty: IMethod {
-    string ClusterId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.ack".</summary>
-  public interface IBasicAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.reject".</summary>
-  public interface IBasicReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.recover".</summary>
-  public interface IBasicRecover: IMethod {
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos".</summary>
-  public interface IFileQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos-ok".</summary>
-  public interface IFileQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume".</summary>
-  public interface IFileConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume-ok".</summary>
-  public interface IFileConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel".</summary>
-  public interface IFileCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel-ok".</summary>
-  public interface IFileCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open".</summary>
-  public interface IFileOpen: IMethod {
-    string Identifier { get; }
-    ulong ContentSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open-ok".</summary>
-  public interface IFileOpenOk: IMethod {
-    ulong StagedSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.stage".</summary>
-  public interface IFileStage: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.publish".</summary>
-  public interface IFilePublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.return".</summary>
-  public interface IFileReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.deliver".</summary>
-  public interface IFileDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.ack".</summary>
-  public interface IFileAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.reject".</summary>
-  public interface IFileReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos".</summary>
-  public interface IStreamQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    uint ConsumeRate { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos-ok".</summary>
-  public interface IStreamQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume".</summary>
-  public interface IStreamConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume-ok".</summary>
-  public interface IStreamConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel".</summary>
-  public interface IStreamCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel-ok".</summary>
-  public interface IStreamCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.publish".</summary>
-  public interface IStreamPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.return".</summary>
-  public interface IStreamReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.deliver".</summary>
-  public interface IStreamDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    string Exchange { get; }
-    string Queue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select".</summary>
-  public interface ITxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select-ok".</summary>
-  public interface ITxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit".</summary>
-  public interface ITxCommit: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit-ok".</summary>
-  public interface ITxCommitOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback".</summary>
-  public interface ITxRollback: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback-ok".</summary>
-  public interface ITxRollbackOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select".</summary>
-  public interface IDtxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select-ok".</summary>
-  public interface IDtxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start".</summary>
-  public interface IDtxStart: IMethod {
-    string DtxIdentifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start-ok".</summary>
-  public interface IDtxStartOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tunnel.request".</summary>
-  public interface ITunnelRequest: IMethod {
-    System.Collections.IDictionary MetaData { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.integer".</summary>
-  public interface ITestInteger: IMethod {
-    byte Integer1 { get; }
-    ushort Integer2 { get; }
-    uint Integer3 { get; }
-    ulong Integer4 { get; }
-    byte Operation { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.integer-ok".</summary>
-  public interface ITestIntegerOk: IMethod {
-    ulong Result { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.string".</summary>
-  public interface ITestString: IMethod {
-    string String1 { get; }
-    byte[] String2 { get; }
-    byte Operation { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.string-ok".</summary>
-  public interface ITestStringOk: IMethod {
-    byte[] Result { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.table".</summary>
-  public interface ITestTable: IMethod {
-    System.Collections.IDictionary Table { get; }
-    byte IntegerOp { get; }
-    byte StringOp { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.table-ok".</summary>
-  public interface ITestTableOk: IMethod {
-    ulong IntegerResult { get; }
-    byte[] StringResult { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.content".</summary>
-  public interface ITestContent: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.content-ok".</summary>
-  public interface ITestContentOk: IMethod {
-    uint ContentChecksum { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "basic"</summary>
-  public class BasicProperties: RabbitMQ.Client.Impl.BasicProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_deliveryMode;
-    private byte m_priority;
-    private string m_correlationId;
-    private string m_replyTo;
-    private string m_expiration;
-    private string m_messageId;
-    private AmqpTimestamp m_timestamp;
-    private string m_type;
-    private string m_userId;
-    private string m_appId;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_deliveryMode_present = false;
-    private bool m_priority_present = false;
-    private bool m_correlationId_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_expiration_present = false;
-    private bool m_messageId_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_type_present = false;
-    private bool m_userId_present = false;
-    private bool m_appId_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte DeliveryMode {
-      get {
-        return m_deliveryMode;
-      }
-      set {
-        m_deliveryMode_present = true;
-        m_deliveryMode = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string CorrelationId {
-      get {
-        return m_correlationId;
-      }
-      set {
-        m_correlationId_present = true;
-        m_correlationId = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string Expiration {
-      get {
-        return m_expiration;
-      }
-      set {
-        m_expiration_present = true;
-        m_expiration = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string Type {
-      get {
-        return m_type;
-      }
-      set {
-        m_type_present = true;
-        m_type = value;
-      }
-    }
-    public override string UserId {
-      get {
-        return m_userId;
-      }
-      set {
-        m_userId_present = true;
-        m_userId = value;
-      }
-    }
-    public override string AppId {
-      get {
-        return m_appId;
-      }
-      set {
-        m_appId_present = true;
-        m_appId = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearDeliveryMode() { m_deliveryMode_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearCorrelationId() { m_correlationId_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearExpiration() { m_expiration_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearType() { m_type_present = false; }
-    public override void ClearUserId() { m_userId_present = false; }
-    public override void ClearAppId() { m_appId_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsDeliveryModePresent() { return m_deliveryMode_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsCorrelationIdPresent() { return m_correlationId_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsExpirationPresent() { return m_expiration_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsTypePresent() { return m_type_present; }
-    public override bool IsUserIdPresent() { return m_userId_present; }
-    public override bool IsAppIdPresent() { return m_appId_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public BasicProperties() {}
-    public override int ProtocolClassId { get { return 60; } }
-    public override string ProtocolClassName { get { return "basic"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_deliveryMode_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_correlationId_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_expiration_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_type_present = reader.ReadPresence();
-      m_userId_present = reader.ReadPresence();
-      m_appId_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_deliveryMode_present) { m_deliveryMode = reader.ReadOctet(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_correlationId_present) { m_correlationId = reader.ReadShortstr(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_expiration_present) { m_expiration = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_type_present) { m_type = reader.ReadShortstr(); }
-      if (m_userId_present) { m_userId = reader.ReadShortstr(); }
-      if (m_appId_present) { m_appId = reader.ReadShortstr(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_deliveryMode_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_correlationId_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_expiration_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_type_present);
-      writer.WritePresence(m_userId_present);
-      writer.WritePresence(m_appId_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_deliveryMode_present) { writer.WriteOctet(m_deliveryMode); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_correlationId_present) { writer.WriteShortstr(m_correlationId); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_expiration_present) { writer.WriteShortstr(m_expiration); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_type_present) { writer.WriteShortstr(m_type); }
-      if (m_userId_present) { writer.WriteShortstr(m_userId); }
-      if (m_appId_present) { writer.WriteShortstr(m_appId); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("delivery mode="); sb.Append(m_deliveryMode_present ? m_deliveryMode.ToString() : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("correlation id="); sb.Append(m_correlationId_present ? (m_correlationId == null ? "(null)" : m_correlationId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("reply to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("expiration="); sb.Append(m_expiration_present ? (m_expiration == null ? "(null)" : m_expiration.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("type="); sb.Append(m_type_present ? (m_type == null ? "(null)" : m_type.ToString()) : "_"); sb.Append(", ");
-      sb.Append("user id="); sb.Append(m_userId_present ? (m_userId == null ? "(null)" : m_userId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("app id="); sb.Append(m_appId_present ? (m_appId == null ? "(null)" : m_appId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("cluster id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "file"</summary>
-  public class FileProperties: RabbitMQ.Client.Impl.FileProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private string m_replyTo;
-    private string m_messageId;
-    private string m_filename;
-    private AmqpTimestamp m_timestamp;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_messageId_present = false;
-    private bool m_filename_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override string Filename {
-      get {
-        return m_filename;
-      }
-      set {
-        m_filename_present = true;
-        m_filename = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearFilename() { m_filename_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsFilenamePresent() { return m_filename_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public FileProperties() {}
-    public override int ProtocolClassId { get { return 70; } }
-    public override string ProtocolClassName { get { return "file"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_filename_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_filename_present) { m_filename = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_filename_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_filename_present) { writer.WriteShortstr(m_filename); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("reply to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("filename="); sb.Append(m_filename_present ? (m_filename == null ? "(null)" : m_filename.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("cluster id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "stream"</summary>
-  public class StreamProperties: RabbitMQ.Client.Impl.StreamProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private AmqpTimestamp m_timestamp;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_timestamp_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-
-    public StreamProperties() {}
-    public override int ProtocolClassId { get { return 80; } }
-    public override string ProtocolClassName { get { return "stream"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "tunnel"</summary>
-  public class TunnelProperties: RabbitMQ.Client.Impl.ContentHeaderBase {
-    private System.Collections.IDictionary m_headers;
-    private string m_proxyName;
-    private string m_dataName;
-    private byte m_durable;
-    private byte m_broadcast;
-
-    private bool m_headers_present = false;
-    private bool m_proxyName_present = false;
-    private bool m_dataName_present = false;
-    private bool m_durable_present = false;
-    private bool m_broadcast_present = false;
-
-    public System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public string ProxyName {
-      get {
-        return m_proxyName;
-      }
-      set {
-        m_proxyName_present = true;
-        m_proxyName = value;
-      }
-    }
-    public string DataName {
-      get {
-        return m_dataName;
-      }
-      set {
-        m_dataName_present = true;
-        m_dataName = value;
-      }
-    }
-    public byte Durable {
-      get {
-        return m_durable;
-      }
-      set {
-        m_durable_present = true;
-        m_durable = value;
-      }
-    }
-    public byte Broadcast {
-      get {
-        return m_broadcast;
-      }
-      set {
-        m_broadcast_present = true;
-        m_broadcast = value;
-      }
-    }
-
-    public void ClearHeaders() { m_headers_present = false; }
-    public void ClearProxyName() { m_proxyName_present = false; }
-    public void ClearDataName() { m_dataName_present = false; }
-    public void ClearDurable() { m_durable_present = false; }
-    public void ClearBroadcast() { m_broadcast_present = false; }
-
-    public bool IsHeadersPresent() { return m_headers_present; }
-    public bool IsProxyNamePresent() { return m_proxyName_present; }
-    public bool IsDataNamePresent() { return m_dataName_present; }
-    public bool IsDurablePresent() { return m_durable_present; }
-    public bool IsBroadcastPresent() { return m_broadcast_present; }
-
-    public TunnelProperties() {}
-    public override int ProtocolClassId { get { return 110; } }
-    public override string ProtocolClassName { get { return "tunnel"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_headers_present = reader.ReadPresence();
-      m_proxyName_present = reader.ReadPresence();
-      m_dataName_present = reader.ReadPresence();
-      m_durable_present = reader.ReadPresence();
-      m_broadcast_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_proxyName_present) { m_proxyName = reader.ReadShortstr(); }
-      if (m_dataName_present) { m_dataName = reader.ReadShortstr(); }
-      if (m_durable_present) { m_durable = reader.ReadOctet(); }
-      if (m_broadcast_present) { m_broadcast = reader.ReadOctet(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_proxyName_present);
-      writer.WritePresence(m_dataName_present);
-      writer.WritePresence(m_durable_present);
-      writer.WritePresence(m_broadcast_present);
-      writer.FinishPresence();
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_proxyName_present) { writer.WriteShortstr(m_proxyName); }
-      if (m_dataName_present) { writer.WriteShortstr(m_dataName); }
-      if (m_durable_present) { writer.WriteOctet(m_durable); }
-      if (m_broadcast_present) { writer.WriteOctet(m_broadcast); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("proxy name="); sb.Append(m_proxyName_present ? (m_proxyName == null ? "(null)" : m_proxyName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("data name="); sb.Append(m_dataName_present ? (m_dataName == null ? "(null)" : m_dataName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("durable="); sb.Append(m_durable_present ? m_durable.ToString() : "_"); sb.Append(", ");
-      sb.Append("broadcast="); sb.Append(m_broadcast_present ? m_broadcast.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "test"</summary>
-  public class TestProperties: RabbitMQ.Client.Impl.ContentHeaderBase {
-
-
-
-
-
-    public TestProperties() {}
-    public override int ProtocolClassId { get { return 120; } }
-    public override string ProtocolClassName { get { return "test"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      reader.FinishPresence();
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.FinishPresence();
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-}
-namespace RabbitMQ.Client.Framing.Impl.v0_8 {
-  using RabbitMQ.Client.Framing.v0_8;
-  public enum ClassId {
-    Connection = 10,
-    Channel = 20,
-    Access = 30,
-    Exchange = 40,
-    Queue = 50,
-    Basic = 60,
-    File = 70,
-    Stream = 80,
-    Tx = 90,
-    Dtx = 100,
-    Tunnel = 110,
-    Test = 120,
-    Invalid = -1
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStart: RabbitMQ.Client.Impl.MethodBase, IConnectionStart {
-    public const int ClassId = 10;
-    public const int MethodId = 10;
-
-    public byte m_versionMajor;
-    public byte m_versionMinor;
-    public System.Collections.IDictionary m_serverProperties;
-    public byte[] m_mechanisms;
-    public byte[] m_locales;
-
-    byte IConnectionStart.VersionMajor { get { return m_versionMajor; } }
-    byte IConnectionStart.VersionMinor { get { return m_versionMinor; } }
-    System.Collections.IDictionary IConnectionStart.ServerProperties { get { return m_serverProperties; } }
-    byte[] IConnectionStart.Mechanisms { get { return m_mechanisms; } }
-    byte[] IConnectionStart.Locales { get { return m_locales; } }
-
-    public ConnectionStart() {}
-    public ConnectionStart(
-      byte initVersionMajor,
-      byte initVersionMinor,
-      System.Collections.IDictionary initServerProperties,
-      byte[] initMechanisms,
-      byte[] initLocales)
-    {
-      m_versionMajor = initVersionMajor;
-      m_versionMinor = initVersionMinor;
-      m_serverProperties = initServerProperties;
-      m_mechanisms = initMechanisms;
-      m_locales = initLocales;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "connection.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_versionMajor = reader.ReadOctet();
-      m_versionMinor = reader.ReadOctet();
-      m_serverProperties = reader.ReadTable();
-      m_mechanisms = reader.ReadLongstr();
-      m_locales = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteOctet(m_versionMajor);
-      writer.WriteOctet(m_versionMinor);
-      writer.WriteTable(m_serverProperties);
-      writer.WriteLongstr(m_mechanisms);
-      writer.WriteLongstr(m_locales);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_versionMajor); sb.Append(",");
-      sb.Append(m_versionMinor); sb.Append(",");
-      sb.Append(m_serverProperties); sb.Append(",");
-      sb.Append(m_mechanisms); sb.Append(",");
-      sb.Append(m_locales);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStartOk: RabbitMQ.Client.Impl.MethodBase, IConnectionStartOk {
-    public const int ClassId = 10;
-    public const int MethodId = 11;
-
-    public System.Collections.IDictionary m_clientProperties;
-    public string m_mechanism;
-    public byte[] m_response;
-    public string m_locale;
-
-    System.Collections.IDictionary IConnectionStartOk.ClientProperties { get { return m_clientProperties; } }
-    string IConnectionStartOk.Mechanism { get { return m_mechanism; } }
-    byte[] IConnectionStartOk.Response { get { return m_response; } }
-    string IConnectionStartOk.Locale { get { return m_locale; } }
-
-    public ConnectionStartOk() {}
-    public ConnectionStartOk(
-      System.Collections.IDictionary initClientProperties,
-      string initMechanism,
-      byte[] initResponse,
-      string initLocale)
-    {
-      m_clientProperties = initClientProperties;
-      m_mechanism = initMechanism;
-      m_response = initResponse;
-      m_locale = initLocale;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "connection.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clientProperties = reader.ReadTable();
-      m_mechanism = reader.ReadShortstr();
-      m_response = reader.ReadLongstr();
-      m_locale = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_clientProperties);
-      writer.WriteShortstr(m_mechanism);
-      writer.WriteLongstr(m_response);
-      writer.WriteShortstr(m_locale);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clientProperties); sb.Append(",");
-      sb.Append(m_mechanism); sb.Append(",");
-      sb.Append(m_response); sb.Append(",");
-      sb.Append(m_locale);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecure: RabbitMQ.Client.Impl.MethodBase, IConnectionSecure {
-    public const int ClassId = 10;
-    public const int MethodId = 20;
-
-    public byte[] m_challenge;
-
-    byte[] IConnectionSecure.Challenge { get { return m_challenge; } }
-
-    public ConnectionSecure() {}
-    public ConnectionSecure(
-      byte[] initChallenge)
-    {
-      m_challenge = initChallenge;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "connection.secure"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_challenge = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_challenge);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_challenge);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecureOk: RabbitMQ.Client.Impl.MethodBase, IConnectionSecureOk {
-    public const int ClassId = 10;
-    public const int MethodId = 21;
-
-    public byte[] m_response;
-
-    byte[] IConnectionSecureOk.Response { get { return m_response; } }
-
-    public ConnectionSecureOk() {}
-    public ConnectionSecureOk(
-      byte[] initResponse)
-    {
-      m_response = initResponse;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "connection.secure-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_response = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_response);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_response);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTune: RabbitMQ.Client.Impl.MethodBase, IConnectionTune {
-    public const int ClassId = 10;
-    public const int MethodId = 30;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTune.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTune.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTune.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTune() {}
-    public ConnectionTune(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "connection.tune"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTuneOk: RabbitMQ.Client.Impl.MethodBase, IConnectionTuneOk {
-    public const int ClassId = 10;
-    public const int MethodId = 31;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTuneOk.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTuneOk.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTuneOk.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTuneOk() {}
-    public ConnectionTuneOk(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "connection.tune-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpen: RabbitMQ.Client.Impl.MethodBase, IConnectionOpen {
-    public const int ClassId = 10;
-    public const int MethodId = 40;
-
-    public string m_virtualHost;
-    public string m_capabilities;
-    public bool m_insist;
-
-    string IConnectionOpen.VirtualHost { get { return m_virtualHost; } }
-    string IConnectionOpen.Capabilities { get { return m_capabilities; } }
-    bool IConnectionOpen.Insist { get { return m_insist; } }
-
-    public ConnectionOpen() {}
-    public ConnectionOpen(
-      string initVirtualHost,
-      string initCapabilities,
-      bool initInsist)
-    {
-      m_virtualHost = initVirtualHost;
-      m_capabilities = initCapabilities;
-      m_insist = initInsist;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "connection.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_virtualHost = reader.ReadShortstr();
-      m_capabilities = reader.ReadShortstr();
-      m_insist = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_virtualHost);
-      writer.WriteShortstr(m_capabilities);
-      writer.WriteBit(m_insist);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_virtualHost); sb.Append(",");
-      sb.Append(m_capabilities); sb.Append(",");
-      sb.Append(m_insist);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpenOk: RabbitMQ.Client.Impl.MethodBase, IConnectionOpenOk {
-    public const int ClassId = 10;
-    public const int MethodId = 41;
-
-    public string m_knownHosts;
-
-    string IConnectionOpenOk.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionOpenOk() {}
-    public ConnectionOpenOk(
-      string initKnownHosts)
-    {
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "connection.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionRedirect: RabbitMQ.Client.Impl.MethodBase, IConnectionRedirect {
-    public const int ClassId = 10;
-    public const int MethodId = 50;
-
-    public string m_host;
-    public string m_knownHosts;
-
-    string IConnectionRedirect.Host { get { return m_host; } }
-    string IConnectionRedirect.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionRedirect() {}
-    public ConnectionRedirect(
-      string initHost,
-      string initKnownHosts)
-    {
-      m_host = initHost;
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "connection.redirect"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_host = reader.ReadShortstr();
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_host);
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_host); sb.Append(",");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionClose: RabbitMQ.Client.Impl.MethodBase, IConnectionClose {
-    public const int ClassId = 10;
-    public const int MethodId = 60;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IConnectionClose.ReplyCode { get { return m_replyCode; } }
-    string IConnectionClose.ReplyText { get { return m_replyText; } }
-    ushort IConnectionClose.ClassId { get { return m_classId; } }
-    ushort IConnectionClose.MethodId { get { return m_methodId; } }
-
-    public ConnectionClose() {}
-    public ConnectionClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "connection.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionCloseOk: RabbitMQ.Client.Impl.MethodBase, IConnectionCloseOk {
-    public const int ClassId = 10;
-    public const int MethodId = 61;
-
-
-
-    public ConnectionCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 61; } }
-    public override string ProtocolMethodName { get { return "connection.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpen: RabbitMQ.Client.Impl.MethodBase, IChannelOpen {
-    public const int ClassId = 20;
-    public const int MethodId = 10;
-
-    public string m_outOfBand;
-
-    string IChannelOpen.OutOfBand { get { return m_outOfBand; } }
-
-    public ChannelOpen() {}
-    public ChannelOpen(
-      string initOutOfBand)
-    {
-      m_outOfBand = initOutOfBand;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "channel.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_outOfBand = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_outOfBand);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_outOfBand);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpenOk: RabbitMQ.Client.Impl.MethodBase, IChannelOpenOk {
-    public const int ClassId = 20;
-    public const int MethodId = 11;
-
-
-
-    public ChannelOpenOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "channel.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlow: RabbitMQ.Client.Impl.MethodBase, IChannelFlow {
-    public const int ClassId = 20;
-    public const int MethodId = 20;
-
-    public bool m_active;
-
-    bool IChannelFlow.Active { get { return m_active; } }
-
-    public ChannelFlow() {}
-    public ChannelFlow(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "channel.flow"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlowOk: RabbitMQ.Client.Impl.MethodBase, IChannelFlowOk {
-    public const int ClassId = 20;
-    public const int MethodId = 21;
-
-    public bool m_active;
-
-    bool IChannelFlowOk.Active { get { return m_active; } }
-
-    public ChannelFlowOk() {}
-    public ChannelFlowOk(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "channel.flow-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelAlert: RabbitMQ.Client.Impl.MethodBase, IChannelAlert {
-    public const int ClassId = 20;
-    public const int MethodId = 30;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public System.Collections.IDictionary m_details;
-
-    ushort IChannelAlert.ReplyCode { get { return m_replyCode; } }
-    string IChannelAlert.ReplyText { get { return m_replyText; } }
-    System.Collections.IDictionary IChannelAlert.Details { get { return m_details; } }
-
-    public ChannelAlert() {}
-    public ChannelAlert(
-      ushort initReplyCode,
-      string initReplyText,
-      System.Collections.IDictionary initDetails)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_details = initDetails;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "channel.alert"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_details = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteTable(m_details);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_details);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelClose: RabbitMQ.Client.Impl.MethodBase, IChannelClose {
-    public const int ClassId = 20;
-    public const int MethodId = 40;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IChannelClose.ReplyCode { get { return m_replyCode; } }
-    string IChannelClose.ReplyText { get { return m_replyText; } }
-    ushort IChannelClose.ClassId { get { return m_classId; } }
-    ushort IChannelClose.MethodId { get { return m_methodId; } }
-
-    public ChannelClose() {}
-    public ChannelClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "channel.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelCloseOk: RabbitMQ.Client.Impl.MethodBase, IChannelCloseOk {
-    public const int ClassId = 20;
-    public const int MethodId = 41;
-
-
-
-    public ChannelCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "channel.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequest: RabbitMQ.Client.Impl.MethodBase, IAccessRequest {
-    public const int ClassId = 30;
-    public const int MethodId = 10;
-
-    public string m_realm;
-    public bool m_exclusive;
-    public bool m_passive;
-    public bool m_active;
-    public bool m_write;
-    public bool m_read;
-
-    string IAccessRequest.Realm { get { return m_realm; } }
-    bool IAccessRequest.Exclusive { get { return m_exclusive; } }
-    bool IAccessRequest.Passive { get { return m_passive; } }
-    bool IAccessRequest.Active { get { return m_active; } }
-    bool IAccessRequest.Write { get { return m_write; } }
-    bool IAccessRequest.Read { get { return m_read; } }
-
-    public AccessRequest() {}
-    public AccessRequest(
-      string initRealm,
-      bool initExclusive,
-      bool initPassive,
-      bool initActive,
-      bool initWrite,
-      bool initRead)
-    {
-      m_realm = initRealm;
-      m_exclusive = initExclusive;
-      m_passive = initPassive;
-      m_active = initActive;
-      m_write = initWrite;
-      m_read = initRead;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "access.request"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_realm = reader.ReadShortstr();
-      m_exclusive = reader.ReadBit();
-      m_passive = reader.ReadBit();
-      m_active = reader.ReadBit();
-      m_write = reader.ReadBit();
-      m_read = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_realm);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_active);
-      writer.WriteBit(m_write);
-      writer.WriteBit(m_read);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_realm); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_active); sb.Append(",");
-      sb.Append(m_write); sb.Append(",");
-      sb.Append(m_read);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequestOk: RabbitMQ.Client.Impl.MethodBase, IAccessRequestOk {
-    public const int ClassId = 30;
-    public const int MethodId = 11;
-
-    public ushort m_ticket;
-
-    ushort IAccessRequestOk.Ticket { get { return m_ticket; } }
-
-    public AccessRequestOk() {}
-    public AccessRequestOk(
-      ushort initTicket)
-    {
-      m_ticket = initTicket;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "access.request-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclare: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclare {
-    public const int ClassId = 40;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_type;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_autoDelete;
-    public bool m_internal;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IExchangeDeclare.Ticket { get { return m_ticket; } }
-    string IExchangeDeclare.Exchange { get { return m_exchange; } }
-    string IExchangeDeclare.Type { get { return m_type; } }
-    bool IExchangeDeclare.Passive { get { return m_passive; } }
-    bool IExchangeDeclare.Durable { get { return m_durable; } }
-    bool IExchangeDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IExchangeDeclare.Internal { get { return m_internal; } }
-    bool IExchangeDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IExchangeDeclare.Arguments { get { return m_arguments; } }
-
-    public ExchangeDeclare() {}
-    public ExchangeDeclare(
-      ushort initTicket,
-      string initExchange,
-      string initType,
-      bool initPassive,
-      bool initDurable,
-      bool initAutoDelete,
-      bool initInternal,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_type = initType;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_autoDelete = initAutoDelete;
-      m_internal = initInternal;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "exchange.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_type = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_internal = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_type);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_internal);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_type); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_internal); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclareOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclareOk {
-    public const int ClassId = 40;
-    public const int MethodId = 11;
-
-
-
-    public ExchangeDeclareOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "exchange.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDelete: RabbitMQ.Client.Impl.MethodBase, IExchangeDelete {
-    public const int ClassId = 40;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public bool m_ifUnused;
-    public bool m_nowait;
-
-    ushort IExchangeDelete.Ticket { get { return m_ticket; } }
-    string IExchangeDelete.Exchange { get { return m_exchange; } }
-    bool IExchangeDelete.IfUnused { get { return m_ifUnused; } }
-    bool IExchangeDelete.Nowait { get { return m_nowait; } }
-
-    public ExchangeDelete() {}
-    public ExchangeDelete(
-      ushort initTicket,
-      string initExchange,
-      bool initIfUnused,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_ifUnused = initIfUnused;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "exchange.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeleteOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeleteOk {
-    public const int ClassId = 40;
-    public const int MethodId = 21;
-
-
-
-    public ExchangeDeleteOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "exchange.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclare: RabbitMQ.Client.Impl.MethodBase, IQueueDeclare {
-    public const int ClassId = 50;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_exclusive;
-    public bool m_autoDelete;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueDeclare.Ticket { get { return m_ticket; } }
-    string IQueueDeclare.Queue { get { return m_queue; } }
-    bool IQueueDeclare.Passive { get { return m_passive; } }
-    bool IQueueDeclare.Durable { get { return m_durable; } }
-    bool IQueueDeclare.Exclusive { get { return m_exclusive; } }
-    bool IQueueDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IQueueDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueDeclare.Arguments { get { return m_arguments; } }
-
-    public QueueDeclare() {}
-    public QueueDeclare(
-      ushort initTicket,
-      string initQueue,
-      bool initPassive,
-      bool initDurable,
-      bool initExclusive,
-      bool initAutoDelete,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_exclusive = initExclusive;
-      m_autoDelete = initAutoDelete;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "queue.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclareOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeclareOk {
-    public const int ClassId = 50;
-    public const int MethodId = 11;
-
-    public string m_queue;
-    public uint m_messageCount;
-    public uint m_consumerCount;
-
-    string IQueueDeclareOk.Queue { get { return m_queue; } }
-    uint IQueueDeclareOk.MessageCount { get { return m_messageCount; } }
-    uint IQueueDeclareOk.ConsumerCount { get { return m_consumerCount; } }
-
-    public QueueDeclareOk() {}
-    public QueueDeclareOk(
-      string initQueue,
-      uint initMessageCount,
-      uint initConsumerCount)
-    {
-      m_queue = initQueue;
-      m_messageCount = initMessageCount;
-      m_consumerCount = initConsumerCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "queue.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_queue = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-      m_consumerCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_queue);
-      writer.WriteLong(m_messageCount);
-      writer.WriteLong(m_consumerCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_messageCount); sb.Append(",");
-      sb.Append(m_consumerCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBind: RabbitMQ.Client.Impl.MethodBase, IQueueBind {
-    public const int ClassId = 50;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueBind.Ticket { get { return m_ticket; } }
-    string IQueueBind.Queue { get { return m_queue; } }
-    string IQueueBind.Exchange { get { return m_exchange; } }
-    string IQueueBind.RoutingKey { get { return m_routingKey; } }
-    bool IQueueBind.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueBind.Arguments { get { return m_arguments; } }
-
-    public QueueBind() {}
-    public QueueBind(
-      ushort initTicket,
-      string initQueue,
-      string initExchange,
-      string initRoutingKey,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "queue.bind"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBindOk: RabbitMQ.Client.Impl.MethodBase, IQueueBindOk {
-    public const int ClassId = 50;
-    public const int MethodId = 21;
-
-
-
-    public QueueBindOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "queue.bind-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueUnbind: RabbitMQ.Client.Impl.MethodBase, IQueueUnbind {
-    public const int ClassId = 50;
-    public const int MethodId = 50;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_exchange;
-    public string m_routingKey;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueUnbind.Ticket { get { return m_ticket; } }
-    string IQueueUnbind.Queue { get { return m_queue; } }
-    string IQueueUnbind.Exchange { get { return m_exchange; } }
-    string IQueueUnbind.RoutingKey { get { return m_routingKey; } }
-    System.Collections.IDictionary IQueueUnbind.Arguments { get { return m_arguments; } }
-
-    public QueueUnbind() {}
-    public QueueUnbind(
-      ushort initTicket,
-      string initQueue,
-      string initExchange,
-      string initRoutingKey,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "queue.unbind"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueUnbindOk: RabbitMQ.Client.Impl.MethodBase, IQueueUnbindOk {
-    public const int ClassId = 50;
-    public const int MethodId = 51;
-
-
-
-    public QueueUnbindOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 51; } }
-    public override string ProtocolMethodName { get { return "queue.unbind-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurge: RabbitMQ.Client.Impl.MethodBase, IQueuePurge {
-    public const int ClassId = 50;
-    public const int MethodId = 30;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_nowait;
-
-    ushort IQueuePurge.Ticket { get { return m_ticket; } }
-    string IQueuePurge.Queue { get { return m_queue; } }
-    bool IQueuePurge.Nowait { get { return m_nowait; } }
-
-    public QueuePurge() {}
-    public QueuePurge(
-      ushort initTicket,
-      string initQueue,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "queue.purge"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurgeOk: RabbitMQ.Client.Impl.MethodBase, IQueuePurgeOk {
-    public const int ClassId = 50;
-    public const int MethodId = 31;
-
-    public uint m_messageCount;
-
-    uint IQueuePurgeOk.MessageCount { get { return m_messageCount; } }
-
-    public QueuePurgeOk() {}
-    public QueuePurgeOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "queue.purge-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDelete: RabbitMQ.Client.Impl.MethodBase, IQueueDelete {
-    public const int ClassId = 50;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_ifUnused;
-    public bool m_ifEmpty;
-    public bool m_nowait;
-
-    ushort IQueueDelete.Ticket { get { return m_ticket; } }
-    string IQueueDelete.Queue { get { return m_queue; } }
-    bool IQueueDelete.IfUnused { get { return m_ifUnused; } }
-    bool IQueueDelete.IfEmpty { get { return m_ifEmpty; } }
-    bool IQueueDelete.Nowait { get { return m_nowait; } }
-
-    public QueueDelete() {}
-    public QueueDelete(
-      ushort initTicket,
-      string initQueue,
-      bool initIfUnused,
-      bool initIfEmpty,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_ifUnused = initIfUnused;
-      m_ifEmpty = initIfEmpty;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "queue.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_ifEmpty = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_ifEmpty);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_ifEmpty); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeleteOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeleteOk {
-    public const int ClassId = 50;
-    public const int MethodId = 41;
-
-    public uint m_messageCount;
-
-    uint IQueueDeleteOk.MessageCount { get { return m_messageCount; } }
-
-    public QueueDeleteOk() {}
-    public QueueDeleteOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "queue.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQos: RabbitMQ.Client.Impl.MethodBase, IBasicQos {
-    public const int ClassId = 60;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IBasicQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IBasicQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IBasicQos.Global { get { return m_global; } }
-
-    public BasicQos() {}
-    public BasicQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "basic.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQosOk: RabbitMQ.Client.Impl.MethodBase, IBasicQosOk {
-    public const int ClassId = 60;
-    public const int MethodId = 11;
-
-
-
-    public BasicQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "basic.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsume: RabbitMQ.Client.Impl.MethodBase, IBasicConsume {
-    public const int ClassId = 60;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-
-    ushort IBasicConsume.Ticket { get { return m_ticket; } }
-    string IBasicConsume.Queue { get { return m_queue; } }
-    string IBasicConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicConsume.NoLocal { get { return m_noLocal; } }
-    bool IBasicConsume.NoAck { get { return m_noAck; } }
-    bool IBasicConsume.Exclusive { get { return m_exclusive; } }
-    bool IBasicConsume.Nowait { get { return m_nowait; } }
-
-    public BasicConsume() {}
-    public BasicConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "basic.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsumeOk: RabbitMQ.Client.Impl.MethodBase, IBasicConsumeOk {
-    public const int ClassId = 60;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IBasicConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicConsumeOk() {}
-    public BasicConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "basic.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancel: RabbitMQ.Client.Impl.MethodBase, IBasicCancel {
-    public const int ClassId = 60;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IBasicCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicCancel.Nowait { get { return m_nowait; } }
-
-    public BasicCancel() {}
-    public BasicCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "basic.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancelOk: RabbitMQ.Client.Impl.MethodBase, IBasicCancelOk {
-    public const int ClassId = 60;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IBasicCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicCancelOk() {}
-    public BasicCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "basic.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicPublish: RabbitMQ.Client.Impl.MethodBase, IBasicPublish {
-    public const int ClassId = 60;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IBasicPublish.Ticket { get { return m_ticket; } }
-    string IBasicPublish.Exchange { get { return m_exchange; } }
-    string IBasicPublish.RoutingKey { get { return m_routingKey; } }
-    bool IBasicPublish.Mandatory { get { return m_mandatory; } }
-    bool IBasicPublish.Immediate { get { return m_immediate; } }
-
-    public BasicPublish() {}
-    public BasicPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "basic.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReturn: RabbitMQ.Client.Impl.MethodBase, IBasicReturn {
-    public const int ClassId = 60;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IBasicReturn.ReplyCode { get { return m_replyCode; } }
-    string IBasicReturn.ReplyText { get { return m_replyText; } }
-    string IBasicReturn.Exchange { get { return m_exchange; } }
-    string IBasicReturn.RoutingKey { get { return m_routingKey; } }
-
-    public BasicReturn() {}
-    public BasicReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "basic.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicDeliver: RabbitMQ.Client.Impl.MethodBase, IBasicDeliver {
-    public const int ClassId = 60;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-
-    string IBasicDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IBasicDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicDeliver.Redelivered { get { return m_redelivered; } }
-    string IBasicDeliver.Exchange { get { return m_exchange; } }
-    string IBasicDeliver.RoutingKey { get { return m_routingKey; } }
-
-    public BasicDeliver() {}
-    public BasicDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "basic.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGet: RabbitMQ.Client.Impl.MethodBase, IBasicGet {
-    public const int ClassId = 60;
-    public const int MethodId = 70;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_noAck;
-
-    ushort IBasicGet.Ticket { get { return m_ticket; } }
-    string IBasicGet.Queue { get { return m_queue; } }
-    bool IBasicGet.NoAck { get { return m_noAck; } }
-
-    public BasicGet() {}
-    public BasicGet(
-      ushort initTicket,
-      string initQueue,
-      bool initNoAck)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_noAck = initNoAck;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "basic.get"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_noAck = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_noAck);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_noAck);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetOk: RabbitMQ.Client.Impl.MethodBase, IBasicGetOk {
-    public const int ClassId = 60;
-    public const int MethodId = 71;
-
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public uint m_messageCount;
-
-    ulong IBasicGetOk.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicGetOk.Redelivered { get { return m_redelivered; } }
-    string IBasicGetOk.Exchange { get { return m_exchange; } }
-    string IBasicGetOk.RoutingKey { get { return m_routingKey; } }
-    uint IBasicGetOk.MessageCount { get { return m_messageCount; } }
-
-    public BasicGetOk() {}
-    public BasicGetOk(
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      uint initMessageCount)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 71; } }
-    public override string ProtocolMethodName { get { return "basic.get-ok"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetEmpty: RabbitMQ.Client.Impl.MethodBase, IBasicGetEmpty {
-    public const int ClassId = 60;
-    public const int MethodId = 72;
-
-    public string m_clusterId;
-
-    string IBasicGetEmpty.ClusterId { get { return m_clusterId; } }
-
-    public BasicGetEmpty() {}
-    public BasicGetEmpty(
-      string initClusterId)
-    {
-      m_clusterId = initClusterId;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 72; } }
-    public override string ProtocolMethodName { get { return "basic.get-empty"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clusterId = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_clusterId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clusterId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicAck: RabbitMQ.Client.Impl.MethodBase, IBasicAck {
-    public const int ClassId = 60;
-    public const int MethodId = 80;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IBasicAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicAck.Multiple { get { return m_multiple; } }
-
-    public BasicAck() {}
-    public BasicAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "basic.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReject: RabbitMQ.Client.Impl.MethodBase, IBasicReject {
-    public const int ClassId = 60;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IBasicReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicReject.Requeue { get { return m_requeue; } }
-
-    public BasicReject() {}
-    public BasicReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "basic.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicRecover: RabbitMQ.Client.Impl.MethodBase, IBasicRecover {
-    public const int ClassId = 60;
-    public const int MethodId = 100;
-
-    public bool m_requeue;
-
-    bool IBasicRecover.Requeue { get { return m_requeue; } }
-
-    public BasicRecover() {}
-    public BasicRecover(
-      bool initRequeue)
-    {
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "basic.recover"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQos: RabbitMQ.Client.Impl.MethodBase, IFileQos {
-    public const int ClassId = 70;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IFileQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IFileQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IFileQos.Global { get { return m_global; } }
-
-    public FileQos() {}
-    public FileQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "file.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQosOk: RabbitMQ.Client.Impl.MethodBase, IFileQosOk {
-    public const int ClassId = 70;
-    public const int MethodId = 11;
-
-
-
-    public FileQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "file.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsume: RabbitMQ.Client.Impl.MethodBase, IFileConsume {
-    public const int ClassId = 70;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-
-    ushort IFileConsume.Ticket { get { return m_ticket; } }
-    string IFileConsume.Queue { get { return m_queue; } }
-    string IFileConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileConsume.NoLocal { get { return m_noLocal; } }
-    bool IFileConsume.NoAck { get { return m_noAck; } }
-    bool IFileConsume.Exclusive { get { return m_exclusive; } }
-    bool IFileConsume.Nowait { get { return m_nowait; } }
-
-    public FileConsume() {}
-    public FileConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "file.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsumeOk: RabbitMQ.Client.Impl.MethodBase, IFileConsumeOk {
-    public const int ClassId = 70;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IFileConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileConsumeOk() {}
-    public FileConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "file.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancel: RabbitMQ.Client.Impl.MethodBase, IFileCancel {
-    public const int ClassId = 70;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IFileCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileCancel.Nowait { get { return m_nowait; } }
-
-    public FileCancel() {}
-    public FileCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "file.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancelOk: RabbitMQ.Client.Impl.MethodBase, IFileCancelOk {
-    public const int ClassId = 70;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IFileCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileCancelOk() {}
-    public FileCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "file.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpen: RabbitMQ.Client.Impl.MethodBase, IFileOpen {
-    public const int ClassId = 70;
-    public const int MethodId = 40;
-
-    public string m_identifier;
-    public ulong m_contentSize;
-
-    string IFileOpen.Identifier { get { return m_identifier; } }
-    ulong IFileOpen.ContentSize { get { return m_contentSize; } }
-
-    public FileOpen() {}
-    public FileOpen(
-      string initIdentifier,
-      ulong initContentSize)
-    {
-      m_identifier = initIdentifier;
-      m_contentSize = initContentSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "file.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_identifier = reader.ReadShortstr();
-      m_contentSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_identifier);
-      writer.WriteLonglong(m_contentSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_identifier); sb.Append(",");
-      sb.Append(m_contentSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpenOk: RabbitMQ.Client.Impl.MethodBase, IFileOpenOk {
-    public const int ClassId = 70;
-    public const int MethodId = 41;
-
-    public ulong m_stagedSize;
-
-    ulong IFileOpenOk.StagedSize { get { return m_stagedSize; } }
-
-    public FileOpenOk() {}
-    public FileOpenOk(
-      ulong initStagedSize)
-    {
-      m_stagedSize = initStagedSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "file.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_stagedSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_stagedSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_stagedSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileStage: RabbitMQ.Client.Impl.MethodBase, IFileStage {
-    public const int ClassId = 70;
-    public const int MethodId = 50;
-
-
-
-    public FileStage(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "file.stage"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FilePublish: RabbitMQ.Client.Impl.MethodBase, IFilePublish {
-    public const int ClassId = 70;
-    public const int MethodId = 60;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-    public string m_identifier;
-
-    ushort IFilePublish.Ticket { get { return m_ticket; } }
-    string IFilePublish.Exchange { get { return m_exchange; } }
-    string IFilePublish.RoutingKey { get { return m_routingKey; } }
-    bool IFilePublish.Mandatory { get { return m_mandatory; } }
-    bool IFilePublish.Immediate { get { return m_immediate; } }
-    string IFilePublish.Identifier { get { return m_identifier; } }
-
-    public FilePublish() {}
-    public FilePublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate,
-      string initIdentifier)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "file.publish"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReturn: RabbitMQ.Client.Impl.MethodBase, IFileReturn {
-    public const int ClassId = 70;
-    public const int MethodId = 70;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IFileReturn.ReplyCode { get { return m_replyCode; } }
-    string IFileReturn.ReplyText { get { return m_replyText; } }
-    string IFileReturn.Exchange { get { return m_exchange; } }
-    string IFileReturn.RoutingKey { get { return m_routingKey; } }
-
-    public FileReturn() {}
-    public FileReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "file.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileDeliver: RabbitMQ.Client.Impl.MethodBase, IFileDeliver {
-    public const int ClassId = 70;
-    public const int MethodId = 80;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public string m_identifier;
-
-    string IFileDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IFileDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileDeliver.Redelivered { get { return m_redelivered; } }
-    string IFileDeliver.Exchange { get { return m_exchange; } }
-    string IFileDeliver.RoutingKey { get { return m_routingKey; } }
-    string IFileDeliver.Identifier { get { return m_identifier; } }
-
-    public FileDeliver() {}
-    public FileDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      string initIdentifier)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "file.deliver"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileAck: RabbitMQ.Client.Impl.MethodBase, IFileAck {
-    public const int ClassId = 70;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IFileAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileAck.Multiple { get { return m_multiple; } }
-
-    public FileAck() {}
-    public FileAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "file.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReject: RabbitMQ.Client.Impl.MethodBase, IFileReject {
-    public const int ClassId = 70;
-    public const int MethodId = 100;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IFileReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileReject.Requeue { get { return m_requeue; } }
-
-    public FileReject() {}
-    public FileReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "file.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQos: RabbitMQ.Client.Impl.MethodBase, IStreamQos {
-    public const int ClassId = 80;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public uint m_consumeRate;
-    public bool m_global;
-
-    uint IStreamQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IStreamQos.PrefetchCount { get { return m_prefetchCount; } }
-    uint IStreamQos.ConsumeRate { get { return m_consumeRate; } }
-    bool IStreamQos.Global { get { return m_global; } }
-
-    public StreamQos() {}
-    public StreamQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      uint initConsumeRate,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_consumeRate = initConsumeRate;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "stream.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_consumeRate = reader.ReadLong();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteLong(m_consumeRate);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_consumeRate); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQosOk: RabbitMQ.Client.Impl.MethodBase, IStreamQosOk {
-    public const int ClassId = 80;
-    public const int MethodId = 11;
-
-
-
-    public StreamQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "stream.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsume: RabbitMQ.Client.Impl.MethodBase, IStreamConsume {
-    public const int ClassId = 80;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_exclusive;
-    public bool m_nowait;
-
-    ushort IStreamConsume.Ticket { get { return m_ticket; } }
-    string IStreamConsume.Queue { get { return m_queue; } }
-    string IStreamConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamConsume.NoLocal { get { return m_noLocal; } }
-    bool IStreamConsume.Exclusive { get { return m_exclusive; } }
-    bool IStreamConsume.Nowait { get { return m_nowait; } }
-
-    public StreamConsume() {}
-    public StreamConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initExclusive,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "stream.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsumeOk: RabbitMQ.Client.Impl.MethodBase, IStreamConsumeOk {
-    public const int ClassId = 80;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IStreamConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamConsumeOk() {}
-    public StreamConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "stream.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancel: RabbitMQ.Client.Impl.MethodBase, IStreamCancel {
-    public const int ClassId = 80;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IStreamCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamCancel.Nowait { get { return m_nowait; } }
-
-    public StreamCancel() {}
-    public StreamCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "stream.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancelOk: RabbitMQ.Client.Impl.MethodBase, IStreamCancelOk {
-    public const int ClassId = 80;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IStreamCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamCancelOk() {}
-    public StreamCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "stream.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamPublish: RabbitMQ.Client.Impl.MethodBase, IStreamPublish {
-    public const int ClassId = 80;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IStreamPublish.Ticket { get { return m_ticket; } }
-    string IStreamPublish.Exchange { get { return m_exchange; } }
-    string IStreamPublish.RoutingKey { get { return m_routingKey; } }
-    bool IStreamPublish.Mandatory { get { return m_mandatory; } }
-    bool IStreamPublish.Immediate { get { return m_immediate; } }
-
-    public StreamPublish() {}
-    public StreamPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "stream.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamReturn: RabbitMQ.Client.Impl.MethodBase, IStreamReturn {
-    public const int ClassId = 80;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IStreamReturn.ReplyCode { get { return m_replyCode; } }
-    string IStreamReturn.ReplyText { get { return m_replyText; } }
-    string IStreamReturn.Exchange { get { return m_exchange; } }
-    string IStreamReturn.RoutingKey { get { return m_routingKey; } }
-
-    public StreamReturn() {}
-    public StreamReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "stream.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamDeliver: RabbitMQ.Client.Impl.MethodBase, IStreamDeliver {
-    public const int ClassId = 80;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public string m_exchange;
-    public string m_queue;
-
-    string IStreamDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IStreamDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    string IStreamDeliver.Exchange { get { return m_exchange; } }
-    string IStreamDeliver.Queue { get { return m_queue; } }
-
-    public StreamDeliver() {}
-    public StreamDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      string initExchange,
-      string initQueue)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_exchange = initExchange;
-      m_queue = initQueue;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "stream.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_exchange = reader.ReadShortstr();
-      m_queue = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_queue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_queue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelect: RabbitMQ.Client.Impl.MethodBase, ITxSelect {
-    public const int ClassId = 90;
-    public const int MethodId = 10;
-
-
-
-    public TxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelectOk: RabbitMQ.Client.Impl.MethodBase, ITxSelectOk {
-    public const int ClassId = 90;
-    public const int MethodId = 11;
-
-
-
-    public TxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "tx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommit: RabbitMQ.Client.Impl.MethodBase, ITxCommit {
-    public const int ClassId = 90;
-    public const int MethodId = 20;
-
-
-
-    public TxCommit(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "tx.commit"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommitOk: RabbitMQ.Client.Impl.MethodBase, ITxCommitOk {
-    public const int ClassId = 90;
-    public const int MethodId = 21;
-
-
-
-    public TxCommitOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "tx.commit-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollback: RabbitMQ.Client.Impl.MethodBase, ITxRollback {
-    public const int ClassId = 90;
-    public const int MethodId = 30;
-
-
-
-    public TxRollback(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "tx.rollback"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollbackOk: RabbitMQ.Client.Impl.MethodBase, ITxRollbackOk {
-    public const int ClassId = 90;
-    public const int MethodId = 31;
-
-
-
-    public TxRollbackOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "tx.rollback-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelect: RabbitMQ.Client.Impl.MethodBase, IDtxSelect {
-    public const int ClassId = 100;
-    public const int MethodId = 10;
-
-
-
-    public DtxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "dtx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelectOk: RabbitMQ.Client.Impl.MethodBase, IDtxSelectOk {
-    public const int ClassId = 100;
-    public const int MethodId = 11;
-
-
-
-    public DtxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "dtx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStart: RabbitMQ.Client.Impl.MethodBase, IDtxStart {
-    public const int ClassId = 100;
-    public const int MethodId = 20;
-
-    public string m_dtxIdentifier;
-
-    string IDtxStart.DtxIdentifier { get { return m_dtxIdentifier; } }
-
-    public DtxStart() {}
-    public DtxStart(
-      string initDtxIdentifier)
-    {
-      m_dtxIdentifier = initDtxIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "dtx.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_dtxIdentifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_dtxIdentifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_dtxIdentifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStartOk: RabbitMQ.Client.Impl.MethodBase, IDtxStartOk {
-    public const int ClassId = 100;
-    public const int MethodId = 21;
-
-
-
-    public DtxStartOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "dtx.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TunnelRequest: RabbitMQ.Client.Impl.MethodBase, ITunnelRequest {
-    public const int ClassId = 110;
-    public const int MethodId = 10;
-
-    public System.Collections.IDictionary m_metaData;
-
-    System.Collections.IDictionary ITunnelRequest.MetaData { get { return m_metaData; } }
-
-    public TunnelRequest() {}
-    public TunnelRequest(
-      System.Collections.IDictionary initMetaData)
-    {
-      m_metaData = initMetaData;
-    }
-
-    public override int ProtocolClassId { get { return 110; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tunnel.request"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_metaData = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_metaData);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_metaData);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestInteger: RabbitMQ.Client.Impl.MethodBase, ITestInteger {
-    public const int ClassId = 120;
-    public const int MethodId = 10;
-
-    public byte m_integer1;
-    public ushort m_integer2;
-    public uint m_integer3;
-    public ulong m_integer4;
-    public byte m_operation;
-
-    byte ITestInteger.Integer1 { get { return m_integer1; } }
-    ushort ITestInteger.Integer2 { get { return m_integer2; } }
-    uint ITestInteger.Integer3 { get { return m_integer3; } }
-    ulong ITestInteger.Integer4 { get { return m_integer4; } }
-    byte ITestInteger.Operation { get { return m_operation; } }
-
-    public TestInteger() {}
-    public TestInteger(
-      byte initInteger1,
-      ushort initInteger2,
-      uint initInteger3,
-      ulong initInteger4,
-      byte initOperation)
-    {
-      m_integer1 = initInteger1;
-      m_integer2 = initInteger2;
-      m_integer3 = initInteger3;
-      m_integer4 = initInteger4;
-      m_operation = initOperation;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "test.integer"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_integer1 = reader.ReadOctet();
-      m_integer2 = reader.ReadShort();
-      m_integer3 = reader.ReadLong();
-      m_integer4 = reader.ReadLonglong();
-      m_operation = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteOctet(m_integer1);
-      writer.WriteShort(m_integer2);
-      writer.WriteLong(m_integer3);
-      writer.WriteLonglong(m_integer4);
-      writer.WriteOctet(m_operation);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_integer1); sb.Append(",");
-      sb.Append(m_integer2); sb.Append(",");
-      sb.Append(m_integer3); sb.Append(",");
-      sb.Append(m_integer4); sb.Append(",");
-      sb.Append(m_operation);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestIntegerOk: RabbitMQ.Client.Impl.MethodBase, ITestIntegerOk {
-    public const int ClassId = 120;
-    public const int MethodId = 11;
-
-    public ulong m_result;
-
-    ulong ITestIntegerOk.Result { get { return m_result; } }
-
-    public TestIntegerOk() {}
-    public TestIntegerOk(
-      ulong initResult)
-    {
-      m_result = initResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "test.integer-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_result = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_result);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_result);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestString: RabbitMQ.Client.Impl.MethodBase, ITestString {
-    public const int ClassId = 120;
-    public const int MethodId = 20;
-
-    public string m_string1;
-    public byte[] m_string2;
-    public byte m_operation;
-
-    string ITestString.String1 { get { return m_string1; } }
-    byte[] ITestString.String2 { get { return m_string2; } }
-    byte ITestString.Operation { get { return m_operation; } }
-
-    public TestString() {}
-    public TestString(
-      string initString1,
-      byte[] initString2,
-      byte initOperation)
-    {
-      m_string1 = initString1;
-      m_string2 = initString2;
-      m_operation = initOperation;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "test.string"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_string1 = reader.ReadShortstr();
-      m_string2 = reader.ReadLongstr();
-      m_operation = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_string1);
-      writer.WriteLongstr(m_string2);
-      writer.WriteOctet(m_operation);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_string1); sb.Append(",");
-      sb.Append(m_string2); sb.Append(",");
-      sb.Append(m_operation);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestStringOk: RabbitMQ.Client.Impl.MethodBase, ITestStringOk {
-    public const int ClassId = 120;
-    public const int MethodId = 21;
-
-    public byte[] m_result;
-
-    byte[] ITestStringOk.Result { get { return m_result; } }
-
-    public TestStringOk() {}
-    public TestStringOk(
-      byte[] initResult)
-    {
-      m_result = initResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "test.string-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_result = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_result);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_result);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestTable: RabbitMQ.Client.Impl.MethodBase, ITestTable {
-    public const int ClassId = 120;
-    public const int MethodId = 30;
-
-    public System.Collections.IDictionary m_table;
-    public byte m_integerOp;
-    public byte m_stringOp;
-
-    System.Collections.IDictionary ITestTable.Table { get { return m_table; } }
-    byte ITestTable.IntegerOp { get { return m_integerOp; } }
-    byte ITestTable.StringOp { get { return m_stringOp; } }
-
-    public TestTable() {}
-    public TestTable(
-      System.Collections.IDictionary initTable,
-      byte initIntegerOp,
-      byte initStringOp)
-    {
-      m_table = initTable;
-      m_integerOp = initIntegerOp;
-      m_stringOp = initStringOp;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "test.table"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_table = reader.ReadTable();
-      m_integerOp = reader.ReadOctet();
-      m_stringOp = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_table);
-      writer.WriteOctet(m_integerOp);
-      writer.WriteOctet(m_stringOp);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_table); sb.Append(",");
-      sb.Append(m_integerOp); sb.Append(",");
-      sb.Append(m_stringOp);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestTableOk: RabbitMQ.Client.Impl.MethodBase, ITestTableOk {
-    public const int ClassId = 120;
-    public const int MethodId = 31;
-
-    public ulong m_integerResult;
-    public byte[] m_stringResult;
-
-    ulong ITestTableOk.IntegerResult { get { return m_integerResult; } }
-    byte[] ITestTableOk.StringResult { get { return m_stringResult; } }
-
-    public TestTableOk() {}
-    public TestTableOk(
-      ulong initIntegerResult,
-      byte[] initStringResult)
-    {
-      m_integerResult = initIntegerResult;
-      m_stringResult = initStringResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "test.table-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_integerResult = reader.ReadLonglong();
-      m_stringResult = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_integerResult);
-      writer.WriteLongstr(m_stringResult);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_integerResult); sb.Append(",");
-      sb.Append(m_stringResult);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestContent: RabbitMQ.Client.Impl.MethodBase, ITestContent {
-    public const int ClassId = 120;
-    public const int MethodId = 40;
-
-
-
-    public TestContent(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "test.content"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestContentOk: RabbitMQ.Client.Impl.MethodBase, ITestContentOk {
-    public const int ClassId = 120;
-    public const int MethodId = 41;
-
-    public uint m_contentChecksum;
-
-    uint ITestContentOk.ContentChecksum { get { return m_contentChecksum; } }
-
-    public TestContentOk() {}
-    public TestContentOk(
-      uint initContentChecksum)
-    {
-      m_contentChecksum = initContentChecksum;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "test.content-ok"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_contentChecksum = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_contentChecksum);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_contentChecksum);
-      sb.Append(")");
-    }
-  }
-
-  public class Model: RabbitMQ.Client.Impl.ModelBase {
-    public Model(RabbitMQ.Client.Impl.ISession session): base(session) {}
-    public override void _Private_BasicPublish(
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @mandatory,
-      System.Boolean @immediate,
-      RabbitMQ.Client.IBasicProperties @basicProperties,
-      System.Byte[] @body)
-    {
-      BasicPublish __req = new BasicPublish();
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_mandatory = @mandatory;
-      __req.m_immediate = @immediate;
-      ModelSend(__req, (BasicProperties) basicProperties,body);
-    }
-    public override void _Private_BasicConsume(
-      System.String @queue,
-      System.String @consumerTag,
-      System.Boolean @noLocal,
-      System.Boolean @noAck,
-      System.Boolean @exclusive,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @filter)
-    {
-      BasicConsume __req = new BasicConsume();
-      __req.m_queue = @queue;
-      __req.m_consumerTag = @consumerTag;
-      __req.m_noLocal = @noLocal;
-      __req.m_noAck = @noAck;
-      __req.m_exclusive = @exclusive;
-      __req.m_nowait = @nowait;
-      if (@filter != null) {
-        throw new UnsupportedMethodFieldException("_Private_BasicConsume","filter");
-      }
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicCancel(
-      System.String @consumerTag,
-      System.Boolean @nowait)
-    {
-      BasicCancel __req = new BasicCancel();
-      __req.m_consumerTag = @consumerTag;
-      __req.m_nowait = @nowait;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelOpen(
-      System.String @outOfBand)
-    {
-      ChannelOpen __req = new ChannelOpen();
-      __req.m_outOfBand = @outOfBand;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelOpenOk __rep = __repBase as ChannelOpenOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ChannelCloseOk()
-    {
-      ChannelCloseOk __req = new ChannelCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ChannelClose __req = new ChannelClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicGet(
-      System.String @queue,
-      System.Boolean @noAck)
-    {
-      BasicGet __req = new BasicGet();
-      __req.m_queue = @queue;
-      __req.m_noAck = @noAck;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelFlowOk()
-    {
-      ChannelFlowOk __req = new ChannelFlowOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.Impl.ConnectionTuneDetails ConnectionStartOk(
-      System.Collections.IDictionary @clientProperties,
-      System.String @mechanism,
-      System.Byte[] @response,
-      System.String @locale)
-    {
-      ConnectionStartOk __req = new ConnectionStartOk();
-      __req.m_clientProperties = @clientProperties;
-      __req.m_mechanism = @mechanism;
-      __req.m_response = @response;
-      __req.m_locale = @locale;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionTune __rep = __repBase as ConnectionTune;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      RabbitMQ.Client.Impl.ConnectionTuneDetails __result = new RabbitMQ.Client.Impl.ConnectionTuneDetails();
-      __result.m_channelMax = __rep.m_channelMax;
-      __result.m_frameMax = __rep.m_frameMax;
-      __result.m_heartbeat = __rep.m_heartbeat;
-      return __result;
-    }
-    public override void ConnectionTuneOk(
-      System.UInt16 @channelMax,
-      System.UInt32 @frameMax,
-      System.UInt16 @heartbeat)
-    {
-      ConnectionTuneOk __req = new ConnectionTuneOk();
-      __req.m_channelMax = @channelMax;
-      __req.m_frameMax = @frameMax;
-      __req.m_heartbeat = @heartbeat;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionOpen(
-      System.String @virtualHost,
-      System.String @capabilities,
-      System.Boolean @insist)
-    {
-      ConnectionOpen __req = new ConnectionOpen();
-      __req.m_virtualHost = @virtualHost;
-      __req.m_capabilities = @capabilities;
-      __req.m_insist = @insist;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ConnectionClose __req = new ConnectionClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionCloseOk __rep = __repBase as ConnectionCloseOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ConnectionCloseOk()
-    {
-      ConnectionCloseOk __req = new ConnectionCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.IBasicProperties CreateBasicProperties()
-    {
-      return new BasicProperties();
-    }
-    public override RabbitMQ.Client.IFileProperties CreateFileProperties()
-    {
-      return new FileProperties();
-    }
-    public override RabbitMQ.Client.IStreamProperties CreateStreamProperties()
-    {
-      return new StreamProperties();
-    }
-    public override void ChannelFlow(
-      System.Boolean @active)
-    {
-      ChannelFlow __req = new ChannelFlow();
-      __req.m_active = @active;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelFlowOk __rep = __repBase as ChannelFlowOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDeclare(
-      System.String @exchange,
-      System.String @type,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @autoDelete,
-      System.Boolean @internal,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      ExchangeDeclare __req = new ExchangeDeclare();
-      __req.m_exchange = @exchange;
-      __req.m_type = @type;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_internal = @internal;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeclareOk __rep = __repBase as ExchangeDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDelete(
-      System.String @exchange,
-      System.Boolean @ifUnused,
-      System.Boolean @nowait)
-    {
-      ExchangeDelete __req = new ExchangeDelete();
-      __req.m_exchange = @exchange;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeleteOk __rep = __repBase as ExchangeDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override System.String QueueDeclare(
-      System.String @queue,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @exclusive,
-      System.Boolean @autoDelete,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueDeclare __req = new QueueDeclare();
-      __req.m_queue = @queue;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_exclusive = @exclusive;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return null;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeclareOk __rep = __repBase as QueueDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_queue;
-    }
-    public override void QueueBind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueBind __req = new QueueBind();
-      __req.m_queue = @queue;
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueBindOk __rep = __repBase as QueueBindOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void QueueUnbind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueUnbind __req = new QueueUnbind();
-      __req.m_queue = @queue;
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_arguments = @arguments;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueUnbindOk __rep = __repBase as QueueUnbindOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override System.UInt32 QueuePurge(
-      System.String @queue,
-      System.Boolean @nowait)
-    {
-      QueuePurge __req = new QueuePurge();
-      __req.m_queue = @queue;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueuePurgeOk __rep = __repBase as QueuePurgeOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override System.UInt32 QueueDelete(
-      System.String @queue,
-      System.Boolean @ifUnused,
-      System.Boolean @ifEmpty,
-      System.Boolean @nowait)
-    {
-      QueueDelete __req = new QueueDelete();
-      __req.m_queue = @queue;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_ifEmpty = @ifEmpty;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeleteOk __rep = __repBase as QueueDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override void BasicQos(
-      System.UInt32 @prefetchSize,
-      System.UInt16 @prefetchCount,
-      System.Boolean @global)
-    {
-      BasicQos __req = new BasicQos();
-      __req.m_prefetchSize = @prefetchSize;
-      __req.m_prefetchCount = @prefetchCount;
-      __req.m_global = @global;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      BasicQosOk __rep = __repBase as BasicQosOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void BasicAck(
-      System.UInt64 @deliveryTag,
-      System.Boolean @multiple)
-    {
-      BasicAck __req = new BasicAck();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_multiple = @multiple;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicReject(
-      System.UInt64 @deliveryTag,
-      System.Boolean @requeue)
-    {
-      BasicReject __req = new BasicReject();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_requeue = @requeue;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicRecover(
-      System.Boolean @requeue)
-    {
-      BasicRecover __req = new BasicRecover();
-      __req.m_requeue = @requeue;
-      ModelSend(__req,null,null);
-    }
-    public override void TxSelect()
-    {
-      TxSelect __req = new TxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxSelectOk __rep = __repBase as TxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxCommit()
-    {
-      TxCommit __req = new TxCommit();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxCommitOk __rep = __repBase as TxCommitOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxRollback()
-    {
-      TxRollback __req = new TxRollback();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxRollbackOk __rep = __repBase as TxRollbackOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxSelect()
-    {
-      DtxSelect __req = new DtxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxSelectOk __rep = __repBase as DtxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxStart(
-      System.String @dtxIdentifier)
-    {
-      DtxStart __req = new DtxStart();
-      __req.m_dtxIdentifier = @dtxIdentifier;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxStartOk __rep = __repBase as DtxStartOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override bool DispatchAsynchronous(RabbitMQ.Client.Impl.Command cmd) {
-      RabbitMQ.Client.Impl.MethodBase __method = (RabbitMQ.Client.Impl.MethodBase) cmd.Method;
-      switch ((__method.ProtocolClassId << 16) | __method.ProtocolMethodId) {
-        case 3932181: {
-          BasicConsumeOk __impl = (BasicConsumeOk) __method;
-          HandleBasicConsumeOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932191: {
-          BasicCancelOk __impl = (BasicCancelOk) __method;
-          HandleBasicCancelOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932231: {
-          BasicGetOk __impl = (BasicGetOk) __method;
-          HandleBasicGetOk(
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            __impl.m_messageCount,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932232: {
-          HandleBasicGetEmpty();
-          return true;
-        }
-        case 3932220: {
-          BasicDeliver __impl = (BasicDeliver) __method;
-          HandleBasicDeliver(
-            __impl.m_consumerTag,
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932210: {
-          BasicReturn __impl = (BasicReturn) __method;
-          HandleBasicReturn(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 1310740: {
-          ChannelFlow __impl = (ChannelFlow) __method;
-          HandleChannelFlow(
-            __impl.m_active);
-          return true;
-        }
-        case 1310760: {
-          ChannelClose __impl = (ChannelClose) __method;
-          HandleChannelClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        case 1310761: {
-          HandleChannelCloseOk();
-          return true;
-        }
-        case 655370: {
-          ConnectionStart __impl = (ConnectionStart) __method;
-          HandleConnectionStart(
-            __impl.m_versionMajor,
-            __impl.m_versionMinor,
-            __impl.m_serverProperties,
-            __impl.m_mechanisms,
-            __impl.m_locales);
-          return true;
-        }
-        case 655401: {
-          ConnectionOpenOk __impl = (ConnectionOpenOk) __method;
-          HandleConnectionOpenOk(
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655410: {
-          ConnectionRedirect __impl = (ConnectionRedirect) __method;
-          HandleConnectionRedirect(
-            __impl.m_host,
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655420: {
-          ConnectionClose __impl = (ConnectionClose) __method;
-          HandleConnectionClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        default: return false;
-      }
-    }
-  }
-}
diff --git a/mcs/class/RabbitMQ.Client/docs/specs/net_4_0-api-0-9.cs b/mcs/class/RabbitMQ.Client/docs/specs/net_4_0-api-0-9.cs
deleted file mode 100644 (file)
index fb67270..0000000
+++ /dev/null
@@ -1,7050 +0,0 @@
-// Autogenerated code. Do not edit.
-
-// This source code is dual-licensed under the Apache License, version
-// 2.0, and the Mozilla Public License, version 1.1.
-//
-// The APL v2.0:
-//
-//---------------------------------------------------------------------------
-//   Copyright (C) 2007-2010 LShift Ltd., Cohesive Financial
-//   Technologies LLC., and Rabbit Technologies Ltd.
-//
-//   Licensed under the Apache License, Version 2.0 (the "License");
-//   you may not use this file except in compliance with the License.
-//   You may obtain a copy of the License at
-//
-//       http://www.apache.org/licenses/LICENSE-2.0
-//
-//   Unless required by applicable law or agreed to in writing, software
-//   distributed under the License is distributed on an "AS IS" BASIS,
-//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//   See the License for the specific language governing permissions and
-//   limitations under the License.
-//---------------------------------------------------------------------------
-//
-// The MPL v1.1:
-//
-//---------------------------------------------------------------------------
-//   The contents of this file are subject to the Mozilla Public License
-//   Version 1.1 (the "License"); you may not use this file except in
-//   compliance with the License. You may obtain a copy of the License at
-//   http://www.rabbitmq.com/mpl.html
-//
-//   Software distributed under the License is distributed on an "AS IS"
-//   basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//   License for the specific language governing rights and limitations
-//   under the License.
-//
-//   The Original Code is The RabbitMQ .NET Client.
-//
-//   The Initial Developers of the Original Code are LShift Ltd,
-//   Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
-//   Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
-//   are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
-//   Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created by LShift Ltd are Copyright (C) 2007-2010 LShift
-//   Ltd. Portions created by Cohesive Financial Technologies LLC are
-//   Copyright (C) 2007-2010 Cohesive Financial Technologies
-//   LLC. Portions created by Rabbit Technologies Ltd are Copyright
-//   (C) 2007-2010 Rabbit Technologies Ltd.
-//
-//   All Rights Reserved.
-//
-//   Contributor(s): ______________________________________.
-//
-//---------------------------------------------------------------------------
-
-using RabbitMQ.Client;
-using RabbitMQ.Client.Exceptions;
-
-namespace RabbitMQ.Client.Framing.v0_9 {
-  public class Protocol: RabbitMQ.Client.Framing.Impl.v0_9.ProtocolBase {
-    ///<summary>Protocol major version (= 0)</summary>
-    public override int MajorVersion { get { return 0; } }
-    ///<summary>Protocol minor version (= 9)</summary>
-    public override int MinorVersion { get { return 9; } }
-    ///<summary>Protocol API name (= AMQP_0_9)</summary>
-    public override string ApiName { get { return "AMQP_0_9"; } }
-    ///<summary>Default TCP port (= 5672)</summary>
-    public override int DefaultPort { get { return 5672; } }
-
-    public override RabbitMQ.Client.Impl.MethodBase DecodeMethodFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-      ushort methodId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 10: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionStart result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionStartOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionSecure result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionSecure();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionSecureOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionSecureOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionTune result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionTune();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionTuneOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionTuneOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionOpen result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 42: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionRedirect result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionRedirect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionClose result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 51: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 20: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelOpen result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelFlow result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelFlow();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelFlowOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelFlowOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelClose result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelResume result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelResume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelPing result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelPing();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelPong result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelPong();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 30: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.AccessRequest result = new RabbitMQ.Client.Framing.Impl.v0_9.AccessRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.AccessRequestOk result = new RabbitMQ.Client.Framing.Impl.v0_9.AccessRequestOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 40: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeclare result = new RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDelete result = new RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 50: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueDeclare result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueBind result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueBind();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueBindOk result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueBindOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueUnbind result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueUnbind();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 51: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueUnbindOk result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueUnbindOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueuePurge result = new RabbitMQ.Client.Framing.Impl.v0_9.QueuePurge();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueuePurgeOk result = new RabbitMQ.Client.Framing.Impl.v0_9.QueuePurgeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueDelete result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 60: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicQos result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicQosOk result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicConsume result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicCancel result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicPublish result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicReturn result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicDeliver result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicGet result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicGet();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 71: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicGetOk result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicGetOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 72: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicGetEmpty result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicGetEmpty();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicAck result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicReject result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicRecover result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicRecover();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 70: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileQos result = new RabbitMQ.Client.Framing.Impl.v0_9.FileQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileQosOk result = new RabbitMQ.Client.Framing.Impl.v0_9.FileQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileConsume result = new RabbitMQ.Client.Framing.Impl.v0_9.FileConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_9.FileConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileCancel result = new RabbitMQ.Client.Framing.Impl.v0_9.FileCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_9.FileCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileOpen result = new RabbitMQ.Client.Framing.Impl.v0_9.FileOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_9.FileOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileStage result = new RabbitMQ.Client.Framing.Impl.v0_9.FileStage();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FilePublish result = new RabbitMQ.Client.Framing.Impl.v0_9.FilePublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileReturn result = new RabbitMQ.Client.Framing.Impl.v0_9.FileReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileDeliver result = new RabbitMQ.Client.Framing.Impl.v0_9.FileDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileAck result = new RabbitMQ.Client.Framing.Impl.v0_9.FileAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileReject result = new RabbitMQ.Client.Framing.Impl.v0_9.FileReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 80: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamQos result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamQosOk result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamConsume result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamCancel result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamPublish result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamReturn result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamDeliver result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 90: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxSelect result = new RabbitMQ.Client.Framing.Impl.v0_9.TxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_9.TxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxCommit result = new RabbitMQ.Client.Framing.Impl.v0_9.TxCommit();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxCommitOk result = new RabbitMQ.Client.Framing.Impl.v0_9.TxCommitOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxRollback result = new RabbitMQ.Client.Framing.Impl.v0_9.TxRollback();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxRollbackOk result = new RabbitMQ.Client.Framing.Impl.v0_9.TxRollbackOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 100: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.DtxSelect result = new RabbitMQ.Client.Framing.Impl.v0_9.DtxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.DtxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_9.DtxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.DtxStart result = new RabbitMQ.Client.Framing.Impl.v0_9.DtxStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.DtxStartOk result = new RabbitMQ.Client.Framing.Impl.v0_9.DtxStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 110: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TunnelRequest result = new RabbitMQ.Client.Framing.Impl.v0_9.TunnelRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 120: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageTransfer result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageTransfer();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageConsume result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageCancel result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageGet result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageGet();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageRecover result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageRecover();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageOpen result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageClose result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageAppend result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageAppend();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageCheckpoint result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageCheckpoint();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageResume result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageResume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 110: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageQos result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 500: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageOk result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 510: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageEmpty result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageEmpty();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 520: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageReject result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 530: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageOffset result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageOffset();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, methodId);
-    }
-
-    public override RabbitMQ.Client.Impl.ContentHeaderBase DecodeContentHeaderFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 60: return new BasicProperties();
-        case 70: return new FileProperties();
-        case 80: return new StreamProperties();
-        case 110: return new TunnelProperties();
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, 0);
-    }
-  }
-  public class Constants {
-    ///<summary>(= 1)</summary>
-    public const int FrameMethod = 1;
-    ///<summary>(= 2)</summary>
-    public const int FrameHeader = 2;
-    ///<summary>(= 3)</summary>
-    public const int FrameBody = 3;
-    ///<summary>(= 4)</summary>
-    public const int FrameOobMethod = 4;
-    ///<summary>(= 5)</summary>
-    public const int FrameOobHeader = 5;
-    ///<summary>(= 6)</summary>
-    public const int FrameOobBody = 6;
-    ///<summary>(= 7)</summary>
-    public const int FrameTrace = 7;
-    ///<summary>(= 8)</summary>
-    public const int FrameHeartbeat = 8;
-    ///<summary>(= 4096)</summary>
-    public const int FrameMinSize = 4096;
-    ///<summary>(= 206)</summary>
-    public const int FrameEnd = 206;
-    ///<summary>(= 200)</summary>
-    public const int ReplySuccess = 200;
-    ///<summary>(= 310)</summary>
-    public const int NotDelivered = 310;
-    ///<summary>(= 311)</summary>
-    public const int ContentTooLarge = 311;
-    ///<summary>(= 312)</summary>
-    public const int NoRoute = 312;
-    ///<summary>(= 313)</summary>
-    public const int NoConsumers = 313;
-    ///<summary>(= 320)</summary>
-    public const int ConnectionForced = 320;
-    ///<summary>(= 402)</summary>
-    public const int InvalidPath = 402;
-    ///<summary>(= 403)</summary>
-    public const int AccessRefused = 403;
-    ///<summary>(= 404)</summary>
-    public const int NotFound = 404;
-    ///<summary>(= 405)</summary>
-    public const int ResourceLocked = 405;
-    ///<summary>(= 406)</summary>
-    public const int PreconditionFailed = 406;
-    ///<summary>(= 501)</summary>
-    public const int FrameError = 501;
-    ///<summary>(= 502)</summary>
-    public const int SyntaxError = 502;
-    ///<summary>(= 503)</summary>
-    public const int CommandInvalid = 503;
-    ///<summary>(= 504)</summary>
-    public const int ChannelError = 504;
-    ///<summary>(= 506)</summary>
-    public const int ResourceError = 506;
-    ///<summary>(= 530)</summary>
-    public const int NotAllowed = 530;
-    ///<summary>(= 540)</summary>
-    public const int NotImplemented = 540;
-    ///<summary>(= 541)</summary>
-    public const int InternalError = 541;
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start".</summary>
-  public interface IConnectionStart: IMethod {
-    byte VersionMajor { get; }
-    byte VersionMinor { get; }
-    System.Collections.IDictionary ServerProperties { get; }
-    byte[] Mechanisms { get; }
-    byte[] Locales { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start-ok".</summary>
-  public interface IConnectionStartOk: IMethod {
-    System.Collections.IDictionary ClientProperties { get; }
-    string Mechanism { get; }
-    byte[] Response { get; }
-    string Locale { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure".</summary>
-  public interface IConnectionSecure: IMethod {
-    byte[] Challenge { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure-ok".</summary>
-  public interface IConnectionSecureOk: IMethod {
-    byte[] Response { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune".</summary>
-  public interface IConnectionTune: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune-ok".</summary>
-  public interface IConnectionTuneOk: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open".</summary>
-  public interface IConnectionOpen: IMethod {
-    string VirtualHost { get; }
-    string Capabilities { get; }
-    bool Insist { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open-ok".</summary>
-  public interface IConnectionOpenOk: IMethod {
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.redirect".</summary>
-  public interface IConnectionRedirect: IMethod {
-    string Host { get; }
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close".</summary>
-  public interface IConnectionClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close-ok".</summary>
-  public interface IConnectionCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open".</summary>
-  public interface IChannelOpen: IMethod {
-    string OutOfBand { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open-ok".</summary>
-  public interface IChannelOpenOk: IMethod {
-    byte[] ChannelId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow".</summary>
-  public interface IChannelFlow: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow-ok".</summary>
-  public interface IChannelFlowOk: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close".</summary>
-  public interface IChannelClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close-ok".</summary>
-  public interface IChannelCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.resume".</summary>
-  public interface IChannelResume: IMethod {
-    byte[] ChannelId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.ping".</summary>
-  public interface IChannelPing: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.pong".</summary>
-  public interface IChannelPong: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.ok".</summary>
-  public interface IChannelOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request".</summary>
-  public interface IAccessRequest: IMethod {
-    string Realm { get; }
-    bool Exclusive { get; }
-    bool Passive { get; }
-    bool Active { get; }
-    bool Write { get; }
-    bool Read { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request-ok".</summary>
-  public interface IAccessRequestOk: IMethod {
-    ushort Ticket { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare".</summary>
-  public interface IExchangeDeclare: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string Type { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool AutoDelete { get; }
-    bool Internal { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare-ok".</summary>
-  public interface IExchangeDeclareOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete".</summary>
-  public interface IExchangeDelete: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    bool IfUnused { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete-ok".</summary>
-  public interface IExchangeDeleteOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare".</summary>
-  public interface IQueueDeclare: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool Exclusive { get; }
-    bool AutoDelete { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare-ok".</summary>
-  public interface IQueueDeclareOk: IMethod {
-    string Queue { get; }
-    uint MessageCount { get; }
-    uint ConsumerCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind".</summary>
-  public interface IQueueBind: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind-ok".</summary>
-  public interface IQueueBindOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.unbind".</summary>
-  public interface IQueueUnbind: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.unbind-ok".</summary>
-  public interface IQueueUnbindOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge".</summary>
-  public interface IQueuePurge: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge-ok".</summary>
-  public interface IQueuePurgeOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete".</summary>
-  public interface IQueueDelete: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool IfUnused { get; }
-    bool IfEmpty { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete-ok".</summary>
-  public interface IQueueDeleteOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos".</summary>
-  public interface IBasicQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos-ok".</summary>
-  public interface IBasicQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume".</summary>
-  public interface IBasicConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Filter { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume-ok".</summary>
-  public interface IBasicConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel".</summary>
-  public interface IBasicCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel-ok".</summary>
-  public interface IBasicCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.publish".</summary>
-  public interface IBasicPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.return".</summary>
-  public interface IBasicReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.deliver".</summary>
-  public interface IBasicDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get".</summary>
-  public interface IBasicGet: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool NoAck { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-ok".</summary>
-  public interface IBasicGetOk: IMethod {
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-empty".</summary>
-  public interface IBasicGetEmpty: IMethod {
-    string ClusterId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.ack".</summary>
-  public interface IBasicAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.reject".</summary>
-  public interface IBasicReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.recover".</summary>
-  public interface IBasicRecover: IMethod {
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos".</summary>
-  public interface IFileQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos-ok".</summary>
-  public interface IFileQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume".</summary>
-  public interface IFileConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Filter { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume-ok".</summary>
-  public interface IFileConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel".</summary>
-  public interface IFileCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel-ok".</summary>
-  public interface IFileCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open".</summary>
-  public interface IFileOpen: IMethod {
-    string Identifier { get; }
-    ulong ContentSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open-ok".</summary>
-  public interface IFileOpenOk: IMethod {
-    ulong StagedSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.stage".</summary>
-  public interface IFileStage: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.publish".</summary>
-  public interface IFilePublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.return".</summary>
-  public interface IFileReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.deliver".</summary>
-  public interface IFileDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.ack".</summary>
-  public interface IFileAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.reject".</summary>
-  public interface IFileReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos".</summary>
-  public interface IStreamQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    uint ConsumeRate { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos-ok".</summary>
-  public interface IStreamQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume".</summary>
-  public interface IStreamConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Filter { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume-ok".</summary>
-  public interface IStreamConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel".</summary>
-  public interface IStreamCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel-ok".</summary>
-  public interface IStreamCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.publish".</summary>
-  public interface IStreamPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.return".</summary>
-  public interface IStreamReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.deliver".</summary>
-  public interface IStreamDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    string Exchange { get; }
-    string Queue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select".</summary>
-  public interface ITxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select-ok".</summary>
-  public interface ITxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit".</summary>
-  public interface ITxCommit: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit-ok".</summary>
-  public interface ITxCommitOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback".</summary>
-  public interface ITxRollback: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback-ok".</summary>
-  public interface ITxRollbackOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select".</summary>
-  public interface IDtxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select-ok".</summary>
-  public interface IDtxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start".</summary>
-  public interface IDtxStart: IMethod {
-    string DtxIdentifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start-ok".</summary>
-  public interface IDtxStartOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tunnel.request".</summary>
-  public interface ITunnelRequest: IMethod {
-    System.Collections.IDictionary MetaData { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.transfer".</summary>
-  public interface IMessageTransfer: IMethod {
-    ushort Ticket { get; }
-    string Destination { get; }
-    bool Redelivered { get; }
-    bool Immediate { get; }
-    ulong Ttl { get; }
-    byte Priority { get; }
-    AmqpTimestamp Timestamp { get; }
-    byte DeliveryMode { get; }
-    AmqpTimestamp Expiration { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    string MessageId { get; }
-    string CorrelationId { get; }
-    string ReplyTo { get; }
-    string ContentType { get; }
-    string ContentEncoding { get; }
-    string UserId { get; }
-    string AppId { get; }
-    string TransactionId { get; }
-    byte[] SecurityToken { get; }
-    System.Collections.IDictionary ApplicationHeaders { get; }
-    byte[] Body { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.consume".</summary>
-  public interface IMessageConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Destination { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    System.Collections.IDictionary Filter { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.cancel".</summary>
-  public interface IMessageCancel: IMethod {
-    string Destination { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.get".</summary>
-  public interface IMessageGet: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Destination { get; }
-    bool NoAck { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.recover".</summary>
-  public interface IMessageRecover: IMethod {
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.open".</summary>
-  public interface IMessageOpen: IMethod {
-    byte[] Reference { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.close".</summary>
-  public interface IMessageClose: IMethod {
-    byte[] Reference { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.append".</summary>
-  public interface IMessageAppend: IMethod {
-    byte[] Reference { get; }
-    byte[] Bytes { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.checkpoint".</summary>
-  public interface IMessageCheckpoint: IMethod {
-    byte[] Reference { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.resume".</summary>
-  public interface IMessageResume: IMethod {
-    byte[] Reference { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.qos".</summary>
-  public interface IMessageQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.ok".</summary>
-  public interface IMessageOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.empty".</summary>
-  public interface IMessageEmpty: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.reject".</summary>
-  public interface IMessageReject: IMethod {
-    ushort Code { get; }
-    string Text { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.offset".</summary>
-  public interface IMessageOffset: IMethod {
-    ulong Value { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "basic"</summary>
-  public class BasicProperties: RabbitMQ.Client.Impl.BasicProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_deliveryMode;
-    private byte m_priority;
-    private string m_correlationId;
-    private string m_replyTo;
-    private string m_expiration;
-    private string m_messageId;
-    private AmqpTimestamp m_timestamp;
-    private string m_type;
-    private string m_userId;
-    private string m_appId;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_deliveryMode_present = false;
-    private bool m_priority_present = false;
-    private bool m_correlationId_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_expiration_present = false;
-    private bool m_messageId_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_type_present = false;
-    private bool m_userId_present = false;
-    private bool m_appId_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte DeliveryMode {
-      get {
-        return m_deliveryMode;
-      }
-      set {
-        m_deliveryMode_present = true;
-        m_deliveryMode = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string CorrelationId {
-      get {
-        return m_correlationId;
-      }
-      set {
-        m_correlationId_present = true;
-        m_correlationId = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string Expiration {
-      get {
-        return m_expiration;
-      }
-      set {
-        m_expiration_present = true;
-        m_expiration = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string Type {
-      get {
-        return m_type;
-      }
-      set {
-        m_type_present = true;
-        m_type = value;
-      }
-    }
-    public override string UserId {
-      get {
-        return m_userId;
-      }
-      set {
-        m_userId_present = true;
-        m_userId = value;
-      }
-    }
-    public override string AppId {
-      get {
-        return m_appId;
-      }
-      set {
-        m_appId_present = true;
-        m_appId = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearDeliveryMode() { m_deliveryMode_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearCorrelationId() { m_correlationId_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearExpiration() { m_expiration_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearType() { m_type_present = false; }
-    public override void ClearUserId() { m_userId_present = false; }
-    public override void ClearAppId() { m_appId_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsDeliveryModePresent() { return m_deliveryMode_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsCorrelationIdPresent() { return m_correlationId_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsExpirationPresent() { return m_expiration_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsTypePresent() { return m_type_present; }
-    public override bool IsUserIdPresent() { return m_userId_present; }
-    public override bool IsAppIdPresent() { return m_appId_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public BasicProperties() {}
-    public override int ProtocolClassId { get { return 60; } }
-    public override string ProtocolClassName { get { return "basic"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_deliveryMode_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_correlationId_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_expiration_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_type_present = reader.ReadPresence();
-      m_userId_present = reader.ReadPresence();
-      m_appId_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_deliveryMode_present) { m_deliveryMode = reader.ReadOctet(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_correlationId_present) { m_correlationId = reader.ReadShortstr(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_expiration_present) { m_expiration = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_type_present) { m_type = reader.ReadShortstr(); }
-      if (m_userId_present) { m_userId = reader.ReadShortstr(); }
-      if (m_appId_present) { m_appId = reader.ReadShortstr(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_deliveryMode_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_correlationId_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_expiration_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_type_present);
-      writer.WritePresence(m_userId_present);
-      writer.WritePresence(m_appId_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_deliveryMode_present) { writer.WriteOctet(m_deliveryMode); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_correlationId_present) { writer.WriteShortstr(m_correlationId); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_expiration_present) { writer.WriteShortstr(m_expiration); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_type_present) { writer.WriteShortstr(m_type); }
-      if (m_userId_present) { writer.WriteShortstr(m_userId); }
-      if (m_appId_present) { writer.WriteShortstr(m_appId); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content-type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content-encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("delivery-mode="); sb.Append(m_deliveryMode_present ? m_deliveryMode.ToString() : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("correlation-id="); sb.Append(m_correlationId_present ? (m_correlationId == null ? "(null)" : m_correlationId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("reply-to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("expiration="); sb.Append(m_expiration_present ? (m_expiration == null ? "(null)" : m_expiration.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message-id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("type="); sb.Append(m_type_present ? (m_type == null ? "(null)" : m_type.ToString()) : "_"); sb.Append(", ");
-      sb.Append("user-id="); sb.Append(m_userId_present ? (m_userId == null ? "(null)" : m_userId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("app-id="); sb.Append(m_appId_present ? (m_appId == null ? "(null)" : m_appId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("cluster-id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "file"</summary>
-  public class FileProperties: RabbitMQ.Client.Impl.FileProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private string m_replyTo;
-    private string m_messageId;
-    private string m_filename;
-    private AmqpTimestamp m_timestamp;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_messageId_present = false;
-    private bool m_filename_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override string Filename {
-      get {
-        return m_filename;
-      }
-      set {
-        m_filename_present = true;
-        m_filename = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearFilename() { m_filename_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsFilenamePresent() { return m_filename_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public FileProperties() {}
-    public override int ProtocolClassId { get { return 70; } }
-    public override string ProtocolClassName { get { return "file"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_filename_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_filename_present) { m_filename = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_filename_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_filename_present) { writer.WriteShortstr(m_filename); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content-type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content-encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("reply-to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message-id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("filename="); sb.Append(m_filename_present ? (m_filename == null ? "(null)" : m_filename.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("cluster-id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "stream"</summary>
-  public class StreamProperties: RabbitMQ.Client.Impl.StreamProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private AmqpTimestamp m_timestamp;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_timestamp_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-
-    public StreamProperties() {}
-    public override int ProtocolClassId { get { return 80; } }
-    public override string ProtocolClassName { get { return "stream"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content-type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content-encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "tunnel"</summary>
-  public class TunnelProperties: RabbitMQ.Client.Impl.ContentHeaderBase {
-    private System.Collections.IDictionary m_headers;
-    private string m_proxyName;
-    private string m_dataName;
-    private byte m_durable;
-    private byte m_broadcast;
-
-    private bool m_headers_present = false;
-    private bool m_proxyName_present = false;
-    private bool m_dataName_present = false;
-    private bool m_durable_present = false;
-    private bool m_broadcast_present = false;
-
-    public System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public string ProxyName {
-      get {
-        return m_proxyName;
-      }
-      set {
-        m_proxyName_present = true;
-        m_proxyName = value;
-      }
-    }
-    public string DataName {
-      get {
-        return m_dataName;
-      }
-      set {
-        m_dataName_present = true;
-        m_dataName = value;
-      }
-    }
-    public byte Durable {
-      get {
-        return m_durable;
-      }
-      set {
-        m_durable_present = true;
-        m_durable = value;
-      }
-    }
-    public byte Broadcast {
-      get {
-        return m_broadcast;
-      }
-      set {
-        m_broadcast_present = true;
-        m_broadcast = value;
-      }
-    }
-
-    public void ClearHeaders() { m_headers_present = false; }
-    public void ClearProxyName() { m_proxyName_present = false; }
-    public void ClearDataName() { m_dataName_present = false; }
-    public void ClearDurable() { m_durable_present = false; }
-    public void ClearBroadcast() { m_broadcast_present = false; }
-
-    public bool IsHeadersPresent() { return m_headers_present; }
-    public bool IsProxyNamePresent() { return m_proxyName_present; }
-    public bool IsDataNamePresent() { return m_dataName_present; }
-    public bool IsDurablePresent() { return m_durable_present; }
-    public bool IsBroadcastPresent() { return m_broadcast_present; }
-
-    public TunnelProperties() {}
-    public override int ProtocolClassId { get { return 110; } }
-    public override string ProtocolClassName { get { return "tunnel"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_headers_present = reader.ReadPresence();
-      m_proxyName_present = reader.ReadPresence();
-      m_dataName_present = reader.ReadPresence();
-      m_durable_present = reader.ReadPresence();
-      m_broadcast_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_proxyName_present) { m_proxyName = reader.ReadShortstr(); }
-      if (m_dataName_present) { m_dataName = reader.ReadShortstr(); }
-      if (m_durable_present) { m_durable = reader.ReadOctet(); }
-      if (m_broadcast_present) { m_broadcast = reader.ReadOctet(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_proxyName_present);
-      writer.WritePresence(m_dataName_present);
-      writer.WritePresence(m_durable_present);
-      writer.WritePresence(m_broadcast_present);
-      writer.FinishPresence();
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_proxyName_present) { writer.WriteShortstr(m_proxyName); }
-      if (m_dataName_present) { writer.WriteShortstr(m_dataName); }
-      if (m_durable_present) { writer.WriteOctet(m_durable); }
-      if (m_broadcast_present) { writer.WriteOctet(m_broadcast); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("proxy-name="); sb.Append(m_proxyName_present ? (m_proxyName == null ? "(null)" : m_proxyName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("data-name="); sb.Append(m_dataName_present ? (m_dataName == null ? "(null)" : m_dataName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("durable="); sb.Append(m_durable_present ? m_durable.ToString() : "_"); sb.Append(", ");
-      sb.Append("broadcast="); sb.Append(m_broadcast_present ? m_broadcast.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-}
-namespace RabbitMQ.Client.Framing.Impl.v0_9 {
-  using RabbitMQ.Client.Framing.v0_9;
-  public enum ClassId {
-    Connection = 10,
-    Channel = 20,
-    Access = 30,
-    Exchange = 40,
-    Queue = 50,
-    Basic = 60,
-    File = 70,
-    Stream = 80,
-    Tx = 90,
-    Dtx = 100,
-    Tunnel = 110,
-    Message = 120,
-    Invalid = -1
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStart: RabbitMQ.Client.Impl.MethodBase, IConnectionStart {
-    public const int ClassId = 10;
-    public const int MethodId = 10;
-
-    public byte m_versionMajor;
-    public byte m_versionMinor;
-    public System.Collections.IDictionary m_serverProperties;
-    public byte[] m_mechanisms;
-    public byte[] m_locales;
-
-    byte IConnectionStart.VersionMajor { get { return m_versionMajor; } }
-    byte IConnectionStart.VersionMinor { get { return m_versionMinor; } }
-    System.Collections.IDictionary IConnectionStart.ServerProperties { get { return m_serverProperties; } }
-    byte[] IConnectionStart.Mechanisms { get { return m_mechanisms; } }
-    byte[] IConnectionStart.Locales { get { return m_locales; } }
-
-    public ConnectionStart() {}
-    public ConnectionStart(
-      byte initVersionMajor,
-      byte initVersionMinor,
-      System.Collections.IDictionary initServerProperties,
-      byte[] initMechanisms,
-      byte[] initLocales)
-    {
-      m_versionMajor = initVersionMajor;
-      m_versionMinor = initVersionMinor;
-      m_serverProperties = initServerProperties;
-      m_mechanisms = initMechanisms;
-      m_locales = initLocales;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "connection.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_versionMajor = reader.ReadOctet();
-      m_versionMinor = reader.ReadOctet();
-      m_serverProperties = reader.ReadTable();
-      m_mechanisms = reader.ReadLongstr();
-      m_locales = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteOctet(m_versionMajor);
-      writer.WriteOctet(m_versionMinor);
-      writer.WriteTable(m_serverProperties);
-      writer.WriteLongstr(m_mechanisms);
-      writer.WriteLongstr(m_locales);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_versionMajor); sb.Append(",");
-      sb.Append(m_versionMinor); sb.Append(",");
-      sb.Append(m_serverProperties); sb.Append(",");
-      sb.Append(m_mechanisms); sb.Append(",");
-      sb.Append(m_locales);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStartOk: RabbitMQ.Client.Impl.MethodBase, IConnectionStartOk {
-    public const int ClassId = 10;
-    public const int MethodId = 11;
-
-    public System.Collections.IDictionary m_clientProperties;
-    public string m_mechanism;
-    public byte[] m_response;
-    public string m_locale;
-
-    System.Collections.IDictionary IConnectionStartOk.ClientProperties { get { return m_clientProperties; } }
-    string IConnectionStartOk.Mechanism { get { return m_mechanism; } }
-    byte[] IConnectionStartOk.Response { get { return m_response; } }
-    string IConnectionStartOk.Locale { get { return m_locale; } }
-
-    public ConnectionStartOk() {}
-    public ConnectionStartOk(
-      System.Collections.IDictionary initClientProperties,
-      string initMechanism,
-      byte[] initResponse,
-      string initLocale)
-    {
-      m_clientProperties = initClientProperties;
-      m_mechanism = initMechanism;
-      m_response = initResponse;
-      m_locale = initLocale;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "connection.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clientProperties = reader.ReadTable();
-      m_mechanism = reader.ReadShortstr();
-      m_response = reader.ReadLongstr();
-      m_locale = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_clientProperties);
-      writer.WriteShortstr(m_mechanism);
-      writer.WriteLongstr(m_response);
-      writer.WriteShortstr(m_locale);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clientProperties); sb.Append(",");
-      sb.Append(m_mechanism); sb.Append(",");
-      sb.Append(m_response); sb.Append(",");
-      sb.Append(m_locale);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecure: RabbitMQ.Client.Impl.MethodBase, IConnectionSecure {
-    public const int ClassId = 10;
-    public const int MethodId = 20;
-
-    public byte[] m_challenge;
-
-    byte[] IConnectionSecure.Challenge { get { return m_challenge; } }
-
-    public ConnectionSecure() {}
-    public ConnectionSecure(
-      byte[] initChallenge)
-    {
-      m_challenge = initChallenge;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "connection.secure"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_challenge = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_challenge);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_challenge);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecureOk: RabbitMQ.Client.Impl.MethodBase, IConnectionSecureOk {
-    public const int ClassId = 10;
-    public const int MethodId = 21;
-
-    public byte[] m_response;
-
-    byte[] IConnectionSecureOk.Response { get { return m_response; } }
-
-    public ConnectionSecureOk() {}
-    public ConnectionSecureOk(
-      byte[] initResponse)
-    {
-      m_response = initResponse;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "connection.secure-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_response = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_response);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_response);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTune: RabbitMQ.Client.Impl.MethodBase, IConnectionTune {
-    public const int ClassId = 10;
-    public const int MethodId = 30;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTune.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTune.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTune.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTune() {}
-    public ConnectionTune(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "connection.tune"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTuneOk: RabbitMQ.Client.Impl.MethodBase, IConnectionTuneOk {
-    public const int ClassId = 10;
-    public const int MethodId = 31;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTuneOk.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTuneOk.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTuneOk.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTuneOk() {}
-    public ConnectionTuneOk(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "connection.tune-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpen: RabbitMQ.Client.Impl.MethodBase, IConnectionOpen {
-    public const int ClassId = 10;
-    public const int MethodId = 40;
-
-    public string m_virtualHost;
-    public string m_capabilities;
-    public bool m_insist;
-
-    string IConnectionOpen.VirtualHost { get { return m_virtualHost; } }
-    string IConnectionOpen.Capabilities { get { return m_capabilities; } }
-    bool IConnectionOpen.Insist { get { return m_insist; } }
-
-    public ConnectionOpen() {}
-    public ConnectionOpen(
-      string initVirtualHost,
-      string initCapabilities,
-      bool initInsist)
-    {
-      m_virtualHost = initVirtualHost;
-      m_capabilities = initCapabilities;
-      m_insist = initInsist;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "connection.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_virtualHost = reader.ReadShortstr();
-      m_capabilities = reader.ReadShortstr();
-      m_insist = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_virtualHost);
-      writer.WriteShortstr(m_capabilities);
-      writer.WriteBit(m_insist);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_virtualHost); sb.Append(",");
-      sb.Append(m_capabilities); sb.Append(",");
-      sb.Append(m_insist);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpenOk: RabbitMQ.Client.Impl.MethodBase, IConnectionOpenOk {
-    public const int ClassId = 10;
-    public const int MethodId = 41;
-
-    public string m_knownHosts;
-
-    string IConnectionOpenOk.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionOpenOk() {}
-    public ConnectionOpenOk(
-      string initKnownHosts)
-    {
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "connection.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionRedirect: RabbitMQ.Client.Impl.MethodBase, IConnectionRedirect {
-    public const int ClassId = 10;
-    public const int MethodId = 42;
-
-    public string m_host;
-    public string m_knownHosts;
-
-    string IConnectionRedirect.Host { get { return m_host; } }
-    string IConnectionRedirect.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionRedirect() {}
-    public ConnectionRedirect(
-      string initHost,
-      string initKnownHosts)
-    {
-      m_host = initHost;
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 42; } }
-    public override string ProtocolMethodName { get { return "connection.redirect"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_host = reader.ReadShortstr();
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_host);
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_host); sb.Append(",");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionClose: RabbitMQ.Client.Impl.MethodBase, IConnectionClose {
-    public const int ClassId = 10;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IConnectionClose.ReplyCode { get { return m_replyCode; } }
-    string IConnectionClose.ReplyText { get { return m_replyText; } }
-    ushort IConnectionClose.ClassId { get { return m_classId; } }
-    ushort IConnectionClose.MethodId { get { return m_methodId; } }
-
-    public ConnectionClose() {}
-    public ConnectionClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "connection.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionCloseOk: RabbitMQ.Client.Impl.MethodBase, IConnectionCloseOk {
-    public const int ClassId = 10;
-    public const int MethodId = 51;
-
-
-
-    public ConnectionCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 51; } }
-    public override string ProtocolMethodName { get { return "connection.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpen: RabbitMQ.Client.Impl.MethodBase, IChannelOpen {
-    public const int ClassId = 20;
-    public const int MethodId = 10;
-
-    public string m_outOfBand;
-
-    string IChannelOpen.OutOfBand { get { return m_outOfBand; } }
-
-    public ChannelOpen() {}
-    public ChannelOpen(
-      string initOutOfBand)
-    {
-      m_outOfBand = initOutOfBand;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "channel.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_outOfBand = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_outOfBand);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_outOfBand);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpenOk: RabbitMQ.Client.Impl.MethodBase, IChannelOpenOk {
-    public const int ClassId = 20;
-    public const int MethodId = 11;
-
-    public byte[] m_channelId;
-
-    byte[] IChannelOpenOk.ChannelId { get { return m_channelId; } }
-
-    public ChannelOpenOk() {}
-    public ChannelOpenOk(
-      byte[] initChannelId)
-    {
-      m_channelId = initChannelId;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "channel.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelId = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_channelId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlow: RabbitMQ.Client.Impl.MethodBase, IChannelFlow {
-    public const int ClassId = 20;
-    public const int MethodId = 20;
-
-    public bool m_active;
-
-    bool IChannelFlow.Active { get { return m_active; } }
-
-    public ChannelFlow() {}
-    public ChannelFlow(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "channel.flow"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlowOk: RabbitMQ.Client.Impl.MethodBase, IChannelFlowOk {
-    public const int ClassId = 20;
-    public const int MethodId = 21;
-
-    public bool m_active;
-
-    bool IChannelFlowOk.Active { get { return m_active; } }
-
-    public ChannelFlowOk() {}
-    public ChannelFlowOk(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "channel.flow-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelClose: RabbitMQ.Client.Impl.MethodBase, IChannelClose {
-    public const int ClassId = 20;
-    public const int MethodId = 40;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IChannelClose.ReplyCode { get { return m_replyCode; } }
-    string IChannelClose.ReplyText { get { return m_replyText; } }
-    ushort IChannelClose.ClassId { get { return m_classId; } }
-    ushort IChannelClose.MethodId { get { return m_methodId; } }
-
-    public ChannelClose() {}
-    public ChannelClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "channel.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelCloseOk: RabbitMQ.Client.Impl.MethodBase, IChannelCloseOk {
-    public const int ClassId = 20;
-    public const int MethodId = 41;
-
-
-
-    public ChannelCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "channel.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelResume: RabbitMQ.Client.Impl.MethodBase, IChannelResume {
-    public const int ClassId = 20;
-    public const int MethodId = 50;
-
-    public byte[] m_channelId;
-
-    byte[] IChannelResume.ChannelId { get { return m_channelId; } }
-
-    public ChannelResume() {}
-    public ChannelResume(
-      byte[] initChannelId)
-    {
-      m_channelId = initChannelId;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "channel.resume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelId = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_channelId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelPing: RabbitMQ.Client.Impl.MethodBase, IChannelPing {
-    public const int ClassId = 20;
-    public const int MethodId = 60;
-
-
-
-    public ChannelPing(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "channel.ping"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelPong: RabbitMQ.Client.Impl.MethodBase, IChannelPong {
-    public const int ClassId = 20;
-    public const int MethodId = 70;
-
-
-
-    public ChannelPong(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "channel.pong"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOk: RabbitMQ.Client.Impl.MethodBase, IChannelOk {
-    public const int ClassId = 20;
-    public const int MethodId = 80;
-
-
-
-    public ChannelOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "channel.ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequest: RabbitMQ.Client.Impl.MethodBase, IAccessRequest {
-    public const int ClassId = 30;
-    public const int MethodId = 10;
-
-    public string m_realm;
-    public bool m_exclusive;
-    public bool m_passive;
-    public bool m_active;
-    public bool m_write;
-    public bool m_read;
-
-    string IAccessRequest.Realm { get { return m_realm; } }
-    bool IAccessRequest.Exclusive { get { return m_exclusive; } }
-    bool IAccessRequest.Passive { get { return m_passive; } }
-    bool IAccessRequest.Active { get { return m_active; } }
-    bool IAccessRequest.Write { get { return m_write; } }
-    bool IAccessRequest.Read { get { return m_read; } }
-
-    public AccessRequest() {}
-    public AccessRequest(
-      string initRealm,
-      bool initExclusive,
-      bool initPassive,
-      bool initActive,
-      bool initWrite,
-      bool initRead)
-    {
-      m_realm = initRealm;
-      m_exclusive = initExclusive;
-      m_passive = initPassive;
-      m_active = initActive;
-      m_write = initWrite;
-      m_read = initRead;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "access.request"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_realm = reader.ReadShortstr();
-      m_exclusive = reader.ReadBit();
-      m_passive = reader.ReadBit();
-      m_active = reader.ReadBit();
-      m_write = reader.ReadBit();
-      m_read = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_realm);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_active);
-      writer.WriteBit(m_write);
-      writer.WriteBit(m_read);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_realm); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_active); sb.Append(",");
-      sb.Append(m_write); sb.Append(",");
-      sb.Append(m_read);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequestOk: RabbitMQ.Client.Impl.MethodBase, IAccessRequestOk {
-    public const int ClassId = 30;
-    public const int MethodId = 11;
-
-    public ushort m_ticket;
-
-    ushort IAccessRequestOk.Ticket { get { return m_ticket; } }
-
-    public AccessRequestOk() {}
-    public AccessRequestOk(
-      ushort initTicket)
-    {
-      m_ticket = initTicket;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "access.request-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclare: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclare {
-    public const int ClassId = 40;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_type;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_autoDelete;
-    public bool m_internal;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IExchangeDeclare.Ticket { get { return m_ticket; } }
-    string IExchangeDeclare.Exchange { get { return m_exchange; } }
-    string IExchangeDeclare.Type { get { return m_type; } }
-    bool IExchangeDeclare.Passive { get { return m_passive; } }
-    bool IExchangeDeclare.Durable { get { return m_durable; } }
-    bool IExchangeDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IExchangeDeclare.Internal { get { return m_internal; } }
-    bool IExchangeDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IExchangeDeclare.Arguments { get { return m_arguments; } }
-
-    public ExchangeDeclare() {}
-    public ExchangeDeclare(
-      ushort initTicket,
-      string initExchange,
-      string initType,
-      bool initPassive,
-      bool initDurable,
-      bool initAutoDelete,
-      bool initInternal,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_type = initType;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_autoDelete = initAutoDelete;
-      m_internal = initInternal;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "exchange.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_type = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_internal = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_type);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_internal);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_type); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_internal); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclareOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclareOk {
-    public const int ClassId = 40;
-    public const int MethodId = 11;
-
-
-
-    public ExchangeDeclareOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "exchange.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDelete: RabbitMQ.Client.Impl.MethodBase, IExchangeDelete {
-    public const int ClassId = 40;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public bool m_ifUnused;
-    public bool m_nowait;
-
-    ushort IExchangeDelete.Ticket { get { return m_ticket; } }
-    string IExchangeDelete.Exchange { get { return m_exchange; } }
-    bool IExchangeDelete.IfUnused { get { return m_ifUnused; } }
-    bool IExchangeDelete.Nowait { get { return m_nowait; } }
-
-    public ExchangeDelete() {}
-    public ExchangeDelete(
-      ushort initTicket,
-      string initExchange,
-      bool initIfUnused,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_ifUnused = initIfUnused;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "exchange.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeleteOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeleteOk {
-    public const int ClassId = 40;
-    public const int MethodId = 21;
-
-
-
-    public ExchangeDeleteOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "exchange.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclare: RabbitMQ.Client.Impl.MethodBase, IQueueDeclare {
-    public const int ClassId = 50;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_exclusive;
-    public bool m_autoDelete;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueDeclare.Ticket { get { return m_ticket; } }
-    string IQueueDeclare.Queue { get { return m_queue; } }
-    bool IQueueDeclare.Passive { get { return m_passive; } }
-    bool IQueueDeclare.Durable { get { return m_durable; } }
-    bool IQueueDeclare.Exclusive { get { return m_exclusive; } }
-    bool IQueueDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IQueueDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueDeclare.Arguments { get { return m_arguments; } }
-
-    public QueueDeclare() {}
-    public QueueDeclare(
-      ushort initTicket,
-      string initQueue,
-      bool initPassive,
-      bool initDurable,
-      bool initExclusive,
-      bool initAutoDelete,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_exclusive = initExclusive;
-      m_autoDelete = initAutoDelete;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "queue.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclareOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeclareOk {
-    public const int ClassId = 50;
-    public const int MethodId = 11;
-
-    public string m_queue;
-    public uint m_messageCount;
-    public uint m_consumerCount;
-
-    string IQueueDeclareOk.Queue { get { return m_queue; } }
-    uint IQueueDeclareOk.MessageCount { get { return m_messageCount; } }
-    uint IQueueDeclareOk.ConsumerCount { get { return m_consumerCount; } }
-
-    public QueueDeclareOk() {}
-    public QueueDeclareOk(
-      string initQueue,
-      uint initMessageCount,
-      uint initConsumerCount)
-    {
-      m_queue = initQueue;
-      m_messageCount = initMessageCount;
-      m_consumerCount = initConsumerCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "queue.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_queue = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-      m_consumerCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_queue);
-      writer.WriteLong(m_messageCount);
-      writer.WriteLong(m_consumerCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_messageCount); sb.Append(",");
-      sb.Append(m_consumerCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBind: RabbitMQ.Client.Impl.MethodBase, IQueueBind {
-    public const int ClassId = 50;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueBind.Ticket { get { return m_ticket; } }
-    string IQueueBind.Queue { get { return m_queue; } }
-    string IQueueBind.Exchange { get { return m_exchange; } }
-    string IQueueBind.RoutingKey { get { return m_routingKey; } }
-    bool IQueueBind.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueBind.Arguments { get { return m_arguments; } }
-
-    public QueueBind() {}
-    public QueueBind(
-      ushort initTicket,
-      string initQueue,
-      string initExchange,
-      string initRoutingKey,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "queue.bind"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBindOk: RabbitMQ.Client.Impl.MethodBase, IQueueBindOk {
-    public const int ClassId = 50;
-    public const int MethodId = 21;
-
-
-
-    public QueueBindOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "queue.bind-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueUnbind: RabbitMQ.Client.Impl.MethodBase, IQueueUnbind {
-    public const int ClassId = 50;
-    public const int MethodId = 50;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_exchange;
-    public string m_routingKey;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueUnbind.Ticket { get { return m_ticket; } }
-    string IQueueUnbind.Queue { get { return m_queue; } }
-    string IQueueUnbind.Exchange { get { return m_exchange; } }
-    string IQueueUnbind.RoutingKey { get { return m_routingKey; } }
-    System.Collections.IDictionary IQueueUnbind.Arguments { get { return m_arguments; } }
-
-    public QueueUnbind() {}
-    public QueueUnbind(
-      ushort initTicket,
-      string initQueue,
-      string initExchange,
-      string initRoutingKey,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "queue.unbind"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueUnbindOk: RabbitMQ.Client.Impl.MethodBase, IQueueUnbindOk {
-    public const int ClassId = 50;
-    public const int MethodId = 51;
-
-
-
-    public QueueUnbindOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 51; } }
-    public override string ProtocolMethodName { get { return "queue.unbind-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurge: RabbitMQ.Client.Impl.MethodBase, IQueuePurge {
-    public const int ClassId = 50;
-    public const int MethodId = 30;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_nowait;
-
-    ushort IQueuePurge.Ticket { get { return m_ticket; } }
-    string IQueuePurge.Queue { get { return m_queue; } }
-    bool IQueuePurge.Nowait { get { return m_nowait; } }
-
-    public QueuePurge() {}
-    public QueuePurge(
-      ushort initTicket,
-      string initQueue,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "queue.purge"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurgeOk: RabbitMQ.Client.Impl.MethodBase, IQueuePurgeOk {
-    public const int ClassId = 50;
-    public const int MethodId = 31;
-
-    public uint m_messageCount;
-
-    uint IQueuePurgeOk.MessageCount { get { return m_messageCount; } }
-
-    public QueuePurgeOk() {}
-    public QueuePurgeOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "queue.purge-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDelete: RabbitMQ.Client.Impl.MethodBase, IQueueDelete {
-    public const int ClassId = 50;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_ifUnused;
-    public bool m_ifEmpty;
-    public bool m_nowait;
-
-    ushort IQueueDelete.Ticket { get { return m_ticket; } }
-    string IQueueDelete.Queue { get { return m_queue; } }
-    bool IQueueDelete.IfUnused { get { return m_ifUnused; } }
-    bool IQueueDelete.IfEmpty { get { return m_ifEmpty; } }
-    bool IQueueDelete.Nowait { get { return m_nowait; } }
-
-    public QueueDelete() {}
-    public QueueDelete(
-      ushort initTicket,
-      string initQueue,
-      bool initIfUnused,
-      bool initIfEmpty,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_ifUnused = initIfUnused;
-      m_ifEmpty = initIfEmpty;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "queue.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_ifEmpty = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_ifEmpty);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_ifEmpty); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeleteOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeleteOk {
-    public const int ClassId = 50;
-    public const int MethodId = 41;
-
-    public uint m_messageCount;
-
-    uint IQueueDeleteOk.MessageCount { get { return m_messageCount; } }
-
-    public QueueDeleteOk() {}
-    public QueueDeleteOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "queue.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQos: RabbitMQ.Client.Impl.MethodBase, IBasicQos {
-    public const int ClassId = 60;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IBasicQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IBasicQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IBasicQos.Global { get { return m_global; } }
-
-    public BasicQos() {}
-    public BasicQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "basic.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQosOk: RabbitMQ.Client.Impl.MethodBase, IBasicQosOk {
-    public const int ClassId = 60;
-    public const int MethodId = 11;
-
-
-
-    public BasicQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "basic.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsume: RabbitMQ.Client.Impl.MethodBase, IBasicConsume {
-    public const int ClassId = 60;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_filter;
-
-    ushort IBasicConsume.Ticket { get { return m_ticket; } }
-    string IBasicConsume.Queue { get { return m_queue; } }
-    string IBasicConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicConsume.NoLocal { get { return m_noLocal; } }
-    bool IBasicConsume.NoAck { get { return m_noAck; } }
-    bool IBasicConsume.Exclusive { get { return m_exclusive; } }
-    bool IBasicConsume.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IBasicConsume.Filter { get { return m_filter; } }
-
-    public BasicConsume() {}
-    public BasicConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait,
-      System.Collections.IDictionary initFilter)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-      m_filter = initFilter;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "basic.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_filter = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_filter);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_filter);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsumeOk: RabbitMQ.Client.Impl.MethodBase, IBasicConsumeOk {
-    public const int ClassId = 60;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IBasicConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicConsumeOk() {}
-    public BasicConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "basic.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancel: RabbitMQ.Client.Impl.MethodBase, IBasicCancel {
-    public const int ClassId = 60;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IBasicCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicCancel.Nowait { get { return m_nowait; } }
-
-    public BasicCancel() {}
-    public BasicCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "basic.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancelOk: RabbitMQ.Client.Impl.MethodBase, IBasicCancelOk {
-    public const int ClassId = 60;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IBasicCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicCancelOk() {}
-    public BasicCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "basic.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicPublish: RabbitMQ.Client.Impl.MethodBase, IBasicPublish {
-    public const int ClassId = 60;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IBasicPublish.Ticket { get { return m_ticket; } }
-    string IBasicPublish.Exchange { get { return m_exchange; } }
-    string IBasicPublish.RoutingKey { get { return m_routingKey; } }
-    bool IBasicPublish.Mandatory { get { return m_mandatory; } }
-    bool IBasicPublish.Immediate { get { return m_immediate; } }
-
-    public BasicPublish() {}
-    public BasicPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "basic.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReturn: RabbitMQ.Client.Impl.MethodBase, IBasicReturn {
-    public const int ClassId = 60;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IBasicReturn.ReplyCode { get { return m_replyCode; } }
-    string IBasicReturn.ReplyText { get { return m_replyText; } }
-    string IBasicReturn.Exchange { get { return m_exchange; } }
-    string IBasicReturn.RoutingKey { get { return m_routingKey; } }
-
-    public BasicReturn() {}
-    public BasicReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "basic.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicDeliver: RabbitMQ.Client.Impl.MethodBase, IBasicDeliver {
-    public const int ClassId = 60;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-
-    string IBasicDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IBasicDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicDeliver.Redelivered { get { return m_redelivered; } }
-    string IBasicDeliver.Exchange { get { return m_exchange; } }
-    string IBasicDeliver.RoutingKey { get { return m_routingKey; } }
-
-    public BasicDeliver() {}
-    public BasicDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "basic.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGet: RabbitMQ.Client.Impl.MethodBase, IBasicGet {
-    public const int ClassId = 60;
-    public const int MethodId = 70;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_noAck;
-
-    ushort IBasicGet.Ticket { get { return m_ticket; } }
-    string IBasicGet.Queue { get { return m_queue; } }
-    bool IBasicGet.NoAck { get { return m_noAck; } }
-
-    public BasicGet() {}
-    public BasicGet(
-      ushort initTicket,
-      string initQueue,
-      bool initNoAck)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_noAck = initNoAck;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "basic.get"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_noAck = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_noAck);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_noAck);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetOk: RabbitMQ.Client.Impl.MethodBase, IBasicGetOk {
-    public const int ClassId = 60;
-    public const int MethodId = 71;
-
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public uint m_messageCount;
-
-    ulong IBasicGetOk.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicGetOk.Redelivered { get { return m_redelivered; } }
-    string IBasicGetOk.Exchange { get { return m_exchange; } }
-    string IBasicGetOk.RoutingKey { get { return m_routingKey; } }
-    uint IBasicGetOk.MessageCount { get { return m_messageCount; } }
-
-    public BasicGetOk() {}
-    public BasicGetOk(
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      uint initMessageCount)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 71; } }
-    public override string ProtocolMethodName { get { return "basic.get-ok"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetEmpty: RabbitMQ.Client.Impl.MethodBase, IBasicGetEmpty {
-    public const int ClassId = 60;
-    public const int MethodId = 72;
-
-    public string m_clusterId;
-
-    string IBasicGetEmpty.ClusterId { get { return m_clusterId; } }
-
-    public BasicGetEmpty() {}
-    public BasicGetEmpty(
-      string initClusterId)
-    {
-      m_clusterId = initClusterId;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 72; } }
-    public override string ProtocolMethodName { get { return "basic.get-empty"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clusterId = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_clusterId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clusterId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicAck: RabbitMQ.Client.Impl.MethodBase, IBasicAck {
-    public const int ClassId = 60;
-    public const int MethodId = 80;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IBasicAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicAck.Multiple { get { return m_multiple; } }
-
-    public BasicAck() {}
-    public BasicAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "basic.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReject: RabbitMQ.Client.Impl.MethodBase, IBasicReject {
-    public const int ClassId = 60;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IBasicReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicReject.Requeue { get { return m_requeue; } }
-
-    public BasicReject() {}
-    public BasicReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "basic.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicRecover: RabbitMQ.Client.Impl.MethodBase, IBasicRecover {
-    public const int ClassId = 60;
-    public const int MethodId = 100;
-
-    public bool m_requeue;
-
-    bool IBasicRecover.Requeue { get { return m_requeue; } }
-
-    public BasicRecover() {}
-    public BasicRecover(
-      bool initRequeue)
-    {
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "basic.recover"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQos: RabbitMQ.Client.Impl.MethodBase, IFileQos {
-    public const int ClassId = 70;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IFileQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IFileQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IFileQos.Global { get { return m_global; } }
-
-    public FileQos() {}
-    public FileQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "file.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQosOk: RabbitMQ.Client.Impl.MethodBase, IFileQosOk {
-    public const int ClassId = 70;
-    public const int MethodId = 11;
-
-
-
-    public FileQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "file.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsume: RabbitMQ.Client.Impl.MethodBase, IFileConsume {
-    public const int ClassId = 70;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_filter;
-
-    ushort IFileConsume.Ticket { get { return m_ticket; } }
-    string IFileConsume.Queue { get { return m_queue; } }
-    string IFileConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileConsume.NoLocal { get { return m_noLocal; } }
-    bool IFileConsume.NoAck { get { return m_noAck; } }
-    bool IFileConsume.Exclusive { get { return m_exclusive; } }
-    bool IFileConsume.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IFileConsume.Filter { get { return m_filter; } }
-
-    public FileConsume() {}
-    public FileConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait,
-      System.Collections.IDictionary initFilter)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-      m_filter = initFilter;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "file.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_filter = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_filter);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_filter);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsumeOk: RabbitMQ.Client.Impl.MethodBase, IFileConsumeOk {
-    public const int ClassId = 70;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IFileConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileConsumeOk() {}
-    public FileConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "file.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancel: RabbitMQ.Client.Impl.MethodBase, IFileCancel {
-    public const int ClassId = 70;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IFileCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileCancel.Nowait { get { return m_nowait; } }
-
-    public FileCancel() {}
-    public FileCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "file.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancelOk: RabbitMQ.Client.Impl.MethodBase, IFileCancelOk {
-    public const int ClassId = 70;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IFileCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileCancelOk() {}
-    public FileCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "file.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpen: RabbitMQ.Client.Impl.MethodBase, IFileOpen {
-    public const int ClassId = 70;
-    public const int MethodId = 40;
-
-    public string m_identifier;
-    public ulong m_contentSize;
-
-    string IFileOpen.Identifier { get { return m_identifier; } }
-    ulong IFileOpen.ContentSize { get { return m_contentSize; } }
-
-    public FileOpen() {}
-    public FileOpen(
-      string initIdentifier,
-      ulong initContentSize)
-    {
-      m_identifier = initIdentifier;
-      m_contentSize = initContentSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "file.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_identifier = reader.ReadShortstr();
-      m_contentSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_identifier);
-      writer.WriteLonglong(m_contentSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_identifier); sb.Append(",");
-      sb.Append(m_contentSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpenOk: RabbitMQ.Client.Impl.MethodBase, IFileOpenOk {
-    public const int ClassId = 70;
-    public const int MethodId = 41;
-
-    public ulong m_stagedSize;
-
-    ulong IFileOpenOk.StagedSize { get { return m_stagedSize; } }
-
-    public FileOpenOk() {}
-    public FileOpenOk(
-      ulong initStagedSize)
-    {
-      m_stagedSize = initStagedSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "file.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_stagedSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_stagedSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_stagedSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileStage: RabbitMQ.Client.Impl.MethodBase, IFileStage {
-    public const int ClassId = 70;
-    public const int MethodId = 50;
-
-
-
-    public FileStage(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "file.stage"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FilePublish: RabbitMQ.Client.Impl.MethodBase, IFilePublish {
-    public const int ClassId = 70;
-    public const int MethodId = 60;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-    public string m_identifier;
-
-    ushort IFilePublish.Ticket { get { return m_ticket; } }
-    string IFilePublish.Exchange { get { return m_exchange; } }
-    string IFilePublish.RoutingKey { get { return m_routingKey; } }
-    bool IFilePublish.Mandatory { get { return m_mandatory; } }
-    bool IFilePublish.Immediate { get { return m_immediate; } }
-    string IFilePublish.Identifier { get { return m_identifier; } }
-
-    public FilePublish() {}
-    public FilePublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate,
-      string initIdentifier)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "file.publish"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReturn: RabbitMQ.Client.Impl.MethodBase, IFileReturn {
-    public const int ClassId = 70;
-    public const int MethodId = 70;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IFileReturn.ReplyCode { get { return m_replyCode; } }
-    string IFileReturn.ReplyText { get { return m_replyText; } }
-    string IFileReturn.Exchange { get { return m_exchange; } }
-    string IFileReturn.RoutingKey { get { return m_routingKey; } }
-
-    public FileReturn() {}
-    public FileReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "file.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileDeliver: RabbitMQ.Client.Impl.MethodBase, IFileDeliver {
-    public const int ClassId = 70;
-    public const int MethodId = 80;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public string m_identifier;
-
-    string IFileDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IFileDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileDeliver.Redelivered { get { return m_redelivered; } }
-    string IFileDeliver.Exchange { get { return m_exchange; } }
-    string IFileDeliver.RoutingKey { get { return m_routingKey; } }
-    string IFileDeliver.Identifier { get { return m_identifier; } }
-
-    public FileDeliver() {}
-    public FileDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      string initIdentifier)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "file.deliver"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileAck: RabbitMQ.Client.Impl.MethodBase, IFileAck {
-    public const int ClassId = 70;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IFileAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileAck.Multiple { get { return m_multiple; } }
-
-    public FileAck() {}
-    public FileAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "file.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReject: RabbitMQ.Client.Impl.MethodBase, IFileReject {
-    public const int ClassId = 70;
-    public const int MethodId = 100;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IFileReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileReject.Requeue { get { return m_requeue; } }
-
-    public FileReject() {}
-    public FileReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "file.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQos: RabbitMQ.Client.Impl.MethodBase, IStreamQos {
-    public const int ClassId = 80;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public uint m_consumeRate;
-    public bool m_global;
-
-    uint IStreamQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IStreamQos.PrefetchCount { get { return m_prefetchCount; } }
-    uint IStreamQos.ConsumeRate { get { return m_consumeRate; } }
-    bool IStreamQos.Global { get { return m_global; } }
-
-    public StreamQos() {}
-    public StreamQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      uint initConsumeRate,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_consumeRate = initConsumeRate;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "stream.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_consumeRate = reader.ReadLong();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteLong(m_consumeRate);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_consumeRate); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQosOk: RabbitMQ.Client.Impl.MethodBase, IStreamQosOk {
-    public const int ClassId = 80;
-    public const int MethodId = 11;
-
-
-
-    public StreamQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "stream.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsume: RabbitMQ.Client.Impl.MethodBase, IStreamConsume {
-    public const int ClassId = 80;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_exclusive;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_filter;
-
-    ushort IStreamConsume.Ticket { get { return m_ticket; } }
-    string IStreamConsume.Queue { get { return m_queue; } }
-    string IStreamConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamConsume.NoLocal { get { return m_noLocal; } }
-    bool IStreamConsume.Exclusive { get { return m_exclusive; } }
-    bool IStreamConsume.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IStreamConsume.Filter { get { return m_filter; } }
-
-    public StreamConsume() {}
-    public StreamConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initExclusive,
-      bool initNowait,
-      System.Collections.IDictionary initFilter)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-      m_filter = initFilter;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "stream.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_filter = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_filter);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_filter);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsumeOk: RabbitMQ.Client.Impl.MethodBase, IStreamConsumeOk {
-    public const int ClassId = 80;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IStreamConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamConsumeOk() {}
-    public StreamConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "stream.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancel: RabbitMQ.Client.Impl.MethodBase, IStreamCancel {
-    public const int ClassId = 80;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IStreamCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamCancel.Nowait { get { return m_nowait; } }
-
-    public StreamCancel() {}
-    public StreamCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "stream.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancelOk: RabbitMQ.Client.Impl.MethodBase, IStreamCancelOk {
-    public const int ClassId = 80;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IStreamCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamCancelOk() {}
-    public StreamCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "stream.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamPublish: RabbitMQ.Client.Impl.MethodBase, IStreamPublish {
-    public const int ClassId = 80;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IStreamPublish.Ticket { get { return m_ticket; } }
-    string IStreamPublish.Exchange { get { return m_exchange; } }
-    string IStreamPublish.RoutingKey { get { return m_routingKey; } }
-    bool IStreamPublish.Mandatory { get { return m_mandatory; } }
-    bool IStreamPublish.Immediate { get { return m_immediate; } }
-
-    public StreamPublish() {}
-    public StreamPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "stream.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamReturn: RabbitMQ.Client.Impl.MethodBase, IStreamReturn {
-    public const int ClassId = 80;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IStreamReturn.ReplyCode { get { return m_replyCode; } }
-    string IStreamReturn.ReplyText { get { return m_replyText; } }
-    string IStreamReturn.Exchange { get { return m_exchange; } }
-    string IStreamReturn.RoutingKey { get { return m_routingKey; } }
-
-    public StreamReturn() {}
-    public StreamReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "stream.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamDeliver: RabbitMQ.Client.Impl.MethodBase, IStreamDeliver {
-    public const int ClassId = 80;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public string m_exchange;
-    public string m_queue;
-
-    string IStreamDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IStreamDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    string IStreamDeliver.Exchange { get { return m_exchange; } }
-    string IStreamDeliver.Queue { get { return m_queue; } }
-
-    public StreamDeliver() {}
-    public StreamDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      string initExchange,
-      string initQueue)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_exchange = initExchange;
-      m_queue = initQueue;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "stream.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_exchange = reader.ReadShortstr();
-      m_queue = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_queue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_queue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelect: RabbitMQ.Client.Impl.MethodBase, ITxSelect {
-    public const int ClassId = 90;
-    public const int MethodId = 10;
-
-
-
-    public TxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelectOk: RabbitMQ.Client.Impl.MethodBase, ITxSelectOk {
-    public const int ClassId = 90;
-    public const int MethodId = 11;
-
-
-
-    public TxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "tx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommit: RabbitMQ.Client.Impl.MethodBase, ITxCommit {
-    public const int ClassId = 90;
-    public const int MethodId = 20;
-
-
-
-    public TxCommit(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "tx.commit"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommitOk: RabbitMQ.Client.Impl.MethodBase, ITxCommitOk {
-    public const int ClassId = 90;
-    public const int MethodId = 21;
-
-
-
-    public TxCommitOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "tx.commit-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollback: RabbitMQ.Client.Impl.MethodBase, ITxRollback {
-    public const int ClassId = 90;
-    public const int MethodId = 30;
-
-
-
-    public TxRollback(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "tx.rollback"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollbackOk: RabbitMQ.Client.Impl.MethodBase, ITxRollbackOk {
-    public const int ClassId = 90;
-    public const int MethodId = 31;
-
-
-
-    public TxRollbackOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "tx.rollback-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelect: RabbitMQ.Client.Impl.MethodBase, IDtxSelect {
-    public const int ClassId = 100;
-    public const int MethodId = 10;
-
-
-
-    public DtxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "dtx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelectOk: RabbitMQ.Client.Impl.MethodBase, IDtxSelectOk {
-    public const int ClassId = 100;
-    public const int MethodId = 11;
-
-
-
-    public DtxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "dtx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStart: RabbitMQ.Client.Impl.MethodBase, IDtxStart {
-    public const int ClassId = 100;
-    public const int MethodId = 20;
-
-    public string m_dtxIdentifier;
-
-    string IDtxStart.DtxIdentifier { get { return m_dtxIdentifier; } }
-
-    public DtxStart() {}
-    public DtxStart(
-      string initDtxIdentifier)
-    {
-      m_dtxIdentifier = initDtxIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "dtx.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_dtxIdentifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_dtxIdentifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_dtxIdentifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStartOk: RabbitMQ.Client.Impl.MethodBase, IDtxStartOk {
-    public const int ClassId = 100;
-    public const int MethodId = 21;
-
-
-
-    public DtxStartOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "dtx.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TunnelRequest: RabbitMQ.Client.Impl.MethodBase, ITunnelRequest {
-    public const int ClassId = 110;
-    public const int MethodId = 10;
-
-    public System.Collections.IDictionary m_metaData;
-
-    System.Collections.IDictionary ITunnelRequest.MetaData { get { return m_metaData; } }
-
-    public TunnelRequest() {}
-    public TunnelRequest(
-      System.Collections.IDictionary initMetaData)
-    {
-      m_metaData = initMetaData;
-    }
-
-    public override int ProtocolClassId { get { return 110; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tunnel.request"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_metaData = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_metaData);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_metaData);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageTransfer: RabbitMQ.Client.Impl.MethodBase, IMessageTransfer {
-    public const int ClassId = 120;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_destination;
-    public bool m_redelivered;
-    public bool m_immediate;
-    public ulong m_ttl;
-    public byte m_priority;
-    public AmqpTimestamp m_timestamp;
-    public byte m_deliveryMode;
-    public AmqpTimestamp m_expiration;
-    public string m_exchange;
-    public string m_routingKey;
-    public string m_messageId;
-    public string m_correlationId;
-    public string m_replyTo;
-    public string m_contentType;
-    public string m_contentEncoding;
-    public string m_userId;
-    public string m_appId;
-    public string m_transactionId;
-    public byte[] m_securityToken;
-    public System.Collections.IDictionary m_applicationHeaders;
-    public byte[] m_body;
-
-    ushort IMessageTransfer.Ticket { get { return m_ticket; } }
-    string IMessageTransfer.Destination { get { return m_destination; } }
-    bool IMessageTransfer.Redelivered { get { return m_redelivered; } }
-    bool IMessageTransfer.Immediate { get { return m_immediate; } }
-    ulong IMessageTransfer.Ttl { get { return m_ttl; } }
-    byte IMessageTransfer.Priority { get { return m_priority; } }
-    AmqpTimestamp IMessageTransfer.Timestamp { get { return m_timestamp; } }
-    byte IMessageTransfer.DeliveryMode { get { return m_deliveryMode; } }
-    AmqpTimestamp IMessageTransfer.Expiration { get { return m_expiration; } }
-    string IMessageTransfer.Exchange { get { return m_exchange; } }
-    string IMessageTransfer.RoutingKey { get { return m_routingKey; } }
-    string IMessageTransfer.MessageId { get { return m_messageId; } }
-    string IMessageTransfer.CorrelationId { get { return m_correlationId; } }
-    string IMessageTransfer.ReplyTo { get { return m_replyTo; } }
-    string IMessageTransfer.ContentType { get { return m_contentType; } }
-    string IMessageTransfer.ContentEncoding { get { return m_contentEncoding; } }
-    string IMessageTransfer.UserId { get { return m_userId; } }
-    string IMessageTransfer.AppId { get { return m_appId; } }
-    string IMessageTransfer.TransactionId { get { return m_transactionId; } }
-    byte[] IMessageTransfer.SecurityToken { get { return m_securityToken; } }
-    System.Collections.IDictionary IMessageTransfer.ApplicationHeaders { get { return m_applicationHeaders; } }
-    byte[] IMessageTransfer.Body { get { return m_body; } }
-
-    public MessageTransfer() {}
-    public MessageTransfer(
-      ushort initTicket,
-      string initDestination,
-      bool initRedelivered,
-      bool initImmediate,
-      ulong initTtl,
-      byte initPriority,
-      AmqpTimestamp initTimestamp,
-      byte initDeliveryMode,
-      AmqpTimestamp initExpiration,
-      string initExchange,
-      string initRoutingKey,
-      string initMessageId,
-      string initCorrelationId,
-      string initReplyTo,
-      string initContentType,
-      string initContentEncoding,
-      string initUserId,
-      string initAppId,
-      string initTransactionId,
-      byte[] initSecurityToken,
-      System.Collections.IDictionary initApplicationHeaders,
-      byte[] initBody)
-    {
-      m_ticket = initTicket;
-      m_destination = initDestination;
-      m_redelivered = initRedelivered;
-      m_immediate = initImmediate;
-      m_ttl = initTtl;
-      m_priority = initPriority;
-      m_timestamp = initTimestamp;
-      m_deliveryMode = initDeliveryMode;
-      m_expiration = initExpiration;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_messageId = initMessageId;
-      m_correlationId = initCorrelationId;
-      m_replyTo = initReplyTo;
-      m_contentType = initContentType;
-      m_contentEncoding = initContentEncoding;
-      m_userId = initUserId;
-      m_appId = initAppId;
-      m_transactionId = initTransactionId;
-      m_securityToken = initSecurityToken;
-      m_applicationHeaders = initApplicationHeaders;
-      m_body = initBody;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "message.transfer"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_destination = reader.ReadShortstr();
-      m_redelivered = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-      m_ttl = reader.ReadLonglong();
-      m_priority = reader.ReadOctet();
-      m_timestamp = reader.ReadTimestamp();
-      m_deliveryMode = reader.ReadOctet();
-      m_expiration = reader.ReadTimestamp();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_messageId = reader.ReadShortstr();
-      m_correlationId = reader.ReadShortstr();
-      m_replyTo = reader.ReadShortstr();
-      m_contentType = reader.ReadShortstr();
-      m_contentEncoding = reader.ReadShortstr();
-      m_userId = reader.ReadShortstr();
-      m_appId = reader.ReadShortstr();
-      m_transactionId = reader.ReadShortstr();
-      m_securityToken = reader.ReadLongstr();
-      m_applicationHeaders = reader.ReadTable();
-      m_body = reader.ReadContent();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_destination);
-      writer.WriteBit(m_redelivered);
-      writer.WriteBit(m_immediate);
-      writer.WriteLonglong(m_ttl);
-      writer.WriteOctet(m_priority);
-      writer.WriteTimestamp(m_timestamp);
-      writer.WriteOctet(m_deliveryMode);
-      writer.WriteTimestamp(m_expiration);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteShortstr(m_messageId);
-      writer.WriteShortstr(m_correlationId);
-      writer.WriteShortstr(m_replyTo);
-      writer.WriteShortstr(m_contentType);
-      writer.WriteShortstr(m_contentEncoding);
-      writer.WriteShortstr(m_userId);
-      writer.WriteShortstr(m_appId);
-      writer.WriteShortstr(m_transactionId);
-      writer.WriteLongstr(m_securityToken);
-      writer.WriteTable(m_applicationHeaders);
-      writer.WriteContent(m_body);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_destination); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_immediate); sb.Append(",");
-      sb.Append(m_ttl); sb.Append(",");
-      sb.Append(m_priority); sb.Append(",");
-      sb.Append(m_timestamp); sb.Append(",");
-      sb.Append(m_deliveryMode); sb.Append(",");
-      sb.Append(m_expiration); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_messageId); sb.Append(",");
-      sb.Append(m_correlationId); sb.Append(",");
-      sb.Append(m_replyTo); sb.Append(",");
-      sb.Append(m_contentType); sb.Append(",");
-      sb.Append(m_contentEncoding); sb.Append(",");
-      sb.Append(m_userId); sb.Append(",");
-      sb.Append(m_appId); sb.Append(",");
-      sb.Append(m_transactionId); sb.Append(",");
-      sb.Append(m_securityToken); sb.Append(",");
-      sb.Append(m_applicationHeaders); sb.Append(",");
-      sb.Append(m_body);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageConsume: RabbitMQ.Client.Impl.MethodBase, IMessageConsume {
-    public const int ClassId = 120;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_destination;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public System.Collections.IDictionary m_filter;
-
-    ushort IMessageConsume.Ticket { get { return m_ticket; } }
-    string IMessageConsume.Queue { get { return m_queue; } }
-    string IMessageConsume.Destination { get { return m_destination; } }
-    bool IMessageConsume.NoLocal { get { return m_noLocal; } }
-    bool IMessageConsume.NoAck { get { return m_noAck; } }
-    bool IMessageConsume.Exclusive { get { return m_exclusive; } }
-    System.Collections.IDictionary IMessageConsume.Filter { get { return m_filter; } }
-
-    public MessageConsume() {}
-    public MessageConsume(
-      ushort initTicket,
-      string initQueue,
-      string initDestination,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      System.Collections.IDictionary initFilter)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_destination = initDestination;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_filter = initFilter;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "message.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_destination = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_filter = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_destination);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteTable(m_filter);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_destination); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_filter);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageCancel: RabbitMQ.Client.Impl.MethodBase, IMessageCancel {
-    public const int ClassId = 120;
-    public const int MethodId = 30;
-
-    public string m_destination;
-
-    string IMessageCancel.Destination { get { return m_destination; } }
-
-    public MessageCancel() {}
-    public MessageCancel(
-      string initDestination)
-    {
-      m_destination = initDestination;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "message.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_destination = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_destination);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_destination);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageGet: RabbitMQ.Client.Impl.MethodBase, IMessageGet {
-    public const int ClassId = 120;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_destination;
-    public bool m_noAck;
-
-    ushort IMessageGet.Ticket { get { return m_ticket; } }
-    string IMessageGet.Queue { get { return m_queue; } }
-    string IMessageGet.Destination { get { return m_destination; } }
-    bool IMessageGet.NoAck { get { return m_noAck; } }
-
-    public MessageGet() {}
-    public MessageGet(
-      ushort initTicket,
-      string initQueue,
-      string initDestination,
-      bool initNoAck)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_destination = initDestination;
-      m_noAck = initNoAck;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "message.get"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_destination = reader.ReadShortstr();
-      m_noAck = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_destination);
-      writer.WriteBit(m_noAck);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_destination); sb.Append(",");
-      sb.Append(m_noAck);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageRecover: RabbitMQ.Client.Impl.MethodBase, IMessageRecover {
-    public const int ClassId = 120;
-    public const int MethodId = 50;
-
-    public bool m_requeue;
-
-    bool IMessageRecover.Requeue { get { return m_requeue; } }
-
-    public MessageRecover() {}
-    public MessageRecover(
-      bool initRequeue)
-    {
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "message.recover"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageOpen: RabbitMQ.Client.Impl.MethodBase, IMessageOpen {
-    public const int ClassId = 120;
-    public const int MethodId = 60;
-
-    public byte[] m_reference;
-
-    byte[] IMessageOpen.Reference { get { return m_reference; } }
-
-    public MessageOpen() {}
-    public MessageOpen(
-      byte[] initReference)
-    {
-      m_reference = initReference;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "message.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_reference = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_reference);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_reference);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageClose: RabbitMQ.Client.Impl.MethodBase, IMessageClose {
-    public const int ClassId = 120;
-    public const int MethodId = 70;
-
-    public byte[] m_reference;
-
-    byte[] IMessageClose.Reference { get { return m_reference; } }
-
-    public MessageClose() {}
-    public MessageClose(
-      byte[] initReference)
-    {
-      m_reference = initReference;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "message.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_reference = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_reference);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_reference);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageAppend: RabbitMQ.Client.Impl.MethodBase, IMessageAppend {
-    public const int ClassId = 120;
-    public const int MethodId = 80;
-
-    public byte[] m_reference;
-    public byte[] m_bytes;
-
-    byte[] IMessageAppend.Reference { get { return m_reference; } }
-    byte[] IMessageAppend.Bytes { get { return m_bytes; } }
-
-    public MessageAppend() {}
-    public MessageAppend(
-      byte[] initReference,
-      byte[] initBytes)
-    {
-      m_reference = initReference;
-      m_bytes = initBytes;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "message.append"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_reference = reader.ReadLongstr();
-      m_bytes = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_reference);
-      writer.WriteLongstr(m_bytes);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_reference); sb.Append(",");
-      sb.Append(m_bytes);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageCheckpoint: RabbitMQ.Client.Impl.MethodBase, IMessageCheckpoint {
-    public const int ClassId = 120;
-    public const int MethodId = 90;
-
-    public byte[] m_reference;
-    public string m_identifier;
-
-    byte[] IMessageCheckpoint.Reference { get { return m_reference; } }
-    string IMessageCheckpoint.Identifier { get { return m_identifier; } }
-
-    public MessageCheckpoint() {}
-    public MessageCheckpoint(
-      byte[] initReference,
-      string initIdentifier)
-    {
-      m_reference = initReference;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "message.checkpoint"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_reference = reader.ReadLongstr();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_reference);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_reference); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageResume: RabbitMQ.Client.Impl.MethodBase, IMessageResume {
-    public const int ClassId = 120;
-    public const int MethodId = 100;
-
-    public byte[] m_reference;
-    public string m_identifier;
-
-    byte[] IMessageResume.Reference { get { return m_reference; } }
-    string IMessageResume.Identifier { get { return m_identifier; } }
-
-    public MessageResume() {}
-    public MessageResume(
-      byte[] initReference,
-      string initIdentifier)
-    {
-      m_reference = initReference;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "message.resume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_reference = reader.ReadLongstr();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_reference);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_reference); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageQos: RabbitMQ.Client.Impl.MethodBase, IMessageQos {
-    public const int ClassId = 120;
-    public const int MethodId = 110;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IMessageQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IMessageQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IMessageQos.Global { get { return m_global; } }
-
-    public MessageQos() {}
-    public MessageQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 110; } }
-    public override string ProtocolMethodName { get { return "message.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageOk: RabbitMQ.Client.Impl.MethodBase, IMessageOk {
-    public const int ClassId = 120;
-    public const int MethodId = 500;
-
-
-
-    public MessageOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 500; } }
-    public override string ProtocolMethodName { get { return "message.ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageEmpty: RabbitMQ.Client.Impl.MethodBase, IMessageEmpty {
-    public const int ClassId = 120;
-    public const int MethodId = 510;
-
-
-
-    public MessageEmpty(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 510; } }
-    public override string ProtocolMethodName { get { return "message.empty"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageReject: RabbitMQ.Client.Impl.MethodBase, IMessageReject {
-    public const int ClassId = 120;
-    public const int MethodId = 520;
-
-    public ushort m_code;
-    public string m_text;
-
-    ushort IMessageReject.Code { get { return m_code; } }
-    string IMessageReject.Text { get { return m_text; } }
-
-    public MessageReject() {}
-    public MessageReject(
-      ushort initCode,
-      string initText)
-    {
-      m_code = initCode;
-      m_text = initText;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 520; } }
-    public override string ProtocolMethodName { get { return "message.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_code = reader.ReadShort();
-      m_text = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_code);
-      writer.WriteShortstr(m_text);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_code); sb.Append(",");
-      sb.Append(m_text);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageOffset: RabbitMQ.Client.Impl.MethodBase, IMessageOffset {
-    public const int ClassId = 120;
-    public const int MethodId = 530;
-
-    public ulong m_value;
-
-    ulong IMessageOffset.Value { get { return m_value; } }
-
-    public MessageOffset() {}
-    public MessageOffset(
-      ulong initValue)
-    {
-      m_value = initValue;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 530; } }
-    public override string ProtocolMethodName { get { return "message.offset"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_value = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_value);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_value);
-      sb.Append(")");
-    }
-  }
-
-  public class Model: RabbitMQ.Client.Impl.ModelBase {
-    public Model(RabbitMQ.Client.Impl.ISession session): base(session) {}
-    public override void _Private_BasicPublish(
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @mandatory,
-      System.Boolean @immediate,
-      RabbitMQ.Client.IBasicProperties @basicProperties,
-      System.Byte[] @body)
-    {
-      BasicPublish __req = new BasicPublish();
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_mandatory = @mandatory;
-      __req.m_immediate = @immediate;
-      ModelSend(__req, (BasicProperties) basicProperties,body);
-    }
-    public override void _Private_BasicConsume(
-      System.String @queue,
-      System.String @consumerTag,
-      System.Boolean @noLocal,
-      System.Boolean @noAck,
-      System.Boolean @exclusive,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @filter)
-    {
-      BasicConsume __req = new BasicConsume();
-      __req.m_queue = @queue;
-      __req.m_consumerTag = @consumerTag;
-      __req.m_noLocal = @noLocal;
-      __req.m_noAck = @noAck;
-      __req.m_exclusive = @exclusive;
-      __req.m_nowait = @nowait;
-      __req.m_filter = @filter;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicCancel(
-      System.String @consumerTag,
-      System.Boolean @nowait)
-    {
-      BasicCancel __req = new BasicCancel();
-      __req.m_consumerTag = @consumerTag;
-      __req.m_nowait = @nowait;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelOpen(
-      System.String @outOfBand)
-    {
-      ChannelOpen __req = new ChannelOpen();
-      __req.m_outOfBand = @outOfBand;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelOpenOk __rep = __repBase as ChannelOpenOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ChannelCloseOk()
-    {
-      ChannelCloseOk __req = new ChannelCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ChannelClose __req = new ChannelClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicGet(
-      System.String @queue,
-      System.Boolean @noAck)
-    {
-      BasicGet __req = new BasicGet();
-      __req.m_queue = @queue;
-      __req.m_noAck = @noAck;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelFlowOk()
-    {
-      ChannelFlowOk __req = new ChannelFlowOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.Impl.ConnectionTuneDetails ConnectionStartOk(
-      System.Collections.IDictionary @clientProperties,
-      System.String @mechanism,
-      System.Byte[] @response,
-      System.String @locale)
-    {
-      ConnectionStartOk __req = new ConnectionStartOk();
-      __req.m_clientProperties = @clientProperties;
-      __req.m_mechanism = @mechanism;
-      __req.m_response = @response;
-      __req.m_locale = @locale;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionTune __rep = __repBase as ConnectionTune;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      RabbitMQ.Client.Impl.ConnectionTuneDetails __result = new RabbitMQ.Client.Impl.ConnectionTuneDetails();
-      __result.m_channelMax = __rep.m_channelMax;
-      __result.m_frameMax = __rep.m_frameMax;
-      __result.m_heartbeat = __rep.m_heartbeat;
-      return __result;
-    }
-    public override void ConnectionTuneOk(
-      System.UInt16 @channelMax,
-      System.UInt32 @frameMax,
-      System.UInt16 @heartbeat)
-    {
-      ConnectionTuneOk __req = new ConnectionTuneOk();
-      __req.m_channelMax = @channelMax;
-      __req.m_frameMax = @frameMax;
-      __req.m_heartbeat = @heartbeat;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionOpen(
-      System.String @virtualHost,
-      System.String @capabilities,
-      System.Boolean @insist)
-    {
-      ConnectionOpen __req = new ConnectionOpen();
-      __req.m_virtualHost = @virtualHost;
-      __req.m_capabilities = @capabilities;
-      __req.m_insist = @insist;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ConnectionClose __req = new ConnectionClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionCloseOk __rep = __repBase as ConnectionCloseOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ConnectionCloseOk()
-    {
-      ConnectionCloseOk __req = new ConnectionCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.IBasicProperties CreateBasicProperties()
-    {
-      return new BasicProperties();
-    }
-    public override RabbitMQ.Client.IFileProperties CreateFileProperties()
-    {
-      return new FileProperties();
-    }
-    public override RabbitMQ.Client.IStreamProperties CreateStreamProperties()
-    {
-      return new StreamProperties();
-    }
-    public override void ChannelFlow(
-      System.Boolean @active)
-    {
-      ChannelFlow __req = new ChannelFlow();
-      __req.m_active = @active;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelFlowOk __rep = __repBase as ChannelFlowOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDeclare(
-      System.String @exchange,
-      System.String @type,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @autoDelete,
-      System.Boolean @internal,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      ExchangeDeclare __req = new ExchangeDeclare();
-      __req.m_exchange = @exchange;
-      __req.m_type = @type;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_internal = @internal;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeclareOk __rep = __repBase as ExchangeDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDelete(
-      System.String @exchange,
-      System.Boolean @ifUnused,
-      System.Boolean @nowait)
-    {
-      ExchangeDelete __req = new ExchangeDelete();
-      __req.m_exchange = @exchange;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeleteOk __rep = __repBase as ExchangeDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override System.String QueueDeclare(
-      System.String @queue,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @exclusive,
-      System.Boolean @autoDelete,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueDeclare __req = new QueueDeclare();
-      __req.m_queue = @queue;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_exclusive = @exclusive;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return null;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeclareOk __rep = __repBase as QueueDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_queue;
-    }
-    public override void QueueBind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueBind __req = new QueueBind();
-      __req.m_queue = @queue;
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueBindOk __rep = __repBase as QueueBindOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void QueueUnbind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueUnbind __req = new QueueUnbind();
-      __req.m_queue = @queue;
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_arguments = @arguments;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueUnbindOk __rep = __repBase as QueueUnbindOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override System.UInt32 QueuePurge(
-      System.String @queue,
-      System.Boolean @nowait)
-    {
-      QueuePurge __req = new QueuePurge();
-      __req.m_queue = @queue;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueuePurgeOk __rep = __repBase as QueuePurgeOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override System.UInt32 QueueDelete(
-      System.String @queue,
-      System.Boolean @ifUnused,
-      System.Boolean @ifEmpty,
-      System.Boolean @nowait)
-    {
-      QueueDelete __req = new QueueDelete();
-      __req.m_queue = @queue;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_ifEmpty = @ifEmpty;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeleteOk __rep = __repBase as QueueDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override void BasicQos(
-      System.UInt32 @prefetchSize,
-      System.UInt16 @prefetchCount,
-      System.Boolean @global)
-    {
-      BasicQos __req = new BasicQos();
-      __req.m_prefetchSize = @prefetchSize;
-      __req.m_prefetchCount = @prefetchCount;
-      __req.m_global = @global;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      BasicQosOk __rep = __repBase as BasicQosOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void BasicAck(
-      System.UInt64 @deliveryTag,
-      System.Boolean @multiple)
-    {
-      BasicAck __req = new BasicAck();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_multiple = @multiple;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicReject(
-      System.UInt64 @deliveryTag,
-      System.Boolean @requeue)
-    {
-      BasicReject __req = new BasicReject();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_requeue = @requeue;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicRecover(
-      System.Boolean @requeue)
-    {
-      BasicRecover __req = new BasicRecover();
-      __req.m_requeue = @requeue;
-      ModelSend(__req,null,null);
-    }
-    public override void TxSelect()
-    {
-      TxSelect __req = new TxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxSelectOk __rep = __repBase as TxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxCommit()
-    {
-      TxCommit __req = new TxCommit();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxCommitOk __rep = __repBase as TxCommitOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxRollback()
-    {
-      TxRollback __req = new TxRollback();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxRollbackOk __rep = __repBase as TxRollbackOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxSelect()
-    {
-      DtxSelect __req = new DtxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxSelectOk __rep = __repBase as DtxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxStart(
-      System.String @dtxIdentifier)
-    {
-      DtxStart __req = new DtxStart();
-      __req.m_dtxIdentifier = @dtxIdentifier;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxStartOk __rep = __repBase as DtxStartOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override bool DispatchAsynchronous(RabbitMQ.Client.Impl.Command cmd) {
-      RabbitMQ.Client.Impl.MethodBase __method = (RabbitMQ.Client.Impl.MethodBase) cmd.Method;
-      switch ((__method.ProtocolClassId << 16) | __method.ProtocolMethodId) {
-        case 3932181: {
-          BasicConsumeOk __impl = (BasicConsumeOk) __method;
-          HandleBasicConsumeOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932191: {
-          BasicCancelOk __impl = (BasicCancelOk) __method;
-          HandleBasicCancelOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932231: {
-          BasicGetOk __impl = (BasicGetOk) __method;
-          HandleBasicGetOk(
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            __impl.m_messageCount,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932232: {
-          HandleBasicGetEmpty();
-          return true;
-        }
-        case 3932220: {
-          BasicDeliver __impl = (BasicDeliver) __method;
-          HandleBasicDeliver(
-            __impl.m_consumerTag,
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932210: {
-          BasicReturn __impl = (BasicReturn) __method;
-          HandleBasicReturn(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 1310740: {
-          ChannelFlow __impl = (ChannelFlow) __method;
-          HandleChannelFlow(
-            __impl.m_active);
-          return true;
-        }
-        case 1310760: {
-          ChannelClose __impl = (ChannelClose) __method;
-          HandleChannelClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        case 1310761: {
-          HandleChannelCloseOk();
-          return true;
-        }
-        case 655370: {
-          ConnectionStart __impl = (ConnectionStart) __method;
-          HandleConnectionStart(
-            __impl.m_versionMajor,
-            __impl.m_versionMinor,
-            __impl.m_serverProperties,
-            __impl.m_mechanisms,
-            __impl.m_locales);
-          return true;
-        }
-        case 655401: {
-          ConnectionOpenOk __impl = (ConnectionOpenOk) __method;
-          HandleConnectionOpenOk(
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655402: {
-          ConnectionRedirect __impl = (ConnectionRedirect) __method;
-          HandleConnectionRedirect(
-            __impl.m_host,
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655410: {
-          ConnectionClose __impl = (ConnectionClose) __method;
-          HandleConnectionClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        default: return false;
-      }
-    }
-  }
-}
diff --git a/mcs/class/RabbitMQ.Client/docs/specs/net_4_0-api-qpid-0-8.cs b/mcs/class/RabbitMQ.Client/docs/specs/net_4_0-api-qpid-0-8.cs
deleted file mode 100644 (file)
index 9305215..0000000
+++ /dev/null
@@ -1,6468 +0,0 @@
-// Autogenerated code. Do not edit.
-
-// This source code is dual-licensed under the Apache License, version
-// 2.0, and the Mozilla Public License, version 1.1.
-//
-// The APL v2.0:
-//
-//---------------------------------------------------------------------------
-//   Copyright (C) 2007-2010 LShift Ltd., Cohesive Financial
-//   Technologies LLC., and Rabbit Technologies Ltd.
-//
-//   Licensed under the Apache License, Version 2.0 (the "License");
-//   you may not use this file except in compliance with the License.
-//   You may obtain a copy of the License at
-//
-//       http://www.apache.org/licenses/LICENSE-2.0
-//
-//   Unless required by applicable law or agreed to in writing, software
-//   distributed under the License is distributed on an "AS IS" BASIS,
-//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//   See the License for the specific language governing permissions and
-//   limitations under the License.
-//---------------------------------------------------------------------------
-//
-// The MPL v1.1:
-//
-//---------------------------------------------------------------------------
-//   The contents of this file are subject to the Mozilla Public License
-//   Version 1.1 (the "License"); you may not use this file except in
-//   compliance with the License. You may obtain a copy of the License at
-//   http://www.rabbitmq.com/mpl.html
-//
-//   Software distributed under the License is distributed on an "AS IS"
-//   basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//   License for the specific language governing rights and limitations
-//   under the License.
-//
-//   The Original Code is The RabbitMQ .NET Client.
-//
-//   The Initial Developers of the Original Code are LShift Ltd,
-//   Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
-//   Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
-//   are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
-//   Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created by LShift Ltd are Copyright (C) 2007-2010 LShift
-//   Ltd. Portions created by Cohesive Financial Technologies LLC are
-//   Copyright (C) 2007-2010 Cohesive Financial Technologies
-//   LLC. Portions created by Rabbit Technologies Ltd are Copyright
-//   (C) 2007-2010 Rabbit Technologies Ltd.
-//
-//   All Rights Reserved.
-//
-//   Contributor(s): ______________________________________.
-//
-//---------------------------------------------------------------------------
-
-using RabbitMQ.Client;
-using RabbitMQ.Client.Exceptions;
-
-namespace RabbitMQ.Client.Framing.v0_8qpid {
-  public class Protocol: RabbitMQ.Client.Framing.Impl.v0_8qpid.ProtocolBase {
-    ///<summary>Protocol major version (= 8)</summary>
-    public override int MajorVersion { get { return 8; } }
-    ///<summary>Protocol minor version (= 0)</summary>
-    public override int MinorVersion { get { return 0; } }
-    ///<summary>Protocol API name (= AMQP_0_8_QPID)</summary>
-    public override string ApiName { get { return "AMQP_0_8_QPID"; } }
-    ///<summary>Default TCP port (= 5672)</summary>
-    public override int DefaultPort { get { return 5672; } }
-
-    public override RabbitMQ.Client.Impl.MethodBase DecodeMethodFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-      ushort methodId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 10: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionStart result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionStartOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionSecure result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionSecure();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionSecureOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionSecureOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionTune result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionTune();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionTuneOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionTuneOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionOpen result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionRedirect result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionRedirect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionClose result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 61: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 20: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelOpen result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelFlow result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelFlow();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelFlowOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelFlowOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelAlert result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelAlert();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelClose result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 30: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.AccessRequest result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.AccessRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.AccessRequestOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.AccessRequestOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 40: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeclare result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDelete result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 22: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeBound result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeBound();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 23: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeBoundOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeBoundOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 50: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeclare result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueBind result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueBind();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueBindOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueBindOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueuePurge result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueuePurge();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueuePurgeOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueuePurgeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDelete result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 60: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicQos result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicConsume result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicCancel result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicPublish result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicReturn result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGet result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGet();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 71: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGetOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGetOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 72: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGetEmpty result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGetEmpty();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicAck result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicReject result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicRecover result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicRecover();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 101: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicRecoverOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicRecoverOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 70: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileQos result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileConsume result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileCancel result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileOpen result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileStage result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileStage();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FilePublish result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FilePublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileReturn result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileAck result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileReject result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 80: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamQos result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamConsume result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamCancel result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamPublish result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamReturn result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 90: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxSelect result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxCommit result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxCommit();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxCommitOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxCommitOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxRollback result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxRollback();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxRollbackOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxRollbackOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 100: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxSelect result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxStart result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxStartOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 110: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TunnelRequest result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TunnelRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 120: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestInteger result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestInteger();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestIntegerOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestIntegerOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestString result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestString();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestStringOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestStringOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestTable result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestTable();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestTableOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestTableOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestContent result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestContent();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestContentOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestContentOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, methodId);
-    }
-
-    public override RabbitMQ.Client.Impl.ContentHeaderBase DecodeContentHeaderFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 60: return new BasicProperties();
-        case 70: return new FileProperties();
-        case 80: return new StreamProperties();
-        case 110: return new TunnelProperties();
-        case 120: return new TestProperties();
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, 0);
-    }
-  }
-  public class Constants {
-    ///<summary>(= 1)</summary>
-    public const int FrameMethod = 1;
-    ///<summary>(= 2)</summary>
-    public const int FrameHeader = 2;
-    ///<summary>(= 3)</summary>
-    public const int FrameBody = 3;
-    ///<summary>(= 4)</summary>
-    public const int FrameOobMethod = 4;
-    ///<summary>(= 5)</summary>
-    public const int FrameOobHeader = 5;
-    ///<summary>(= 6)</summary>
-    public const int FrameOobBody = 6;
-    ///<summary>(= 7)</summary>
-    public const int FrameTrace = 7;
-    ///<summary>(= 8)</summary>
-    public const int FrameHeartbeat = 8;
-    ///<summary>(= 4096)</summary>
-    public const int FrameMinSize = 4096;
-    ///<summary>(= 206)</summary>
-    public const int FrameEnd = 206;
-    ///<summary>(= 200)</summary>
-    public const int ReplySuccess = 200;
-    ///<summary>(= 310)</summary>
-    public const int NotDelivered = 310;
-    ///<summary>(= 311)</summary>
-    public const int ContentTooLarge = 311;
-    ///<summary>(= 320)</summary>
-    public const int ConnectionForced = 320;
-    ///<summary>(= 402)</summary>
-    public const int InvalidPath = 402;
-    ///<summary>(= 403)</summary>
-    public const int AccessRefused = 403;
-    ///<summary>(= 404)</summary>
-    public const int NotFound = 404;
-    ///<summary>(= 405)</summary>
-    public const int ResourceLocked = 405;
-    ///<summary>(= 501)</summary>
-    public const int FrameError = 501;
-    ///<summary>(= 502)</summary>
-    public const int SyntaxError = 502;
-    ///<summary>(= 503)</summary>
-    public const int CommandInvalid = 503;
-    ///<summary>(= 504)</summary>
-    public const int ChannelError = 504;
-    ///<summary>(= 506)</summary>
-    public const int ResourceError = 506;
-    ///<summary>(= 530)</summary>
-    public const int NotAllowed = 530;
-    ///<summary>(= 540)</summary>
-    public const int NotImplemented = 540;
-    ///<summary>(= 541)</summary>
-    public const int InternalError = 541;
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start".</summary>
-  public interface IConnectionStart: IMethod {
-    byte VersionMajor { get; }
-    byte VersionMinor { get; }
-    System.Collections.IDictionary ServerProperties { get; }
-    byte[] Mechanisms { get; }
-    byte[] Locales { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start-ok".</summary>
-  public interface IConnectionStartOk: IMethod {
-    System.Collections.IDictionary ClientProperties { get; }
-    string Mechanism { get; }
-    byte[] Response { get; }
-    string Locale { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure".</summary>
-  public interface IConnectionSecure: IMethod {
-    byte[] Challenge { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure-ok".</summary>
-  public interface IConnectionSecureOk: IMethod {
-    byte[] Response { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune".</summary>
-  public interface IConnectionTune: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune-ok".</summary>
-  public interface IConnectionTuneOk: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open".</summary>
-  public interface IConnectionOpen: IMethod {
-    string VirtualHost { get; }
-    string Capabilities { get; }
-    bool Insist { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open-ok".</summary>
-  public interface IConnectionOpenOk: IMethod {
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.redirect".</summary>
-  public interface IConnectionRedirect: IMethod {
-    string Host { get; }
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close".</summary>
-  public interface IConnectionClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close-ok".</summary>
-  public interface IConnectionCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open".</summary>
-  public interface IChannelOpen: IMethod {
-    string OutOfBand { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open-ok".</summary>
-  public interface IChannelOpenOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow".</summary>
-  public interface IChannelFlow: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow-ok".</summary>
-  public interface IChannelFlowOk: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.alert".</summary>
-  public interface IChannelAlert: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    System.Collections.IDictionary Details { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close".</summary>
-  public interface IChannelClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close-ok".</summary>
-  public interface IChannelCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request".</summary>
-  public interface IAccessRequest: IMethod {
-    string Realm { get; }
-    bool Exclusive { get; }
-    bool Passive { get; }
-    bool Active { get; }
-    bool Write { get; }
-    bool Read { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request-ok".</summary>
-  public interface IAccessRequestOk: IMethod {
-    ushort Ticket { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare".</summary>
-  public interface IExchangeDeclare: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string Type { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool AutoDelete { get; }
-    bool Internal { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare-ok".</summary>
-  public interface IExchangeDeclareOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete".</summary>
-  public interface IExchangeDelete: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    bool IfUnused { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete-ok".</summary>
-  public interface IExchangeDeleteOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.bound".</summary>
-  public interface IExchangeBound: IMethod {
-    string Exchange { get; }
-    string RoutingKey { get; }
-    string Queue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.bound-ok".</summary>
-  public interface IExchangeBoundOk: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare".</summary>
-  public interface IQueueDeclare: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool Exclusive { get; }
-    bool AutoDelete { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare-ok".</summary>
-  public interface IQueueDeclareOk: IMethod {
-    string Queue { get; }
-    uint MessageCount { get; }
-    uint ConsumerCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind".</summary>
-  public interface IQueueBind: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind-ok".</summary>
-  public interface IQueueBindOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge".</summary>
-  public interface IQueuePurge: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge-ok".</summary>
-  public interface IQueuePurgeOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete".</summary>
-  public interface IQueueDelete: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool IfUnused { get; }
-    bool IfEmpty { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete-ok".</summary>
-  public interface IQueueDeleteOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos".</summary>
-  public interface IBasicQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos-ok".</summary>
-  public interface IBasicQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume".</summary>
-  public interface IBasicConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume-ok".</summary>
-  public interface IBasicConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel".</summary>
-  public interface IBasicCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel-ok".</summary>
-  public interface IBasicCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.publish".</summary>
-  public interface IBasicPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.return".</summary>
-  public interface IBasicReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.deliver".</summary>
-  public interface IBasicDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get".</summary>
-  public interface IBasicGet: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool NoAck { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-ok".</summary>
-  public interface IBasicGetOk: IMethod {
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-empty".</summary>
-  public interface IBasicGetEmpty: IMethod {
-    string ClusterId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.ack".</summary>
-  public interface IBasicAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.reject".</summary>
-  public interface IBasicReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.recover".</summary>
-  public interface IBasicRecover: IMethod {
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.recover-ok".</summary>
-  public interface IBasicRecoverOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos".</summary>
-  public interface IFileQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos-ok".</summary>
-  public interface IFileQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume".</summary>
-  public interface IFileConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume-ok".</summary>
-  public interface IFileConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel".</summary>
-  public interface IFileCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel-ok".</summary>
-  public interface IFileCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open".</summary>
-  public interface IFileOpen: IMethod {
-    string Identifier { get; }
-    ulong ContentSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open-ok".</summary>
-  public interface IFileOpenOk: IMethod {
-    ulong StagedSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.stage".</summary>
-  public interface IFileStage: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.publish".</summary>
-  public interface IFilePublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.return".</summary>
-  public interface IFileReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.deliver".</summary>
-  public interface IFileDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.ack".</summary>
-  public interface IFileAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.reject".</summary>
-  public interface IFileReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos".</summary>
-  public interface IStreamQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    uint ConsumeRate { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos-ok".</summary>
-  public interface IStreamQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume".</summary>
-  public interface IStreamConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume-ok".</summary>
-  public interface IStreamConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel".</summary>
-  public interface IStreamCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel-ok".</summary>
-  public interface IStreamCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.publish".</summary>
-  public interface IStreamPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.return".</summary>
-  public interface IStreamReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.deliver".</summary>
-  public interface IStreamDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    string Exchange { get; }
-    string Queue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select".</summary>
-  public interface ITxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select-ok".</summary>
-  public interface ITxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit".</summary>
-  public interface ITxCommit: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit-ok".</summary>
-  public interface ITxCommitOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback".</summary>
-  public interface ITxRollback: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback-ok".</summary>
-  public interface ITxRollbackOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select".</summary>
-  public interface IDtxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select-ok".</summary>
-  public interface IDtxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start".</summary>
-  public interface IDtxStart: IMethod {
-    string DtxIdentifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start-ok".</summary>
-  public interface IDtxStartOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tunnel.request".</summary>
-  public interface ITunnelRequest: IMethod {
-    System.Collections.IDictionary MetaData { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.integer".</summary>
-  public interface ITestInteger: IMethod {
-    byte Integer1 { get; }
-    ushort Integer2 { get; }
-    uint Integer3 { get; }
-    ulong Integer4 { get; }
-    byte Operation { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.integer-ok".</summary>
-  public interface ITestIntegerOk: IMethod {
-    ulong Result { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.string".</summary>
-  public interface ITestString: IMethod {
-    string String1 { get; }
-    byte[] String2 { get; }
-    byte Operation { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.string-ok".</summary>
-  public interface ITestStringOk: IMethod {
-    byte[] Result { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.table".</summary>
-  public interface ITestTable: IMethod {
-    System.Collections.IDictionary Table { get; }
-    byte IntegerOp { get; }
-    byte StringOp { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.table-ok".</summary>
-  public interface ITestTableOk: IMethod {
-    ulong IntegerResult { get; }
-    byte[] StringResult { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.content".</summary>
-  public interface ITestContent: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.content-ok".</summary>
-  public interface ITestContentOk: IMethod {
-    uint ContentChecksum { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "basic"</summary>
-  public class BasicProperties: RabbitMQ.Client.Impl.BasicProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_deliveryMode;
-    private byte m_priority;
-    private string m_correlationId;
-    private string m_replyTo;
-    private string m_expiration;
-    private string m_messageId;
-    private AmqpTimestamp m_timestamp;
-    private string m_type;
-    private string m_userId;
-    private string m_appId;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_deliveryMode_present = false;
-    private bool m_priority_present = false;
-    private bool m_correlationId_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_expiration_present = false;
-    private bool m_messageId_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_type_present = false;
-    private bool m_userId_present = false;
-    private bool m_appId_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte DeliveryMode {
-      get {
-        return m_deliveryMode;
-      }
-      set {
-        m_deliveryMode_present = true;
-        m_deliveryMode = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string CorrelationId {
-      get {
-        return m_correlationId;
-      }
-      set {
-        m_correlationId_present = true;
-        m_correlationId = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string Expiration {
-      get {
-        return m_expiration;
-      }
-      set {
-        m_expiration_present = true;
-        m_expiration = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string Type {
-      get {
-        return m_type;
-      }
-      set {
-        m_type_present = true;
-        m_type = value;
-      }
-    }
-    public override string UserId {
-      get {
-        return m_userId;
-      }
-      set {
-        m_userId_present = true;
-        m_userId = value;
-      }
-    }
-    public override string AppId {
-      get {
-        return m_appId;
-      }
-      set {
-        m_appId_present = true;
-        m_appId = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearDeliveryMode() { m_deliveryMode_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearCorrelationId() { m_correlationId_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearExpiration() { m_expiration_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearType() { m_type_present = false; }
-    public override void ClearUserId() { m_userId_present = false; }
-    public override void ClearAppId() { m_appId_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsDeliveryModePresent() { return m_deliveryMode_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsCorrelationIdPresent() { return m_correlationId_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsExpirationPresent() { return m_expiration_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsTypePresent() { return m_type_present; }
-    public override bool IsUserIdPresent() { return m_userId_present; }
-    public override bool IsAppIdPresent() { return m_appId_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public BasicProperties() {}
-    public override int ProtocolClassId { get { return 60; } }
-    public override string ProtocolClassName { get { return "basic"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_deliveryMode_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_correlationId_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_expiration_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_type_present = reader.ReadPresence();
-      m_userId_present = reader.ReadPresence();
-      m_appId_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_deliveryMode_present) { m_deliveryMode = reader.ReadOctet(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_correlationId_present) { m_correlationId = reader.ReadShortstr(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_expiration_present) { m_expiration = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_type_present) { m_type = reader.ReadShortstr(); }
-      if (m_userId_present) { m_userId = reader.ReadShortstr(); }
-      if (m_appId_present) { m_appId = reader.ReadShortstr(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_deliveryMode_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_correlationId_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_expiration_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_type_present);
-      writer.WritePresence(m_userId_present);
-      writer.WritePresence(m_appId_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_deliveryMode_present) { writer.WriteOctet(m_deliveryMode); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_correlationId_present) { writer.WriteShortstr(m_correlationId); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_expiration_present) { writer.WriteShortstr(m_expiration); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_type_present) { writer.WriteShortstr(m_type); }
-      if (m_userId_present) { writer.WriteShortstr(m_userId); }
-      if (m_appId_present) { writer.WriteShortstr(m_appId); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("delivery mode="); sb.Append(m_deliveryMode_present ? m_deliveryMode.ToString() : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("correlation id="); sb.Append(m_correlationId_present ? (m_correlationId == null ? "(null)" : m_correlationId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("reply to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("expiration="); sb.Append(m_expiration_present ? (m_expiration == null ? "(null)" : m_expiration.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("type="); sb.Append(m_type_present ? (m_type == null ? "(null)" : m_type.ToString()) : "_"); sb.Append(", ");
-      sb.Append("user id="); sb.Append(m_userId_present ? (m_userId == null ? "(null)" : m_userId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("app id="); sb.Append(m_appId_present ? (m_appId == null ? "(null)" : m_appId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("cluster id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "file"</summary>
-  public class FileProperties: RabbitMQ.Client.Impl.FileProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private string m_replyTo;
-    private string m_messageId;
-    private string m_filename;
-    private AmqpTimestamp m_timestamp;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_messageId_present = false;
-    private bool m_filename_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override string Filename {
-      get {
-        return m_filename;
-      }
-      set {
-        m_filename_present = true;
-        m_filename = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearFilename() { m_filename_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsFilenamePresent() { return m_filename_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public FileProperties() {}
-    public override int ProtocolClassId { get { return 70; } }
-    public override string ProtocolClassName { get { return "file"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_filename_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_filename_present) { m_filename = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_filename_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_filename_present) { writer.WriteShortstr(m_filename); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("reply to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("filename="); sb.Append(m_filename_present ? (m_filename == null ? "(null)" : m_filename.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("cluster id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "stream"</summary>
-  public class StreamProperties: RabbitMQ.Client.Impl.StreamProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private AmqpTimestamp m_timestamp;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_timestamp_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-
-    public StreamProperties() {}
-    public override int ProtocolClassId { get { return 80; } }
-    public override string ProtocolClassName { get { return "stream"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "tunnel"</summary>
-  public class TunnelProperties: RabbitMQ.Client.Impl.ContentHeaderBase {
-    private System.Collections.IDictionary m_headers;
-    private string m_proxyName;
-    private string m_dataName;
-    private byte m_durable;
-    private byte m_broadcast;
-
-    private bool m_headers_present = false;
-    private bool m_proxyName_present = false;
-    private bool m_dataName_present = false;
-    private bool m_durable_present = false;
-    private bool m_broadcast_present = false;
-
-    public System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public string ProxyName {
-      get {
-        return m_proxyName;
-      }
-      set {
-        m_proxyName_present = true;
-        m_proxyName = value;
-      }
-    }
-    public string DataName {
-      get {
-        return m_dataName;
-      }
-      set {
-        m_dataName_present = true;
-        m_dataName = value;
-      }
-    }
-    public byte Durable {
-      get {
-        return m_durable;
-      }
-      set {
-        m_durable_present = true;
-        m_durable = value;
-      }
-    }
-    public byte Broadcast {
-      get {
-        return m_broadcast;
-      }
-      set {
-        m_broadcast_present = true;
-        m_broadcast = value;
-      }
-    }
-
-    public void ClearHeaders() { m_headers_present = false; }
-    public void ClearProxyName() { m_proxyName_present = false; }
-    public void ClearDataName() { m_dataName_present = false; }
-    public void ClearDurable() { m_durable_present = false; }
-    public void ClearBroadcast() { m_broadcast_present = false; }
-
-    public bool IsHeadersPresent() { return m_headers_present; }
-    public bool IsProxyNamePresent() { return m_proxyName_present; }
-    public bool IsDataNamePresent() { return m_dataName_present; }
-    public bool IsDurablePresent() { return m_durable_present; }
-    public bool IsBroadcastPresent() { return m_broadcast_present; }
-
-    public TunnelProperties() {}
-    public override int ProtocolClassId { get { return 110; } }
-    public override string ProtocolClassName { get { return "tunnel"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_headers_present = reader.ReadPresence();
-      m_proxyName_present = reader.ReadPresence();
-      m_dataName_present = reader.ReadPresence();
-      m_durable_present = reader.ReadPresence();
-      m_broadcast_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_proxyName_present) { m_proxyName = reader.ReadShortstr(); }
-      if (m_dataName_present) { m_dataName = reader.ReadShortstr(); }
-      if (m_durable_present) { m_durable = reader.ReadOctet(); }
-      if (m_broadcast_present) { m_broadcast = reader.ReadOctet(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_proxyName_present);
-      writer.WritePresence(m_dataName_present);
-      writer.WritePresence(m_durable_present);
-      writer.WritePresence(m_broadcast_present);
-      writer.FinishPresence();
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_proxyName_present) { writer.WriteShortstr(m_proxyName); }
-      if (m_dataName_present) { writer.WriteShortstr(m_dataName); }
-      if (m_durable_present) { writer.WriteOctet(m_durable); }
-      if (m_broadcast_present) { writer.WriteOctet(m_broadcast); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("proxy name="); sb.Append(m_proxyName_present ? (m_proxyName == null ? "(null)" : m_proxyName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("data name="); sb.Append(m_dataName_present ? (m_dataName == null ? "(null)" : m_dataName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("durable="); sb.Append(m_durable_present ? m_durable.ToString() : "_"); sb.Append(", ");
-      sb.Append("broadcast="); sb.Append(m_broadcast_present ? m_broadcast.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "test"</summary>
-  public class TestProperties: RabbitMQ.Client.Impl.ContentHeaderBase {
-
-
-
-
-
-    public TestProperties() {}
-    public override int ProtocolClassId { get { return 120; } }
-    public override string ProtocolClassName { get { return "test"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      reader.FinishPresence();
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.FinishPresence();
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-}
-namespace RabbitMQ.Client.Framing.Impl.v0_8qpid {
-  using RabbitMQ.Client.Framing.v0_8qpid;
-  public enum ClassId {
-    Connection = 10,
-    Channel = 20,
-    Access = 30,
-    Exchange = 40,
-    Queue = 50,
-    Basic = 60,
-    File = 70,
-    Stream = 80,
-    Tx = 90,
-    Dtx = 100,
-    Tunnel = 110,
-    Test = 120,
-    Invalid = -1
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStart: RabbitMQ.Client.Impl.MethodBase, IConnectionStart {
-    public const int ClassId = 10;
-    public const int MethodId = 10;
-
-    public byte m_versionMajor;
-    public byte m_versionMinor;
-    public System.Collections.IDictionary m_serverProperties;
-    public byte[] m_mechanisms;
-    public byte[] m_locales;
-
-    byte IConnectionStart.VersionMajor { get { return m_versionMajor; } }
-    byte IConnectionStart.VersionMinor { get { return m_versionMinor; } }
-    System.Collections.IDictionary IConnectionStart.ServerProperties { get { return m_serverProperties; } }
-    byte[] IConnectionStart.Mechanisms { get { return m_mechanisms; } }
-    byte[] IConnectionStart.Locales { get { return m_locales; } }
-
-    public ConnectionStart() {}
-    public ConnectionStart(
-      byte initVersionMajor,
-      byte initVersionMinor,
-      System.Collections.IDictionary initServerProperties,
-      byte[] initMechanisms,
-      byte[] initLocales)
-    {
-      m_versionMajor = initVersionMajor;
-      m_versionMinor = initVersionMinor;
-      m_serverProperties = initServerProperties;
-      m_mechanisms = initMechanisms;
-      m_locales = initLocales;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "connection.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_versionMajor = reader.ReadOctet();
-      m_versionMinor = reader.ReadOctet();
-      m_serverProperties = reader.ReadTable();
-      m_mechanisms = reader.ReadLongstr();
-      m_locales = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteOctet(m_versionMajor);
-      writer.WriteOctet(m_versionMinor);
-      writer.WriteTable(m_serverProperties);
-      writer.WriteLongstr(m_mechanisms);
-      writer.WriteLongstr(m_locales);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_versionMajor); sb.Append(",");
-      sb.Append(m_versionMinor); sb.Append(",");
-      sb.Append(m_serverProperties); sb.Append(",");
-      sb.Append(m_mechanisms); sb.Append(",");
-      sb.Append(m_locales);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStartOk: RabbitMQ.Client.Impl.MethodBase, IConnectionStartOk {
-    public const int ClassId = 10;
-    public const int MethodId = 11;
-
-    public System.Collections.IDictionary m_clientProperties;
-    public string m_mechanism;
-    public byte[] m_response;
-    public string m_locale;
-
-    System.Collections.IDictionary IConnectionStartOk.ClientProperties { get { return m_clientProperties; } }
-    string IConnectionStartOk.Mechanism { get { return m_mechanism; } }
-    byte[] IConnectionStartOk.Response { get { return m_response; } }
-    string IConnectionStartOk.Locale { get { return m_locale; } }
-
-    public ConnectionStartOk() {}
-    public ConnectionStartOk(
-      System.Collections.IDictionary initClientProperties,
-      string initMechanism,
-      byte[] initResponse,
-      string initLocale)
-    {
-      m_clientProperties = initClientProperties;
-      m_mechanism = initMechanism;
-      m_response = initResponse;
-      m_locale = initLocale;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "connection.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clientProperties = reader.ReadTable();
-      m_mechanism = reader.ReadShortstr();
-      m_response = reader.ReadLongstr();
-      m_locale = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_clientProperties);
-      writer.WriteShortstr(m_mechanism);
-      writer.WriteLongstr(m_response);
-      writer.WriteShortstr(m_locale);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clientProperties); sb.Append(",");
-      sb.Append(m_mechanism); sb.Append(",");
-      sb.Append(m_response); sb.Append(",");
-      sb.Append(m_locale);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecure: RabbitMQ.Client.Impl.MethodBase, IConnectionSecure {
-    public const int ClassId = 10;
-    public const int MethodId = 20;
-
-    public byte[] m_challenge;
-
-    byte[] IConnectionSecure.Challenge { get { return m_challenge; } }
-
-    public ConnectionSecure() {}
-    public ConnectionSecure(
-      byte[] initChallenge)
-    {
-      m_challenge = initChallenge;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "connection.secure"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_challenge = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_challenge);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_challenge);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecureOk: RabbitMQ.Client.Impl.MethodBase, IConnectionSecureOk {
-    public const int ClassId = 10;
-    public const int MethodId = 21;
-
-    public byte[] m_response;
-
-    byte[] IConnectionSecureOk.Response { get { return m_response; } }
-
-    public ConnectionSecureOk() {}
-    public ConnectionSecureOk(
-      byte[] initResponse)
-    {
-      m_response = initResponse;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "connection.secure-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_response = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_response);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_response);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTune: RabbitMQ.Client.Impl.MethodBase, IConnectionTune {
-    public const int ClassId = 10;
-    public const int MethodId = 30;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTune.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTune.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTune.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTune() {}
-    public ConnectionTune(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "connection.tune"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTuneOk: RabbitMQ.Client.Impl.MethodBase, IConnectionTuneOk {
-    public const int ClassId = 10;
-    public const int MethodId = 31;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTuneOk.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTuneOk.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTuneOk.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTuneOk() {}
-    public ConnectionTuneOk(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "connection.tune-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpen: RabbitMQ.Client.Impl.MethodBase, IConnectionOpen {
-    public const int ClassId = 10;
-    public const int MethodId = 40;
-
-    public string m_virtualHost;
-    public string m_capabilities;
-    public bool m_insist;
-
-    string IConnectionOpen.VirtualHost { get { return m_virtualHost; } }
-    string IConnectionOpen.Capabilities { get { return m_capabilities; } }
-    bool IConnectionOpen.Insist { get { return m_insist; } }
-
-    public ConnectionOpen() {}
-    public ConnectionOpen(
-      string initVirtualHost,
-      string initCapabilities,
-      bool initInsist)
-    {
-      m_virtualHost = initVirtualHost;
-      m_capabilities = initCapabilities;
-      m_insist = initInsist;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "connection.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_virtualHost = reader.ReadShortstr();
-      m_capabilities = reader.ReadShortstr();
-      m_insist = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_virtualHost);
-      writer.WriteShortstr(m_capabilities);
-      writer.WriteBit(m_insist);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_virtualHost); sb.Append(",");
-      sb.Append(m_capabilities); sb.Append(",");
-      sb.Append(m_insist);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpenOk: RabbitMQ.Client.Impl.MethodBase, IConnectionOpenOk {
-    public const int ClassId = 10;
-    public const int MethodId = 41;
-
-    public string m_knownHosts;
-
-    string IConnectionOpenOk.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionOpenOk() {}
-    public ConnectionOpenOk(
-      string initKnownHosts)
-    {
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "connection.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionRedirect: RabbitMQ.Client.Impl.MethodBase, IConnectionRedirect {
-    public const int ClassId = 10;
-    public const int MethodId = 50;
-
-    public string m_host;
-    public string m_knownHosts;
-
-    string IConnectionRedirect.Host { get { return m_host; } }
-    string IConnectionRedirect.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionRedirect() {}
-    public ConnectionRedirect(
-      string initHost,
-      string initKnownHosts)
-    {
-      m_host = initHost;
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "connection.redirect"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_host = reader.ReadShortstr();
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_host);
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_host); sb.Append(",");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionClose: RabbitMQ.Client.Impl.MethodBase, IConnectionClose {
-    public const int ClassId = 10;
-    public const int MethodId = 60;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IConnectionClose.ReplyCode { get { return m_replyCode; } }
-    string IConnectionClose.ReplyText { get { return m_replyText; } }
-    ushort IConnectionClose.ClassId { get { return m_classId; } }
-    ushort IConnectionClose.MethodId { get { return m_methodId; } }
-
-    public ConnectionClose() {}
-    public ConnectionClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "connection.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionCloseOk: RabbitMQ.Client.Impl.MethodBase, IConnectionCloseOk {
-    public const int ClassId = 10;
-    public const int MethodId = 61;
-
-
-
-    public ConnectionCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 61; } }
-    public override string ProtocolMethodName { get { return "connection.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpen: RabbitMQ.Client.Impl.MethodBase, IChannelOpen {
-    public const int ClassId = 20;
-    public const int MethodId = 10;
-
-    public string m_outOfBand;
-
-    string IChannelOpen.OutOfBand { get { return m_outOfBand; } }
-
-    public ChannelOpen() {}
-    public ChannelOpen(
-      string initOutOfBand)
-    {
-      m_outOfBand = initOutOfBand;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "channel.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_outOfBand = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_outOfBand);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_outOfBand);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpenOk: RabbitMQ.Client.Impl.MethodBase, IChannelOpenOk {
-    public const int ClassId = 20;
-    public const int MethodId = 11;
-
-
-
-    public ChannelOpenOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "channel.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlow: RabbitMQ.Client.Impl.MethodBase, IChannelFlow {
-    public const int ClassId = 20;
-    public const int MethodId = 20;
-
-    public bool m_active;
-
-    bool IChannelFlow.Active { get { return m_active; } }
-
-    public ChannelFlow() {}
-    public ChannelFlow(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "channel.flow"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlowOk: RabbitMQ.Client.Impl.MethodBase, IChannelFlowOk {
-    public const int ClassId = 20;
-    public const int MethodId = 21;
-
-    public bool m_active;
-
-    bool IChannelFlowOk.Active { get { return m_active; } }
-
-    public ChannelFlowOk() {}
-    public ChannelFlowOk(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "channel.flow-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelAlert: RabbitMQ.Client.Impl.MethodBase, IChannelAlert {
-    public const int ClassId = 20;
-    public const int MethodId = 30;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public System.Collections.IDictionary m_details;
-
-    ushort IChannelAlert.ReplyCode { get { return m_replyCode; } }
-    string IChannelAlert.ReplyText { get { return m_replyText; } }
-    System.Collections.IDictionary IChannelAlert.Details { get { return m_details; } }
-
-    public ChannelAlert() {}
-    public ChannelAlert(
-      ushort initReplyCode,
-      string initReplyText,
-      System.Collections.IDictionary initDetails)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_details = initDetails;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "channel.alert"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_details = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteTable(m_details);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_details);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelClose: RabbitMQ.Client.Impl.MethodBase, IChannelClose {
-    public const int ClassId = 20;
-    public const int MethodId = 40;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IChannelClose.ReplyCode { get { return m_replyCode; } }
-    string IChannelClose.ReplyText { get { return m_replyText; } }
-    ushort IChannelClose.ClassId { get { return m_classId; } }
-    ushort IChannelClose.MethodId { get { return m_methodId; } }
-
-    public ChannelClose() {}
-    public ChannelClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "channel.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelCloseOk: RabbitMQ.Client.Impl.MethodBase, IChannelCloseOk {
-    public const int ClassId = 20;
-    public const int MethodId = 41;
-
-
-
-    public ChannelCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "channel.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequest: RabbitMQ.Client.Impl.MethodBase, IAccessRequest {
-    public const int ClassId = 30;
-    public const int MethodId = 10;
-
-    public string m_realm;
-    public bool m_exclusive;
-    public bool m_passive;
-    public bool m_active;
-    public bool m_write;
-    public bool m_read;
-
-    string IAccessRequest.Realm { get { return m_realm; } }
-    bool IAccessRequest.Exclusive { get { return m_exclusive; } }
-    bool IAccessRequest.Passive { get { return m_passive; } }
-    bool IAccessRequest.Active { get { return m_active; } }
-    bool IAccessRequest.Write { get { return m_write; } }
-    bool IAccessRequest.Read { get { return m_read; } }
-
-    public AccessRequest() {}
-    public AccessRequest(
-      string initRealm,
-      bool initExclusive,
-      bool initPassive,
-      bool initActive,
-      bool initWrite,
-      bool initRead)
-    {
-      m_realm = initRealm;
-      m_exclusive = initExclusive;
-      m_passive = initPassive;
-      m_active = initActive;
-      m_write = initWrite;
-      m_read = initRead;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "access.request"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_realm = reader.ReadShortstr();
-      m_exclusive = reader.ReadBit();
-      m_passive = reader.ReadBit();
-      m_active = reader.ReadBit();
-      m_write = reader.ReadBit();
-      m_read = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_realm);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_active);
-      writer.WriteBit(m_write);
-      writer.WriteBit(m_read);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_realm); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_active); sb.Append(",");
-      sb.Append(m_write); sb.Append(",");
-      sb.Append(m_read);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequestOk: RabbitMQ.Client.Impl.MethodBase, IAccessRequestOk {
-    public const int ClassId = 30;
-    public const int MethodId = 11;
-
-    public ushort m_ticket;
-
-    ushort IAccessRequestOk.Ticket { get { return m_ticket; } }
-
-    public AccessRequestOk() {}
-    public AccessRequestOk(
-      ushort initTicket)
-    {
-      m_ticket = initTicket;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "access.request-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclare: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclare {
-    public const int ClassId = 40;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_type;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_autoDelete;
-    public bool m_internal;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IExchangeDeclare.Ticket { get { return m_ticket; } }
-    string IExchangeDeclare.Exchange { get { return m_exchange; } }
-    string IExchangeDeclare.Type { get { return m_type; } }
-    bool IExchangeDeclare.Passive { get { return m_passive; } }
-    bool IExchangeDeclare.Durable { get { return m_durable; } }
-    bool IExchangeDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IExchangeDeclare.Internal { get { return m_internal; } }
-    bool IExchangeDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IExchangeDeclare.Arguments { get { return m_arguments; } }
-
-    public ExchangeDeclare() {}
-    public ExchangeDeclare(
-      ushort initTicket,
-      string initExchange,
-      string initType,
-      bool initPassive,
-      bool initDurable,
-      bool initAutoDelete,
-      bool initInternal,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_type = initType;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_autoDelete = initAutoDelete;
-      m_internal = initInternal;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "exchange.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_type = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_internal = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_type);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_internal);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_type); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_internal); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclareOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclareOk {
-    public const int ClassId = 40;
-    public const int MethodId = 11;
-
-
-
-    public ExchangeDeclareOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "exchange.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDelete: RabbitMQ.Client.Impl.MethodBase, IExchangeDelete {
-    public const int ClassId = 40;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public bool m_ifUnused;
-    public bool m_nowait;
-
-    ushort IExchangeDelete.Ticket { get { return m_ticket; } }
-    string IExchangeDelete.Exchange { get { return m_exchange; } }
-    bool IExchangeDelete.IfUnused { get { return m_ifUnused; } }
-    bool IExchangeDelete.Nowait { get { return m_nowait; } }
-
-    public ExchangeDelete() {}
-    public ExchangeDelete(
-      ushort initTicket,
-      string initExchange,
-      bool initIfUnused,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_ifUnused = initIfUnused;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "exchange.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeleteOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeleteOk {
-    public const int ClassId = 40;
-    public const int MethodId = 21;
-
-
-
-    public ExchangeDeleteOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "exchange.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeBound: RabbitMQ.Client.Impl.MethodBase, IExchangeBound {
-    public const int ClassId = 40;
-    public const int MethodId = 22;
-
-    public string m_exchange;
-    public string m_routingKey;
-    public string m_queue;
-
-    string IExchangeBound.Exchange { get { return m_exchange; } }
-    string IExchangeBound.RoutingKey { get { return m_routingKey; } }
-    string IExchangeBound.Queue { get { return m_queue; } }
-
-    public ExchangeBound() {}
-    public ExchangeBound(
-      string initExchange,
-      string initRoutingKey,
-      string initQueue)
-    {
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_queue = initQueue;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 22; } }
-    public override string ProtocolMethodName { get { return "exchange.bound"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_queue = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteShortstr(m_queue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_queue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeBoundOk: RabbitMQ.Client.Impl.MethodBase, IExchangeBoundOk {
-    public const int ClassId = 40;
-    public const int MethodId = 23;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-
-    ushort IExchangeBoundOk.ReplyCode { get { return m_replyCode; } }
-    string IExchangeBoundOk.ReplyText { get { return m_replyText; } }
-
-    public ExchangeBoundOk() {}
-    public ExchangeBoundOk(
-      ushort initReplyCode,
-      string initReplyText)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 23; } }
-    public override string ProtocolMethodName { get { return "exchange.bound-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclare: RabbitMQ.Client.Impl.MethodBase, IQueueDeclare {
-    public const int ClassId = 50;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_exclusive;
-    public bool m_autoDelete;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueDeclare.Ticket { get { return m_ticket; } }
-    string IQueueDeclare.Queue { get { return m_queue; } }
-    bool IQueueDeclare.Passive { get { return m_passive; } }
-    bool IQueueDeclare.Durable { get { return m_durable; } }
-    bool IQueueDeclare.Exclusive { get { return m_exclusive; } }
-    bool IQueueDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IQueueDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueDeclare.Arguments { get { return m_arguments; } }
-
-    public QueueDeclare() {}
-    public QueueDeclare(
-      ushort initTicket,
-      string initQueue,
-      bool initPassive,
-      bool initDurable,
-      bool initExclusive,
-      bool initAutoDelete,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_exclusive = initExclusive;
-      m_autoDelete = initAutoDelete;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "queue.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclareOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeclareOk {
-    public const int ClassId = 50;
-    public const int MethodId = 11;
-
-    public string m_queue;
-    public uint m_messageCount;
-    public uint m_consumerCount;
-
-    string IQueueDeclareOk.Queue { get { return m_queue; } }
-    uint IQueueDeclareOk.MessageCount { get { return m_messageCount; } }
-    uint IQueueDeclareOk.ConsumerCount { get { return m_consumerCount; } }
-
-    public QueueDeclareOk() {}
-    public QueueDeclareOk(
-      string initQueue,
-      uint initMessageCount,
-      uint initConsumerCount)
-    {
-      m_queue = initQueue;
-      m_messageCount = initMessageCount;
-      m_consumerCount = initConsumerCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "queue.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_queue = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-      m_consumerCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_queue);
-      writer.WriteLong(m_messageCount);
-      writer.WriteLong(m_consumerCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_messageCount); sb.Append(",");
-      sb.Append(m_consumerCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBind: RabbitMQ.Client.Impl.MethodBase, IQueueBind {
-    public const int ClassId = 50;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueBind.Ticket { get { return m_ticket; } }
-    string IQueueBind.Queue { get { return m_queue; } }
-    string IQueueBind.Exchange { get { return m_exchange; } }
-    string IQueueBind.RoutingKey { get { return m_routingKey; } }
-    bool IQueueBind.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueBind.Arguments { get { return m_arguments; } }
-
-    public QueueBind() {}
-    public QueueBind(
-      ushort initTicket,
-      string initQueue,
-      string initExchange,
-      string initRoutingKey,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "queue.bind"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBindOk: RabbitMQ.Client.Impl.MethodBase, IQueueBindOk {
-    public const int ClassId = 50;
-    public const int MethodId = 21;
-
-
-
-    public QueueBindOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "queue.bind-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurge: RabbitMQ.Client.Impl.MethodBase, IQueuePurge {
-    public const int ClassId = 50;
-    public const int MethodId = 30;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_nowait;
-
-    ushort IQueuePurge.Ticket { get { return m_ticket; } }
-    string IQueuePurge.Queue { get { return m_queue; } }
-    bool IQueuePurge.Nowait { get { return m_nowait; } }
-
-    public QueuePurge() {}
-    public QueuePurge(
-      ushort initTicket,
-      string initQueue,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "queue.purge"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurgeOk: RabbitMQ.Client.Impl.MethodBase, IQueuePurgeOk {
-    public const int ClassId = 50;
-    public const int MethodId = 31;
-
-    public uint m_messageCount;
-
-    uint IQueuePurgeOk.MessageCount { get { return m_messageCount; } }
-
-    public QueuePurgeOk() {}
-    public QueuePurgeOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "queue.purge-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDelete: RabbitMQ.Client.Impl.MethodBase, IQueueDelete {
-    public const int ClassId = 50;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_ifUnused;
-    public bool m_ifEmpty;
-    public bool m_nowait;
-
-    ushort IQueueDelete.Ticket { get { return m_ticket; } }
-    string IQueueDelete.Queue { get { return m_queue; } }
-    bool IQueueDelete.IfUnused { get { return m_ifUnused; } }
-    bool IQueueDelete.IfEmpty { get { return m_ifEmpty; } }
-    bool IQueueDelete.Nowait { get { return m_nowait; } }
-
-    public QueueDelete() {}
-    public QueueDelete(
-      ushort initTicket,
-      string initQueue,
-      bool initIfUnused,
-      bool initIfEmpty,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_ifUnused = initIfUnused;
-      m_ifEmpty = initIfEmpty;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "queue.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_ifEmpty = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_ifEmpty);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_ifEmpty); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeleteOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeleteOk {
-    public const int ClassId = 50;
-    public const int MethodId = 41;
-
-    public uint m_messageCount;
-
-    uint IQueueDeleteOk.MessageCount { get { return m_messageCount; } }
-
-    public QueueDeleteOk() {}
-    public QueueDeleteOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "queue.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQos: RabbitMQ.Client.Impl.MethodBase, IBasicQos {
-    public const int ClassId = 60;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IBasicQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IBasicQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IBasicQos.Global { get { return m_global; } }
-
-    public BasicQos() {}
-    public BasicQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "basic.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQosOk: RabbitMQ.Client.Impl.MethodBase, IBasicQosOk {
-    public const int ClassId = 60;
-    public const int MethodId = 11;
-
-
-
-    public BasicQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "basic.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsume: RabbitMQ.Client.Impl.MethodBase, IBasicConsume {
-    public const int ClassId = 60;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IBasicConsume.Ticket { get { return m_ticket; } }
-    string IBasicConsume.Queue { get { return m_queue; } }
-    string IBasicConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicConsume.NoLocal { get { return m_noLocal; } }
-    bool IBasicConsume.NoAck { get { return m_noAck; } }
-    bool IBasicConsume.Exclusive { get { return m_exclusive; } }
-    bool IBasicConsume.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IBasicConsume.Arguments { get { return m_arguments; } }
-
-    public BasicConsume() {}
-    public BasicConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "basic.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsumeOk: RabbitMQ.Client.Impl.MethodBase, IBasicConsumeOk {
-    public const int ClassId = 60;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IBasicConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicConsumeOk() {}
-    public BasicConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "basic.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancel: RabbitMQ.Client.Impl.MethodBase, IBasicCancel {
-    public const int ClassId = 60;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IBasicCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicCancel.Nowait { get { return m_nowait; } }
-
-    public BasicCancel() {}
-    public BasicCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "basic.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancelOk: RabbitMQ.Client.Impl.MethodBase, IBasicCancelOk {
-    public const int ClassId = 60;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IBasicCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicCancelOk() {}
-    public BasicCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "basic.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicPublish: RabbitMQ.Client.Impl.MethodBase, IBasicPublish {
-    public const int ClassId = 60;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IBasicPublish.Ticket { get { return m_ticket; } }
-    string IBasicPublish.Exchange { get { return m_exchange; } }
-    string IBasicPublish.RoutingKey { get { return m_routingKey; } }
-    bool IBasicPublish.Mandatory { get { return m_mandatory; } }
-    bool IBasicPublish.Immediate { get { return m_immediate; } }
-
-    public BasicPublish() {}
-    public BasicPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "basic.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReturn: RabbitMQ.Client.Impl.MethodBase, IBasicReturn {
-    public const int ClassId = 60;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IBasicReturn.ReplyCode { get { return m_replyCode; } }
-    string IBasicReturn.ReplyText { get { return m_replyText; } }
-    string IBasicReturn.Exchange { get { return m_exchange; } }
-    string IBasicReturn.RoutingKey { get { return m_routingKey; } }
-
-    public BasicReturn() {}
-    public BasicReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "basic.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicDeliver: RabbitMQ.Client.Impl.MethodBase, IBasicDeliver {
-    public const int ClassId = 60;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-
-    string IBasicDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IBasicDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicDeliver.Redelivered { get { return m_redelivered; } }
-    string IBasicDeliver.Exchange { get { return m_exchange; } }
-    string IBasicDeliver.RoutingKey { get { return m_routingKey; } }
-
-    public BasicDeliver() {}
-    public BasicDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "basic.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGet: RabbitMQ.Client.Impl.MethodBase, IBasicGet {
-    public const int ClassId = 60;
-    public const int MethodId = 70;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_noAck;
-
-    ushort IBasicGet.Ticket { get { return m_ticket; } }
-    string IBasicGet.Queue { get { return m_queue; } }
-    bool IBasicGet.NoAck { get { return m_noAck; } }
-
-    public BasicGet() {}
-    public BasicGet(
-      ushort initTicket,
-      string initQueue,
-      bool initNoAck)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_noAck = initNoAck;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "basic.get"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_noAck = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_noAck);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_noAck);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetOk: RabbitMQ.Client.Impl.MethodBase, IBasicGetOk {
-    public const int ClassId = 60;
-    public const int MethodId = 71;
-
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public uint m_messageCount;
-
-    ulong IBasicGetOk.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicGetOk.Redelivered { get { return m_redelivered; } }
-    string IBasicGetOk.Exchange { get { return m_exchange; } }
-    string IBasicGetOk.RoutingKey { get { return m_routingKey; } }
-    uint IBasicGetOk.MessageCount { get { return m_messageCount; } }
-
-    public BasicGetOk() {}
-    public BasicGetOk(
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      uint initMessageCount)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 71; } }
-    public override string ProtocolMethodName { get { return "basic.get-ok"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetEmpty: RabbitMQ.Client.Impl.MethodBase, IBasicGetEmpty {
-    public const int ClassId = 60;
-    public const int MethodId = 72;
-
-    public string m_clusterId;
-
-    string IBasicGetEmpty.ClusterId { get { return m_clusterId; } }
-
-    public BasicGetEmpty() {}
-    public BasicGetEmpty(
-      string initClusterId)
-    {
-      m_clusterId = initClusterId;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 72; } }
-    public override string ProtocolMethodName { get { return "basic.get-empty"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clusterId = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_clusterId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clusterId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicAck: RabbitMQ.Client.Impl.MethodBase, IBasicAck {
-    public const int ClassId = 60;
-    public const int MethodId = 80;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IBasicAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicAck.Multiple { get { return m_multiple; } }
-
-    public BasicAck() {}
-    public BasicAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "basic.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReject: RabbitMQ.Client.Impl.MethodBase, IBasicReject {
-    public const int ClassId = 60;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IBasicReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicReject.Requeue { get { return m_requeue; } }
-
-    public BasicReject() {}
-    public BasicReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "basic.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicRecover: RabbitMQ.Client.Impl.MethodBase, IBasicRecover {
-    public const int ClassId = 60;
-    public const int MethodId = 100;
-
-    public bool m_requeue;
-
-    bool IBasicRecover.Requeue { get { return m_requeue; } }
-
-    public BasicRecover() {}
-    public BasicRecover(
-      bool initRequeue)
-    {
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "basic.recover"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicRecoverOk: RabbitMQ.Client.Impl.MethodBase, IBasicRecoverOk {
-    public const int ClassId = 60;
-    public const int MethodId = 101;
-
-
-
-    public BasicRecoverOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 101; } }
-    public override string ProtocolMethodName { get { return "basic.recover-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQos: RabbitMQ.Client.Impl.MethodBase, IFileQos {
-    public const int ClassId = 70;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IFileQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IFileQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IFileQos.Global { get { return m_global; } }
-
-    public FileQos() {}
-    public FileQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "file.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQosOk: RabbitMQ.Client.Impl.MethodBase, IFileQosOk {
-    public const int ClassId = 70;
-    public const int MethodId = 11;
-
-
-
-    public FileQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "file.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsume: RabbitMQ.Client.Impl.MethodBase, IFileConsume {
-    public const int ClassId = 70;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-
-    ushort IFileConsume.Ticket { get { return m_ticket; } }
-    string IFileConsume.Queue { get { return m_queue; } }
-    string IFileConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileConsume.NoLocal { get { return m_noLocal; } }
-    bool IFileConsume.NoAck { get { return m_noAck; } }
-    bool IFileConsume.Exclusive { get { return m_exclusive; } }
-    bool IFileConsume.Nowait { get { return m_nowait; } }
-
-    public FileConsume() {}
-    public FileConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "file.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsumeOk: RabbitMQ.Client.Impl.MethodBase, IFileConsumeOk {
-    public const int ClassId = 70;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IFileConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileConsumeOk() {}
-    public FileConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "file.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancel: RabbitMQ.Client.Impl.MethodBase, IFileCancel {
-    public const int ClassId = 70;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IFileCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileCancel.Nowait { get { return m_nowait; } }
-
-    public FileCancel() {}
-    public FileCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "file.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancelOk: RabbitMQ.Client.Impl.MethodBase, IFileCancelOk {
-    public const int ClassId = 70;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IFileCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileCancelOk() {}
-    public FileCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "file.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpen: RabbitMQ.Client.Impl.MethodBase, IFileOpen {
-    public const int ClassId = 70;
-    public const int MethodId = 40;
-
-    public string m_identifier;
-    public ulong m_contentSize;
-
-    string IFileOpen.Identifier { get { return m_identifier; } }
-    ulong IFileOpen.ContentSize { get { return m_contentSize; } }
-
-    public FileOpen() {}
-    public FileOpen(
-      string initIdentifier,
-      ulong initContentSize)
-    {
-      m_identifier = initIdentifier;
-      m_contentSize = initContentSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "file.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_identifier = reader.ReadShortstr();
-      m_contentSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_identifier);
-      writer.WriteLonglong(m_contentSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_identifier); sb.Append(",");
-      sb.Append(m_contentSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpenOk: RabbitMQ.Client.Impl.MethodBase, IFileOpenOk {
-    public const int ClassId = 70;
-    public const int MethodId = 41;
-
-    public ulong m_stagedSize;
-
-    ulong IFileOpenOk.StagedSize { get { return m_stagedSize; } }
-
-    public FileOpenOk() {}
-    public FileOpenOk(
-      ulong initStagedSize)
-    {
-      m_stagedSize = initStagedSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "file.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_stagedSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_stagedSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_stagedSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileStage: RabbitMQ.Client.Impl.MethodBase, IFileStage {
-    public const int ClassId = 70;
-    public const int MethodId = 50;
-
-
-
-    public FileStage(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "file.stage"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FilePublish: RabbitMQ.Client.Impl.MethodBase, IFilePublish {
-    public const int ClassId = 70;
-    public const int MethodId = 60;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-    public string m_identifier;
-
-    ushort IFilePublish.Ticket { get { return m_ticket; } }
-    string IFilePublish.Exchange { get { return m_exchange; } }
-    string IFilePublish.RoutingKey { get { return m_routingKey; } }
-    bool IFilePublish.Mandatory { get { return m_mandatory; } }
-    bool IFilePublish.Immediate { get { return m_immediate; } }
-    string IFilePublish.Identifier { get { return m_identifier; } }
-
-    public FilePublish() {}
-    public FilePublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate,
-      string initIdentifier)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "file.publish"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReturn: RabbitMQ.Client.Impl.MethodBase, IFileReturn {
-    public const int ClassId = 70;
-    public const int MethodId = 70;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IFileReturn.ReplyCode { get { return m_replyCode; } }
-    string IFileReturn.ReplyText { get { return m_replyText; } }
-    string IFileReturn.Exchange { get { return m_exchange; } }
-    string IFileReturn.RoutingKey { get { return m_routingKey; } }
-
-    public FileReturn() {}
-    public FileReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "file.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileDeliver: RabbitMQ.Client.Impl.MethodBase, IFileDeliver {
-    public const int ClassId = 70;
-    public const int MethodId = 80;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public string m_identifier;
-
-    string IFileDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IFileDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileDeliver.Redelivered { get { return m_redelivered; } }
-    string IFileDeliver.Exchange { get { return m_exchange; } }
-    string IFileDeliver.RoutingKey { get { return m_routingKey; } }
-    string IFileDeliver.Identifier { get { return m_identifier; } }
-
-    public FileDeliver() {}
-    public FileDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      string initIdentifier)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "file.deliver"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileAck: RabbitMQ.Client.Impl.MethodBase, IFileAck {
-    public const int ClassId = 70;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IFileAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileAck.Multiple { get { return m_multiple; } }
-
-    public FileAck() {}
-    public FileAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "file.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReject: RabbitMQ.Client.Impl.MethodBase, IFileReject {
-    public const int ClassId = 70;
-    public const int MethodId = 100;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IFileReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileReject.Requeue { get { return m_requeue; } }
-
-    public FileReject() {}
-    public FileReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "file.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQos: RabbitMQ.Client.Impl.MethodBase, IStreamQos {
-    public const int ClassId = 80;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public uint m_consumeRate;
-    public bool m_global;
-
-    uint IStreamQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IStreamQos.PrefetchCount { get { return m_prefetchCount; } }
-    uint IStreamQos.ConsumeRate { get { return m_consumeRate; } }
-    bool IStreamQos.Global { get { return m_global; } }
-
-    public StreamQos() {}
-    public StreamQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      uint initConsumeRate,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_consumeRate = initConsumeRate;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "stream.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_consumeRate = reader.ReadLong();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteLong(m_consumeRate);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_consumeRate); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQosOk: RabbitMQ.Client.Impl.MethodBase, IStreamQosOk {
-    public const int ClassId = 80;
-    public const int MethodId = 11;
-
-
-
-    public StreamQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "stream.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsume: RabbitMQ.Client.Impl.MethodBase, IStreamConsume {
-    public const int ClassId = 80;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_exclusive;
-    public bool m_nowait;
-
-    ushort IStreamConsume.Ticket { get { return m_ticket; } }
-    string IStreamConsume.Queue { get { return m_queue; } }
-    string IStreamConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamConsume.NoLocal { get { return m_noLocal; } }
-    bool IStreamConsume.Exclusive { get { return m_exclusive; } }
-    bool IStreamConsume.Nowait { get { return m_nowait; } }
-
-    public StreamConsume() {}
-    public StreamConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initExclusive,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "stream.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsumeOk: RabbitMQ.Client.Impl.MethodBase, IStreamConsumeOk {
-    public const int ClassId = 80;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IStreamConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamConsumeOk() {}
-    public StreamConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "stream.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancel: RabbitMQ.Client.Impl.MethodBase, IStreamCancel {
-    public const int ClassId = 80;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IStreamCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamCancel.Nowait { get { return m_nowait; } }
-
-    public StreamCancel() {}
-    public StreamCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "stream.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancelOk: RabbitMQ.Client.Impl.MethodBase, IStreamCancelOk {
-    public const int ClassId = 80;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IStreamCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamCancelOk() {}
-    public StreamCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "stream.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamPublish: RabbitMQ.Client.Impl.MethodBase, IStreamPublish {
-    public const int ClassId = 80;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IStreamPublish.Ticket { get { return m_ticket; } }
-    string IStreamPublish.Exchange { get { return m_exchange; } }
-    string IStreamPublish.RoutingKey { get { return m_routingKey; } }
-    bool IStreamPublish.Mandatory { get { return m_mandatory; } }
-    bool IStreamPublish.Immediate { get { return m_immediate; } }
-
-    public StreamPublish() {}
-    public StreamPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "stream.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamReturn: RabbitMQ.Client.Impl.MethodBase, IStreamReturn {
-    public const int ClassId = 80;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IStreamReturn.ReplyCode { get { return m_replyCode; } }
-    string IStreamReturn.ReplyText { get { return m_replyText; } }
-    string IStreamReturn.Exchange { get { return m_exchange; } }
-    string IStreamReturn.RoutingKey { get { return m_routingKey; } }
-
-    public StreamReturn() {}
-    public StreamReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "stream.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamDeliver: RabbitMQ.Client.Impl.MethodBase, IStreamDeliver {
-    public const int ClassId = 80;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public string m_exchange;
-    public string m_queue;
-
-    string IStreamDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IStreamDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    string IStreamDeliver.Exchange { get { return m_exchange; } }
-    string IStreamDeliver.Queue { get { return m_queue; } }
-
-    public StreamDeliver() {}
-    public StreamDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      string initExchange,
-      string initQueue)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_exchange = initExchange;
-      m_queue = initQueue;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "stream.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_exchange = reader.ReadShortstr();
-      m_queue = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_queue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_queue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelect: RabbitMQ.Client.Impl.MethodBase, ITxSelect {
-    public const int ClassId = 90;
-    public const int MethodId = 10;
-
-
-
-    public TxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelectOk: RabbitMQ.Client.Impl.MethodBase, ITxSelectOk {
-    public const int ClassId = 90;
-    public const int MethodId = 11;
-
-
-
-    public TxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "tx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommit: RabbitMQ.Client.Impl.MethodBase, ITxCommit {
-    public const int ClassId = 90;
-    public const int MethodId = 20;
-
-
-
-    public TxCommit(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "tx.commit"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommitOk: RabbitMQ.Client.Impl.MethodBase, ITxCommitOk {
-    public const int ClassId = 90;
-    public const int MethodId = 21;
-
-
-
-    public TxCommitOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "tx.commit-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollback: RabbitMQ.Client.Impl.MethodBase, ITxRollback {
-    public const int ClassId = 90;
-    public const int MethodId = 30;
-
-
-
-    public TxRollback(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "tx.rollback"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollbackOk: RabbitMQ.Client.Impl.MethodBase, ITxRollbackOk {
-    public const int ClassId = 90;
-    public const int MethodId = 31;
-
-
-
-    public TxRollbackOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "tx.rollback-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelect: RabbitMQ.Client.Impl.MethodBase, IDtxSelect {
-    public const int ClassId = 100;
-    public const int MethodId = 10;
-
-
-
-    public DtxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "dtx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelectOk: RabbitMQ.Client.Impl.MethodBase, IDtxSelectOk {
-    public const int ClassId = 100;
-    public const int MethodId = 11;
-
-
-
-    public DtxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "dtx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStart: RabbitMQ.Client.Impl.MethodBase, IDtxStart {
-    public const int ClassId = 100;
-    public const int MethodId = 20;
-
-    public string m_dtxIdentifier;
-
-    string IDtxStart.DtxIdentifier { get { return m_dtxIdentifier; } }
-
-    public DtxStart() {}
-    public DtxStart(
-      string initDtxIdentifier)
-    {
-      m_dtxIdentifier = initDtxIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "dtx.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_dtxIdentifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_dtxIdentifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_dtxIdentifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStartOk: RabbitMQ.Client.Impl.MethodBase, IDtxStartOk {
-    public const int ClassId = 100;
-    public const int MethodId = 21;
-
-
-
-    public DtxStartOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "dtx.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TunnelRequest: RabbitMQ.Client.Impl.MethodBase, ITunnelRequest {
-    public const int ClassId = 110;
-    public const int MethodId = 10;
-
-    public System.Collections.IDictionary m_metaData;
-
-    System.Collections.IDictionary ITunnelRequest.MetaData { get { return m_metaData; } }
-
-    public TunnelRequest() {}
-    public TunnelRequest(
-      System.Collections.IDictionary initMetaData)
-    {
-      m_metaData = initMetaData;
-    }
-
-    public override int ProtocolClassId { get { return 110; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tunnel.request"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_metaData = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_metaData);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_metaData);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestInteger: RabbitMQ.Client.Impl.MethodBase, ITestInteger {
-    public const int ClassId = 120;
-    public const int MethodId = 10;
-
-    public byte m_integer1;
-    public ushort m_integer2;
-    public uint m_integer3;
-    public ulong m_integer4;
-    public byte m_operation;
-
-    byte ITestInteger.Integer1 { get { return m_integer1; } }
-    ushort ITestInteger.Integer2 { get { return m_integer2; } }
-    uint ITestInteger.Integer3 { get { return m_integer3; } }
-    ulong ITestInteger.Integer4 { get { return m_integer4; } }
-    byte ITestInteger.Operation { get { return m_operation; } }
-
-    public TestInteger() {}
-    public TestInteger(
-      byte initInteger1,
-      ushort initInteger2,
-      uint initInteger3,
-      ulong initInteger4,
-      byte initOperation)
-    {
-      m_integer1 = initInteger1;
-      m_integer2 = initInteger2;
-      m_integer3 = initInteger3;
-      m_integer4 = initInteger4;
-      m_operation = initOperation;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "test.integer"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_integer1 = reader.ReadOctet();
-      m_integer2 = reader.ReadShort();
-      m_integer3 = reader.ReadLong();
-      m_integer4 = reader.ReadLonglong();
-      m_operation = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteOctet(m_integer1);
-      writer.WriteShort(m_integer2);
-      writer.WriteLong(m_integer3);
-      writer.WriteLonglong(m_integer4);
-      writer.WriteOctet(m_operation);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_integer1); sb.Append(",");
-      sb.Append(m_integer2); sb.Append(",");
-      sb.Append(m_integer3); sb.Append(",");
-      sb.Append(m_integer4); sb.Append(",");
-      sb.Append(m_operation);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestIntegerOk: RabbitMQ.Client.Impl.MethodBase, ITestIntegerOk {
-    public const int ClassId = 120;
-    public const int MethodId = 11;
-
-    public ulong m_result;
-
-    ulong ITestIntegerOk.Result { get { return m_result; } }
-
-    public TestIntegerOk() {}
-    public TestIntegerOk(
-      ulong initResult)
-    {
-      m_result = initResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "test.integer-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_result = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_result);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_result);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestString: RabbitMQ.Client.Impl.MethodBase, ITestString {
-    public const int ClassId = 120;
-    public const int MethodId = 20;
-
-    public string m_string1;
-    public byte[] m_string2;
-    public byte m_operation;
-
-    string ITestString.String1 { get { return m_string1; } }
-    byte[] ITestString.String2 { get { return m_string2; } }
-    byte ITestString.Operation { get { return m_operation; } }
-
-    public TestString() {}
-    public TestString(
-      string initString1,
-      byte[] initString2,
-      byte initOperation)
-    {
-      m_string1 = initString1;
-      m_string2 = initString2;
-      m_operation = initOperation;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "test.string"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_string1 = reader.ReadShortstr();
-      m_string2 = reader.ReadLongstr();
-      m_operation = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_string1);
-      writer.WriteLongstr(m_string2);
-      writer.WriteOctet(m_operation);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_string1); sb.Append(",");
-      sb.Append(m_string2); sb.Append(",");
-      sb.Append(m_operation);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestStringOk: RabbitMQ.Client.Impl.MethodBase, ITestStringOk {
-    public const int ClassId = 120;
-    public const int MethodId = 21;
-
-    public byte[] m_result;
-
-    byte[] ITestStringOk.Result { get { return m_result; } }
-
-    public TestStringOk() {}
-    public TestStringOk(
-      byte[] initResult)
-    {
-      m_result = initResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "test.string-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_result = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_result);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_result);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestTable: RabbitMQ.Client.Impl.MethodBase, ITestTable {
-    public const int ClassId = 120;
-    public const int MethodId = 30;
-
-    public System.Collections.IDictionary m_table;
-    public byte m_integerOp;
-    public byte m_stringOp;
-
-    System.Collections.IDictionary ITestTable.Table { get { return m_table; } }
-    byte ITestTable.IntegerOp { get { return m_integerOp; } }
-    byte ITestTable.StringOp { get { return m_stringOp; } }
-
-    public TestTable() {}
-    public TestTable(
-      System.Collections.IDictionary initTable,
-      byte initIntegerOp,
-      byte initStringOp)
-    {
-      m_table = initTable;
-      m_integerOp = initIntegerOp;
-      m_stringOp = initStringOp;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "test.table"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_table = reader.ReadTable();
-      m_integerOp = reader.ReadOctet();
-      m_stringOp = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_table);
-      writer.WriteOctet(m_integerOp);
-      writer.WriteOctet(m_stringOp);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_table); sb.Append(",");
-      sb.Append(m_integerOp); sb.Append(",");
-      sb.Append(m_stringOp);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestTableOk: RabbitMQ.Client.Impl.MethodBase, ITestTableOk {
-    public const int ClassId = 120;
-    public const int MethodId = 31;
-
-    public ulong m_integerResult;
-    public byte[] m_stringResult;
-
-    ulong ITestTableOk.IntegerResult { get { return m_integerResult; } }
-    byte[] ITestTableOk.StringResult { get { return m_stringResult; } }
-
-    public TestTableOk() {}
-    public TestTableOk(
-      ulong initIntegerResult,
-      byte[] initStringResult)
-    {
-      m_integerResult = initIntegerResult;
-      m_stringResult = initStringResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "test.table-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_integerResult = reader.ReadLonglong();
-      m_stringResult = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_integerResult);
-      writer.WriteLongstr(m_stringResult);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_integerResult); sb.Append(",");
-      sb.Append(m_stringResult);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestContent: RabbitMQ.Client.Impl.MethodBase, ITestContent {
-    public const int ClassId = 120;
-    public const int MethodId = 40;
-
-
-
-    public TestContent(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "test.content"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestContentOk: RabbitMQ.Client.Impl.MethodBase, ITestContentOk {
-    public const int ClassId = 120;
-    public const int MethodId = 41;
-
-    public uint m_contentChecksum;
-
-    uint ITestContentOk.ContentChecksum { get { return m_contentChecksum; } }
-
-    public TestContentOk() {}
-    public TestContentOk(
-      uint initContentChecksum)
-    {
-      m_contentChecksum = initContentChecksum;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "test.content-ok"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_contentChecksum = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_contentChecksum);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_contentChecksum);
-      sb.Append(")");
-    }
-  }
-
-  public class Model: RabbitMQ.Client.Impl.ModelBase {
-    public Model(RabbitMQ.Client.Impl.ISession session): base(session) {}
-    public override void _Private_BasicPublish(
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @mandatory,
-      System.Boolean @immediate,
-      RabbitMQ.Client.IBasicProperties @basicProperties,
-      System.Byte[] @body)
-    {
-      BasicPublish __req = new BasicPublish();
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_mandatory = @mandatory;
-      __req.m_immediate = @immediate;
-      ModelSend(__req, (BasicProperties) basicProperties,body);
-    }
-    public override void _Private_BasicConsume(
-      System.String @queue,
-      System.String @consumerTag,
-      System.Boolean @noLocal,
-      System.Boolean @noAck,
-      System.Boolean @exclusive,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @filter)
-    {
-      BasicConsume __req = new BasicConsume();
-      __req.m_queue = @queue;
-      __req.m_consumerTag = @consumerTag;
-      __req.m_noLocal = @noLocal;
-      __req.m_noAck = @noAck;
-      __req.m_exclusive = @exclusive;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @filter;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicCancel(
-      System.String @consumerTag,
-      System.Boolean @nowait)
-    {
-      BasicCancel __req = new BasicCancel();
-      __req.m_consumerTag = @consumerTag;
-      __req.m_nowait = @nowait;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelOpen(
-      System.String @outOfBand)
-    {
-      ChannelOpen __req = new ChannelOpen();
-      __req.m_outOfBand = @outOfBand;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelOpenOk __rep = __repBase as ChannelOpenOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ChannelCloseOk()
-    {
-      ChannelCloseOk __req = new ChannelCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ChannelClose __req = new ChannelClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicGet(
-      System.String @queue,
-      System.Boolean @noAck)
-    {
-      BasicGet __req = new BasicGet();
-      __req.m_queue = @queue;
-      __req.m_noAck = @noAck;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelFlowOk()
-    {
-      ChannelFlowOk __req = new ChannelFlowOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.Impl.ConnectionTuneDetails ConnectionStartOk(
-      System.Collections.IDictionary @clientProperties,
-      System.String @mechanism,
-      System.Byte[] @response,
-      System.String @locale)
-    {
-      ConnectionStartOk __req = new ConnectionStartOk();
-      __req.m_clientProperties = @clientProperties;
-      __req.m_mechanism = @mechanism;
-      __req.m_response = @response;
-      __req.m_locale = @locale;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionTune __rep = __repBase as ConnectionTune;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      RabbitMQ.Client.Impl.ConnectionTuneDetails __result = new RabbitMQ.Client.Impl.ConnectionTuneDetails();
-      __result.m_channelMax = __rep.m_channelMax;
-      __result.m_frameMax = __rep.m_frameMax;
-      __result.m_heartbeat = __rep.m_heartbeat;
-      return __result;
-    }
-    public override void ConnectionTuneOk(
-      System.UInt16 @channelMax,
-      System.UInt32 @frameMax,
-      System.UInt16 @heartbeat)
-    {
-      ConnectionTuneOk __req = new ConnectionTuneOk();
-      __req.m_channelMax = @channelMax;
-      __req.m_frameMax = @frameMax;
-      __req.m_heartbeat = @heartbeat;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionOpen(
-      System.String @virtualHost,
-      System.String @capabilities,
-      System.Boolean @insist)
-    {
-      ConnectionOpen __req = new ConnectionOpen();
-      __req.m_virtualHost = @virtualHost;
-      __req.m_capabilities = @capabilities;
-      __req.m_insist = @insist;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ConnectionClose __req = new ConnectionClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionCloseOk __rep = __repBase as ConnectionCloseOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ConnectionCloseOk()
-    {
-      ConnectionCloseOk __req = new ConnectionCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.IBasicProperties CreateBasicProperties()
-    {
-      return new BasicProperties();
-    }
-    public override RabbitMQ.Client.IFileProperties CreateFileProperties()
-    {
-      return new FileProperties();
-    }
-    public override RabbitMQ.Client.IStreamProperties CreateStreamProperties()
-    {
-      return new StreamProperties();
-    }
-    public override void ChannelFlow(
-      System.Boolean @active)
-    {
-      ChannelFlow __req = new ChannelFlow();
-      __req.m_active = @active;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelFlowOk __rep = __repBase as ChannelFlowOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDeclare(
-      System.String @exchange,
-      System.String @type,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @autoDelete,
-      System.Boolean @internal,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      ExchangeDeclare __req = new ExchangeDeclare();
-      __req.m_exchange = @exchange;
-      __req.m_type = @type;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_internal = @internal;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeclareOk __rep = __repBase as ExchangeDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDelete(
-      System.String @exchange,
-      System.Boolean @ifUnused,
-      System.Boolean @nowait)
-    {
-      ExchangeDelete __req = new ExchangeDelete();
-      __req.m_exchange = @exchange;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeleteOk __rep = __repBase as ExchangeDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override System.String QueueDeclare(
-      System.String @queue,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @exclusive,
-      System.Boolean @autoDelete,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueDeclare __req = new QueueDeclare();
-      __req.m_queue = @queue;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_exclusive = @exclusive;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return null;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeclareOk __rep = __repBase as QueueDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_queue;
-    }
-    public override void QueueBind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueBind __req = new QueueBind();
-      __req.m_queue = @queue;
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueBindOk __rep = __repBase as QueueBindOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void QueueUnbind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Collections.IDictionary @arguments)
-    {
-      throw new UnsupportedMethodException("QueueUnbind");
-    }
-    public override System.UInt32 QueuePurge(
-      System.String @queue,
-      System.Boolean @nowait)
-    {
-      QueuePurge __req = new QueuePurge();
-      __req.m_queue = @queue;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueuePurgeOk __rep = __repBase as QueuePurgeOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override System.UInt32 QueueDelete(
-      System.String @queue,
-      System.Boolean @ifUnused,
-      System.Boolean @ifEmpty,
-      System.Boolean @nowait)
-    {
-      QueueDelete __req = new QueueDelete();
-      __req.m_queue = @queue;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_ifEmpty = @ifEmpty;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeleteOk __rep = __repBase as QueueDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override void BasicQos(
-      System.UInt32 @prefetchSize,
-      System.UInt16 @prefetchCount,
-      System.Boolean @global)
-    {
-      BasicQos __req = new BasicQos();
-      __req.m_prefetchSize = @prefetchSize;
-      __req.m_prefetchCount = @prefetchCount;
-      __req.m_global = @global;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      BasicQosOk __rep = __repBase as BasicQosOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void BasicAck(
-      System.UInt64 @deliveryTag,
-      System.Boolean @multiple)
-    {
-      BasicAck __req = new BasicAck();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_multiple = @multiple;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicReject(
-      System.UInt64 @deliveryTag,
-      System.Boolean @requeue)
-    {
-      BasicReject __req = new BasicReject();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_requeue = @requeue;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicRecover(
-      System.Boolean @requeue)
-    {
-      BasicRecover __req = new BasicRecover();
-      __req.m_requeue = @requeue;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      BasicRecoverOk __rep = __repBase as BasicRecoverOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxSelect()
-    {
-      TxSelect __req = new TxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxSelectOk __rep = __repBase as TxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxCommit()
-    {
-      TxCommit __req = new TxCommit();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxCommitOk __rep = __repBase as TxCommitOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxRollback()
-    {
-      TxRollback __req = new TxRollback();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxRollbackOk __rep = __repBase as TxRollbackOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxSelect()
-    {
-      DtxSelect __req = new DtxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxSelectOk __rep = __repBase as DtxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxStart(
-      System.String @dtxIdentifier)
-    {
-      DtxStart __req = new DtxStart();
-      __req.m_dtxIdentifier = @dtxIdentifier;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxStartOk __rep = __repBase as DtxStartOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override bool DispatchAsynchronous(RabbitMQ.Client.Impl.Command cmd) {
-      RabbitMQ.Client.Impl.MethodBase __method = (RabbitMQ.Client.Impl.MethodBase) cmd.Method;
-      switch ((__method.ProtocolClassId << 16) | __method.ProtocolMethodId) {
-        case 3932181: {
-          BasicConsumeOk __impl = (BasicConsumeOk) __method;
-          HandleBasicConsumeOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932191: {
-          BasicCancelOk __impl = (BasicCancelOk) __method;
-          HandleBasicCancelOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932231: {
-          BasicGetOk __impl = (BasicGetOk) __method;
-          HandleBasicGetOk(
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            __impl.m_messageCount,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932232: {
-          HandleBasicGetEmpty();
-          return true;
-        }
-        case 3932220: {
-          BasicDeliver __impl = (BasicDeliver) __method;
-          HandleBasicDeliver(
-            __impl.m_consumerTag,
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932210: {
-          BasicReturn __impl = (BasicReturn) __method;
-          HandleBasicReturn(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 1310740: {
-          ChannelFlow __impl = (ChannelFlow) __method;
-          HandleChannelFlow(
-            __impl.m_active);
-          return true;
-        }
-        case 1310760: {
-          ChannelClose __impl = (ChannelClose) __method;
-          HandleChannelClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        case 1310761: {
-          HandleChannelCloseOk();
-          return true;
-        }
-        case 655370: {
-          ConnectionStart __impl = (ConnectionStart) __method;
-          HandleConnectionStart(
-            __impl.m_versionMajor,
-            __impl.m_versionMinor,
-            __impl.m_serverProperties,
-            __impl.m_mechanisms,
-            __impl.m_locales);
-          return true;
-        }
-        case 655401: {
-          ConnectionOpenOk __impl = (ConnectionOpenOk) __method;
-          HandleConnectionOpenOk(
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655410: {
-          ConnectionRedirect __impl = (ConnectionRedirect) __method;
-          HandleConnectionRedirect(
-            __impl.m_host,
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655420: {
-          ConnectionClose __impl = (ConnectionClose) __method;
-          HandleConnectionClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        default: return false;
-      }
-    }
-  }
-}
diff --git a/mcs/class/RabbitMQ.Client/docs/specs/net_4_5-api-0-8.cs b/mcs/class/RabbitMQ.Client/docs/specs/net_4_5-api-0-8.cs
deleted file mode 100644 (file)
index 472ea42..0000000
+++ /dev/null
@@ -1,6431 +0,0 @@
-// Autogenerated code. Do not edit.
-
-// This source code is dual-licensed under the Apache License, version
-// 2.0, and the Mozilla Public License, version 1.1.
-//
-// The APL v2.0:
-//
-//---------------------------------------------------------------------------
-//   Copyright (C) 2007-2010 LShift Ltd., Cohesive Financial
-//   Technologies LLC., and Rabbit Technologies Ltd.
-//
-//   Licensed under the Apache License, Version 2.0 (the "License");
-//   you may not use this file except in compliance with the License.
-//   You may obtain a copy of the License at
-//
-//       http://www.apache.org/licenses/LICENSE-2.0
-//
-//   Unless required by applicable law or agreed to in writing, software
-//   distributed under the License is distributed on an "AS IS" BASIS,
-//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//   See the License for the specific language governing permissions and
-//   limitations under the License.
-//---------------------------------------------------------------------------
-//
-// The MPL v1.1:
-//
-//---------------------------------------------------------------------------
-//   The contents of this file are subject to the Mozilla Public License
-//   Version 1.1 (the "License"); you may not use this file except in
-//   compliance with the License. You may obtain a copy of the License at
-//   http://www.rabbitmq.com/mpl.html
-//
-//   Software distributed under the License is distributed on an "AS IS"
-//   basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//   License for the specific language governing rights and limitations
-//   under the License.
-//
-//   The Original Code is The RabbitMQ .NET Client.
-//
-//   The Initial Developers of the Original Code are LShift Ltd,
-//   Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
-//   Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
-//   are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
-//   Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created by LShift Ltd are Copyright (C) 2007-2010 LShift
-//   Ltd. Portions created by Cohesive Financial Technologies LLC are
-//   Copyright (C) 2007-2010 Cohesive Financial Technologies
-//   LLC. Portions created by Rabbit Technologies Ltd are Copyright
-//   (C) 2007-2010 Rabbit Technologies Ltd.
-//
-//   All Rights Reserved.
-//
-//   Contributor(s): ______________________________________.
-//
-//---------------------------------------------------------------------------
-
-using RabbitMQ.Client;
-using RabbitMQ.Client.Exceptions;
-
-namespace RabbitMQ.Client.Framing.v0_8 {
-  public class Protocol: RabbitMQ.Client.Framing.Impl.v0_8.ProtocolBase {
-    ///<summary>Protocol major version (= 8)</summary>
-    public override int MajorVersion { get { return 8; } }
-    ///<summary>Protocol minor version (= 0)</summary>
-    public override int MinorVersion { get { return 0; } }
-    ///<summary>Protocol API name (= AMQP_0_8)</summary>
-    public override string ApiName { get { return "AMQP_0_8"; } }
-    ///<summary>Default TCP port (= 5672)</summary>
-    public override int DefaultPort { get { return 5672; } }
-
-    public override RabbitMQ.Client.Impl.MethodBase DecodeMethodFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-      ushort methodId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 10: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionStart result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionStartOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionSecure result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionSecure();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionSecureOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionSecureOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionTune result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionTune();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionTuneOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionTuneOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionOpen result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionRedirect result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionRedirect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionClose result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 61: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ConnectionCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ConnectionCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 20: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelOpen result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelFlow result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelFlow();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelFlowOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelFlowOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelAlert result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelAlert();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelClose result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ChannelCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ChannelCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 30: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.AccessRequest result = new RabbitMQ.Client.Framing.Impl.v0_8.AccessRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.AccessRequestOk result = new RabbitMQ.Client.Framing.Impl.v0_8.AccessRequestOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 40: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeclare result = new RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDelete result = new RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_8.ExchangeDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 50: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueDeclare result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueBind result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueBind();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueBindOk result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueBindOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueUnbind result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueUnbind();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 51: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueUnbindOk result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueUnbindOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueuePurge result = new RabbitMQ.Client.Framing.Impl.v0_8.QueuePurge();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueuePurgeOk result = new RabbitMQ.Client.Framing.Impl.v0_8.QueuePurgeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueDelete result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8.QueueDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 60: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicQos result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicConsume result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicCancel result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicPublish result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicReturn result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicGet result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicGet();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 71: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicGetOk result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicGetOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 72: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicGetEmpty result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicGetEmpty();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicAck result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicReject result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_8.BasicRecover result = new RabbitMQ.Client.Framing.Impl.v0_8.BasicRecover();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 70: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileQos result = new RabbitMQ.Client.Framing.Impl.v0_8.FileQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8.FileQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileConsume result = new RabbitMQ.Client.Framing.Impl.v0_8.FileConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8.FileConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileCancel result = new RabbitMQ.Client.Framing.Impl.v0_8.FileCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8.FileCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileOpen result = new RabbitMQ.Client.Framing.Impl.v0_8.FileOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8.FileOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileStage result = new RabbitMQ.Client.Framing.Impl.v0_8.FileStage();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FilePublish result = new RabbitMQ.Client.Framing.Impl.v0_8.FilePublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileReturn result = new RabbitMQ.Client.Framing.Impl.v0_8.FileReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8.FileDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileAck result = new RabbitMQ.Client.Framing.Impl.v0_8.FileAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_8.FileReject result = new RabbitMQ.Client.Framing.Impl.v0_8.FileReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 80: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamQos result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamConsume result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamCancel result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamPublish result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamReturn result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8.StreamDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8.StreamDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 90: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxSelect result = new RabbitMQ.Client.Framing.Impl.v0_8.TxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxCommit result = new RabbitMQ.Client.Framing.Impl.v0_8.TxCommit();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxCommitOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TxCommitOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxRollback result = new RabbitMQ.Client.Framing.Impl.v0_8.TxRollback();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TxRollbackOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TxRollbackOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 100: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.DtxSelect result = new RabbitMQ.Client.Framing.Impl.v0_8.DtxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.DtxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_8.DtxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.DtxStart result = new RabbitMQ.Client.Framing.Impl.v0_8.DtxStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.DtxStartOk result = new RabbitMQ.Client.Framing.Impl.v0_8.DtxStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 110: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TunnelRequest result = new RabbitMQ.Client.Framing.Impl.v0_8.TunnelRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 120: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestInteger result = new RabbitMQ.Client.Framing.Impl.v0_8.TestInteger();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestIntegerOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TestIntegerOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestString result = new RabbitMQ.Client.Framing.Impl.v0_8.TestString();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestStringOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TestStringOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestTable result = new RabbitMQ.Client.Framing.Impl.v0_8.TestTable();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestTableOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TestTableOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestContent result = new RabbitMQ.Client.Framing.Impl.v0_8.TestContent();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8.TestContentOk result = new RabbitMQ.Client.Framing.Impl.v0_8.TestContentOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, methodId);
-    }
-
-    public override RabbitMQ.Client.Impl.ContentHeaderBase DecodeContentHeaderFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 60: return new BasicProperties();
-        case 70: return new FileProperties();
-        case 80: return new StreamProperties();
-        case 110: return new TunnelProperties();
-        case 120: return new TestProperties();
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, 0);
-    }
-  }
-  public class Constants {
-    ///<summary>(= 1)</summary>
-    public const int FrameMethod = 1;
-    ///<summary>(= 2)</summary>
-    public const int FrameHeader = 2;
-    ///<summary>(= 3)</summary>
-    public const int FrameBody = 3;
-    ///<summary>(= 4)</summary>
-    public const int FrameOobMethod = 4;
-    ///<summary>(= 5)</summary>
-    public const int FrameOobHeader = 5;
-    ///<summary>(= 6)</summary>
-    public const int FrameOobBody = 6;
-    ///<summary>(= 7)</summary>
-    public const int FrameTrace = 7;
-    ///<summary>(= 8)</summary>
-    public const int FrameHeartbeat = 8;
-    ///<summary>(= 4096)</summary>
-    public const int FrameMinSize = 4096;
-    ///<summary>(= 206)</summary>
-    public const int FrameEnd = 206;
-    ///<summary>(= 200)</summary>
-    public const int ReplySuccess = 200;
-    ///<summary>(= 310)</summary>
-    public const int NotDelivered = 310;
-    ///<summary>(= 311)</summary>
-    public const int ContentTooLarge = 311;
-    ///<summary>(= 320)</summary>
-    public const int ConnectionForced = 320;
-    ///<summary>(= 402)</summary>
-    public const int InvalidPath = 402;
-    ///<summary>(= 403)</summary>
-    public const int AccessRefused = 403;
-    ///<summary>(= 404)</summary>
-    public const int NotFound = 404;
-    ///<summary>(= 405)</summary>
-    public const int ResourceLocked = 405;
-    ///<summary>(= 501)</summary>
-    public const int FrameError = 501;
-    ///<summary>(= 502)</summary>
-    public const int SyntaxError = 502;
-    ///<summary>(= 503)</summary>
-    public const int CommandInvalid = 503;
-    ///<summary>(= 504)</summary>
-    public const int ChannelError = 504;
-    ///<summary>(= 506)</summary>
-    public const int ResourceError = 506;
-    ///<summary>(= 530)</summary>
-    public const int NotAllowed = 530;
-    ///<summary>(= 540)</summary>
-    public const int NotImplemented = 540;
-    ///<summary>(= 541)</summary>
-    public const int InternalError = 541;
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start".</summary>
-  public interface IConnectionStart: IMethod {
-    byte VersionMajor { get; }
-    byte VersionMinor { get; }
-    System.Collections.IDictionary ServerProperties { get; }
-    byte[] Mechanisms { get; }
-    byte[] Locales { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start-ok".</summary>
-  public interface IConnectionStartOk: IMethod {
-    System.Collections.IDictionary ClientProperties { get; }
-    string Mechanism { get; }
-    byte[] Response { get; }
-    string Locale { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure".</summary>
-  public interface IConnectionSecure: IMethod {
-    byte[] Challenge { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure-ok".</summary>
-  public interface IConnectionSecureOk: IMethod {
-    byte[] Response { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune".</summary>
-  public interface IConnectionTune: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune-ok".</summary>
-  public interface IConnectionTuneOk: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open".</summary>
-  public interface IConnectionOpen: IMethod {
-    string VirtualHost { get; }
-    string Capabilities { get; }
-    bool Insist { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open-ok".</summary>
-  public interface IConnectionOpenOk: IMethod {
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.redirect".</summary>
-  public interface IConnectionRedirect: IMethod {
-    string Host { get; }
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close".</summary>
-  public interface IConnectionClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close-ok".</summary>
-  public interface IConnectionCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open".</summary>
-  public interface IChannelOpen: IMethod {
-    string OutOfBand { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open-ok".</summary>
-  public interface IChannelOpenOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow".</summary>
-  public interface IChannelFlow: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow-ok".</summary>
-  public interface IChannelFlowOk: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.alert".</summary>
-  public interface IChannelAlert: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    System.Collections.IDictionary Details { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close".</summary>
-  public interface IChannelClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close-ok".</summary>
-  public interface IChannelCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request".</summary>
-  public interface IAccessRequest: IMethod {
-    string Realm { get; }
-    bool Exclusive { get; }
-    bool Passive { get; }
-    bool Active { get; }
-    bool Write { get; }
-    bool Read { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request-ok".</summary>
-  public interface IAccessRequestOk: IMethod {
-    ushort Ticket { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare".</summary>
-  public interface IExchangeDeclare: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string Type { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool AutoDelete { get; }
-    bool Internal { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare-ok".</summary>
-  public interface IExchangeDeclareOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete".</summary>
-  public interface IExchangeDelete: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    bool IfUnused { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete-ok".</summary>
-  public interface IExchangeDeleteOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare".</summary>
-  public interface IQueueDeclare: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool Exclusive { get; }
-    bool AutoDelete { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare-ok".</summary>
-  public interface IQueueDeclareOk: IMethod {
-    string Queue { get; }
-    uint MessageCount { get; }
-    uint ConsumerCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind".</summary>
-  public interface IQueueBind: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind-ok".</summary>
-  public interface IQueueBindOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.unbind".</summary>
-  public interface IQueueUnbind: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.unbind-ok".</summary>
-  public interface IQueueUnbindOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge".</summary>
-  public interface IQueuePurge: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge-ok".</summary>
-  public interface IQueuePurgeOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete".</summary>
-  public interface IQueueDelete: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool IfUnused { get; }
-    bool IfEmpty { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete-ok".</summary>
-  public interface IQueueDeleteOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos".</summary>
-  public interface IBasicQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos-ok".</summary>
-  public interface IBasicQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume".</summary>
-  public interface IBasicConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume-ok".</summary>
-  public interface IBasicConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel".</summary>
-  public interface IBasicCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel-ok".</summary>
-  public interface IBasicCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.publish".</summary>
-  public interface IBasicPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.return".</summary>
-  public interface IBasicReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.deliver".</summary>
-  public interface IBasicDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get".</summary>
-  public interface IBasicGet: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool NoAck { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-ok".</summary>
-  public interface IBasicGetOk: IMethod {
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-empty".</summary>
-  public interface IBasicGetEmpty: IMethod {
-    string ClusterId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.ack".</summary>
-  public interface IBasicAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.reject".</summary>
-  public interface IBasicReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.recover".</summary>
-  public interface IBasicRecover: IMethod {
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos".</summary>
-  public interface IFileQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos-ok".</summary>
-  public interface IFileQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume".</summary>
-  public interface IFileConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume-ok".</summary>
-  public interface IFileConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel".</summary>
-  public interface IFileCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel-ok".</summary>
-  public interface IFileCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open".</summary>
-  public interface IFileOpen: IMethod {
-    string Identifier { get; }
-    ulong ContentSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open-ok".</summary>
-  public interface IFileOpenOk: IMethod {
-    ulong StagedSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.stage".</summary>
-  public interface IFileStage: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.publish".</summary>
-  public interface IFilePublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.return".</summary>
-  public interface IFileReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.deliver".</summary>
-  public interface IFileDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.ack".</summary>
-  public interface IFileAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.reject".</summary>
-  public interface IFileReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos".</summary>
-  public interface IStreamQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    uint ConsumeRate { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos-ok".</summary>
-  public interface IStreamQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume".</summary>
-  public interface IStreamConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume-ok".</summary>
-  public interface IStreamConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel".</summary>
-  public interface IStreamCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel-ok".</summary>
-  public interface IStreamCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.publish".</summary>
-  public interface IStreamPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.return".</summary>
-  public interface IStreamReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.deliver".</summary>
-  public interface IStreamDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    string Exchange { get; }
-    string Queue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select".</summary>
-  public interface ITxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select-ok".</summary>
-  public interface ITxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit".</summary>
-  public interface ITxCommit: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit-ok".</summary>
-  public interface ITxCommitOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback".</summary>
-  public interface ITxRollback: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback-ok".</summary>
-  public interface ITxRollbackOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select".</summary>
-  public interface IDtxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select-ok".</summary>
-  public interface IDtxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start".</summary>
-  public interface IDtxStart: IMethod {
-    string DtxIdentifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start-ok".</summary>
-  public interface IDtxStartOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tunnel.request".</summary>
-  public interface ITunnelRequest: IMethod {
-    System.Collections.IDictionary MetaData { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.integer".</summary>
-  public interface ITestInteger: IMethod {
-    byte Integer1 { get; }
-    ushort Integer2 { get; }
-    uint Integer3 { get; }
-    ulong Integer4 { get; }
-    byte Operation { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.integer-ok".</summary>
-  public interface ITestIntegerOk: IMethod {
-    ulong Result { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.string".</summary>
-  public interface ITestString: IMethod {
-    string String1 { get; }
-    byte[] String2 { get; }
-    byte Operation { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.string-ok".</summary>
-  public interface ITestStringOk: IMethod {
-    byte[] Result { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.table".</summary>
-  public interface ITestTable: IMethod {
-    System.Collections.IDictionary Table { get; }
-    byte IntegerOp { get; }
-    byte StringOp { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.table-ok".</summary>
-  public interface ITestTableOk: IMethod {
-    ulong IntegerResult { get; }
-    byte[] StringResult { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.content".</summary>
-  public interface ITestContent: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.content-ok".</summary>
-  public interface ITestContentOk: IMethod {
-    uint ContentChecksum { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "basic"</summary>
-  public class BasicProperties: RabbitMQ.Client.Impl.BasicProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_deliveryMode;
-    private byte m_priority;
-    private string m_correlationId;
-    private string m_replyTo;
-    private string m_expiration;
-    private string m_messageId;
-    private AmqpTimestamp m_timestamp;
-    private string m_type;
-    private string m_userId;
-    private string m_appId;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_deliveryMode_present = false;
-    private bool m_priority_present = false;
-    private bool m_correlationId_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_expiration_present = false;
-    private bool m_messageId_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_type_present = false;
-    private bool m_userId_present = false;
-    private bool m_appId_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte DeliveryMode {
-      get {
-        return m_deliveryMode;
-      }
-      set {
-        m_deliveryMode_present = true;
-        m_deliveryMode = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string CorrelationId {
-      get {
-        return m_correlationId;
-      }
-      set {
-        m_correlationId_present = true;
-        m_correlationId = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string Expiration {
-      get {
-        return m_expiration;
-      }
-      set {
-        m_expiration_present = true;
-        m_expiration = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string Type {
-      get {
-        return m_type;
-      }
-      set {
-        m_type_present = true;
-        m_type = value;
-      }
-    }
-    public override string UserId {
-      get {
-        return m_userId;
-      }
-      set {
-        m_userId_present = true;
-        m_userId = value;
-      }
-    }
-    public override string AppId {
-      get {
-        return m_appId;
-      }
-      set {
-        m_appId_present = true;
-        m_appId = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearDeliveryMode() { m_deliveryMode_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearCorrelationId() { m_correlationId_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearExpiration() { m_expiration_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearType() { m_type_present = false; }
-    public override void ClearUserId() { m_userId_present = false; }
-    public override void ClearAppId() { m_appId_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsDeliveryModePresent() { return m_deliveryMode_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsCorrelationIdPresent() { return m_correlationId_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsExpirationPresent() { return m_expiration_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsTypePresent() { return m_type_present; }
-    public override bool IsUserIdPresent() { return m_userId_present; }
-    public override bool IsAppIdPresent() { return m_appId_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public BasicProperties() {}
-    public override int ProtocolClassId { get { return 60; } }
-    public override string ProtocolClassName { get { return "basic"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_deliveryMode_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_correlationId_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_expiration_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_type_present = reader.ReadPresence();
-      m_userId_present = reader.ReadPresence();
-      m_appId_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_deliveryMode_present) { m_deliveryMode = reader.ReadOctet(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_correlationId_present) { m_correlationId = reader.ReadShortstr(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_expiration_present) { m_expiration = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_type_present) { m_type = reader.ReadShortstr(); }
-      if (m_userId_present) { m_userId = reader.ReadShortstr(); }
-      if (m_appId_present) { m_appId = reader.ReadShortstr(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_deliveryMode_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_correlationId_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_expiration_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_type_present);
-      writer.WritePresence(m_userId_present);
-      writer.WritePresence(m_appId_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_deliveryMode_present) { writer.WriteOctet(m_deliveryMode); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_correlationId_present) { writer.WriteShortstr(m_correlationId); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_expiration_present) { writer.WriteShortstr(m_expiration); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_type_present) { writer.WriteShortstr(m_type); }
-      if (m_userId_present) { writer.WriteShortstr(m_userId); }
-      if (m_appId_present) { writer.WriteShortstr(m_appId); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("delivery mode="); sb.Append(m_deliveryMode_present ? m_deliveryMode.ToString() : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("correlation id="); sb.Append(m_correlationId_present ? (m_correlationId == null ? "(null)" : m_correlationId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("reply to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("expiration="); sb.Append(m_expiration_present ? (m_expiration == null ? "(null)" : m_expiration.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("type="); sb.Append(m_type_present ? (m_type == null ? "(null)" : m_type.ToString()) : "_"); sb.Append(", ");
-      sb.Append("user id="); sb.Append(m_userId_present ? (m_userId == null ? "(null)" : m_userId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("app id="); sb.Append(m_appId_present ? (m_appId == null ? "(null)" : m_appId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("cluster id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "file"</summary>
-  public class FileProperties: RabbitMQ.Client.Impl.FileProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private string m_replyTo;
-    private string m_messageId;
-    private string m_filename;
-    private AmqpTimestamp m_timestamp;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_messageId_present = false;
-    private bool m_filename_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override string Filename {
-      get {
-        return m_filename;
-      }
-      set {
-        m_filename_present = true;
-        m_filename = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearFilename() { m_filename_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsFilenamePresent() { return m_filename_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public FileProperties() {}
-    public override int ProtocolClassId { get { return 70; } }
-    public override string ProtocolClassName { get { return "file"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_filename_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_filename_present) { m_filename = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_filename_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_filename_present) { writer.WriteShortstr(m_filename); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("reply to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("filename="); sb.Append(m_filename_present ? (m_filename == null ? "(null)" : m_filename.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("cluster id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "stream"</summary>
-  public class StreamProperties: RabbitMQ.Client.Impl.StreamProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private AmqpTimestamp m_timestamp;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_timestamp_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-
-    public StreamProperties() {}
-    public override int ProtocolClassId { get { return 80; } }
-    public override string ProtocolClassName { get { return "stream"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "tunnel"</summary>
-  public class TunnelProperties: RabbitMQ.Client.Impl.ContentHeaderBase {
-    private System.Collections.IDictionary m_headers;
-    private string m_proxyName;
-    private string m_dataName;
-    private byte m_durable;
-    private byte m_broadcast;
-
-    private bool m_headers_present = false;
-    private bool m_proxyName_present = false;
-    private bool m_dataName_present = false;
-    private bool m_durable_present = false;
-    private bool m_broadcast_present = false;
-
-    public System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public string ProxyName {
-      get {
-        return m_proxyName;
-      }
-      set {
-        m_proxyName_present = true;
-        m_proxyName = value;
-      }
-    }
-    public string DataName {
-      get {
-        return m_dataName;
-      }
-      set {
-        m_dataName_present = true;
-        m_dataName = value;
-      }
-    }
-    public byte Durable {
-      get {
-        return m_durable;
-      }
-      set {
-        m_durable_present = true;
-        m_durable = value;
-      }
-    }
-    public byte Broadcast {
-      get {
-        return m_broadcast;
-      }
-      set {
-        m_broadcast_present = true;
-        m_broadcast = value;
-      }
-    }
-
-    public void ClearHeaders() { m_headers_present = false; }
-    public void ClearProxyName() { m_proxyName_present = false; }
-    public void ClearDataName() { m_dataName_present = false; }
-    public void ClearDurable() { m_durable_present = false; }
-    public void ClearBroadcast() { m_broadcast_present = false; }
-
-    public bool IsHeadersPresent() { return m_headers_present; }
-    public bool IsProxyNamePresent() { return m_proxyName_present; }
-    public bool IsDataNamePresent() { return m_dataName_present; }
-    public bool IsDurablePresent() { return m_durable_present; }
-    public bool IsBroadcastPresent() { return m_broadcast_present; }
-
-    public TunnelProperties() {}
-    public override int ProtocolClassId { get { return 110; } }
-    public override string ProtocolClassName { get { return "tunnel"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_headers_present = reader.ReadPresence();
-      m_proxyName_present = reader.ReadPresence();
-      m_dataName_present = reader.ReadPresence();
-      m_durable_present = reader.ReadPresence();
-      m_broadcast_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_proxyName_present) { m_proxyName = reader.ReadShortstr(); }
-      if (m_dataName_present) { m_dataName = reader.ReadShortstr(); }
-      if (m_durable_present) { m_durable = reader.ReadOctet(); }
-      if (m_broadcast_present) { m_broadcast = reader.ReadOctet(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_proxyName_present);
-      writer.WritePresence(m_dataName_present);
-      writer.WritePresence(m_durable_present);
-      writer.WritePresence(m_broadcast_present);
-      writer.FinishPresence();
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_proxyName_present) { writer.WriteShortstr(m_proxyName); }
-      if (m_dataName_present) { writer.WriteShortstr(m_dataName); }
-      if (m_durable_present) { writer.WriteOctet(m_durable); }
-      if (m_broadcast_present) { writer.WriteOctet(m_broadcast); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("proxy name="); sb.Append(m_proxyName_present ? (m_proxyName == null ? "(null)" : m_proxyName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("data name="); sb.Append(m_dataName_present ? (m_dataName == null ? "(null)" : m_dataName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("durable="); sb.Append(m_durable_present ? m_durable.ToString() : "_"); sb.Append(", ");
-      sb.Append("broadcast="); sb.Append(m_broadcast_present ? m_broadcast.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "test"</summary>
-  public class TestProperties: RabbitMQ.Client.Impl.ContentHeaderBase {
-
-
-
-
-
-    public TestProperties() {}
-    public override int ProtocolClassId { get { return 120; } }
-    public override string ProtocolClassName { get { return "test"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      reader.FinishPresence();
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.FinishPresence();
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-}
-namespace RabbitMQ.Client.Framing.Impl.v0_8 {
-  using RabbitMQ.Client.Framing.v0_8;
-  public enum ClassId {
-    Connection = 10,
-    Channel = 20,
-    Access = 30,
-    Exchange = 40,
-    Queue = 50,
-    Basic = 60,
-    File = 70,
-    Stream = 80,
-    Tx = 90,
-    Dtx = 100,
-    Tunnel = 110,
-    Test = 120,
-    Invalid = -1
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStart: RabbitMQ.Client.Impl.MethodBase, IConnectionStart {
-    public const int ClassId = 10;
-    public const int MethodId = 10;
-
-    public byte m_versionMajor;
-    public byte m_versionMinor;
-    public System.Collections.IDictionary m_serverProperties;
-    public byte[] m_mechanisms;
-    public byte[] m_locales;
-
-    byte IConnectionStart.VersionMajor { get { return m_versionMajor; } }
-    byte IConnectionStart.VersionMinor { get { return m_versionMinor; } }
-    System.Collections.IDictionary IConnectionStart.ServerProperties { get { return m_serverProperties; } }
-    byte[] IConnectionStart.Mechanisms { get { return m_mechanisms; } }
-    byte[] IConnectionStart.Locales { get { return m_locales; } }
-
-    public ConnectionStart() {}
-    public ConnectionStart(
-      byte initVersionMajor,
-      byte initVersionMinor,
-      System.Collections.IDictionary initServerProperties,
-      byte[] initMechanisms,
-      byte[] initLocales)
-    {
-      m_versionMajor = initVersionMajor;
-      m_versionMinor = initVersionMinor;
-      m_serverProperties = initServerProperties;
-      m_mechanisms = initMechanisms;
-      m_locales = initLocales;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "connection.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_versionMajor = reader.ReadOctet();
-      m_versionMinor = reader.ReadOctet();
-      m_serverProperties = reader.ReadTable();
-      m_mechanisms = reader.ReadLongstr();
-      m_locales = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteOctet(m_versionMajor);
-      writer.WriteOctet(m_versionMinor);
-      writer.WriteTable(m_serverProperties);
-      writer.WriteLongstr(m_mechanisms);
-      writer.WriteLongstr(m_locales);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_versionMajor); sb.Append(",");
-      sb.Append(m_versionMinor); sb.Append(",");
-      sb.Append(m_serverProperties); sb.Append(",");
-      sb.Append(m_mechanisms); sb.Append(",");
-      sb.Append(m_locales);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStartOk: RabbitMQ.Client.Impl.MethodBase, IConnectionStartOk {
-    public const int ClassId = 10;
-    public const int MethodId = 11;
-
-    public System.Collections.IDictionary m_clientProperties;
-    public string m_mechanism;
-    public byte[] m_response;
-    public string m_locale;
-
-    System.Collections.IDictionary IConnectionStartOk.ClientProperties { get { return m_clientProperties; } }
-    string IConnectionStartOk.Mechanism { get { return m_mechanism; } }
-    byte[] IConnectionStartOk.Response { get { return m_response; } }
-    string IConnectionStartOk.Locale { get { return m_locale; } }
-
-    public ConnectionStartOk() {}
-    public ConnectionStartOk(
-      System.Collections.IDictionary initClientProperties,
-      string initMechanism,
-      byte[] initResponse,
-      string initLocale)
-    {
-      m_clientProperties = initClientProperties;
-      m_mechanism = initMechanism;
-      m_response = initResponse;
-      m_locale = initLocale;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "connection.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clientProperties = reader.ReadTable();
-      m_mechanism = reader.ReadShortstr();
-      m_response = reader.ReadLongstr();
-      m_locale = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_clientProperties);
-      writer.WriteShortstr(m_mechanism);
-      writer.WriteLongstr(m_response);
-      writer.WriteShortstr(m_locale);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clientProperties); sb.Append(",");
-      sb.Append(m_mechanism); sb.Append(",");
-      sb.Append(m_response); sb.Append(",");
-      sb.Append(m_locale);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecure: RabbitMQ.Client.Impl.MethodBase, IConnectionSecure {
-    public const int ClassId = 10;
-    public const int MethodId = 20;
-
-    public byte[] m_challenge;
-
-    byte[] IConnectionSecure.Challenge { get { return m_challenge; } }
-
-    public ConnectionSecure() {}
-    public ConnectionSecure(
-      byte[] initChallenge)
-    {
-      m_challenge = initChallenge;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "connection.secure"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_challenge = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_challenge);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_challenge);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecureOk: RabbitMQ.Client.Impl.MethodBase, IConnectionSecureOk {
-    public const int ClassId = 10;
-    public const int MethodId = 21;
-
-    public byte[] m_response;
-
-    byte[] IConnectionSecureOk.Response { get { return m_response; } }
-
-    public ConnectionSecureOk() {}
-    public ConnectionSecureOk(
-      byte[] initResponse)
-    {
-      m_response = initResponse;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "connection.secure-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_response = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_response);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_response);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTune: RabbitMQ.Client.Impl.MethodBase, IConnectionTune {
-    public const int ClassId = 10;
-    public const int MethodId = 30;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTune.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTune.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTune.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTune() {}
-    public ConnectionTune(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "connection.tune"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTuneOk: RabbitMQ.Client.Impl.MethodBase, IConnectionTuneOk {
-    public const int ClassId = 10;
-    public const int MethodId = 31;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTuneOk.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTuneOk.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTuneOk.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTuneOk() {}
-    public ConnectionTuneOk(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "connection.tune-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpen: RabbitMQ.Client.Impl.MethodBase, IConnectionOpen {
-    public const int ClassId = 10;
-    public const int MethodId = 40;
-
-    public string m_virtualHost;
-    public string m_capabilities;
-    public bool m_insist;
-
-    string IConnectionOpen.VirtualHost { get { return m_virtualHost; } }
-    string IConnectionOpen.Capabilities { get { return m_capabilities; } }
-    bool IConnectionOpen.Insist { get { return m_insist; } }
-
-    public ConnectionOpen() {}
-    public ConnectionOpen(
-      string initVirtualHost,
-      string initCapabilities,
-      bool initInsist)
-    {
-      m_virtualHost = initVirtualHost;
-      m_capabilities = initCapabilities;
-      m_insist = initInsist;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "connection.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_virtualHost = reader.ReadShortstr();
-      m_capabilities = reader.ReadShortstr();
-      m_insist = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_virtualHost);
-      writer.WriteShortstr(m_capabilities);
-      writer.WriteBit(m_insist);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_virtualHost); sb.Append(",");
-      sb.Append(m_capabilities); sb.Append(",");
-      sb.Append(m_insist);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpenOk: RabbitMQ.Client.Impl.MethodBase, IConnectionOpenOk {
-    public const int ClassId = 10;
-    public const int MethodId = 41;
-
-    public string m_knownHosts;
-
-    string IConnectionOpenOk.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionOpenOk() {}
-    public ConnectionOpenOk(
-      string initKnownHosts)
-    {
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "connection.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionRedirect: RabbitMQ.Client.Impl.MethodBase, IConnectionRedirect {
-    public const int ClassId = 10;
-    public const int MethodId = 50;
-
-    public string m_host;
-    public string m_knownHosts;
-
-    string IConnectionRedirect.Host { get { return m_host; } }
-    string IConnectionRedirect.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionRedirect() {}
-    public ConnectionRedirect(
-      string initHost,
-      string initKnownHosts)
-    {
-      m_host = initHost;
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "connection.redirect"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_host = reader.ReadShortstr();
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_host);
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_host); sb.Append(",");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionClose: RabbitMQ.Client.Impl.MethodBase, IConnectionClose {
-    public const int ClassId = 10;
-    public const int MethodId = 60;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IConnectionClose.ReplyCode { get { return m_replyCode; } }
-    string IConnectionClose.ReplyText { get { return m_replyText; } }
-    ushort IConnectionClose.ClassId { get { return m_classId; } }
-    ushort IConnectionClose.MethodId { get { return m_methodId; } }
-
-    public ConnectionClose() {}
-    public ConnectionClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "connection.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionCloseOk: RabbitMQ.Client.Impl.MethodBase, IConnectionCloseOk {
-    public const int ClassId = 10;
-    public const int MethodId = 61;
-
-
-
-    public ConnectionCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 61; } }
-    public override string ProtocolMethodName { get { return "connection.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpen: RabbitMQ.Client.Impl.MethodBase, IChannelOpen {
-    public const int ClassId = 20;
-    public const int MethodId = 10;
-
-    public string m_outOfBand;
-
-    string IChannelOpen.OutOfBand { get { return m_outOfBand; } }
-
-    public ChannelOpen() {}
-    public ChannelOpen(
-      string initOutOfBand)
-    {
-      m_outOfBand = initOutOfBand;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "channel.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_outOfBand = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_outOfBand);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_outOfBand);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpenOk: RabbitMQ.Client.Impl.MethodBase, IChannelOpenOk {
-    public const int ClassId = 20;
-    public const int MethodId = 11;
-
-
-
-    public ChannelOpenOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "channel.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlow: RabbitMQ.Client.Impl.MethodBase, IChannelFlow {
-    public const int ClassId = 20;
-    public const int MethodId = 20;
-
-    public bool m_active;
-
-    bool IChannelFlow.Active { get { return m_active; } }
-
-    public ChannelFlow() {}
-    public ChannelFlow(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "channel.flow"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlowOk: RabbitMQ.Client.Impl.MethodBase, IChannelFlowOk {
-    public const int ClassId = 20;
-    public const int MethodId = 21;
-
-    public bool m_active;
-
-    bool IChannelFlowOk.Active { get { return m_active; } }
-
-    public ChannelFlowOk() {}
-    public ChannelFlowOk(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "channel.flow-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelAlert: RabbitMQ.Client.Impl.MethodBase, IChannelAlert {
-    public const int ClassId = 20;
-    public const int MethodId = 30;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public System.Collections.IDictionary m_details;
-
-    ushort IChannelAlert.ReplyCode { get { return m_replyCode; } }
-    string IChannelAlert.ReplyText { get { return m_replyText; } }
-    System.Collections.IDictionary IChannelAlert.Details { get { return m_details; } }
-
-    public ChannelAlert() {}
-    public ChannelAlert(
-      ushort initReplyCode,
-      string initReplyText,
-      System.Collections.IDictionary initDetails)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_details = initDetails;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "channel.alert"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_details = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteTable(m_details);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_details);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelClose: RabbitMQ.Client.Impl.MethodBase, IChannelClose {
-    public const int ClassId = 20;
-    public const int MethodId = 40;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IChannelClose.ReplyCode { get { return m_replyCode; } }
-    string IChannelClose.ReplyText { get { return m_replyText; } }
-    ushort IChannelClose.ClassId { get { return m_classId; } }
-    ushort IChannelClose.MethodId { get { return m_methodId; } }
-
-    public ChannelClose() {}
-    public ChannelClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "channel.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelCloseOk: RabbitMQ.Client.Impl.MethodBase, IChannelCloseOk {
-    public const int ClassId = 20;
-    public const int MethodId = 41;
-
-
-
-    public ChannelCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "channel.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequest: RabbitMQ.Client.Impl.MethodBase, IAccessRequest {
-    public const int ClassId = 30;
-    public const int MethodId = 10;
-
-    public string m_realm;
-    public bool m_exclusive;
-    public bool m_passive;
-    public bool m_active;
-    public bool m_write;
-    public bool m_read;
-
-    string IAccessRequest.Realm { get { return m_realm; } }
-    bool IAccessRequest.Exclusive { get { return m_exclusive; } }
-    bool IAccessRequest.Passive { get { return m_passive; } }
-    bool IAccessRequest.Active { get { return m_active; } }
-    bool IAccessRequest.Write { get { return m_write; } }
-    bool IAccessRequest.Read { get { return m_read; } }
-
-    public AccessRequest() {}
-    public AccessRequest(
-      string initRealm,
-      bool initExclusive,
-      bool initPassive,
-      bool initActive,
-      bool initWrite,
-      bool initRead)
-    {
-      m_realm = initRealm;
-      m_exclusive = initExclusive;
-      m_passive = initPassive;
-      m_active = initActive;
-      m_write = initWrite;
-      m_read = initRead;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "access.request"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_realm = reader.ReadShortstr();
-      m_exclusive = reader.ReadBit();
-      m_passive = reader.ReadBit();
-      m_active = reader.ReadBit();
-      m_write = reader.ReadBit();
-      m_read = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_realm);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_active);
-      writer.WriteBit(m_write);
-      writer.WriteBit(m_read);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_realm); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_active); sb.Append(",");
-      sb.Append(m_write); sb.Append(",");
-      sb.Append(m_read);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequestOk: RabbitMQ.Client.Impl.MethodBase, IAccessRequestOk {
-    public const int ClassId = 30;
-    public const int MethodId = 11;
-
-    public ushort m_ticket;
-
-    ushort IAccessRequestOk.Ticket { get { return m_ticket; } }
-
-    public AccessRequestOk() {}
-    public AccessRequestOk(
-      ushort initTicket)
-    {
-      m_ticket = initTicket;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "access.request-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclare: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclare {
-    public const int ClassId = 40;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_type;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_autoDelete;
-    public bool m_internal;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IExchangeDeclare.Ticket { get { return m_ticket; } }
-    string IExchangeDeclare.Exchange { get { return m_exchange; } }
-    string IExchangeDeclare.Type { get { return m_type; } }
-    bool IExchangeDeclare.Passive { get { return m_passive; } }
-    bool IExchangeDeclare.Durable { get { return m_durable; } }
-    bool IExchangeDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IExchangeDeclare.Internal { get { return m_internal; } }
-    bool IExchangeDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IExchangeDeclare.Arguments { get { return m_arguments; } }
-
-    public ExchangeDeclare() {}
-    public ExchangeDeclare(
-      ushort initTicket,
-      string initExchange,
-      string initType,
-      bool initPassive,
-      bool initDurable,
-      bool initAutoDelete,
-      bool initInternal,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_type = initType;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_autoDelete = initAutoDelete;
-      m_internal = initInternal;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "exchange.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_type = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_internal = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_type);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_internal);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_type); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_internal); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclareOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclareOk {
-    public const int ClassId = 40;
-    public const int MethodId = 11;
-
-
-
-    public ExchangeDeclareOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "exchange.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDelete: RabbitMQ.Client.Impl.MethodBase, IExchangeDelete {
-    public const int ClassId = 40;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public bool m_ifUnused;
-    public bool m_nowait;
-
-    ushort IExchangeDelete.Ticket { get { return m_ticket; } }
-    string IExchangeDelete.Exchange { get { return m_exchange; } }
-    bool IExchangeDelete.IfUnused { get { return m_ifUnused; } }
-    bool IExchangeDelete.Nowait { get { return m_nowait; } }
-
-    public ExchangeDelete() {}
-    public ExchangeDelete(
-      ushort initTicket,
-      string initExchange,
-      bool initIfUnused,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_ifUnused = initIfUnused;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "exchange.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeleteOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeleteOk {
-    public const int ClassId = 40;
-    public const int MethodId = 21;
-
-
-
-    public ExchangeDeleteOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "exchange.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclare: RabbitMQ.Client.Impl.MethodBase, IQueueDeclare {
-    public const int ClassId = 50;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_exclusive;
-    public bool m_autoDelete;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueDeclare.Ticket { get { return m_ticket; } }
-    string IQueueDeclare.Queue { get { return m_queue; } }
-    bool IQueueDeclare.Passive { get { return m_passive; } }
-    bool IQueueDeclare.Durable { get { return m_durable; } }
-    bool IQueueDeclare.Exclusive { get { return m_exclusive; } }
-    bool IQueueDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IQueueDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueDeclare.Arguments { get { return m_arguments; } }
-
-    public QueueDeclare() {}
-    public QueueDeclare(
-      ushort initTicket,
-      string initQueue,
-      bool initPassive,
-      bool initDurable,
-      bool initExclusive,
-      bool initAutoDelete,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_exclusive = initExclusive;
-      m_autoDelete = initAutoDelete;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "queue.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclareOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeclareOk {
-    public const int ClassId = 50;
-    public const int MethodId = 11;
-
-    public string m_queue;
-    public uint m_messageCount;
-    public uint m_consumerCount;
-
-    string IQueueDeclareOk.Queue { get { return m_queue; } }
-    uint IQueueDeclareOk.MessageCount { get { return m_messageCount; } }
-    uint IQueueDeclareOk.ConsumerCount { get { return m_consumerCount; } }
-
-    public QueueDeclareOk() {}
-    public QueueDeclareOk(
-      string initQueue,
-      uint initMessageCount,
-      uint initConsumerCount)
-    {
-      m_queue = initQueue;
-      m_messageCount = initMessageCount;
-      m_consumerCount = initConsumerCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "queue.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_queue = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-      m_consumerCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_queue);
-      writer.WriteLong(m_messageCount);
-      writer.WriteLong(m_consumerCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_messageCount); sb.Append(",");
-      sb.Append(m_consumerCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBind: RabbitMQ.Client.Impl.MethodBase, IQueueBind {
-    public const int ClassId = 50;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueBind.Ticket { get { return m_ticket; } }
-    string IQueueBind.Queue { get { return m_queue; } }
-    string IQueueBind.Exchange { get { return m_exchange; } }
-    string IQueueBind.RoutingKey { get { return m_routingKey; } }
-    bool IQueueBind.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueBind.Arguments { get { return m_arguments; } }
-
-    public QueueBind() {}
-    public QueueBind(
-      ushort initTicket,
-      string initQueue,
-      string initExchange,
-      string initRoutingKey,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "queue.bind"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBindOk: RabbitMQ.Client.Impl.MethodBase, IQueueBindOk {
-    public const int ClassId = 50;
-    public const int MethodId = 21;
-
-
-
-    public QueueBindOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "queue.bind-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueUnbind: RabbitMQ.Client.Impl.MethodBase, IQueueUnbind {
-    public const int ClassId = 50;
-    public const int MethodId = 50;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_exchange;
-    public string m_routingKey;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueUnbind.Ticket { get { return m_ticket; } }
-    string IQueueUnbind.Queue { get { return m_queue; } }
-    string IQueueUnbind.Exchange { get { return m_exchange; } }
-    string IQueueUnbind.RoutingKey { get { return m_routingKey; } }
-    System.Collections.IDictionary IQueueUnbind.Arguments { get { return m_arguments; } }
-
-    public QueueUnbind() {}
-    public QueueUnbind(
-      ushort initTicket,
-      string initQueue,
-      string initExchange,
-      string initRoutingKey,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "queue.unbind"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueUnbindOk: RabbitMQ.Client.Impl.MethodBase, IQueueUnbindOk {
-    public const int ClassId = 50;
-    public const int MethodId = 51;
-
-
-
-    public QueueUnbindOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 51; } }
-    public override string ProtocolMethodName { get { return "queue.unbind-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurge: RabbitMQ.Client.Impl.MethodBase, IQueuePurge {
-    public const int ClassId = 50;
-    public const int MethodId = 30;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_nowait;
-
-    ushort IQueuePurge.Ticket { get { return m_ticket; } }
-    string IQueuePurge.Queue { get { return m_queue; } }
-    bool IQueuePurge.Nowait { get { return m_nowait; } }
-
-    public QueuePurge() {}
-    public QueuePurge(
-      ushort initTicket,
-      string initQueue,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "queue.purge"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurgeOk: RabbitMQ.Client.Impl.MethodBase, IQueuePurgeOk {
-    public const int ClassId = 50;
-    public const int MethodId = 31;
-
-    public uint m_messageCount;
-
-    uint IQueuePurgeOk.MessageCount { get { return m_messageCount; } }
-
-    public QueuePurgeOk() {}
-    public QueuePurgeOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "queue.purge-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDelete: RabbitMQ.Client.Impl.MethodBase, IQueueDelete {
-    public const int ClassId = 50;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_ifUnused;
-    public bool m_ifEmpty;
-    public bool m_nowait;
-
-    ushort IQueueDelete.Ticket { get { return m_ticket; } }
-    string IQueueDelete.Queue { get { return m_queue; } }
-    bool IQueueDelete.IfUnused { get { return m_ifUnused; } }
-    bool IQueueDelete.IfEmpty { get { return m_ifEmpty; } }
-    bool IQueueDelete.Nowait { get { return m_nowait; } }
-
-    public QueueDelete() {}
-    public QueueDelete(
-      ushort initTicket,
-      string initQueue,
-      bool initIfUnused,
-      bool initIfEmpty,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_ifUnused = initIfUnused;
-      m_ifEmpty = initIfEmpty;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "queue.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_ifEmpty = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_ifEmpty);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_ifEmpty); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeleteOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeleteOk {
-    public const int ClassId = 50;
-    public const int MethodId = 41;
-
-    public uint m_messageCount;
-
-    uint IQueueDeleteOk.MessageCount { get { return m_messageCount; } }
-
-    public QueueDeleteOk() {}
-    public QueueDeleteOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "queue.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQos: RabbitMQ.Client.Impl.MethodBase, IBasicQos {
-    public const int ClassId = 60;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IBasicQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IBasicQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IBasicQos.Global { get { return m_global; } }
-
-    public BasicQos() {}
-    public BasicQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "basic.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQosOk: RabbitMQ.Client.Impl.MethodBase, IBasicQosOk {
-    public const int ClassId = 60;
-    public const int MethodId = 11;
-
-
-
-    public BasicQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "basic.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsume: RabbitMQ.Client.Impl.MethodBase, IBasicConsume {
-    public const int ClassId = 60;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-
-    ushort IBasicConsume.Ticket { get { return m_ticket; } }
-    string IBasicConsume.Queue { get { return m_queue; } }
-    string IBasicConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicConsume.NoLocal { get { return m_noLocal; } }
-    bool IBasicConsume.NoAck { get { return m_noAck; } }
-    bool IBasicConsume.Exclusive { get { return m_exclusive; } }
-    bool IBasicConsume.Nowait { get { return m_nowait; } }
-
-    public BasicConsume() {}
-    public BasicConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "basic.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsumeOk: RabbitMQ.Client.Impl.MethodBase, IBasicConsumeOk {
-    public const int ClassId = 60;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IBasicConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicConsumeOk() {}
-    public BasicConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "basic.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancel: RabbitMQ.Client.Impl.MethodBase, IBasicCancel {
-    public const int ClassId = 60;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IBasicCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicCancel.Nowait { get { return m_nowait; } }
-
-    public BasicCancel() {}
-    public BasicCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "basic.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancelOk: RabbitMQ.Client.Impl.MethodBase, IBasicCancelOk {
-    public const int ClassId = 60;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IBasicCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicCancelOk() {}
-    public BasicCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "basic.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicPublish: RabbitMQ.Client.Impl.MethodBase, IBasicPublish {
-    public const int ClassId = 60;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IBasicPublish.Ticket { get { return m_ticket; } }
-    string IBasicPublish.Exchange { get { return m_exchange; } }
-    string IBasicPublish.RoutingKey { get { return m_routingKey; } }
-    bool IBasicPublish.Mandatory { get { return m_mandatory; } }
-    bool IBasicPublish.Immediate { get { return m_immediate; } }
-
-    public BasicPublish() {}
-    public BasicPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "basic.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReturn: RabbitMQ.Client.Impl.MethodBase, IBasicReturn {
-    public const int ClassId = 60;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IBasicReturn.ReplyCode { get { return m_replyCode; } }
-    string IBasicReturn.ReplyText { get { return m_replyText; } }
-    string IBasicReturn.Exchange { get { return m_exchange; } }
-    string IBasicReturn.RoutingKey { get { return m_routingKey; } }
-
-    public BasicReturn() {}
-    public BasicReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "basic.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicDeliver: RabbitMQ.Client.Impl.MethodBase, IBasicDeliver {
-    public const int ClassId = 60;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-
-    string IBasicDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IBasicDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicDeliver.Redelivered { get { return m_redelivered; } }
-    string IBasicDeliver.Exchange { get { return m_exchange; } }
-    string IBasicDeliver.RoutingKey { get { return m_routingKey; } }
-
-    public BasicDeliver() {}
-    public BasicDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "basic.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGet: RabbitMQ.Client.Impl.MethodBase, IBasicGet {
-    public const int ClassId = 60;
-    public const int MethodId = 70;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_noAck;
-
-    ushort IBasicGet.Ticket { get { return m_ticket; } }
-    string IBasicGet.Queue { get { return m_queue; } }
-    bool IBasicGet.NoAck { get { return m_noAck; } }
-
-    public BasicGet() {}
-    public BasicGet(
-      ushort initTicket,
-      string initQueue,
-      bool initNoAck)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_noAck = initNoAck;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "basic.get"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_noAck = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_noAck);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_noAck);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetOk: RabbitMQ.Client.Impl.MethodBase, IBasicGetOk {
-    public const int ClassId = 60;
-    public const int MethodId = 71;
-
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public uint m_messageCount;
-
-    ulong IBasicGetOk.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicGetOk.Redelivered { get { return m_redelivered; } }
-    string IBasicGetOk.Exchange { get { return m_exchange; } }
-    string IBasicGetOk.RoutingKey { get { return m_routingKey; } }
-    uint IBasicGetOk.MessageCount { get { return m_messageCount; } }
-
-    public BasicGetOk() {}
-    public BasicGetOk(
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      uint initMessageCount)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 71; } }
-    public override string ProtocolMethodName { get { return "basic.get-ok"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetEmpty: RabbitMQ.Client.Impl.MethodBase, IBasicGetEmpty {
-    public const int ClassId = 60;
-    public const int MethodId = 72;
-
-    public string m_clusterId;
-
-    string IBasicGetEmpty.ClusterId { get { return m_clusterId; } }
-
-    public BasicGetEmpty() {}
-    public BasicGetEmpty(
-      string initClusterId)
-    {
-      m_clusterId = initClusterId;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 72; } }
-    public override string ProtocolMethodName { get { return "basic.get-empty"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clusterId = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_clusterId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clusterId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicAck: RabbitMQ.Client.Impl.MethodBase, IBasicAck {
-    public const int ClassId = 60;
-    public const int MethodId = 80;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IBasicAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicAck.Multiple { get { return m_multiple; } }
-
-    public BasicAck() {}
-    public BasicAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "basic.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReject: RabbitMQ.Client.Impl.MethodBase, IBasicReject {
-    public const int ClassId = 60;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IBasicReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicReject.Requeue { get { return m_requeue; } }
-
-    public BasicReject() {}
-    public BasicReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "basic.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicRecover: RabbitMQ.Client.Impl.MethodBase, IBasicRecover {
-    public const int ClassId = 60;
-    public const int MethodId = 100;
-
-    public bool m_requeue;
-
-    bool IBasicRecover.Requeue { get { return m_requeue; } }
-
-    public BasicRecover() {}
-    public BasicRecover(
-      bool initRequeue)
-    {
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "basic.recover"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQos: RabbitMQ.Client.Impl.MethodBase, IFileQos {
-    public const int ClassId = 70;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IFileQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IFileQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IFileQos.Global { get { return m_global; } }
-
-    public FileQos() {}
-    public FileQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "file.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQosOk: RabbitMQ.Client.Impl.MethodBase, IFileQosOk {
-    public const int ClassId = 70;
-    public const int MethodId = 11;
-
-
-
-    public FileQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "file.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsume: RabbitMQ.Client.Impl.MethodBase, IFileConsume {
-    public const int ClassId = 70;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-
-    ushort IFileConsume.Ticket { get { return m_ticket; } }
-    string IFileConsume.Queue { get { return m_queue; } }
-    string IFileConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileConsume.NoLocal { get { return m_noLocal; } }
-    bool IFileConsume.NoAck { get { return m_noAck; } }
-    bool IFileConsume.Exclusive { get { return m_exclusive; } }
-    bool IFileConsume.Nowait { get { return m_nowait; } }
-
-    public FileConsume() {}
-    public FileConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "file.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsumeOk: RabbitMQ.Client.Impl.MethodBase, IFileConsumeOk {
-    public const int ClassId = 70;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IFileConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileConsumeOk() {}
-    public FileConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "file.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancel: RabbitMQ.Client.Impl.MethodBase, IFileCancel {
-    public const int ClassId = 70;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IFileCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileCancel.Nowait { get { return m_nowait; } }
-
-    public FileCancel() {}
-    public FileCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "file.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancelOk: RabbitMQ.Client.Impl.MethodBase, IFileCancelOk {
-    public const int ClassId = 70;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IFileCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileCancelOk() {}
-    public FileCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "file.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpen: RabbitMQ.Client.Impl.MethodBase, IFileOpen {
-    public const int ClassId = 70;
-    public const int MethodId = 40;
-
-    public string m_identifier;
-    public ulong m_contentSize;
-
-    string IFileOpen.Identifier { get { return m_identifier; } }
-    ulong IFileOpen.ContentSize { get { return m_contentSize; } }
-
-    public FileOpen() {}
-    public FileOpen(
-      string initIdentifier,
-      ulong initContentSize)
-    {
-      m_identifier = initIdentifier;
-      m_contentSize = initContentSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "file.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_identifier = reader.ReadShortstr();
-      m_contentSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_identifier);
-      writer.WriteLonglong(m_contentSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_identifier); sb.Append(",");
-      sb.Append(m_contentSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpenOk: RabbitMQ.Client.Impl.MethodBase, IFileOpenOk {
-    public const int ClassId = 70;
-    public const int MethodId = 41;
-
-    public ulong m_stagedSize;
-
-    ulong IFileOpenOk.StagedSize { get { return m_stagedSize; } }
-
-    public FileOpenOk() {}
-    public FileOpenOk(
-      ulong initStagedSize)
-    {
-      m_stagedSize = initStagedSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "file.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_stagedSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_stagedSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_stagedSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileStage: RabbitMQ.Client.Impl.MethodBase, IFileStage {
-    public const int ClassId = 70;
-    public const int MethodId = 50;
-
-
-
-    public FileStage(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "file.stage"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FilePublish: RabbitMQ.Client.Impl.MethodBase, IFilePublish {
-    public const int ClassId = 70;
-    public const int MethodId = 60;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-    public string m_identifier;
-
-    ushort IFilePublish.Ticket { get { return m_ticket; } }
-    string IFilePublish.Exchange { get { return m_exchange; } }
-    string IFilePublish.RoutingKey { get { return m_routingKey; } }
-    bool IFilePublish.Mandatory { get { return m_mandatory; } }
-    bool IFilePublish.Immediate { get { return m_immediate; } }
-    string IFilePublish.Identifier { get { return m_identifier; } }
-
-    public FilePublish() {}
-    public FilePublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate,
-      string initIdentifier)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "file.publish"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReturn: RabbitMQ.Client.Impl.MethodBase, IFileReturn {
-    public const int ClassId = 70;
-    public const int MethodId = 70;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IFileReturn.ReplyCode { get { return m_replyCode; } }
-    string IFileReturn.ReplyText { get { return m_replyText; } }
-    string IFileReturn.Exchange { get { return m_exchange; } }
-    string IFileReturn.RoutingKey { get { return m_routingKey; } }
-
-    public FileReturn() {}
-    public FileReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "file.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileDeliver: RabbitMQ.Client.Impl.MethodBase, IFileDeliver {
-    public const int ClassId = 70;
-    public const int MethodId = 80;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public string m_identifier;
-
-    string IFileDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IFileDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileDeliver.Redelivered { get { return m_redelivered; } }
-    string IFileDeliver.Exchange { get { return m_exchange; } }
-    string IFileDeliver.RoutingKey { get { return m_routingKey; } }
-    string IFileDeliver.Identifier { get { return m_identifier; } }
-
-    public FileDeliver() {}
-    public FileDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      string initIdentifier)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "file.deliver"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileAck: RabbitMQ.Client.Impl.MethodBase, IFileAck {
-    public const int ClassId = 70;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IFileAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileAck.Multiple { get { return m_multiple; } }
-
-    public FileAck() {}
-    public FileAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "file.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReject: RabbitMQ.Client.Impl.MethodBase, IFileReject {
-    public const int ClassId = 70;
-    public const int MethodId = 100;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IFileReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileReject.Requeue { get { return m_requeue; } }
-
-    public FileReject() {}
-    public FileReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "file.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQos: RabbitMQ.Client.Impl.MethodBase, IStreamQos {
-    public const int ClassId = 80;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public uint m_consumeRate;
-    public bool m_global;
-
-    uint IStreamQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IStreamQos.PrefetchCount { get { return m_prefetchCount; } }
-    uint IStreamQos.ConsumeRate { get { return m_consumeRate; } }
-    bool IStreamQos.Global { get { return m_global; } }
-
-    public StreamQos() {}
-    public StreamQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      uint initConsumeRate,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_consumeRate = initConsumeRate;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "stream.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_consumeRate = reader.ReadLong();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteLong(m_consumeRate);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_consumeRate); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQosOk: RabbitMQ.Client.Impl.MethodBase, IStreamQosOk {
-    public const int ClassId = 80;
-    public const int MethodId = 11;
-
-
-
-    public StreamQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "stream.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsume: RabbitMQ.Client.Impl.MethodBase, IStreamConsume {
-    public const int ClassId = 80;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_exclusive;
-    public bool m_nowait;
-
-    ushort IStreamConsume.Ticket { get { return m_ticket; } }
-    string IStreamConsume.Queue { get { return m_queue; } }
-    string IStreamConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamConsume.NoLocal { get { return m_noLocal; } }
-    bool IStreamConsume.Exclusive { get { return m_exclusive; } }
-    bool IStreamConsume.Nowait { get { return m_nowait; } }
-
-    public StreamConsume() {}
-    public StreamConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initExclusive,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "stream.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsumeOk: RabbitMQ.Client.Impl.MethodBase, IStreamConsumeOk {
-    public const int ClassId = 80;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IStreamConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamConsumeOk() {}
-    public StreamConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "stream.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancel: RabbitMQ.Client.Impl.MethodBase, IStreamCancel {
-    public const int ClassId = 80;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IStreamCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamCancel.Nowait { get { return m_nowait; } }
-
-    public StreamCancel() {}
-    public StreamCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "stream.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancelOk: RabbitMQ.Client.Impl.MethodBase, IStreamCancelOk {
-    public const int ClassId = 80;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IStreamCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamCancelOk() {}
-    public StreamCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "stream.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamPublish: RabbitMQ.Client.Impl.MethodBase, IStreamPublish {
-    public const int ClassId = 80;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IStreamPublish.Ticket { get { return m_ticket; } }
-    string IStreamPublish.Exchange { get { return m_exchange; } }
-    string IStreamPublish.RoutingKey { get { return m_routingKey; } }
-    bool IStreamPublish.Mandatory { get { return m_mandatory; } }
-    bool IStreamPublish.Immediate { get { return m_immediate; } }
-
-    public StreamPublish() {}
-    public StreamPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "stream.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamReturn: RabbitMQ.Client.Impl.MethodBase, IStreamReturn {
-    public const int ClassId = 80;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IStreamReturn.ReplyCode { get { return m_replyCode; } }
-    string IStreamReturn.ReplyText { get { return m_replyText; } }
-    string IStreamReturn.Exchange { get { return m_exchange; } }
-    string IStreamReturn.RoutingKey { get { return m_routingKey; } }
-
-    public StreamReturn() {}
-    public StreamReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "stream.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamDeliver: RabbitMQ.Client.Impl.MethodBase, IStreamDeliver {
-    public const int ClassId = 80;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public string m_exchange;
-    public string m_queue;
-
-    string IStreamDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IStreamDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    string IStreamDeliver.Exchange { get { return m_exchange; } }
-    string IStreamDeliver.Queue { get { return m_queue; } }
-
-    public StreamDeliver() {}
-    public StreamDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      string initExchange,
-      string initQueue)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_exchange = initExchange;
-      m_queue = initQueue;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "stream.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_exchange = reader.ReadShortstr();
-      m_queue = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_queue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_queue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelect: RabbitMQ.Client.Impl.MethodBase, ITxSelect {
-    public const int ClassId = 90;
-    public const int MethodId = 10;
-
-
-
-    public TxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelectOk: RabbitMQ.Client.Impl.MethodBase, ITxSelectOk {
-    public const int ClassId = 90;
-    public const int MethodId = 11;
-
-
-
-    public TxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "tx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommit: RabbitMQ.Client.Impl.MethodBase, ITxCommit {
-    public const int ClassId = 90;
-    public const int MethodId = 20;
-
-
-
-    public TxCommit(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "tx.commit"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommitOk: RabbitMQ.Client.Impl.MethodBase, ITxCommitOk {
-    public const int ClassId = 90;
-    public const int MethodId = 21;
-
-
-
-    public TxCommitOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "tx.commit-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollback: RabbitMQ.Client.Impl.MethodBase, ITxRollback {
-    public const int ClassId = 90;
-    public const int MethodId = 30;
-
-
-
-    public TxRollback(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "tx.rollback"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollbackOk: RabbitMQ.Client.Impl.MethodBase, ITxRollbackOk {
-    public const int ClassId = 90;
-    public const int MethodId = 31;
-
-
-
-    public TxRollbackOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "tx.rollback-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelect: RabbitMQ.Client.Impl.MethodBase, IDtxSelect {
-    public const int ClassId = 100;
-    public const int MethodId = 10;
-
-
-
-    public DtxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "dtx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelectOk: RabbitMQ.Client.Impl.MethodBase, IDtxSelectOk {
-    public const int ClassId = 100;
-    public const int MethodId = 11;
-
-
-
-    public DtxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "dtx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStart: RabbitMQ.Client.Impl.MethodBase, IDtxStart {
-    public const int ClassId = 100;
-    public const int MethodId = 20;
-
-    public string m_dtxIdentifier;
-
-    string IDtxStart.DtxIdentifier { get { return m_dtxIdentifier; } }
-
-    public DtxStart() {}
-    public DtxStart(
-      string initDtxIdentifier)
-    {
-      m_dtxIdentifier = initDtxIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "dtx.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_dtxIdentifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_dtxIdentifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_dtxIdentifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStartOk: RabbitMQ.Client.Impl.MethodBase, IDtxStartOk {
-    public const int ClassId = 100;
-    public const int MethodId = 21;
-
-
-
-    public DtxStartOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "dtx.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TunnelRequest: RabbitMQ.Client.Impl.MethodBase, ITunnelRequest {
-    public const int ClassId = 110;
-    public const int MethodId = 10;
-
-    public System.Collections.IDictionary m_metaData;
-
-    System.Collections.IDictionary ITunnelRequest.MetaData { get { return m_metaData; } }
-
-    public TunnelRequest() {}
-    public TunnelRequest(
-      System.Collections.IDictionary initMetaData)
-    {
-      m_metaData = initMetaData;
-    }
-
-    public override int ProtocolClassId { get { return 110; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tunnel.request"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_metaData = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_metaData);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_metaData);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestInteger: RabbitMQ.Client.Impl.MethodBase, ITestInteger {
-    public const int ClassId = 120;
-    public const int MethodId = 10;
-
-    public byte m_integer1;
-    public ushort m_integer2;
-    public uint m_integer3;
-    public ulong m_integer4;
-    public byte m_operation;
-
-    byte ITestInteger.Integer1 { get { return m_integer1; } }
-    ushort ITestInteger.Integer2 { get { return m_integer2; } }
-    uint ITestInteger.Integer3 { get { return m_integer3; } }
-    ulong ITestInteger.Integer4 { get { return m_integer4; } }
-    byte ITestInteger.Operation { get { return m_operation; } }
-
-    public TestInteger() {}
-    public TestInteger(
-      byte initInteger1,
-      ushort initInteger2,
-      uint initInteger3,
-      ulong initInteger4,
-      byte initOperation)
-    {
-      m_integer1 = initInteger1;
-      m_integer2 = initInteger2;
-      m_integer3 = initInteger3;
-      m_integer4 = initInteger4;
-      m_operation = initOperation;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "test.integer"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_integer1 = reader.ReadOctet();
-      m_integer2 = reader.ReadShort();
-      m_integer3 = reader.ReadLong();
-      m_integer4 = reader.ReadLonglong();
-      m_operation = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteOctet(m_integer1);
-      writer.WriteShort(m_integer2);
-      writer.WriteLong(m_integer3);
-      writer.WriteLonglong(m_integer4);
-      writer.WriteOctet(m_operation);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_integer1); sb.Append(",");
-      sb.Append(m_integer2); sb.Append(",");
-      sb.Append(m_integer3); sb.Append(",");
-      sb.Append(m_integer4); sb.Append(",");
-      sb.Append(m_operation);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestIntegerOk: RabbitMQ.Client.Impl.MethodBase, ITestIntegerOk {
-    public const int ClassId = 120;
-    public const int MethodId = 11;
-
-    public ulong m_result;
-
-    ulong ITestIntegerOk.Result { get { return m_result; } }
-
-    public TestIntegerOk() {}
-    public TestIntegerOk(
-      ulong initResult)
-    {
-      m_result = initResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "test.integer-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_result = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_result);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_result);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestString: RabbitMQ.Client.Impl.MethodBase, ITestString {
-    public const int ClassId = 120;
-    public const int MethodId = 20;
-
-    public string m_string1;
-    public byte[] m_string2;
-    public byte m_operation;
-
-    string ITestString.String1 { get { return m_string1; } }
-    byte[] ITestString.String2 { get { return m_string2; } }
-    byte ITestString.Operation { get { return m_operation; } }
-
-    public TestString() {}
-    public TestString(
-      string initString1,
-      byte[] initString2,
-      byte initOperation)
-    {
-      m_string1 = initString1;
-      m_string2 = initString2;
-      m_operation = initOperation;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "test.string"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_string1 = reader.ReadShortstr();
-      m_string2 = reader.ReadLongstr();
-      m_operation = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_string1);
-      writer.WriteLongstr(m_string2);
-      writer.WriteOctet(m_operation);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_string1); sb.Append(",");
-      sb.Append(m_string2); sb.Append(",");
-      sb.Append(m_operation);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestStringOk: RabbitMQ.Client.Impl.MethodBase, ITestStringOk {
-    public const int ClassId = 120;
-    public const int MethodId = 21;
-
-    public byte[] m_result;
-
-    byte[] ITestStringOk.Result { get { return m_result; } }
-
-    public TestStringOk() {}
-    public TestStringOk(
-      byte[] initResult)
-    {
-      m_result = initResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "test.string-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_result = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_result);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_result);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestTable: RabbitMQ.Client.Impl.MethodBase, ITestTable {
-    public const int ClassId = 120;
-    public const int MethodId = 30;
-
-    public System.Collections.IDictionary m_table;
-    public byte m_integerOp;
-    public byte m_stringOp;
-
-    System.Collections.IDictionary ITestTable.Table { get { return m_table; } }
-    byte ITestTable.IntegerOp { get { return m_integerOp; } }
-    byte ITestTable.StringOp { get { return m_stringOp; } }
-
-    public TestTable() {}
-    public TestTable(
-      System.Collections.IDictionary initTable,
-      byte initIntegerOp,
-      byte initStringOp)
-    {
-      m_table = initTable;
-      m_integerOp = initIntegerOp;
-      m_stringOp = initStringOp;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "test.table"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_table = reader.ReadTable();
-      m_integerOp = reader.ReadOctet();
-      m_stringOp = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_table);
-      writer.WriteOctet(m_integerOp);
-      writer.WriteOctet(m_stringOp);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_table); sb.Append(",");
-      sb.Append(m_integerOp); sb.Append(",");
-      sb.Append(m_stringOp);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestTableOk: RabbitMQ.Client.Impl.MethodBase, ITestTableOk {
-    public const int ClassId = 120;
-    public const int MethodId = 31;
-
-    public ulong m_integerResult;
-    public byte[] m_stringResult;
-
-    ulong ITestTableOk.IntegerResult { get { return m_integerResult; } }
-    byte[] ITestTableOk.StringResult { get { return m_stringResult; } }
-
-    public TestTableOk() {}
-    public TestTableOk(
-      ulong initIntegerResult,
-      byte[] initStringResult)
-    {
-      m_integerResult = initIntegerResult;
-      m_stringResult = initStringResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "test.table-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_integerResult = reader.ReadLonglong();
-      m_stringResult = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_integerResult);
-      writer.WriteLongstr(m_stringResult);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_integerResult); sb.Append(",");
-      sb.Append(m_stringResult);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestContent: RabbitMQ.Client.Impl.MethodBase, ITestContent {
-    public const int ClassId = 120;
-    public const int MethodId = 40;
-
-
-
-    public TestContent(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "test.content"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestContentOk: RabbitMQ.Client.Impl.MethodBase, ITestContentOk {
-    public const int ClassId = 120;
-    public const int MethodId = 41;
-
-    public uint m_contentChecksum;
-
-    uint ITestContentOk.ContentChecksum { get { return m_contentChecksum; } }
-
-    public TestContentOk() {}
-    public TestContentOk(
-      uint initContentChecksum)
-    {
-      m_contentChecksum = initContentChecksum;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "test.content-ok"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_contentChecksum = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_contentChecksum);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_contentChecksum);
-      sb.Append(")");
-    }
-  }
-
-  public class Model: RabbitMQ.Client.Impl.ModelBase {
-    public Model(RabbitMQ.Client.Impl.ISession session): base(session) {}
-    public override void _Private_BasicPublish(
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @mandatory,
-      System.Boolean @immediate,
-      RabbitMQ.Client.IBasicProperties @basicProperties,
-      System.Byte[] @body)
-    {
-      BasicPublish __req = new BasicPublish();
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_mandatory = @mandatory;
-      __req.m_immediate = @immediate;
-      ModelSend(__req, (BasicProperties) basicProperties,body);
-    }
-    public override void _Private_BasicConsume(
-      System.String @queue,
-      System.String @consumerTag,
-      System.Boolean @noLocal,
-      System.Boolean @noAck,
-      System.Boolean @exclusive,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @filter)
-    {
-      BasicConsume __req = new BasicConsume();
-      __req.m_queue = @queue;
-      __req.m_consumerTag = @consumerTag;
-      __req.m_noLocal = @noLocal;
-      __req.m_noAck = @noAck;
-      __req.m_exclusive = @exclusive;
-      __req.m_nowait = @nowait;
-      if (@filter != null) {
-        throw new UnsupportedMethodFieldException("_Private_BasicConsume","filter");
-      }
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicCancel(
-      System.String @consumerTag,
-      System.Boolean @nowait)
-    {
-      BasicCancel __req = new BasicCancel();
-      __req.m_consumerTag = @consumerTag;
-      __req.m_nowait = @nowait;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelOpen(
-      System.String @outOfBand)
-    {
-      ChannelOpen __req = new ChannelOpen();
-      __req.m_outOfBand = @outOfBand;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelOpenOk __rep = __repBase as ChannelOpenOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ChannelCloseOk()
-    {
-      ChannelCloseOk __req = new ChannelCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ChannelClose __req = new ChannelClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicGet(
-      System.String @queue,
-      System.Boolean @noAck)
-    {
-      BasicGet __req = new BasicGet();
-      __req.m_queue = @queue;
-      __req.m_noAck = @noAck;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelFlowOk()
-    {
-      ChannelFlowOk __req = new ChannelFlowOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.Impl.ConnectionTuneDetails ConnectionStartOk(
-      System.Collections.IDictionary @clientProperties,
-      System.String @mechanism,
-      System.Byte[] @response,
-      System.String @locale)
-    {
-      ConnectionStartOk __req = new ConnectionStartOk();
-      __req.m_clientProperties = @clientProperties;
-      __req.m_mechanism = @mechanism;
-      __req.m_response = @response;
-      __req.m_locale = @locale;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionTune __rep = __repBase as ConnectionTune;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      RabbitMQ.Client.Impl.ConnectionTuneDetails __result = new RabbitMQ.Client.Impl.ConnectionTuneDetails();
-      __result.m_channelMax = __rep.m_channelMax;
-      __result.m_frameMax = __rep.m_frameMax;
-      __result.m_heartbeat = __rep.m_heartbeat;
-      return __result;
-    }
-    public override void ConnectionTuneOk(
-      System.UInt16 @channelMax,
-      System.UInt32 @frameMax,
-      System.UInt16 @heartbeat)
-    {
-      ConnectionTuneOk __req = new ConnectionTuneOk();
-      __req.m_channelMax = @channelMax;
-      __req.m_frameMax = @frameMax;
-      __req.m_heartbeat = @heartbeat;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionOpen(
-      System.String @virtualHost,
-      System.String @capabilities,
-      System.Boolean @insist)
-    {
-      ConnectionOpen __req = new ConnectionOpen();
-      __req.m_virtualHost = @virtualHost;
-      __req.m_capabilities = @capabilities;
-      __req.m_insist = @insist;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ConnectionClose __req = new ConnectionClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionCloseOk __rep = __repBase as ConnectionCloseOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ConnectionCloseOk()
-    {
-      ConnectionCloseOk __req = new ConnectionCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.IBasicProperties CreateBasicProperties()
-    {
-      return new BasicProperties();
-    }
-    public override RabbitMQ.Client.IFileProperties CreateFileProperties()
-    {
-      return new FileProperties();
-    }
-    public override RabbitMQ.Client.IStreamProperties CreateStreamProperties()
-    {
-      return new StreamProperties();
-    }
-    public override void ChannelFlow(
-      System.Boolean @active)
-    {
-      ChannelFlow __req = new ChannelFlow();
-      __req.m_active = @active;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelFlowOk __rep = __repBase as ChannelFlowOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDeclare(
-      System.String @exchange,
-      System.String @type,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @autoDelete,
-      System.Boolean @internal,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      ExchangeDeclare __req = new ExchangeDeclare();
-      __req.m_exchange = @exchange;
-      __req.m_type = @type;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_internal = @internal;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeclareOk __rep = __repBase as ExchangeDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDelete(
-      System.String @exchange,
-      System.Boolean @ifUnused,
-      System.Boolean @nowait)
-    {
-      ExchangeDelete __req = new ExchangeDelete();
-      __req.m_exchange = @exchange;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeleteOk __rep = __repBase as ExchangeDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override System.String QueueDeclare(
-      System.String @queue,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @exclusive,
-      System.Boolean @autoDelete,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueDeclare __req = new QueueDeclare();
-      __req.m_queue = @queue;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_exclusive = @exclusive;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return null;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeclareOk __rep = __repBase as QueueDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_queue;
-    }
-    public override void QueueBind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueBind __req = new QueueBind();
-      __req.m_queue = @queue;
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueBindOk __rep = __repBase as QueueBindOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void QueueUnbind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueUnbind __req = new QueueUnbind();
-      __req.m_queue = @queue;
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_arguments = @arguments;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueUnbindOk __rep = __repBase as QueueUnbindOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override System.UInt32 QueuePurge(
-      System.String @queue,
-      System.Boolean @nowait)
-    {
-      QueuePurge __req = new QueuePurge();
-      __req.m_queue = @queue;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueuePurgeOk __rep = __repBase as QueuePurgeOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override System.UInt32 QueueDelete(
-      System.String @queue,
-      System.Boolean @ifUnused,
-      System.Boolean @ifEmpty,
-      System.Boolean @nowait)
-    {
-      QueueDelete __req = new QueueDelete();
-      __req.m_queue = @queue;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_ifEmpty = @ifEmpty;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeleteOk __rep = __repBase as QueueDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override void BasicQos(
-      System.UInt32 @prefetchSize,
-      System.UInt16 @prefetchCount,
-      System.Boolean @global)
-    {
-      BasicQos __req = new BasicQos();
-      __req.m_prefetchSize = @prefetchSize;
-      __req.m_prefetchCount = @prefetchCount;
-      __req.m_global = @global;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      BasicQosOk __rep = __repBase as BasicQosOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void BasicAck(
-      System.UInt64 @deliveryTag,
-      System.Boolean @multiple)
-    {
-      BasicAck __req = new BasicAck();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_multiple = @multiple;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicReject(
-      System.UInt64 @deliveryTag,
-      System.Boolean @requeue)
-    {
-      BasicReject __req = new BasicReject();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_requeue = @requeue;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicRecover(
-      System.Boolean @requeue)
-    {
-      BasicRecover __req = new BasicRecover();
-      __req.m_requeue = @requeue;
-      ModelSend(__req,null,null);
-    }
-    public override void TxSelect()
-    {
-      TxSelect __req = new TxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxSelectOk __rep = __repBase as TxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxCommit()
-    {
-      TxCommit __req = new TxCommit();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxCommitOk __rep = __repBase as TxCommitOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxRollback()
-    {
-      TxRollback __req = new TxRollback();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxRollbackOk __rep = __repBase as TxRollbackOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxSelect()
-    {
-      DtxSelect __req = new DtxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxSelectOk __rep = __repBase as DtxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxStart(
-      System.String @dtxIdentifier)
-    {
-      DtxStart __req = new DtxStart();
-      __req.m_dtxIdentifier = @dtxIdentifier;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxStartOk __rep = __repBase as DtxStartOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override bool DispatchAsynchronous(RabbitMQ.Client.Impl.Command cmd) {
-      RabbitMQ.Client.Impl.MethodBase __method = (RabbitMQ.Client.Impl.MethodBase) cmd.Method;
-      switch ((__method.ProtocolClassId << 16) | __method.ProtocolMethodId) {
-        case 3932181: {
-          BasicConsumeOk __impl = (BasicConsumeOk) __method;
-          HandleBasicConsumeOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932191: {
-          BasicCancelOk __impl = (BasicCancelOk) __method;
-          HandleBasicCancelOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932231: {
-          BasicGetOk __impl = (BasicGetOk) __method;
-          HandleBasicGetOk(
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            __impl.m_messageCount,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932232: {
-          HandleBasicGetEmpty();
-          return true;
-        }
-        case 3932220: {
-          BasicDeliver __impl = (BasicDeliver) __method;
-          HandleBasicDeliver(
-            __impl.m_consumerTag,
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932210: {
-          BasicReturn __impl = (BasicReturn) __method;
-          HandleBasicReturn(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 1310740: {
-          ChannelFlow __impl = (ChannelFlow) __method;
-          HandleChannelFlow(
-            __impl.m_active);
-          return true;
-        }
-        case 1310760: {
-          ChannelClose __impl = (ChannelClose) __method;
-          HandleChannelClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        case 1310761: {
-          HandleChannelCloseOk();
-          return true;
-        }
-        case 655370: {
-          ConnectionStart __impl = (ConnectionStart) __method;
-          HandleConnectionStart(
-            __impl.m_versionMajor,
-            __impl.m_versionMinor,
-            __impl.m_serverProperties,
-            __impl.m_mechanisms,
-            __impl.m_locales);
-          return true;
-        }
-        case 655401: {
-          ConnectionOpenOk __impl = (ConnectionOpenOk) __method;
-          HandleConnectionOpenOk(
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655410: {
-          ConnectionRedirect __impl = (ConnectionRedirect) __method;
-          HandleConnectionRedirect(
-            __impl.m_host,
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655420: {
-          ConnectionClose __impl = (ConnectionClose) __method;
-          HandleConnectionClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        default: return false;
-      }
-    }
-  }
-}
diff --git a/mcs/class/RabbitMQ.Client/docs/specs/net_4_5-api-0-9.cs b/mcs/class/RabbitMQ.Client/docs/specs/net_4_5-api-0-9.cs
deleted file mode 100644 (file)
index fb67270..0000000
+++ /dev/null
@@ -1,7050 +0,0 @@
-// Autogenerated code. Do not edit.
-
-// This source code is dual-licensed under the Apache License, version
-// 2.0, and the Mozilla Public License, version 1.1.
-//
-// The APL v2.0:
-//
-//---------------------------------------------------------------------------
-//   Copyright (C) 2007-2010 LShift Ltd., Cohesive Financial
-//   Technologies LLC., and Rabbit Technologies Ltd.
-//
-//   Licensed under the Apache License, Version 2.0 (the "License");
-//   you may not use this file except in compliance with the License.
-//   You may obtain a copy of the License at
-//
-//       http://www.apache.org/licenses/LICENSE-2.0
-//
-//   Unless required by applicable law or agreed to in writing, software
-//   distributed under the License is distributed on an "AS IS" BASIS,
-//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//   See the License for the specific language governing permissions and
-//   limitations under the License.
-//---------------------------------------------------------------------------
-//
-// The MPL v1.1:
-//
-//---------------------------------------------------------------------------
-//   The contents of this file are subject to the Mozilla Public License
-//   Version 1.1 (the "License"); you may not use this file except in
-//   compliance with the License. You may obtain a copy of the License at
-//   http://www.rabbitmq.com/mpl.html
-//
-//   Software distributed under the License is distributed on an "AS IS"
-//   basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//   License for the specific language governing rights and limitations
-//   under the License.
-//
-//   The Original Code is The RabbitMQ .NET Client.
-//
-//   The Initial Developers of the Original Code are LShift Ltd,
-//   Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
-//   Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
-//   are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
-//   Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created by LShift Ltd are Copyright (C) 2007-2010 LShift
-//   Ltd. Portions created by Cohesive Financial Technologies LLC are
-//   Copyright (C) 2007-2010 Cohesive Financial Technologies
-//   LLC. Portions created by Rabbit Technologies Ltd are Copyright
-//   (C) 2007-2010 Rabbit Technologies Ltd.
-//
-//   All Rights Reserved.
-//
-//   Contributor(s): ______________________________________.
-//
-//---------------------------------------------------------------------------
-
-using RabbitMQ.Client;
-using RabbitMQ.Client.Exceptions;
-
-namespace RabbitMQ.Client.Framing.v0_9 {
-  public class Protocol: RabbitMQ.Client.Framing.Impl.v0_9.ProtocolBase {
-    ///<summary>Protocol major version (= 0)</summary>
-    public override int MajorVersion { get { return 0; } }
-    ///<summary>Protocol minor version (= 9)</summary>
-    public override int MinorVersion { get { return 9; } }
-    ///<summary>Protocol API name (= AMQP_0_9)</summary>
-    public override string ApiName { get { return "AMQP_0_9"; } }
-    ///<summary>Default TCP port (= 5672)</summary>
-    public override int DefaultPort { get { return 5672; } }
-
-    public override RabbitMQ.Client.Impl.MethodBase DecodeMethodFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-      ushort methodId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 10: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionStart result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionStartOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionSecure result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionSecure();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionSecureOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionSecureOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionTune result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionTune();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionTuneOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionTuneOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionOpen result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 42: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionRedirect result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionRedirect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionClose result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 51: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ConnectionCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ConnectionCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 20: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelOpen result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelFlow result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelFlow();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelFlowOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelFlowOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelClose result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelResume result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelResume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelPing result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelPing();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelPong result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelPong();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ChannelOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ChannelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 30: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.AccessRequest result = new RabbitMQ.Client.Framing.Impl.v0_9.AccessRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.AccessRequestOk result = new RabbitMQ.Client.Framing.Impl.v0_9.AccessRequestOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 40: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeclare result = new RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDelete result = new RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_9.ExchangeDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 50: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueDeclare result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueBind result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueBind();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueBindOk result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueBindOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueUnbind result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueUnbind();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 51: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueUnbindOk result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueUnbindOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueuePurge result = new RabbitMQ.Client.Framing.Impl.v0_9.QueuePurge();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueuePurgeOk result = new RabbitMQ.Client.Framing.Impl.v0_9.QueuePurgeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueDelete result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_9.QueueDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_9.QueueDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 60: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicQos result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicQosOk result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicConsume result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicCancel result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicPublish result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicReturn result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicDeliver result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicGet result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicGet();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 71: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicGetOk result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicGetOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 72: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicGetEmpty result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicGetEmpty();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicAck result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicReject result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_9.BasicRecover result = new RabbitMQ.Client.Framing.Impl.v0_9.BasicRecover();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 70: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileQos result = new RabbitMQ.Client.Framing.Impl.v0_9.FileQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileQosOk result = new RabbitMQ.Client.Framing.Impl.v0_9.FileQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileConsume result = new RabbitMQ.Client.Framing.Impl.v0_9.FileConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_9.FileConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileCancel result = new RabbitMQ.Client.Framing.Impl.v0_9.FileCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_9.FileCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileOpen result = new RabbitMQ.Client.Framing.Impl.v0_9.FileOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_9.FileOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileStage result = new RabbitMQ.Client.Framing.Impl.v0_9.FileStage();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FilePublish result = new RabbitMQ.Client.Framing.Impl.v0_9.FilePublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileReturn result = new RabbitMQ.Client.Framing.Impl.v0_9.FileReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileDeliver result = new RabbitMQ.Client.Framing.Impl.v0_9.FileDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileAck result = new RabbitMQ.Client.Framing.Impl.v0_9.FileAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_9.FileReject result = new RabbitMQ.Client.Framing.Impl.v0_9.FileReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 80: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamQos result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamQosOk result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamConsume result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamCancel result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamPublish result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamReturn result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_9.StreamDeliver result = new RabbitMQ.Client.Framing.Impl.v0_9.StreamDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 90: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxSelect result = new RabbitMQ.Client.Framing.Impl.v0_9.TxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_9.TxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxCommit result = new RabbitMQ.Client.Framing.Impl.v0_9.TxCommit();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxCommitOk result = new RabbitMQ.Client.Framing.Impl.v0_9.TxCommitOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxRollback result = new RabbitMQ.Client.Framing.Impl.v0_9.TxRollback();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TxRollbackOk result = new RabbitMQ.Client.Framing.Impl.v0_9.TxRollbackOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 100: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.DtxSelect result = new RabbitMQ.Client.Framing.Impl.v0_9.DtxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_9.DtxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_9.DtxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.DtxStart result = new RabbitMQ.Client.Framing.Impl.v0_9.DtxStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_9.DtxStartOk result = new RabbitMQ.Client.Framing.Impl.v0_9.DtxStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 110: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.TunnelRequest result = new RabbitMQ.Client.Framing.Impl.v0_9.TunnelRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 120: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageTransfer result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageTransfer();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageConsume result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageCancel result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageGet result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageGet();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageRecover result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageRecover();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageOpen result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageClose result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageAppend result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageAppend();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageCheckpoint result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageCheckpoint();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageResume result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageResume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 110: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageQos result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 500: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageOk result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 510: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageEmpty result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageEmpty();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 520: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageReject result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 530: {
-              RabbitMQ.Client.Framing.Impl.v0_9.MessageOffset result = new RabbitMQ.Client.Framing.Impl.v0_9.MessageOffset();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, methodId);
-    }
-
-    public override RabbitMQ.Client.Impl.ContentHeaderBase DecodeContentHeaderFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 60: return new BasicProperties();
-        case 70: return new FileProperties();
-        case 80: return new StreamProperties();
-        case 110: return new TunnelProperties();
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, 0);
-    }
-  }
-  public class Constants {
-    ///<summary>(= 1)</summary>
-    public const int FrameMethod = 1;
-    ///<summary>(= 2)</summary>
-    public const int FrameHeader = 2;
-    ///<summary>(= 3)</summary>
-    public const int FrameBody = 3;
-    ///<summary>(= 4)</summary>
-    public const int FrameOobMethod = 4;
-    ///<summary>(= 5)</summary>
-    public const int FrameOobHeader = 5;
-    ///<summary>(= 6)</summary>
-    public const int FrameOobBody = 6;
-    ///<summary>(= 7)</summary>
-    public const int FrameTrace = 7;
-    ///<summary>(= 8)</summary>
-    public const int FrameHeartbeat = 8;
-    ///<summary>(= 4096)</summary>
-    public const int FrameMinSize = 4096;
-    ///<summary>(= 206)</summary>
-    public const int FrameEnd = 206;
-    ///<summary>(= 200)</summary>
-    public const int ReplySuccess = 200;
-    ///<summary>(= 310)</summary>
-    public const int NotDelivered = 310;
-    ///<summary>(= 311)</summary>
-    public const int ContentTooLarge = 311;
-    ///<summary>(= 312)</summary>
-    public const int NoRoute = 312;
-    ///<summary>(= 313)</summary>
-    public const int NoConsumers = 313;
-    ///<summary>(= 320)</summary>
-    public const int ConnectionForced = 320;
-    ///<summary>(= 402)</summary>
-    public const int InvalidPath = 402;
-    ///<summary>(= 403)</summary>
-    public const int AccessRefused = 403;
-    ///<summary>(= 404)</summary>
-    public const int NotFound = 404;
-    ///<summary>(= 405)</summary>
-    public const int ResourceLocked = 405;
-    ///<summary>(= 406)</summary>
-    public const int PreconditionFailed = 406;
-    ///<summary>(= 501)</summary>
-    public const int FrameError = 501;
-    ///<summary>(= 502)</summary>
-    public const int SyntaxError = 502;
-    ///<summary>(= 503)</summary>
-    public const int CommandInvalid = 503;
-    ///<summary>(= 504)</summary>
-    public const int ChannelError = 504;
-    ///<summary>(= 506)</summary>
-    public const int ResourceError = 506;
-    ///<summary>(= 530)</summary>
-    public const int NotAllowed = 530;
-    ///<summary>(= 540)</summary>
-    public const int NotImplemented = 540;
-    ///<summary>(= 541)</summary>
-    public const int InternalError = 541;
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start".</summary>
-  public interface IConnectionStart: IMethod {
-    byte VersionMajor { get; }
-    byte VersionMinor { get; }
-    System.Collections.IDictionary ServerProperties { get; }
-    byte[] Mechanisms { get; }
-    byte[] Locales { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start-ok".</summary>
-  public interface IConnectionStartOk: IMethod {
-    System.Collections.IDictionary ClientProperties { get; }
-    string Mechanism { get; }
-    byte[] Response { get; }
-    string Locale { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure".</summary>
-  public interface IConnectionSecure: IMethod {
-    byte[] Challenge { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure-ok".</summary>
-  public interface IConnectionSecureOk: IMethod {
-    byte[] Response { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune".</summary>
-  public interface IConnectionTune: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune-ok".</summary>
-  public interface IConnectionTuneOk: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open".</summary>
-  public interface IConnectionOpen: IMethod {
-    string VirtualHost { get; }
-    string Capabilities { get; }
-    bool Insist { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open-ok".</summary>
-  public interface IConnectionOpenOk: IMethod {
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.redirect".</summary>
-  public interface IConnectionRedirect: IMethod {
-    string Host { get; }
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close".</summary>
-  public interface IConnectionClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close-ok".</summary>
-  public interface IConnectionCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open".</summary>
-  public interface IChannelOpen: IMethod {
-    string OutOfBand { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open-ok".</summary>
-  public interface IChannelOpenOk: IMethod {
-    byte[] ChannelId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow".</summary>
-  public interface IChannelFlow: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow-ok".</summary>
-  public interface IChannelFlowOk: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close".</summary>
-  public interface IChannelClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close-ok".</summary>
-  public interface IChannelCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.resume".</summary>
-  public interface IChannelResume: IMethod {
-    byte[] ChannelId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.ping".</summary>
-  public interface IChannelPing: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.pong".</summary>
-  public interface IChannelPong: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.ok".</summary>
-  public interface IChannelOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request".</summary>
-  public interface IAccessRequest: IMethod {
-    string Realm { get; }
-    bool Exclusive { get; }
-    bool Passive { get; }
-    bool Active { get; }
-    bool Write { get; }
-    bool Read { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request-ok".</summary>
-  public interface IAccessRequestOk: IMethod {
-    ushort Ticket { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare".</summary>
-  public interface IExchangeDeclare: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string Type { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool AutoDelete { get; }
-    bool Internal { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare-ok".</summary>
-  public interface IExchangeDeclareOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete".</summary>
-  public interface IExchangeDelete: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    bool IfUnused { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete-ok".</summary>
-  public interface IExchangeDeleteOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare".</summary>
-  public interface IQueueDeclare: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool Exclusive { get; }
-    bool AutoDelete { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare-ok".</summary>
-  public interface IQueueDeclareOk: IMethod {
-    string Queue { get; }
-    uint MessageCount { get; }
-    uint ConsumerCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind".</summary>
-  public interface IQueueBind: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind-ok".</summary>
-  public interface IQueueBindOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.unbind".</summary>
-  public interface IQueueUnbind: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.unbind-ok".</summary>
-  public interface IQueueUnbindOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge".</summary>
-  public interface IQueuePurge: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge-ok".</summary>
-  public interface IQueuePurgeOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete".</summary>
-  public interface IQueueDelete: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool IfUnused { get; }
-    bool IfEmpty { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete-ok".</summary>
-  public interface IQueueDeleteOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos".</summary>
-  public interface IBasicQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos-ok".</summary>
-  public interface IBasicQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume".</summary>
-  public interface IBasicConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Filter { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume-ok".</summary>
-  public interface IBasicConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel".</summary>
-  public interface IBasicCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel-ok".</summary>
-  public interface IBasicCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.publish".</summary>
-  public interface IBasicPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.return".</summary>
-  public interface IBasicReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.deliver".</summary>
-  public interface IBasicDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get".</summary>
-  public interface IBasicGet: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool NoAck { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-ok".</summary>
-  public interface IBasicGetOk: IMethod {
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-empty".</summary>
-  public interface IBasicGetEmpty: IMethod {
-    string ClusterId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.ack".</summary>
-  public interface IBasicAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.reject".</summary>
-  public interface IBasicReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.recover".</summary>
-  public interface IBasicRecover: IMethod {
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos".</summary>
-  public interface IFileQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos-ok".</summary>
-  public interface IFileQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume".</summary>
-  public interface IFileConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Filter { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume-ok".</summary>
-  public interface IFileConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel".</summary>
-  public interface IFileCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel-ok".</summary>
-  public interface IFileCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open".</summary>
-  public interface IFileOpen: IMethod {
-    string Identifier { get; }
-    ulong ContentSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open-ok".</summary>
-  public interface IFileOpenOk: IMethod {
-    ulong StagedSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.stage".</summary>
-  public interface IFileStage: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.publish".</summary>
-  public interface IFilePublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.return".</summary>
-  public interface IFileReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.deliver".</summary>
-  public interface IFileDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.ack".</summary>
-  public interface IFileAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.reject".</summary>
-  public interface IFileReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos".</summary>
-  public interface IStreamQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    uint ConsumeRate { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos-ok".</summary>
-  public interface IStreamQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume".</summary>
-  public interface IStreamConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Filter { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume-ok".</summary>
-  public interface IStreamConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel".</summary>
-  public interface IStreamCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel-ok".</summary>
-  public interface IStreamCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.publish".</summary>
-  public interface IStreamPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.return".</summary>
-  public interface IStreamReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.deliver".</summary>
-  public interface IStreamDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    string Exchange { get; }
-    string Queue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select".</summary>
-  public interface ITxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select-ok".</summary>
-  public interface ITxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit".</summary>
-  public interface ITxCommit: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit-ok".</summary>
-  public interface ITxCommitOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback".</summary>
-  public interface ITxRollback: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback-ok".</summary>
-  public interface ITxRollbackOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select".</summary>
-  public interface IDtxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select-ok".</summary>
-  public interface IDtxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start".</summary>
-  public interface IDtxStart: IMethod {
-    string DtxIdentifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start-ok".</summary>
-  public interface IDtxStartOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tunnel.request".</summary>
-  public interface ITunnelRequest: IMethod {
-    System.Collections.IDictionary MetaData { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.transfer".</summary>
-  public interface IMessageTransfer: IMethod {
-    ushort Ticket { get; }
-    string Destination { get; }
-    bool Redelivered { get; }
-    bool Immediate { get; }
-    ulong Ttl { get; }
-    byte Priority { get; }
-    AmqpTimestamp Timestamp { get; }
-    byte DeliveryMode { get; }
-    AmqpTimestamp Expiration { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    string MessageId { get; }
-    string CorrelationId { get; }
-    string ReplyTo { get; }
-    string ContentType { get; }
-    string ContentEncoding { get; }
-    string UserId { get; }
-    string AppId { get; }
-    string TransactionId { get; }
-    byte[] SecurityToken { get; }
-    System.Collections.IDictionary ApplicationHeaders { get; }
-    byte[] Body { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.consume".</summary>
-  public interface IMessageConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Destination { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    System.Collections.IDictionary Filter { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.cancel".</summary>
-  public interface IMessageCancel: IMethod {
-    string Destination { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.get".</summary>
-  public interface IMessageGet: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Destination { get; }
-    bool NoAck { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.recover".</summary>
-  public interface IMessageRecover: IMethod {
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.open".</summary>
-  public interface IMessageOpen: IMethod {
-    byte[] Reference { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.close".</summary>
-  public interface IMessageClose: IMethod {
-    byte[] Reference { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.append".</summary>
-  public interface IMessageAppend: IMethod {
-    byte[] Reference { get; }
-    byte[] Bytes { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.checkpoint".</summary>
-  public interface IMessageCheckpoint: IMethod {
-    byte[] Reference { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.resume".</summary>
-  public interface IMessageResume: IMethod {
-    byte[] Reference { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.qos".</summary>
-  public interface IMessageQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.ok".</summary>
-  public interface IMessageOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.empty".</summary>
-  public interface IMessageEmpty: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.reject".</summary>
-  public interface IMessageReject: IMethod {
-    ushort Code { get; }
-    string Text { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "message.offset".</summary>
-  public interface IMessageOffset: IMethod {
-    ulong Value { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "basic"</summary>
-  public class BasicProperties: RabbitMQ.Client.Impl.BasicProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_deliveryMode;
-    private byte m_priority;
-    private string m_correlationId;
-    private string m_replyTo;
-    private string m_expiration;
-    private string m_messageId;
-    private AmqpTimestamp m_timestamp;
-    private string m_type;
-    private string m_userId;
-    private string m_appId;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_deliveryMode_present = false;
-    private bool m_priority_present = false;
-    private bool m_correlationId_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_expiration_present = false;
-    private bool m_messageId_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_type_present = false;
-    private bool m_userId_present = false;
-    private bool m_appId_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte DeliveryMode {
-      get {
-        return m_deliveryMode;
-      }
-      set {
-        m_deliveryMode_present = true;
-        m_deliveryMode = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string CorrelationId {
-      get {
-        return m_correlationId;
-      }
-      set {
-        m_correlationId_present = true;
-        m_correlationId = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string Expiration {
-      get {
-        return m_expiration;
-      }
-      set {
-        m_expiration_present = true;
-        m_expiration = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string Type {
-      get {
-        return m_type;
-      }
-      set {
-        m_type_present = true;
-        m_type = value;
-      }
-    }
-    public override string UserId {
-      get {
-        return m_userId;
-      }
-      set {
-        m_userId_present = true;
-        m_userId = value;
-      }
-    }
-    public override string AppId {
-      get {
-        return m_appId;
-      }
-      set {
-        m_appId_present = true;
-        m_appId = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearDeliveryMode() { m_deliveryMode_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearCorrelationId() { m_correlationId_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearExpiration() { m_expiration_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearType() { m_type_present = false; }
-    public override void ClearUserId() { m_userId_present = false; }
-    public override void ClearAppId() { m_appId_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsDeliveryModePresent() { return m_deliveryMode_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsCorrelationIdPresent() { return m_correlationId_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsExpirationPresent() { return m_expiration_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsTypePresent() { return m_type_present; }
-    public override bool IsUserIdPresent() { return m_userId_present; }
-    public override bool IsAppIdPresent() { return m_appId_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public BasicProperties() {}
-    public override int ProtocolClassId { get { return 60; } }
-    public override string ProtocolClassName { get { return "basic"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_deliveryMode_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_correlationId_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_expiration_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_type_present = reader.ReadPresence();
-      m_userId_present = reader.ReadPresence();
-      m_appId_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_deliveryMode_present) { m_deliveryMode = reader.ReadOctet(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_correlationId_present) { m_correlationId = reader.ReadShortstr(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_expiration_present) { m_expiration = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_type_present) { m_type = reader.ReadShortstr(); }
-      if (m_userId_present) { m_userId = reader.ReadShortstr(); }
-      if (m_appId_present) { m_appId = reader.ReadShortstr(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_deliveryMode_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_correlationId_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_expiration_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_type_present);
-      writer.WritePresence(m_userId_present);
-      writer.WritePresence(m_appId_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_deliveryMode_present) { writer.WriteOctet(m_deliveryMode); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_correlationId_present) { writer.WriteShortstr(m_correlationId); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_expiration_present) { writer.WriteShortstr(m_expiration); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_type_present) { writer.WriteShortstr(m_type); }
-      if (m_userId_present) { writer.WriteShortstr(m_userId); }
-      if (m_appId_present) { writer.WriteShortstr(m_appId); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content-type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content-encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("delivery-mode="); sb.Append(m_deliveryMode_present ? m_deliveryMode.ToString() : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("correlation-id="); sb.Append(m_correlationId_present ? (m_correlationId == null ? "(null)" : m_correlationId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("reply-to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("expiration="); sb.Append(m_expiration_present ? (m_expiration == null ? "(null)" : m_expiration.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message-id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("type="); sb.Append(m_type_present ? (m_type == null ? "(null)" : m_type.ToString()) : "_"); sb.Append(", ");
-      sb.Append("user-id="); sb.Append(m_userId_present ? (m_userId == null ? "(null)" : m_userId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("app-id="); sb.Append(m_appId_present ? (m_appId == null ? "(null)" : m_appId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("cluster-id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "file"</summary>
-  public class FileProperties: RabbitMQ.Client.Impl.FileProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private string m_replyTo;
-    private string m_messageId;
-    private string m_filename;
-    private AmqpTimestamp m_timestamp;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_messageId_present = false;
-    private bool m_filename_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override string Filename {
-      get {
-        return m_filename;
-      }
-      set {
-        m_filename_present = true;
-        m_filename = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearFilename() { m_filename_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsFilenamePresent() { return m_filename_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public FileProperties() {}
-    public override int ProtocolClassId { get { return 70; } }
-    public override string ProtocolClassName { get { return "file"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_filename_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_filename_present) { m_filename = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_filename_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_filename_present) { writer.WriteShortstr(m_filename); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content-type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content-encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("reply-to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message-id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("filename="); sb.Append(m_filename_present ? (m_filename == null ? "(null)" : m_filename.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("cluster-id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "stream"</summary>
-  public class StreamProperties: RabbitMQ.Client.Impl.StreamProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private AmqpTimestamp m_timestamp;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_timestamp_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-
-    public StreamProperties() {}
-    public override int ProtocolClassId { get { return 80; } }
-    public override string ProtocolClassName { get { return "stream"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content-type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content-encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "tunnel"</summary>
-  public class TunnelProperties: RabbitMQ.Client.Impl.ContentHeaderBase {
-    private System.Collections.IDictionary m_headers;
-    private string m_proxyName;
-    private string m_dataName;
-    private byte m_durable;
-    private byte m_broadcast;
-
-    private bool m_headers_present = false;
-    private bool m_proxyName_present = false;
-    private bool m_dataName_present = false;
-    private bool m_durable_present = false;
-    private bool m_broadcast_present = false;
-
-    public System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public string ProxyName {
-      get {
-        return m_proxyName;
-      }
-      set {
-        m_proxyName_present = true;
-        m_proxyName = value;
-      }
-    }
-    public string DataName {
-      get {
-        return m_dataName;
-      }
-      set {
-        m_dataName_present = true;
-        m_dataName = value;
-      }
-    }
-    public byte Durable {
-      get {
-        return m_durable;
-      }
-      set {
-        m_durable_present = true;
-        m_durable = value;
-      }
-    }
-    public byte Broadcast {
-      get {
-        return m_broadcast;
-      }
-      set {
-        m_broadcast_present = true;
-        m_broadcast = value;
-      }
-    }
-
-    public void ClearHeaders() { m_headers_present = false; }
-    public void ClearProxyName() { m_proxyName_present = false; }
-    public void ClearDataName() { m_dataName_present = false; }
-    public void ClearDurable() { m_durable_present = false; }
-    public void ClearBroadcast() { m_broadcast_present = false; }
-
-    public bool IsHeadersPresent() { return m_headers_present; }
-    public bool IsProxyNamePresent() { return m_proxyName_present; }
-    public bool IsDataNamePresent() { return m_dataName_present; }
-    public bool IsDurablePresent() { return m_durable_present; }
-    public bool IsBroadcastPresent() { return m_broadcast_present; }
-
-    public TunnelProperties() {}
-    public override int ProtocolClassId { get { return 110; } }
-    public override string ProtocolClassName { get { return "tunnel"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_headers_present = reader.ReadPresence();
-      m_proxyName_present = reader.ReadPresence();
-      m_dataName_present = reader.ReadPresence();
-      m_durable_present = reader.ReadPresence();
-      m_broadcast_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_proxyName_present) { m_proxyName = reader.ReadShortstr(); }
-      if (m_dataName_present) { m_dataName = reader.ReadShortstr(); }
-      if (m_durable_present) { m_durable = reader.ReadOctet(); }
-      if (m_broadcast_present) { m_broadcast = reader.ReadOctet(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_proxyName_present);
-      writer.WritePresence(m_dataName_present);
-      writer.WritePresence(m_durable_present);
-      writer.WritePresence(m_broadcast_present);
-      writer.FinishPresence();
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_proxyName_present) { writer.WriteShortstr(m_proxyName); }
-      if (m_dataName_present) { writer.WriteShortstr(m_dataName); }
-      if (m_durable_present) { writer.WriteOctet(m_durable); }
-      if (m_broadcast_present) { writer.WriteOctet(m_broadcast); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("proxy-name="); sb.Append(m_proxyName_present ? (m_proxyName == null ? "(null)" : m_proxyName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("data-name="); sb.Append(m_dataName_present ? (m_dataName == null ? "(null)" : m_dataName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("durable="); sb.Append(m_durable_present ? m_durable.ToString() : "_"); sb.Append(", ");
-      sb.Append("broadcast="); sb.Append(m_broadcast_present ? m_broadcast.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-}
-namespace RabbitMQ.Client.Framing.Impl.v0_9 {
-  using RabbitMQ.Client.Framing.v0_9;
-  public enum ClassId {
-    Connection = 10,
-    Channel = 20,
-    Access = 30,
-    Exchange = 40,
-    Queue = 50,
-    Basic = 60,
-    File = 70,
-    Stream = 80,
-    Tx = 90,
-    Dtx = 100,
-    Tunnel = 110,
-    Message = 120,
-    Invalid = -1
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStart: RabbitMQ.Client.Impl.MethodBase, IConnectionStart {
-    public const int ClassId = 10;
-    public const int MethodId = 10;
-
-    public byte m_versionMajor;
-    public byte m_versionMinor;
-    public System.Collections.IDictionary m_serverProperties;
-    public byte[] m_mechanisms;
-    public byte[] m_locales;
-
-    byte IConnectionStart.VersionMajor { get { return m_versionMajor; } }
-    byte IConnectionStart.VersionMinor { get { return m_versionMinor; } }
-    System.Collections.IDictionary IConnectionStart.ServerProperties { get { return m_serverProperties; } }
-    byte[] IConnectionStart.Mechanisms { get { return m_mechanisms; } }
-    byte[] IConnectionStart.Locales { get { return m_locales; } }
-
-    public ConnectionStart() {}
-    public ConnectionStart(
-      byte initVersionMajor,
-      byte initVersionMinor,
-      System.Collections.IDictionary initServerProperties,
-      byte[] initMechanisms,
-      byte[] initLocales)
-    {
-      m_versionMajor = initVersionMajor;
-      m_versionMinor = initVersionMinor;
-      m_serverProperties = initServerProperties;
-      m_mechanisms = initMechanisms;
-      m_locales = initLocales;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "connection.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_versionMajor = reader.ReadOctet();
-      m_versionMinor = reader.ReadOctet();
-      m_serverProperties = reader.ReadTable();
-      m_mechanisms = reader.ReadLongstr();
-      m_locales = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteOctet(m_versionMajor);
-      writer.WriteOctet(m_versionMinor);
-      writer.WriteTable(m_serverProperties);
-      writer.WriteLongstr(m_mechanisms);
-      writer.WriteLongstr(m_locales);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_versionMajor); sb.Append(",");
-      sb.Append(m_versionMinor); sb.Append(",");
-      sb.Append(m_serverProperties); sb.Append(",");
-      sb.Append(m_mechanisms); sb.Append(",");
-      sb.Append(m_locales);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStartOk: RabbitMQ.Client.Impl.MethodBase, IConnectionStartOk {
-    public const int ClassId = 10;
-    public const int MethodId = 11;
-
-    public System.Collections.IDictionary m_clientProperties;
-    public string m_mechanism;
-    public byte[] m_response;
-    public string m_locale;
-
-    System.Collections.IDictionary IConnectionStartOk.ClientProperties { get { return m_clientProperties; } }
-    string IConnectionStartOk.Mechanism { get { return m_mechanism; } }
-    byte[] IConnectionStartOk.Response { get { return m_response; } }
-    string IConnectionStartOk.Locale { get { return m_locale; } }
-
-    public ConnectionStartOk() {}
-    public ConnectionStartOk(
-      System.Collections.IDictionary initClientProperties,
-      string initMechanism,
-      byte[] initResponse,
-      string initLocale)
-    {
-      m_clientProperties = initClientProperties;
-      m_mechanism = initMechanism;
-      m_response = initResponse;
-      m_locale = initLocale;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "connection.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clientProperties = reader.ReadTable();
-      m_mechanism = reader.ReadShortstr();
-      m_response = reader.ReadLongstr();
-      m_locale = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_clientProperties);
-      writer.WriteShortstr(m_mechanism);
-      writer.WriteLongstr(m_response);
-      writer.WriteShortstr(m_locale);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clientProperties); sb.Append(",");
-      sb.Append(m_mechanism); sb.Append(",");
-      sb.Append(m_response); sb.Append(",");
-      sb.Append(m_locale);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecure: RabbitMQ.Client.Impl.MethodBase, IConnectionSecure {
-    public const int ClassId = 10;
-    public const int MethodId = 20;
-
-    public byte[] m_challenge;
-
-    byte[] IConnectionSecure.Challenge { get { return m_challenge; } }
-
-    public ConnectionSecure() {}
-    public ConnectionSecure(
-      byte[] initChallenge)
-    {
-      m_challenge = initChallenge;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "connection.secure"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_challenge = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_challenge);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_challenge);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecureOk: RabbitMQ.Client.Impl.MethodBase, IConnectionSecureOk {
-    public const int ClassId = 10;
-    public const int MethodId = 21;
-
-    public byte[] m_response;
-
-    byte[] IConnectionSecureOk.Response { get { return m_response; } }
-
-    public ConnectionSecureOk() {}
-    public ConnectionSecureOk(
-      byte[] initResponse)
-    {
-      m_response = initResponse;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "connection.secure-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_response = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_response);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_response);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTune: RabbitMQ.Client.Impl.MethodBase, IConnectionTune {
-    public const int ClassId = 10;
-    public const int MethodId = 30;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTune.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTune.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTune.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTune() {}
-    public ConnectionTune(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "connection.tune"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTuneOk: RabbitMQ.Client.Impl.MethodBase, IConnectionTuneOk {
-    public const int ClassId = 10;
-    public const int MethodId = 31;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTuneOk.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTuneOk.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTuneOk.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTuneOk() {}
-    public ConnectionTuneOk(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "connection.tune-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpen: RabbitMQ.Client.Impl.MethodBase, IConnectionOpen {
-    public const int ClassId = 10;
-    public const int MethodId = 40;
-
-    public string m_virtualHost;
-    public string m_capabilities;
-    public bool m_insist;
-
-    string IConnectionOpen.VirtualHost { get { return m_virtualHost; } }
-    string IConnectionOpen.Capabilities { get { return m_capabilities; } }
-    bool IConnectionOpen.Insist { get { return m_insist; } }
-
-    public ConnectionOpen() {}
-    public ConnectionOpen(
-      string initVirtualHost,
-      string initCapabilities,
-      bool initInsist)
-    {
-      m_virtualHost = initVirtualHost;
-      m_capabilities = initCapabilities;
-      m_insist = initInsist;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "connection.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_virtualHost = reader.ReadShortstr();
-      m_capabilities = reader.ReadShortstr();
-      m_insist = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_virtualHost);
-      writer.WriteShortstr(m_capabilities);
-      writer.WriteBit(m_insist);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_virtualHost); sb.Append(",");
-      sb.Append(m_capabilities); sb.Append(",");
-      sb.Append(m_insist);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpenOk: RabbitMQ.Client.Impl.MethodBase, IConnectionOpenOk {
-    public const int ClassId = 10;
-    public const int MethodId = 41;
-
-    public string m_knownHosts;
-
-    string IConnectionOpenOk.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionOpenOk() {}
-    public ConnectionOpenOk(
-      string initKnownHosts)
-    {
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "connection.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionRedirect: RabbitMQ.Client.Impl.MethodBase, IConnectionRedirect {
-    public const int ClassId = 10;
-    public const int MethodId = 42;
-
-    public string m_host;
-    public string m_knownHosts;
-
-    string IConnectionRedirect.Host { get { return m_host; } }
-    string IConnectionRedirect.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionRedirect() {}
-    public ConnectionRedirect(
-      string initHost,
-      string initKnownHosts)
-    {
-      m_host = initHost;
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 42; } }
-    public override string ProtocolMethodName { get { return "connection.redirect"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_host = reader.ReadShortstr();
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_host);
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_host); sb.Append(",");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionClose: RabbitMQ.Client.Impl.MethodBase, IConnectionClose {
-    public const int ClassId = 10;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IConnectionClose.ReplyCode { get { return m_replyCode; } }
-    string IConnectionClose.ReplyText { get { return m_replyText; } }
-    ushort IConnectionClose.ClassId { get { return m_classId; } }
-    ushort IConnectionClose.MethodId { get { return m_methodId; } }
-
-    public ConnectionClose() {}
-    public ConnectionClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "connection.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionCloseOk: RabbitMQ.Client.Impl.MethodBase, IConnectionCloseOk {
-    public const int ClassId = 10;
-    public const int MethodId = 51;
-
-
-
-    public ConnectionCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 51; } }
-    public override string ProtocolMethodName { get { return "connection.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpen: RabbitMQ.Client.Impl.MethodBase, IChannelOpen {
-    public const int ClassId = 20;
-    public const int MethodId = 10;
-
-    public string m_outOfBand;
-
-    string IChannelOpen.OutOfBand { get { return m_outOfBand; } }
-
-    public ChannelOpen() {}
-    public ChannelOpen(
-      string initOutOfBand)
-    {
-      m_outOfBand = initOutOfBand;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "channel.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_outOfBand = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_outOfBand);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_outOfBand);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpenOk: RabbitMQ.Client.Impl.MethodBase, IChannelOpenOk {
-    public const int ClassId = 20;
-    public const int MethodId = 11;
-
-    public byte[] m_channelId;
-
-    byte[] IChannelOpenOk.ChannelId { get { return m_channelId; } }
-
-    public ChannelOpenOk() {}
-    public ChannelOpenOk(
-      byte[] initChannelId)
-    {
-      m_channelId = initChannelId;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "channel.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelId = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_channelId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlow: RabbitMQ.Client.Impl.MethodBase, IChannelFlow {
-    public const int ClassId = 20;
-    public const int MethodId = 20;
-
-    public bool m_active;
-
-    bool IChannelFlow.Active { get { return m_active; } }
-
-    public ChannelFlow() {}
-    public ChannelFlow(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "channel.flow"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlowOk: RabbitMQ.Client.Impl.MethodBase, IChannelFlowOk {
-    public const int ClassId = 20;
-    public const int MethodId = 21;
-
-    public bool m_active;
-
-    bool IChannelFlowOk.Active { get { return m_active; } }
-
-    public ChannelFlowOk() {}
-    public ChannelFlowOk(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "channel.flow-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelClose: RabbitMQ.Client.Impl.MethodBase, IChannelClose {
-    public const int ClassId = 20;
-    public const int MethodId = 40;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IChannelClose.ReplyCode { get { return m_replyCode; } }
-    string IChannelClose.ReplyText { get { return m_replyText; } }
-    ushort IChannelClose.ClassId { get { return m_classId; } }
-    ushort IChannelClose.MethodId { get { return m_methodId; } }
-
-    public ChannelClose() {}
-    public ChannelClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "channel.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelCloseOk: RabbitMQ.Client.Impl.MethodBase, IChannelCloseOk {
-    public const int ClassId = 20;
-    public const int MethodId = 41;
-
-
-
-    public ChannelCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "channel.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelResume: RabbitMQ.Client.Impl.MethodBase, IChannelResume {
-    public const int ClassId = 20;
-    public const int MethodId = 50;
-
-    public byte[] m_channelId;
-
-    byte[] IChannelResume.ChannelId { get { return m_channelId; } }
-
-    public ChannelResume() {}
-    public ChannelResume(
-      byte[] initChannelId)
-    {
-      m_channelId = initChannelId;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "channel.resume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelId = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_channelId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelPing: RabbitMQ.Client.Impl.MethodBase, IChannelPing {
-    public const int ClassId = 20;
-    public const int MethodId = 60;
-
-
-
-    public ChannelPing(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "channel.ping"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelPong: RabbitMQ.Client.Impl.MethodBase, IChannelPong {
-    public const int ClassId = 20;
-    public const int MethodId = 70;
-
-
-
-    public ChannelPong(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "channel.pong"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOk: RabbitMQ.Client.Impl.MethodBase, IChannelOk {
-    public const int ClassId = 20;
-    public const int MethodId = 80;
-
-
-
-    public ChannelOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "channel.ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequest: RabbitMQ.Client.Impl.MethodBase, IAccessRequest {
-    public const int ClassId = 30;
-    public const int MethodId = 10;
-
-    public string m_realm;
-    public bool m_exclusive;
-    public bool m_passive;
-    public bool m_active;
-    public bool m_write;
-    public bool m_read;
-
-    string IAccessRequest.Realm { get { return m_realm; } }
-    bool IAccessRequest.Exclusive { get { return m_exclusive; } }
-    bool IAccessRequest.Passive { get { return m_passive; } }
-    bool IAccessRequest.Active { get { return m_active; } }
-    bool IAccessRequest.Write { get { return m_write; } }
-    bool IAccessRequest.Read { get { return m_read; } }
-
-    public AccessRequest() {}
-    public AccessRequest(
-      string initRealm,
-      bool initExclusive,
-      bool initPassive,
-      bool initActive,
-      bool initWrite,
-      bool initRead)
-    {
-      m_realm = initRealm;
-      m_exclusive = initExclusive;
-      m_passive = initPassive;
-      m_active = initActive;
-      m_write = initWrite;
-      m_read = initRead;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "access.request"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_realm = reader.ReadShortstr();
-      m_exclusive = reader.ReadBit();
-      m_passive = reader.ReadBit();
-      m_active = reader.ReadBit();
-      m_write = reader.ReadBit();
-      m_read = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_realm);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_active);
-      writer.WriteBit(m_write);
-      writer.WriteBit(m_read);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_realm); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_active); sb.Append(",");
-      sb.Append(m_write); sb.Append(",");
-      sb.Append(m_read);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequestOk: RabbitMQ.Client.Impl.MethodBase, IAccessRequestOk {
-    public const int ClassId = 30;
-    public const int MethodId = 11;
-
-    public ushort m_ticket;
-
-    ushort IAccessRequestOk.Ticket { get { return m_ticket; } }
-
-    public AccessRequestOk() {}
-    public AccessRequestOk(
-      ushort initTicket)
-    {
-      m_ticket = initTicket;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "access.request-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclare: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclare {
-    public const int ClassId = 40;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_type;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_autoDelete;
-    public bool m_internal;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IExchangeDeclare.Ticket { get { return m_ticket; } }
-    string IExchangeDeclare.Exchange { get { return m_exchange; } }
-    string IExchangeDeclare.Type { get { return m_type; } }
-    bool IExchangeDeclare.Passive { get { return m_passive; } }
-    bool IExchangeDeclare.Durable { get { return m_durable; } }
-    bool IExchangeDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IExchangeDeclare.Internal { get { return m_internal; } }
-    bool IExchangeDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IExchangeDeclare.Arguments { get { return m_arguments; } }
-
-    public ExchangeDeclare() {}
-    public ExchangeDeclare(
-      ushort initTicket,
-      string initExchange,
-      string initType,
-      bool initPassive,
-      bool initDurable,
-      bool initAutoDelete,
-      bool initInternal,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_type = initType;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_autoDelete = initAutoDelete;
-      m_internal = initInternal;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "exchange.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_type = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_internal = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_type);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_internal);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_type); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_internal); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclareOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclareOk {
-    public const int ClassId = 40;
-    public const int MethodId = 11;
-
-
-
-    public ExchangeDeclareOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "exchange.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDelete: RabbitMQ.Client.Impl.MethodBase, IExchangeDelete {
-    public const int ClassId = 40;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public bool m_ifUnused;
-    public bool m_nowait;
-
-    ushort IExchangeDelete.Ticket { get { return m_ticket; } }
-    string IExchangeDelete.Exchange { get { return m_exchange; } }
-    bool IExchangeDelete.IfUnused { get { return m_ifUnused; } }
-    bool IExchangeDelete.Nowait { get { return m_nowait; } }
-
-    public ExchangeDelete() {}
-    public ExchangeDelete(
-      ushort initTicket,
-      string initExchange,
-      bool initIfUnused,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_ifUnused = initIfUnused;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "exchange.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeleteOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeleteOk {
-    public const int ClassId = 40;
-    public const int MethodId = 21;
-
-
-
-    public ExchangeDeleteOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "exchange.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclare: RabbitMQ.Client.Impl.MethodBase, IQueueDeclare {
-    public const int ClassId = 50;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_exclusive;
-    public bool m_autoDelete;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueDeclare.Ticket { get { return m_ticket; } }
-    string IQueueDeclare.Queue { get { return m_queue; } }
-    bool IQueueDeclare.Passive { get { return m_passive; } }
-    bool IQueueDeclare.Durable { get { return m_durable; } }
-    bool IQueueDeclare.Exclusive { get { return m_exclusive; } }
-    bool IQueueDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IQueueDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueDeclare.Arguments { get { return m_arguments; } }
-
-    public QueueDeclare() {}
-    public QueueDeclare(
-      ushort initTicket,
-      string initQueue,
-      bool initPassive,
-      bool initDurable,
-      bool initExclusive,
-      bool initAutoDelete,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_exclusive = initExclusive;
-      m_autoDelete = initAutoDelete;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "queue.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclareOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeclareOk {
-    public const int ClassId = 50;
-    public const int MethodId = 11;
-
-    public string m_queue;
-    public uint m_messageCount;
-    public uint m_consumerCount;
-
-    string IQueueDeclareOk.Queue { get { return m_queue; } }
-    uint IQueueDeclareOk.MessageCount { get { return m_messageCount; } }
-    uint IQueueDeclareOk.ConsumerCount { get { return m_consumerCount; } }
-
-    public QueueDeclareOk() {}
-    public QueueDeclareOk(
-      string initQueue,
-      uint initMessageCount,
-      uint initConsumerCount)
-    {
-      m_queue = initQueue;
-      m_messageCount = initMessageCount;
-      m_consumerCount = initConsumerCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "queue.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_queue = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-      m_consumerCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_queue);
-      writer.WriteLong(m_messageCount);
-      writer.WriteLong(m_consumerCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_messageCount); sb.Append(",");
-      sb.Append(m_consumerCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBind: RabbitMQ.Client.Impl.MethodBase, IQueueBind {
-    public const int ClassId = 50;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueBind.Ticket { get { return m_ticket; } }
-    string IQueueBind.Queue { get { return m_queue; } }
-    string IQueueBind.Exchange { get { return m_exchange; } }
-    string IQueueBind.RoutingKey { get { return m_routingKey; } }
-    bool IQueueBind.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueBind.Arguments { get { return m_arguments; } }
-
-    public QueueBind() {}
-    public QueueBind(
-      ushort initTicket,
-      string initQueue,
-      string initExchange,
-      string initRoutingKey,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "queue.bind"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBindOk: RabbitMQ.Client.Impl.MethodBase, IQueueBindOk {
-    public const int ClassId = 50;
-    public const int MethodId = 21;
-
-
-
-    public QueueBindOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "queue.bind-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueUnbind: RabbitMQ.Client.Impl.MethodBase, IQueueUnbind {
-    public const int ClassId = 50;
-    public const int MethodId = 50;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_exchange;
-    public string m_routingKey;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueUnbind.Ticket { get { return m_ticket; } }
-    string IQueueUnbind.Queue { get { return m_queue; } }
-    string IQueueUnbind.Exchange { get { return m_exchange; } }
-    string IQueueUnbind.RoutingKey { get { return m_routingKey; } }
-    System.Collections.IDictionary IQueueUnbind.Arguments { get { return m_arguments; } }
-
-    public QueueUnbind() {}
-    public QueueUnbind(
-      ushort initTicket,
-      string initQueue,
-      string initExchange,
-      string initRoutingKey,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "queue.unbind"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueUnbindOk: RabbitMQ.Client.Impl.MethodBase, IQueueUnbindOk {
-    public const int ClassId = 50;
-    public const int MethodId = 51;
-
-
-
-    public QueueUnbindOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 51; } }
-    public override string ProtocolMethodName { get { return "queue.unbind-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurge: RabbitMQ.Client.Impl.MethodBase, IQueuePurge {
-    public const int ClassId = 50;
-    public const int MethodId = 30;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_nowait;
-
-    ushort IQueuePurge.Ticket { get { return m_ticket; } }
-    string IQueuePurge.Queue { get { return m_queue; } }
-    bool IQueuePurge.Nowait { get { return m_nowait; } }
-
-    public QueuePurge() {}
-    public QueuePurge(
-      ushort initTicket,
-      string initQueue,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "queue.purge"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurgeOk: RabbitMQ.Client.Impl.MethodBase, IQueuePurgeOk {
-    public const int ClassId = 50;
-    public const int MethodId = 31;
-
-    public uint m_messageCount;
-
-    uint IQueuePurgeOk.MessageCount { get { return m_messageCount; } }
-
-    public QueuePurgeOk() {}
-    public QueuePurgeOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "queue.purge-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDelete: RabbitMQ.Client.Impl.MethodBase, IQueueDelete {
-    public const int ClassId = 50;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_ifUnused;
-    public bool m_ifEmpty;
-    public bool m_nowait;
-
-    ushort IQueueDelete.Ticket { get { return m_ticket; } }
-    string IQueueDelete.Queue { get { return m_queue; } }
-    bool IQueueDelete.IfUnused { get { return m_ifUnused; } }
-    bool IQueueDelete.IfEmpty { get { return m_ifEmpty; } }
-    bool IQueueDelete.Nowait { get { return m_nowait; } }
-
-    public QueueDelete() {}
-    public QueueDelete(
-      ushort initTicket,
-      string initQueue,
-      bool initIfUnused,
-      bool initIfEmpty,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_ifUnused = initIfUnused;
-      m_ifEmpty = initIfEmpty;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "queue.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_ifEmpty = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_ifEmpty);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_ifEmpty); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeleteOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeleteOk {
-    public const int ClassId = 50;
-    public const int MethodId = 41;
-
-    public uint m_messageCount;
-
-    uint IQueueDeleteOk.MessageCount { get { return m_messageCount; } }
-
-    public QueueDeleteOk() {}
-    public QueueDeleteOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "queue.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQos: RabbitMQ.Client.Impl.MethodBase, IBasicQos {
-    public const int ClassId = 60;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IBasicQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IBasicQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IBasicQos.Global { get { return m_global; } }
-
-    public BasicQos() {}
-    public BasicQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "basic.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQosOk: RabbitMQ.Client.Impl.MethodBase, IBasicQosOk {
-    public const int ClassId = 60;
-    public const int MethodId = 11;
-
-
-
-    public BasicQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "basic.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsume: RabbitMQ.Client.Impl.MethodBase, IBasicConsume {
-    public const int ClassId = 60;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_filter;
-
-    ushort IBasicConsume.Ticket { get { return m_ticket; } }
-    string IBasicConsume.Queue { get { return m_queue; } }
-    string IBasicConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicConsume.NoLocal { get { return m_noLocal; } }
-    bool IBasicConsume.NoAck { get { return m_noAck; } }
-    bool IBasicConsume.Exclusive { get { return m_exclusive; } }
-    bool IBasicConsume.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IBasicConsume.Filter { get { return m_filter; } }
-
-    public BasicConsume() {}
-    public BasicConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait,
-      System.Collections.IDictionary initFilter)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-      m_filter = initFilter;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "basic.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_filter = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_filter);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_filter);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsumeOk: RabbitMQ.Client.Impl.MethodBase, IBasicConsumeOk {
-    public const int ClassId = 60;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IBasicConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicConsumeOk() {}
-    public BasicConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "basic.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancel: RabbitMQ.Client.Impl.MethodBase, IBasicCancel {
-    public const int ClassId = 60;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IBasicCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicCancel.Nowait { get { return m_nowait; } }
-
-    public BasicCancel() {}
-    public BasicCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "basic.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancelOk: RabbitMQ.Client.Impl.MethodBase, IBasicCancelOk {
-    public const int ClassId = 60;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IBasicCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicCancelOk() {}
-    public BasicCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "basic.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicPublish: RabbitMQ.Client.Impl.MethodBase, IBasicPublish {
-    public const int ClassId = 60;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IBasicPublish.Ticket { get { return m_ticket; } }
-    string IBasicPublish.Exchange { get { return m_exchange; } }
-    string IBasicPublish.RoutingKey { get { return m_routingKey; } }
-    bool IBasicPublish.Mandatory { get { return m_mandatory; } }
-    bool IBasicPublish.Immediate { get { return m_immediate; } }
-
-    public BasicPublish() {}
-    public BasicPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "basic.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReturn: RabbitMQ.Client.Impl.MethodBase, IBasicReturn {
-    public const int ClassId = 60;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IBasicReturn.ReplyCode { get { return m_replyCode; } }
-    string IBasicReturn.ReplyText { get { return m_replyText; } }
-    string IBasicReturn.Exchange { get { return m_exchange; } }
-    string IBasicReturn.RoutingKey { get { return m_routingKey; } }
-
-    public BasicReturn() {}
-    public BasicReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "basic.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicDeliver: RabbitMQ.Client.Impl.MethodBase, IBasicDeliver {
-    public const int ClassId = 60;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-
-    string IBasicDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IBasicDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicDeliver.Redelivered { get { return m_redelivered; } }
-    string IBasicDeliver.Exchange { get { return m_exchange; } }
-    string IBasicDeliver.RoutingKey { get { return m_routingKey; } }
-
-    public BasicDeliver() {}
-    public BasicDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "basic.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGet: RabbitMQ.Client.Impl.MethodBase, IBasicGet {
-    public const int ClassId = 60;
-    public const int MethodId = 70;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_noAck;
-
-    ushort IBasicGet.Ticket { get { return m_ticket; } }
-    string IBasicGet.Queue { get { return m_queue; } }
-    bool IBasicGet.NoAck { get { return m_noAck; } }
-
-    public BasicGet() {}
-    public BasicGet(
-      ushort initTicket,
-      string initQueue,
-      bool initNoAck)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_noAck = initNoAck;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "basic.get"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_noAck = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_noAck);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_noAck);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetOk: RabbitMQ.Client.Impl.MethodBase, IBasicGetOk {
-    public const int ClassId = 60;
-    public const int MethodId = 71;
-
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public uint m_messageCount;
-
-    ulong IBasicGetOk.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicGetOk.Redelivered { get { return m_redelivered; } }
-    string IBasicGetOk.Exchange { get { return m_exchange; } }
-    string IBasicGetOk.RoutingKey { get { return m_routingKey; } }
-    uint IBasicGetOk.MessageCount { get { return m_messageCount; } }
-
-    public BasicGetOk() {}
-    public BasicGetOk(
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      uint initMessageCount)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 71; } }
-    public override string ProtocolMethodName { get { return "basic.get-ok"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetEmpty: RabbitMQ.Client.Impl.MethodBase, IBasicGetEmpty {
-    public const int ClassId = 60;
-    public const int MethodId = 72;
-
-    public string m_clusterId;
-
-    string IBasicGetEmpty.ClusterId { get { return m_clusterId; } }
-
-    public BasicGetEmpty() {}
-    public BasicGetEmpty(
-      string initClusterId)
-    {
-      m_clusterId = initClusterId;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 72; } }
-    public override string ProtocolMethodName { get { return "basic.get-empty"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clusterId = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_clusterId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clusterId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicAck: RabbitMQ.Client.Impl.MethodBase, IBasicAck {
-    public const int ClassId = 60;
-    public const int MethodId = 80;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IBasicAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicAck.Multiple { get { return m_multiple; } }
-
-    public BasicAck() {}
-    public BasicAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "basic.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReject: RabbitMQ.Client.Impl.MethodBase, IBasicReject {
-    public const int ClassId = 60;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IBasicReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicReject.Requeue { get { return m_requeue; } }
-
-    public BasicReject() {}
-    public BasicReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "basic.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicRecover: RabbitMQ.Client.Impl.MethodBase, IBasicRecover {
-    public const int ClassId = 60;
-    public const int MethodId = 100;
-
-    public bool m_requeue;
-
-    bool IBasicRecover.Requeue { get { return m_requeue; } }
-
-    public BasicRecover() {}
-    public BasicRecover(
-      bool initRequeue)
-    {
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "basic.recover"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQos: RabbitMQ.Client.Impl.MethodBase, IFileQos {
-    public const int ClassId = 70;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IFileQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IFileQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IFileQos.Global { get { return m_global; } }
-
-    public FileQos() {}
-    public FileQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "file.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQosOk: RabbitMQ.Client.Impl.MethodBase, IFileQosOk {
-    public const int ClassId = 70;
-    public const int MethodId = 11;
-
-
-
-    public FileQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "file.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsume: RabbitMQ.Client.Impl.MethodBase, IFileConsume {
-    public const int ClassId = 70;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_filter;
-
-    ushort IFileConsume.Ticket { get { return m_ticket; } }
-    string IFileConsume.Queue { get { return m_queue; } }
-    string IFileConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileConsume.NoLocal { get { return m_noLocal; } }
-    bool IFileConsume.NoAck { get { return m_noAck; } }
-    bool IFileConsume.Exclusive { get { return m_exclusive; } }
-    bool IFileConsume.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IFileConsume.Filter { get { return m_filter; } }
-
-    public FileConsume() {}
-    public FileConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait,
-      System.Collections.IDictionary initFilter)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-      m_filter = initFilter;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "file.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_filter = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_filter);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_filter);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsumeOk: RabbitMQ.Client.Impl.MethodBase, IFileConsumeOk {
-    public const int ClassId = 70;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IFileConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileConsumeOk() {}
-    public FileConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "file.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancel: RabbitMQ.Client.Impl.MethodBase, IFileCancel {
-    public const int ClassId = 70;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IFileCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileCancel.Nowait { get { return m_nowait; } }
-
-    public FileCancel() {}
-    public FileCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "file.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancelOk: RabbitMQ.Client.Impl.MethodBase, IFileCancelOk {
-    public const int ClassId = 70;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IFileCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileCancelOk() {}
-    public FileCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "file.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpen: RabbitMQ.Client.Impl.MethodBase, IFileOpen {
-    public const int ClassId = 70;
-    public const int MethodId = 40;
-
-    public string m_identifier;
-    public ulong m_contentSize;
-
-    string IFileOpen.Identifier { get { return m_identifier; } }
-    ulong IFileOpen.ContentSize { get { return m_contentSize; } }
-
-    public FileOpen() {}
-    public FileOpen(
-      string initIdentifier,
-      ulong initContentSize)
-    {
-      m_identifier = initIdentifier;
-      m_contentSize = initContentSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "file.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_identifier = reader.ReadShortstr();
-      m_contentSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_identifier);
-      writer.WriteLonglong(m_contentSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_identifier); sb.Append(",");
-      sb.Append(m_contentSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpenOk: RabbitMQ.Client.Impl.MethodBase, IFileOpenOk {
-    public const int ClassId = 70;
-    public const int MethodId = 41;
-
-    public ulong m_stagedSize;
-
-    ulong IFileOpenOk.StagedSize { get { return m_stagedSize; } }
-
-    public FileOpenOk() {}
-    public FileOpenOk(
-      ulong initStagedSize)
-    {
-      m_stagedSize = initStagedSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "file.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_stagedSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_stagedSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_stagedSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileStage: RabbitMQ.Client.Impl.MethodBase, IFileStage {
-    public const int ClassId = 70;
-    public const int MethodId = 50;
-
-
-
-    public FileStage(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "file.stage"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FilePublish: RabbitMQ.Client.Impl.MethodBase, IFilePublish {
-    public const int ClassId = 70;
-    public const int MethodId = 60;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-    public string m_identifier;
-
-    ushort IFilePublish.Ticket { get { return m_ticket; } }
-    string IFilePublish.Exchange { get { return m_exchange; } }
-    string IFilePublish.RoutingKey { get { return m_routingKey; } }
-    bool IFilePublish.Mandatory { get { return m_mandatory; } }
-    bool IFilePublish.Immediate { get { return m_immediate; } }
-    string IFilePublish.Identifier { get { return m_identifier; } }
-
-    public FilePublish() {}
-    public FilePublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate,
-      string initIdentifier)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "file.publish"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReturn: RabbitMQ.Client.Impl.MethodBase, IFileReturn {
-    public const int ClassId = 70;
-    public const int MethodId = 70;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IFileReturn.ReplyCode { get { return m_replyCode; } }
-    string IFileReturn.ReplyText { get { return m_replyText; } }
-    string IFileReturn.Exchange { get { return m_exchange; } }
-    string IFileReturn.RoutingKey { get { return m_routingKey; } }
-
-    public FileReturn() {}
-    public FileReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "file.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileDeliver: RabbitMQ.Client.Impl.MethodBase, IFileDeliver {
-    public const int ClassId = 70;
-    public const int MethodId = 80;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public string m_identifier;
-
-    string IFileDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IFileDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileDeliver.Redelivered { get { return m_redelivered; } }
-    string IFileDeliver.Exchange { get { return m_exchange; } }
-    string IFileDeliver.RoutingKey { get { return m_routingKey; } }
-    string IFileDeliver.Identifier { get { return m_identifier; } }
-
-    public FileDeliver() {}
-    public FileDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      string initIdentifier)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "file.deliver"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileAck: RabbitMQ.Client.Impl.MethodBase, IFileAck {
-    public const int ClassId = 70;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IFileAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileAck.Multiple { get { return m_multiple; } }
-
-    public FileAck() {}
-    public FileAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "file.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReject: RabbitMQ.Client.Impl.MethodBase, IFileReject {
-    public const int ClassId = 70;
-    public const int MethodId = 100;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IFileReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileReject.Requeue { get { return m_requeue; } }
-
-    public FileReject() {}
-    public FileReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "file.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQos: RabbitMQ.Client.Impl.MethodBase, IStreamQos {
-    public const int ClassId = 80;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public uint m_consumeRate;
-    public bool m_global;
-
-    uint IStreamQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IStreamQos.PrefetchCount { get { return m_prefetchCount; } }
-    uint IStreamQos.ConsumeRate { get { return m_consumeRate; } }
-    bool IStreamQos.Global { get { return m_global; } }
-
-    public StreamQos() {}
-    public StreamQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      uint initConsumeRate,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_consumeRate = initConsumeRate;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "stream.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_consumeRate = reader.ReadLong();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteLong(m_consumeRate);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_consumeRate); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQosOk: RabbitMQ.Client.Impl.MethodBase, IStreamQosOk {
-    public const int ClassId = 80;
-    public const int MethodId = 11;
-
-
-
-    public StreamQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "stream.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsume: RabbitMQ.Client.Impl.MethodBase, IStreamConsume {
-    public const int ClassId = 80;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_exclusive;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_filter;
-
-    ushort IStreamConsume.Ticket { get { return m_ticket; } }
-    string IStreamConsume.Queue { get { return m_queue; } }
-    string IStreamConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamConsume.NoLocal { get { return m_noLocal; } }
-    bool IStreamConsume.Exclusive { get { return m_exclusive; } }
-    bool IStreamConsume.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IStreamConsume.Filter { get { return m_filter; } }
-
-    public StreamConsume() {}
-    public StreamConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initExclusive,
-      bool initNowait,
-      System.Collections.IDictionary initFilter)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-      m_filter = initFilter;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "stream.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_filter = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_filter);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_filter);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsumeOk: RabbitMQ.Client.Impl.MethodBase, IStreamConsumeOk {
-    public const int ClassId = 80;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IStreamConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamConsumeOk() {}
-    public StreamConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "stream.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancel: RabbitMQ.Client.Impl.MethodBase, IStreamCancel {
-    public const int ClassId = 80;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IStreamCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamCancel.Nowait { get { return m_nowait; } }
-
-    public StreamCancel() {}
-    public StreamCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "stream.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancelOk: RabbitMQ.Client.Impl.MethodBase, IStreamCancelOk {
-    public const int ClassId = 80;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IStreamCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamCancelOk() {}
-    public StreamCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "stream.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamPublish: RabbitMQ.Client.Impl.MethodBase, IStreamPublish {
-    public const int ClassId = 80;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IStreamPublish.Ticket { get { return m_ticket; } }
-    string IStreamPublish.Exchange { get { return m_exchange; } }
-    string IStreamPublish.RoutingKey { get { return m_routingKey; } }
-    bool IStreamPublish.Mandatory { get { return m_mandatory; } }
-    bool IStreamPublish.Immediate { get { return m_immediate; } }
-
-    public StreamPublish() {}
-    public StreamPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "stream.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamReturn: RabbitMQ.Client.Impl.MethodBase, IStreamReturn {
-    public const int ClassId = 80;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IStreamReturn.ReplyCode { get { return m_replyCode; } }
-    string IStreamReturn.ReplyText { get { return m_replyText; } }
-    string IStreamReturn.Exchange { get { return m_exchange; } }
-    string IStreamReturn.RoutingKey { get { return m_routingKey; } }
-
-    public StreamReturn() {}
-    public StreamReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "stream.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamDeliver: RabbitMQ.Client.Impl.MethodBase, IStreamDeliver {
-    public const int ClassId = 80;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public string m_exchange;
-    public string m_queue;
-
-    string IStreamDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IStreamDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    string IStreamDeliver.Exchange { get { return m_exchange; } }
-    string IStreamDeliver.Queue { get { return m_queue; } }
-
-    public StreamDeliver() {}
-    public StreamDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      string initExchange,
-      string initQueue)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_exchange = initExchange;
-      m_queue = initQueue;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "stream.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_exchange = reader.ReadShortstr();
-      m_queue = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_queue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_queue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelect: RabbitMQ.Client.Impl.MethodBase, ITxSelect {
-    public const int ClassId = 90;
-    public const int MethodId = 10;
-
-
-
-    public TxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelectOk: RabbitMQ.Client.Impl.MethodBase, ITxSelectOk {
-    public const int ClassId = 90;
-    public const int MethodId = 11;
-
-
-
-    public TxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "tx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommit: RabbitMQ.Client.Impl.MethodBase, ITxCommit {
-    public const int ClassId = 90;
-    public const int MethodId = 20;
-
-
-
-    public TxCommit(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "tx.commit"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommitOk: RabbitMQ.Client.Impl.MethodBase, ITxCommitOk {
-    public const int ClassId = 90;
-    public const int MethodId = 21;
-
-
-
-    public TxCommitOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "tx.commit-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollback: RabbitMQ.Client.Impl.MethodBase, ITxRollback {
-    public const int ClassId = 90;
-    public const int MethodId = 30;
-
-
-
-    public TxRollback(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "tx.rollback"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollbackOk: RabbitMQ.Client.Impl.MethodBase, ITxRollbackOk {
-    public const int ClassId = 90;
-    public const int MethodId = 31;
-
-
-
-    public TxRollbackOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "tx.rollback-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelect: RabbitMQ.Client.Impl.MethodBase, IDtxSelect {
-    public const int ClassId = 100;
-    public const int MethodId = 10;
-
-
-
-    public DtxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "dtx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelectOk: RabbitMQ.Client.Impl.MethodBase, IDtxSelectOk {
-    public const int ClassId = 100;
-    public const int MethodId = 11;
-
-
-
-    public DtxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "dtx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStart: RabbitMQ.Client.Impl.MethodBase, IDtxStart {
-    public const int ClassId = 100;
-    public const int MethodId = 20;
-
-    public string m_dtxIdentifier;
-
-    string IDtxStart.DtxIdentifier { get { return m_dtxIdentifier; } }
-
-    public DtxStart() {}
-    public DtxStart(
-      string initDtxIdentifier)
-    {
-      m_dtxIdentifier = initDtxIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "dtx.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_dtxIdentifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_dtxIdentifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_dtxIdentifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStartOk: RabbitMQ.Client.Impl.MethodBase, IDtxStartOk {
-    public const int ClassId = 100;
-    public const int MethodId = 21;
-
-
-
-    public DtxStartOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "dtx.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TunnelRequest: RabbitMQ.Client.Impl.MethodBase, ITunnelRequest {
-    public const int ClassId = 110;
-    public const int MethodId = 10;
-
-    public System.Collections.IDictionary m_metaData;
-
-    System.Collections.IDictionary ITunnelRequest.MetaData { get { return m_metaData; } }
-
-    public TunnelRequest() {}
-    public TunnelRequest(
-      System.Collections.IDictionary initMetaData)
-    {
-      m_metaData = initMetaData;
-    }
-
-    public override int ProtocolClassId { get { return 110; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tunnel.request"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_metaData = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_metaData);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_metaData);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageTransfer: RabbitMQ.Client.Impl.MethodBase, IMessageTransfer {
-    public const int ClassId = 120;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_destination;
-    public bool m_redelivered;
-    public bool m_immediate;
-    public ulong m_ttl;
-    public byte m_priority;
-    public AmqpTimestamp m_timestamp;
-    public byte m_deliveryMode;
-    public AmqpTimestamp m_expiration;
-    public string m_exchange;
-    public string m_routingKey;
-    public string m_messageId;
-    public string m_correlationId;
-    public string m_replyTo;
-    public string m_contentType;
-    public string m_contentEncoding;
-    public string m_userId;
-    public string m_appId;
-    public string m_transactionId;
-    public byte[] m_securityToken;
-    public System.Collections.IDictionary m_applicationHeaders;
-    public byte[] m_body;
-
-    ushort IMessageTransfer.Ticket { get { return m_ticket; } }
-    string IMessageTransfer.Destination { get { return m_destination; } }
-    bool IMessageTransfer.Redelivered { get { return m_redelivered; } }
-    bool IMessageTransfer.Immediate { get { return m_immediate; } }
-    ulong IMessageTransfer.Ttl { get { return m_ttl; } }
-    byte IMessageTransfer.Priority { get { return m_priority; } }
-    AmqpTimestamp IMessageTransfer.Timestamp { get { return m_timestamp; } }
-    byte IMessageTransfer.DeliveryMode { get { return m_deliveryMode; } }
-    AmqpTimestamp IMessageTransfer.Expiration { get { return m_expiration; } }
-    string IMessageTransfer.Exchange { get { return m_exchange; } }
-    string IMessageTransfer.RoutingKey { get { return m_routingKey; } }
-    string IMessageTransfer.MessageId { get { return m_messageId; } }
-    string IMessageTransfer.CorrelationId { get { return m_correlationId; } }
-    string IMessageTransfer.ReplyTo { get { return m_replyTo; } }
-    string IMessageTransfer.ContentType { get { return m_contentType; } }
-    string IMessageTransfer.ContentEncoding { get { return m_contentEncoding; } }
-    string IMessageTransfer.UserId { get { return m_userId; } }
-    string IMessageTransfer.AppId { get { return m_appId; } }
-    string IMessageTransfer.TransactionId { get { return m_transactionId; } }
-    byte[] IMessageTransfer.SecurityToken { get { return m_securityToken; } }
-    System.Collections.IDictionary IMessageTransfer.ApplicationHeaders { get { return m_applicationHeaders; } }
-    byte[] IMessageTransfer.Body { get { return m_body; } }
-
-    public MessageTransfer() {}
-    public MessageTransfer(
-      ushort initTicket,
-      string initDestination,
-      bool initRedelivered,
-      bool initImmediate,
-      ulong initTtl,
-      byte initPriority,
-      AmqpTimestamp initTimestamp,
-      byte initDeliveryMode,
-      AmqpTimestamp initExpiration,
-      string initExchange,
-      string initRoutingKey,
-      string initMessageId,
-      string initCorrelationId,
-      string initReplyTo,
-      string initContentType,
-      string initContentEncoding,
-      string initUserId,
-      string initAppId,
-      string initTransactionId,
-      byte[] initSecurityToken,
-      System.Collections.IDictionary initApplicationHeaders,
-      byte[] initBody)
-    {
-      m_ticket = initTicket;
-      m_destination = initDestination;
-      m_redelivered = initRedelivered;
-      m_immediate = initImmediate;
-      m_ttl = initTtl;
-      m_priority = initPriority;
-      m_timestamp = initTimestamp;
-      m_deliveryMode = initDeliveryMode;
-      m_expiration = initExpiration;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_messageId = initMessageId;
-      m_correlationId = initCorrelationId;
-      m_replyTo = initReplyTo;
-      m_contentType = initContentType;
-      m_contentEncoding = initContentEncoding;
-      m_userId = initUserId;
-      m_appId = initAppId;
-      m_transactionId = initTransactionId;
-      m_securityToken = initSecurityToken;
-      m_applicationHeaders = initApplicationHeaders;
-      m_body = initBody;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "message.transfer"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_destination = reader.ReadShortstr();
-      m_redelivered = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-      m_ttl = reader.ReadLonglong();
-      m_priority = reader.ReadOctet();
-      m_timestamp = reader.ReadTimestamp();
-      m_deliveryMode = reader.ReadOctet();
-      m_expiration = reader.ReadTimestamp();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_messageId = reader.ReadShortstr();
-      m_correlationId = reader.ReadShortstr();
-      m_replyTo = reader.ReadShortstr();
-      m_contentType = reader.ReadShortstr();
-      m_contentEncoding = reader.ReadShortstr();
-      m_userId = reader.ReadShortstr();
-      m_appId = reader.ReadShortstr();
-      m_transactionId = reader.ReadShortstr();
-      m_securityToken = reader.ReadLongstr();
-      m_applicationHeaders = reader.ReadTable();
-      m_body = reader.ReadContent();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_destination);
-      writer.WriteBit(m_redelivered);
-      writer.WriteBit(m_immediate);
-      writer.WriteLonglong(m_ttl);
-      writer.WriteOctet(m_priority);
-      writer.WriteTimestamp(m_timestamp);
-      writer.WriteOctet(m_deliveryMode);
-      writer.WriteTimestamp(m_expiration);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteShortstr(m_messageId);
-      writer.WriteShortstr(m_correlationId);
-      writer.WriteShortstr(m_replyTo);
-      writer.WriteShortstr(m_contentType);
-      writer.WriteShortstr(m_contentEncoding);
-      writer.WriteShortstr(m_userId);
-      writer.WriteShortstr(m_appId);
-      writer.WriteShortstr(m_transactionId);
-      writer.WriteLongstr(m_securityToken);
-      writer.WriteTable(m_applicationHeaders);
-      writer.WriteContent(m_body);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_destination); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_immediate); sb.Append(",");
-      sb.Append(m_ttl); sb.Append(",");
-      sb.Append(m_priority); sb.Append(",");
-      sb.Append(m_timestamp); sb.Append(",");
-      sb.Append(m_deliveryMode); sb.Append(",");
-      sb.Append(m_expiration); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_messageId); sb.Append(",");
-      sb.Append(m_correlationId); sb.Append(",");
-      sb.Append(m_replyTo); sb.Append(",");
-      sb.Append(m_contentType); sb.Append(",");
-      sb.Append(m_contentEncoding); sb.Append(",");
-      sb.Append(m_userId); sb.Append(",");
-      sb.Append(m_appId); sb.Append(",");
-      sb.Append(m_transactionId); sb.Append(",");
-      sb.Append(m_securityToken); sb.Append(",");
-      sb.Append(m_applicationHeaders); sb.Append(",");
-      sb.Append(m_body);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageConsume: RabbitMQ.Client.Impl.MethodBase, IMessageConsume {
-    public const int ClassId = 120;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_destination;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public System.Collections.IDictionary m_filter;
-
-    ushort IMessageConsume.Ticket { get { return m_ticket; } }
-    string IMessageConsume.Queue { get { return m_queue; } }
-    string IMessageConsume.Destination { get { return m_destination; } }
-    bool IMessageConsume.NoLocal { get { return m_noLocal; } }
-    bool IMessageConsume.NoAck { get { return m_noAck; } }
-    bool IMessageConsume.Exclusive { get { return m_exclusive; } }
-    System.Collections.IDictionary IMessageConsume.Filter { get { return m_filter; } }
-
-    public MessageConsume() {}
-    public MessageConsume(
-      ushort initTicket,
-      string initQueue,
-      string initDestination,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      System.Collections.IDictionary initFilter)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_destination = initDestination;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_filter = initFilter;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "message.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_destination = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_filter = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_destination);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteTable(m_filter);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_destination); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_filter);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageCancel: RabbitMQ.Client.Impl.MethodBase, IMessageCancel {
-    public const int ClassId = 120;
-    public const int MethodId = 30;
-
-    public string m_destination;
-
-    string IMessageCancel.Destination { get { return m_destination; } }
-
-    public MessageCancel() {}
-    public MessageCancel(
-      string initDestination)
-    {
-      m_destination = initDestination;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "message.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_destination = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_destination);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_destination);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageGet: RabbitMQ.Client.Impl.MethodBase, IMessageGet {
-    public const int ClassId = 120;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_destination;
-    public bool m_noAck;
-
-    ushort IMessageGet.Ticket { get { return m_ticket; } }
-    string IMessageGet.Queue { get { return m_queue; } }
-    string IMessageGet.Destination { get { return m_destination; } }
-    bool IMessageGet.NoAck { get { return m_noAck; } }
-
-    public MessageGet() {}
-    public MessageGet(
-      ushort initTicket,
-      string initQueue,
-      string initDestination,
-      bool initNoAck)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_destination = initDestination;
-      m_noAck = initNoAck;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "message.get"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_destination = reader.ReadShortstr();
-      m_noAck = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_destination);
-      writer.WriteBit(m_noAck);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_destination); sb.Append(",");
-      sb.Append(m_noAck);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageRecover: RabbitMQ.Client.Impl.MethodBase, IMessageRecover {
-    public const int ClassId = 120;
-    public const int MethodId = 50;
-
-    public bool m_requeue;
-
-    bool IMessageRecover.Requeue { get { return m_requeue; } }
-
-    public MessageRecover() {}
-    public MessageRecover(
-      bool initRequeue)
-    {
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "message.recover"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageOpen: RabbitMQ.Client.Impl.MethodBase, IMessageOpen {
-    public const int ClassId = 120;
-    public const int MethodId = 60;
-
-    public byte[] m_reference;
-
-    byte[] IMessageOpen.Reference { get { return m_reference; } }
-
-    public MessageOpen() {}
-    public MessageOpen(
-      byte[] initReference)
-    {
-      m_reference = initReference;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "message.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_reference = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_reference);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_reference);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageClose: RabbitMQ.Client.Impl.MethodBase, IMessageClose {
-    public const int ClassId = 120;
-    public const int MethodId = 70;
-
-    public byte[] m_reference;
-
-    byte[] IMessageClose.Reference { get { return m_reference; } }
-
-    public MessageClose() {}
-    public MessageClose(
-      byte[] initReference)
-    {
-      m_reference = initReference;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "message.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_reference = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_reference);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_reference);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageAppend: RabbitMQ.Client.Impl.MethodBase, IMessageAppend {
-    public const int ClassId = 120;
-    public const int MethodId = 80;
-
-    public byte[] m_reference;
-    public byte[] m_bytes;
-
-    byte[] IMessageAppend.Reference { get { return m_reference; } }
-    byte[] IMessageAppend.Bytes { get { return m_bytes; } }
-
-    public MessageAppend() {}
-    public MessageAppend(
-      byte[] initReference,
-      byte[] initBytes)
-    {
-      m_reference = initReference;
-      m_bytes = initBytes;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "message.append"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_reference = reader.ReadLongstr();
-      m_bytes = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_reference);
-      writer.WriteLongstr(m_bytes);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_reference); sb.Append(",");
-      sb.Append(m_bytes);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageCheckpoint: RabbitMQ.Client.Impl.MethodBase, IMessageCheckpoint {
-    public const int ClassId = 120;
-    public const int MethodId = 90;
-
-    public byte[] m_reference;
-    public string m_identifier;
-
-    byte[] IMessageCheckpoint.Reference { get { return m_reference; } }
-    string IMessageCheckpoint.Identifier { get { return m_identifier; } }
-
-    public MessageCheckpoint() {}
-    public MessageCheckpoint(
-      byte[] initReference,
-      string initIdentifier)
-    {
-      m_reference = initReference;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "message.checkpoint"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_reference = reader.ReadLongstr();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_reference);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_reference); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageResume: RabbitMQ.Client.Impl.MethodBase, IMessageResume {
-    public const int ClassId = 120;
-    public const int MethodId = 100;
-
-    public byte[] m_reference;
-    public string m_identifier;
-
-    byte[] IMessageResume.Reference { get { return m_reference; } }
-    string IMessageResume.Identifier { get { return m_identifier; } }
-
-    public MessageResume() {}
-    public MessageResume(
-      byte[] initReference,
-      string initIdentifier)
-    {
-      m_reference = initReference;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "message.resume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_reference = reader.ReadLongstr();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_reference);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_reference); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageQos: RabbitMQ.Client.Impl.MethodBase, IMessageQos {
-    public const int ClassId = 120;
-    public const int MethodId = 110;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IMessageQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IMessageQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IMessageQos.Global { get { return m_global; } }
-
-    public MessageQos() {}
-    public MessageQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 110; } }
-    public override string ProtocolMethodName { get { return "message.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageOk: RabbitMQ.Client.Impl.MethodBase, IMessageOk {
-    public const int ClassId = 120;
-    public const int MethodId = 500;
-
-
-
-    public MessageOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 500; } }
-    public override string ProtocolMethodName { get { return "message.ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageEmpty: RabbitMQ.Client.Impl.MethodBase, IMessageEmpty {
-    public const int ClassId = 120;
-    public const int MethodId = 510;
-
-
-
-    public MessageEmpty(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 510; } }
-    public override string ProtocolMethodName { get { return "message.empty"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageReject: RabbitMQ.Client.Impl.MethodBase, IMessageReject {
-    public const int ClassId = 120;
-    public const int MethodId = 520;
-
-    public ushort m_code;
-    public string m_text;
-
-    ushort IMessageReject.Code { get { return m_code; } }
-    string IMessageReject.Text { get { return m_text; } }
-
-    public MessageReject() {}
-    public MessageReject(
-      ushort initCode,
-      string initText)
-    {
-      m_code = initCode;
-      m_text = initText;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 520; } }
-    public override string ProtocolMethodName { get { return "message.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_code = reader.ReadShort();
-      m_text = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_code);
-      writer.WriteShortstr(m_text);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_code); sb.Append(",");
-      sb.Append(m_text);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class MessageOffset: RabbitMQ.Client.Impl.MethodBase, IMessageOffset {
-    public const int ClassId = 120;
-    public const int MethodId = 530;
-
-    public ulong m_value;
-
-    ulong IMessageOffset.Value { get { return m_value; } }
-
-    public MessageOffset() {}
-    public MessageOffset(
-      ulong initValue)
-    {
-      m_value = initValue;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 530; } }
-    public override string ProtocolMethodName { get { return "message.offset"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_value = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_value);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_value);
-      sb.Append(")");
-    }
-  }
-
-  public class Model: RabbitMQ.Client.Impl.ModelBase {
-    public Model(RabbitMQ.Client.Impl.ISession session): base(session) {}
-    public override void _Private_BasicPublish(
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @mandatory,
-      System.Boolean @immediate,
-      RabbitMQ.Client.IBasicProperties @basicProperties,
-      System.Byte[] @body)
-    {
-      BasicPublish __req = new BasicPublish();
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_mandatory = @mandatory;
-      __req.m_immediate = @immediate;
-      ModelSend(__req, (BasicProperties) basicProperties,body);
-    }
-    public override void _Private_BasicConsume(
-      System.String @queue,
-      System.String @consumerTag,
-      System.Boolean @noLocal,
-      System.Boolean @noAck,
-      System.Boolean @exclusive,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @filter)
-    {
-      BasicConsume __req = new BasicConsume();
-      __req.m_queue = @queue;
-      __req.m_consumerTag = @consumerTag;
-      __req.m_noLocal = @noLocal;
-      __req.m_noAck = @noAck;
-      __req.m_exclusive = @exclusive;
-      __req.m_nowait = @nowait;
-      __req.m_filter = @filter;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicCancel(
-      System.String @consumerTag,
-      System.Boolean @nowait)
-    {
-      BasicCancel __req = new BasicCancel();
-      __req.m_consumerTag = @consumerTag;
-      __req.m_nowait = @nowait;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelOpen(
-      System.String @outOfBand)
-    {
-      ChannelOpen __req = new ChannelOpen();
-      __req.m_outOfBand = @outOfBand;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelOpenOk __rep = __repBase as ChannelOpenOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ChannelCloseOk()
-    {
-      ChannelCloseOk __req = new ChannelCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ChannelClose __req = new ChannelClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicGet(
-      System.String @queue,
-      System.Boolean @noAck)
-    {
-      BasicGet __req = new BasicGet();
-      __req.m_queue = @queue;
-      __req.m_noAck = @noAck;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelFlowOk()
-    {
-      ChannelFlowOk __req = new ChannelFlowOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.Impl.ConnectionTuneDetails ConnectionStartOk(
-      System.Collections.IDictionary @clientProperties,
-      System.String @mechanism,
-      System.Byte[] @response,
-      System.String @locale)
-    {
-      ConnectionStartOk __req = new ConnectionStartOk();
-      __req.m_clientProperties = @clientProperties;
-      __req.m_mechanism = @mechanism;
-      __req.m_response = @response;
-      __req.m_locale = @locale;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionTune __rep = __repBase as ConnectionTune;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      RabbitMQ.Client.Impl.ConnectionTuneDetails __result = new RabbitMQ.Client.Impl.ConnectionTuneDetails();
-      __result.m_channelMax = __rep.m_channelMax;
-      __result.m_frameMax = __rep.m_frameMax;
-      __result.m_heartbeat = __rep.m_heartbeat;
-      return __result;
-    }
-    public override void ConnectionTuneOk(
-      System.UInt16 @channelMax,
-      System.UInt32 @frameMax,
-      System.UInt16 @heartbeat)
-    {
-      ConnectionTuneOk __req = new ConnectionTuneOk();
-      __req.m_channelMax = @channelMax;
-      __req.m_frameMax = @frameMax;
-      __req.m_heartbeat = @heartbeat;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionOpen(
-      System.String @virtualHost,
-      System.String @capabilities,
-      System.Boolean @insist)
-    {
-      ConnectionOpen __req = new ConnectionOpen();
-      __req.m_virtualHost = @virtualHost;
-      __req.m_capabilities = @capabilities;
-      __req.m_insist = @insist;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ConnectionClose __req = new ConnectionClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionCloseOk __rep = __repBase as ConnectionCloseOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ConnectionCloseOk()
-    {
-      ConnectionCloseOk __req = new ConnectionCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.IBasicProperties CreateBasicProperties()
-    {
-      return new BasicProperties();
-    }
-    public override RabbitMQ.Client.IFileProperties CreateFileProperties()
-    {
-      return new FileProperties();
-    }
-    public override RabbitMQ.Client.IStreamProperties CreateStreamProperties()
-    {
-      return new StreamProperties();
-    }
-    public override void ChannelFlow(
-      System.Boolean @active)
-    {
-      ChannelFlow __req = new ChannelFlow();
-      __req.m_active = @active;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelFlowOk __rep = __repBase as ChannelFlowOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDeclare(
-      System.String @exchange,
-      System.String @type,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @autoDelete,
-      System.Boolean @internal,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      ExchangeDeclare __req = new ExchangeDeclare();
-      __req.m_exchange = @exchange;
-      __req.m_type = @type;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_internal = @internal;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeclareOk __rep = __repBase as ExchangeDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDelete(
-      System.String @exchange,
-      System.Boolean @ifUnused,
-      System.Boolean @nowait)
-    {
-      ExchangeDelete __req = new ExchangeDelete();
-      __req.m_exchange = @exchange;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeleteOk __rep = __repBase as ExchangeDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override System.String QueueDeclare(
-      System.String @queue,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @exclusive,
-      System.Boolean @autoDelete,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueDeclare __req = new QueueDeclare();
-      __req.m_queue = @queue;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_exclusive = @exclusive;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return null;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeclareOk __rep = __repBase as QueueDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_queue;
-    }
-    public override void QueueBind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueBind __req = new QueueBind();
-      __req.m_queue = @queue;
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueBindOk __rep = __repBase as QueueBindOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void QueueUnbind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueUnbind __req = new QueueUnbind();
-      __req.m_queue = @queue;
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_arguments = @arguments;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueUnbindOk __rep = __repBase as QueueUnbindOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override System.UInt32 QueuePurge(
-      System.String @queue,
-      System.Boolean @nowait)
-    {
-      QueuePurge __req = new QueuePurge();
-      __req.m_queue = @queue;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueuePurgeOk __rep = __repBase as QueuePurgeOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override System.UInt32 QueueDelete(
-      System.String @queue,
-      System.Boolean @ifUnused,
-      System.Boolean @ifEmpty,
-      System.Boolean @nowait)
-    {
-      QueueDelete __req = new QueueDelete();
-      __req.m_queue = @queue;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_ifEmpty = @ifEmpty;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeleteOk __rep = __repBase as QueueDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override void BasicQos(
-      System.UInt32 @prefetchSize,
-      System.UInt16 @prefetchCount,
-      System.Boolean @global)
-    {
-      BasicQos __req = new BasicQos();
-      __req.m_prefetchSize = @prefetchSize;
-      __req.m_prefetchCount = @prefetchCount;
-      __req.m_global = @global;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      BasicQosOk __rep = __repBase as BasicQosOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void BasicAck(
-      System.UInt64 @deliveryTag,
-      System.Boolean @multiple)
-    {
-      BasicAck __req = new BasicAck();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_multiple = @multiple;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicReject(
-      System.UInt64 @deliveryTag,
-      System.Boolean @requeue)
-    {
-      BasicReject __req = new BasicReject();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_requeue = @requeue;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicRecover(
-      System.Boolean @requeue)
-    {
-      BasicRecover __req = new BasicRecover();
-      __req.m_requeue = @requeue;
-      ModelSend(__req,null,null);
-    }
-    public override void TxSelect()
-    {
-      TxSelect __req = new TxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxSelectOk __rep = __repBase as TxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxCommit()
-    {
-      TxCommit __req = new TxCommit();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxCommitOk __rep = __repBase as TxCommitOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxRollback()
-    {
-      TxRollback __req = new TxRollback();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxRollbackOk __rep = __repBase as TxRollbackOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxSelect()
-    {
-      DtxSelect __req = new DtxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxSelectOk __rep = __repBase as DtxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxStart(
-      System.String @dtxIdentifier)
-    {
-      DtxStart __req = new DtxStart();
-      __req.m_dtxIdentifier = @dtxIdentifier;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxStartOk __rep = __repBase as DtxStartOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override bool DispatchAsynchronous(RabbitMQ.Client.Impl.Command cmd) {
-      RabbitMQ.Client.Impl.MethodBase __method = (RabbitMQ.Client.Impl.MethodBase) cmd.Method;
-      switch ((__method.ProtocolClassId << 16) | __method.ProtocolMethodId) {
-        case 3932181: {
-          BasicConsumeOk __impl = (BasicConsumeOk) __method;
-          HandleBasicConsumeOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932191: {
-          BasicCancelOk __impl = (BasicCancelOk) __method;
-          HandleBasicCancelOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932231: {
-          BasicGetOk __impl = (BasicGetOk) __method;
-          HandleBasicGetOk(
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            __impl.m_messageCount,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932232: {
-          HandleBasicGetEmpty();
-          return true;
-        }
-        case 3932220: {
-          BasicDeliver __impl = (BasicDeliver) __method;
-          HandleBasicDeliver(
-            __impl.m_consumerTag,
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932210: {
-          BasicReturn __impl = (BasicReturn) __method;
-          HandleBasicReturn(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 1310740: {
-          ChannelFlow __impl = (ChannelFlow) __method;
-          HandleChannelFlow(
-            __impl.m_active);
-          return true;
-        }
-        case 1310760: {
-          ChannelClose __impl = (ChannelClose) __method;
-          HandleChannelClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        case 1310761: {
-          HandleChannelCloseOk();
-          return true;
-        }
-        case 655370: {
-          ConnectionStart __impl = (ConnectionStart) __method;
-          HandleConnectionStart(
-            __impl.m_versionMajor,
-            __impl.m_versionMinor,
-            __impl.m_serverProperties,
-            __impl.m_mechanisms,
-            __impl.m_locales);
-          return true;
-        }
-        case 655401: {
-          ConnectionOpenOk __impl = (ConnectionOpenOk) __method;
-          HandleConnectionOpenOk(
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655402: {
-          ConnectionRedirect __impl = (ConnectionRedirect) __method;
-          HandleConnectionRedirect(
-            __impl.m_host,
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655410: {
-          ConnectionClose __impl = (ConnectionClose) __method;
-          HandleConnectionClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        default: return false;
-      }
-    }
-  }
-}
diff --git a/mcs/class/RabbitMQ.Client/docs/specs/net_4_5-api-qpid-0-8.cs b/mcs/class/RabbitMQ.Client/docs/specs/net_4_5-api-qpid-0-8.cs
deleted file mode 100644 (file)
index 9305215..0000000
+++ /dev/null
@@ -1,6468 +0,0 @@
-// Autogenerated code. Do not edit.
-
-// This source code is dual-licensed under the Apache License, version
-// 2.0, and the Mozilla Public License, version 1.1.
-//
-// The APL v2.0:
-//
-//---------------------------------------------------------------------------
-//   Copyright (C) 2007-2010 LShift Ltd., Cohesive Financial
-//   Technologies LLC., and Rabbit Technologies Ltd.
-//
-//   Licensed under the Apache License, Version 2.0 (the "License");
-//   you may not use this file except in compliance with the License.
-//   You may obtain a copy of the License at
-//
-//       http://www.apache.org/licenses/LICENSE-2.0
-//
-//   Unless required by applicable law or agreed to in writing, software
-//   distributed under the License is distributed on an "AS IS" BASIS,
-//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//   See the License for the specific language governing permissions and
-//   limitations under the License.
-//---------------------------------------------------------------------------
-//
-// The MPL v1.1:
-//
-//---------------------------------------------------------------------------
-//   The contents of this file are subject to the Mozilla Public License
-//   Version 1.1 (the "License"); you may not use this file except in
-//   compliance with the License. You may obtain a copy of the License at
-//   http://www.rabbitmq.com/mpl.html
-//
-//   Software distributed under the License is distributed on an "AS IS"
-//   basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//   License for the specific language governing rights and limitations
-//   under the License.
-//
-//   The Original Code is The RabbitMQ .NET Client.
-//
-//   The Initial Developers of the Original Code are LShift Ltd,
-//   Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
-//   Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
-//   are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
-//   Technologies LLC, and Rabbit Technologies Ltd.
-//
-//   Portions created by LShift Ltd are Copyright (C) 2007-2010 LShift
-//   Ltd. Portions created by Cohesive Financial Technologies LLC are
-//   Copyright (C) 2007-2010 Cohesive Financial Technologies
-//   LLC. Portions created by Rabbit Technologies Ltd are Copyright
-//   (C) 2007-2010 Rabbit Technologies Ltd.
-//
-//   All Rights Reserved.
-//
-//   Contributor(s): ______________________________________.
-//
-//---------------------------------------------------------------------------
-
-using RabbitMQ.Client;
-using RabbitMQ.Client.Exceptions;
-
-namespace RabbitMQ.Client.Framing.v0_8qpid {
-  public class Protocol: RabbitMQ.Client.Framing.Impl.v0_8qpid.ProtocolBase {
-    ///<summary>Protocol major version (= 8)</summary>
-    public override int MajorVersion { get { return 8; } }
-    ///<summary>Protocol minor version (= 0)</summary>
-    public override int MinorVersion { get { return 0; } }
-    ///<summary>Protocol API name (= AMQP_0_8_QPID)</summary>
-    public override string ApiName { get { return "AMQP_0_8_QPID"; } }
-    ///<summary>Default TCP port (= 5672)</summary>
-    public override int DefaultPort { get { return 5672; } }
-
-    public override RabbitMQ.Client.Impl.MethodBase DecodeMethodFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-      ushort methodId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 10: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionStart result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionStartOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionSecure result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionSecure();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionSecureOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionSecureOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionTune result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionTune();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionTuneOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionTuneOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionOpen result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionRedirect result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionRedirect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionClose result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 61: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ConnectionCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 20: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelOpen result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelFlow result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelFlow();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelFlowOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelFlowOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelAlert result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelAlert();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelClose result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelClose();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelCloseOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelCloseOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 30: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.AccessRequest result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.AccessRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.AccessRequestOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.AccessRequestOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 40: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeclare result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDelete result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 22: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeBound result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeBound();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 23: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeBoundOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.ExchangeBoundOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 50: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeclare result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeclare();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeclareOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeclareOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueBind result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueBind();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueBindOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueBindOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueuePurge result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueuePurge();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueuePurgeOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueuePurgeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDelete result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDelete();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeleteOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.QueueDeleteOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 60: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicQos result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicConsume result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicCancel result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicPublish result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicReturn result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGet result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGet();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 71: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGetOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGetOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 72: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGetEmpty result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicGetEmpty();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicAck result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicReject result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicRecover result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicRecover();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 101: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicRecoverOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.BasicRecoverOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 70: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileQos result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileConsume result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileCancel result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileOpen result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileOpen();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileOpenOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileOpenOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileStage result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileStage();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FilePublish result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FilePublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 70: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileReturn result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 80: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 90: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileAck result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileAck();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 100: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.FileReject result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.FileReject();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 80: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamQos result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamQos();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamQosOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamQosOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamConsume result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamConsume();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamConsumeOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamConsumeOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamCancel result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamCancel();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamCancelOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamCancelOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamPublish result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamPublish();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 50: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamReturn result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamReturn();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 60: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamDeliver result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.StreamDeliver();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 90: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxSelect result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxCommit result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxCommit();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxCommitOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxCommitOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxRollback result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxRollback();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TxRollbackOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TxRollbackOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 100: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxSelect result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxSelect();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxSelectOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxSelectOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxStart result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxStart();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxStartOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.DtxStartOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 110: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TunnelRequest result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TunnelRequest();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        case 120: {
-          switch (methodId) {
-            case 10: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestInteger result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestInteger();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 11: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestIntegerOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestIntegerOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 20: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestString result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestString();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 21: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestStringOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestStringOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 30: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestTable result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestTable();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 31: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestTableOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestTableOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 40: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestContent result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestContent();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            case 41: {
-              RabbitMQ.Client.Framing.Impl.v0_8qpid.TestContentOk result = new RabbitMQ.Client.Framing.Impl.v0_8qpid.TestContentOk();
-              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
-              return result;
-            }
-            default: break;
-          }
-          break;
-        }
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, methodId);
-    }
-
-    public override RabbitMQ.Client.Impl.ContentHeaderBase DecodeContentHeaderFrom(RabbitMQ.Util.NetworkBinaryReader reader) {
-      ushort classId = reader.ReadUInt16();
-
-      switch (classId) {
-        case 60: return new BasicProperties();
-        case 70: return new FileProperties();
-        case 80: return new StreamProperties();
-        case 110: return new TunnelProperties();
-        case 120: return new TestProperties();
-        default: break;
-      }
-      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, 0);
-    }
-  }
-  public class Constants {
-    ///<summary>(= 1)</summary>
-    public const int FrameMethod = 1;
-    ///<summary>(= 2)</summary>
-    public const int FrameHeader = 2;
-    ///<summary>(= 3)</summary>
-    public const int FrameBody = 3;
-    ///<summary>(= 4)</summary>
-    public const int FrameOobMethod = 4;
-    ///<summary>(= 5)</summary>
-    public const int FrameOobHeader = 5;
-    ///<summary>(= 6)</summary>
-    public const int FrameOobBody = 6;
-    ///<summary>(= 7)</summary>
-    public const int FrameTrace = 7;
-    ///<summary>(= 8)</summary>
-    public const int FrameHeartbeat = 8;
-    ///<summary>(= 4096)</summary>
-    public const int FrameMinSize = 4096;
-    ///<summary>(= 206)</summary>
-    public const int FrameEnd = 206;
-    ///<summary>(= 200)</summary>
-    public const int ReplySuccess = 200;
-    ///<summary>(= 310)</summary>
-    public const int NotDelivered = 310;
-    ///<summary>(= 311)</summary>
-    public const int ContentTooLarge = 311;
-    ///<summary>(= 320)</summary>
-    public const int ConnectionForced = 320;
-    ///<summary>(= 402)</summary>
-    public const int InvalidPath = 402;
-    ///<summary>(= 403)</summary>
-    public const int AccessRefused = 403;
-    ///<summary>(= 404)</summary>
-    public const int NotFound = 404;
-    ///<summary>(= 405)</summary>
-    public const int ResourceLocked = 405;
-    ///<summary>(= 501)</summary>
-    public const int FrameError = 501;
-    ///<summary>(= 502)</summary>
-    public const int SyntaxError = 502;
-    ///<summary>(= 503)</summary>
-    public const int CommandInvalid = 503;
-    ///<summary>(= 504)</summary>
-    public const int ChannelError = 504;
-    ///<summary>(= 506)</summary>
-    public const int ResourceError = 506;
-    ///<summary>(= 530)</summary>
-    public const int NotAllowed = 530;
-    ///<summary>(= 540)</summary>
-    public const int NotImplemented = 540;
-    ///<summary>(= 541)</summary>
-    public const int InternalError = 541;
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start".</summary>
-  public interface IConnectionStart: IMethod {
-    byte VersionMajor { get; }
-    byte VersionMinor { get; }
-    System.Collections.IDictionary ServerProperties { get; }
-    byte[] Mechanisms { get; }
-    byte[] Locales { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.start-ok".</summary>
-  public interface IConnectionStartOk: IMethod {
-    System.Collections.IDictionary ClientProperties { get; }
-    string Mechanism { get; }
-    byte[] Response { get; }
-    string Locale { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure".</summary>
-  public interface IConnectionSecure: IMethod {
-    byte[] Challenge { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.secure-ok".</summary>
-  public interface IConnectionSecureOk: IMethod {
-    byte[] Response { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune".</summary>
-  public interface IConnectionTune: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.tune-ok".</summary>
-  public interface IConnectionTuneOk: IMethod {
-    ushort ChannelMax { get; }
-    uint FrameMax { get; }
-    ushort Heartbeat { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open".</summary>
-  public interface IConnectionOpen: IMethod {
-    string VirtualHost { get; }
-    string Capabilities { get; }
-    bool Insist { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.open-ok".</summary>
-  public interface IConnectionOpenOk: IMethod {
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.redirect".</summary>
-  public interface IConnectionRedirect: IMethod {
-    string Host { get; }
-    string KnownHosts { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close".</summary>
-  public interface IConnectionClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "connection.close-ok".</summary>
-  public interface IConnectionCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open".</summary>
-  public interface IChannelOpen: IMethod {
-    string OutOfBand { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.open-ok".</summary>
-  public interface IChannelOpenOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow".</summary>
-  public interface IChannelFlow: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.flow-ok".</summary>
-  public interface IChannelFlowOk: IMethod {
-    bool Active { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.alert".</summary>
-  public interface IChannelAlert: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    System.Collections.IDictionary Details { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close".</summary>
-  public interface IChannelClose: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    ushort ClassId { get; }
-    ushort MethodId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "channel.close-ok".</summary>
-  public interface IChannelCloseOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request".</summary>
-  public interface IAccessRequest: IMethod {
-    string Realm { get; }
-    bool Exclusive { get; }
-    bool Passive { get; }
-    bool Active { get; }
-    bool Write { get; }
-    bool Read { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "access.request-ok".</summary>
-  public interface IAccessRequestOk: IMethod {
-    ushort Ticket { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare".</summary>
-  public interface IExchangeDeclare: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string Type { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool AutoDelete { get; }
-    bool Internal { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.declare-ok".</summary>
-  public interface IExchangeDeclareOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete".</summary>
-  public interface IExchangeDelete: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    bool IfUnused { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.delete-ok".</summary>
-  public interface IExchangeDeleteOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.bound".</summary>
-  public interface IExchangeBound: IMethod {
-    string Exchange { get; }
-    string RoutingKey { get; }
-    string Queue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "exchange.bound-ok".</summary>
-  public interface IExchangeBoundOk: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare".</summary>
-  public interface IQueueDeclare: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Passive { get; }
-    bool Durable { get; }
-    bool Exclusive { get; }
-    bool AutoDelete { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.declare-ok".</summary>
-  public interface IQueueDeclareOk: IMethod {
-    string Queue { get; }
-    uint MessageCount { get; }
-    uint ConsumerCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind".</summary>
-  public interface IQueueBind: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.bind-ok".</summary>
-  public interface IQueueBindOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge".</summary>
-  public interface IQueuePurge: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.purge-ok".</summary>
-  public interface IQueuePurgeOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete".</summary>
-  public interface IQueueDelete: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool IfUnused { get; }
-    bool IfEmpty { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "queue.delete-ok".</summary>
-  public interface IQueueDeleteOk: IMethod {
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos".</summary>
-  public interface IBasicQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.qos-ok".</summary>
-  public interface IBasicQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume".</summary>
-  public interface IBasicConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-    System.Collections.IDictionary Arguments { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.consume-ok".</summary>
-  public interface IBasicConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel".</summary>
-  public interface IBasicCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.cancel-ok".</summary>
-  public interface IBasicCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.publish".</summary>
-  public interface IBasicPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.return".</summary>
-  public interface IBasicReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.deliver".</summary>
-  public interface IBasicDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get".</summary>
-  public interface IBasicGet: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    bool NoAck { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-ok".</summary>
-  public interface IBasicGetOk: IMethod {
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    uint MessageCount { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.get-empty".</summary>
-  public interface IBasicGetEmpty: IMethod {
-    string ClusterId { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.ack".</summary>
-  public interface IBasicAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.reject".</summary>
-  public interface IBasicReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.recover".</summary>
-  public interface IBasicRecover: IMethod {
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "basic.recover-ok".</summary>
-  public interface IBasicRecoverOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos".</summary>
-  public interface IFileQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.qos-ok".</summary>
-  public interface IFileQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume".</summary>
-  public interface IFileConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool NoAck { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.consume-ok".</summary>
-  public interface IFileConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel".</summary>
-  public interface IFileCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.cancel-ok".</summary>
-  public interface IFileCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open".</summary>
-  public interface IFileOpen: IMethod {
-    string Identifier { get; }
-    ulong ContentSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.open-ok".</summary>
-  public interface IFileOpenOk: IMethod {
-    ulong StagedSize { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.stage".</summary>
-  public interface IFileStage: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.publish".</summary>
-  public interface IFilePublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.return".</summary>
-  public interface IFileReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.deliver".</summary>
-  public interface IFileDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    bool Redelivered { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    string Identifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.ack".</summary>
-  public interface IFileAck: IMethod {
-    ulong DeliveryTag { get; }
-    bool Multiple { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "file.reject".</summary>
-  public interface IFileReject: IMethod {
-    ulong DeliveryTag { get; }
-    bool Requeue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos".</summary>
-  public interface IStreamQos: IMethod {
-    uint PrefetchSize { get; }
-    ushort PrefetchCount { get; }
-    uint ConsumeRate { get; }
-    bool Global { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.qos-ok".</summary>
-  public interface IStreamQosOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume".</summary>
-  public interface IStreamConsume: IMethod {
-    ushort Ticket { get; }
-    string Queue { get; }
-    string ConsumerTag { get; }
-    bool NoLocal { get; }
-    bool Exclusive { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.consume-ok".</summary>
-  public interface IStreamConsumeOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel".</summary>
-  public interface IStreamCancel: IMethod {
-    string ConsumerTag { get; }
-    bool Nowait { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.cancel-ok".</summary>
-  public interface IStreamCancelOk: IMethod {
-    string ConsumerTag { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.publish".</summary>
-  public interface IStreamPublish: IMethod {
-    ushort Ticket { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-    bool Mandatory { get; }
-    bool Immediate { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.return".</summary>
-  public interface IStreamReturn: IMethod {
-    ushort ReplyCode { get; }
-    string ReplyText { get; }
-    string Exchange { get; }
-    string RoutingKey { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "stream.deliver".</summary>
-  public interface IStreamDeliver: IMethod {
-    string ConsumerTag { get; }
-    ulong DeliveryTag { get; }
-    string Exchange { get; }
-    string Queue { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select".</summary>
-  public interface ITxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.select-ok".</summary>
-  public interface ITxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit".</summary>
-  public interface ITxCommit: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.commit-ok".</summary>
-  public interface ITxCommitOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback".</summary>
-  public interface ITxRollback: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tx.rollback-ok".</summary>
-  public interface ITxRollbackOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select".</summary>
-  public interface IDtxSelect: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.select-ok".</summary>
-  public interface IDtxSelectOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start".</summary>
-  public interface IDtxStart: IMethod {
-    string DtxIdentifier { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "dtx.start-ok".</summary>
-  public interface IDtxStartOk: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "tunnel.request".</summary>
-  public interface ITunnelRequest: IMethod {
-    System.Collections.IDictionary MetaData { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.integer".</summary>
-  public interface ITestInteger: IMethod {
-    byte Integer1 { get; }
-    ushort Integer2 { get; }
-    uint Integer3 { get; }
-    ulong Integer4 { get; }
-    byte Operation { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.integer-ok".</summary>
-  public interface ITestIntegerOk: IMethod {
-    ulong Result { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.string".</summary>
-  public interface ITestString: IMethod {
-    string String1 { get; }
-    byte[] String2 { get; }
-    byte Operation { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.string-ok".</summary>
-  public interface ITestStringOk: IMethod {
-    byte[] Result { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.table".</summary>
-  public interface ITestTable: IMethod {
-    System.Collections.IDictionary Table { get; }
-    byte IntegerOp { get; }
-    byte StringOp { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.table-ok".</summary>
-  public interface ITestTableOk: IMethod {
-    ulong IntegerResult { get; }
-    byte[] StringResult { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.content".</summary>
-  public interface ITestContent: IMethod {
-  }
-  /// <summary>Autogenerated type. AMQP specification method "test.content-ok".</summary>
-  public interface ITestContentOk: IMethod {
-    uint ContentChecksum { get; }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "basic"</summary>
-  public class BasicProperties: RabbitMQ.Client.Impl.BasicProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_deliveryMode;
-    private byte m_priority;
-    private string m_correlationId;
-    private string m_replyTo;
-    private string m_expiration;
-    private string m_messageId;
-    private AmqpTimestamp m_timestamp;
-    private string m_type;
-    private string m_userId;
-    private string m_appId;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_deliveryMode_present = false;
-    private bool m_priority_present = false;
-    private bool m_correlationId_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_expiration_present = false;
-    private bool m_messageId_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_type_present = false;
-    private bool m_userId_present = false;
-    private bool m_appId_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte DeliveryMode {
-      get {
-        return m_deliveryMode;
-      }
-      set {
-        m_deliveryMode_present = true;
-        m_deliveryMode = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string CorrelationId {
-      get {
-        return m_correlationId;
-      }
-      set {
-        m_correlationId_present = true;
-        m_correlationId = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string Expiration {
-      get {
-        return m_expiration;
-      }
-      set {
-        m_expiration_present = true;
-        m_expiration = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string Type {
-      get {
-        return m_type;
-      }
-      set {
-        m_type_present = true;
-        m_type = value;
-      }
-    }
-    public override string UserId {
-      get {
-        return m_userId;
-      }
-      set {
-        m_userId_present = true;
-        m_userId = value;
-      }
-    }
-    public override string AppId {
-      get {
-        return m_appId;
-      }
-      set {
-        m_appId_present = true;
-        m_appId = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearDeliveryMode() { m_deliveryMode_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearCorrelationId() { m_correlationId_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearExpiration() { m_expiration_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearType() { m_type_present = false; }
-    public override void ClearUserId() { m_userId_present = false; }
-    public override void ClearAppId() { m_appId_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsDeliveryModePresent() { return m_deliveryMode_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsCorrelationIdPresent() { return m_correlationId_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsExpirationPresent() { return m_expiration_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsTypePresent() { return m_type_present; }
-    public override bool IsUserIdPresent() { return m_userId_present; }
-    public override bool IsAppIdPresent() { return m_appId_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public BasicProperties() {}
-    public override int ProtocolClassId { get { return 60; } }
-    public override string ProtocolClassName { get { return "basic"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_deliveryMode_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_correlationId_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_expiration_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_type_present = reader.ReadPresence();
-      m_userId_present = reader.ReadPresence();
-      m_appId_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_deliveryMode_present) { m_deliveryMode = reader.ReadOctet(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_correlationId_present) { m_correlationId = reader.ReadShortstr(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_expiration_present) { m_expiration = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_type_present) { m_type = reader.ReadShortstr(); }
-      if (m_userId_present) { m_userId = reader.ReadShortstr(); }
-      if (m_appId_present) { m_appId = reader.ReadShortstr(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_deliveryMode_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_correlationId_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_expiration_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_type_present);
-      writer.WritePresence(m_userId_present);
-      writer.WritePresence(m_appId_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_deliveryMode_present) { writer.WriteOctet(m_deliveryMode); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_correlationId_present) { writer.WriteShortstr(m_correlationId); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_expiration_present) { writer.WriteShortstr(m_expiration); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_type_present) { writer.WriteShortstr(m_type); }
-      if (m_userId_present) { writer.WriteShortstr(m_userId); }
-      if (m_appId_present) { writer.WriteShortstr(m_appId); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("delivery mode="); sb.Append(m_deliveryMode_present ? m_deliveryMode.ToString() : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("correlation id="); sb.Append(m_correlationId_present ? (m_correlationId == null ? "(null)" : m_correlationId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("reply to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("expiration="); sb.Append(m_expiration_present ? (m_expiration == null ? "(null)" : m_expiration.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("type="); sb.Append(m_type_present ? (m_type == null ? "(null)" : m_type.ToString()) : "_"); sb.Append(", ");
-      sb.Append("user id="); sb.Append(m_userId_present ? (m_userId == null ? "(null)" : m_userId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("app id="); sb.Append(m_appId_present ? (m_appId == null ? "(null)" : m_appId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("cluster id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "file"</summary>
-  public class FileProperties: RabbitMQ.Client.Impl.FileProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private string m_replyTo;
-    private string m_messageId;
-    private string m_filename;
-    private AmqpTimestamp m_timestamp;
-    private string m_clusterId;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_replyTo_present = false;
-    private bool m_messageId_present = false;
-    private bool m_filename_present = false;
-    private bool m_timestamp_present = false;
-    private bool m_clusterId_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override string ReplyTo {
-      get {
-        return m_replyTo;
-      }
-      set {
-        m_replyTo_present = true;
-        m_replyTo = value;
-      }
-    }
-    public override string MessageId {
-      get {
-        return m_messageId;
-      }
-      set {
-        m_messageId_present = true;
-        m_messageId = value;
-      }
-    }
-    public override string Filename {
-      get {
-        return m_filename;
-      }
-      set {
-        m_filename_present = true;
-        m_filename = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-    public override string ClusterId {
-      get {
-        return m_clusterId;
-      }
-      set {
-        m_clusterId_present = true;
-        m_clusterId = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearReplyTo() { m_replyTo_present = false; }
-    public override void ClearMessageId() { m_messageId_present = false; }
-    public override void ClearFilename() { m_filename_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-    public override void ClearClusterId() { m_clusterId_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsReplyToPresent() { return m_replyTo_present; }
-    public override bool IsMessageIdPresent() { return m_messageId_present; }
-    public override bool IsFilenamePresent() { return m_filename_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-    public override bool IsClusterIdPresent() { return m_clusterId_present; }
-
-    public FileProperties() {}
-    public override int ProtocolClassId { get { return 70; } }
-    public override string ProtocolClassName { get { return "file"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_replyTo_present = reader.ReadPresence();
-      m_messageId_present = reader.ReadPresence();
-      m_filename_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      m_clusterId_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_replyTo_present) { m_replyTo = reader.ReadShortstr(); }
-      if (m_messageId_present) { m_messageId = reader.ReadShortstr(); }
-      if (m_filename_present) { m_filename = reader.ReadShortstr(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-      if (m_clusterId_present) { m_clusterId = reader.ReadShortstr(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_replyTo_present);
-      writer.WritePresence(m_messageId_present);
-      writer.WritePresence(m_filename_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.WritePresence(m_clusterId_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_replyTo_present) { writer.WriteShortstr(m_replyTo); }
-      if (m_messageId_present) { writer.WriteShortstr(m_messageId); }
-      if (m_filename_present) { writer.WriteShortstr(m_filename); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-      if (m_clusterId_present) { writer.WriteShortstr(m_clusterId); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("reply to="); sb.Append(m_replyTo_present ? (m_replyTo == null ? "(null)" : m_replyTo.ToString()) : "_"); sb.Append(", ");
-      sb.Append("message id="); sb.Append(m_messageId_present ? (m_messageId == null ? "(null)" : m_messageId.ToString()) : "_"); sb.Append(", ");
-      sb.Append("filename="); sb.Append(m_filename_present ? (m_filename == null ? "(null)" : m_filename.ToString()) : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_"); sb.Append(", ");
-      sb.Append("cluster id="); sb.Append(m_clusterId_present ? (m_clusterId == null ? "(null)" : m_clusterId.ToString()) : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "stream"</summary>
-  public class StreamProperties: RabbitMQ.Client.Impl.StreamProperties {
-    private string m_contentType;
-    private string m_contentEncoding;
-    private System.Collections.IDictionary m_headers;
-    private byte m_priority;
-    private AmqpTimestamp m_timestamp;
-
-    private bool m_contentType_present = false;
-    private bool m_contentEncoding_present = false;
-    private bool m_headers_present = false;
-    private bool m_priority_present = false;
-    private bool m_timestamp_present = false;
-
-    public override string ContentType {
-      get {
-        return m_contentType;
-      }
-      set {
-        m_contentType_present = true;
-        m_contentType = value;
-      }
-    }
-    public override string ContentEncoding {
-      get {
-        return m_contentEncoding;
-      }
-      set {
-        m_contentEncoding_present = true;
-        m_contentEncoding = value;
-      }
-    }
-    public override System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public override byte Priority {
-      get {
-        return m_priority;
-      }
-      set {
-        m_priority_present = true;
-        m_priority = value;
-      }
-    }
-    public override AmqpTimestamp Timestamp {
-      get {
-        return m_timestamp;
-      }
-      set {
-        m_timestamp_present = true;
-        m_timestamp = value;
-      }
-    }
-
-    public override void ClearContentType() { m_contentType_present = false; }
-    public override void ClearContentEncoding() { m_contentEncoding_present = false; }
-    public override void ClearHeaders() { m_headers_present = false; }
-    public override void ClearPriority() { m_priority_present = false; }
-    public override void ClearTimestamp() { m_timestamp_present = false; }
-
-    public override bool IsContentTypePresent() { return m_contentType_present; }
-    public override bool IsContentEncodingPresent() { return m_contentEncoding_present; }
-    public override bool IsHeadersPresent() { return m_headers_present; }
-    public override bool IsPriorityPresent() { return m_priority_present; }
-    public override bool IsTimestampPresent() { return m_timestamp_present; }
-
-    public StreamProperties() {}
-    public override int ProtocolClassId { get { return 80; } }
-    public override string ProtocolClassName { get { return "stream"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_contentType_present = reader.ReadPresence();
-      m_contentEncoding_present = reader.ReadPresence();
-      m_headers_present = reader.ReadPresence();
-      m_priority_present = reader.ReadPresence();
-      m_timestamp_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_contentType_present) { m_contentType = reader.ReadShortstr(); }
-      if (m_contentEncoding_present) { m_contentEncoding = reader.ReadShortstr(); }
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_priority_present) { m_priority = reader.ReadOctet(); }
-      if (m_timestamp_present) { m_timestamp = reader.ReadTimestamp(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_contentType_present);
-      writer.WritePresence(m_contentEncoding_present);
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_priority_present);
-      writer.WritePresence(m_timestamp_present);
-      writer.FinishPresence();
-      if (m_contentType_present) { writer.WriteShortstr(m_contentType); }
-      if (m_contentEncoding_present) { writer.WriteShortstr(m_contentEncoding); }
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_priority_present) { writer.WriteOctet(m_priority); }
-      if (m_timestamp_present) { writer.WriteTimestamp(m_timestamp); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("content type="); sb.Append(m_contentType_present ? (m_contentType == null ? "(null)" : m_contentType.ToString()) : "_"); sb.Append(", ");
-      sb.Append("content encoding="); sb.Append(m_contentEncoding_present ? (m_contentEncoding == null ? "(null)" : m_contentEncoding.ToString()) : "_"); sb.Append(", ");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("priority="); sb.Append(m_priority_present ? m_priority.ToString() : "_"); sb.Append(", ");
-      sb.Append("timestamp="); sb.Append(m_timestamp_present ? m_timestamp.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "tunnel"</summary>
-  public class TunnelProperties: RabbitMQ.Client.Impl.ContentHeaderBase {
-    private System.Collections.IDictionary m_headers;
-    private string m_proxyName;
-    private string m_dataName;
-    private byte m_durable;
-    private byte m_broadcast;
-
-    private bool m_headers_present = false;
-    private bool m_proxyName_present = false;
-    private bool m_dataName_present = false;
-    private bool m_durable_present = false;
-    private bool m_broadcast_present = false;
-
-    public System.Collections.IDictionary Headers {
-      get {
-        return m_headers;
-      }
-      set {
-        m_headers_present = true;
-        m_headers = value;
-      }
-    }
-    public string ProxyName {
-      get {
-        return m_proxyName;
-      }
-      set {
-        m_proxyName_present = true;
-        m_proxyName = value;
-      }
-    }
-    public string DataName {
-      get {
-        return m_dataName;
-      }
-      set {
-        m_dataName_present = true;
-        m_dataName = value;
-      }
-    }
-    public byte Durable {
-      get {
-        return m_durable;
-      }
-      set {
-        m_durable_present = true;
-        m_durable = value;
-      }
-    }
-    public byte Broadcast {
-      get {
-        return m_broadcast;
-      }
-      set {
-        m_broadcast_present = true;
-        m_broadcast = value;
-      }
-    }
-
-    public void ClearHeaders() { m_headers_present = false; }
-    public void ClearProxyName() { m_proxyName_present = false; }
-    public void ClearDataName() { m_dataName_present = false; }
-    public void ClearDurable() { m_durable_present = false; }
-    public void ClearBroadcast() { m_broadcast_present = false; }
-
-    public bool IsHeadersPresent() { return m_headers_present; }
-    public bool IsProxyNamePresent() { return m_proxyName_present; }
-    public bool IsDataNamePresent() { return m_dataName_present; }
-    public bool IsDurablePresent() { return m_durable_present; }
-    public bool IsBroadcastPresent() { return m_broadcast_present; }
-
-    public TunnelProperties() {}
-    public override int ProtocolClassId { get { return 110; } }
-    public override string ProtocolClassName { get { return "tunnel"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      m_headers_present = reader.ReadPresence();
-      m_proxyName_present = reader.ReadPresence();
-      m_dataName_present = reader.ReadPresence();
-      m_durable_present = reader.ReadPresence();
-      m_broadcast_present = reader.ReadPresence();
-      reader.FinishPresence();
-      if (m_headers_present) { m_headers = reader.ReadTable(); }
-      if (m_proxyName_present) { m_proxyName = reader.ReadShortstr(); }
-      if (m_dataName_present) { m_dataName = reader.ReadShortstr(); }
-      if (m_durable_present) { m_durable = reader.ReadOctet(); }
-      if (m_broadcast_present) { m_broadcast = reader.ReadOctet(); }
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.WritePresence(m_headers_present);
-      writer.WritePresence(m_proxyName_present);
-      writer.WritePresence(m_dataName_present);
-      writer.WritePresence(m_durable_present);
-      writer.WritePresence(m_broadcast_present);
-      writer.FinishPresence();
-      if (m_headers_present) { writer.WriteTable(m_headers); }
-      if (m_proxyName_present) { writer.WriteShortstr(m_proxyName); }
-      if (m_dataName_present) { writer.WriteShortstr(m_dataName); }
-      if (m_durable_present) { writer.WriteOctet(m_durable); }
-      if (m_broadcast_present) { writer.WriteOctet(m_broadcast); }
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append("headers="); sb.Append(m_headers_present ? (m_headers == null ? "(null)" : m_headers.ToString()) : "_"); sb.Append(", ");
-      sb.Append("proxy name="); sb.Append(m_proxyName_present ? (m_proxyName == null ? "(null)" : m_proxyName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("data name="); sb.Append(m_dataName_present ? (m_dataName == null ? "(null)" : m_dataName.ToString()) : "_"); sb.Append(", ");
-      sb.Append("durable="); sb.Append(m_durable_present ? m_durable.ToString() : "_"); sb.Append(", ");
-      sb.Append("broadcast="); sb.Append(m_broadcast_present ? m_broadcast.ToString() : "_");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. AMQP specification content header properties for content class "test"</summary>
-  public class TestProperties: RabbitMQ.Client.Impl.ContentHeaderBase {
-
-
-
-
-
-    public TestProperties() {}
-    public override int ProtocolClassId { get { return 120; } }
-    public override string ProtocolClassName { get { return "test"; } }
-
-    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {
-      reader.FinishPresence();
-    }
-
-    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {
-      writer.FinishPresence();
-    }
-
-    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-}
-namespace RabbitMQ.Client.Framing.Impl.v0_8qpid {
-  using RabbitMQ.Client.Framing.v0_8qpid;
-  public enum ClassId {
-    Connection = 10,
-    Channel = 20,
-    Access = 30,
-    Exchange = 40,
-    Queue = 50,
-    Basic = 60,
-    File = 70,
-    Stream = 80,
-    Tx = 90,
-    Dtx = 100,
-    Tunnel = 110,
-    Test = 120,
-    Invalid = -1
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStart: RabbitMQ.Client.Impl.MethodBase, IConnectionStart {
-    public const int ClassId = 10;
-    public const int MethodId = 10;
-
-    public byte m_versionMajor;
-    public byte m_versionMinor;
-    public System.Collections.IDictionary m_serverProperties;
-    public byte[] m_mechanisms;
-    public byte[] m_locales;
-
-    byte IConnectionStart.VersionMajor { get { return m_versionMajor; } }
-    byte IConnectionStart.VersionMinor { get { return m_versionMinor; } }
-    System.Collections.IDictionary IConnectionStart.ServerProperties { get { return m_serverProperties; } }
-    byte[] IConnectionStart.Mechanisms { get { return m_mechanisms; } }
-    byte[] IConnectionStart.Locales { get { return m_locales; } }
-
-    public ConnectionStart() {}
-    public ConnectionStart(
-      byte initVersionMajor,
-      byte initVersionMinor,
-      System.Collections.IDictionary initServerProperties,
-      byte[] initMechanisms,
-      byte[] initLocales)
-    {
-      m_versionMajor = initVersionMajor;
-      m_versionMinor = initVersionMinor;
-      m_serverProperties = initServerProperties;
-      m_mechanisms = initMechanisms;
-      m_locales = initLocales;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "connection.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_versionMajor = reader.ReadOctet();
-      m_versionMinor = reader.ReadOctet();
-      m_serverProperties = reader.ReadTable();
-      m_mechanisms = reader.ReadLongstr();
-      m_locales = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteOctet(m_versionMajor);
-      writer.WriteOctet(m_versionMinor);
-      writer.WriteTable(m_serverProperties);
-      writer.WriteLongstr(m_mechanisms);
-      writer.WriteLongstr(m_locales);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_versionMajor); sb.Append(",");
-      sb.Append(m_versionMinor); sb.Append(",");
-      sb.Append(m_serverProperties); sb.Append(",");
-      sb.Append(m_mechanisms); sb.Append(",");
-      sb.Append(m_locales);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionStartOk: RabbitMQ.Client.Impl.MethodBase, IConnectionStartOk {
-    public const int ClassId = 10;
-    public const int MethodId = 11;
-
-    public System.Collections.IDictionary m_clientProperties;
-    public string m_mechanism;
-    public byte[] m_response;
-    public string m_locale;
-
-    System.Collections.IDictionary IConnectionStartOk.ClientProperties { get { return m_clientProperties; } }
-    string IConnectionStartOk.Mechanism { get { return m_mechanism; } }
-    byte[] IConnectionStartOk.Response { get { return m_response; } }
-    string IConnectionStartOk.Locale { get { return m_locale; } }
-
-    public ConnectionStartOk() {}
-    public ConnectionStartOk(
-      System.Collections.IDictionary initClientProperties,
-      string initMechanism,
-      byte[] initResponse,
-      string initLocale)
-    {
-      m_clientProperties = initClientProperties;
-      m_mechanism = initMechanism;
-      m_response = initResponse;
-      m_locale = initLocale;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "connection.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clientProperties = reader.ReadTable();
-      m_mechanism = reader.ReadShortstr();
-      m_response = reader.ReadLongstr();
-      m_locale = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_clientProperties);
-      writer.WriteShortstr(m_mechanism);
-      writer.WriteLongstr(m_response);
-      writer.WriteShortstr(m_locale);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clientProperties); sb.Append(",");
-      sb.Append(m_mechanism); sb.Append(",");
-      sb.Append(m_response); sb.Append(",");
-      sb.Append(m_locale);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecure: RabbitMQ.Client.Impl.MethodBase, IConnectionSecure {
-    public const int ClassId = 10;
-    public const int MethodId = 20;
-
-    public byte[] m_challenge;
-
-    byte[] IConnectionSecure.Challenge { get { return m_challenge; } }
-
-    public ConnectionSecure() {}
-    public ConnectionSecure(
-      byte[] initChallenge)
-    {
-      m_challenge = initChallenge;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "connection.secure"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_challenge = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_challenge);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_challenge);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionSecureOk: RabbitMQ.Client.Impl.MethodBase, IConnectionSecureOk {
-    public const int ClassId = 10;
-    public const int MethodId = 21;
-
-    public byte[] m_response;
-
-    byte[] IConnectionSecureOk.Response { get { return m_response; } }
-
-    public ConnectionSecureOk() {}
-    public ConnectionSecureOk(
-      byte[] initResponse)
-    {
-      m_response = initResponse;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "connection.secure-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_response = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_response);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_response);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTune: RabbitMQ.Client.Impl.MethodBase, IConnectionTune {
-    public const int ClassId = 10;
-    public const int MethodId = 30;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTune.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTune.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTune.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTune() {}
-    public ConnectionTune(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "connection.tune"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionTuneOk: RabbitMQ.Client.Impl.MethodBase, IConnectionTuneOk {
-    public const int ClassId = 10;
-    public const int MethodId = 31;
-
-    public ushort m_channelMax;
-    public uint m_frameMax;
-    public ushort m_heartbeat;
-
-    ushort IConnectionTuneOk.ChannelMax { get { return m_channelMax; } }
-    uint IConnectionTuneOk.FrameMax { get { return m_frameMax; } }
-    ushort IConnectionTuneOk.Heartbeat { get { return m_heartbeat; } }
-
-    public ConnectionTuneOk() {}
-    public ConnectionTuneOk(
-      ushort initChannelMax,
-      uint initFrameMax,
-      ushort initHeartbeat)
-    {
-      m_channelMax = initChannelMax;
-      m_frameMax = initFrameMax;
-      m_heartbeat = initHeartbeat;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "connection.tune-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_channelMax = reader.ReadShort();
-      m_frameMax = reader.ReadLong();
-      m_heartbeat = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_channelMax);
-      writer.WriteLong(m_frameMax);
-      writer.WriteShort(m_heartbeat);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_channelMax); sb.Append(",");
-      sb.Append(m_frameMax); sb.Append(",");
-      sb.Append(m_heartbeat);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpen: RabbitMQ.Client.Impl.MethodBase, IConnectionOpen {
-    public const int ClassId = 10;
-    public const int MethodId = 40;
-
-    public string m_virtualHost;
-    public string m_capabilities;
-    public bool m_insist;
-
-    string IConnectionOpen.VirtualHost { get { return m_virtualHost; } }
-    string IConnectionOpen.Capabilities { get { return m_capabilities; } }
-    bool IConnectionOpen.Insist { get { return m_insist; } }
-
-    public ConnectionOpen() {}
-    public ConnectionOpen(
-      string initVirtualHost,
-      string initCapabilities,
-      bool initInsist)
-    {
-      m_virtualHost = initVirtualHost;
-      m_capabilities = initCapabilities;
-      m_insist = initInsist;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "connection.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_virtualHost = reader.ReadShortstr();
-      m_capabilities = reader.ReadShortstr();
-      m_insist = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_virtualHost);
-      writer.WriteShortstr(m_capabilities);
-      writer.WriteBit(m_insist);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_virtualHost); sb.Append(",");
-      sb.Append(m_capabilities); sb.Append(",");
-      sb.Append(m_insist);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionOpenOk: RabbitMQ.Client.Impl.MethodBase, IConnectionOpenOk {
-    public const int ClassId = 10;
-    public const int MethodId = 41;
-
-    public string m_knownHosts;
-
-    string IConnectionOpenOk.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionOpenOk() {}
-    public ConnectionOpenOk(
-      string initKnownHosts)
-    {
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "connection.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionRedirect: RabbitMQ.Client.Impl.MethodBase, IConnectionRedirect {
-    public const int ClassId = 10;
-    public const int MethodId = 50;
-
-    public string m_host;
-    public string m_knownHosts;
-
-    string IConnectionRedirect.Host { get { return m_host; } }
-    string IConnectionRedirect.KnownHosts { get { return m_knownHosts; } }
-
-    public ConnectionRedirect() {}
-    public ConnectionRedirect(
-      string initHost,
-      string initKnownHosts)
-    {
-      m_host = initHost;
-      m_knownHosts = initKnownHosts;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "connection.redirect"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_host = reader.ReadShortstr();
-      m_knownHosts = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_host);
-      writer.WriteShortstr(m_knownHosts);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_host); sb.Append(",");
-      sb.Append(m_knownHosts);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionClose: RabbitMQ.Client.Impl.MethodBase, IConnectionClose {
-    public const int ClassId = 10;
-    public const int MethodId = 60;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IConnectionClose.ReplyCode { get { return m_replyCode; } }
-    string IConnectionClose.ReplyText { get { return m_replyText; } }
-    ushort IConnectionClose.ClassId { get { return m_classId; } }
-    ushort IConnectionClose.MethodId { get { return m_methodId; } }
-
-    public ConnectionClose() {}
-    public ConnectionClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "connection.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ConnectionCloseOk: RabbitMQ.Client.Impl.MethodBase, IConnectionCloseOk {
-    public const int ClassId = 10;
-    public const int MethodId = 61;
-
-
-
-    public ConnectionCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 10; } }
-    public override int ProtocolMethodId { get { return 61; } }
-    public override string ProtocolMethodName { get { return "connection.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpen: RabbitMQ.Client.Impl.MethodBase, IChannelOpen {
-    public const int ClassId = 20;
-    public const int MethodId = 10;
-
-    public string m_outOfBand;
-
-    string IChannelOpen.OutOfBand { get { return m_outOfBand; } }
-
-    public ChannelOpen() {}
-    public ChannelOpen(
-      string initOutOfBand)
-    {
-      m_outOfBand = initOutOfBand;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "channel.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_outOfBand = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_outOfBand);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_outOfBand);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelOpenOk: RabbitMQ.Client.Impl.MethodBase, IChannelOpenOk {
-    public const int ClassId = 20;
-    public const int MethodId = 11;
-
-
-
-    public ChannelOpenOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "channel.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlow: RabbitMQ.Client.Impl.MethodBase, IChannelFlow {
-    public const int ClassId = 20;
-    public const int MethodId = 20;
-
-    public bool m_active;
-
-    bool IChannelFlow.Active { get { return m_active; } }
-
-    public ChannelFlow() {}
-    public ChannelFlow(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "channel.flow"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelFlowOk: RabbitMQ.Client.Impl.MethodBase, IChannelFlowOk {
-    public const int ClassId = 20;
-    public const int MethodId = 21;
-
-    public bool m_active;
-
-    bool IChannelFlowOk.Active { get { return m_active; } }
-
-    public ChannelFlowOk() {}
-    public ChannelFlowOk(
-      bool initActive)
-    {
-      m_active = initActive;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "channel.flow-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_active = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_active);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_active);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelAlert: RabbitMQ.Client.Impl.MethodBase, IChannelAlert {
-    public const int ClassId = 20;
-    public const int MethodId = 30;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public System.Collections.IDictionary m_details;
-
-    ushort IChannelAlert.ReplyCode { get { return m_replyCode; } }
-    string IChannelAlert.ReplyText { get { return m_replyText; } }
-    System.Collections.IDictionary IChannelAlert.Details { get { return m_details; } }
-
-    public ChannelAlert() {}
-    public ChannelAlert(
-      ushort initReplyCode,
-      string initReplyText,
-      System.Collections.IDictionary initDetails)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_details = initDetails;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "channel.alert"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_details = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteTable(m_details);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_details);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelClose: RabbitMQ.Client.Impl.MethodBase, IChannelClose {
-    public const int ClassId = 20;
-    public const int MethodId = 40;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public ushort m_classId;
-    public ushort m_methodId;
-
-    ushort IChannelClose.ReplyCode { get { return m_replyCode; } }
-    string IChannelClose.ReplyText { get { return m_replyText; } }
-    ushort IChannelClose.ClassId { get { return m_classId; } }
-    ushort IChannelClose.MethodId { get { return m_methodId; } }
-
-    public ChannelClose() {}
-    public ChannelClose(
-      ushort initReplyCode,
-      string initReplyText,
-      ushort initClassId,
-      ushort initMethodId)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_classId = initClassId;
-      m_methodId = initMethodId;
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "channel.close"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_classId = reader.ReadShort();
-      m_methodId = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShort(m_classId);
-      writer.WriteShort(m_methodId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_classId); sb.Append(",");
-      sb.Append(m_methodId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ChannelCloseOk: RabbitMQ.Client.Impl.MethodBase, IChannelCloseOk {
-    public const int ClassId = 20;
-    public const int MethodId = 41;
-
-
-
-    public ChannelCloseOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 20; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "channel.close-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequest: RabbitMQ.Client.Impl.MethodBase, IAccessRequest {
-    public const int ClassId = 30;
-    public const int MethodId = 10;
-
-    public string m_realm;
-    public bool m_exclusive;
-    public bool m_passive;
-    public bool m_active;
-    public bool m_write;
-    public bool m_read;
-
-    string IAccessRequest.Realm { get { return m_realm; } }
-    bool IAccessRequest.Exclusive { get { return m_exclusive; } }
-    bool IAccessRequest.Passive { get { return m_passive; } }
-    bool IAccessRequest.Active { get { return m_active; } }
-    bool IAccessRequest.Write { get { return m_write; } }
-    bool IAccessRequest.Read { get { return m_read; } }
-
-    public AccessRequest() {}
-    public AccessRequest(
-      string initRealm,
-      bool initExclusive,
-      bool initPassive,
-      bool initActive,
-      bool initWrite,
-      bool initRead)
-    {
-      m_realm = initRealm;
-      m_exclusive = initExclusive;
-      m_passive = initPassive;
-      m_active = initActive;
-      m_write = initWrite;
-      m_read = initRead;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "access.request"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_realm = reader.ReadShortstr();
-      m_exclusive = reader.ReadBit();
-      m_passive = reader.ReadBit();
-      m_active = reader.ReadBit();
-      m_write = reader.ReadBit();
-      m_read = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_realm);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_active);
-      writer.WriteBit(m_write);
-      writer.WriteBit(m_read);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_realm); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_active); sb.Append(",");
-      sb.Append(m_write); sb.Append(",");
-      sb.Append(m_read);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class AccessRequestOk: RabbitMQ.Client.Impl.MethodBase, IAccessRequestOk {
-    public const int ClassId = 30;
-    public const int MethodId = 11;
-
-    public ushort m_ticket;
-
-    ushort IAccessRequestOk.Ticket { get { return m_ticket; } }
-
-    public AccessRequestOk() {}
-    public AccessRequestOk(
-      ushort initTicket)
-    {
-      m_ticket = initTicket;
-    }
-
-    public override int ProtocolClassId { get { return 30; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "access.request-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclare: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclare {
-    public const int ClassId = 40;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_type;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_autoDelete;
-    public bool m_internal;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IExchangeDeclare.Ticket { get { return m_ticket; } }
-    string IExchangeDeclare.Exchange { get { return m_exchange; } }
-    string IExchangeDeclare.Type { get { return m_type; } }
-    bool IExchangeDeclare.Passive { get { return m_passive; } }
-    bool IExchangeDeclare.Durable { get { return m_durable; } }
-    bool IExchangeDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IExchangeDeclare.Internal { get { return m_internal; } }
-    bool IExchangeDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IExchangeDeclare.Arguments { get { return m_arguments; } }
-
-    public ExchangeDeclare() {}
-    public ExchangeDeclare(
-      ushort initTicket,
-      string initExchange,
-      string initType,
-      bool initPassive,
-      bool initDurable,
-      bool initAutoDelete,
-      bool initInternal,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_type = initType;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_autoDelete = initAutoDelete;
-      m_internal = initInternal;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "exchange.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_type = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_internal = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_type);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_internal);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_type); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_internal); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeclareOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeclareOk {
-    public const int ClassId = 40;
-    public const int MethodId = 11;
-
-
-
-    public ExchangeDeclareOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "exchange.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDelete: RabbitMQ.Client.Impl.MethodBase, IExchangeDelete {
-    public const int ClassId = 40;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public bool m_ifUnused;
-    public bool m_nowait;
-
-    ushort IExchangeDelete.Ticket { get { return m_ticket; } }
-    string IExchangeDelete.Exchange { get { return m_exchange; } }
-    bool IExchangeDelete.IfUnused { get { return m_ifUnused; } }
-    bool IExchangeDelete.Nowait { get { return m_nowait; } }
-
-    public ExchangeDelete() {}
-    public ExchangeDelete(
-      ushort initTicket,
-      string initExchange,
-      bool initIfUnused,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_ifUnused = initIfUnused;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "exchange.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeDeleteOk: RabbitMQ.Client.Impl.MethodBase, IExchangeDeleteOk {
-    public const int ClassId = 40;
-    public const int MethodId = 21;
-
-
-
-    public ExchangeDeleteOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "exchange.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeBound: RabbitMQ.Client.Impl.MethodBase, IExchangeBound {
-    public const int ClassId = 40;
-    public const int MethodId = 22;
-
-    public string m_exchange;
-    public string m_routingKey;
-    public string m_queue;
-
-    string IExchangeBound.Exchange { get { return m_exchange; } }
-    string IExchangeBound.RoutingKey { get { return m_routingKey; } }
-    string IExchangeBound.Queue { get { return m_queue; } }
-
-    public ExchangeBound() {}
-    public ExchangeBound(
-      string initExchange,
-      string initRoutingKey,
-      string initQueue)
-    {
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_queue = initQueue;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 22; } }
-    public override string ProtocolMethodName { get { return "exchange.bound"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_queue = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteShortstr(m_queue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_queue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class ExchangeBoundOk: RabbitMQ.Client.Impl.MethodBase, IExchangeBoundOk {
-    public const int ClassId = 40;
-    public const int MethodId = 23;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-
-    ushort IExchangeBoundOk.ReplyCode { get { return m_replyCode; } }
-    string IExchangeBoundOk.ReplyText { get { return m_replyText; } }
-
-    public ExchangeBoundOk() {}
-    public ExchangeBoundOk(
-      ushort initReplyCode,
-      string initReplyText)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-    }
-
-    public override int ProtocolClassId { get { return 40; } }
-    public override int ProtocolMethodId { get { return 23; } }
-    public override string ProtocolMethodName { get { return "exchange.bound-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclare: RabbitMQ.Client.Impl.MethodBase, IQueueDeclare {
-    public const int ClassId = 50;
-    public const int MethodId = 10;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_passive;
-    public bool m_durable;
-    public bool m_exclusive;
-    public bool m_autoDelete;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueDeclare.Ticket { get { return m_ticket; } }
-    string IQueueDeclare.Queue { get { return m_queue; } }
-    bool IQueueDeclare.Passive { get { return m_passive; } }
-    bool IQueueDeclare.Durable { get { return m_durable; } }
-    bool IQueueDeclare.Exclusive { get { return m_exclusive; } }
-    bool IQueueDeclare.AutoDelete { get { return m_autoDelete; } }
-    bool IQueueDeclare.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueDeclare.Arguments { get { return m_arguments; } }
-
-    public QueueDeclare() {}
-    public QueueDeclare(
-      ushort initTicket,
-      string initQueue,
-      bool initPassive,
-      bool initDurable,
-      bool initExclusive,
-      bool initAutoDelete,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_passive = initPassive;
-      m_durable = initDurable;
-      m_exclusive = initExclusive;
-      m_autoDelete = initAutoDelete;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "queue.declare"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_passive = reader.ReadBit();
-      m_durable = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_autoDelete = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_passive);
-      writer.WriteBit(m_durable);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_autoDelete);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_passive); sb.Append(",");
-      sb.Append(m_durable); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_autoDelete); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeclareOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeclareOk {
-    public const int ClassId = 50;
-    public const int MethodId = 11;
-
-    public string m_queue;
-    public uint m_messageCount;
-    public uint m_consumerCount;
-
-    string IQueueDeclareOk.Queue { get { return m_queue; } }
-    uint IQueueDeclareOk.MessageCount { get { return m_messageCount; } }
-    uint IQueueDeclareOk.ConsumerCount { get { return m_consumerCount; } }
-
-    public QueueDeclareOk() {}
-    public QueueDeclareOk(
-      string initQueue,
-      uint initMessageCount,
-      uint initConsumerCount)
-    {
-      m_queue = initQueue;
-      m_messageCount = initMessageCount;
-      m_consumerCount = initConsumerCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "queue.declare-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_queue = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-      m_consumerCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_queue);
-      writer.WriteLong(m_messageCount);
-      writer.WriteLong(m_consumerCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_messageCount); sb.Append(",");
-      sb.Append(m_consumerCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBind: RabbitMQ.Client.Impl.MethodBase, IQueueBind {
-    public const int ClassId = 50;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IQueueBind.Ticket { get { return m_ticket; } }
-    string IQueueBind.Queue { get { return m_queue; } }
-    string IQueueBind.Exchange { get { return m_exchange; } }
-    string IQueueBind.RoutingKey { get { return m_routingKey; } }
-    bool IQueueBind.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IQueueBind.Arguments { get { return m_arguments; } }
-
-    public QueueBind() {}
-    public QueueBind(
-      ushort initTicket,
-      string initQueue,
-      string initExchange,
-      string initRoutingKey,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "queue.bind"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueBindOk: RabbitMQ.Client.Impl.MethodBase, IQueueBindOk {
-    public const int ClassId = 50;
-    public const int MethodId = 21;
-
-
-
-    public QueueBindOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "queue.bind-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurge: RabbitMQ.Client.Impl.MethodBase, IQueuePurge {
-    public const int ClassId = 50;
-    public const int MethodId = 30;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_nowait;
-
-    ushort IQueuePurge.Ticket { get { return m_ticket; } }
-    string IQueuePurge.Queue { get { return m_queue; } }
-    bool IQueuePurge.Nowait { get { return m_nowait; } }
-
-    public QueuePurge() {}
-    public QueuePurge(
-      ushort initTicket,
-      string initQueue,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "queue.purge"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueuePurgeOk: RabbitMQ.Client.Impl.MethodBase, IQueuePurgeOk {
-    public const int ClassId = 50;
-    public const int MethodId = 31;
-
-    public uint m_messageCount;
-
-    uint IQueuePurgeOk.MessageCount { get { return m_messageCount; } }
-
-    public QueuePurgeOk() {}
-    public QueuePurgeOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "queue.purge-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDelete: RabbitMQ.Client.Impl.MethodBase, IQueueDelete {
-    public const int ClassId = 50;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_ifUnused;
-    public bool m_ifEmpty;
-    public bool m_nowait;
-
-    ushort IQueueDelete.Ticket { get { return m_ticket; } }
-    string IQueueDelete.Queue { get { return m_queue; } }
-    bool IQueueDelete.IfUnused { get { return m_ifUnused; } }
-    bool IQueueDelete.IfEmpty { get { return m_ifEmpty; } }
-    bool IQueueDelete.Nowait { get { return m_nowait; } }
-
-    public QueueDelete() {}
-    public QueueDelete(
-      ushort initTicket,
-      string initQueue,
-      bool initIfUnused,
-      bool initIfEmpty,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_ifUnused = initIfUnused;
-      m_ifEmpty = initIfEmpty;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "queue.delete"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_ifUnused = reader.ReadBit();
-      m_ifEmpty = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_ifUnused);
-      writer.WriteBit(m_ifEmpty);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_ifUnused); sb.Append(",");
-      sb.Append(m_ifEmpty); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class QueueDeleteOk: RabbitMQ.Client.Impl.MethodBase, IQueueDeleteOk {
-    public const int ClassId = 50;
-    public const int MethodId = 41;
-
-    public uint m_messageCount;
-
-    uint IQueueDeleteOk.MessageCount { get { return m_messageCount; } }
-
-    public QueueDeleteOk() {}
-    public QueueDeleteOk(
-      uint initMessageCount)
-    {
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 50; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "queue.delete-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQos: RabbitMQ.Client.Impl.MethodBase, IBasicQos {
-    public const int ClassId = 60;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IBasicQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IBasicQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IBasicQos.Global { get { return m_global; } }
-
-    public BasicQos() {}
-    public BasicQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "basic.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicQosOk: RabbitMQ.Client.Impl.MethodBase, IBasicQosOk {
-    public const int ClassId = 60;
-    public const int MethodId = 11;
-
-
-
-    public BasicQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "basic.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsume: RabbitMQ.Client.Impl.MethodBase, IBasicConsume {
-    public const int ClassId = 60;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-    public System.Collections.IDictionary m_arguments;
-
-    ushort IBasicConsume.Ticket { get { return m_ticket; } }
-    string IBasicConsume.Queue { get { return m_queue; } }
-    string IBasicConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicConsume.NoLocal { get { return m_noLocal; } }
-    bool IBasicConsume.NoAck { get { return m_noAck; } }
-    bool IBasicConsume.Exclusive { get { return m_exclusive; } }
-    bool IBasicConsume.Nowait { get { return m_nowait; } }
-    System.Collections.IDictionary IBasicConsume.Arguments { get { return m_arguments; } }
-
-    public BasicConsume() {}
-    public BasicConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait,
-      System.Collections.IDictionary initArguments)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-      m_arguments = initArguments;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "basic.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-      m_arguments = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-      writer.WriteTable(m_arguments);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait); sb.Append(",");
-      sb.Append(m_arguments);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicConsumeOk: RabbitMQ.Client.Impl.MethodBase, IBasicConsumeOk {
-    public const int ClassId = 60;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IBasicConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicConsumeOk() {}
-    public BasicConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "basic.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancel: RabbitMQ.Client.Impl.MethodBase, IBasicCancel {
-    public const int ClassId = 60;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IBasicCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IBasicCancel.Nowait { get { return m_nowait; } }
-
-    public BasicCancel() {}
-    public BasicCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "basic.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicCancelOk: RabbitMQ.Client.Impl.MethodBase, IBasicCancelOk {
-    public const int ClassId = 60;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IBasicCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public BasicCancelOk() {}
-    public BasicCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "basic.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicPublish: RabbitMQ.Client.Impl.MethodBase, IBasicPublish {
-    public const int ClassId = 60;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IBasicPublish.Ticket { get { return m_ticket; } }
-    string IBasicPublish.Exchange { get { return m_exchange; } }
-    string IBasicPublish.RoutingKey { get { return m_routingKey; } }
-    bool IBasicPublish.Mandatory { get { return m_mandatory; } }
-    bool IBasicPublish.Immediate { get { return m_immediate; } }
-
-    public BasicPublish() {}
-    public BasicPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "basic.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReturn: RabbitMQ.Client.Impl.MethodBase, IBasicReturn {
-    public const int ClassId = 60;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IBasicReturn.ReplyCode { get { return m_replyCode; } }
-    string IBasicReturn.ReplyText { get { return m_replyText; } }
-    string IBasicReturn.Exchange { get { return m_exchange; } }
-    string IBasicReturn.RoutingKey { get { return m_routingKey; } }
-
-    public BasicReturn() {}
-    public BasicReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "basic.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicDeliver: RabbitMQ.Client.Impl.MethodBase, IBasicDeliver {
-    public const int ClassId = 60;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-
-    string IBasicDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IBasicDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicDeliver.Redelivered { get { return m_redelivered; } }
-    string IBasicDeliver.Exchange { get { return m_exchange; } }
-    string IBasicDeliver.RoutingKey { get { return m_routingKey; } }
-
-    public BasicDeliver() {}
-    public BasicDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "basic.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGet: RabbitMQ.Client.Impl.MethodBase, IBasicGet {
-    public const int ClassId = 60;
-    public const int MethodId = 70;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public bool m_noAck;
-
-    ushort IBasicGet.Ticket { get { return m_ticket; } }
-    string IBasicGet.Queue { get { return m_queue; } }
-    bool IBasicGet.NoAck { get { return m_noAck; } }
-
-    public BasicGet() {}
-    public BasicGet(
-      ushort initTicket,
-      string initQueue,
-      bool initNoAck)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_noAck = initNoAck;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "basic.get"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_noAck = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteBit(m_noAck);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_noAck);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetOk: RabbitMQ.Client.Impl.MethodBase, IBasicGetOk {
-    public const int ClassId = 60;
-    public const int MethodId = 71;
-
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public uint m_messageCount;
-
-    ulong IBasicGetOk.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicGetOk.Redelivered { get { return m_redelivered; } }
-    string IBasicGetOk.Exchange { get { return m_exchange; } }
-    string IBasicGetOk.RoutingKey { get { return m_routingKey; } }
-    uint IBasicGetOk.MessageCount { get { return m_messageCount; } }
-
-    public BasicGetOk() {}
-    public BasicGetOk(
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      uint initMessageCount)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_messageCount = initMessageCount;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 71; } }
-    public override string ProtocolMethodName { get { return "basic.get-ok"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_messageCount = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteLong(m_messageCount);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_messageCount);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicGetEmpty: RabbitMQ.Client.Impl.MethodBase, IBasicGetEmpty {
-    public const int ClassId = 60;
-    public const int MethodId = 72;
-
-    public string m_clusterId;
-
-    string IBasicGetEmpty.ClusterId { get { return m_clusterId; } }
-
-    public BasicGetEmpty() {}
-    public BasicGetEmpty(
-      string initClusterId)
-    {
-      m_clusterId = initClusterId;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 72; } }
-    public override string ProtocolMethodName { get { return "basic.get-empty"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_clusterId = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_clusterId);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_clusterId);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicAck: RabbitMQ.Client.Impl.MethodBase, IBasicAck {
-    public const int ClassId = 60;
-    public const int MethodId = 80;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IBasicAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicAck.Multiple { get { return m_multiple; } }
-
-    public BasicAck() {}
-    public BasicAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "basic.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicReject: RabbitMQ.Client.Impl.MethodBase, IBasicReject {
-    public const int ClassId = 60;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IBasicReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IBasicReject.Requeue { get { return m_requeue; } }
-
-    public BasicReject() {}
-    public BasicReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "basic.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicRecover: RabbitMQ.Client.Impl.MethodBase, IBasicRecover {
-    public const int ClassId = 60;
-    public const int MethodId = 100;
-
-    public bool m_requeue;
-
-    bool IBasicRecover.Requeue { get { return m_requeue; } }
-
-    public BasicRecover() {}
-    public BasicRecover(
-      bool initRequeue)
-    {
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "basic.recover"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class BasicRecoverOk: RabbitMQ.Client.Impl.MethodBase, IBasicRecoverOk {
-    public const int ClassId = 60;
-    public const int MethodId = 101;
-
-
-
-    public BasicRecoverOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 60; } }
-    public override int ProtocolMethodId { get { return 101; } }
-    public override string ProtocolMethodName { get { return "basic.recover-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQos: RabbitMQ.Client.Impl.MethodBase, IFileQos {
-    public const int ClassId = 70;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public bool m_global;
-
-    uint IFileQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IFileQos.PrefetchCount { get { return m_prefetchCount; } }
-    bool IFileQos.Global { get { return m_global; } }
-
-    public FileQos() {}
-    public FileQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "file.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileQosOk: RabbitMQ.Client.Impl.MethodBase, IFileQosOk {
-    public const int ClassId = 70;
-    public const int MethodId = 11;
-
-
-
-    public FileQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "file.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsume: RabbitMQ.Client.Impl.MethodBase, IFileConsume {
-    public const int ClassId = 70;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_noAck;
-    public bool m_exclusive;
-    public bool m_nowait;
-
-    ushort IFileConsume.Ticket { get { return m_ticket; } }
-    string IFileConsume.Queue { get { return m_queue; } }
-    string IFileConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileConsume.NoLocal { get { return m_noLocal; } }
-    bool IFileConsume.NoAck { get { return m_noAck; } }
-    bool IFileConsume.Exclusive { get { return m_exclusive; } }
-    bool IFileConsume.Nowait { get { return m_nowait; } }
-
-    public FileConsume() {}
-    public FileConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initNoAck,
-      bool initExclusive,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_noAck = initNoAck;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "file.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_noAck = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_noAck);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_noAck); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileConsumeOk: RabbitMQ.Client.Impl.MethodBase, IFileConsumeOk {
-    public const int ClassId = 70;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IFileConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileConsumeOk() {}
-    public FileConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "file.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancel: RabbitMQ.Client.Impl.MethodBase, IFileCancel {
-    public const int ClassId = 70;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IFileCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IFileCancel.Nowait { get { return m_nowait; } }
-
-    public FileCancel() {}
-    public FileCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "file.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileCancelOk: RabbitMQ.Client.Impl.MethodBase, IFileCancelOk {
-    public const int ClassId = 70;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IFileCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public FileCancelOk() {}
-    public FileCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "file.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpen: RabbitMQ.Client.Impl.MethodBase, IFileOpen {
-    public const int ClassId = 70;
-    public const int MethodId = 40;
-
-    public string m_identifier;
-    public ulong m_contentSize;
-
-    string IFileOpen.Identifier { get { return m_identifier; } }
-    ulong IFileOpen.ContentSize { get { return m_contentSize; } }
-
-    public FileOpen() {}
-    public FileOpen(
-      string initIdentifier,
-      ulong initContentSize)
-    {
-      m_identifier = initIdentifier;
-      m_contentSize = initContentSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "file.open"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_identifier = reader.ReadShortstr();
-      m_contentSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_identifier);
-      writer.WriteLonglong(m_contentSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_identifier); sb.Append(",");
-      sb.Append(m_contentSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileOpenOk: RabbitMQ.Client.Impl.MethodBase, IFileOpenOk {
-    public const int ClassId = 70;
-    public const int MethodId = 41;
-
-    public ulong m_stagedSize;
-
-    ulong IFileOpenOk.StagedSize { get { return m_stagedSize; } }
-
-    public FileOpenOk() {}
-    public FileOpenOk(
-      ulong initStagedSize)
-    {
-      m_stagedSize = initStagedSize;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "file.open-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_stagedSize = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_stagedSize);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_stagedSize);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileStage: RabbitMQ.Client.Impl.MethodBase, IFileStage {
-    public const int ClassId = 70;
-    public const int MethodId = 50;
-
-
-
-    public FileStage(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "file.stage"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FilePublish: RabbitMQ.Client.Impl.MethodBase, IFilePublish {
-    public const int ClassId = 70;
-    public const int MethodId = 60;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-    public string m_identifier;
-
-    ushort IFilePublish.Ticket { get { return m_ticket; } }
-    string IFilePublish.Exchange { get { return m_exchange; } }
-    string IFilePublish.RoutingKey { get { return m_routingKey; } }
-    bool IFilePublish.Mandatory { get { return m_mandatory; } }
-    bool IFilePublish.Immediate { get { return m_immediate; } }
-    string IFilePublish.Identifier { get { return m_identifier; } }
-
-    public FilePublish() {}
-    public FilePublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate,
-      string initIdentifier)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "file.publish"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReturn: RabbitMQ.Client.Impl.MethodBase, IFileReturn {
-    public const int ClassId = 70;
-    public const int MethodId = 70;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IFileReturn.ReplyCode { get { return m_replyCode; } }
-    string IFileReturn.ReplyText { get { return m_replyText; } }
-    string IFileReturn.Exchange { get { return m_exchange; } }
-    string IFileReturn.RoutingKey { get { return m_routingKey; } }
-
-    public FileReturn() {}
-    public FileReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 70; } }
-    public override string ProtocolMethodName { get { return "file.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileDeliver: RabbitMQ.Client.Impl.MethodBase, IFileDeliver {
-    public const int ClassId = 70;
-    public const int MethodId = 80;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public bool m_redelivered;
-    public string m_exchange;
-    public string m_routingKey;
-    public string m_identifier;
-
-    string IFileDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IFileDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileDeliver.Redelivered { get { return m_redelivered; } }
-    string IFileDeliver.Exchange { get { return m_exchange; } }
-    string IFileDeliver.RoutingKey { get { return m_routingKey; } }
-    string IFileDeliver.Identifier { get { return m_identifier; } }
-
-    public FileDeliver() {}
-    public FileDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      bool initRedelivered,
-      string initExchange,
-      string initRoutingKey,
-      string initIdentifier)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_redelivered = initRedelivered;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_identifier = initIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 80; } }
-    public override string ProtocolMethodName { get { return "file.deliver"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_redelivered = reader.ReadBit();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_identifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_redelivered);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteShortstr(m_identifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_redelivered); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_identifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileAck: RabbitMQ.Client.Impl.MethodBase, IFileAck {
-    public const int ClassId = 70;
-    public const int MethodId = 90;
-
-    public ulong m_deliveryTag;
-    public bool m_multiple;
-
-    ulong IFileAck.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileAck.Multiple { get { return m_multiple; } }
-
-    public FileAck() {}
-    public FileAck(
-      ulong initDeliveryTag,
-      bool initMultiple)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_multiple = initMultiple;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 90; } }
-    public override string ProtocolMethodName { get { return "file.ack"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_multiple = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_multiple);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_multiple);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class FileReject: RabbitMQ.Client.Impl.MethodBase, IFileReject {
-    public const int ClassId = 70;
-    public const int MethodId = 100;
-
-    public ulong m_deliveryTag;
-    public bool m_requeue;
-
-    ulong IFileReject.DeliveryTag { get { return m_deliveryTag; } }
-    bool IFileReject.Requeue { get { return m_requeue; } }
-
-    public FileReject() {}
-    public FileReject(
-      ulong initDeliveryTag,
-      bool initRequeue)
-    {
-      m_deliveryTag = initDeliveryTag;
-      m_requeue = initRequeue;
-    }
-
-    public override int ProtocolClassId { get { return 70; } }
-    public override int ProtocolMethodId { get { return 100; } }
-    public override string ProtocolMethodName { get { return "file.reject"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_deliveryTag = reader.ReadLonglong();
-      m_requeue = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteBit(m_requeue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_requeue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQos: RabbitMQ.Client.Impl.MethodBase, IStreamQos {
-    public const int ClassId = 80;
-    public const int MethodId = 10;
-
-    public uint m_prefetchSize;
-    public ushort m_prefetchCount;
-    public uint m_consumeRate;
-    public bool m_global;
-
-    uint IStreamQos.PrefetchSize { get { return m_prefetchSize; } }
-    ushort IStreamQos.PrefetchCount { get { return m_prefetchCount; } }
-    uint IStreamQos.ConsumeRate { get { return m_consumeRate; } }
-    bool IStreamQos.Global { get { return m_global; } }
-
-    public StreamQos() {}
-    public StreamQos(
-      uint initPrefetchSize,
-      ushort initPrefetchCount,
-      uint initConsumeRate,
-      bool initGlobal)
-    {
-      m_prefetchSize = initPrefetchSize;
-      m_prefetchCount = initPrefetchCount;
-      m_consumeRate = initConsumeRate;
-      m_global = initGlobal;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "stream.qos"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_prefetchSize = reader.ReadLong();
-      m_prefetchCount = reader.ReadShort();
-      m_consumeRate = reader.ReadLong();
-      m_global = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_prefetchSize);
-      writer.WriteShort(m_prefetchCount);
-      writer.WriteLong(m_consumeRate);
-      writer.WriteBit(m_global);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_prefetchSize); sb.Append(",");
-      sb.Append(m_prefetchCount); sb.Append(",");
-      sb.Append(m_consumeRate); sb.Append(",");
-      sb.Append(m_global);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamQosOk: RabbitMQ.Client.Impl.MethodBase, IStreamQosOk {
-    public const int ClassId = 80;
-    public const int MethodId = 11;
-
-
-
-    public StreamQosOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "stream.qos-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsume: RabbitMQ.Client.Impl.MethodBase, IStreamConsume {
-    public const int ClassId = 80;
-    public const int MethodId = 20;
-
-    public ushort m_ticket;
-    public string m_queue;
-    public string m_consumerTag;
-    public bool m_noLocal;
-    public bool m_exclusive;
-    public bool m_nowait;
-
-    ushort IStreamConsume.Ticket { get { return m_ticket; } }
-    string IStreamConsume.Queue { get { return m_queue; } }
-    string IStreamConsume.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamConsume.NoLocal { get { return m_noLocal; } }
-    bool IStreamConsume.Exclusive { get { return m_exclusive; } }
-    bool IStreamConsume.Nowait { get { return m_nowait; } }
-
-    public StreamConsume() {}
-    public StreamConsume(
-      ushort initTicket,
-      string initQueue,
-      string initConsumerTag,
-      bool initNoLocal,
-      bool initExclusive,
-      bool initNowait)
-    {
-      m_ticket = initTicket;
-      m_queue = initQueue;
-      m_consumerTag = initConsumerTag;
-      m_noLocal = initNoLocal;
-      m_exclusive = initExclusive;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "stream.consume"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_queue = reader.ReadShortstr();
-      m_consumerTag = reader.ReadShortstr();
-      m_noLocal = reader.ReadBit();
-      m_exclusive = reader.ReadBit();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_queue);
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_noLocal);
-      writer.WriteBit(m_exclusive);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_queue); sb.Append(",");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_noLocal); sb.Append(",");
-      sb.Append(m_exclusive); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamConsumeOk: RabbitMQ.Client.Impl.MethodBase, IStreamConsumeOk {
-    public const int ClassId = 80;
-    public const int MethodId = 21;
-
-    public string m_consumerTag;
-
-    string IStreamConsumeOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamConsumeOk() {}
-    public StreamConsumeOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "stream.consume-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancel: RabbitMQ.Client.Impl.MethodBase, IStreamCancel {
-    public const int ClassId = 80;
-    public const int MethodId = 30;
-
-    public string m_consumerTag;
-    public bool m_nowait;
-
-    string IStreamCancel.ConsumerTag { get { return m_consumerTag; } }
-    bool IStreamCancel.Nowait { get { return m_nowait; } }
-
-    public StreamCancel() {}
-    public StreamCancel(
-      string initConsumerTag,
-      bool initNowait)
-    {
-      m_consumerTag = initConsumerTag;
-      m_nowait = initNowait;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "stream.cancel"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_nowait = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteBit(m_nowait);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_nowait);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamCancelOk: RabbitMQ.Client.Impl.MethodBase, IStreamCancelOk {
-    public const int ClassId = 80;
-    public const int MethodId = 31;
-
-    public string m_consumerTag;
-
-    string IStreamCancelOk.ConsumerTag { get { return m_consumerTag; } }
-
-    public StreamCancelOk() {}
-    public StreamCancelOk(
-      string initConsumerTag)
-    {
-      m_consumerTag = initConsumerTag;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "stream.cancel-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamPublish: RabbitMQ.Client.Impl.MethodBase, IStreamPublish {
-    public const int ClassId = 80;
-    public const int MethodId = 40;
-
-    public ushort m_ticket;
-    public string m_exchange;
-    public string m_routingKey;
-    public bool m_mandatory;
-    public bool m_immediate;
-
-    ushort IStreamPublish.Ticket { get { return m_ticket; } }
-    string IStreamPublish.Exchange { get { return m_exchange; } }
-    string IStreamPublish.RoutingKey { get { return m_routingKey; } }
-    bool IStreamPublish.Mandatory { get { return m_mandatory; } }
-    bool IStreamPublish.Immediate { get { return m_immediate; } }
-
-    public StreamPublish() {}
-    public StreamPublish(
-      ushort initTicket,
-      string initExchange,
-      string initRoutingKey,
-      bool initMandatory,
-      bool initImmediate)
-    {
-      m_ticket = initTicket;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-      m_mandatory = initMandatory;
-      m_immediate = initImmediate;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "stream.publish"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_ticket = reader.ReadShort();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-      m_mandatory = reader.ReadBit();
-      m_immediate = reader.ReadBit();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_ticket);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-      writer.WriteBit(m_mandatory);
-      writer.WriteBit(m_immediate);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_ticket); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey); sb.Append(",");
-      sb.Append(m_mandatory); sb.Append(",");
-      sb.Append(m_immediate);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamReturn: RabbitMQ.Client.Impl.MethodBase, IStreamReturn {
-    public const int ClassId = 80;
-    public const int MethodId = 50;
-
-    public ushort m_replyCode;
-    public string m_replyText;
-    public string m_exchange;
-    public string m_routingKey;
-
-    ushort IStreamReturn.ReplyCode { get { return m_replyCode; } }
-    string IStreamReturn.ReplyText { get { return m_replyText; } }
-    string IStreamReturn.Exchange { get { return m_exchange; } }
-    string IStreamReturn.RoutingKey { get { return m_routingKey; } }
-
-    public StreamReturn() {}
-    public StreamReturn(
-      ushort initReplyCode,
-      string initReplyText,
-      string initExchange,
-      string initRoutingKey)
-    {
-      m_replyCode = initReplyCode;
-      m_replyText = initReplyText;
-      m_exchange = initExchange;
-      m_routingKey = initRoutingKey;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 50; } }
-    public override string ProtocolMethodName { get { return "stream.return"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_replyCode = reader.ReadShort();
-      m_replyText = reader.ReadShortstr();
-      m_exchange = reader.ReadShortstr();
-      m_routingKey = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShort(m_replyCode);
-      writer.WriteShortstr(m_replyText);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_routingKey);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_replyCode); sb.Append(",");
-      sb.Append(m_replyText); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_routingKey);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class StreamDeliver: RabbitMQ.Client.Impl.MethodBase, IStreamDeliver {
-    public const int ClassId = 80;
-    public const int MethodId = 60;
-
-    public string m_consumerTag;
-    public ulong m_deliveryTag;
-    public string m_exchange;
-    public string m_queue;
-
-    string IStreamDeliver.ConsumerTag { get { return m_consumerTag; } }
-    ulong IStreamDeliver.DeliveryTag { get { return m_deliveryTag; } }
-    string IStreamDeliver.Exchange { get { return m_exchange; } }
-    string IStreamDeliver.Queue { get { return m_queue; } }
-
-    public StreamDeliver() {}
-    public StreamDeliver(
-      string initConsumerTag,
-      ulong initDeliveryTag,
-      string initExchange,
-      string initQueue)
-    {
-      m_consumerTag = initConsumerTag;
-      m_deliveryTag = initDeliveryTag;
-      m_exchange = initExchange;
-      m_queue = initQueue;
-    }
-
-    public override int ProtocolClassId { get { return 80; } }
-    public override int ProtocolMethodId { get { return 60; } }
-    public override string ProtocolMethodName { get { return "stream.deliver"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_consumerTag = reader.ReadShortstr();
-      m_deliveryTag = reader.ReadLonglong();
-      m_exchange = reader.ReadShortstr();
-      m_queue = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_consumerTag);
-      writer.WriteLonglong(m_deliveryTag);
-      writer.WriteShortstr(m_exchange);
-      writer.WriteShortstr(m_queue);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_consumerTag); sb.Append(",");
-      sb.Append(m_deliveryTag); sb.Append(",");
-      sb.Append(m_exchange); sb.Append(",");
-      sb.Append(m_queue);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelect: RabbitMQ.Client.Impl.MethodBase, ITxSelect {
-    public const int ClassId = 90;
-    public const int MethodId = 10;
-
-
-
-    public TxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxSelectOk: RabbitMQ.Client.Impl.MethodBase, ITxSelectOk {
-    public const int ClassId = 90;
-    public const int MethodId = 11;
-
-
-
-    public TxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "tx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommit: RabbitMQ.Client.Impl.MethodBase, ITxCommit {
-    public const int ClassId = 90;
-    public const int MethodId = 20;
-
-
-
-    public TxCommit(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "tx.commit"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxCommitOk: RabbitMQ.Client.Impl.MethodBase, ITxCommitOk {
-    public const int ClassId = 90;
-    public const int MethodId = 21;
-
-
-
-    public TxCommitOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "tx.commit-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollback: RabbitMQ.Client.Impl.MethodBase, ITxRollback {
-    public const int ClassId = 90;
-    public const int MethodId = 30;
-
-
-
-    public TxRollback(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "tx.rollback"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TxRollbackOk: RabbitMQ.Client.Impl.MethodBase, ITxRollbackOk {
-    public const int ClassId = 90;
-    public const int MethodId = 31;
-
-
-
-    public TxRollbackOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 90; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "tx.rollback-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelect: RabbitMQ.Client.Impl.MethodBase, IDtxSelect {
-    public const int ClassId = 100;
-    public const int MethodId = 10;
-
-
-
-    public DtxSelect(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "dtx.select"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxSelectOk: RabbitMQ.Client.Impl.MethodBase, IDtxSelectOk {
-    public const int ClassId = 100;
-    public const int MethodId = 11;
-
-
-
-    public DtxSelectOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "dtx.select-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStart: RabbitMQ.Client.Impl.MethodBase, IDtxStart {
-    public const int ClassId = 100;
-    public const int MethodId = 20;
-
-    public string m_dtxIdentifier;
-
-    string IDtxStart.DtxIdentifier { get { return m_dtxIdentifier; } }
-
-    public DtxStart() {}
-    public DtxStart(
-      string initDtxIdentifier)
-    {
-      m_dtxIdentifier = initDtxIdentifier;
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "dtx.start"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_dtxIdentifier = reader.ReadShortstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_dtxIdentifier);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_dtxIdentifier);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class DtxStartOk: RabbitMQ.Client.Impl.MethodBase, IDtxStartOk {
-    public const int ClassId = 100;
-    public const int MethodId = 21;
-
-
-
-    public DtxStartOk(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 100; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "dtx.start-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TunnelRequest: RabbitMQ.Client.Impl.MethodBase, ITunnelRequest {
-    public const int ClassId = 110;
-    public const int MethodId = 10;
-
-    public System.Collections.IDictionary m_metaData;
-
-    System.Collections.IDictionary ITunnelRequest.MetaData { get { return m_metaData; } }
-
-    public TunnelRequest() {}
-    public TunnelRequest(
-      System.Collections.IDictionary initMetaData)
-    {
-      m_metaData = initMetaData;
-    }
-
-    public override int ProtocolClassId { get { return 110; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "tunnel.request"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_metaData = reader.ReadTable();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_metaData);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_metaData);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestInteger: RabbitMQ.Client.Impl.MethodBase, ITestInteger {
-    public const int ClassId = 120;
-    public const int MethodId = 10;
-
-    public byte m_integer1;
-    public ushort m_integer2;
-    public uint m_integer3;
-    public ulong m_integer4;
-    public byte m_operation;
-
-    byte ITestInteger.Integer1 { get { return m_integer1; } }
-    ushort ITestInteger.Integer2 { get { return m_integer2; } }
-    uint ITestInteger.Integer3 { get { return m_integer3; } }
-    ulong ITestInteger.Integer4 { get { return m_integer4; } }
-    byte ITestInteger.Operation { get { return m_operation; } }
-
-    public TestInteger() {}
-    public TestInteger(
-      byte initInteger1,
-      ushort initInteger2,
-      uint initInteger3,
-      ulong initInteger4,
-      byte initOperation)
-    {
-      m_integer1 = initInteger1;
-      m_integer2 = initInteger2;
-      m_integer3 = initInteger3;
-      m_integer4 = initInteger4;
-      m_operation = initOperation;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 10; } }
-    public override string ProtocolMethodName { get { return "test.integer"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_integer1 = reader.ReadOctet();
-      m_integer2 = reader.ReadShort();
-      m_integer3 = reader.ReadLong();
-      m_integer4 = reader.ReadLonglong();
-      m_operation = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteOctet(m_integer1);
-      writer.WriteShort(m_integer2);
-      writer.WriteLong(m_integer3);
-      writer.WriteLonglong(m_integer4);
-      writer.WriteOctet(m_operation);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_integer1); sb.Append(",");
-      sb.Append(m_integer2); sb.Append(",");
-      sb.Append(m_integer3); sb.Append(",");
-      sb.Append(m_integer4); sb.Append(",");
-      sb.Append(m_operation);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestIntegerOk: RabbitMQ.Client.Impl.MethodBase, ITestIntegerOk {
-    public const int ClassId = 120;
-    public const int MethodId = 11;
-
-    public ulong m_result;
-
-    ulong ITestIntegerOk.Result { get { return m_result; } }
-
-    public TestIntegerOk() {}
-    public TestIntegerOk(
-      ulong initResult)
-    {
-      m_result = initResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 11; } }
-    public override string ProtocolMethodName { get { return "test.integer-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_result = reader.ReadLonglong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_result);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_result);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestString: RabbitMQ.Client.Impl.MethodBase, ITestString {
-    public const int ClassId = 120;
-    public const int MethodId = 20;
-
-    public string m_string1;
-    public byte[] m_string2;
-    public byte m_operation;
-
-    string ITestString.String1 { get { return m_string1; } }
-    byte[] ITestString.String2 { get { return m_string2; } }
-    byte ITestString.Operation { get { return m_operation; } }
-
-    public TestString() {}
-    public TestString(
-      string initString1,
-      byte[] initString2,
-      byte initOperation)
-    {
-      m_string1 = initString1;
-      m_string2 = initString2;
-      m_operation = initOperation;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 20; } }
-    public override string ProtocolMethodName { get { return "test.string"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_string1 = reader.ReadShortstr();
-      m_string2 = reader.ReadLongstr();
-      m_operation = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteShortstr(m_string1);
-      writer.WriteLongstr(m_string2);
-      writer.WriteOctet(m_operation);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_string1); sb.Append(",");
-      sb.Append(m_string2); sb.Append(",");
-      sb.Append(m_operation);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestStringOk: RabbitMQ.Client.Impl.MethodBase, ITestStringOk {
-    public const int ClassId = 120;
-    public const int MethodId = 21;
-
-    public byte[] m_result;
-
-    byte[] ITestStringOk.Result { get { return m_result; } }
-
-    public TestStringOk() {}
-    public TestStringOk(
-      byte[] initResult)
-    {
-      m_result = initResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 21; } }
-    public override string ProtocolMethodName { get { return "test.string-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_result = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLongstr(m_result);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_result);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestTable: RabbitMQ.Client.Impl.MethodBase, ITestTable {
-    public const int ClassId = 120;
-    public const int MethodId = 30;
-
-    public System.Collections.IDictionary m_table;
-    public byte m_integerOp;
-    public byte m_stringOp;
-
-    System.Collections.IDictionary ITestTable.Table { get { return m_table; } }
-    byte ITestTable.IntegerOp { get { return m_integerOp; } }
-    byte ITestTable.StringOp { get { return m_stringOp; } }
-
-    public TestTable() {}
-    public TestTable(
-      System.Collections.IDictionary initTable,
-      byte initIntegerOp,
-      byte initStringOp)
-    {
-      m_table = initTable;
-      m_integerOp = initIntegerOp;
-      m_stringOp = initStringOp;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 30; } }
-    public override string ProtocolMethodName { get { return "test.table"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_table = reader.ReadTable();
-      m_integerOp = reader.ReadOctet();
-      m_stringOp = reader.ReadOctet();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteTable(m_table);
-      writer.WriteOctet(m_integerOp);
-      writer.WriteOctet(m_stringOp);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_table); sb.Append(",");
-      sb.Append(m_integerOp); sb.Append(",");
-      sb.Append(m_stringOp);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestTableOk: RabbitMQ.Client.Impl.MethodBase, ITestTableOk {
-    public const int ClassId = 120;
-    public const int MethodId = 31;
-
-    public ulong m_integerResult;
-    public byte[] m_stringResult;
-
-    ulong ITestTableOk.IntegerResult { get { return m_integerResult; } }
-    byte[] ITestTableOk.StringResult { get { return m_stringResult; } }
-
-    public TestTableOk() {}
-    public TestTableOk(
-      ulong initIntegerResult,
-      byte[] initStringResult)
-    {
-      m_integerResult = initIntegerResult;
-      m_stringResult = initStringResult;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 31; } }
-    public override string ProtocolMethodName { get { return "test.table-ok"; } }
-    public override bool HasContent { get { return false; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_integerResult = reader.ReadLonglong();
-      m_stringResult = reader.ReadLongstr();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLonglong(m_integerResult);
-      writer.WriteLongstr(m_stringResult);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_integerResult); sb.Append(",");
-      sb.Append(m_stringResult);
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestContent: RabbitMQ.Client.Impl.MethodBase, ITestContent {
-    public const int ClassId = 120;
-    public const int MethodId = 40;
-
-
-
-    public TestContent(
-)
-    {
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 40; } }
-    public override string ProtocolMethodName { get { return "test.content"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(")");
-    }
-  }
-  /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
-  public class TestContentOk: RabbitMQ.Client.Impl.MethodBase, ITestContentOk {
-    public const int ClassId = 120;
-    public const int MethodId = 41;
-
-    public uint m_contentChecksum;
-
-    uint ITestContentOk.ContentChecksum { get { return m_contentChecksum; } }
-
-    public TestContentOk() {}
-    public TestContentOk(
-      uint initContentChecksum)
-    {
-      m_contentChecksum = initContentChecksum;
-    }
-
-    public override int ProtocolClassId { get { return 120; } }
-    public override int ProtocolMethodId { get { return 41; } }
-    public override string ProtocolMethodName { get { return "test.content-ok"; } }
-    public override bool HasContent { get { return true; } }
-
-    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
-      m_contentChecksum = reader.ReadLong();
-    }
-
-    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
-      writer.WriteLong(m_contentChecksum);
-    }
-
-    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
-      sb.Append("(");
-      sb.Append(m_contentChecksum);
-      sb.Append(")");
-    }
-  }
-
-  public class Model: RabbitMQ.Client.Impl.ModelBase {
-    public Model(RabbitMQ.Client.Impl.ISession session): base(session) {}
-    public override void _Private_BasicPublish(
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @mandatory,
-      System.Boolean @immediate,
-      RabbitMQ.Client.IBasicProperties @basicProperties,
-      System.Byte[] @body)
-    {
-      BasicPublish __req = new BasicPublish();
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_mandatory = @mandatory;
-      __req.m_immediate = @immediate;
-      ModelSend(__req, (BasicProperties) basicProperties,body);
-    }
-    public override void _Private_BasicConsume(
-      System.String @queue,
-      System.String @consumerTag,
-      System.Boolean @noLocal,
-      System.Boolean @noAck,
-      System.Boolean @exclusive,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @filter)
-    {
-      BasicConsume __req = new BasicConsume();
-      __req.m_queue = @queue;
-      __req.m_consumerTag = @consumerTag;
-      __req.m_noLocal = @noLocal;
-      __req.m_noAck = @noAck;
-      __req.m_exclusive = @exclusive;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @filter;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicCancel(
-      System.String @consumerTag,
-      System.Boolean @nowait)
-    {
-      BasicCancel __req = new BasicCancel();
-      __req.m_consumerTag = @consumerTag;
-      __req.m_nowait = @nowait;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelOpen(
-      System.String @outOfBand)
-    {
-      ChannelOpen __req = new ChannelOpen();
-      __req.m_outOfBand = @outOfBand;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelOpenOk __rep = __repBase as ChannelOpenOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ChannelCloseOk()
-    {
-      ChannelCloseOk __req = new ChannelCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ChannelClose __req = new ChannelClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_BasicGet(
-      System.String @queue,
-      System.Boolean @noAck)
-    {
-      BasicGet __req = new BasicGet();
-      __req.m_queue = @queue;
-      __req.m_noAck = @noAck;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ChannelFlowOk()
-    {
-      ChannelFlowOk __req = new ChannelFlowOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.Impl.ConnectionTuneDetails ConnectionStartOk(
-      System.Collections.IDictionary @clientProperties,
-      System.String @mechanism,
-      System.Byte[] @response,
-      System.String @locale)
-    {
-      ConnectionStartOk __req = new ConnectionStartOk();
-      __req.m_clientProperties = @clientProperties;
-      __req.m_mechanism = @mechanism;
-      __req.m_response = @response;
-      __req.m_locale = @locale;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionTune __rep = __repBase as ConnectionTune;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      RabbitMQ.Client.Impl.ConnectionTuneDetails __result = new RabbitMQ.Client.Impl.ConnectionTuneDetails();
-      __result.m_channelMax = __rep.m_channelMax;
-      __result.m_frameMax = __rep.m_frameMax;
-      __result.m_heartbeat = __rep.m_heartbeat;
-      return __result;
-    }
-    public override void ConnectionTuneOk(
-      System.UInt16 @channelMax,
-      System.UInt32 @frameMax,
-      System.UInt16 @heartbeat)
-    {
-      ConnectionTuneOk __req = new ConnectionTuneOk();
-      __req.m_channelMax = @channelMax;
-      __req.m_frameMax = @frameMax;
-      __req.m_heartbeat = @heartbeat;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionOpen(
-      System.String @virtualHost,
-      System.String @capabilities,
-      System.Boolean @insist)
-    {
-      ConnectionOpen __req = new ConnectionOpen();
-      __req.m_virtualHost = @virtualHost;
-      __req.m_capabilities = @capabilities;
-      __req.m_insist = @insist;
-      ModelSend(__req,null,null);
-    }
-    public override void _Private_ConnectionClose(
-      System.UInt16 @replyCode,
-      System.String @replyText,
-      System.UInt16 @classId,
-      System.UInt16 @methodId)
-    {
-      ConnectionClose __req = new ConnectionClose();
-      __req.m_replyCode = @replyCode;
-      __req.m_replyText = @replyText;
-      __req.m_classId = @classId;
-      __req.m_methodId = @methodId;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ConnectionCloseOk __rep = __repBase as ConnectionCloseOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void _Private_ConnectionCloseOk()
-    {
-      ConnectionCloseOk __req = new ConnectionCloseOk();
-      ModelSend(__req,null,null);
-    }
-    public override RabbitMQ.Client.IBasicProperties CreateBasicProperties()
-    {
-      return new BasicProperties();
-    }
-    public override RabbitMQ.Client.IFileProperties CreateFileProperties()
-    {
-      return new FileProperties();
-    }
-    public override RabbitMQ.Client.IStreamProperties CreateStreamProperties()
-    {
-      return new StreamProperties();
-    }
-    public override void ChannelFlow(
-      System.Boolean @active)
-    {
-      ChannelFlow __req = new ChannelFlow();
-      __req.m_active = @active;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ChannelFlowOk __rep = __repBase as ChannelFlowOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDeclare(
-      System.String @exchange,
-      System.String @type,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @autoDelete,
-      System.Boolean @internal,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      ExchangeDeclare __req = new ExchangeDeclare();
-      __req.m_exchange = @exchange;
-      __req.m_type = @type;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_internal = @internal;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeclareOk __rep = __repBase as ExchangeDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void ExchangeDelete(
-      System.String @exchange,
-      System.Boolean @ifUnused,
-      System.Boolean @nowait)
-    {
-      ExchangeDelete __req = new ExchangeDelete();
-      __req.m_exchange = @exchange;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      ExchangeDeleteOk __rep = __repBase as ExchangeDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override System.String QueueDeclare(
-      System.String @queue,
-      System.Boolean @passive,
-      System.Boolean @durable,
-      System.Boolean @exclusive,
-      System.Boolean @autoDelete,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueDeclare __req = new QueueDeclare();
-      __req.m_queue = @queue;
-      __req.m_passive = @passive;
-      __req.m_durable = @durable;
-      __req.m_exclusive = @exclusive;
-      __req.m_autoDelete = @autoDelete;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return null;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeclareOk __rep = __repBase as QueueDeclareOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_queue;
-    }
-    public override void QueueBind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Boolean @nowait,
-      System.Collections.IDictionary @arguments)
-    {
-      QueueBind __req = new QueueBind();
-      __req.m_queue = @queue;
-      __req.m_exchange = @exchange;
-      __req.m_routingKey = @routingKey;
-      __req.m_nowait = @nowait;
-      __req.m_arguments = @arguments;
-      if (nowait) {
-        ModelSend(__req,null,null);
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueBindOk __rep = __repBase as QueueBindOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void QueueUnbind(
-      System.String @queue,
-      System.String @exchange,
-      System.String @routingKey,
-      System.Collections.IDictionary @arguments)
-    {
-      throw new UnsupportedMethodException("QueueUnbind");
-    }
-    public override System.UInt32 QueuePurge(
-      System.String @queue,
-      System.Boolean @nowait)
-    {
-      QueuePurge __req = new QueuePurge();
-      __req.m_queue = @queue;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueuePurgeOk __rep = __repBase as QueuePurgeOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override System.UInt32 QueueDelete(
-      System.String @queue,
-      System.Boolean @ifUnused,
-      System.Boolean @ifEmpty,
-      System.Boolean @nowait)
-    {
-      QueueDelete __req = new QueueDelete();
-      __req.m_queue = @queue;
-      __req.m_ifUnused = @ifUnused;
-      __req.m_ifEmpty = @ifEmpty;
-      __req.m_nowait = @nowait;
-      if (nowait) {
-        ModelSend(__req,null,null);
-        return 0xFFFFFFFF;
-      }
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      QueueDeleteOk __rep = __repBase as QueueDeleteOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-      return __rep.m_messageCount;
-    }
-    public override void BasicQos(
-      System.UInt32 @prefetchSize,
-      System.UInt16 @prefetchCount,
-      System.Boolean @global)
-    {
-      BasicQos __req = new BasicQos();
-      __req.m_prefetchSize = @prefetchSize;
-      __req.m_prefetchCount = @prefetchCount;
-      __req.m_global = @global;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      BasicQosOk __rep = __repBase as BasicQosOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void BasicAck(
-      System.UInt64 @deliveryTag,
-      System.Boolean @multiple)
-    {
-      BasicAck __req = new BasicAck();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_multiple = @multiple;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicReject(
-      System.UInt64 @deliveryTag,
-      System.Boolean @requeue)
-    {
-      BasicReject __req = new BasicReject();
-      __req.m_deliveryTag = @deliveryTag;
-      __req.m_requeue = @requeue;
-      ModelSend(__req,null,null);
-    }
-    public override void BasicRecover(
-      System.Boolean @requeue)
-    {
-      BasicRecover __req = new BasicRecover();
-      __req.m_requeue = @requeue;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      BasicRecoverOk __rep = __repBase as BasicRecoverOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxSelect()
-    {
-      TxSelect __req = new TxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxSelectOk __rep = __repBase as TxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxCommit()
-    {
-      TxCommit __req = new TxCommit();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxCommitOk __rep = __repBase as TxCommitOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void TxRollback()
-    {
-      TxRollback __req = new TxRollback();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      TxRollbackOk __rep = __repBase as TxRollbackOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxSelect()
-    {
-      DtxSelect __req = new DtxSelect();
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxSelectOk __rep = __repBase as DtxSelectOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override void DtxStart(
-      System.String @dtxIdentifier)
-    {
-      DtxStart __req = new DtxStart();
-      __req.m_dtxIdentifier = @dtxIdentifier;
-      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
-      DtxStartOk __rep = __repBase as DtxStartOk;
-      if (__rep == null) throw new UnexpectedMethodException(__repBase);
-    }
-    public override bool DispatchAsynchronous(RabbitMQ.Client.Impl.Command cmd) {
-      RabbitMQ.Client.Impl.MethodBase __method = (RabbitMQ.Client.Impl.MethodBase) cmd.Method;
-      switch ((__method.ProtocolClassId << 16) | __method.ProtocolMethodId) {
-        case 3932181: {
-          BasicConsumeOk __impl = (BasicConsumeOk) __method;
-          HandleBasicConsumeOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932191: {
-          BasicCancelOk __impl = (BasicCancelOk) __method;
-          HandleBasicCancelOk(
-            __impl.m_consumerTag);
-          return true;
-        }
-        case 3932231: {
-          BasicGetOk __impl = (BasicGetOk) __method;
-          HandleBasicGetOk(
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            __impl.m_messageCount,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932232: {
-          HandleBasicGetEmpty();
-          return true;
-        }
-        case 3932220: {
-          BasicDeliver __impl = (BasicDeliver) __method;
-          HandleBasicDeliver(
-            __impl.m_consumerTag,
-            __impl.m_deliveryTag,
-            __impl.m_redelivered,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 3932210: {
-          BasicReturn __impl = (BasicReturn) __method;
-          HandleBasicReturn(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_exchange,
-            __impl.m_routingKey,
-            (RabbitMQ.Client.IBasicProperties) cmd.Header,
-            cmd.Body);
-          return true;
-        }
-        case 1310740: {
-          ChannelFlow __impl = (ChannelFlow) __method;
-          HandleChannelFlow(
-            __impl.m_active);
-          return true;
-        }
-        case 1310760: {
-          ChannelClose __impl = (ChannelClose) __method;
-          HandleChannelClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        case 1310761: {
-          HandleChannelCloseOk();
-          return true;
-        }
-        case 655370: {
-          ConnectionStart __impl = (ConnectionStart) __method;
-          HandleConnectionStart(
-            __impl.m_versionMajor,
-            __impl.m_versionMinor,
-            __impl.m_serverProperties,
-            __impl.m_mechanisms,
-            __impl.m_locales);
-          return true;
-        }
-        case 655401: {
-          ConnectionOpenOk __impl = (ConnectionOpenOk) __method;
-          HandleConnectionOpenOk(
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655410: {
-          ConnectionRedirect __impl = (ConnectionRedirect) __method;
-          HandleConnectionRedirect(
-            __impl.m_host,
-            __impl.m_knownHosts);
-          return true;
-        }
-        case 655420: {
-          ConnectionClose __impl = (ConnectionClose) __method;
-          HandleConnectionClose(
-            __impl.m_replyCode,
-            __impl.m_replyText,
-            __impl.m_classId,
-            __impl.m_methodId);
-          return true;
-        }
-        default: return false;
-      }
-    }
-  }
-}
index 1e4a1ab337b0e2382612d26c6ac9fce509925c7c..be9e284a176098b92388754523542f2deef630d3 100644 (file)
@@ -7,5 +7,10 @@ LIB_REFS = System System.Xml
 LIB_MCS_FLAGS = -nowarn:618
 NO_TEST = yes
 
+BUILT_SOURCES = ../../docs/specs/$(PROFILE)-api-0-9.cs \
+       ../../docs/specs/$(PROFILE)-api-0-8.cs \
+       ../../docs/specs/$(PROFILE)-api-qpid-0-8.cs
+
+
 include ../../../../build/library.make
 
diff --git a/mcs/class/RabbitMQ.Client/src/client/net_2_0_RabbitMQ.Client.dll.sources b/mcs/class/RabbitMQ.Client/src/client/net_2_0_RabbitMQ.Client.dll.sources
deleted file mode 100644 (file)
index 31b36f2..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#include RabbitMQ.Client.dll.sources
-../../docs/specs/net_2_0-api-0-9.cs
-../../docs/specs/net_2_0-api-0-8.cs
-../../docs/specs/net_2_0-api-qpid-0-8.cs
diff --git a/mcs/class/RabbitMQ.Client/src/client/net_4_0_RabbitMQ.Client.dll.sources b/mcs/class/RabbitMQ.Client/src/client/net_4_0_RabbitMQ.Client.dll.sources
deleted file mode 100644 (file)
index abe36ff..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#include RabbitMQ.Client.dll.sources
-../../docs/specs/net_4_0-api-0-9.cs
-../../docs/specs/net_4_0-api-0-8.cs
-../../docs/specs/net_4_0-api-qpid-0-8.cs
diff --git a/mcs/class/RabbitMQ.Client/src/client/net_4_5_RabbitMQ.Client.dll.sources b/mcs/class/RabbitMQ.Client/src/client/net_4_5_RabbitMQ.Client.dll.sources
deleted file mode 100644 (file)
index 5ce7448..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#include RabbitMQ.Client.dll.sources
-../../docs/specs/net_4_5-api-0-9.cs
-../../docs/specs/net_4_5-api-0-8.cs
-../../docs/specs/net_4_5-api-qpid-0-8.cs
index b5f9682cc3f635beeed1873707e1c164298673f5..e0b5dab202b7e0cbabc2ea9ac88557a0472f8562 100644 (file)
@@ -13,14 +13,6 @@ CLEAN_FILES += $(STRING_MESSAGES)
 EXTRA_DISTFILES = \
        src/ComponentModel/Strings.resx
        
-VALID_PROFILE := $(filter net_4_5 monotouch monodroid xammac mobile mobile_static, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.ComponentModel.Composition.dll
-NO_INSTALL = yes
-NO_SIGN_ASSEMBLY = yes
-NO_TEST = yes
-endif
-
 include ../../build/library.make
 
 $(the_lib): $(STRING_MESSAGES)
index 14c2bff222e72a72215fd26cbb137e193bd78f94..41b8b59680aa72b939be9640cb1605de57b4e4b5 100644 (file)
@@ -35,7 +35,6 @@ using NUnit.Framework;
 
 namespace MonoTests.System.ComponentModel.DataAnnotations
 {
-#if NET_4_0
        [TestFixture]
        public class AssociationAttributeTest
        {
@@ -125,5 +124,4 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        Assert.AreEqual (String.Empty, list [0], "#C4-2");
                }
        }
-#endif
 }
index 3d54000c5dd8ab3c0ff2daa9a909a4c49d05b1ab..c9db2ac448d8eb8128ab40e3dd2091149470f03c 100644 (file)
@@ -8,7 +8,6 @@ using System.Reflection;
 
 namespace MonoTests.System.ComponentModel.DataAnnotations
 {
-#if NET_4_0
        public class AttributeTargetValidation
        {
                [Display(ResourceType = typeof(GoodResources), Name = "NameKey")]
@@ -274,5 +273,4 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        Assert.Fail();
                }
        }
-#endif
 }
index cf7c641f9fede6ac070dcf5984f418a1b3e2c80e..e3ae0837cfc5ce510209afebcb6df534894fedee 100644 (file)
@@ -35,7 +35,6 @@ using NUnit.Framework;
 
 namespace MonoTests.System.ComponentModel.DataAnnotations
 {
-#if NET_4_0
        [TestFixture]
        public class EnumDataTypeAttributeTest
        {
@@ -133,5 +132,4 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                Five = 8,
                Six = 16
        }
-#endif
 }
index 938f4e8fbcbc7860c1b13e912d558f0cf4d06495..9b7508551bab89d04e31986997d1eee6462200f1 100644 (file)
@@ -5,7 +5,6 @@
 
 // https://silverlight.svn.codeplex.com/svn/Release/Silverlight4/Source/RiaClient.Tests/System.ComponentModel.DataAnnotations/FilterUIHintAttributeTest.cs
 
-#if NET_4_0
 
 using System;
 using System.ComponentModel;
@@ -90,4 +89,3 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
     }
 }
 
-#endif
\ No newline at end of file
index b5d0241e728a8ac07754536f83210f265768a98d..1f297263792be25b435e1437d4798e4c9b6a485e 100644 (file)
@@ -104,26 +104,16 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
 
                        Assert.IsNotNull (attr.Minimum, "#A1-1");
                        Assert.IsNotNull (attr.Maximum, "#A1-2");
-#if NET_4_0
                        Assert.AreEqual (typeof (string), attr.Minimum.GetType (), "#A2-1");
                        Assert.AreEqual (typeof (string), attr.Maximum.GetType (), "#A2-2");
                        Assert.AreEqual ("-10", attr.Minimum, "#A3-1");
                        Assert.AreEqual ("10", attr.Maximum, "#A3-2");
-#else
-                       Assert.AreEqual (typeof (int), attr.Minimum.GetType (), "#A2-1");
-                       Assert.AreEqual (typeof (int), attr.Maximum.GetType (), "#A2-2");
-                       Assert.AreEqual (-10, attr.Minimum, "#A3-1");
-                       Assert.AreEqual (10, attr.Maximum, "#A3-2");
-#endif
                        Assert.IsNotNull (attr.OperandType, "#A4-1");
                        Assert.AreEqual (typeof (int), attr.OperandType, "#A4-2");
                }
 
                [Test]
                //LAMESPEC: documented to throw
-#if !NET_4_0
-               [ExpectedException (typeof (ArgumentNullException))]
-#endif
                public void Constructor_Type_String_String_Null_Type ()
                {
                        var attr = new DA.RangeAttribute (null, "-10", "10");
@@ -144,7 +134,6 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                                attr.IsValid ("zero");
                        }, "#A1-5");
                        Assert.IsTrue (attr.IsValid (null), "#A1-6");
-#if NET_4_0
                        attr = new DA.RangeAttribute (typeof (int), "minus ten", "ten");
                        AssertExtensions.Throws<Exception> (() => {
                                attr.IsValid ("0");
@@ -196,31 +185,6 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        attr.IsValid (12);
                        Assert.AreEqual (typeof (int), attr.Minimum.GetType (), "#A7-1");
                        Assert.AreEqual (typeof (int), attr.Maximum.GetType (), "#A7-2");
-#else
-                       AssertExtensions.Throws<Exception> (() => {
-                               attr = new DA.RangeAttribute (typeof (int), "minus ten", "ten");
-                       }, "#A2");
-
-                       AssertExtensions.Throws<ArgumentException> (() => {
-                               attr = new DA.RangeAttribute (typeof (RangeAttributeTest), "-10", "10");
-                       }, "#A3");
-
-                       AssertExtensions.Throws<ArgumentNullException> (() => {
-                               attr = new DA.RangeAttribute (null, "-10", "10");
-                       }, "#A4");
-
-                       AssertExtensions.Throws<NotSupportedException> (() => {
-                               attr = new DA.RangeAttribute (typeof (int), null, "10");
-                       }, "#A5-1");
-
-                       AssertExtensions.Throws<NotSupportedException> (() => {
-                               attr = new DA.RangeAttribute (typeof (int), "10", null);
-                       }, "#A5-2");
-
-                       attr = new DA.RangeAttribute (typeof (int), "-10", "10");
-                       Assert.AreEqual (typeof (int), attr.Minimum.GetType (), "#A6-1");
-                       Assert.AreEqual (typeof (int), attr.Maximum.GetType (), "#A6-2");
-#endif
                }
 
                [Test]
@@ -232,19 +196,10 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
 
                        attr.ErrorMessage = "Param 0: {0}";
                        Assert.AreEqual ("Param 0: MyField", attr.FormatErrorMessage ("MyField"), "#A2-1");
-#if !NET_4_0
-                       attr = new DA.RangeAttribute (-10, 10);
-#endif
                        attr.ErrorMessage = "Param 0: {0}; Param 1: {1}";
                        Assert.AreEqual ("Param 0: MyField; Param 1: -10", attr.FormatErrorMessage ("MyField"), "#A2-2");
-#if !NET_4_0
-                       attr = new DA.RangeAttribute (-10, 10);
-#endif
                        attr.ErrorMessage = "Param 0: {0}; Param 1: {1}; Param 2: {2}";
                        Assert.AreEqual ("Param 0: MyField; Param 1: -10; Param 2: 10", attr.FormatErrorMessage ("MyField"), "#A2-3");
-#if !NET_4_0
-                       attr = new DA.RangeAttribute (-10, 10);
-#endif
                        attr.ErrorMessage = "Param 0: {0}; Param 1: {1}; Param 2: {2}; Param 3: {3}";
                        AssertExtensions.Throws<FormatException> (() => {
                                attr.FormatErrorMessage ("MyField");
index 163e1a738b76aae3e4cc8d342826aabe86e96488..2462517cffa24875aad607175647b6923ef635c3 100644 (file)
@@ -68,15 +68,9 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                                rea.FormatErrorMessage ("MyField"), 
                                "Error message not correctly formatted.");
 
-#if !NET_4_0
-                       rea = new RegularExpressionAttributePoker (@"[A-Za-z]");
-#endif
                        rea.ErrorMessage = "Param 0: {0}";
                        Assert.AreEqual ("Param 0: MyField", rea.FormatErrorMessage ("MyField"), "Error message not correctly updated.");
 
-#if !NET_4_0
-                       rea = new RegularExpressionAttributePoker (@"[A-Za-z]");
-#endif
                        rea.ErrorMessage = "Param 0: {0}; Param 1: {1}";
                        Assert.AreEqual ("Param 0: MyField; Param 1: [A-Za-z]", rea.FormatErrorMessage ("MyField"), "Error message not correctly updated.");
                        Assert.AreEqual ("Param 0: ; Param 1: [A-Za-z]", rea.FormatErrorMessage (null), "Error message fails on null value.");
index 7930002ab0ffafabee486f89f8eecb4b551e6492..a26b553071710340482cb54be660f26c56a4681a 100644 (file)
@@ -45,12 +45,9 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        Assert.IsFalse (attr.IsValid (String.Empty), "#A2");
                        Assert.IsTrue (attr.IsValid ("string"), "#A3");
                        Assert.IsTrue (attr.IsValid (1), "#A4");
-#if NET_4_0
                        attr.AllowEmptyStrings = true;
                        Assert.IsTrue (attr.IsValid (String.Empty), "#A5");
-#endif
                }
-#if NET_4_0
                [Test]
                public void AllowEmptyStrings ()
                {
@@ -60,6 +57,5 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        attr.AllowEmptyStrings = true;
                        Assert.IsTrue (attr.AllowEmptyStrings, "#A2");
                }
-#endif
        }
 }
index 664e440104aac79a099dd043d3a402ca725b0927..61b61683e695f286c2d661aaaa309fa49c0b0ed6 100644 (file)
@@ -58,16 +58,10 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        Assert.AreEqual (10, sla.MaximumLength, "#A1-1");
                        Assert.AreEqual (null, sla.ErrorMessage, "#A1-2");
                        Assert.AreEqual ("The field {0} must be a string with a maximum length of {1}.", sla.GetErrorMessageString (), "#A1-3");
-#if NET_4_0
                        Assert.AreEqual (0, sla.MinimumLength, "#A1-4");
 
                        sla = new StringLengthAttributePoker (-10);
                        Assert.AreEqual (-10, sla.MaximumLength, "#B1");
-#else
-                       AssertExtensions.Throws<ArgumentOutOfRangeException> (() => {
-                               sla = new StringLengthAttributePoker (-10);
-                       }, "#B1");
-#endif
                        sla = new StringLengthAttributePoker (0);
                        Assert.AreEqual (0, sla.MaximumLength, "#C1");
                }
@@ -78,14 +72,8 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        var sla = new StringLengthAttributePoker (10);
 
                        Assert.AreEqual ("The field MyField must be a string with a maximum length of 10.", sla.FormatErrorMessage ("MyField"), "#A1-1");
-#if !NET_4_0
-                       sla = new StringLengthAttributePoker (10);
-#endif
                        sla.ErrorMessage = "Param 0: {0}";
                        Assert.AreEqual ("Param 0: MyField", sla.FormatErrorMessage ("MyField"), "#A1-2");
-#if !NET_4_0
-                       sla = new StringLengthAttributePoker (10);
-#endif
                        sla.ErrorMessage = "Param 0: {0}; Param 1: {1}";
                        Assert.AreEqual ("Param 0: MyField; Param 1: 10", sla.FormatErrorMessage ("MyField"), "#A1-2");
                        Assert.AreEqual ("Param 0: ; Param 1: 10", sla.FormatErrorMessage (null), "#A1-3");
@@ -112,7 +100,6 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        Assert.IsTrue (sla.IsValid (null), "#B1-1");
                        Assert.IsTrue (sla.IsValid (String.Empty), "#B1-2");
                        Assert.IsFalse (sla.IsValid ("string"), "#B1-3");
-#if NET_4_0
                        sla = new StringLengthAttributePoker (-10);
                        AssertExtensions.Throws <InvalidOperationException> (() => {
                                sla.IsValid ("123");
@@ -127,7 +114,6 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        sla.MinimumLength = 5;
                        Assert.IsFalse (sla.IsValid ("123"), "#C2-1");
                        Assert.IsTrue (sla.IsValid ("12345"), "#C2-2");
-#endif
                }
        }
 }
index a6c99a3ba2b78e33d7d0436392c1dd37804729e6..a08c8b1d3929d1d4704ffa5a0559a5778daca795 100644 (file)
@@ -5,7 +5,6 @@
 
 // https://silverlight.svn.codeplex.com/svn/Release/Silverlight4/Source/RiaClient.Tests/System.ComponentModel.DataAnnotations/UIHintAttributeTest.cs
 
-#if NET_4_0
 
 using System;
 using System.ComponentModel;
@@ -136,4 +135,3 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
     }
 }
 
-#endif
\ No newline at end of file
index 7e98ecca3f32da0d632353cdb65d9660fac4e81c..cc19b39d2cf45fb0feddabceadf8bd2aa5dc39c9 100644 (file)
@@ -89,46 +89,11 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
 
                        attr.ErrorMessage = "Test";
                        Assert.AreEqual ("Test", attr.ErrorMessage, "#A2");
-#if NET_4_0
                        attr.ErrorMessage = String.Empty;
                        Assert.AreEqual (String.Empty, attr.ErrorMessage, "#A3");
 
                        attr.ErrorMessage = null;
                        Assert.IsNull (attr.ErrorMessage, "#A4");
-#else
-                       try {
-                               attr.ErrorMessage = String.Empty;
-                               Assert.Fail ("#A3");
-                       } catch (InvalidOperationException) {
-                               // success
-                       }
-
-                       attr = new ValidateFooAttribute ("Test");
-                       try {
-                               attr.ErrorMessage = null;
-                               Assert.Fail ("#A4");
-                       } catch (ArgumentException) {
-                               // success
-                       }
-
-                       attr = new ValidateFooAttribute ("Test");
-                       try {
-                               attr.ErrorMessage = String.Empty;
-                               Assert.Fail ("#A4");
-                       } catch (ArgumentException) {
-                               // success
-                       }
-
-                       attr = new ValidateFooAttribute ();
-                       attr.ErrorMessageResourceName = "ErrorProperty1";
-
-                       try {
-                               attr.ErrorMessage = "Test Message";
-                               Assert.Fail ("#E1");
-                       } catch (InvalidOperationException) {
-                               // success
-                       }
-#endif
                        
                }
 
@@ -142,47 +107,12 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        attr.ErrorMessageResourceName = "Test";
                        Assert.IsNotNull (attr.ErrorMessageResourceName, "#A2-1");
                        Assert.AreEqual ("Test", attr.ErrorMessageResourceName, "#A2-2");
-#if NET_4_0
                        attr.ErrorMessageResourceName = String.Empty;
                        Assert.IsNotNull (attr.ErrorMessageResourceName, "#A3-1");
                        Assert.AreEqual (String.Empty, attr.ErrorMessageResourceName, "#A3-2");
 
                        attr.ErrorMessageResourceName = null;
                        Assert.IsNull (attr.ErrorMessageResourceName, "#A3-1");
-#else
-                       try {
-                               attr.ErrorMessageResourceName = String.Empty;
-                               Assert.Fail ("#A3-1");
-                       } catch (InvalidOperationException) {
-                               // success
-                       }
-
-                       attr = new ValidateFooAttribute ("Test");
-                       try {
-                               attr.ErrorMessageResourceName = String.Empty;
-                               Assert.Fail ("#A3-2");
-                       } catch (ArgumentException) {
-                               // success
-                       }
-
-                       attr = new ValidateFooAttribute ("Test");
-                       try {
-                               attr.ErrorMessageResourceName = null;
-                               Assert.Fail ("#A3-3");
-                       } catch (ArgumentException) {
-                               // success
-                       }
-
-                       attr = new ValidateFooAttribute ();
-                       attr.ErrorMessageResourceType = typeof (FooErrorMessageProvider);
-
-                       try {
-                               attr.ErrorMessageResourceName = "NoSuchProperty";
-                               Assert.Fail ("#A3-4");
-                       } catch (InvalidOperationException) {
-                               // success
-                       }
-#endif
                }
 
                [Test]
@@ -195,17 +125,6 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        attr.ErrorMessageResourceType = typeof (FooErrorMessageProvider);
                        Assert.IsNotNull (attr.ErrorMessageResourceType, "#A2-1");
                        Assert.AreEqual (typeof (FooErrorMessageProvider), attr.ErrorMessageResourceType, "#A2-2");
-#if !NET_4_0
-                       attr = new ValidateFooAttribute ();
-                       attr.ErrorMessageResourceName = "NoSuchProperty";
-                       
-                       try {
-                               attr.ErrorMessageResourceType = typeof (FooErrorMessageProvider);
-                               Assert.Fail ("#A3");
-                       } catch (InvalidOperationException) {
-                               // success
-                       }
-#endif
                }
 
                [Test]
@@ -224,7 +143,6 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        } catch (InvalidOperationException) {
                                // success
                        }
-#if NET_4_0
                        attr = new ValidateFooAttribute ();
                        attr.ErrorMessageResourceName = String.Empty;
                        try {
@@ -324,7 +242,6 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        } catch (InvalidOperationException) {
                                // success
                        }
-#endif
 
                        attr = new ValidateFooAttribute ();
                        attr.ErrorMessageResourceName = "ErrorProperty1";
@@ -341,7 +258,6 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        attr.ErrorMessageResourceType = typeof (FooErrorMessageProvider);
                        Assert.IsNotNull (attr.GetErrorMessageString (), "#D1-3");
                        Assert.AreEqual ("Error Message 1", attr.GetErrorMessageString (), "#D1-4");
-#if NET_4_0
                        attr.ErrorMessage = "Test Message";
                        try {
                                attr.GetErrorMessageString ();
@@ -349,7 +265,6 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        } catch (InvalidOperationException) {
                                // success
                        }
-#endif
                }
 
                [Test]
@@ -363,31 +278,20 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        attr.ErrorMessage = "Test: {0}";
                        Assert.IsNotNull (attr.FormatErrorMessage ("SomeField"), "#A2-1");
                        Assert.AreEqual ("Test: SomeField", attr.FormatErrorMessage ("SomeField"), "#A2-2");
-#if !NET_4_0
-                       attr = new ValidateFooAttribute ();
-#else
                        attr.ErrorMessage = null;
-#endif
                        attr.ErrorMessageResourceName = "ErrorProperty1";
                        attr.ErrorMessageResourceType = typeof (FooErrorMessageProvider);
                        Assert.IsNotNull (attr.FormatErrorMessage ("SomeField"), "#B1-1");
                        Assert.AreEqual ("Error Message 1", attr.FormatErrorMessage ("SomeField"), "#B1-2");
-#if !NET_4_0
-                       attr = new ValidateFooAttribute ();
-#endif
                        attr.ErrorMessageResourceName = "ErrorProperty6";
                        attr.ErrorMessageResourceType = typeof (FooErrorMessageProvider);
                        Assert.IsNotNull (attr.FormatErrorMessage ("SomeField"), "#B2-1");
                        Assert.AreEqual ("Error Message 6: SomeField", attr.FormatErrorMessage ("SomeField"), "#B2-2");
-#if !NET_4_0
-                       attr = new ValidateFooAttribute ();
-#endif
                        attr.ErrorMessageResourceName = "ErrorProperty6";
                        attr.ErrorMessageResourceType = typeof (FooErrorMessageProvider);
                        Assert.IsNotNull (attr.FormatErrorMessage ("SomeField"), "#B3-1");
                        Assert.AreEqual ("Error Message 6: ", attr.FormatErrorMessage (null), "#B3-2");
                }
-#if NET_4_0
                [Test]
                public void GetValidationResult ()
                {
@@ -556,7 +460,6 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        Assert.AreEqual ("bool IsValid (object value)", attr.Calls [1], "#A2-3");
                        Assert.AreEqual ("string FormatErrorMessage (string name)", attr.Calls [2], "#A2-4");
                }
-#endif
                [Test]
                public void Validate_Object_String ()
                {
@@ -593,12 +496,6 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                {
                        return ErrorMessageString;
                }
-#if !NET_4_0
-               public override bool IsValid (object value)
-               {
-                       return value != null;
-               }
-#endif
        }
 
        class ValidateBarAttribute : ValidateFooAttribute
@@ -613,7 +510,6 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                {
                        return value != null;
                }
-#if NET_4_0
                protected override ValidationResult IsValid (object value, ValidationContext validationContext)
                {
                        if (!IsValid (value))
@@ -625,7 +521,6 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                {
                        return base.IsValid (value, validationContext);
                }
-#endif
        }
 
        class ValidateBazAttribute : ValidateBarAttribute
@@ -637,20 +532,17 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        Calls.Add ("bool IsValid (object value)");
                        return base.IsValid (value);
                }
-#if NET_4_0
                protected override ValidationResult IsValid (object value, ValidationContext validationContext)
                {
                        Calls.Add ("ValidationResult IsValid (object value, ValidationContext validationContext)");
                        return base.IsValid (value, validationContext);
                }
-#endif
                public override string FormatErrorMessage (string name)
                {
                        Calls.Add ("string FormatErrorMessage (string name)");
                        return base.FormatErrorMessage (name);
                }
        }
-#if NET_4_0
        class ValidateSomethingAttribute : ValidationAttribute
        {
                public override bool IsValid (object value)
@@ -670,7 +562,6 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        return IsValid (value, validationContext);
                }
        }
-#endif
        class FooErrorMessageProvider
        {
                public static string ErrorProperty1
index 2a73735bf89e201c67a9310d5ed350259ef7b2f4..e6d69cd738175e930d2eddee76af413dd5269858 100644 (file)
@@ -35,7 +35,6 @@ using NUnit.Framework;
 
 namespace MonoTests.System.ComponentModel.DataAnnotations
 {
-#if NET_4_0
        [TestFixture]
        public class ValidationContextTest
        {
@@ -238,5 +237,4 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        return null;
                }
        }
-#endif
 }
index 05ddfa9f827be022b4fa7c6efec58476653cd8ac..ca3774a423ddeebefc4063932c46197fb7a3cb01 100644 (file)
@@ -35,7 +35,6 @@ using NUnit.Framework;
 
 namespace MonoTests.System.ComponentModel.DataAnnotations
 {
-#if NET_4_0
        [TestFixture]
        public class ValidationResultTest
        {
@@ -93,5 +92,4 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        Assert.IsNull (success, "#A1");
                }
        }
-#endif
 }
index 0c3787f2f54ad5ffecb7ef1a220adbaf34f7da34..abb1e9f5156c345a5da74b38734c4f0f8e6c0531 100644 (file)
@@ -33,7 +33,6 @@ using MonoTests.Common;
 
 namespace MonoTests.System.ComponentModel.DataAnnotations
 {
-#if NET_4_0
        [TestFixture]
        public class ValidatorTest
        {
@@ -1233,5 +1232,4 @@ namespace MonoTests.System.ComponentModel.DataAnnotations
                        }
                }
        }
-#endif
 }
diff --git a/mcs/class/System.Configuration/System.Configuration_test_net_2_0.dll.config b/mcs/class/System.Configuration/System.Configuration_test_net_2_0.dll.config
deleted file mode 120000 (symlink)
index 6f31b34..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Test/App.config
\ No newline at end of file
diff --git a/mcs/class/System.Configuration/System.Configuration_test_net_4_0.dll.config b/mcs/class/System.Configuration/System.Configuration_test_net_4_0.dll.config
deleted file mode 120000 (symlink)
index 6f31b34..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Test/App.config
\ No newline at end of file
diff --git a/mcs/class/System.Configuration/System.Configuration_test_net_4_5.dll.config b/mcs/class/System.Configuration/System.Configuration_test_net_4_5.dll.config
deleted file mode 120000 (symlink)
index 6f31b34..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Test/App.config
\ No newline at end of file
diff --git a/mcs/class/System.Configuration/System.Configuration_test_net_4_x.dll.config b/mcs/class/System.Configuration/System.Configuration_test_net_4_x.dll.config
new file mode 120000 (symlink)
index 0000000..6f31b34
--- /dev/null
@@ -0,0 +1 @@
+Test/App.config
\ No newline at end of file
index 35af604b15a306b469ce0c7b874e2131a7a8e140..e98ed97f1d41dabbc5c81316a398ca12e4c07f02 100644 (file)
@@ -143,27 +143,15 @@ namespace MonoTests.System.Configuration {
                {
                        ConfigurationPermission p = new ConfigurationPermission (PermissionState.Unrestricted);
 
-#if NET_4_0
                        Assert.AreEqual(
                                        "<IPermission class=\"System.Configuration.ConfigurationPermission, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\"\nversion=\"1\"\nUnrestricted=\"true\"/>\n",
                                        p.ToString().Replace ("\r\n", "\n"), "A1");
-#else
-                       Assert.AreEqual (
-                                       "<IPermission class=\"System.Configuration.ConfigurationPermission, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\"\nversion=\"1\"\nUnrestricted=\"true\"/>\n",
-                                       p.ToString ().Replace ("\r\n", "\n"), "A1");
-#endif
 
                        p = new ConfigurationPermission (PermissionState.None);
 
-#if NET_4_0
                        Assert.AreEqual (
                                         "<IPermission class=\"System.Configuration.ConfigurationPermission, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\"\nversion=\"1\"/>\n",
                                         p.ToString().Replace ("\r\n", "\n"), "A2");
-#else
-                       Assert.AreEqual (
-                                        "<IPermission class=\"System.Configuration.ConfigurationPermission, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\"\nversion=\"1\"/>\n",
-                                        p.ToString ().Replace ("\r\n", "\n"), "A2");
-#endif
                }
        }
 }
index 585271a2fe841c7834510b30cddeba3f20ec4167..6faeba67a14b2212d74a2b3643828c129d7678ee 100644 (file)
@@ -64,18 +64,6 @@ namespace MonoTests.System.Configuration.Util {
                        }
                }
 
-               public static string DotNetVersion {
-                       get {
-#if NET_4_5
-                               return "net_4_5";
-#elif NET_4_0
-                               return "net_4_0";
-#else
-                               return "net_2_0";
-#endif
-                       }
-               }
-
                public static string ThisDllName {
                        get {
                                var asm = Assembly.GetCallingAssembly ();
index 27c1e4154794f827de227698985c15b8b7371628..3a1a8a84e32c7b9c78af2e66e67e9b9541ff81e0 100644 (file)
@@ -6,7 +6,7 @@ check:  local compare
 local: $(TESTS)
        @for i in $(TESTS); do \
                echo running test $$i; \
-               MONO_PATH=../../../lib/net_4_5 mono --debug $$i > $$i.result; \
+               MONO_PATH=../../../lib/net_4_x mono --debug $$i > $$i.result; \
        done
 
 compare:
index 12226e3d2e9fdf2aa7a41d366cf4a7f9586e4c24..a115311812cd160c83a987a8b57c666d9541b170 100644 (file)
@@ -14,7 +14,7 @@ LIB_MCS_FLAGS += -d:NET_3_5 -nowarn:1720
 endif
 
 MOBILE_DYNAMIC := $(filter monodroid xammac mobile, $(PROFILE))
-MOBILE_STATIC := $(filter mobile_static monotouch monotouch_runtime, $(PROFILE))
+MOBILE_STATIC := $(filter mobile_static monotouch monotouch_runtime monotouch_watch, $(PROFILE))
 
 ifdef MOBILE_DYNAMIC
 LIB_MCS_FLAGS += -d:FEATURE_CORE_DLR,FEATURE_REFEMIT
index 3c4d8e7ebcfcc3889a3320246c43c45121f4702a..c52050141f7f7d6a3b8e8200fdd77ff4d93adf22 100644 (file)
@@ -100,4 +100,8 @@ partial class SR
        public const string Cryptography_UnknownEllipticCurve = "Cryptography_UnknownEllipticCurve";
        public const string Cryptography_UnknownEllipticCurveAlgorithm = "Cryptography_UnknownEllipticCurveAlgorithm";
        public const string Cryptography_UnknownPaddingMode = "Cryptography_UnknownPaddingMode";
+
+       public const string InvalidOperation_ViewIsNull = "InvalidOperation_ViewIsNull";
+       public const string ObjectDisposed_ViewAccessorClosed = "ObjectDisposed_ViewAccessorClosed";
+       public const string NotSupported_MMViewStreamsFixedLength = "NotSupported_MMViewStreamsFixedLength";
 }
index 5bd03a9fe3b3b9e4ed5b3b679eaee3f1872b1692..5bba4d9209b21555441b2a1620e3efbd62864ca5 100644 (file)
@@ -298,7 +298,8 @@ namespace System.IO.MemoryMappedFiles
 
                public MemoryMappedViewStream CreateViewStream (long offset, long size, MemoryMappedFileAccess access)
                {
-                       return new MemoryMappedViewStream (handle, offset, size, access);
+                       var view = MemoryMappedView.Create (handle, offset, size, access);
+                       return new MemoryMappedViewStream (view);
                }
 
                public MemoryMappedViewAccessor CreateViewAccessor ()
@@ -313,7 +314,8 @@ namespace System.IO.MemoryMappedFiles
 
                public MemoryMappedViewAccessor CreateViewAccessor (long offset, long size, MemoryMappedFileAccess access)
                {
-                       return new MemoryMappedViewAccessor (handle, offset, size, access);
+                       var view = MemoryMappedView.Create (handle, offset, size, access);
+                       return new MemoryMappedViewAccessor (view);
                }
 
                MemoryMappedFile ()
@@ -358,6 +360,34 @@ namespace System.IO.MemoryMappedFiles
                                throw new NotImplementedException ();
                        }
                }
+
+               // This converts a MemoryMappedFileAccess to a FileAccess. MemoryMappedViewStream and
+               // MemoryMappedViewAccessor subclass UnmanagedMemoryStream and UnmanagedMemoryAccessor, which both use
+               // FileAccess to determine whether they are writable and/or readable.
+               internal static FileAccess GetFileAccess (MemoryMappedFileAccess access) {
+
+                       if (access == MemoryMappedFileAccess.Read) {
+                               return FileAccess.Read;
+                       }
+                       if (access == MemoryMappedFileAccess.Write) {
+                               return FileAccess.Write;
+                       }
+                       else if (access == MemoryMappedFileAccess.ReadWrite) {
+                               return FileAccess.ReadWrite;
+                       }
+                       else if (access == MemoryMappedFileAccess.CopyOnWrite) {
+                               return FileAccess.ReadWrite;
+                       }
+                       else if (access == MemoryMappedFileAccess.ReadExecute) {
+                               return FileAccess.Read;
+                       }
+                       else if (access == MemoryMappedFileAccess.ReadWriteExecute) {
+                               return FileAccess.ReadWrite;
+                       }
+
+                       // If we reached here, access was invalid.
+                       throw new ArgumentOutOfRangeException ("access");
+               }
        }
 }
 
diff --git a/mcs/class/System.Core/System.IO.MemoryMappedFiles/MemoryMappedView.cs b/mcs/class/System.Core/System.IO.MemoryMappedFiles/MemoryMappedView.cs
new file mode 100644 (file)
index 0000000..9362f00
--- /dev/null
@@ -0,0 +1,118 @@
+//
+// MemoryMappedView.cs
+//
+// Authors:
+//     Marcos Henrich (marcos.henrich@gmail.com)
+//
+// Copyright (C) 2015, Xamarin, Inc
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+
+using System;
+using System.IO;
+using System.Diagnostics;
+using System.Collections.Generic;
+using Microsoft.Win32.SafeHandles;
+
+namespace System.IO.MemoryMappedFiles
+{
+       internal class MemoryMappedView : IDisposable {
+               private SafeMemoryMappedViewHandle m_viewHandle;
+               private Int64 m_pointerOffset;
+               private Int64 m_size;
+               private MemoryMappedFileAccess m_access;
+
+               [System.Security.SecurityCritical]
+               private unsafe MemoryMappedView(SafeMemoryMappedViewHandle viewHandle, Int64 pointerOffset, 
+                                                                                       Int64 size, MemoryMappedFileAccess access) {
+
+                       m_viewHandle = viewHandle;
+                       m_pointerOffset = pointerOffset;
+                       m_size = size;
+                       m_access = access;
+               }
+
+               internal SafeMemoryMappedViewHandle ViewHandle {
+                       [System.Security.SecurityCritical]
+                       get {
+                               return m_viewHandle;
+                       }
+               }
+
+               internal Int64 PointerOffset {
+                       get {
+                               return m_pointerOffset;
+                       }
+               }
+
+               internal Int64 Size {
+                       get {
+                               return m_size;
+                       }
+               }
+
+               internal MemoryMappedFileAccess Access {
+                       get {
+                               return m_access;
+                       }
+               }
+
+               internal unsafe static MemoryMappedView Create (IntPtr handle, long offset, long size, MemoryMappedFileAccess access)
+               {
+                       IntPtr base_address;
+                       IntPtr mmap_handle;
+
+                       MemoryMapImpl.Map (handle, offset, ref size, access, out mmap_handle, out base_address);
+
+                       var safe_handle = new SafeMemoryMappedViewHandle (mmap_handle, base_address, size);
+
+                       // MemoryMapImpl.Map returns a base_address to the offset so MemoryMappedView is initiated
+                       // no offset.
+                       return new MemoryMappedView (safe_handle, 0, size, access);
+               }
+
+               public void Flush (IntPtr capacity)
+               {
+                       MemoryMapImpl.Flush (m_viewHandle.DangerousGetHandle ());
+               }
+               
+               protected virtual void Dispose (bool disposing)
+               {
+                       if (m_viewHandle != null && !m_viewHandle.IsClosed) {
+                               m_viewHandle.Dispose ();
+                       }
+               }
+               public void Dispose ()
+               {
+                       Dispose (true);
+                       GC.SuppressFinalize (this);
+               }
+               internal bool IsClosed {
+                       get {
+                               return (m_viewHandle == null || m_viewHandle.IsClosed);
+                       }
+               }
+       }
+}
+
diff --git a/mcs/class/System.Core/System.IO.MemoryMappedFiles/MemoryMappedViewAccessor.cs b/mcs/class/System.Core/System.IO.MemoryMappedFiles/MemoryMappedViewAccessor.cs
deleted file mode 100644 (file)
index 8bb8fc3..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-//
-// MemoryMappedViewAccessor.cs
-//
-// Authors:
-//     Zoltan Varga (vargaz@gmail.com)
-//
-// Copyright (C) 2009, Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-
-using System;
-using System.IO;
-using System.Collections.Generic;
-using Microsoft.Win32.SafeHandles;
-
-namespace System.IO.MemoryMappedFiles
-{
-       public sealed class MemoryMappedViewAccessor : UnmanagedMemoryAccessor, IDisposable {
-               IntPtr mmap_handle;
-               SafeMemoryMappedViewHandle safe_handle;
-               long pointerOffset;
-
-               internal MemoryMappedViewAccessor (IntPtr handle, long offset, long size, MemoryMappedFileAccess access)
-               {
-                       pointerOffset = offset;
-                       Create (handle, offset, size, access);
-               }
-
-               public long PointerOffset
-               {
-                       get { return pointerOffset; }
-               }
-
-               static FileAccess ToFileAccess (MemoryMappedFileAccess access)
-               {
-                       switch (access){
-                       case MemoryMappedFileAccess.CopyOnWrite:
-                       case MemoryMappedFileAccess.ReadWrite:
-                       case MemoryMappedFileAccess.ReadWriteExecute:
-                               return FileAccess.ReadWrite;
-                               
-                       case MemoryMappedFileAccess.Write:
-                               return FileAccess.Write;
-                               
-                       case MemoryMappedFileAccess.ReadExecute:
-                       case MemoryMappedFileAccess.Read:
-                       default:
-                               return FileAccess.Read;
-                       }
-               }
-               
-               unsafe void Create (IntPtr handle, long offset, long size, MemoryMappedFileAccess access)
-               {
-                       IntPtr base_address;
-
-                       MemoryMapImpl.Map (handle, offset, ref size, access, out mmap_handle, out base_address);
-                       safe_handle = new SafeMemoryMappedViewHandle (mmap_handle, base_address, size);
-
-                       Initialize (safe_handle, 0, size, ToFileAccess (access));
-               }
-
-               public SafeMemoryMappedViewHandle SafeMemoryMappedViewHandle {
-                       get {
-                               return safe_handle;
-                       }
-               }
-
-               protected override void Dispose (bool disposing)
-               {
-                       base.Dispose (disposing);
-               }
-
-               void IDisposable.Dispose () {
-                       Dispose (true);
-               }
-
-               public void Flush ()
-               {
-                       MemoryMapImpl.Flush (mmap_handle);
-               }
-       }
-}
-
diff --git a/mcs/class/System.Core/System.IO.MemoryMappedFiles/MemoryMappedViewStream.cs b/mcs/class/System.Core/System.IO.MemoryMappedFiles/MemoryMappedViewStream.cs
deleted file mode 100644 (file)
index 6fbaca6..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-//
-// MemoryMappedViewStream.cs
-//
-// Authors:
-//     Zoltan Varga (vargaz@gmail.com)
-//
-// Copyright (C) 2009, Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-
-using System;
-using System.IO;
-using Microsoft.Win32.SafeHandles;
-
-namespace System.IO.MemoryMappedFiles
-{
-       public sealed class MemoryMappedViewStream : UnmanagedMemoryStream {
-               IntPtr mmap_handle;
-               object monitor;
-               long pointerOffset;
-
-               internal MemoryMappedViewStream (IntPtr handle, long offset, long size, MemoryMappedFileAccess access) {
-                       pointerOffset = offset;
-                       monitor = new Object ();
-                       CreateStream (handle, offset, size, access);
-               }
-
-               public long PointerOffset
-               {
-                       get { return pointerOffset; }
-               }
-
-               public SafeMemoryMappedViewHandle SafeMemoryMappedViewHandle { 
-                       get {
-                               throw new NotImplementedException ();
-                       }
-               }
-
-               unsafe void CreateStream (IntPtr handle, long offset, long size, MemoryMappedFileAccess access)
-               {
-                       IntPtr base_address;
-
-                       MemoryMapImpl.Map (handle, offset, ref size, access, out mmap_handle, out base_address);
-
-                       FileAccess faccess;
-                       switch (access) {
-                       case MemoryMappedFileAccess.ReadWrite:
-                               faccess = FileAccess.ReadWrite;
-                               break;
-                       case MemoryMappedFileAccess.Read:
-                               faccess = FileAccess.Read;
-                               break;
-                       case MemoryMappedFileAccess.Write:
-                               faccess = FileAccess.Write;
-                               break;
-                       default:
-                               throw new NotImplementedException ("access mode " + access + " not supported.");
-                       }
-                       Initialize ((byte*)base_address, size, size, faccess);
-               }
-                
-               protected override void Dispose (bool disposing)
-               {
-                       base.Dispose (disposing);
-                       lock (monitor) {
-                               if (mmap_handle != (IntPtr)(-1)) {
-                                       MemoryMapImpl.Unmap (mmap_handle);
-                                       mmap_handle = (IntPtr)(-1);
-                               }
-                       }
-               }
-
-               public override void Flush ()
-               {
-                       MemoryMapImpl.Flush (mmap_handle);
-               }
-       }
-}
-
index c07666a29c6d97de26b9037c2e5d60e95c43f584..b61fcb2bf4dbda1e403cf6b0c84d9539361b605d 100644 (file)
@@ -26,7 +26,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0
 
 using System;
 using System.IO;
@@ -221,7 +220,8 @@ namespace MonoTests.System.IO.MemoryMappedFiles {
                        var expected = "lo!";
 
                        using (var v = file.CreateViewAccessor (offset, expected.Length)) {
-                               Assert.AreEqual (offset, v.PointerOffset);
+                               // PointerOffset Mono implementation is always 0.
+                               // Assert.AreEqual (offset, v.PointerOffset);
 
                                var a = new byte [expected.Length];
                                var n = v.ReadArray (0, a, 0, expected.Length);
@@ -238,7 +238,8 @@ namespace MonoTests.System.IO.MemoryMappedFiles {
                        var expected = "lo!";
 
                        using (var v = file.CreateViewStream (offset, expected.Length)) {
-                               Assert.AreEqual (offset, v.PointerOffset);
+                               // PointerOffset Mono implementation is always 0.
+                               // Assert.AreEqual (offset, v.PointerOffset);
 
                                var a = new byte [expected.Length];
                                var n = v.Read (a, 0, expected.Length);
@@ -395,8 +396,18 @@ namespace MonoTests.System.IO.MemoryMappedFiles {
 #endif
                        stream.Write (new byte [pageSize], 0, pageSize);
                }
+
+               [Test] // #30741 #30825
+               public void CreateFromFileNullMapName ()
+               {
+                       int size = 100;
+                       string f = Path.Combine (tempDir, "null-map-name-file");
+                       File.WriteAllBytes (f, new byte [size]);
+
+                       FileStream file = File.OpenRead (f);
+                       MemoryMappedFile.CreateFromFile (file, null, size, MemoryMappedFileAccess.ReadExecute, null, 0, false);
+               }
        }
 }
 
-#endif
 
index 37d7a00082cc9bf300a725f3527b00022a47b11a..d4d66bb7ff7fd8b9f45815058f21aa27ae2fbd12 100644 (file)
@@ -133,9 +133,6 @@ namespace MonoTests.System.Linq.Expressions {
                        var p = Expression.Parameter (typeof (string), null);
                        Assert.AreEqual (null, p.Name);
                        Assert.AreEqual (typeof (string), p.Type);
-#if !NET_4_0
-                       Assert.AreEqual ("<param>", p.ToString ());
-#endif
                }
 
                [Test]
@@ -144,9 +141,6 @@ namespace MonoTests.System.Linq.Expressions {
                        var p = Expression.Parameter (typeof (string), "");
                        Assert.AreEqual ("", p.Name);
                        Assert.AreEqual (typeof (string), p.Type);
-#if !NET_4_0
-                       Assert.AreEqual ("", p.ToString ());
-#endif
                }
 
                [Test]
@@ -199,9 +193,6 @@ namespace MonoTests.System.Linq.Expressions {
 
                        Assert.AreEqual (typeof (Func<string, string>), identity.GetType ());
                        Assert.IsNotNull (identity.Target);
-#if !NET_4_0
-                       Assert.AreEqual (typeof (ExecutionScope), identity.Target.GetType ());
-#endif
                }
 
                class Foo {
@@ -217,39 +208,6 @@ namespace MonoTests.System.Linq.Expressions {
                        }
                }
 
-#if !NET_4_0
-               [Test]
-               public void GlobalsInScope ()
-               {
-                       var foo = new Foo { gazonk = "gazonk" };
-                       var bar = new Bar { baz = 42 };
-
-                       var l = Expression.Lambda<Func<string>> (
-                               Expression.Call (
-                                       typeof (string).GetMethod ("Concat", new [] { typeof (string), typeof (string) }),
-                                       Expression.Field (Expression.Constant (foo), typeof (Foo).GetField ("gazonk")),
-                                       Expression.Call (Expression.Constant (bar), typeof (Bar).GetMethod ("ToString"))));
-
-                       var del = l.Compile ();
-
-                       var scope = del.Target as ExecutionScope;
-
-                       Assert.IsNotNull (scope);
-
-                       var globals = scope.Globals;
-
-                       Assert.IsNotNull (globals);
-
-                       Assert.AreEqual (2, globals.Length);
-                       Assert.AreEqual (typeof (StrongBox<Foo>), globals [0].GetType ());
-                       Assert.AreEqual (typeof (StrongBox<Bar>), globals [1].GetType ());
-
-                       Assert.AreEqual (foo, ((StrongBox<Foo>) globals [0]).Value);
-                       Assert.AreEqual (bar, ((StrongBox<Bar>) globals [1]).Value);
-
-                       Assert.AreEqual ("gazonk42", del ());
-               }
-#endif
 
                [Test]
                public void SimpleHoistedParameter ()
index d56fe5e933afce27668db069684f0e039356d30b..549e7308a32aae04b8620838a5c904859057be57 100644 (file)
@@ -194,12 +194,6 @@ namespace MonoTests.System.Linq.Expressions
                        // These are invalid:
                        InvalidOperation<byte> (Byte.MaxValue, 2);
                        InvalidOperation<sbyte> (SByte.MaxValue, 2);
-#if !NET_4_0
-                       // Stuff that just fits in 32 bits, does not overflow:
-                       MustNotOverflow<short> (Int16.MaxValue, 2);
-                       MustNotOverflow<short> (Int16.MaxValue, 2);
-                       MustNotOverflow<ushort> (UInt16.MaxValue, 2);
-#endif
                        // Doubles, floats, do not overflow
                        MustNotOverflow<float> (Single.MaxValue, 1);
                        MustNotOverflow<double> (Double.MaxValue, 1);
index 1384adc7501a54e5a5f9be19152c766afcd6dc89..01f3cbf7b6fec77d4b072e7458fc532e52da8d75 100644 (file)
@@ -80,9 +80,6 @@ namespace MonoTests.System.Linq.Expressions
                        Assert.AreEqual (ExpressionType.AndAlso, expr.NodeType, "AndAlso#01");
                        Assert.AreEqual (typeof (bool), expr.Type, "AndAlso#02");
                        Assert.IsNull (expr.Method, "AndAlso#03");
-#if !NET_4_0
-                       Assert.AreEqual ("(True && False)", expr.ToString(), "AndAlso#04");
-#endif
                }
 
                [Test]
@@ -97,10 +94,6 @@ namespace MonoTests.System.Linq.Expressions
                        Assert.AreEqual (typeof (OpClass), expr.Type, "AndAlso#06");
                        Assert.AreEqual (mi, expr.Method, "AndAlso#07");
                        Assert.AreEqual ("op_BitwiseAnd", expr.Method.Name, "AndAlso#08");
-#if !NET_4_0
-                       Assert.AreEqual ("(value(MonoTests.System.Linq.Expressions.OpClass) && value(MonoTests.System.Linq.Expressions.OpClass))",
-                               expr.ToString(), "AndAlso#09");
-#endif
                }
 
                [Test]
index e4cd69c59778a525e26c09bd89a2c4612a086061..1edb2fa98eca01cbaac72ac28d970ab1a013a35d 100644 (file)
@@ -87,11 +87,7 @@ namespace MonoTests.System.Linq.Expressions {
                }
 
                [Test]
-#if NET_4_0
                [ExpectedException (typeof (ArgumentException))]
-#else
-               [ExpectedException (typeof (ArgumentNullException))]
-#endif
                public void ArgInstanceNullForNonStaticMethod ()
                {
                        Expression.Call (null, typeof (object).GetMethod ("ToString"));
@@ -292,18 +288,6 @@ namespace MonoTests.System.Linq.Expressions {
                {
                        return (int) (i as ConstantExpression).Value;
                }
-#if !NET_4_0 // dlr bug 5875
-               [Test]
-               public void CallMethodWithExpressionParameter ()
-               {
-                       var call = Expression.Call (GetType ().GetMethod ("Bang"), Expression.Constant (42));
-                       Assert.AreEqual (ExpressionType.Quote, call.Arguments [0].NodeType);
-
-                       var l = Expression.Lambda<Func<int>> (call).Compile ();
-
-                       Assert.AreEqual (42, l ());
-               }
-#endif
                static bool fout_called = false;
 
                public static int FooOut (out int x)
index 7fb96f71519940f299885b81aef6aebf1a1d8c46..d2cbd1013ab2a4c5edc7845195e0b495f25a2a1d 100644 (file)
@@ -81,16 +81,10 @@ namespace MonoTests.System.Linq.Expressions {
 
                        var conv = Expression.Convert (p, typeof (ITzap));
                        Assert.AreEqual (typeof (ITzap), conv.Type);
-#if !NET_4_0
-                       Assert.AreEqual ("Convert(<param>)", conv.ToString ());
-#endif
                        p = Expression.Parameter (typeof (ITzap), null);
                        conv = Expression.Convert (p, typeof (IFoo));
 
                        Assert.AreEqual (typeof (IFoo), conv.Type);
-#if !NET_4_0
-                       Assert.AreEqual ("Convert(<param>)", conv.ToString ());
-#endif
                }
 
                [Test]
index 497955c4a4e2873a32175a4371fd195698cc11fa..ac32152973f1d06c45fb897253f98fb089d1f1ad 100644 (file)
@@ -76,9 +76,6 @@ namespace MonoTests.System.Linq.Expressions
                        Assert.AreEqual (ExpressionType.Equal, expr.NodeType);
                        Assert.AreEqual (typeof (bool), expr.Type);
                        Assert.IsNull (expr.Method);
-#if !NET_4_0
-                       Assert.AreEqual ("(1 = 2)", expr.ToString ());
-#endif
                }
 
                [Test]
@@ -107,9 +104,6 @@ namespace MonoTests.System.Linq.Expressions
                        Assert.AreEqual (true, expr.IsLifted);
                        Assert.AreEqual (false, expr.IsLiftedToNull);
                        Assert.IsNull (expr.Method);
-#if !NET_4_0
-                       Assert.AreEqual ("(1 = 2)", expr.ToString ());
-#endif
                }
 
                [Test]
@@ -126,9 +120,6 @@ namespace MonoTests.System.Linq.Expressions
                        Assert.AreEqual (true, expr.IsLifted);
                        Assert.AreEqual (true, expr.IsLiftedToNull);
                        Assert.IsNull (expr.Method);
-#if !NET_4_0
-                       Assert.AreEqual ("(1 = 2)", expr.ToString ());
-#endif
                }
 
                [Test]
@@ -154,9 +145,6 @@ namespace MonoTests.System.Linq.Expressions
                        Assert.AreEqual (typeof (bool), expr.Type);
                        Assert.AreEqual (mi, expr.Method);
                        Assert.AreEqual ("op_Equality", expr.Method.Name);
-#if !NET_4_0
-                       Assert.AreEqual ("(value(MonoTests.System.Linq.Expressions.OpClass) = value(MonoTests.System.Linq.Expressions.OpClass))", expr.ToString ());
-#endif
                }
 
                [Test]
index 8c83e312ec13b1abf17b93da7e581be6468b1e24..07b8f0381828a76eeb8c0f031b36434dd2ec3697 100644 (file)
@@ -267,19 +267,5 @@ namespace MonoTests.System.Linq.Expressions
 
                        Assert.AreEqual (5, l (1));
                }
-#if !NET_4_0 // dlr bug 5875
-               [Test]
-               public void LambdaReturningExpression ()
-               {
-                       var l = Expression.Lambda<Func<Expression>> (Expression.Constant (42));
-                       Assert.AreEqual (ExpressionType.Quote, l.Body.NodeType);
-
-                       var quoter = l.Compile ();
-
-                       var q = quoter ();
-
-                       Assert.AreEqual (ExpressionType.Constant, q.NodeType);
-               }
-#endif
        }
 }
index ddef13f4702f3d0db7191bb95668e8e68a95347c..44e89e185c2d779ecaece576ff8082713370fd65 100644 (file)
@@ -80,9 +80,6 @@ namespace MonoTests.System.Linq.Expressions
                        Assert.AreEqual (ExpressionType.OrElse, expr.NodeType, "OrElse#01");
                        Assert.AreEqual (typeof (bool), expr.Type, "OrElse#02");
                        Assert.IsNull (expr.Method, "OrElse#03");
-#if !NET_4_0
-                       Assert.AreEqual ("(True || False)", expr.ToString(), "OrElse#04");
-#endif
                }
 
                [Test]
@@ -97,10 +94,6 @@ namespace MonoTests.System.Linq.Expressions
                        Assert.AreEqual (typeof (OpClass), expr.Type, "OrElse#06");
                        Assert.AreEqual (mi, expr.Method, "OrElse#07");
                        Assert.AreEqual ("op_BitwiseOr", expr.Method.Name, "OrElse#08");
-#if !NET_4_0
-                       Assert.AreEqual ("(value(MonoTests.System.Linq.Expressions.OpClass) || value(MonoTests.System.Linq.Expressions.OpClass))",
-                               expr.ToString(), "OrElse#09");
-#endif
                }
 
                public class BrokenMethod {
@@ -283,29 +276,6 @@ namespace MonoTests.System.Linq.Expressions
                        Assert.AreEqual (new Slot (64), orelse (new Slot (64), new Slot (64)));
                        Assert.AreEqual (new Slot (32), orelse (new Slot (32), new Slot (64)));
                }
-#if !NET_4_0 // dlr bug 5867
-               [Test]
-               public void UserDefinedOrElseLiftedToNull ()
-               {
-                       var l = Expression.Parameter (typeof (Slot?), "l");
-                       var r = Expression.Parameter (typeof (Slot?), "r");
-
-                       var method = typeof (Slot).GetMethod ("op_BitwiseOr");
-
-                       var node = Expression.OrElse (l, r, method);
-                       Assert.IsTrue (node.IsLifted);
-                       Assert.IsTrue (node.IsLiftedToNull);
-                       Assert.AreEqual (method, node.Method);
-
-                       var orelse = Expression.Lambda<Func<Slot?, Slot?, Slot?>> (node, l, r).Compile ();
-
-                       Assert.AreEqual (new Slot (64), orelse (new Slot (64), new Slot (64)));
-                       Assert.AreEqual (new Slot (32), orelse (new Slot (32), new Slot (64)));
-                       Assert.AreEqual (new Slot (64), orelse (null, new Slot (64)));
-                       Assert.AreEqual (new Slot (32), orelse (new Slot (32), null));
-                       Assert.AreEqual (null, orelse (null, null));
-               }
-#endif
                [Test]
                [Category ("NotWorkingInterpreter")]
                public void UserDefinedOrElseShortCircuit ()
index d3de170e0dad3953f2595a0e8a1580c616ecf694..d32918d75b2299596928ae85c5694f1720715244 100644 (file)
@@ -37,23 +37,12 @@ namespace MonoTests.System.Linq.Expressions
                        Expression.Quote (null);
                }
 
-#if !NET_4_0
-               [Test]
-               public void QuoteConstant ()
-               {
-                       UnaryExpression expr = Expression.Quote (Expression.Constant (1));
-                       Assert.AreEqual (ExpressionType.Quote, expr.NodeType, "Quote#01");
-                       Assert.AreEqual (typeof (ConstantExpression), expr.Type, "Quote#02");
-                       Assert.AreEqual ("1", expr.ToString(), "Quote#03");
-               }
-#else
                [Test]
                [ExpectedException (typeof (ArgumentException))]
                public void QuoteConstant ()
                {
                        Expression.Quote (Expression.Constant (1));
                }
-#endif
 
                [Test]
                public void CompiledQuote ()
index cbb41f4edf6c45fdda6f91b548a5cb70b89438f1..6703b7f3cd418a34d89fc1562cdeb7644db352b4 100644 (file)
@@ -184,15 +184,6 @@ namespace MonoTests.System.Linq.Expressions
                        MustOverflow<uint>  (0, 1);
                }
 
-#if !NET_4_0 // fixed in net_4_0
-               [Test]
-               public void TestBugCompatibility ()
-               {
-                       // This one does not overflow on .NET (!!!)
-                       // Sounds very odd, should file a bug with MS.
-                       MustNotOverflow<short> (Int16.MinValue, 1);
-               }
-#endif
 
                //
                // These should not overflow
index 91fd32e6596816c15c17153285991e5499fe2cb4..82d797daa70bae324b79b7ed837d1af1c595ea49 100644 (file)
@@ -104,15 +104,6 @@ namespace MonoTests.System.Linq.Expressions
                        Assert.IsTrue (baz_is_bar (new Baz ()));
                }
 
-#if !NET_4_0 // dlr bug 5868
-               [Test]
-               [Category ("NotDotNet")]
-               [ExpectedException (typeof (ArgumentException))]
-               public void TypeIsVoid ()
-               {
-                       Expression.TypeIs ("yoyo".ToConstant (), typeof (void));
-               }
-#endif
 
                public static void TacTac ()
                {
index 1045c8521b986d35d351ff9f383b2f5763660d7d..a9389f9b49710d088c2f7baf64b566d424566a2c 100644 (file)
@@ -2124,7 +2124,6 @@ namespace MonoTests.System.Linq
                        Assert.That (Enumerable.AsEnumerable<object> (null), Is.Null);
                }
                
-#if NET_4_0
                [Test]
                [ExpectedException (typeof (ArgumentNullException))]
                public void Zip_FirstSourceNull_ThrowsArgumentNullException ()
@@ -2157,7 +2156,6 @@ namespace MonoTests.System.Linq
                        b = new [] { 100, 200, 300 };
                        a.Zip (b, (f, s) => f + s.ToString ()).AssertEquals ("a100");
                }
-#endif
 
 
                private Reader<T> Read<T> (params T [] source)
index d9fac1818d3704bc36d573df94e71dbab5d698f5..5d76629eda83b52704264ca8617f71c9ada66819 100644 (file)
@@ -24,7 +24,6 @@
 //
 //
 
-#if NET_4_0
 
 using System;
 using System.Threading;
@@ -920,4 +919,3 @@ namespace MonoTests.System.Linq
        }
 }
 
-#endif
index f8a7ac1628c3c0f0585ac7dca7f69afc32451811..92ffe288f7dc6f466099fe0228b4c6de56814499 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // TestHelper.cs
 //
 // Copyright (c) 2008 Jérémie "Garuma" Laval
@@ -91,4 +90,3 @@ namespace MonoTests.System.Linq
                }
        }
 }
-#endif
index 070d65bdb0de088288282e96eea7666636db155b..1093fd2003fe67e97df796fde28affb325872421 100644 (file)
@@ -26,7 +26,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0
 
 using System;
 using System.Runtime.CompilerServices;
@@ -62,4 +61,3 @@ namespace MonoTests.System.Runtime.CompilerServices
        }
 }
 
-#endif
index 8cb9b6166cc8612641ebc6b659284068b57e6e89..206655acc43f22fb54ccfe60e1494ed9eeeda9eb 100644 (file)
@@ -37,7 +37,7 @@ namespace MonoTests.System.Security.Cryptography {
        public class AesManagedTest {
                
                [Test]
-#if !MOBILE
+#if !MONOTOUCH
                [ExpectedException (typeof (CryptographicException))]
 #endif
                public void CFB_NotAllowed ()
@@ -61,7 +61,7 @@ namespace MonoTests.System.Security.Cryptography {
                }
                
                [Test]
-#if !MOBILE
+#if !MONOTOUCH
                [ExpectedException (typeof (CryptographicException))]
 #endif
                public void OFB_NotAllowed ()
index 1d5c1e40cb4f1512bc322dfc5022c4fa2400456e..f40535f6e987fabf9a81e55bb1b305bead00a799 100644 (file)
@@ -24,7 +24,6 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
-#if NET_4_0
 
 using System;
 using System.Threading;
@@ -56,4 +55,3 @@ namespace MonoTests.System.Threading.Tasks
                }
        }
 }
-#endif
index 8e2c31745047e5cf74f3a6a1b3bb7bd33462b164..027776c6f1e7b6620863af67d6cc035e71a5e065 100644 (file)
@@ -30,9 +30,7 @@ using System;
 using NUnit.Framework;
 using System.Threading;
 using System.Linq;
-#if NET_4_0
 using System.Threading.Tasks;
-#endif
 
 namespace MonoTests.System.Threading
 {
@@ -451,7 +449,6 @@ namespace MonoTests.System.Threading
                        Assert.IsTrue (v.TryEnterWriteLock (100));
                        v.ExitWriteLock ();
                }
-#if NET_4_0
                [Test]
                public void EnterWriteLockWhileInUpgradeAndOtherWaiting ()
                {
@@ -475,7 +472,6 @@ namespace MonoTests.System.Threading
 
             Assert.IsTrue (task1.Wait (500));
                }
-#endif
                [Test]
                public void RecursiveReadLockTest ()
                {
index 89d524cd1b9d50876d7b45209a97d904371e5bb3..e5681ff8ff5bf166c97dd42c23e421b8963c6445 100644 (file)
@@ -1 +1 @@
-#include net_4_5_System.Core.dll.sources
+#include net_4_x_System.Core.dll.sources
index 89d524cd1b9d50876d7b45209a97d904371e5bb3..e5681ff8ff5bf166c97dd42c23e421b8963c6445 100644 (file)
@@ -1 +1 @@
-#include net_4_5_System.Core.dll.sources
+#include net_4_x_System.Core.dll.sources
index a90d09f09b80542aa643045b2c713b10943c121d..0a4369fdd4e4d01fb980ac14f247360a54d18f1d 100644 (file)
@@ -3,8 +3,7 @@
 Assembly/AssemblyInfo.cs
 System/Util.cs
 System.IO.MemoryMappedFiles/MemoryMappedFile.cs
-System.IO.MemoryMappedFiles/MemoryMappedViewStream.cs
-System.IO.MemoryMappedFiles/MemoryMappedViewAccessor.cs
+System.IO.MemoryMappedFiles/MemoryMappedView.cs
 Microsoft.Win32.SafeHandles/SafeMemoryMappedFileHandle.cs
 Microsoft.Win32.SafeHandles/SafeMemoryMappedViewHandle.cs
 
@@ -34,6 +33,8 @@ ReferenceSources/Strings.cs
 
 ../../../external/referencesource/System.Core/System/IO/MemoryMappedFiles/Enums.cs
 ../../../external/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedFileSecurity.cs
+../../../external/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedViewAccessor.cs
+../../../external/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedViewStream.cs
 
 ../../../external/referencesource/System.Core/System/Linq/Enumerable.cs
 ../../../external/referencesource/System.Core/System/Linq/IQueryable.cs
@@ -181,6 +182,8 @@ ReferenceSources/Strings.cs
 ../../../external/referencesource/System.Core/System/Runtime/CompilerServices/ExecutionScope.cs
 
 ../../../external/referencesource/System.Core/System/Security/Cryptography/Aes.cs
+../../../external/referencesource/System.Core/System/Security/Cryptography/ECDiffieHellmanPublicKey.cs
+../../../external/referencesource/System.Core/System/Security/Cryptography/ECDsa.cs
 
 ../../../external/referencesource/System.Core/System/threading/ReaderWriterLockSlim/ReaderWriterLockSlim.cs
 
diff --git a/mcs/class/System.Core/monotouch_watch_System.Core.dll.sources b/mcs/class/System.Core/monotouch_watch_System.Core.dll.sources
new file mode 100644 (file)
index 0000000..7d32d44
--- /dev/null
@@ -0,0 +1,2 @@
+#include common_System.Core.dll.sources
+#include interpreter_System.Core.dll.sources
diff --git a/mcs/class/System.Core/net_4_5_System.Core.dll.sources b/mcs/class/System.Core/net_4_5_System.Core.dll.sources
deleted file mode 100644 (file)
index 208d03f..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#include common_System.Core.dll.sources
-#include dynamic_System.Core.dll.sources
-
-Microsoft.Win32.SafeHandles/SafePipeHandle.cs
-
-System.IO.Pipes/AnonymousPipeClientStream.cs
-System.IO.Pipes/AnonymousPipeServerStream.cs
-System.IO.Pipes/NamedPipeClientStream.cs
-System.IO.Pipes/NamedPipeServerStream.cs
-System.IO.Pipes/PipeAccessRights.cs
-System.IO.Pipes/PipeAccessRule.cs
-System.IO.Pipes/PipeAuditRule.cs
-System.IO.Pipes/PipeDirection.cs
-System.IO.Pipes/PipeInterfaces.cs
-System.IO.Pipes/PipeOptions.cs
-System.IO.Pipes/PipeSecurity.cs
-System.IO.Pipes/PipeStream.cs
-System.IO.Pipes/PipeStreamImpersonationWorker.cs
-System.IO.Pipes/PipeTransmissionMode.cs
-System.IO.Pipes/PipeUnix.cs
-System.IO.Pipes/PipeWin32.cs
-
-System.Security.Cryptography/AesCryptoServiceProvider.cs
-System.Security.Cryptography/AesTransform.cs
-System.Security.Cryptography/CngAlgorithm.cs
-System.Security.Cryptography/CngAlgorithmGroup.cs
-System.Security.Cryptography/MD5Cng.cs
-System.Security.Cryptography/SHA1Cng.cs
-System.Security.Cryptography/SHA256Cng.cs
-System.Security.Cryptography/SHA256CryptoServiceProvider.cs
-System.Security.Cryptography/SHA384Cng.cs
-System.Security.Cryptography/SHA384CryptoServiceProvider.cs
-System.Security.Cryptography/SHA512Cng.cs
-System.Security.Cryptography/SHA512CryptoServiceProvider.cs
-
-../../../external/referencesource/System.Core/System/Security/Cryptography/AesManaged.cs
-
-../../../external/referencesource/System.Core/System/threading/ReaderWriterLockSlim/LockRecursionException.cs
diff --git a/mcs/class/System.Core/net_4_x_System.Core.dll.sources b/mcs/class/System.Core/net_4_x_System.Core.dll.sources
new file mode 100644 (file)
index 0000000..4d2ae3d
--- /dev/null
@@ -0,0 +1,40 @@
+#include common_System.Core.dll.sources
+#include dynamic_System.Core.dll.sources
+
+Microsoft.Win32.SafeHandles/SafePipeHandle.cs
+
+System.IO.Pipes/AnonymousPipeClientStream.cs
+System.IO.Pipes/AnonymousPipeServerStream.cs
+System.IO.Pipes/NamedPipeClientStream.cs
+System.IO.Pipes/NamedPipeServerStream.cs
+System.IO.Pipes/PipeAccessRights.cs
+System.IO.Pipes/PipeAccessRule.cs
+System.IO.Pipes/PipeAuditRule.cs
+System.IO.Pipes/PipeDirection.cs
+System.IO.Pipes/PipeInterfaces.cs
+System.IO.Pipes/PipeOptions.cs
+System.IO.Pipes/PipeSecurity.cs
+System.IO.Pipes/PipeStream.cs
+System.IO.Pipes/PipeStreamImpersonationWorker.cs
+System.IO.Pipes/PipeTransmissionMode.cs
+System.IO.Pipes/PipeUnix.cs
+System.IO.Pipes/PipeWin32.cs
+
+System.Security.Cryptography/AesCryptoServiceProvider.cs
+System.Security.Cryptography/AesTransform.cs
+System.Security.Cryptography/CngAlgorithm.cs
+System.Security.Cryptography/CngAlgorithmGroup.cs
+System.Security.Cryptography/MD5Cng.cs
+System.Security.Cryptography/SHA1Cng.cs
+System.Security.Cryptography/SHA256Cng.cs
+System.Security.Cryptography/SHA256CryptoServiceProvider.cs
+System.Security.Cryptography/SHA384Cng.cs
+System.Security.Cryptography/SHA384CryptoServiceProvider.cs
+System.Security.Cryptography/SHA512Cng.cs
+System.Security.Cryptography/SHA512CryptoServiceProvider.cs
+
+../../../external/referencesource/System.Core/System/Security/Cryptography/AesManaged.cs
+../../../external/referencesource/System.Core/System/Security/Cryptography/ECDiffieHellman.cs
+../../../external/referencesource/System.Core/System/Security/Cryptography/ECKeyXmlFormat.cs
+
+../../../external/referencesource/System.Core/System/threading/ReaderWriterLockSlim/LockRecursionException.cs
diff --git a/mcs/class/System.Core/xammac_net_4_5_System.Core.dll.sources b/mcs/class/System.Core/xammac_net_4_5_System.Core.dll.sources
new file mode 100644 (file)
index 0000000..89d524c
--- /dev/null
@@ -0,0 +1 @@
+#include net_4_5_System.Core.dll.sources
index ee325f1dc961c2c6b2f6aa289f4f4545c3d2ecb2..15a844302220191ab9f40559dc756fa481bd7bc0 100644 (file)
@@ -12,15 +12,6 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = src/DbLinq/Schema/Dbml/DbmlSchema.xsd
 
-# This is a .NET 3.5+ assembly
-VALID_PROFILE := $(filter net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.Data.Linq.dll
-NO_INSTALL = yes
-NO_SIGN_ASSEMBLY = yes
-NO_TEST = yes
-endif
-
 include ../../build/library.make
 
 dist-local: dist-default dist-DbLinq
index 267835e819ed2d55202a1e7f9fa5bec20781297b..108d98cf1499262eecf3a67dcca510a3d5711b57 100644 (file)
@@ -13,9 +13,11 @@ LIB_MCS_FLAGS = \
        -resource:Client/System.Data.Services.Client.resources \
        -warn:2
 
+ifndef NO_WINDOWS_BASE
 ifneq (2.1, $(FRAMEWORK_VERSION))
 LIB_REFS += WindowsBase
 endif
+endif
 
 include ../../build/library.make
 
index 80cd1dc87709a0ceb8b6f0936c2b03aa04638a81..6c862fd05ca3e5a86b3a5d81b602742abba5ec48 100644 (file)
@@ -1,4 +1,5 @@
 ./Assembly/AssemblyInfo.cs
+../../build/common/Consts.cs
 
 ./Client/Parameterized.System.Data.Services.Client.cs
 ./Client/System/Data/Services/Client/ALinq/DataServiceExpressionVisitor.cs
diff --git a/mcs/class/System.Data.Services.Client/mobile_System.Data.Services.Client.dll.sources b/mcs/class/System.Data.Services.Client/mobile_System.Data.Services.Client.dll.sources
deleted file mode 100644 (file)
index 37dc299..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include net_4_5_System.Data.Services.Client.dll.sources
diff --git a/mcs/class/System.Data.Services.Client/mobile_static_System.Data.Services.Client.dll.sources b/mcs/class/System.Data.Services.Client/mobile_static_System.Data.Services.Client.dll.sources
deleted file mode 100644 (file)
index 37dc299..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include net_4_5_System.Data.Services.Client.dll.sources
diff --git a/mcs/class/System.Data.Services.Client/monodroid_System.Data.Services.Client.dll.sources b/mcs/class/System.Data.Services.Client/monodroid_System.Data.Services.Client.dll.sources
deleted file mode 100644 (file)
index 37dc299..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include net_4_5_System.Data.Services.Client.dll.sources
diff --git a/mcs/class/System.Data.Services.Client/monotouch_System.Data.Services.Client.dll.sources b/mcs/class/System.Data.Services.Client/monotouch_System.Data.Services.Client.dll.sources
deleted file mode 100644 (file)
index 37dc299..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include net_4_5_System.Data.Services.Client.dll.sources
diff --git a/mcs/class/System.Data.Services.Client/net_2_0_System.Data.Services.Client.dll.sources b/mcs/class/System.Data.Services.Client/net_2_0_System.Data.Services.Client.dll.sources
deleted file mode 100644 (file)
index 4b95987..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#include System.Data.Services.Client.dll.sources
-
-./Client/AssemblyAttributes.cs
diff --git a/mcs/class/System.Data.Services.Client/net_4_0_System.Data.Services.Client.dll.sources b/mcs/class/System.Data.Services.Client/net_4_0_System.Data.Services.Client.dll.sources
deleted file mode 100644 (file)
index 675d388..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#include System.Data.Services.Client.dll.sources
-
-../../build/common/Consts.cs
-../../build/common/Locale.cs
-../../build/common/MonoTODOAttribute.cs
diff --git a/mcs/class/System.Data.Services.Client/net_4_5_System.Data.Services.Client.dll.sources b/mcs/class/System.Data.Services.Client/net_4_5_System.Data.Services.Client.dll.sources
deleted file mode 100644 (file)
index 23c59ad..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include net_4_0_System.Data.Services.Client.dll.sources
diff --git a/mcs/class/System.Data.Services.Client/xammac_System.Data.Services.Client.dll.sources b/mcs/class/System.Data.Services.Client/xammac_System.Data.Services.Client.dll.sources
deleted file mode 100644 (file)
index 37dc299..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include net_4_5_System.Data.Services.Client.dll.sources
index 6364648d29d8c3e86b9d6899f8dd00b039d8f17d..8d9d1678146883c28ddafdeb9bf10939cf3320e0 100644 (file)
 ./System.Data.Services/ServiceOperationRights.cs
 ./System.Data.Services/SingleResultAttribute.cs
 ./System.Data.Services/UpdateOperations.cs
+
+System.Data.Services/DataServiceBehavior.cs
+System.Data.Services/DataServiceConfiguration.cs
+System.Data.Services/DataServiceOperationContext.cs
+System.Data.Services/DataServiceProcessingPipeline.cs
+System.Data.Services/DataServiceProcessingPipelineEventArgs.cs
+System.Data.Services/IDataServiceHost2.cs
+
+System.Data.Services.Internal/ExpandedWrapper`10.cs
+System.Data.Services.Internal/ExpandedWrapper`11.cs
+System.Data.Services.Internal/ExpandedWrapper`12.cs
+System.Data.Services.Internal/ExpandedWrapper`13.cs
+System.Data.Services.Internal/ExpandedWrapper`1.cs
+System.Data.Services.Internal/ExpandedWrapper`2.cs
+System.Data.Services.Internal/ExpandedWrapper`3.cs
+System.Data.Services.Internal/ExpandedWrapper`4.cs
+System.Data.Services.Internal/ExpandedWrapper`5.cs
+System.Data.Services.Internal/ExpandedWrapper`6.cs
+System.Data.Services.Internal/ExpandedWrapper`7.cs
+System.Data.Services.Internal/ExpandedWrapper`8.cs
+System.Data.Services.Internal/ExpandedWrapper`9.cs
+System.Data.Services.Internal/ProjectedWrapper0.cs
+System.Data.Services.Internal/ProjectedWrapper1.cs
+System.Data.Services.Internal/ProjectedWrapper2.cs
+System.Data.Services.Internal/ProjectedWrapper3.cs
+System.Data.Services.Internal/ProjectedWrapper4.cs
+System.Data.Services.Internal/ProjectedWrapper5.cs
+System.Data.Services.Internal/ProjectedWrapper6.cs
+System.Data.Services.Internal/ProjectedWrapper7.cs
+System.Data.Services.Internal/ProjectedWrapper8.cs
+System.Data.Services.Internal/ProjectedWrapper.cs
+System.Data.Services.Internal/ProjectedWrapperMany.cs
+System.Data.Services.Internal/ProjectedWrapperManyEnd.cs
+
+System.Data.Services.Providers/DataServiceProviderMethods.cs
+System.Data.Services.Providers/IDataServiceMetadataProvider.cs
+System.Data.Services.Providers/IDataServicePagingProvider.cs
+System.Data.Services.Providers/IDataServiceQueryProvider.cs
+System.Data.Services.Providers/IDataServiceStreamProvider.cs
+System.Data.Services.Providers/IDataServiceUpdateProvider.cs
+System.Data.Services.Providers/OpenTypeMethods.cs
+System.Data.Services.Providers/ResourceAssociationSet.cs
+System.Data.Services.Providers/ResourceAssociationSetEnd.cs
+System.Data.Services.Providers/ResourceProperty.cs
+System.Data.Services.Providers/ResourcePropertyKind.cs
+System.Data.Services.Providers/ResourceSet.cs
+System.Data.Services.Providers/ResourceType.cs
+System.Data.Services.Providers/ResourceTypeKind.cs
+System.Data.Services.Providers/ServiceOperation.cs
+System.Data.Services.Providers/ServiceOperationParameter.cs
+System.Data.Services.Providers/ServiceOperationResultKind.cs
index 551f85339a2a8d6836a242e437b8ad27b62cea63..33bf1f4aba10e51bd65b44cba8c06d52f1f2ecf9 100644 (file)
@@ -24,7 +24,6 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.Data.Services.Providers;
@@ -164,4 +163,3 @@ namespace MonoTests.System.Data.Services.Providers
                }
        }
 }
-#endif
\ No newline at end of file
index 62d1e0ec2bb7aa6b1bb0664623ccaf134c0cf0b0..d38633c5bc99f2a799bbb828b80f12b6c8def37c 100644 (file)
@@ -24,7 +24,6 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.Data.Services.Providers;
@@ -132,4 +131,3 @@ namespace MonoTests.System.Data.Services.Providers
                }
        }
 }
-#endif
\ No newline at end of file
diff --git a/mcs/class/System.Data.Services/net_4_0_System.Data.Services.dll.sources b/mcs/class/System.Data.Services/net_4_0_System.Data.Services.dll.sources
deleted file mode 100644 (file)
index 57c4cb0..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#include System.Data.Services.dll.sources
-
-System.Data.Services/DataServiceBehavior.cs
-System.Data.Services/DataServiceConfiguration.cs
-System.Data.Services/DataServiceOperationContext.cs
-System.Data.Services/DataServiceProcessingPipeline.cs
-System.Data.Services/DataServiceProcessingPipelineEventArgs.cs
-System.Data.Services/IDataServiceHost2.cs
-
-System.Data.Services.Internal/ExpandedWrapper`10.cs
-System.Data.Services.Internal/ExpandedWrapper`11.cs
-System.Data.Services.Internal/ExpandedWrapper`12.cs
-System.Data.Services.Internal/ExpandedWrapper`13.cs
-System.Data.Services.Internal/ExpandedWrapper`1.cs
-System.Data.Services.Internal/ExpandedWrapper`2.cs
-System.Data.Services.Internal/ExpandedWrapper`3.cs
-System.Data.Services.Internal/ExpandedWrapper`4.cs
-System.Data.Services.Internal/ExpandedWrapper`5.cs
-System.Data.Services.Internal/ExpandedWrapper`6.cs
-System.Data.Services.Internal/ExpandedWrapper`7.cs
-System.Data.Services.Internal/ExpandedWrapper`8.cs
-System.Data.Services.Internal/ExpandedWrapper`9.cs
-System.Data.Services.Internal/ProjectedWrapper0.cs
-System.Data.Services.Internal/ProjectedWrapper1.cs
-System.Data.Services.Internal/ProjectedWrapper2.cs
-System.Data.Services.Internal/ProjectedWrapper3.cs
-System.Data.Services.Internal/ProjectedWrapper4.cs
-System.Data.Services.Internal/ProjectedWrapper5.cs
-System.Data.Services.Internal/ProjectedWrapper6.cs
-System.Data.Services.Internal/ProjectedWrapper7.cs
-System.Data.Services.Internal/ProjectedWrapper8.cs
-System.Data.Services.Internal/ProjectedWrapper.cs
-System.Data.Services.Internal/ProjectedWrapperMany.cs
-System.Data.Services.Internal/ProjectedWrapperManyEnd.cs
-
-System.Data.Services.Providers/DataServiceProviderMethods.cs
-System.Data.Services.Providers/IDataServiceMetadataProvider.cs
-System.Data.Services.Providers/IDataServicePagingProvider.cs
-System.Data.Services.Providers/IDataServiceQueryProvider.cs
-System.Data.Services.Providers/IDataServiceStreamProvider.cs
-System.Data.Services.Providers/IDataServiceUpdateProvider.cs
-System.Data.Services.Providers/OpenTypeMethods.cs
-System.Data.Services.Providers/ResourceAssociationSet.cs
-System.Data.Services.Providers/ResourceAssociationSetEnd.cs
-System.Data.Services.Providers/ResourceProperty.cs
-System.Data.Services.Providers/ResourcePropertyKind.cs
-System.Data.Services.Providers/ResourceSet.cs
-System.Data.Services.Providers/ResourceType.cs
-System.Data.Services.Providers/ResourceTypeKind.cs
-System.Data.Services.Providers/ServiceOperation.cs
-System.Data.Services.Providers/ServiceOperationParameter.cs
-System.Data.Services.Providers/ServiceOperationResultKind.cs
diff --git a/mcs/class/System.Data.Services/net_4_5_System.Data.Services.dll.sources b/mcs/class/System.Data.Services/net_4_5_System.Data.Services.dll.sources
deleted file mode 100644 (file)
index c6388cc..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include net_4_0_System.Data.Services.dll.sources
index 82f49a2804e2d4ce9d0e45094b19e8087c2b53b8..780efc5b59ee02cdc31852380b17617685a33080 100644 (file)
@@ -12,7 +12,7 @@ LIB_MCS_FLAGS = \
        -d:MONO_PARTIAL_DATA_IMPORT \
        -unsafe
 
-MOBILE := $(filter monotouch monodroid xammac mobile mobile_static, $(PROFILE))
+MOBILE := $(filter monotouch monotouch_watch monodroid xammac mobile mobile_static, $(PROFILE))
 ifdef MOBILE
 LIB_REFS += Mono.Data.Tds System.Transactions
 LIB_MCS_FLAGS += -d:NO_CODEDOM -d:NO_OLEDB -d:NO_ODBC -d:NO_CONFIGURATION
@@ -40,7 +40,7 @@ EXTRA_DISTFILES = \
        $(wildcard Test/System.Xml/*.xsd)               \
        Test/System.Data/schemas/ChangeLog      \
        $(wildcard Test/System.Data/schemas/*.xsd)              \
-       app_test_net_4_5.config                 \
+       app_test_net_4_x.config                 \
        Test/System.Data/binserialize/*.bin     \
        SqliteTest.db   \
        referencesource.sources
diff --git a/mcs/class/System.Data/Microsoft.SqlServer.Server/SqlDataRecord.cs b/mcs/class/System.Data/Microsoft.SqlServer.Server/SqlDataRecord.cs
new file mode 100644 (file)
index 0000000..b928fc4
--- /dev/null
@@ -0,0 +1,166 @@
+//
+// SqlDataRecord.cs
+//
+// Authors:
+//   Marek Safar (marek.safar@gmail.com)
+//
+// Copyright (C) 2015 Novell, Inc (http://www.xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+
+using System;
+using System.Data;
+using System.Data.SqlTypes;
+
+namespace Microsoft.SqlServer.Server 
+{
+       public sealed class SqlDataRecord : IDataRecord
+       {
+               public bool GetBoolean (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public byte GetByte (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public long GetBytes (int i, long fieldOffset, byte[] buffer, int bufferoffset, int length)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public char GetChar (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public long GetChars (int i, long fieldoffset, char[] buffer, int bufferoffset, int length)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public IDataReader GetData (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public string GetDataTypeName (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public DateTime GetDateTime (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public decimal GetDecimal (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public double GetDouble (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public System.Type GetFieldType (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public float GetFloat (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public Guid GetGuid (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public short GetInt16 (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public int GetInt32 (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public long GetInt64 (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public string GetName (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public int GetOrdinal (string name)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public string GetString (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public object GetValue (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public int GetValues (object[] values)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public bool IsDBNull (int i)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public int FieldCount {
+                       get {
+                               throw new NotImplementedException ();
+                       }
+               }
+
+               public object this [string index] {
+                       get {
+                               throw new NotImplementedException ();
+                       }
+               }
+
+               public object this [int index] {
+                       get {
+                               throw new NotImplementedException ();
+                       }
+               }
+       }
+}
\ No newline at end of file
index 982552769968b64b80de2b4238701ac20d10f0ce..a44a225534eee1f385f9f5b2ef5e9f5b07097656 100644 (file)
@@ -1307,7 +1307,6 @@ namespace MonoTests.System.Data
                        }
                }
                
-#if NET_4_0
                [Test]
                public void ImportRowTypeChangeTest ()
                {
@@ -1381,7 +1380,6 @@ namespace MonoTests.System.Data
                                }
                        }
                }
-#endif
                        
                [Test]
                public void ClearReset () //To test Clear and Reset methods
diff --git a/mcs/class/System.Data/app_test_net_4_5.config b/mcs/class/System.Data/app_test_net_4_5.config
deleted file mode 100644 (file)
index 4f31597..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-       <configSections>
-               <section name="system.data_test" 
-                       type="System.Data.Common.DbProviderFactoriesConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
-               <section name="connectionStrings_test"
-                       type="System.Configuration.ConnectionStringsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
-       </configSections>
-       <system.data>
-               <DbProviderFactories>
-                       <add name="ProviderTest2.Name"
-                               invariant="ProviderTest2.InvariantName"
-                               support="FF"
-                               description="ProviderTest2.Description"
-                               type="ProviderTest2.AssemblyQualifiedName"/>
-               </DbProviderFactories>
-       </system.data>
-       <system.data_test>
-               <DbProviderFactories>
-                       <add name="ProviderTest3.Name"
-                               invariant="ProviderTest3.InvariantName"
-                               support="FF"
-                               description="ProviderTest3.Description"
-                               type="ProviderTest3.AssemblyQualifiedName"/>
-                       <clear />
-                       <add name="ProviderTest4.Name"
-                               invariant="ProviderTest4.InvariantName"
-                               support="FF"
-                               description="ProviderTest4.Description"
-                               type="ProviderTest4.AssemblyQualifiedName"/>
-                       <add name="ProviderTest5.Name"
-                               invariant="ProviderTest5.InvariantName"
-                               support="FF"
-                               description="ProviderTest5.Description"
-                               type="ProviderTest5.AssemblyQualifiedName"/>
-                       <remove invariant="ProviderTest5.InvariantName" />
-                       <add name="ProviderTest.Name"
-                               invariant="ProviderTest.InvariantName"
-                               support="FF"
-                               description="ProviderTest.Description"
-                               type="ProviderTest.AssemblyQualifiedName"/>
-               </DbProviderFactories>
-       </system.data_test>
-       <connectionStrings_test>
-               <add name="Publications" providerName="System.Data.SqlClient" 
-                       connectionString="Data Source=MyServer;Initial Catalog=pubs;integrated security=SSPI" />
-       </connectionStrings_test>
-</configuration>
diff --git a/mcs/class/System.Data/app_test_net_4_x.config b/mcs/class/System.Data/app_test_net_4_x.config
new file mode 100644 (file)
index 0000000..4f31597
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+       <configSections>
+               <section name="system.data_test" 
+                       type="System.Data.Common.DbProviderFactoriesConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
+               <section name="connectionStrings_test"
+                       type="System.Configuration.ConnectionStringsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
+       </configSections>
+       <system.data>
+               <DbProviderFactories>
+                       <add name="ProviderTest2.Name"
+                               invariant="ProviderTest2.InvariantName"
+                               support="FF"
+                               description="ProviderTest2.Description"
+                               type="ProviderTest2.AssemblyQualifiedName"/>
+               </DbProviderFactories>
+       </system.data>
+       <system.data_test>
+               <DbProviderFactories>
+                       <add name="ProviderTest3.Name"
+                               invariant="ProviderTest3.InvariantName"
+                               support="FF"
+                               description="ProviderTest3.Description"
+                               type="ProviderTest3.AssemblyQualifiedName"/>
+                       <clear />
+                       <add name="ProviderTest4.Name"
+                               invariant="ProviderTest4.InvariantName"
+                               support="FF"
+                               description="ProviderTest4.Description"
+                               type="ProviderTest4.AssemblyQualifiedName"/>
+                       <add name="ProviderTest5.Name"
+                               invariant="ProviderTest5.InvariantName"
+                               support="FF"
+                               description="ProviderTest5.Description"
+                               type="ProviderTest5.AssemblyQualifiedName"/>
+                       <remove invariant="ProviderTest5.InvariantName" />
+                       <add name="ProviderTest.Name"
+                               invariant="ProviderTest.InvariantName"
+                               support="FF"
+                               description="ProviderTest.Description"
+                               type="ProviderTest.AssemblyQualifiedName"/>
+               </DbProviderFactories>
+       </system.data_test>
+       <connectionStrings_test>
+               <add name="Publications" providerName="System.Data.SqlClient" 
+                       connectionString="Data Source=MyServer;Initial Catalog=pubs;integrated security=SSPI" />
+       </connectionStrings_test>
+</configuration>
index 711da3815b908fbc127d1a374bb087a8fb0da653..039be567cdb81551c4cdd3c3a8278f67616a2e93 100644 (file)
@@ -14,7 +14,9 @@ ReferenceSources/SqlInternalConnectionTds.cs
 
 ReferenceSources/mobile_DbConnectionPoolCounters.cs
 
+Microsoft.SqlServer.Server/SqlDataRecord.cs
 Microsoft.SqlServer.Server/SqlMetaData.cs
+
 System.Data.SqlClient/SortOrder.cs
 System.Data.SqlClient/SqlNotificationType.cs
 System.Data.SqlClient/SqlNotificationInfo.cs
diff --git a/mcs/class/System.Data/monotouch_watch_System.Data.dll.sources b/mcs/class/System.Data/monotouch_watch_System.Data.dll.sources
new file mode 100644 (file)
index 0000000..bbc860b
--- /dev/null
@@ -0,0 +1 @@
+#include mobile_System.Data.dll.sources
diff --git a/mcs/class/System.Data/net_4_5_System.Data.dll.sources b/mcs/class/System.Data/net_4_5_System.Data.dll.sources
deleted file mode 100644 (file)
index 05666a9..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-Assembly/AssemblyInfo.cs
-../../build/common/Consts.cs.in
-../../build/common/Locale.cs
-../../build/common/SR.cs
-../../build/common/MonoTODOAttribute.cs
-
-ReferenceSources/NativeOledbWrapper.cs
-ReferenceSources/Res.cs
-ReferenceSources/ResCategoryAttribute.cs
-ReferenceSources/ResDescriptionAttribute.cs
-ReferenceSources/ThisAssembly.cs
-ReferenceSources/Win32NativeMethods.cs
-ReferenceSources/SqlInternalConnectionTds.cs
-
-Microsoft.SqlServer.Server/SqlMetaData.cs
-System.Data.SqlClient/SortOrder.cs
-System.Data.SqlClient/SqlNotificationType.cs
-System.Data.SqlClient/SqlNotificationInfo.cs
-System.Data.SqlClient/SqlNotificationSource.cs
-System.Data.SqlClient/SqlAsyncState.cs
-System.Data.SqlClient/SqlAsyncResult.cs
-System.Data.SqlClient/SqlClientMetaDataCollectionNames.cs
-System.Data.SqlClient/SqlCommand.cs
-System.Data.SqlClient/SqlCommandBuilder.cs
-System.Data.SqlClient/SqlConnection.cs
-System.Data.SqlClient/SqlCredential.cs
-System.Data.SqlClient/SqlDataAdapter.cs
-System.Data.SqlClient/SqlDataReader.cs
-System.Data.SqlClient/SqlDataSourceConverter.cs
-System.Data.SqlClient/SqlDependency.cs
-System.Data.SqlClient/SqlException.cs
-System.Data.SqlClient/SqlInfoMessageEventHandler.cs
-System.Data.SqlClient/SqlInitialCatalogConverter.cs
-System.Data.SqlClient/NetworkLibraryConverter.cs
-System.Data.SqlClient/SqlParameter.cs
-System.Data.SqlClient/SqlParameterCollection.cs
-System.Data.SqlClient/SqlParameterConverter.cs
-System.Data.SqlClient/SqlRowUpdatedEventArgs.cs
-System.Data.SqlClient/SqlRowUpdatedEventHandler.cs
-System.Data.SqlClient/SqlRowUpdatingEventArgs.cs
-System.Data.SqlClient/SqlRowUpdatingEventHandler.cs
-System.Data.SqlClient/SqlTransaction.cs
-System.Data.SqlClient/SqlXmlTextReader.cs
-System.Data.SqlClient/SQLDebugging.cs
-System.Data.SqlClient/SqlClientFactory.cs
-System.Data.SqlClient/SqlBulkCopy.cs
-System.Data.SqlClient/SqlBulkCopyOptions.cs
-System.Data.SqlClient/SqlBulkCopyColumnMapping.cs
-System.Data.SqlClient/SqlBulkCopyColumnMappingCollection.cs
-System.Data.SqlClient/SqlRowsCopiedEventHandler.cs
-System.Data.SqlClient/SqlRowsCopiedEventArgs.cs
-System.Data.SqlClient/SqlNotificationEventArgs.cs
-System.Data.SqlClient/OnChangeEventHandler.cs
-System.Data.SqlClient/SqlDecimalExtensions.cs
-
-System.Data.Common/DbTypes.cs
-System.Data.Common/ExceptionHelper.cs
-System.Data.Common/DbConnectionStringBuilderHelper.cs
-
-#include referencesource.sources
diff --git a/mcs/class/System.Data/net_4_x_System.Data.dll.sources b/mcs/class/System.Data/net_4_x_System.Data.dll.sources
new file mode 100644 (file)
index 0000000..853e1ff
--- /dev/null
@@ -0,0 +1,61 @@
+Assembly/AssemblyInfo.cs
+../../build/common/Consts.cs
+../../build/common/Locale.cs
+../../build/common/SR.cs
+../../build/common/MonoTODOAttribute.cs
+
+ReferenceSources/NativeOledbWrapper.cs
+ReferenceSources/Res.cs
+ReferenceSources/ResCategoryAttribute.cs
+ReferenceSources/ResDescriptionAttribute.cs
+ReferenceSources/ThisAssembly.cs
+ReferenceSources/Win32NativeMethods.cs
+ReferenceSources/SqlInternalConnectionTds.cs
+
+Microsoft.SqlServer.Server/SqlDataRecord.cs
+Microsoft.SqlServer.Server/SqlMetaData.cs
+System.Data.SqlClient/SortOrder.cs
+System.Data.SqlClient/SqlNotificationType.cs
+System.Data.SqlClient/SqlNotificationInfo.cs
+System.Data.SqlClient/SqlNotificationSource.cs
+System.Data.SqlClient/SqlAsyncState.cs
+System.Data.SqlClient/SqlAsyncResult.cs
+System.Data.SqlClient/SqlClientMetaDataCollectionNames.cs
+System.Data.SqlClient/SqlCommand.cs
+System.Data.SqlClient/SqlCommandBuilder.cs
+System.Data.SqlClient/SqlConnection.cs
+System.Data.SqlClient/SqlCredential.cs
+System.Data.SqlClient/SqlDataAdapter.cs
+System.Data.SqlClient/SqlDataReader.cs
+System.Data.SqlClient/SqlDataSourceConverter.cs
+System.Data.SqlClient/SqlDependency.cs
+System.Data.SqlClient/SqlException.cs
+System.Data.SqlClient/SqlInfoMessageEventHandler.cs
+System.Data.SqlClient/SqlInitialCatalogConverter.cs
+System.Data.SqlClient/NetworkLibraryConverter.cs
+System.Data.SqlClient/SqlParameter.cs
+System.Data.SqlClient/SqlParameterCollection.cs
+System.Data.SqlClient/SqlParameterConverter.cs
+System.Data.SqlClient/SqlRowUpdatedEventArgs.cs
+System.Data.SqlClient/SqlRowUpdatedEventHandler.cs
+System.Data.SqlClient/SqlRowUpdatingEventArgs.cs
+System.Data.SqlClient/SqlRowUpdatingEventHandler.cs
+System.Data.SqlClient/SqlTransaction.cs
+System.Data.SqlClient/SqlXmlTextReader.cs
+System.Data.SqlClient/SQLDebugging.cs
+System.Data.SqlClient/SqlClientFactory.cs
+System.Data.SqlClient/SqlBulkCopy.cs
+System.Data.SqlClient/SqlBulkCopyOptions.cs
+System.Data.SqlClient/SqlBulkCopyColumnMapping.cs
+System.Data.SqlClient/SqlBulkCopyColumnMappingCollection.cs
+System.Data.SqlClient/SqlRowsCopiedEventHandler.cs
+System.Data.SqlClient/SqlRowsCopiedEventArgs.cs
+System.Data.SqlClient/SqlNotificationEventArgs.cs
+System.Data.SqlClient/OnChangeEventHandler.cs
+System.Data.SqlClient/SqlDecimalExtensions.cs
+
+System.Data.Common/DbTypes.cs
+System.Data.Common/ExceptionHelper.cs
+System.Data.Common/DbConnectionStringBuilderHelper.cs
+
+#include referencesource.sources
diff --git a/mcs/class/System.Data/xammac_net_4_5_System.Data.dll.sources b/mcs/class/System.Data/xammac_net_4_5_System.Data.dll.sources
new file mode 100644 (file)
index 0000000..597245c
--- /dev/null
@@ -0,0 +1 @@
+#include net_4_5_System.Data.dll.sources
index 7f1201b75a008ade61bc4163ef10c99e564038fe..a84d4341befd7b2cbbc3fe1e8e1d6640c06ca6c9 100644 (file)
@@ -14,7 +14,7 @@ $(DRAWING_TEST_HELPER):
        cp ../DrawingTestHelper/*.dll .
 
 run-test: Test.dll
-       MONO_PATH="../../../../../class/lib/net_4_5::$(MONO_PATH)" /home/andrews/monobuild/mono/runtime/mono-wrapper --debug ../../../../../class/lib/net_4_5/nunit-console.exe Test.dll $(NUNIT_FLAGS)
+       MONO_PATH="../../../../../class/lib/net_4_x::$(MONO_PATH)" /home/andrews/monobuild/mono/runtime/mono-wrapper --debug ../../../../../class/lib/net_4_x/nunit-console.exe Test.dll $(NUNIT_FLAGS)
 
 clean:
        rm *dll
index f0be3b0bc06132f34bd7b0794d5ca55acb467a1d..96af8c4131db2de4bf4b2d0d0b949f2ca6af6278 100644 (file)
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
+using System.Text;
 using SharpCompress.Common;
 
 namespace SharpCompress.Archive
@@ -105,11 +106,11 @@ namespace SharpCompress.Archive
             return false;
         }
 
-        public void SaveTo(Stream stream, CompressionInfo compressionType)
+        public void SaveTo(Stream stream, CompressionInfo compressionType, Encoding encoding = null)
         {
             //reset streams of new entries
             newEntries.Cast<IWritableArchiveEntry>().ForEach(x => x.Stream.Seek(0, SeekOrigin.Begin));
-            SaveTo(stream, compressionType, OldEntries, newEntries);
+            SaveTo(stream, compressionType, encoding ?? ArchiveEncoding.Default, OldEntries, newEntries);
         }
 
         protected TEntry CreateEntry(string key, Stream source, long size, DateTime? modified,
@@ -125,7 +126,7 @@ namespace SharpCompress.Archive
         protected abstract TEntry CreateEntryInternal(string key, Stream source, long size, DateTime? modified,
                                               bool closeStream);
 
-        protected abstract void SaveTo(Stream stream, CompressionInfo compressionType,
+        protected abstract void SaveTo(Stream stream, CompressionInfo compressionType, Encoding encoding,
                                        IEnumerable<TEntry> oldEntries, IEnumerable<TEntry> newEntries);
 
         public override void Dispose()
index 5c96e8e55543ff9600024a7fdacc1caac6ed210c..e2782dad9ec3ed05163b7cb99bc5af52f02a1f54 100644 (file)
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
+using System.Text;
 using SharpCompress.Common;
 using SharpCompress.Common.Zip;
 using SharpCompress.Common.Zip.Headers;
@@ -205,13 +206,13 @@ namespace SharpCompress.Archive.Zip
                     }
                 }
             }
-        }
+        }     
 
-        protected override void SaveTo(Stream stream, CompressionInfo compressionInfo,
+        protected override void SaveTo(Stream stream, CompressionInfo compressionInfo, Encoding encoding,
                                        IEnumerable<ZipArchiveEntry> oldEntries,
                                        IEnumerable<ZipArchiveEntry> newEntries)
         {
-            using (var writer = new ZipWriter(stream, compressionInfo, string.Empty))
+            using (var writer = new ZipWriter(stream, compressionInfo, string.Empty, encoding))
             {
                 foreach (var entry in oldEntries.Concat(newEntries)
                                                 .Where(x => !x.IsDirectory))
index 76a8853d0a05b03a39fdc4cec6eb4bb1e1a306ec..70a2eb7d8c4f103c144008895004176361d72d19 100644 (file)
@@ -30,16 +30,18 @@ namespace SharpCompress.Writer.Zip
 
         private readonly List<ZipCentralDirectoryEntry> entries = new List<ZipCentralDirectoryEntry>();
         private readonly string zipComment;
+        private readonly Encoding encoding;
         private long streamPosition;
 
 #if PPMd
         private readonly PpmdProperties ppmdProperties; // Caching properties to speed up PPMd.
 #endif
 
-        public ZipWriter(Stream destination, CompressionInfo compressionInfo, string zipComment)
+        public ZipWriter(Stream destination, CompressionInfo compressionInfo, string zipComment, Encoding encoding = null)
             : base(ArchiveType.Zip)
         {
             this.zipComment = zipComment ?? string.Empty;
+            this.encoding = encoding ?? ArchiveEncoding.Default;
 
             switch (compressionInfo.Type)
             {
@@ -137,11 +139,11 @@ namespace SharpCompress.Writer.Zip
 
         private int WriteHeader(string filename, DateTime? modificationTime)
         {
-            byte[] encodedFilename = Encoding.UTF8.GetBytes(filename);
+            byte[] encodedFilename = encoding.GetBytes(filename);
 
             OutputStream.Write(BitConverter.GetBytes(ZipHeaderFactory.ENTRY_HEADER_BYTES), 0, 4);
             OutputStream.Write(new byte[] {63, 0}, 0, 2); //version
-            HeaderFlags flags = HeaderFlags.UTF8;
+            HeaderFlags flags = encoding == Encoding.UTF8 ? HeaderFlags.UTF8 : (HeaderFlags)0;
             if (!OutputStream.CanSeek)
             {
                 flags |= HeaderFlags.UsePostDataDescriptor;
@@ -172,7 +174,7 @@ namespace SharpCompress.Writer.Zip
 
         private void WriteEndRecord(uint size)
         {
-            byte[] encodedComment = Encoding.UTF8.GetBytes(zipComment);
+            byte[] encodedComment = encoding.GetBytes(zipComment);
 
             OutputStream.Write(new byte[] {80, 75, 5, 6, 0, 0, 0, 0}, 0, 8);
             OutputStream.Write(BitConverter.GetBytes((ushort) entries.Count), 0, 2);
index feb5e1b705dec780327d9b62586094ac7bfc1faa..411aadc930f86c2c424f981fc12d0437a01862ca 100644 (file)
@@ -202,7 +202,7 @@ namespace System.IO.Compression
                private void Save()
                {
                        using (var newZip = new MemoryStream()) {
-                               zipFile.SaveTo(newZip, CompressionType.Deflate);
+                               zipFile.SaveTo(newZip, CompressionType.Deflate, entryNameEncoding ?? Encoding.UTF8);
 
                                stream.SetLength(0);
                                stream.Position = 0;
index de65914ecf0560553538efc9a7b28ea4fcbddb39..bb7ade20bbc02b3d0b697292a0d74fe2f85eeeae 100644 (file)
@@ -10,12 +10,4 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES =
 
-VALID_PROFILE := $(filter net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.IdentityModel.Selectors.dll
-NO_INSTALL = yes
-NO_SIGN_ASSEMBLY = yes
-NO_TEST = yes
-endif
-
 include ../../build/library.make
index 2bafd5b21867e430b814d112e42fb05ffecf7430..9bf7e1d5877a04ff18d63b6b9fe8002f11023ab6 100644 (file)
@@ -2,16 +2,22 @@ thisdir = class/System.IdentityModel
 SUBDIRS = 
 include ../../build/rules.make
 
+ifndef NO_SYSTEM_WEB_APPSERVICES_DEPENDENCY
 ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
 OTHER_LIB_MCS_FLAGS = -r:System.Web.ApplicationServices.dll
 endif
+endif
 
 LIBRARY = System.IdentityModel.dll
-LIB_REFS = System System.Xml System.Security System.Web System.Configuration Mono.Security System.Runtime.Serialization
+LIB_REFS = System System.Xml System.Security System.Configuration Mono.Security System.Runtime.Serialization
 LIB_MCS_FLAGS = \
                /d:NET_3_0      \
                $(OTHER_LIB_MCS_FLAGS)
 
+ifndef NO_SYSTEM_WEB_DEPENDENCY
+LIB_REFS += System.Web
+endif
+
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = \
@@ -20,12 +26,4 @@ EXTRA_DISTFILES = \
        Test/Resources/test.pfx \
        Test/Resources/test2.pfx
 
-VALID_PROFILE := $(filter net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.IdentityModel.dll
-NO_INSTALL = yes
-NO_SIGN_ASSEMBLY = yes
-NO_TEST = yes
-endif
-
 include ../../build/library.make
index 7a93f65dc15d3330c48dd3c6bcf2cd568cb1881d..f84843e362d776d74f38a71fd1d6f403febf8d42 100644 (file)
@@ -1,3 +1,4 @@
+#if !NO_SYSTEM_WEB_DEPENDENCY
 //
 // CustomUserNameSecurityTokenAuthenticator.cs
 //
@@ -133,3 +134,4 @@ namespace System.IdentityModel.Selectors
                }
        }
 }
+#endif
\ No newline at end of file
index 2111c1082bdd1532e5c6fc62aea8544015e1cf16..c8a426e801b158381bff4a257a35d31933c9e61d 100644 (file)
@@ -1,3 +1,4 @@
+#if !NO_SYSTEM_WEB_DEPENDENCY
 //
 // UserNamePasswordValidator.cs
 //
@@ -80,3 +81,4 @@ namespace System.IdentityModel.Selectors
                }
        }
 }
+#endif
\ No newline at end of file
index 8fa6632c72a584dd7d63db07471fa7004b1d2b3a..5813d31276b6e8ed22d1ca84b29e7c572ff00250 100644 (file)
@@ -19,13 +19,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args
 
-VALID_PROFILE := $(filter monotouch monodroid mobile mobile_static xammac net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.System.Interactive.Async.dll
-NO_SIGN_ASSEMBLY = yes
-endif
-
-INSTALL_PROFILE := $(filter net_4_5, $(PROFILE))
+INSTALL_PROFILE := $(filter net_4_x, $(PROFILE))
 ifndef INSTALL_PROFILE
 NO_INSTALL = yes
 endif
index a6381f50d89b11863876b36f5a677b4e11688d30..71d92cbd728fe0fa0de8d44dc6b3af9054a37ba7 100644 (file)
@@ -19,13 +19,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args
 
-VALID_PROFILE := $(filter monotouch monodroid xammac mobile mobile_static net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.System.Interactive.Providers.dll
-NO_SIGN_ASSEMBLY = yes
-endif
-
-INSTALL_PROFILE := $(filter net_4_5, $(PROFILE))
+INSTALL_PROFILE := $(filter net_4_x, $(PROFILE))
 ifndef INSTALL_PROFILE
 NO_INSTALL = yes
 endif
index b28f3b343df7f41324962736d2c0045c4ba085f5..83def3c2ea594b55e99e703e640fbe41593f5a87 100644 (file)
@@ -19,13 +19,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args
 
-VALID_PROFILE := $(filter monotouch monodroid xammac mobile mobile_static net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.System.Interactive.dll
-NO_SIGN_ASSEMBLY = yes
-endif
-
-INSTALL_PROFILE := $(filter net_4_5, $(PROFILE))
+INSTALL_PROFILE := $(filter net_4_x, $(PROFILE))
 ifndef INSTALL_PROFILE
 NO_INSTALL = yes
 endif
index f16983c58cb0fa2dfe91cdc75e920c57b2de1d82..4a4b5c80e6807943bf0eb33b140b8804e515eb37 100644 (file)
@@ -10,13 +10,4 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES =
 
-VALID_PROFILE := $(filter 2 4, $(FRAMEWORK_VERSION_MAJOR))
-
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.Json.dll
-NO_INSTALL = yes
-NO_SIGN_ASSEMBLY = yes
-NO_TEST = yes
-endif
-
 include ../../build/library.make
index 47a9ceed63acc60eeff70671bb6a16c17d727b69..3eee0529785a4a9538f2b154b3cd3766d7317983 100644 (file)
@@ -5,4 +5,4 @@ System.Json/JsonObject.cs
 System.Json/JsonPrimitive.cs
 System.Json/JsonType.cs
 System.Json/JsonValue.cs
-../System.ServiceModel.Web/System.Runtime.Serialization.Json/JavaScriptReader.cs
\ No newline at end of file
+System.Json/JavaScriptReader.cs
\ No newline at end of file
diff --git a/mcs/class/System.Json/System.Json/JavaScriptReader.cs b/mcs/class/System.Json/System.Json/JavaScriptReader.cs
new file mode 100644 (file)
index 0000000..3e97c0b
--- /dev/null
@@ -0,0 +1,333 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.IO;
+using System.Linq;
+using System.Text;
+
+namespace System.Runtime.Serialization.Json
+{
+       internal class JavaScriptReader
+       {
+               TextReader r;
+               int line = 1, column = 0;
+//             bool raise_on_number_error; // FIXME: use it
+
+               public JavaScriptReader (TextReader reader, bool raiseOnNumberError)
+               {
+                       if (reader == null)
+                               throw new ArgumentNullException ("reader");
+                       this.r = reader;
+//                     raise_on_number_error = raiseOnNumberError;
+               }
+
+               public object Read ()
+               {
+                       object v = ReadCore ();
+                       SkipSpaces ();
+                       if (ReadChar () >= 0)
+                               throw JsonError (String.Format ("extra characters in JSON input"));
+                       return v;
+               }
+
+               object ReadCore ()
+               {
+                       SkipSpaces ();
+                       int c = PeekChar ();
+                       if (c < 0)
+                               throw JsonError ("Incomplete JSON input");
+                       switch (c) {
+                       case '[':
+                               ReadChar ();
+                               var list = new List<object> ();
+                               SkipSpaces ();
+                               if (PeekChar () == ']') {
+                                       ReadChar ();
+                                       return list;
+                               }
+                               while (true) {
+                                       list.Add (ReadCore ());
+                                       SkipSpaces ();
+                                       c = PeekChar ();
+                                       if (c != ',')
+                                               break;
+                                       ReadChar ();
+                                       continue;
+                               }
+                               if (ReadChar () != ']')
+                                       throw JsonError ("JSON array must end with ']'");
+                               return list.ToArray ();
+                       case '{':
+                               ReadChar ();
+                               var obj = new Dictionary<string,object> ();
+                               SkipSpaces ();
+                               if (PeekChar () == '}') {
+                                       ReadChar ();
+                                       return obj;
+                               }
+                               while (true) {
+                                       SkipSpaces ();
+                                       if (PeekChar () == '}') {
+                                               ReadChar ();
+                                               break;
+                                       }
+                                       string name = ReadStringLiteral ();
+                                       SkipSpaces ();
+                                       Expect (':');
+                                       SkipSpaces ();
+                                       obj [name] = ReadCore (); // it does not reject duplicate names.
+                                       SkipSpaces ();
+                                       c = ReadChar ();
+                                       if (c == ',')
+                                               continue;
+                                       if (c == '}')
+                                               break;
+                               }
+#if MONOTOUCH
+                               int idx = 0;
+                               KeyValuePair<string, object> [] ret = new KeyValuePair<string, object>[obj.Count];
+                               foreach (KeyValuePair <string, object> kvp in obj)
+                                       ret [idx++] = kvp;
+
+                               return ret;
+#else
+                               return obj.ToArray ();
+#endif
+                       case 't':
+                               Expect ("true");
+                               return true;
+                       case 'f':
+                               Expect ("false");
+                               return false;
+                       case 'n':
+                               Expect ("null");
+                               // FIXME: what should we return?
+                               return (string) null;
+                       case '"':
+                               return ReadStringLiteral ();
+                       default:
+                               if ('0' <= c && c <= '9' || c == '-')
+                                       return ReadNumericLiteral ();
+                               else
+                                       throw JsonError (String.Format ("Unexpected character '{0}'", (char) c));
+                       }
+               }
+
+               int peek;
+               bool has_peek;
+               bool prev_lf;
+
+               int PeekChar ()
+               {
+                       if (!has_peek) {
+                               peek = r.Read ();
+                               has_peek = true;
+                       }
+                       return peek;
+               }
+
+               int ReadChar ()
+               {
+                       int v = has_peek ? peek : r.Read ();
+
+                       has_peek = false;
+
+                       if (prev_lf) {
+                               line++;
+                               column = 0;
+                               prev_lf = false;
+                       }
+
+                       if (v == '\n')
+                               prev_lf = true;
+                       column++;
+
+                       return v;
+               }
+
+               void SkipSpaces ()
+               {
+                       while (true) {
+                               switch (PeekChar ()) {
+                               case ' ': case '\t': case '\r': case '\n':
+                                       ReadChar ();
+                                       continue;
+                               default:
+                                       return;
+                               }
+                       }
+               }
+
+               // It could return either int, long or decimal, depending on the parsed value.
+               object ReadNumericLiteral ()
+               {
+                       var sb = new StringBuilder ();
+                       
+                       if (PeekChar () == '-') {
+                               sb.Append ((char) ReadChar ());
+                       }
+
+                       int c;
+                       int x = 0;
+                       bool zeroStart = PeekChar () == '0';
+                       for (; ; x++) {
+                               c = PeekChar ();
+                               if (c < '0' || '9' < c)
+                                       break;
+                               sb.Append ((char) ReadChar ());
+                               if (zeroStart && x == 1)
+                                       throw JsonError ("leading zeros are not allowed");
+                       }
+                       if (x == 0) // Reached e.g. for "- "
+                               throw JsonError ("Invalid JSON numeric literal; no digit found");
+
+                       // fraction
+                       bool hasFrac = false;
+                       int fdigits = 0;
+                       if (PeekChar () == '.') {
+                               hasFrac = true;
+                               sb.Append ((char) ReadChar ());
+                               if (PeekChar () < 0)
+                                       throw JsonError ("Invalid JSON numeric literal; extra dot");
+                               while (true) {
+                                       c = PeekChar ();
+                                       if (c < '0' || '9' < c)
+                                               break;
+                                       sb.Append ((char) ReadChar ());
+                                       fdigits++;
+                               }
+                               if (fdigits == 0)
+                                       throw JsonError ("Invalid JSON numeric literal; extra dot");
+                       }
+
+                       c = PeekChar ();
+                       if (c != 'e' && c != 'E') {
+                               if (!hasFrac) {
+                                       int valueInt;
+                                       if (int.TryParse (sb.ToString (), NumberStyles.Float, CultureInfo.InvariantCulture, out valueInt))
+                                               return valueInt;
+                                       
+                                       long valueLong;
+                                       if (long.TryParse (sb.ToString (), NumberStyles.Float, CultureInfo.InvariantCulture, out valueLong))
+                                               return valueLong;
+                                       
+                                       ulong valueUlong;
+                                       if (ulong.TryParse (sb.ToString (), NumberStyles.Float, CultureInfo.InvariantCulture, out valueUlong))
+                                               return valueUlong;
+                               }
+                               decimal valueDecimal;
+                               if (decimal.TryParse (sb.ToString (), NumberStyles.Float, CultureInfo.InvariantCulture, out valueDecimal) && valueDecimal != 0)
+                                       return valueDecimal;
+                       } else {
+                               // exponent
+                               sb.Append ((char) ReadChar ());
+                               if (PeekChar () < 0)
+                                       throw new ArgumentException ("Invalid JSON numeric literal; incomplete exponent");
+                       
+                               c = PeekChar ();
+                               if (c == '-') {
+                                       sb.Append ((char) ReadChar ());
+                               }
+                               else if (c == '+')
+                                       sb.Append ((char) ReadChar ());
+
+                               if (PeekChar () < 0)
+                                       throw JsonError ("Invalid JSON numeric literal; incomplete exponent");
+                               while (true) {
+                                       c = PeekChar ();
+                                       if (c < '0' || '9' < c)
+                                               break;
+                                       sb.Append ((char) ReadChar ());
+                               }
+                       }
+
+                       return double.Parse (sb.ToString (), NumberStyles.Float, CultureInfo.InvariantCulture);
+               }
+
+               StringBuilder vb = new StringBuilder ();
+
+               string ReadStringLiteral ()
+               {
+                       if (PeekChar () != '"')
+                               throw JsonError ("Invalid JSON string literal format");
+
+                       ReadChar ();
+                       vb.Length = 0;
+                       while (true) {
+                               int c = ReadChar ();
+                               if (c < 0)
+                                       throw JsonError ("JSON string is not closed");
+                               if (c == '"')
+                                       return vb.ToString ();
+                               else if (c != '\\') {
+                                       vb.Append ((char) c);
+                                       continue;
+                               }
+
+                               // escaped expression
+                               c = ReadChar ();
+                               if (c < 0)
+                                       throw JsonError ("Invalid JSON string literal; incomplete escape sequence");
+                               switch (c) {
+                               case '"':
+                               case '\\':
+                               case '/':
+                                       vb.Append ((char) c);
+                                       break;
+                               case 'b':
+                                       vb.Append ('\x8');
+                                       break;
+                               case 'f':
+                                       vb.Append ('\f');
+                                       break;
+                               case 'n':
+                                       vb.Append ('\n');
+                                       break;
+                               case 'r':
+                                       vb.Append ('\r');
+                                       break;
+                               case 't':
+                                       vb.Append ('\t');
+                                       break;
+                               case 'u':
+                                       ushort cp = 0;
+                                       for (int i = 0; i < 4; i++) {
+                                               cp <<= 4;
+                                               if ((c = ReadChar ()) < 0)
+                                                       throw JsonError ("Incomplete unicode character escape literal");
+                                               if ('0' <= c && c <= '9')
+                                                       cp += (ushort) (c - '0');
+                                               if ('A' <= c && c <= 'F')
+                                                       cp += (ushort) (c - 'A' + 10);
+                                               if ('a' <= c && c <= 'f')
+                                                       cp += (ushort) (c - 'a' + 10);
+                                       }
+                                       vb.Append ((char) cp);
+                                       break;
+                               default:
+                                       throw JsonError ("Invalid JSON string literal; unexpected escape character");
+                               }
+                       }
+               }
+
+               void Expect (char expected)
+               {
+                       int c;
+                       if ((c = ReadChar ()) != expected)
+                               throw JsonError (String.Format ("Expected '{0}', got '{1}'", expected, (char) c));
+               }
+
+               void Expect (string expected)
+               {
+                       for (int i = 0; i < expected.Length; i++)
+                               if (ReadChar () != expected [i])
+                                       throw JsonError (String.Format ("Expected '{0}', differed at {1}", expected, i));
+               }
+
+               Exception JsonError (string msg)
+               {
+                       return new ArgumentException (String.Format ("{0}. At line {1}, column {2}", msg, line, column));
+               }
+       }
+}
index 6a4b96a572d0d9bf561463296fdf028dd790d694..4cf4c29ab083040b47ed92087f5c42d22d0fdd2a 100644 (file)
@@ -3,15 +3,22 @@ SUBDIRS =
 include ../../build/rules.make
 
 LIBRARY = System.Messaging.dll
-LIB_REFS = System System.Configuration.Install System.Drawing System.Windows.Forms System.Xml Mono.Messaging
+LIB_REFS = System System.Xml Mono.Messaging System.Configuration.Install
+
+ifndef NO_SYSTEM_DRAWING_DEPENDENCY
+LIB_REFS += System.Drawing
+endif
+
 LIB_MCS_FLAGS = /resource:System.Messaging/MessageQueue.resx
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618 -nowarn:219 -nowarn:169 \
                /r:nunit.mocks.dll
 
 EXTRA_DISTFILES = System.Messaging/MessageQueue.resx
 
-ifdef MESSAGING_NO_WINFORMS
+ifdef NO_WINFORMS_DEPENDENCY
 LIB_MCS_FLAGS += -d:NO_WINFORMS_DEPENDENCY
+else
+LIB_REFS += System.Windows.Forms
 endif
 
 include ../../build/library.make
index d50c600ada0e447577b1671fea9c1521f4739b6d..88d8608d58c9dd1c5e8ab7419ed97c1f12b3f301 100644 (file)
@@ -28,6 +28,7 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
+#if !NO_SYSTEM_DRAWING_DEPENDENCY
 using System.ComponentModel;
 using System.Drawing.Design;
 
@@ -53,3 +54,4 @@ namespace System.Messaging.Design
                }
        }
 }
+#endif
\ No newline at end of file
index 8b3481b9d3e53b1b0f43ac72eecbe1945284bc5b..7286d059121ee1a54da191284e02ffb302d02ca3 100644 (file)
@@ -32,7 +32,9 @@
 using System;
 using System.Collections;
 using System.ComponentModel;
+#if !NO_SYSTEM_DRAWING_DEPENDENCY
 using System.Drawing;
+#endif
 using System.Messaging.Design;
 using System.Threading;
 
@@ -258,7 +260,9 @@ namespace System.Messaging
                }
 
                [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+#if !NO_SYSTEM_DRAWING_DEPENDENCY
                [TypeConverter (typeof(SizeConverter))]
+#endif
                [MessagingDescription ("MQ_MaximumJournalSize")]
                public long MaximumJournalSize {
                        get {
@@ -270,7 +274,9 @@ namespace System.Messaging
                }
 
                [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+#if !NO_SYSTEM_DRAWING_DEPENDENCY
                [TypeConverter (typeof(SizeConverter))]
+#endif
                [MessagingDescription ("MQ_MaximumQueueSize")]
                public long MaximumQueueSize {
                        get {
index d3b9889a80d6f839569383563af4e4a2b4d8071f..4606e5ebd13f201f53cf20751b9105a245c8e04d 100644 (file)
@@ -31,7 +31,9 @@ using System;
 using System.Collections;
 using System.ComponentModel;
 using System.Configuration.Install;
+#if !NO_SYSTEM_DRAWING_DEPENDENCY
 using System.Drawing;
+#endif
 
 namespace System.Messaging 
 {
@@ -88,7 +90,9 @@ namespace System.Messaging
                        set {throw new NotImplementedException();}
                }
 
+#if !NO_SYSTEM_DRAWING_DEPENDENCY
                [TypeConverter (typeof(SizeConverter))]
+#endif
                public long MaximumJournalSize {
                        [MonoTODO]
                        get {throw new NotImplementedException();}
@@ -96,7 +100,9 @@ namespace System.Messaging
                        set {throw new NotImplementedException();}
                }
 
+#if !NO_SYSTEM_DRAWING_DEPENDENCY
                [TypeConverter (typeof(SizeConverter))]
+#endif
                public long MaximumQueueSize {
                        [MonoTODO]
                        get {throw new NotImplementedException();}
@@ -183,4 +189,4 @@ namespace System.Messaging
                        throw new NotImplementedException();
                }
        }
-}
+}
\ No newline at end of file
index 949b5e69e398aeb21d4a48eb0df2909b6de58f04..023c958f22e9ddb88a7e40b2a749117390f79054 100644 (file)
@@ -78,8 +78,11 @@ namespace System.Net.Http.Headers
                                        return v;
 
                                long l;
-                               if (content.TryComputeLength (out l))
+                               if (content.TryComputeLength (out l)) {
+                                       // .net compatibility reading value actually set header property value
+                                       SetValue ("Content-Length", l);
                                        return l;
+                               }
 
                                return null;
                        }
index 9a7248582a1a0ff88cb46cc9df3410785acc4551..05b5fe62681f3f981b067777d1cb7a7f9f32a03b 100644 (file)
@@ -343,29 +343,40 @@ namespace System.Net.Http.Headers
                        return true;
                }
 
-               public override string ToString ()
+               internal static string GetSingleHeaderString (string key, IEnumerable<string> values)
                {
+                       string separator = ",";
+                       HeaderInfo headerInfo;
+                       if (known_headers.TryGetValue (key, out headerInfo) && headerInfo.AllowsMany)
+                               separator = headerInfo.Separator;
+
                        var sb = new StringBuilder ();
-                       foreach (var entry in this) {
-                               sb.Append (entry.Key);
-                               sb.Append (": ");
+                       bool first = true;
+                       foreach (var v in values) {
+                               if (!first) {
+                                       sb.Append (separator);
+                                       if (separator != " ")
+                                               sb.Append (" ");
+                               }
 
-                               string separator = ",";
-                               HeaderInfo headerInfo;
-                               if (known_headers.TryGetValue (entry.Key, out headerInfo) && headerInfo.AllowsMany)
-                                       separator = headerInfo.Separator;
+                               sb.Append (v);
+                               first = false;
+                       }
 
-                               bool first = true;
-                               foreach (var v in entry.Value) {
-                                       if (!first) {
-                                               sb.Append (separator);
-                                               sb.Append (" ");
-                                       }
+                       // Return null for empty values list
+                       if (first)
+                               return null;
 
-                                       sb.Append (v);
-                                       first = false;
-                               }
+                       return sb.ToString ();
+               }
 
+               public override string ToString ()
+               {
+                       var sb = new StringBuilder ();
+                       foreach (var entry in this) {
+                               sb.Append (entry.Key);
+                               sb.Append (": ");
+                               sb.Append (GetSingleHeaderString (entry.Key, entry.Value));
                                sb.Append ("\r\n");
                        }
 
@@ -489,7 +500,7 @@ namespace System.Net.Http.Headers
                        return (HttpHeaderValueCollection<T>) value.Parsed;
                }
 
-               void SetValue<T> (string name, T value, Func<object, string> toStringConverter = null)
+               internal void SetValue<T> (string name, T value, Func<object, string> toStringConverter = null)
                {
                        headers[name] = new HeaderBucket (value, toStringConverter);
                }
index 5c23fc0b525b223eb9f16cb4ebf835ea0e3ac7c7..087e62474d2f986c1b84228fb3a2e30201e4d952 100644 (file)
@@ -30,6 +30,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Collections.Specialized;
 using System.Net.Http.Headers;
+using System.Linq;
 
 namespace System.Net.Http
 {
@@ -274,9 +275,18 @@ namespace System.Net.Http
                        // Add request headers
                        var headers = wr.Headers;
                        foreach (var header in request.Headers) {
-                               foreach (var value in header.Value) {
-                                       headers.AddValue (header.Key, value);
+                               var values = header.Value;
+                               if (header.Key == "Transfer-Encoding") {
+                                       // Chunked Transfer-Encoding is never set for HttpWebRequest. It's detected
+                                       // from ContentLength by HttpWebRequest
+                                       values = values.Where (l => l != "chunked");
                                }
+
+                               var values_formated = HttpRequestHeaders.GetSingleHeaderString (header.Key, values);
+                               if (values_formated == null)
+                                       continue;
+
+                               headers.AddValue (header.Key, values_formated);
                        }
                        
                        return wr;
index b58318819a2de3bbbb1e36e633a2a24e1d340561..ec049a932105ea973be9d262937694c89f83348e 100644 (file)
@@ -572,6 +572,97 @@ namespace MonoTests.System.Net.Http
                        }
                }
 
+               [Test]
+               public void Send_Complete_CustomHeaders_SpecialSeparators ()
+               {
+                       bool? failed = null;
+
+                       var listener = CreateListener (l => {
+                               var request = l.Request;
+
+                               try {
+                                       Assert.AreEqual ("MLK Android Phone 1.1.9", request.UserAgent, "#1");
+                                       failed = false;
+                               } catch {
+                                       failed = true;
+                               }
+                       });
+
+                       try {
+                               var client = new HttpClient ();
+
+                               client.DefaultRequestHeaders.Add("User-Agent", "MLK Android Phone 1.1.9");
+
+                               var request = new HttpRequestMessage (HttpMethod.Get, LocalServer);
+
+                               var response = client.SendAsync (request, HttpCompletionOption.ResponseHeadersRead).Result;
+
+                               Assert.AreEqual ("", response.Content.ReadAsStringAsync ().Result, "#100");
+                               Assert.AreEqual (HttpStatusCode.OK, response.StatusCode, "#101");
+                               Assert.AreEqual (false, failed, "#102");
+                       } finally {
+                               listener.Abort ();
+                               listener.Close ();
+                       }
+               }
+
+               [Test]
+               public void Send_Transfer_Encoding_Chunked ()
+               {
+                       bool? failed = null;
+
+                       var listener = CreateListener (l => {
+                               var request = l.Request;
+
+                               try {
+                                       Assert.AreEqual (1, request.Headers.Count, "#1");
+                                       failed = false;
+                               } catch {
+                                       failed = true;
+                               }
+                       });
+
+                       try {
+                               var client = new HttpClient ();
+                               client.DefaultRequestHeaders.TransferEncodingChunked = true;
+
+                               client.GetAsync (LocalServer).Wait ();
+
+                               Assert.AreEqual (false, failed, "#102");
+                       } finally {
+                               listener.Abort ();
+                               listener.Close ();
+                       }
+               }
+
+               [Test]
+               public void Send_Transfer_Encoding_Custom ()
+               {
+                       bool? failed = null;
+
+                       var listener = CreateListener (l => {
+                               failed = true;
+                       });
+
+                       try {
+                               var client = new HttpClient ();
+                               client.DefaultRequestHeaders.TransferEncoding.Add (new TransferCodingHeaderValue ("chunked2"));
+
+                               var request = new HttpRequestMessage (HttpMethod.Get, LocalServer);
+
+                               try {
+                                       client.SendAsync (request, HttpCompletionOption.ResponseHeadersRead).Wait ();
+                                       Assert.Fail ("#1");
+                               } catch (AggregateException e) {
+                                       Assert.AreEqual (typeof (ProtocolViolationException), e.InnerException.GetType (), "#2");
+                               }
+                               Assert.IsNull (failed, "#102");
+                       } finally {
+                               listener.Abort ();
+                               listener.Close ();
+                       }
+               }
+
                [Test]
                public void Send_Complete_Content ()
                {
index 5d7cd12490ccadcbda86267f2a3983c9444dff8b..e56094741263210f94b21d56a8bb6093ffb410ff 100644 (file)
@@ -36,6 +36,7 @@ using System.IO;
 using System.Threading.Tasks;
 using System.Net;
 using System.Linq;
+using System.Text;
 
 namespace MonoTests.System.Net.Http
 {
@@ -327,6 +328,15 @@ namespace MonoTests.System.Net.Http
                        Assert.AreEqual ("Content-MD5: AwU=\r\n", headers.ToString (), "#1");
                }
 
+               [Test]
+               public void Headers_ContentLength ()
+               {
+                       var content = new StreamContent (new MemoryStream (Encoding.UTF8.GetBytes ("test")));
+                       Assert.AreEqual ("", content.Headers.ToString ());
+                       var length = content.Headers.ContentLength;
+                       Assert.AreEqual ("Content-Length: 4\r\n", content.Headers.ToString ());
+               }
+
                [Test]
                public void Headers_Invalid ()
                {
diff --git a/mcs/class/System.Net.Http/monotouch_System.Net.Http.dll.sources b/mcs/class/System.Net.Http/monotouch_System.Net.Http.dll.sources
deleted file mode 100644 (file)
index b40b2a1..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-../../build/common/Consts.cs
-Assembly/AssemblyInfo.cs
-System.Net.Http/ByteArrayContent.cs
-System.Net.Http/ClientCertificateOption.cs
-System.Net.Http/DelegatingHandler.cs
-System.Net.Http/FormUrlEncodedContent.cs
-System.Net.Http/HttpClient.cs
-System.Net.Http/HttpClientHandler.cs
-System.Net.Http/HttpCompletionOption.cs
-System.Net.Http/HttpContent.cs
-System.Net.Http/HttpMessageHandler.cs
-System.Net.Http/HttpMessageInvoker.cs
-System.Net.Http/HttpMethod.cs
-System.Net.Http/HttpRequestException.cs
-System.Net.Http/HttpRequestMessage.cs
-System.Net.Http/HttpResponseMessage.cs
-System.Net.Http/MessageProcessingHandler.cs
-System.Net.Http/MultipartContent.cs
-System.Net.Http/MultipartFormDataContent.cs
-System.Net.Http/StreamContent.cs
-System.Net.Http/StringContent.cs
-System.Net.Http.Headers/AuthenticationHeaderValue.cs
-System.Net.Http.Headers/CacheControlHeaderValue.cs
-System.Net.Http.Headers/CollectionExtensions.cs
-System.Net.Http.Headers/CollectionParser.cs
-System.Net.Http.Headers/ContentDispositionHeaderValue.cs
-System.Net.Http.Headers/ContentRangeHeaderValue.cs
-System.Net.Http.Headers/EntityTagHeaderValue.cs
-System.Net.Http.Headers/HashCodeCalculator.cs
-System.Net.Http.Headers/HeaderInfo.cs
-System.Net.Http.Headers/HttpContentHeaders.cs
-System.Net.Http.Headers/HttpHeaderKind.cs
-System.Net.Http.Headers/HttpHeaders.cs
-System.Net.Http.Headers/HttpHeaderValueCollection.cs
-System.Net.Http.Headers/HttpRequestHeaders.cs
-System.Net.Http.Headers/HttpResponseHeaders.cs
-System.Net.Http.Headers/Lexer.cs
-System.Net.Http.Headers/MediaTypeHeaderValue.cs
-System.Net.Http.Headers/MediaTypeWithQualityHeaderValue.cs
-System.Net.Http.Headers/NameValueHeaderValue.cs
-System.Net.Http.Headers/NameValueWithParametersHeaderValue.cs
-System.Net.Http.Headers/Parser.cs
-System.Net.Http.Headers/ProductHeaderValue.cs
-System.Net.Http.Headers/ProductInfoHeaderValue.cs
-System.Net.Http.Headers/QualityValue.cs
-System.Net.Http.Headers/RangeConditionHeaderValue.cs
-System.Net.Http.Headers/RangeHeaderValue.cs
-System.Net.Http.Headers/RangeItemHeaderValue.cs
-System.Net.Http.Headers/RetryConditionHeaderValue.cs
-System.Net.Http.Headers/StringWithQualityHeaderValue.cs
-System.Net.Http.Headers/TransferCodingHeaderValue.cs
-System.Net.Http.Headers/TransferCodingWithQualityHeaderValue.cs
-System.Net.Http.Headers/ViaHeaderValue.cs
-System.Net.Http.Headers/WarningHeaderValue.cs
\ No newline at end of file
diff --git a/mcs/class/System.Numerics.Vectors/Assembly/AssemblyInfo.cs b/mcs/class/System.Numerics.Vectors/Assembly/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..f2d3b30
--- /dev/null
@@ -0,0 +1,61 @@
+//
+// AssemblyInfo.cs
+//
+// Authors:
+//     Marek Safar (marek.safar@gmail.com)
+//
+// Copyright (C) 2009 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Reflection;
+using System.Resources;
+using System.Security;
+using System.Security.Permissions;
+using System.Diagnostics;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about the assembly
+
+[assembly: AssemblyTitle ("System.Numerics.Vectors.dll")]
+[assembly: AssemblyDescription ("System.Numerics.Vectors.dll")]
+[assembly: AssemblyDefaultAlias ("System.Numerics.Vectors.dll")]
+
+[assembly: AssemblyCompany (Consts.MonoCompany)]
+[assembly: AssemblyProduct (Consts.MonoProduct)]
+[assembly: AssemblyCopyright (Consts.MonoCopyright)]
+[assembly: AssemblyVersion (Consts.FxVersion)]
+[assembly: SatelliteContractVersion (Consts.FxVersion)]
+[assembly: AssemblyInformationalVersion (Consts.FxFileVersion)]
+[assembly: AssemblyFileVersion (Consts.FxFileVersion)]
+
+[assembly: NeutralResourcesLanguage ("en-US")]
+[assembly: CLSCompliant (true)]
+[assembly: AssemblyDelaySign (true)]
+
+[assembly: AssemblyKeyFile("../msfinal.pub")]
+
+[assembly: SecurityCritical]
+
+[assembly: ComVisible (false)]
+
diff --git a/mcs/class/System.Numerics.Vectors/Makefile b/mcs/class/System.Numerics.Vectors/Makefile
new file mode 100644 (file)
index 0000000..f5ff093
--- /dev/null
@@ -0,0 +1,11 @@
+thisdir = class/System.Numerics.Vectors
+SUBDIRS = 
+include ../../build/rules.make
+
+LIBRARY = System.Numerics.Vectors.dll
+LIB_REFS = System
+LIB_MCS_FLAGS =
+
+EXTRA_DISTFILES =
+
+include ../../build/library.make
diff --git a/mcs/class/System.Numerics.Vectors/System.Numerics.Vectors.dll.sources b/mcs/class/System.Numerics.Vectors/System.Numerics.Vectors.dll.sources
new file mode 100644 (file)
index 0000000..45b755e
--- /dev/null
@@ -0,0 +1,3 @@
+../../build/common/Consts.cs
+../../build/common/SR.cs
+Assembly/AssemblyInfo.cs
index 2928707e8cadd8461ef05318b9535fc2b543640d..8e5efe308ce8a52ef8d8ea3c6492ee93188715aa 100644 (file)
@@ -34,13 +34,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT)
 
-VALID_PROFILE := $(filter monotouch monodroid xammac mobile mobile_static net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.System.Reactive.Core.dll
-NO_SIGN_ASSEMBLY = yes
-endif
-
-INSTALL_PROFILE := $(filter net_4_5, $(PROFILE))
+INSTALL_PROFILE := $(filter net_4_x, $(PROFILE))
 ifndef INSTALL_PROFILE
 NO_INSTALL = yes
 endif
index 2d4bc4fcc72fdf9b0d244baba046cf7725676327..f616cad1f09f94dc43db9d12cfc0865c3f2789a5 100644 (file)
@@ -19,13 +19,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args
 
-VALID_PROFILE := $(filter monotouch monodroid xammac mobile mobile_static net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.System.Reactive.Debugger.dll
-NO_SIGN_ASSEMBLY = yes
-endif
-
-INSTALL_PROFILE := $(filter net_4_5, $(PROFILE))
+INSTALL_PROFILE := $(filter net_4_x, $(PROFILE))
 ifndef INSTALL_PROFILE
 NO_INSTALL = yes
 endif
index 2d66a6010b8e2cbe30dbd2aeec557405a0009b8c..9bc8b3e07acfffdbe63aa1a87eb025ca2030f4d3 100644 (file)
@@ -19,13 +19,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args
 
-VALID_PROFILE := $(filter monotouch monodroid xammac mobile mobile_static net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.System.Reactive.Experimental.dll
-NO_SIGN_ASSEMBLY = yes
-endif
-
-INSTALL_PROFILE := $(filter net_4_5, $(PROFILE))
+INSTALL_PROFILE := $(filter net_4_x, $(PROFILE))
 ifndef INSTALL_PROFILE
 NO_INSTALL = yes
 endif
index 5962757a17f4468184567e362352a683231befb6..2752ff281271d47a255ecbeabcb04182531c64a7 100644 (file)
@@ -19,13 +19,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args
 
-VALID_PROFILE := $(filter monotouch monodroid xammac mobile mobile_static net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.System.Reactive.Interfaces.dll
-NO_SIGN_ASSEMBLY = yes
-endif
-
-INSTALL_PROFILE := $(filter net_4_5, $(PROFILE))
+INSTALL_PROFILE := $(filter net_4_x, $(PROFILE))
 ifndef INSTALL_PROFILE
 NO_INSTALL = yes
 endif
index 480a20543f2dfa45cb22e628a02b035e57211c39..e05d3c0236e2cb69a33984069812a7674007bf90 100644 (file)
@@ -34,13 +34,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT)
 
-VALID_PROFILE := $(filter monotouch monodroid xammac mobile mobile_static net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.System.Reactive.Linq.dll
-NO_SIGN_ASSEMBLY = yes
-endif
-
-INSTALL_PROFILE := $(filter net_4_5, $(PROFILE))
+INSTALL_PROFILE := $(filter net_4_x, $(PROFILE))
 ifndef INSTALL_PROFILE
 NO_INSTALL = yes
 endif
index 3a84f3d95181d0e936526d22251fd81dd7076f77..ec5e06a73a84530412b32ec9723312c695c01319 100644 (file)
@@ -31,13 +31,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT)
 
-VALID_PROFILE := $(filter monodroid xammac net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.System.Reactive.Observable.Aliases.dll
-NO_SIGN_ASSEMBLY = yes
-endif
-
-INSTALL_PROFILE := $(filter net_4_5, $(PROFILE))
+INSTALL_PROFILE := $(filter net_4_x, $(PROFILE))
 ifndef INSTALL_PROFILE
 NO_INSTALL = yes
 endif
index 9192c21468a1e9a7453c7b56b965a259a4d4e325..1a8675dc69af0736a30654aa87cc48b7952b9cd4 100644 (file)
@@ -39,13 +39,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -r:Mono.Reactive.Tests.dll
 
 EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT)
 
-VALID_PROFILE := $(filter monotouch monodroid xammac mobile mobile_static net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.System.Reactive.PlatformServices.dll
-NO_SIGN_ASSEMBLY = yes
-endif
-
-INSTALL_PROFILE := $(filter net_4_5, $(PROFILE))
+INSTALL_PROFILE := $(filter net_4_x, $(PROFILE))
 ifndef INSTALL_PROFILE
 NO_INSTALL = yes
 endif
index d3badf673828dad0af2a5acf3624abb9f4a72fc7..9aedac157d73c36b33b7a525f8b1c8d656141fc1 100644 (file)
@@ -34,13 +34,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT)
 
-VALID_PROFILE := $(filter monodroid xammac net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.System.Reactive.Providers.dll
-NO_SIGN_ASSEMBLY = yes
-endif
-
-INSTALL_PROFILE := $(filter net_4_5, $(PROFILE))
+INSTALL_PROFILE := $(filter net_4_x, $(PROFILE))
 ifndef INSTALL_PROFILE
 NO_INSTALL = yes
 endif
index c60726a075f09128129de72f38b4f5b1250610eb..389920631a72cccac89543143e9e7a3f69839fce 100644 (file)
@@ -21,13 +21,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args
 
-VALID_PROFILE := $(filter net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.System.Reactive.Runtime.Remoting.dll
-NO_SIGN_ASSEMBLY = yes
-endif
-
-INSTALL_PROFILE := $(filter net_4_5, $(PROFILE))
+INSTALL_PROFILE := $(filter net_4_x, $(PROFILE))
 ifndef INSTALL_PROFILE
 NO_INSTALL = yes
 endif
index 942ba4b5b0db793cb872ddd65f2162fbb6706bc4..e2f9d24fa92a02a9472f1aee4ecef2a3d479b0fa 100644 (file)
@@ -21,13 +21,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args
 
-VALID_PROFILE := $(filter net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.System.Reactive.Windows.Forms.dll
-NO_SIGN_ASSEMBLY = yes
-endif
-
-INSTALL_PROFILE := $(filter net_4_5, $(PROFILE))
+INSTALL_PROFILE := $(filter net_4_x, $(PROFILE))
 ifndef INSTALL_PROFILE
 NO_INSTALL = yes
 endif
index 7faeb161f571909c9d18e31450a7521fe660a40b..3c0654cfac387f4690791f0dd8a3b55a7de1e269 100644 (file)
@@ -34,13 +34,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT)
 
-VALID_PROFILE := $(filter net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.System.Reactive.Windows.Threading.dll
-NO_SIGN_ASSEMBLY = yes
-endif
-
-INSTALL_PROFILE := $(filter net_4_5, $(PROFILE))
+INSTALL_PROFILE := $(filter net_4_x, $(PROFILE))
 ifndef INSTALL_PROFILE
 NO_INSTALL = yes
 endif
index e15a51bfe02a2bc522134f66a43ee6786b8881b5..a34e32c78a41be95ad6f4bab3773c9296c0b10f9 100644 (file)
@@ -94,7 +94,7 @@ namespace MonoTests.Remoting {
                };
                
                [Test] // HttpChannel.Parse ()
-               [Ignore ("Fails on MS")]
+               [Category ("NotWorking")] // Fails on MS
                public void ParseURL ()
                {
                        HttpChannel channel;
index 1e595b7940a23baace07d77963904aa6f2933eae..90f038bccd281dfc74c7595cd4f4e66e3c602fd8 100644 (file)
@@ -381,7 +381,8 @@ namespace System.Runtime.Serialization.Json
 
                internal bool IsDefaultValue (Type type, object value)
                {
-                       return GetDefaultValue (type).Equals (value);
+                       var def = GetDefaultValue (type);
+                       return def == null ? (object) value == null : def.Equals (value);
                }
 
                internal object GetDefaultValue(Type type)
index 4399a0cd2d4182c1743be087c811664f04ebc167..00e39ab6b65f92465496c8792df416735a1cbe6f 100644 (file)
@@ -363,7 +363,8 @@ namespace System.Runtime.Serialization
 
                internal bool IsDefaultValue (Type type, object value)
                {
-                       return GetDefaultValue (type).Equals (value);
+                       var def = GetDefaultValue (type);
+                       return def == null ? (object) value == null : def.Equals (value);
                }
 
                internal object GetDefaultValue(Type type)
index e6a69cb620a21d04ef62cbdb997f649ab3d66c9e..d1251b47c827b594efa14c743db03469cf3f2ee6 100644 (file)
     <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlWriteBase64AsyncArgs.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\TD.Designer.cs" />\r
     <Compile Include="..\..\build\common\Consts.cs" />\r
-    <Compile Include="..\..\build\common\Locale.cs" />\r
-    <Compile Include="..\..\build\common\MonoTODOAttribute.cs" />\r
     <Compile Include="..\..\build\common\SR.cs" />\r
     <Compile Include="Assembly\AssemblyInfo.cs" />\r
     <Compile Include="ReferenceSources\BitFlagsGenerator.cs" />\r
index 163d088201c7d59715725588dbf2dc9dd93f4e86..5ba3d4cd4bfd790912101cf63f29229b6c60ded4 100644 (file)
@@ -28,7 +28,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0
 
 using System;
 using System.Collections;
@@ -115,4 +114,3 @@ public class ResolvedClass
        public Guid Baz = Guid.Parse ("c74376f0-5517-4cb7-8a07-35026423f565");
 }
 
-#endif
index 9687913986155d8efee563ec507ea14329075e61..bee52d3e4f896eb4a66a1f00b47fe8b14c7b33b4 100644 (file)
@@ -97,7 +97,6 @@ namespace MonoTests.System.Runtime.Serialization
                        Assert.That (ret.TypeArguments [0].BaseType, Is.EqualTo ("System.Int32"), "#6");
                }
 
-#if NET_4_0            
                [Test]
                public void TestSimpleList3 ()
                {
@@ -118,7 +117,6 @@ namespace MonoTests.System.Runtime.Serialization
                        Assert.That (ret.TypeArguments.Count, Is.EqualTo (1), "#5");
                        Assert.That (ret.TypeArguments [0].BaseType, Is.EqualTo ("System.Int32"), "#6");
                }
-#endif
                
                [Test]
                public void TestListOfFoo ()
diff --git a/mcs/class/System.Runtime.Serialization/monotouch_watch_System.Runtime.Serialization.dll.sources b/mcs/class/System.Runtime.Serialization/monotouch_watch_System.Runtime.Serialization.dll.sources
new file mode 100644 (file)
index 0000000..6caafd4
--- /dev/null
@@ -0,0 +1 @@
+#include mobile_System.Runtime.Serialization.dll.sources
diff --git a/mcs/class/System.Runtime.Serialization/net_4_5_System.Runtime.Serialization.dll.sources b/mcs/class/System.Runtime.Serialization/net_4_5_System.Runtime.Serialization.dll.sources
deleted file mode 100644 (file)
index a26b31f..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#include System.Runtime.Serialization.dll.sources
-#include ReferenceSource.common.sources
-#include ReferenceSource.desktop.sources
diff --git a/mcs/class/System.Runtime.Serialization/net_4_x_System.Runtime.Serialization.dll.sources b/mcs/class/System.Runtime.Serialization/net_4_x_System.Runtime.Serialization.dll.sources
new file mode 100644 (file)
index 0000000..a26b31f
--- /dev/null
@@ -0,0 +1,3 @@
+#include System.Runtime.Serialization.dll.sources
+#include ReferenceSource.common.sources
+#include ReferenceSource.desktop.sources
diff --git a/mcs/class/System.Runtime.Serialization/xammac_net_4_5_System.Runtime.Serialization.dll.sources b/mcs/class/System.Runtime.Serialization/xammac_net_4_5_System.Runtime.Serialization.dll.sources
new file mode 100644 (file)
index 0000000..17c4f43
--- /dev/null
@@ -0,0 +1 @@
+#include net_4_5_System.Runtime.Serialization.dll.sources
index fc6482cd06ff3772f128e7f3769cba2caa912cb8..6fdf6aa94881aa0fff555dfb0bee8afea64ce26b 100644 (file)
@@ -13,8 +13,6 @@ LOCAL_MCS_FLAGS = -lib:$(secxml_libdir) -lib:$(bare_libdir)
 
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:168,169,183,219,414,1595
 
-VALID_PROFILE := $(filter moonlight_raw net_4_5, $(PROFILE))
-
 EXTRA_DISTFILES = \
        Test/System.Security.Cryptography.Xml/sample.pfx \
        Test/System.Security.Cryptography.Xml/EncryptedXmlSample1.xml \
index 5c69fccc6ec9847ef5123bc55c6087aeb5800968..20c7c9a1b0eca378f8a3a7a89c7b3456d1b0300d 100644 (file)
@@ -1,4 +1,4 @@
-PROFILE = net_4_5
+PROFILE = net_4_x
 RUNTIME = MONO_PATH=../../../lib/$(PROFILE) mono --debug 
 #XMLDSIG_EXE_OPTIONS =
 XMLDSIG_EXE_OPTIONS = --decent-reader
index e8680e37f13cecd9bbe0ed7ab66bd0cd9a1d8396..8a4a46c755fef5a7a9e47fae4ad240d28f92853a 100644 (file)
@@ -7,20 +7,26 @@ LIB_REFS = System System.Xml System.Runtime.Serialization System.ServiceModel Sy
 LIB_MCS_FLAGS =
 
 ifneq (2.1, $(FRAMEWORK_VERSION))
-LIB_REFS += System.Configuration System.Web.Extensions
+LIB_REFS += System.Configuration 
+
+ifndef NO_SYSTEM_WEB_DEPENDENCY
+LIB_REFS += System.Web.Extensions
+endif
+
 LIB_MCS_FLAGS += -d:NET_3_5 -d:NET_3_0
 endif
 
+ifndef NO_SYSTEM_SERVICEMODEL_ACTIVATION_DEPENDENCY
 ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
 LIB_REFS += System.ServiceModel.Activation
 endif
+endif
 
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = $(RESOURCE_FILES) \
        Test/config/webHttpBinding \
-       Test/config/webHttpBinding.config \
-       System.Runtime.Serialization.Json/DataContractJsonSerializerSettings.cs
+       Test/config/webHttpBinding.config
 
 VALID_PROFILE := $(filter 2 4, $(FRAMEWORK_VERSION_MAJOR))
 ifndef VALID_PROFILE
diff --git a/mcs/class/System.ServiceModel.Web/System.Runtime.Serialization.Json/JavaScriptObjectDeserializer.cs b/mcs/class/System.ServiceModel.Web/System.Runtime.Serialization.Json/JavaScriptObjectDeserializer.cs
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/mcs/class/System.ServiceModel.Web/System.Runtime.Serialization.Json/JavaScriptReader.cs b/mcs/class/System.ServiceModel.Web/System.Runtime.Serialization.Json/JavaScriptReader.cs
deleted file mode 100644 (file)
index 3e97c0b..0000000
+++ /dev/null
@@ -1,333 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Globalization;
-using System.IO;
-using System.Linq;
-using System.Text;
-
-namespace System.Runtime.Serialization.Json
-{
-       internal class JavaScriptReader
-       {
-               TextReader r;
-               int line = 1, column = 0;
-//             bool raise_on_number_error; // FIXME: use it
-
-               public JavaScriptReader (TextReader reader, bool raiseOnNumberError)
-               {
-                       if (reader == null)
-                               throw new ArgumentNullException ("reader");
-                       this.r = reader;
-//                     raise_on_number_error = raiseOnNumberError;
-               }
-
-               public object Read ()
-               {
-                       object v = ReadCore ();
-                       SkipSpaces ();
-                       if (ReadChar () >= 0)
-                               throw JsonError (String.Format ("extra characters in JSON input"));
-                       return v;
-               }
-
-               object ReadCore ()
-               {
-                       SkipSpaces ();
-                       int c = PeekChar ();
-                       if (c < 0)
-                               throw JsonError ("Incomplete JSON input");
-                       switch (c) {
-                       case '[':
-                               ReadChar ();
-                               var list = new List<object> ();
-                               SkipSpaces ();
-                               if (PeekChar () == ']') {
-                                       ReadChar ();
-                                       return list;
-                               }
-                               while (true) {
-                                       list.Add (ReadCore ());
-                                       SkipSpaces ();
-                                       c = PeekChar ();
-                                       if (c != ',')
-                                               break;
-                                       ReadChar ();
-                                       continue;
-                               }
-                               if (ReadChar () != ']')
-                                       throw JsonError ("JSON array must end with ']'");
-                               return list.ToArray ();
-                       case '{':
-                               ReadChar ();
-                               var obj = new Dictionary<string,object> ();
-                               SkipSpaces ();
-                               if (PeekChar () == '}') {
-                                       ReadChar ();
-                                       return obj;
-                               }
-                               while (true) {
-                                       SkipSpaces ();
-                                       if (PeekChar () == '}') {
-                                               ReadChar ();
-                                               break;
-                                       }
-                                       string name = ReadStringLiteral ();
-                                       SkipSpaces ();
-                                       Expect (':');
-                                       SkipSpaces ();
-                                       obj [name] = ReadCore (); // it does not reject duplicate names.
-                                       SkipSpaces ();
-                                       c = ReadChar ();
-                                       if (c == ',')
-                                               continue;
-                                       if (c == '}')
-                                               break;
-                               }
-#if MONOTOUCH
-                               int idx = 0;
-                               KeyValuePair<string, object> [] ret = new KeyValuePair<string, object>[obj.Count];
-                               foreach (KeyValuePair <string, object> kvp in obj)
-                                       ret [idx++] = kvp;
-
-                               return ret;
-#else
-                               return obj.ToArray ();
-#endif
-                       case 't':
-                               Expect ("true");
-                               return true;
-                       case 'f':
-                               Expect ("false");
-                               return false;
-                       case 'n':
-                               Expect ("null");
-                               // FIXME: what should we return?
-                               return (string) null;
-                       case '"':
-                               return ReadStringLiteral ();
-                       default:
-                               if ('0' <= c && c <= '9' || c == '-')
-                                       return ReadNumericLiteral ();
-                               else
-                                       throw JsonError (String.Format ("Unexpected character '{0}'", (char) c));
-                       }
-               }
-
-               int peek;
-               bool has_peek;
-               bool prev_lf;
-
-               int PeekChar ()
-               {
-                       if (!has_peek) {
-                               peek = r.Read ();
-                               has_peek = true;
-                       }
-                       return peek;
-               }
-
-               int ReadChar ()
-               {
-                       int v = has_peek ? peek : r.Read ();
-
-                       has_peek = false;
-
-                       if (prev_lf) {
-                               line++;
-                               column = 0;
-                               prev_lf = false;
-                       }
-
-                       if (v == '\n')
-                               prev_lf = true;
-                       column++;
-
-                       return v;
-               }
-
-               void SkipSpaces ()
-               {
-                       while (true) {
-                               switch (PeekChar ()) {
-                               case ' ': case '\t': case '\r': case '\n':
-                                       ReadChar ();
-                                       continue;
-                               default:
-                                       return;
-                               }
-                       }
-               }
-
-               // It could return either int, long or decimal, depending on the parsed value.
-               object ReadNumericLiteral ()
-               {
-                       var sb = new StringBuilder ();
-                       
-                       if (PeekChar () == '-') {
-                               sb.Append ((char) ReadChar ());
-                       }
-
-                       int c;
-                       int x = 0;
-                       bool zeroStart = PeekChar () == '0';
-                       for (; ; x++) {
-                               c = PeekChar ();
-                               if (c < '0' || '9' < c)
-                                       break;
-                               sb.Append ((char) ReadChar ());
-                               if (zeroStart && x == 1)
-                                       throw JsonError ("leading zeros are not allowed");
-                       }
-                       if (x == 0) // Reached e.g. for "- "
-                               throw JsonError ("Invalid JSON numeric literal; no digit found");
-
-                       // fraction
-                       bool hasFrac = false;
-                       int fdigits = 0;
-                       if (PeekChar () == '.') {
-                               hasFrac = true;
-                               sb.Append ((char) ReadChar ());
-                               if (PeekChar () < 0)
-                                       throw JsonError ("Invalid JSON numeric literal; extra dot");
-                               while (true) {
-                                       c = PeekChar ();
-                                       if (c < '0' || '9' < c)
-                                               break;
-                                       sb.Append ((char) ReadChar ());
-                                       fdigits++;
-                               }
-                               if (fdigits == 0)
-                                       throw JsonError ("Invalid JSON numeric literal; extra dot");
-                       }
-
-                       c = PeekChar ();
-                       if (c != 'e' && c != 'E') {
-                               if (!hasFrac) {
-                                       int valueInt;
-                                       if (int.TryParse (sb.ToString (), NumberStyles.Float, CultureInfo.InvariantCulture, out valueInt))
-                                               return valueInt;
-                                       
-                                       long valueLong;
-                                       if (long.TryParse (sb.ToString (), NumberStyles.Float, CultureInfo.InvariantCulture, out valueLong))
-                                               return valueLong;
-                                       
-                                       ulong valueUlong;
-                                       if (ulong.TryParse (sb.ToString (), NumberStyles.Float, CultureInfo.InvariantCulture, out valueUlong))
-                                               return valueUlong;
-                               }
-                               decimal valueDecimal;
-                               if (decimal.TryParse (sb.ToString (), NumberStyles.Float, CultureInfo.InvariantCulture, out valueDecimal) && valueDecimal != 0)
-                                       return valueDecimal;
-                       } else {
-                               // exponent
-                               sb.Append ((char) ReadChar ());
-                               if (PeekChar () < 0)
-                                       throw new ArgumentException ("Invalid JSON numeric literal; incomplete exponent");
-                       
-                               c = PeekChar ();
-                               if (c == '-') {
-                                       sb.Append ((char) ReadChar ());
-                               }
-                               else if (c == '+')
-                                       sb.Append ((char) ReadChar ());
-
-                               if (PeekChar () < 0)
-                                       throw JsonError ("Invalid JSON numeric literal; incomplete exponent");
-                               while (true) {
-                                       c = PeekChar ();
-                                       if (c < '0' || '9' < c)
-                                               break;
-                                       sb.Append ((char) ReadChar ());
-                               }
-                       }
-
-                       return double.Parse (sb.ToString (), NumberStyles.Float, CultureInfo.InvariantCulture);
-               }
-
-               StringBuilder vb = new StringBuilder ();
-
-               string ReadStringLiteral ()
-               {
-                       if (PeekChar () != '"')
-                               throw JsonError ("Invalid JSON string literal format");
-
-                       ReadChar ();
-                       vb.Length = 0;
-                       while (true) {
-                               int c = ReadChar ();
-                               if (c < 0)
-                                       throw JsonError ("JSON string is not closed");
-                               if (c == '"')
-                                       return vb.ToString ();
-                               else if (c != '\\') {
-                                       vb.Append ((char) c);
-                                       continue;
-                               }
-
-                               // escaped expression
-                               c = ReadChar ();
-                               if (c < 0)
-                                       throw JsonError ("Invalid JSON string literal; incomplete escape sequence");
-                               switch (c) {
-                               case '"':
-                               case '\\':
-                               case '/':
-                                       vb.Append ((char) c);
-                                       break;
-                               case 'b':
-                                       vb.Append ('\x8');
-                                       break;
-                               case 'f':
-                                       vb.Append ('\f');
-                                       break;
-                               case 'n':
-                                       vb.Append ('\n');
-                                       break;
-                               case 'r':
-                                       vb.Append ('\r');
-                                       break;
-                               case 't':
-                                       vb.Append ('\t');
-                                       break;
-                               case 'u':
-                                       ushort cp = 0;
-                                       for (int i = 0; i < 4; i++) {
-                                               cp <<= 4;
-                                               if ((c = ReadChar ()) < 0)
-                                                       throw JsonError ("Incomplete unicode character escape literal");
-                                               if ('0' <= c && c <= '9')
-                                                       cp += (ushort) (c - '0');
-                                               if ('A' <= c && c <= 'F')
-                                                       cp += (ushort) (c - 'A' + 10);
-                                               if ('a' <= c && c <= 'f')
-                                                       cp += (ushort) (c - 'a' + 10);
-                                       }
-                                       vb.Append ((char) cp);
-                                       break;
-                               default:
-                                       throw JsonError ("Invalid JSON string literal; unexpected escape character");
-                               }
-                       }
-               }
-
-               void Expect (char expected)
-               {
-                       int c;
-                       if ((c = ReadChar ()) != expected)
-                               throw JsonError (String.Format ("Expected '{0}', got '{1}'", expected, (char) c));
-               }
-
-               void Expect (string expected)
-               {
-                       for (int i = 0; i < expected.Length; i++)
-                               if (ReadChar () != expected [i])
-                                       throw JsonError (String.Format ("Expected '{0}', differed at {1}", expected, i));
-               }
-
-               Exception JsonError (string msg)
-               {
-                       return new ArgumentException (String.Format ("{0}. At line {1}, column {2}", msg, line, column));
-               }
-       }
-}
index d6e40c6f4c8cf9ba9ac433bd482f12d1c3d4ff59..3049f2901e31c1f6a2f0ecb322ac6ad03aab9507 100644 (file)
@@ -146,7 +146,7 @@ namespace System.ServiceModel.Channels
                        return context.GetInnerProperty<T> ();
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                [MonoTODO]
                void IWsdlExportExtension.ExportContract (WsdlExporter exporter, WsdlContractConversionContext context)
                {
index 4787560a34176a39205efb8d963cf1c456ab62ac..d207385c97ee641f880e4d251c7e95e60a0ebb27 100644 (file)
@@ -84,7 +84,7 @@ namespace System.ServiceModel.Description
                        // clientRuntime.MessageInspectors.Add (something);
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                protected virtual void AddServerErrorHandlers (ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
                {
                        endpointDispatcher.ChannelDispatcher.ErrorHandlers.Add (new WebHttpErrorHandler ());
@@ -103,7 +103,7 @@ namespace System.ServiceModel.Description
 
                public virtual void ApplyDispatchBehavior (ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
                {
-#if NET_2_1
+#if NET_2_1 || XAMMAC_4_5
                        throw new NotImplementedException ();
 #else
                        endpointDispatcher.DispatchRuntime.OperationSelector = GetOperationSelector (endpoint);
@@ -146,7 +146,7 @@ namespace System.ServiceModel.Description
                        }
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                internal class DispatchPairFormatter : IDispatchMessageFormatter
                {
                        public DispatchPairFormatter (IDispatchMessageFormatter request, IDispatchMessageFormatter reply)
index 1b7eedb7b730a359ad6a62f90d4f64526c405878..1a8e3c3f2d40e4eb0968c347f8e1158b26a31496 100644 (file)
@@ -2,15 +2,7 @@
 ../../build/common/Locale.cs
 ../../build/common/MonoTODOAttribute.cs
 Assembly/AssemblyInfo.cs
-System.Runtime.Serialization.Json/DataContractJsonSerializer.cs
-System.Runtime.Serialization.Json/IXmlJsonReaderInitializer.cs
-System.Runtime.Serialization.Json/IXmlJsonWriterInitializer.cs
-System.Runtime.Serialization.Json/JsonReader.cs
-System.Runtime.Serialization.Json/JsonReaderWriterFactory.cs
-System.Runtime.Serialization.Json/JsonSerializationReader.cs
-System.Runtime.Serialization.Json/JsonSerializationWriter.cs
-System.Runtime.Serialization.Json/JsonWriter.cs
-System.Runtime.Serialization.Json/TypeMap.cs
+Assembly/TypeForwarders.cs
 System.ServiceModel.Activation/WebScriptServiceHostFactory.cs
 System.ServiceModel.Activation/WebServiceHostFactory.cs
 System.ServiceModel.Channels/WebBodyFormatMessageProperty.cs
@@ -22,51 +14,22 @@ System.ServiceModel.Channels/WebMessageEncodingBindingElement.cs
 System.ServiceModel.Configuration/WebHttpBindingCollectionElement.cs
 System.ServiceModel.Configuration/WebHttpBindingElement.cs
 System.ServiceModel.Configuration/WebHttpElement.cs
+System.ServiceModel.Configuration/WebHttpEndpointCollectionElement.cs
+System.ServiceModel.Configuration/WebHttpEndpointElement.cs
 System.ServiceModel.Configuration/WebHttpSecurityElement.cs
 System.ServiceModel.Configuration/WebMessageEncodingElement.cs
 System.ServiceModel.Configuration/WebScriptEnablingElement.cs
+System.ServiceModel.Configuration/WebScriptEndpointCollectionElement.cs
+System.ServiceModel.Configuration/WebScriptEndpointElement.cs
 System.ServiceModel.Description/WebHttpBehavior.cs
+System.ServiceModel.Description/WebHttpEndpoint.cs
 System.ServiceModel.Description/WebScriptEnablingBehavior.cs
+System.ServiceModel.Description/WebScriptEndpoint.cs
+System.ServiceModel.Description/WebServiceEndpoint.cs
 System.ServiceModel.Dispatcher/JsonQueryStringConverter.cs
 System.ServiceModel.Dispatcher/QueryStringConverter.cs
 System.ServiceModel.Dispatcher/WebHttpDispatchOperationSelector.cs
 System.ServiceModel.Dispatcher/WebMessageFormatter.cs
-System.ServiceModel.Syndication/Atom10FeedFormatter.cs
-System.ServiceModel.Syndication/Atom10FeedFormatter_1.cs
-System.ServiceModel.Syndication/Atom10ItemFormatter.cs
-System.ServiceModel.Syndication/Atom10ItemFormatter_1.cs
-System.ServiceModel.Syndication/AtomPub10CategoriesDocumentFormatter.cs
-System.ServiceModel.Syndication/AtomPub10ServiceDocumentFormatter.cs
-System.ServiceModel.Syndication/AtomPub10ServiceDocumentFormatter_1.cs
-System.ServiceModel.Syndication/CategoriesDocument.cs
-System.ServiceModel.Syndication/CategoriesDocumentFormatter.cs
-System.ServiceModel.Syndication/ISyndicationElement.cs
-System.ServiceModel.Syndication/InlineCategoriesDocument.cs
-System.ServiceModel.Syndication/ReferencedCategoriesDocument.cs
-System.ServiceModel.Syndication/ResourceCollectionInfo.cs
-System.ServiceModel.Syndication/Rss20FeedFormatter.cs
-System.ServiceModel.Syndication/Rss20FeedFormatter_1.cs
-System.ServiceModel.Syndication/Rss20ItemFormatter.cs
-System.ServiceModel.Syndication/Rss20ItemFormatter_1.cs
-System.ServiceModel.Syndication/ServiceDocument.cs
-System.ServiceModel.Syndication/ServiceDocumentFormatter.cs
-System.ServiceModel.Syndication/SyndicationCategory.cs
-System.ServiceModel.Syndication/SyndicationContent.cs
-System.ServiceModel.Syndication/SyndicationElementExtension.cs
-System.ServiceModel.Syndication/SyndicationElementExtensionCollection.cs
-System.ServiceModel.Syndication/SyndicationExtensions.cs
-System.ServiceModel.Syndication/SyndicationFeed.cs
-System.ServiceModel.Syndication/SyndicationFeedFormatter.cs
-System.ServiceModel.Syndication/SyndicationItem.cs
-System.ServiceModel.Syndication/SyndicationItemFormatter.cs
-System.ServiceModel.Syndication/SyndicationLink.cs
-System.ServiceModel.Syndication/SyndicationPerson.cs
-System.ServiceModel.Syndication/SyndicationVersions.cs
-System.ServiceModel.Syndication/TextSyndicationContent.cs
-System.ServiceModel.Syndication/TextSyndicationContentKind.cs
-System.ServiceModel.Syndication/UrlSyndicationContent.cs
-System.ServiceModel.Syndication/Workspace.cs
-System.ServiceModel.Syndication/XmlSyndicationContent.cs
 System.ServiceModel.Web/IncomingWebRequestContext.cs
 System.ServiceModel.Web/IncomingWebResponseContext.cs
 System.ServiceModel.Web/OutgoingWebRequestContext.cs
@@ -82,8 +45,3 @@ System.ServiceModel.Web/WebServiceHost.cs
 System.ServiceModel/WebHttpBinding.cs
 System.ServiceModel/WebHttpSecurity.cs
 System.ServiceModel/WebHttpSecurityMode.cs
-System/UriTemplate.cs
-System/UriTemplateEquivalenceComparer.cs
-System/UriTemplateMatch.cs
-System/UriTemplateMatchException.cs
-System/UriTemplateTable.cs
index 9857450eded085b17177d68690eac5f3a2245c29..dfec47afe0e33b33c401216448ee906143664340 100644 (file)
@@ -111,7 +111,7 @@ namespace System.ServiceModel.Web
                        // do nothing
                }
 
-#if NET_4_0 && !MOBILE
+#if !MOBILE
                static readonly XmlWriterSettings settings = new XmlWriterSettings () { OmitXmlDeclaration = true, Indent = false };
                XmlSerializer document_serializer, feed_serializer, item_serializer;
 
index e6db41560996538dd7d9295e2ca8f24150a9d730..319640fc23476960fd9b9139104a6f01088f26a3 100644 (file)
@@ -1,3 +1,4 @@
+../../test-helpers/NetworkHelpers.cs
 System.Runtime.Serialization.Json/DataContractJsonSerializerTest.cs
 System.Runtime.Serialization.Json/JsonReaderTest.cs
 System.Runtime.Serialization.Json/JsonWriterTest.cs
index f7fc5d893aaf859f0a8d8cfd67afcd1a8c9c7fed..fc8a065f5ae483a7794091ba8193f288ee982056 100644 (file)
@@ -52,7 +52,7 @@ namespace System.ServiceModel
 
                public WebHttpBinding (string configurationName)
                {
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                        BindingsSection bindingsSection = ConfigUtil.BindingsSection;
                        WebHttpBindingElement el = (WebHttpBindingElement) bindingsSection ["webHttpBinding"].ConfiguredBindings.FirstOrDefault (c => c.Name == configurationName);
                        if (el != null) {
@@ -88,7 +88,7 @@ namespace System.ServiceModel
                        get { return EnvelopeVersion.None; }
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                [DefaultValue (false)]
                public bool AllowCookies {
                        get { return t.AllowCookies; }
index bb7c1d9f5796533b220b356a212acec4bfb29eaf..bede256b8c947ef6598f1906468e823fff50d072 100644 (file)
@@ -1894,6 +1894,32 @@ namespace MonoTests.System.Runtime.Serialization.Json
 
                public class IntList : List<int>{}
                #endregion
+
+               [Test]
+               public void DefaultValueDeserialization ()
+               {
+                       // value type
+                       var person = new Person { name = "John" };
+                       using (var ms = new MemoryStream()) {
+                               var serializer = new DataContractJsonSerializer (typeof (Person), new DataContractJsonSerializerSettings {
+                                       SerializeReadOnlyTypes = true,
+                                       UseSimpleDictionaryFormat = true
+                                       });
+                               serializer.WriteObject (ms, person);
+                       }
+
+                       // reference type
+                       var person2 = new PersonWithContact {
+                               name = "Jane",
+                               contact = new Contact { url = "localhost", email = "jane@localhost" } };
+                       using (var ms = new MemoryStream ()) {
+                               var serializer = new DataContractJsonSerializer (typeof (PersonWithContact), new DataContractJsonSerializerSettings {
+                                       SerializeReadOnlyTypes = true,
+                                       UseSimpleDictionaryFormat = true
+                                       });
+                               serializer.WriteObject (ms, person2);
+                       }
+               }
        }
        
        public class CharTest
@@ -2685,4 +2711,33 @@ public class Bug13485Type
                }
        }       
 
-#endregion
\ No newline at end of file
+#endregion
+
+#region DefaultValueDeserialization
+    [DataContract]
+    public class Person
+    {
+        [DataMember(EmitDefaultValue = false)]
+        public string name { get; set; }
+    }
+
+    [DataContract]
+    public class PersonWithContact
+    {
+        [DataMember(EmitDefaultValue = false)]
+        public string name { get; set; }
+
+        [DataMember(EmitDefaultValue = false)]
+        public Contact contact { get; set; }
+    }
+
+    [DataContract]
+    public class Contact
+    {
+        [DataMember(EmitDefaultValue = false)]
+        public string url { get; set; }
+
+        [DataMember(EmitDefaultValue = false)]
+        public string email{ get; set; }
+    }
+#endregion
index 84c076d475b7d85541f7e0470646049c2b504617..b5b64fd295e8d355e76e75ed81d4d555a77f6ad0 100644 (file)
@@ -59,11 +59,9 @@ namespace MonoTests.System.ServiceModel.Description
                        Assert.AreEqual (WebMessageBodyStyle.Bare, b.DefaultBodyStyle, "#1");
                        Assert.AreEqual (WebMessageFormat.Xml, b.DefaultOutgoingRequestFormat, "#2");
                        Assert.AreEqual (WebMessageFormat.Xml, b.DefaultOutgoingResponseFormat, "#3");
-#if NET_4_0
                        Assert.IsFalse (b.AutomaticFormatSelectionEnabled, "#11");
                        Assert.IsFalse (b.FaultExceptionEnabled, "#12");
                        Assert.IsFalse (b.HelpEnabled, "#13");
-#endif
                }
 
                [Test]
index 401f1a1f20d9b05ed8c26135a6ed7a12f8ec667b..a8423ad3f1109ebefe77509e272e3eaab1f462bf 100644 (file)
@@ -1,4 +1,4 @@
-#if NET_4_0 && !MOBILE
+#if !MOBILE
 using System;
 using System.IO;
 using System.Runtime.Serialization;
index a87a5fd32a495e6562f49e659b9e349b64dc7d56..6ab2d8b462116c354855ce0a7735270a8d610520 100644 (file)
@@ -72,7 +72,7 @@ namespace MonoTests.System.ServiceModel.Web
                        ch.Close ();
                }
 
-#if NET_4_0 && !MOBILE
+#if !MOBILE
                [Test]
                public void CreateAtom10Response ()
                {
@@ -138,7 +138,7 @@ namespace MonoTests.System.ServiceModel.Web
                string TestJson3 (string s1, string s2);
        }
 
-#if NET_4_0 && !MOBILE
+#if !MOBILE
        public class HogeService : IHogeService
        {
                static XmlWriterSettings settings = new XmlWriterSettings () { OmitXmlDeclaration = true };
index 2c7509da96cd4aa4b0f5cb860c3a1da5389aeba4..8f0cd0e14e28e5f90462acd83306d44d44497bb8 100644 (file)
@@ -37,6 +37,8 @@ using System.ServiceModel.Description;
 using System.ServiceModel.Dispatcher;\r
 using System.Net;\r
 \r
+using MonoTests.Helpers;\r
+\r
 namespace MonoTests.System.ServiceModel.Web\r
 {\r
        [TestFixture]\r
@@ -46,7 +48,7 @@ namespace MonoTests.System.ServiceModel.Web
                [Category("NotWorking")]\r
                public void ServiceDebugBehaviorTest () {\r
 \r
-                       var host = new WebServiceHost (typeof (MyService), new Uri ("http://localhost:30158/"));\r
+                       var host = new WebServiceHost (typeof (MyService), new Uri ("http://" + NetworkHelpers.LocalEphemeralEndPoint().ToString()));\r
                        ServiceEndpoint webHttp = host.AddServiceEndpoint ("MonoTests.System.ServiceModel.Web.WebServiceHostTest+MyService", new WebHttpBinding (), "WebHttpBinding");\r
 \r
                        Assert.AreEqual (true, host.Description.Behaviors.Find<ServiceDebugBehavior> ().HttpHelpPageEnabled, "HttpHelpPageEnabled #1");\r
@@ -64,7 +66,7 @@ namespace MonoTests.System.ServiceModel.Web
                [Category ("NotWorking")]\r
                public void WebHttpBehaviorTest1 () {\r
 \r
-                       var host = new WebServiceHost (typeof (MyService), new Uri ("http://localhost:30158/"));\r
+                       var host = new WebServiceHost (typeof (MyService), new Uri ("http://" + NetworkHelpers.LocalEphemeralEndPoint().ToString()));\r
                        ServiceEndpoint webHttp = host.AddServiceEndpoint ("MonoTests.System.ServiceModel.Web.WebServiceHostTest+MyService", new WebHttpBinding (), "WebHttpBinding");\r
                        ServiceEndpoint basicHttp = host.AddServiceEndpoint ("MonoTests.System.ServiceModel.Web.WebServiceHostTest+MyService", new BasicHttpBinding (), "BasicHttpBinding");\r
 \r
@@ -84,7 +86,7 @@ namespace MonoTests.System.ServiceModel.Web
                [Category("NotWorking")]\r
                public void WebHttpBehaviorTest2 () {\r
 \r
-                       var host = new WebServiceHost (typeof (MyService), new Uri ("http://localhost:30158/"));\r
+                       var host = new WebServiceHost (typeof (MyService), new Uri ("http://" + NetworkHelpers.LocalEphemeralEndPoint().ToString()));\r
                        ServiceEndpoint webHttp = host.AddServiceEndpoint ("MonoTests.System.ServiceModel.Web.WebServiceHostTest+MyService", new WebHttpBinding (), "WebHttpBinding");\r
                        MyWebHttpBehavior behavior = new MyWebHttpBehavior ();\r
                        behavior.ApplyDispatchBehaviorBegin += delegate {\r
@@ -104,7 +106,7 @@ namespace MonoTests.System.ServiceModel.Web
                [Test]\r
                public void ServiceBaseUriTest () {\r
 \r
-                       var host = new WebServiceHost (typeof (MyService), new Uri ("http://localhost:30158/"));\r
+                       var host = new WebServiceHost (typeof (MyService), new Uri ("http://" + NetworkHelpers.LocalEphemeralEndPoint().ToString()));\r
                        Assert.AreEqual (0, host.Description.Endpoints.Count, "no endpoints yet");\r
                        host.Open ();\r
                        Assert.AreEqual (1, host.Description.Endpoints.Count, "default endpoint after open");\r
@@ -138,12 +140,13 @@ namespace MonoTests.System.ServiceModel.Web
                [Test]\r
                public void Connect ()\r
                {\r
+                       var url = "http://" + NetworkHelpers.LocalEphemeralEndPoint().ToString();\r
                        var host = new WebServiceHost (typeof (DemoService), new Uri\r
-                                                      ("http://localhost:30158/"));\r
+                                                      (url));\r
                        try {\r
                                host.Open ();\r
                                var wc = new WebClient();\r
-                               wc.DownloadString("http://localhost:30158/testData");\r
+                               wc.DownloadString(url + "/testData");\r
                                Console.WriteLine();\r
                        } finally {\r
                                host.Close();\r
diff --git a/mcs/class/System.ServiceModel.Web/common_System.ServiceModel.Web.dll.sources b/mcs/class/System.ServiceModel.Web/common_System.ServiceModel.Web.dll.sources
deleted file mode 100644 (file)
index 1a8e3c3..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-../../build/common/Consts.cs
-../../build/common/Locale.cs
-../../build/common/MonoTODOAttribute.cs
-Assembly/AssemblyInfo.cs
-Assembly/TypeForwarders.cs
-System.ServiceModel.Activation/WebScriptServiceHostFactory.cs
-System.ServiceModel.Activation/WebServiceHostFactory.cs
-System.ServiceModel.Channels/WebBodyFormatMessageProperty.cs
-System.ServiceModel.Channels/WebContentFormat.cs
-System.ServiceModel.Channels/WebContentTypeMapper.cs
-System.ServiceModel.Channels/WebMessageEncoder.cs
-System.ServiceModel.Channels/WebMessageEncoderFactory.cs
-System.ServiceModel.Channels/WebMessageEncodingBindingElement.cs
-System.ServiceModel.Configuration/WebHttpBindingCollectionElement.cs
-System.ServiceModel.Configuration/WebHttpBindingElement.cs
-System.ServiceModel.Configuration/WebHttpElement.cs
-System.ServiceModel.Configuration/WebHttpEndpointCollectionElement.cs
-System.ServiceModel.Configuration/WebHttpEndpointElement.cs
-System.ServiceModel.Configuration/WebHttpSecurityElement.cs
-System.ServiceModel.Configuration/WebMessageEncodingElement.cs
-System.ServiceModel.Configuration/WebScriptEnablingElement.cs
-System.ServiceModel.Configuration/WebScriptEndpointCollectionElement.cs
-System.ServiceModel.Configuration/WebScriptEndpointElement.cs
-System.ServiceModel.Description/WebHttpBehavior.cs
-System.ServiceModel.Description/WebHttpEndpoint.cs
-System.ServiceModel.Description/WebScriptEnablingBehavior.cs
-System.ServiceModel.Description/WebScriptEndpoint.cs
-System.ServiceModel.Description/WebServiceEndpoint.cs
-System.ServiceModel.Dispatcher/JsonQueryStringConverter.cs
-System.ServiceModel.Dispatcher/QueryStringConverter.cs
-System.ServiceModel.Dispatcher/WebHttpDispatchOperationSelector.cs
-System.ServiceModel.Dispatcher/WebMessageFormatter.cs
-System.ServiceModel.Web/IncomingWebRequestContext.cs
-System.ServiceModel.Web/IncomingWebResponseContext.cs
-System.ServiceModel.Web/OutgoingWebRequestContext.cs
-System.ServiceModel.Web/OutgoingWebResponseContext.cs
-System.ServiceModel.Web/WebAttributeInfo.cs
-System.ServiceModel.Web/WebChannelFactory.cs
-System.ServiceModel.Web/WebGetAttribute.cs
-System.ServiceModel.Web/WebInvokeAttribute.cs
-System.ServiceModel.Web/WebMessageBodyStyle.cs
-System.ServiceModel.Web/WebMessageFormat.cs
-System.ServiceModel.Web/WebOperationContext.cs
-System.ServiceModel.Web/WebServiceHost.cs
-System.ServiceModel/WebHttpBinding.cs
-System.ServiceModel/WebHttpSecurity.cs
-System.ServiceModel/WebHttpSecurityMode.cs
diff --git a/mcs/class/System.ServiceModel.Web/monotouch_watch_System.ServiceModel.Web.dll.sources b/mcs/class/System.ServiceModel.Web/monotouch_watch_System.ServiceModel.Web.dll.sources
new file mode 100644 (file)
index 0000000..cbea0fa
--- /dev/null
@@ -0,0 +1 @@
+#include mobile_System.ServiceModel.Web.dll.sources
diff --git a/mcs/class/System.ServiceModel.Web/net_2_0_System.ServiceModel.Web.dll.sources b/mcs/class/System.ServiceModel.Web/net_2_0_System.ServiceModel.Web.dll.sources
deleted file mode 100644 (file)
index effcff7..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#include common_System.ServiceModel.Web.dll.sources
-System.Runtime.Serialization.Json/DataContractJsonSerializer.cs
-System.Runtime.Serialization.Json/IXmlJsonReaderInitializer.cs
-System.Runtime.Serialization.Json/IXmlJsonWriterInitializer.cs
-System.Runtime.Serialization.Json/JavaScriptObjectDeserializer.cs
-System.Runtime.Serialization.Json/JavaScriptReader.cs
-System.Runtime.Serialization.Json/JsonReader.cs
-System.Runtime.Serialization.Json/JsonReaderWriterFactory.cs
-System.Runtime.Serialization.Json/JsonSerializationReader.cs
-System.Runtime.Serialization.Json/JsonSerializationWriter.cs
-System.Runtime.Serialization.Json/JsonWriter.cs
-System.Runtime.Serialization.Json/TypeMap.cs
-System.ServiceModel.Syndication/Atom10FeedFormatter.cs
-System.ServiceModel.Syndication/Atom10FeedFormatter_1.cs
-System.ServiceModel.Syndication/Atom10ItemFormatter.cs
-System.ServiceModel.Syndication/Atom10ItemFormatter_1.cs
-System.ServiceModel.Syndication/AtomPub10CategoriesDocumentFormatter.cs
-System.ServiceModel.Syndication/AtomPub10ServiceDocumentFormatter.cs
-System.ServiceModel.Syndication/AtomPub10ServiceDocumentFormatter_1.cs
-System.ServiceModel.Syndication/CategoriesDocument.cs
-System.ServiceModel.Syndication/CategoriesDocumentFormatter.cs
-System.ServiceModel.Syndication/ISyndicationElement.cs
-System.ServiceModel.Syndication/InlineCategoriesDocument.cs
-System.ServiceModel.Syndication/ReferencedCategoriesDocument.cs
-System.ServiceModel.Syndication/ResourceCollectionInfo.cs
-System.ServiceModel.Syndication/Rss20FeedFormatter.cs
-System.ServiceModel.Syndication/Rss20FeedFormatter_1.cs
-System.ServiceModel.Syndication/Rss20ItemFormatter.cs
-System.ServiceModel.Syndication/Rss20ItemFormatter_1.cs
-System.ServiceModel.Syndication/ServiceDocument.cs
-System.ServiceModel.Syndication/ServiceDocumentFormatter.cs
-System.ServiceModel.Syndication/SyndicationCategory.cs
-System.ServiceModel.Syndication/SyndicationContent.cs
-System.ServiceModel.Syndication/SyndicationElementExtension.cs
-System.ServiceModel.Syndication/SyndicationElementExtensionCollection.cs
-System.ServiceModel.Syndication/SyndicationExtensions.cs
-System.ServiceModel.Syndication/SyndicationFeed.cs
-System.ServiceModel.Syndication/SyndicationFeedFormatter.cs
-System.ServiceModel.Syndication/SyndicationItem.cs
-System.ServiceModel.Syndication/SyndicationItemFormatter.cs
-System.ServiceModel.Syndication/SyndicationLink.cs
-System.ServiceModel.Syndication/SyndicationPerson.cs
-System.ServiceModel.Syndication/SyndicationVersions.cs
-System.ServiceModel.Syndication/TextSyndicationContent.cs
-System.ServiceModel.Syndication/TextSyndicationContentKind.cs
-System.ServiceModel.Syndication/UrlSyndicationContent.cs
-System.ServiceModel.Syndication/Workspace.cs
-System.ServiceModel.Syndication/XmlSyndicationContent.cs
-System/UriTemplate.cs
-System/UriTemplateEquivalenceComparer.cs
-System/UriTemplateMatch.cs
-System/UriTemplateMatchException.cs
-System/UriTemplateTable.cs
diff --git a/mcs/class/System.ServiceModel.Web/net_4_0_System.ServiceModel.Web.dll.sources b/mcs/class/System.ServiceModel.Web/net_4_0_System.ServiceModel.Web.dll.sources
deleted file mode 100644 (file)
index 60e0dbb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include common_System.ServiceModel.Web.dll.sources
diff --git a/mcs/class/System.ServiceModel.Web/net_4_5_System.ServiceModel.Web.dll.sources b/mcs/class/System.ServiceModel.Web/net_4_5_System.ServiceModel.Web.dll.sources
deleted file mode 100644 (file)
index f3aa56a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include net_4_0_System.ServiceModel.Web.dll.sources
diff --git a/mcs/class/System.ServiceModel.Web/xammac_net_4_5_System.ServiceModel.Web.dll.sources b/mcs/class/System.ServiceModel.Web/xammac_net_4_5_System.ServiceModel.Web.dll.sources
new file mode 100644 (file)
index 0000000..f45560f
--- /dev/null
@@ -0,0 +1,39 @@
+#include mobile_System.ServiceModel.Web.dll.sources
+System.ServiceModel.Web/IncomingWebRequestContext.cs
+System.ServiceModel.Web/OutgoingWebResponseContext.cs
+System.ServiceModel.Syndication/Atom10FeedFormatter.cs
+System.ServiceModel.Syndication/Atom10FeedFormatter_1.cs
+System.ServiceModel.Syndication/Atom10ItemFormatter.cs
+System.ServiceModel.Syndication/Atom10ItemFormatter_1.cs
+System.ServiceModel.Syndication/AtomPub10CategoriesDocumentFormatter.cs
+System.ServiceModel.Syndication/AtomPub10ServiceDocumentFormatter.cs
+System.ServiceModel.Syndication/AtomPub10ServiceDocumentFormatter_1.cs
+System.ServiceModel.Syndication/CategoriesDocument.cs
+System.ServiceModel.Syndication/CategoriesDocumentFormatter.cs
+System.ServiceModel.Syndication/ISyndicationElement.cs
+System.ServiceModel.Syndication/InlineCategoriesDocument.cs
+System.ServiceModel.Syndication/ReferencedCategoriesDocument.cs
+System.ServiceModel.Syndication/ResourceCollectionInfo.cs
+System.ServiceModel.Syndication/Rss20FeedFormatter.cs
+System.ServiceModel.Syndication/Rss20FeedFormatter_1.cs
+System.ServiceModel.Syndication/Rss20ItemFormatter.cs
+System.ServiceModel.Syndication/Rss20ItemFormatter_1.cs
+System.ServiceModel.Syndication/ServiceDocument.cs
+System.ServiceModel.Syndication/ServiceDocumentFormatter.cs
+System.ServiceModel.Syndication/SyndicationCategory.cs
+System.ServiceModel.Syndication/SyndicationContent.cs
+System.ServiceModel.Syndication/SyndicationElementExtension.cs
+System.ServiceModel.Syndication/SyndicationElementExtensionCollection.cs
+System.ServiceModel.Syndication/SyndicationExtensions.cs
+System.ServiceModel.Syndication/SyndicationFeed.cs
+System.ServiceModel.Syndication/SyndicationFeedFormatter.cs
+System.ServiceModel.Syndication/SyndicationItem.cs
+System.ServiceModel.Syndication/SyndicationItemFormatter.cs
+System.ServiceModel.Syndication/SyndicationLink.cs
+System.ServiceModel.Syndication/SyndicationPerson.cs
+System.ServiceModel.Syndication/SyndicationVersions.cs
+System.ServiceModel.Syndication/TextSyndicationContent.cs
+System.ServiceModel.Syndication/TextSyndicationContentKind.cs
+System.ServiceModel.Syndication/UrlSyndicationContent.cs
+System.ServiceModel.Syndication/Workspace.cs
+System.ServiceModel.Syndication/XmlSyndicationContent.cs
\ No newline at end of file
index daa5ae121d1b65ece1c66920ec84fc3965aaca0d..c13a103d20ad7ccd09b8e50ca1cf87b70b6bcc9d 100644 (file)
@@ -75,7 +75,7 @@ using System.Runtime.InteropServices;
 [assembly: InternalsVisibleTo ("System.ServiceModel.Discovery, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")] // AnnouncementChannelEndpointElementCollection requires it.
 #endif
 
-#if NET_4_0 && HAS_ACTIVATION
+#if HAS_ACTIVATION
 
 [assembly: TypeForwardedTo (typeof (System.ServiceModel.ServiceHostingEnvironment))]
 [assembly: TypeForwardedTo (typeof (System.ServiceModel.Activation.ServiceHostFactory))]
index e125104773c10a514592758678b4cb34ad2f0643..dc094beb4501f1571d2d86b19f543579cc67fd44 100644 (file)
@@ -1,3 +1,4 @@
+#if !XAMMAC_4_5
 using System.Collections.Generic;
 using System.Reflection;
 using System.Runtime.Serialization;
@@ -187,3 +188,4 @@ namespace Mono.Xml.XPath
        class Dummy {}
 }
 #endif
+#endif
\ No newline at end of file
diff --git a/mcs/class/System.ServiceModel/Dummy_XM_4_5.cs b/mcs/class/System.ServiceModel/Dummy_XM_4_5.cs
new file mode 100644 (file)
index 0000000..eaaad97
--- /dev/null
@@ -0,0 +1,69 @@
+using System.Collections.Generic;
+using System.Reflection;
+using System.Runtime.Serialization;
+using System.Runtime.CompilerServices;
+using System.ServiceModel.Channels;
+using System.ServiceModel.Dispatcher;
+using System.Text;
+using System.Xml;
+
+namespace System.ServiceModel
+{
+       public class InstanceContext
+       {
+               public InstanceContext (object dummy) {}
+       }
+}
+
+namespace System.ServiceModel.PeerResolvers
+{
+       class Dummy {}
+}
+
+namespace System.ServiceModel.Configuration
+{
+       class Dummy {}
+}
+namespace System.ServiceModel.Channels.Http
+{
+}
+namespace System.ServiceModel.Channels.NetTcp
+{
+}
+
+namespace System.ServiceModel.Dispatcher
+{
+       public sealed class EndpointDispatcher
+       {
+               internal EndpointDispatcher ()
+               {
+               }
+       }
+}
+
+namespace System.ServiceModel.Channels
+{
+       public static class UrlUtility {
+               public static string UrlEncode (string s, Encoding e)
+               {
+                       return System.Runtime.UrlUtility.UrlEncode (s, e);
+               }
+
+               public static string UrlDecode (string s, Encoding e)
+               {
+                       return System.Runtime.UrlUtility.UrlDecode (s, e);
+               }
+       }
+}
+
+namespace System.ServiceModel.Description
+{
+       public interface IPolicyExportExtension {}
+       public interface IPolicyImportExtension {}
+       public interface IWsdlExportExtension {}
+       public interface IWsdlImportExtension {}
+}
+namespace System.ServiceModel.Channels
+{
+       public interface ITransportTokenAssertionProvider {}
+}
\ No newline at end of file
index 5436992c25f9cc9a8c15725f6aea2ba4eaf88fe1..03dbd5fd9e59d7fd8b5b225e7ed63040f22fc059 100644 (file)
@@ -15,22 +15,36 @@ LIB_MCS_FLAGS = \
                /d:TRACE \
                $(RESOURCE_FILES:%=/resource:%)
 
+ifdef XAMMAC_4_5
+LIB_REFS += System.ServiceModel.Internals
+endif
+
 ifneq (2.1, $(FRAMEWORK_VERSION))
-LIB_REFS += System.Configuration System.Data System.Security System.IdentityModel System.IdentityModel.Selectors System.Transactions System.Messaging System.Web System.Web.Services Mono.Security
+LIB_REFS += System.Configuration System.Data System.Security System.IdentityModel System.IdentityModel.Selectors System.Transactions System.Messaging System.Web.Services Mono.Security
 LIB_MCS_FLAGS += /d:NET_3_0
+
+ifndef NO_SYSTEM_WEB_DEPENDENCY
+LIB_REFS += System.Web
 endif
 
 ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
-LIB_REFS += System.Web.ApplicationServices
+
+ifndef NO_SYSTEM_SERVICEMODEL_ACTIVATION_DEPENDENCY
 activation = $(the_libdir_base)System.ServiceModel.Activation.dll
 servicemodel_deps = $(activation)
 
-LIB_REFS += System.Web.ApplicationServices
-
 ifneq (plainservice/,$(intermediate))
 LIB_MCS_FLAGS += -define:HAS_ACTIVATION -r:System.ServiceModel.Activation.dll
+endif 
+endif # NO_SYSTEM_SERVICEMODEL_ACTIVATION_DEPENDENCY
+
+ifndef NO_SYSTEM_WEB_APPSERVICES_DEPENDENCY
+LIB_REFS += System.Web.ApplicationServices
 endif
-endif
+
+endif # (4, $(FRAMEWORK_VERSION_MAJOR))
+
+endif # (2.1, $(FRAMEWORK_VERSION))
 
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
index 64f235d2ab7feeca7197d5e63959b94c7738d4ac..32ab72a9cb95ff67528d99e30d3e5f63914f4492 100644 (file)
@@ -131,7 +131,7 @@ namespace System.ServiceModel.Channels
                        return new BinaryMessageEncoderFactory (this);
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                [MonoTODO]
                void IWsdlExportExtension.ExportContract (WsdlExporter exporter,
                        WsdlContractConversionContext context)
index d77e34153d77ea616844482256f0632fa82cecf9..23c8081ebebe84c480ffac4f03540850c6ae5a3f 100644 (file)
@@ -137,7 +137,7 @@ namespace System.ServiceModel.Channels
 
                        OperationContext ctx = OperationContext.Current;
                        // FIXME: support more fault code depending on the exception type.
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                        // FIXME: set correct fault reason.
                        if (ctx != null && ctx.EndpointDispatcher.ChannelDispatcher.IncludeExceptionDetailInFaults) {
                                ExceptionDetail detail = new ExceptionDetail (error);
index eff17df9bcad017b48ec3d6039994aa8d2da1ba6..6b70a26e3b8ec5eb229631210f77928330faaaf1 100644 (file)
@@ -185,7 +185,7 @@ namespace System.ServiceModel.Channels
                        return typeof (TChannel) == typeof (IRequestChannel);
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                public override bool CanBuildChannelListener<TChannel> (
                        BindingContext context)
                {
@@ -201,7 +201,7 @@ namespace System.ServiceModel.Channels
                        return new HttpChannelFactory<TChannel> (this, context);
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                internal static object ListenerBuildLock = new object ();
 
                public override IChannelListener<TChannel> BuildChannelListener<TChannel> (
@@ -242,7 +242,7 @@ namespace System.ServiceModel.Channels
                        set { throw new NotImplementedException (); }
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                void IPolicyExportExtension.ExportPolicy (
                        MetadataExporter exporter,
                        PolicyConversionContext context)
index f12978747418340d305b8c242e3300769e7e183e..d95dd5f35ef09e0c2122eef6b84f20450ed617d3 100644 (file)
@@ -68,7 +68,7 @@ namespace System.ServiceModel.Channels
                        return base.BuildChannelFactory <TChannel> (context);
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                [MonoTODO]
                public override IChannelListener<TChannel>
                        BuildChannelListener<TChannel> (
@@ -83,7 +83,7 @@ namespace System.ServiceModel.Channels
                        return new HttpsTransportBindingElement (this);
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                public XmlElement GetTransportTokenAssertion ()
                {
                        var doc = new XmlDocument ();
index 4e9808daaef3e524ede9f1a5926069301b172347..49a8478f6f98af7b61a9254940ec6df38bb958b3 100644 (file)
@@ -59,7 +59,7 @@ namespace System.ServiceModel.Channels
                        return ctx.GetInnerProperty<T> ();
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                [MonoTODO]
                protected virtual void OnImportPolicy (XmlElement assertion,
                        MessageVersion messageVersion,
index 440aa83288c3d69579d8df1b0ce2963f83b1afc1..422e6e92c1f74619a899c1979d834bcd91a09733 100644 (file)
@@ -99,7 +99,7 @@ namespace System.ServiceModel.Channels
                        throw new NotImplementedException ();
                }
                
-#if !MOBILE
+#if !MOBILE && !XAMMAC_4_5
                void IPolicyExportExtension.ExportPolicy (MetadataExporter exporter, PolicyConversionContext context)
                {
                        throw new NotImplementedException ();
index 25de2b9205ed80f0c1ef031dee7f73aa71957ac3..45aee53ccec76f0df00f47a05e9b9d1e2de306c5 100644 (file)
@@ -30,7 +30,7 @@ using System.Collections.ObjectModel;
 using System.ServiceModel.Description;
 using System.ServiceModel.Channels;
 using System.ServiceModel.Security;
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
 using System.ServiceModel.Channels.Security;
 using System.IdentityModel.Selectors;
 using System.IdentityModel.Tokens;
@@ -44,7 +44,7 @@ namespace System.ServiceModel.Channels
        {
                internal SecurityBindingElement ()
                {
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                        DefaultAlgorithmSuite = SecurityAlgorithmSuite.Default;
                        MessageSecurityVersion = MessageSecurityVersion.Default;
                        KeyEntropyMode = SecurityKeyEntropyMode.CombinedEntropy;
@@ -60,7 +60,7 @@ namespace System.ServiceModel.Channels
 
                internal SecurityBindingElement (SecurityBindingElement other)
                {
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                        alg_suite = other.alg_suite;
                        key_entropy_mode = other.key_entropy_mode;
                        security_header_layout = other.security_header_layout;
@@ -79,7 +79,7 @@ namespace System.ServiceModel.Channels
                        LocalClientSettings = other.LocalClientSettings.Clone ();
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                SecurityAlgorithmSuite alg_suite;
                SecurityKeyEntropyMode key_entropy_mode;
                SecurityHeaderLayout security_header_layout;
@@ -93,7 +93,7 @@ namespace System.ServiceModel.Channels
 
                public LocalClientSecuritySettings LocalClientSettings { get; private set; }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                public SecurityAlgorithmSuite DefaultAlgorithmSuite {
                        get { return alg_suite; }
                        set { alg_suite = value; }
@@ -138,7 +138,7 @@ namespace System.ServiceModel.Channels
                [MonoTODO ("Implement for TransportSecurityBindingElement")]
                public override bool CanBuildChannelFactory<TChannel> (BindingContext context)
                {
-#if NET_2_1
+#if NET_2_1 || XAMMAC_4_5
                        // not sure this should be like this, but there isn't Symmetric/Asymmetric elements in 2.1 anyways.
                        return context.CanBuildInnerChannelFactory<TChannel> ();
 #else
@@ -183,7 +183,7 @@ namespace System.ServiceModel.Channels
                protected abstract IChannelFactory<TChannel>
                        BuildChannelFactoryCore<TChannel> (BindingContext context);
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                [MonoTODO ("Implement for TransportSecurityBindingElement")]
                public override bool CanBuildChannelListener<TChannel> (BindingContext context)
                {
@@ -270,7 +270,7 @@ namespace System.ServiceModel.Channels
 #endif
 
                #region Factory methods
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                public static SymmetricSecurityBindingElement 
                        CreateAnonymousForCertificateBindingElement ()
                {
@@ -559,14 +559,14 @@ namespace System.ServiceModel.Channels
                        CreateUserNameOverTransportBindingElement ()
                {
                        var be = new TransportSecurityBindingElement ();
-#if !NET_2_1 // FIXME: there should be whatever else to do for 2.1 instead.
+#if !NET_2_1 && !XAMMAC_4_5 // FIXME: there should be whatever else to do for 2.1 instead.
                        be.EndpointSupportingTokenParameters.SignedEncrypted.Add (new UserNameSecurityTokenParameters ());
 #endif
                        return be;
                }
                #endregion
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                // It seems almost internal, hardcoded like this (I tried
                // custom parameters that sets IssuedTokenSecurityTokenParameters
                // like below ones, but that didn't trigger this method).
index 91caa49cc3743cadbf5bf1efd6ca1db13ccd04c6..2330e8134c39c15a71d720b170f436b6c700f5de 100644 (file)
@@ -143,7 +143,7 @@ namespace System.ServiceModel.Channels
                        return new TextMessageEncoderFactory (this);
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                [MonoTODO]
                protected override void OnImportPolicy (XmlElement assertion,
                        MessageVersion messageVersion,
index 9f0a92ffc93deb0483ea7e3ec005e1d4b6be3878..4f1a5fde8f20298e778c7af08a98c5138b246aee 100644 (file)
@@ -92,7 +92,7 @@ namespace System.ServiceModel.Channels
                        return context.GetInnerProperty<T> ();
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                internal static XmlElement CreateTransportBinding (XmlElement transportToken)
                {
                        var doc = new XmlDocument ();
index a366b168045725ba6f00809dba1e679e27b015b2..e29e6f0c554491303a5028ff7c5c8c982a848b0d 100644 (file)
@@ -65,7 +65,7 @@ namespace System.ServiceModel.Channels
                        throw new NotImplementedException ();
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                [MonoTODO]
                protected override IChannelListener<TChannel>
                        BuildChannelListenerCore<TChannel> (
index 623743d0c7cc39e62e8a32ccab0d4e723ace2414..43918f6f6014793d55cd50d551f52cddcef9a53a 100644 (file)
@@ -35,7 +35,9 @@ using System.ServiceModel.Channels;
 using System.ServiceModel.Configuration;
 using System.ServiceModel.Description;
 using System.ServiceModel.Dispatcher;
+#if !XAMMAC_4_5
 using System.Web.Configuration;
+#endif
 
 using SysConfig = System.Configuration.Configuration;
 
@@ -43,6 +45,7 @@ namespace System.ServiceModel.Configuration
 {
        internal static class ConfigUtil
        {
+#if !XAMMAC_4_5
                static object GetSection (string name)
                {
                        if (ServiceHostingEnvironment.InAspNet)
@@ -242,6 +245,7 @@ namespace System.ServiceModel.Configuration
                {
                        return new EndpointAddress (el.Address, el.Identity != null ? el.Identity.CreateInstance () : null, el.Headers.Headers);
                }
+#endif
 
                public static EndpointIdentity CreateInstance (this IdentityElement el)
                {
@@ -299,6 +303,7 @@ namespace System.ServiceModel.Configuration
                        return CreateCertificateFrom (el.StoreLocation, el.StoreName, el.X509FindType, el.FindValue);
                }
 
+#if !XAMMAC_4_5
                public static BindingCollectionElement FindCollectionElement (Binding binding, SysConfig config)
                {
                        var section = (BindingsSection) config.GetSection ("system.serviceModel/bindings");
@@ -309,6 +314,7 @@ namespace System.ServiceModel.Configuration
                        
                        return null;
                }
+#endif
        }
 
        enum NamedConfigCategory
index 04dc37caba4d3d757f5417a02bb782f8b89387be..951adecf874c7587c6d708d87230de898df4361c 100644 (file)
@@ -40,7 +40,7 @@ using System.ServiceModel.Security.Tokens;
 namespace System.ServiceModel.Description
 {
        public class ClientCredentials
-#if NET_2_1
+#if NET_2_1 || XAMMAC_4_5
                : IEndpointBehavior
 #else
                : SecurityCredentialsManager, IEndpointBehavior
@@ -128,7 +128,7 @@ namespace System.ServiceModel.Description
                        return new ClientCredentials (this);
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                public override SecurityTokenManager CreateSecurityTokenManager ()
                {
                        return new ClientCredentialsSecurityTokenManager (this);
index 6ff636543262829f4dcc662e507f22d3ea97ee42..dc25161d460e7f1d1af46ac6637f046f1f76f09b 100644 (file)
@@ -112,7 +112,7 @@ namespace System.ServiceModel.Description
                {
                }
                
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                //IWsdlExportExtension
 
                void IWsdlExportExtension.ExportContract (WsdlExporter exporter,
index 70e427a26c26d9d775cf5eca7ae20509ca1c1dcc..5e3924b26ee1b5e69e5e1a3bed6252213ec4feb3 100644 (file)
@@ -100,7 +100,7 @@ namespace System.ServiceModel.Description
                        set { type = value; }
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                internal XsdDataContractImporter DataContractImporter { get; set; }
                internal XmlSerializerMessageContractImporterInternal XmlSerializationImporter { get; set; }
                internal System.CodeDom.CodeTypeReference CodeTypeReference { get; set; }
index 4c41c6b50ca42bfb09cbbb6868396a736c278905..1895c10e75968bf968d91bae86ea149212f5b744 100644 (file)
@@ -104,7 +104,7 @@ namespace System.ServiceModel.Description
                {
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                void IWsdlExportExtension.ExportContract (
                        WsdlExporter exporter,
                        WsdlContractConversionContext context)
index 190bc0ea247c10658c4a78664a4ff415909d3835..db050b9067f727c474ed694a46e39a81ba62d7cf 100644 (file)
@@ -36,7 +36,7 @@ namespace System.ServiceModel.Diagnostics
        {
                public MessageLoggingSettings ()
                {
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                        var e = ConfigUtil.DiagnosticSection.MessageLogging;
                        LogEntireMessage = e.LogEntireMessage;
                        LogKnownPii = e.LogKnownPii;
index ca5e2e34c81bbd40723ec97a1865f59a52b58207..c005094275c5a9c5020dc612fd811eeb8fa8af98 100644 (file)
@@ -584,10 +584,14 @@ namespace System.ServiceModel.Dispatcher
                        {
                                Message msg;
                                var input = (IInputChannel) result.AsyncState;
-                               if (input.EndTryReceive (result, out msg))
-                                       ProcessInput (input, msg);
-                               else
+                               try {
+                                       if (input.EndTryReceive (result, out msg))
+                                               ProcessInput (input, msg);
+                                       else
+                                               input.Close ();
+                               } catch (ObjectDisposedException) {
                                        input.Close ();
+                               }
                        }
 
                        void ProcessRequest (IReplyChannel reply, RequestContext rc)
index f226260839e20812c03f73f56b295b389315a1fc..e9fb67f98e9e2c13265ba3fd6e333911b8fc016c 100644 (file)
@@ -214,7 +214,7 @@ namespace System.ServiceModel.Dispatcher
 
                void ThrowIfOpened ()
                {
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                        // FIXME: get callback client runtime status when ChannelDispatcher is not available.
                        var state = Parent.ChannelDispatcher != null ? Parent.ChannelDispatcher.State : CommunicationState.Created; // Parent.CallbackClientRuntime.ChannelFactory.State;
                        switch (state) {
index f2a48bf51788ee7492a833d26c299f6c7cb08d58..f6660e1c19c3826ffc1892a3898ffe97152e434d 100644 (file)
@@ -31,8 +31,10 @@ using System.Collections.ObjectModel;
 using System.Reflection;
 #if !NET_2_1
 using System.IdentityModel.Policy;
+#if !XAMMAC_4_5
 using System.Web.Security;
 #endif
+#endif
 using System.Text;
 using System.Threading;
 using System.ServiceModel;
@@ -43,7 +45,7 @@ namespace System.ServiceModel.Dispatcher
 {
        public sealed class DispatchRuntime
        {
-#if NET_2_1
+#if NET_2_1 || XAMMAC_4_5
                internal DispatchRuntime (EndpointDispatcher dispatcher, ClientRuntime callbackClientRuntime)
                {
                        UnhandledDispatchOperation = new DispatchOperation (
index 7a5148018b5d18f43ae88a5626ee978f0caa5b6b..20a6a2cbf7a52679a036e6fe605796aeb812ad6d 100644 (file)
@@ -953,3 +953,64 @@ System.ServiceModel/WSHttpBindingBase.cs
 System.ServiceModel/WSHttpSecurity.cs
 System.ServiceModel/X509CertificateEndpointIdentity.cs
 System.ServiceModel/XmlSerializerFormatAttribute.cs
+
+System.ServiceModel.Channels/IHttpCookieContainer.cs
+System.ServiceModel.Channels/HttpCookieContainerBindingElement.cs
+
+../System.ServiceModel.Web/System.ServiceModel.Syndication/Atom10FeedFormatter.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/Atom10FeedFormatter_1.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/Atom10ItemFormatter.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/Atom10ItemFormatter_1.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/AtomPub10CategoriesDocumentFormatter.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/AtomPub10ServiceDocumentFormatter.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/AtomPub10ServiceDocumentFormatter_1.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/CategoriesDocument.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/CategoriesDocumentFormatter.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/ISyndicationElement.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/InlineCategoriesDocument.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/ReferencedCategoriesDocument.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/ResourceCollectionInfo.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/Rss20FeedFormatter.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/Rss20FeedFormatter_1.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/Rss20ItemFormatter.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/Rss20ItemFormatter_1.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/ServiceDocument.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/ServiceDocumentFormatter.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationCategory.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationContent.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationElementExtension.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationElementExtensionCollection.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationExtensions.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationFeed.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationFeedFormatter.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationItem.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationItemFormatter.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationLink.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationPerson.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationVersions.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/TextSyndicationContent.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/TextSyndicationContentKind.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/UrlSyndicationContent.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/Workspace.cs
+../System.ServiceModel.Web/System.ServiceModel.Syndication/XmlSyndicationContent.cs
+../System.ServiceModel.Web/System/UriTemplate.cs
+../System.ServiceModel.Web/System/UriTemplateEquivalenceComparer.cs
+../System.ServiceModel.Web/System/UriTemplateMatch.cs
+../System.ServiceModel.Web/System/UriTemplateMatchException.cs
+../System.ServiceModel.Web/System/UriTemplateTable.cs
+
+System.ServiceModel/HttpBindingBase.cs
+System.ServiceModel/BasicHttpBinding_4_5.cs
+System.ServiceModel/BasicHttpsBinding.cs
+System.ServiceModel/BasicHttpsSecurity.cs
+System.ServiceModel/NetHttpBinding.cs
+System.ServiceModel/NetHttpMessageEncoding.cs
+System.ServiceModel.Channels/CompressionFormat.cs
+System.ServiceModel.Channels/WebSocketTransportSettings.cs
+System.ServiceModel.Channels/WebSocketTransportUsage.cs
+System.ServiceModel.Configuration/BasicHttpBindingElement_4_5.cs
+System.ServiceModel.Configuration/HttpBindingBaseElement.cs
+System.ServiceModel.Configuration/BasicHttpsBindingElement.cs
+System.ServiceModel.Configuration/BasicHttpsSecurityElement.cs
+System.ServiceModel.Configuration/BasicHttpsBindingCollectionElement.cs
+
index c671f1e79752197c83bd6c8151ca27909bd8e7f8..ef9715fb4b4fb00e0cc5ffb30c1fac359060ec25 100644 (file)
@@ -50,7 +50,7 @@ namespace System.ServiceModel
                {
                }
                
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                public BasicHttpBinding (string configurationName)
                        : this ()
                {
@@ -110,7 +110,7 @@ namespace System.ServiceModel
                        SecurityBindingElement element;
                        switch (Security.Mode) {
                        case BasicHttpSecurityMode.Message:
-#if NET_2_1
+#if NET_2_1 || XAMMAC_4_5
                                throw new NotImplementedException ();
 #else
                                if (Security.Message.ClientCredentialType != BasicHttpMessageCredentialType.Certificate)
@@ -121,7 +121,7 @@ namespace System.ServiceModel
 #endif
 
                        case BasicHttpSecurityMode.TransportWithMessageCredential:
-#if NET_2_1
+#if NET_2_1 || XAMMAC_4_5
                                throw new NotImplementedException ();
 #else
                                if (Security.Message.ClientCredentialType != BasicHttpMessageCredentialType.Certificate)
@@ -135,7 +135,7 @@ namespace System.ServiceModel
                                return null;
                        }
                        
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                        element.SetKeyDerivation (false);
                        element.SecurityHeaderLayout = SecurityHeaderLayout.Lax;
 #endif
@@ -150,7 +150,7 @@ namespace System.ServiceModel
                                ReaderQuotas.CopyTo (tm.ReaderQuotas);
                                return tm;
                        } else {
-#if NET_2_1
+#if NET_2_1 || XAMMAC_4_5
                                throw new NotImplementedException ();
 #else
                                return new MtomMessageEncodingBindingElement (
index 1c65906f6bee524b0b364816f86f1b5dac6efb71..e6a96dac52a1aa8de552250e70c59d34746a3f66 100644 (file)
@@ -50,7 +50,7 @@ namespace System.ServiceModel
                {
                }
                
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                public BasicHttpsBinding (string configurationName)
                        : this ()
                {
@@ -101,7 +101,8 @@ namespace System.ServiceModel
                        SecurityBindingElement element;
                        switch (Security.Mode) {
                        case BasicHttpsSecurityMode.TransportWithMessageCredential:
-#if NET_2_1
+#if NET_2_1 || XAMMAC_4_5
+
                                throw new NotImplementedException ();
 #else
                                if (Security.Message.ClientCredentialType != BasicHttpMessageCredentialType.Certificate)
@@ -115,7 +116,7 @@ namespace System.ServiceModel
                                return null;
                        }
                        
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                        element.SetKeyDerivation (false);
                        element.SecurityHeaderLayout = SecurityHeaderLayout.Lax;
 #endif
@@ -130,7 +131,7 @@ namespace System.ServiceModel
                                ReaderQuotas.CopyTo (tm.ReaderQuotas);
                                return tm;
                        } else {
-#if NET_2_1
+#if NET_2_1 || XAMMAC_4_5
                                throw new NotImplementedException ();
 #else
                                return new MtomMessageEncodingBindingElement (
index 6835651516ed869087b30804db791e77cef69531..e5ef83357f35ebc8401a4bed40e6d6fb43a5a2e6 100644 (file)
@@ -90,7 +90,7 @@ namespace System.ServiceModel
                        if (endpointConfig == null)
                                return;
 
-#if NET_2_1
+#if NET_2_1 || XAMMAC_4_5
                        try {
                                // It should automatically use XmlXapResolver
                                var cfg = new SilverlightClientConfigLoader ().Load (XmlReader.Create ("ServiceReferences.ClientConfig"));
@@ -160,7 +160,7 @@ namespace System.ServiceModel
 #endif
                }
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                private void ApplyBehavior (string behaviorConfig)
                {
                        BehaviorsSection behaviorsSection = ConfigUtil.BehaviorsSection;
index 0d37c4cf22c9b8aa5437a241c3c5907728636f05..097e8cbfa4e1097b207794fafa5e9921ee43479c 100644 (file)
@@ -45,7 +45,7 @@ namespace System.ServiceModel
                }
 
                Message incoming_message;
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                EndpointDispatcher dispatcher;
 #endif
                IContextChannel channel;
@@ -83,7 +83,7 @@ namespace System.ServiceModel
                }
 
 
-#if !NET_2_1
+#if !NET_2_1 && !XAMMAC_4_5
                public EndpointDispatcher EndpointDispatcher {
                        get { return dispatcher; }
                        set { dispatcher = value; }
index 16f0325837a01bf0172d917d2a247f6d8eb24f67..75d412d50c25720ad3b65b08644607ae5d15cc75 100644 (file)
@@ -25,7 +25,8 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_2_1
+#if NET_2_1 || XAMMAC_4_5
+
 using System;
 using System.Collections.Generic;
 using System.ServiceModel.Channels;
index c71ac9b0aa5ce2f0f9b592aacb065ed7ba025c12..deb325709e5eb9cb1235044bf952f85994b148c6 100644 (file)
@@ -1,4 +1,5 @@
 NUnitMoonHelper.cs
+../../test-helpers/NetworkHelpers.cs
 FeatureBased/Features.Client/AsyncCallTesterProxy.cs
 FeatureBased/Features.Client/AsyncPatternServer.cs
 FeatureBased/Features.Client/DataContractTesterProxy.cs
@@ -210,3 +211,5 @@ MetadataTests/MetadataSamples.cs
 MetadataTests/TestContext.cs
 MetadataTests/TestLabel.cs
 MetadataTests/ExportTests.cs
+../../test-helpers/NetworkHelpers.cs
+
index e9f9cee52c2827291ab87ad445e6e7c851d52b42..370a5bbd0dc7e928956a78c9b8349354c81a9a36 100644 (file)
@@ -43,6 +43,8 @@ using System.Threading;
 using System.Xml;
 using NUnit.Framework;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel.Channels
 {
        [TestFixture]
@@ -131,7 +133,7 @@ namespace MonoTests.System.ServiceModel.Channels
                        CustomBinding binding = new CustomBinding (sbe,
                                new HttpTransportBindingElement ());
                        IChannelListener<IReplyChannel> l =
-                               binding.BuildChannelListener<IReplyChannel> (new Uri ("http://localhost:37564"), new BindingParameterCollection ());
+                               binding.BuildChannelListener<IReplyChannel> (new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()), new BindingParameterCollection ());
                        try {
                                l.Open ();
                        } finally {
@@ -171,11 +173,11 @@ namespace MonoTests.System.ServiceModel.Channels
                        b_res.ReceiveTimeout = b_res.SendTimeout = TimeSpan.FromSeconds (10);
 
                        EndpointAddress remaddr = new EndpointAddress (
-                               new Uri ("http://localhost:37564"),
+                               new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()),
                                new X509CertificateEndpointIdentity (cert2));
                        CalcProxy proxy = null;
                        ServiceHost host = new ServiceHost (typeof (CalcService));
-                       host.AddServiceEndpoint (typeof (ICalc), b_res, "http://localhost:37564");
+                       host.AddServiceEndpoint (typeof (ICalc), b_res, "http://localhost:" + NetworkHelpers.FindFreePort ());
 
                        ServiceCredentials cred = new ServiceCredentials ();
                        cred.ServiceCertificate.Certificate = cert;
@@ -240,7 +242,7 @@ namespace MonoTests.System.ServiceModel.Channels
                                new HttpTransportBindingElement ();
                        CustomBinding binding = new CustomBinding (sbe, hbe);
                        host.AddServiceEndpoint (typeof (IFoo),
-                               binding, new Uri ("http://localhost:37564"));
+                               binding, new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()));
                        ServiceCredentials cred = new ServiceCredentials ();
                        cred.ServiceCertificate.Certificate =
                                new X509Certificate2 ("Test/Resources/test.pfx", "mono");
index 9c51d150f40c75d072b1de3726e1516e63ec49c9..f1511d5245a6891d51c4d7305f4001e9d390198d 100644 (file)
@@ -36,6 +36,8 @@ using System.Text;
 using System.Xml;
 using NUnit.Framework;
 
+using MonoTests.Helpers;
+
 using Element = System.ServiceModel.Channels.BinaryMessageEncodingBindingElement;
 
 namespace MonoTests.System.ServiceModel.Channels
@@ -191,14 +193,15 @@ namespace MonoTests.System.ServiceModel.Channels
                        var bindingsvc = new CustomBinding (new BindingElement [] {
                                new BinaryMessageEncodingBindingElement (),
                                new TcpTransportBindingElement () });
-                       host.AddServiceEndpoint (typeof (IFoo), bindingsvc, "net.tcp://localhost:37564/");
+                       int port = NetworkHelpers.FindFreePort ();
+                       host.AddServiceEndpoint (typeof (IFoo), bindingsvc, "net.tcp://localhost:" + port + "/");
                        host.Description.Behaviors.Find<ServiceBehaviorAttribute> ().IncludeExceptionDetailInFaults = true;
                        host.Open (TimeSpan.FromSeconds (5));
                        try {
                                for (int i = 0; i < 2; i++) {
                                        var bindingcli = new NetTcpBinding ();
                                        bindingcli.Security.Mode = SecurityMode.None;
-                                       var cli = new ChannelFactory<IFooClient> (bindingcli, new EndpointAddress ("net.tcp://localhost:37564/")).CreateChannel ();
+                                       var cli = new ChannelFactory<IFooClient> (bindingcli, new EndpointAddress ("net.tcp://localhost:" + port + "/")).CreateChannel ();
                                        Assert.AreEqual ("test for echo", cli.Echo ("TEST FOR ECHO"), "#1");
                                        var sid = cli.SessionId;
                                        Assert.AreEqual (3000, cli.Add (1000, 2000), "#2");
@@ -207,7 +210,7 @@ namespace MonoTests.System.ServiceModel.Channels
                                }
                        } finally {
                                host.Close (TimeSpan.FromSeconds (5));
-                               var t = new TcpListener (37564);
+                               var t = new TcpListener (port);
                                t.Start ();
                                t.Stop ();
                        }
@@ -220,7 +223,8 @@ namespace MonoTests.System.ServiceModel.Channels
                        var bindingsvc = new CustomBinding (new BindingElement [] {
                                new BinaryMessageEncodingBindingElement (),
                                new HttpTransportBindingElement () });
-                       host.AddServiceEndpoint (typeof (IFoo), bindingsvc, "http://localhost:37564/");
+                       int port = NetworkHelpers.FindFreePort ();
+                       host.AddServiceEndpoint (typeof (IFoo), bindingsvc, "http://localhost:" + port + "/");
                        host.Description.Behaviors.Find<ServiceBehaviorAttribute> ().IncludeExceptionDetailInFaults = true;
                        host.Open (TimeSpan.FromSeconds (5));
                        try {
@@ -228,7 +232,7 @@ namespace MonoTests.System.ServiceModel.Channels
                                        var bindingcli = new CustomBinding (new BindingElement [] {
                                                new BinaryMessageEncodingBindingElement (),
                                                new HttpTransportBindingElement () });
-                                       var cli = new ChannelFactory<IFooClient> (bindingcli, new EndpointAddress ("http://localhost:37564/")).CreateChannel ();
+                                       var cli = new ChannelFactory<IFooClient> (bindingcli, new EndpointAddress ("http://localhost:" + port + "/")).CreateChannel ();
                                        Assert.AreEqual ("test for echo", cli.Echo ("TEST FOR ECHO"), "#1");
                                        var sid = cli.SessionId;
                                        Assert.AreEqual (3000, cli.Add (1000, 2000), "#2");
@@ -237,7 +241,7 @@ namespace MonoTests.System.ServiceModel.Channels
                                }
                        } finally {
                                host.Close (TimeSpan.FromSeconds (5));
-                               var t = new TcpListener (37564);
+                               var t = new TcpListener (port);
                                t.Start ();
                                t.Stop ();
                        }
index ab1f8dd87501c479098ec7f41432263a6bf81a4c..756a71fad445d5858f1a077e677084221e1eba33 100644 (file)
@@ -40,6 +40,8 @@ using System.Text;
 using System.Xml;
 using NUnit.Framework;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel.Channels
 {
        [TestFixture]
@@ -211,7 +213,7 @@ namespace MonoTests.System.ServiceModel.Channels
                                new HandlerTransportBindingElement (sender));
 
                        EndpointAddress address = new EndpointAddress (
-                               new Uri ("http://localhost:37564"),
+                               new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()),
                                new X509CertificateEndpointIdentity (new X509Certificate2 ("Test/Resources/test.pfx", "mono")));
 
                        ChannelFactory<IRequestChannel> cf =
@@ -259,7 +261,7 @@ namespace MonoTests.System.ServiceModel.Channels
                                new HandlerTransportBindingElement (sender));
 
                        EndpointAddress address = new EndpointAddress (
-                               new Uri ("http://localhost:37564"),
+                               new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()),
                                new X509CertificateEndpointIdentity (new X509Certificate2 ("Test/Resources/test.pfx", "mono")));
 
                        ChannelProtectionRequirements reqs =
@@ -322,7 +324,7 @@ namespace MonoTests.System.ServiceModel.Channels
                                new HttpTransportBindingElement ());
                        BindingContext ctx = new BindingContext (
                                cb, new BindingParameterCollection (),
-                               new Uri ("http://localhost:37564"), String.Empty, ListenUriMode.Unique);
+                               new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()), String.Empty, ListenUriMode.Unique);
                        new TextMessageEncodingBindingElement ().BuildChannelListener<IReplyChannel> (ctx);
                }
 
@@ -336,7 +338,7 @@ namespace MonoTests.System.ServiceModel.Channels
                        ServiceHost host = new ServiceHost (typeof (FooService));
                        host.AddServiceEndpoint (typeof (IFooService),
                                new CustomBinding (new MyBindingElement (false), new HttpTransportBindingElement ()),
-                               "http://localhost:37564");
+                               "http://localhost:" + NetworkHelpers.FindFreePort ());
                        host.Open ();
                }
 
@@ -349,7 +351,7 @@ namespace MonoTests.System.ServiceModel.Channels
                        ServiceHost host = new ServiceHost (typeof (FooService));
                        host.AddServiceEndpoint (typeof (IFooService),
                                new CustomBinding (new MyBindingElement (true), new HttpTransportBindingElement ()),
-                               "http://localhost:37564");
+                               "http://localhost:" + NetworkHelpers.FindFreePort ());
                        host.Open ();
                        host.Close ();
                }
@@ -363,7 +365,7 @@ namespace MonoTests.System.ServiceModel.Channels
                        ServiceHost host = new ServiceHost (typeof (FooService));
                        host.AddServiceEndpoint (typeof (IFooService),
                                new CustomBinding (new MyBindingElement (true), new HttpTransportBindingElement ()),
-                               "http://localhost:37564", new Uri ("foobar", UriKind.Relative));
+                               "http://localhost:" + NetworkHelpers.FindFreePort (), new Uri ("foobar", UriKind.Relative));
                }
 
                [Test]
@@ -372,10 +374,10 @@ namespace MonoTests.System.ServiceModel.Channels
                {
                        // MyBindingElement overrides GetProperty<T>() to call GetInnerProperty<T>() (default implementation).
                        // HttpTransportBindingElement should return Soap11.
-                       ServiceHost host = new ServiceHost (typeof (FooService), new Uri ("http://localhost:37564"));
+                       ServiceHost host = new ServiceHost (typeof (FooService), new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()));
                        host.AddServiceEndpoint (typeof (IFooService),
                                new CustomBinding (new MyBindingElement (true), new HttpTransportBindingElement ()),
-                               "http://localhost:37564", new Uri ("foobar", UriKind.Relative));
+                               "http://localhost:" + NetworkHelpers.FindFreePort (), new Uri ("foobar", UriKind.Relative));
                        host.Open ();
                        host.Close ();
                }
index 705d4ed2af1562a41fd76fbc077b41b928f217dc..69f18d3dcb4ba3d5772e8c7915a21ed8c54e4012 100644 (file)
@@ -38,9 +38,8 @@ using System.Threading;
 using System.Xml;
 using NUnit.Framework;
 
-#if NET_4_0
+using MonoTests.Helpers;
 using System.Security.Authentication.ExtendedProtection;
-#endif
 
 namespace MonoTests.System.ServiceModel.Channels
 {
@@ -203,7 +202,7 @@ namespace MonoTests.System.ServiceModel.Channels
                        var cf = new HttpTransportBindingElement ().BuildChannelFactory<IRequestChannel> (ctx);
                        Assert.IsTrue (cf is ChannelFactoryBase<IRequestChannel>, "#1");
                        cf.Open ();
-                       cf.CreateChannel (new EndpointAddress ("http://localhost:8080"), null);
+                       cf.CreateChannel (new EndpointAddress ("http://localhost:" + NetworkHelpers.FindFreePort ()), null);
                }
 
                [Test]
@@ -228,7 +227,7 @@ namespace MonoTests.System.ServiceModel.Channels
                public void EndpointAddressAndViaMustMatchOnAddressingNone ()
                {
                        try {
-                               var ch = ChannelFactory<IFoo>.CreateChannel (new BasicHttpBinding (), new EndpointAddress ("http://localhost:37564/"), new Uri ("http://localhost:8080/HogeService"));
+                               var ch = ChannelFactory<IFoo>.CreateChannel (new BasicHttpBinding (), new EndpointAddress ("http://localhost:" + NetworkHelpers.FindFreePort () + "/"), new Uri ("http://localhost:" + NetworkHelpers.FindFreePort () + "/HogeService"));
                                ((ICommunicationObject) ch).Close ();
                        } catch (TargetInvocationException) {
                                // we throw this exception so far. Since it is
@@ -338,7 +337,7 @@ namespace MonoTests.System.ServiceModel.Channels
                        BindingContext lbc = new BindingContext (
                                new CustomBinding (),
                                new BindingParameterCollection (),
-                               new Uri ("http://localhost:37564"),
+                               new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()),
                                String.Empty, ListenUriMode.Explicit);
                        listener = lel.BuildChannelListener<IReplyChannel> (lbc);
 
@@ -370,7 +369,7 @@ namespace MonoTests.System.ServiceModel.Channels
                        factory.Open ();
 
                        IRequestChannel request = factory.CreateChannel (
-                               new EndpointAddress ("http://localhost:37564"));
+                               new EndpointAddress ("http://localhost:" + NetworkHelpers.FindFreePort ()));
 
                        request.Open ();
 
@@ -469,10 +468,8 @@ namespace MonoTests.System.ServiceModel.Channels
                        http_binding_element.TransferMode = TransferMode.Streamed;
                        http_binding_element.UnsafeConnectionNtlmAuthentication = !http_binding_element.UnsafeConnectionNtlmAuthentication;
                        http_binding_element.UseDefaultWebProxy = !http_binding_element.UseDefaultWebProxy;
-#if NET_4_0
                        http_binding_element.DecompressionEnabled = !http_binding_element.DecompressionEnabled;
                        http_binding_element.ExtendedProtectionPolicy = new ExtendedProtectionPolicy (PolicyEnforcement.WhenSupported);
-#endif
 
                        // 
                        // Actual call to ExportPolicy
index 902035885e92c473c386c838d4bcac136d858c6c..ef358b43ff10e1296736eba429c6c62fa143ff44 100644 (file)
@@ -107,11 +107,9 @@ namespace MonoTests.System.ServiceModel.Channels
                        binding_element.TimeToLive = TimeSpan.FromSeconds (60);
                        binding_element.UseMsmqTracing = !binding_element.UseMsmqTracing;
                        binding_element.UseSourceJournal = !binding_element.UseSourceJournal;
-#if NET_4_0
                        // This ones haven't been implemented yet, so comment them for now.
                        //binding_element.ReceiveContextEnabled = !binding_element.ReceiveContextEnabled;
                        //binding_element.ValidityDuration = TimeSpan.FromSeconds (30);
-#endif
 
                        binding_element.MsmqTransportSecurity.MsmqAuthenticationMode = MsmqAuthenticationMode.Certificate;
                        binding_element.MsmqTransportSecurity.MsmqEncryptionAlgorithm = MsmqEncryptionAlgorithm.Aes;
index 9a476515e8e28030331daceae8c34ad3dc935766..2d4e9bfda2210cf019a5c24521bf76dd69b932c6 100644 (file)
@@ -41,6 +41,8 @@ using System.ServiceModel.Security.Tokens;
 using System.Xml;
 using NUnit.Framework;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel.Channels
 {
        [TestFixture]
@@ -428,7 +430,7 @@ namespace MonoTests.System.ServiceModel.Channels
                        ClientCredentials cred = new ClientCredentials ();
                        cred.ClientCertificate.Certificate =
                                new X509Certificate2 ("Test/Resources/test.pfx", "mono");
-                       IChannelFactory<IReplyChannel> ch = b.BuildChannelFactory<IReplyChannel> (new Uri ("http://localhost:37564"), cred);
+                       IChannelFactory<IReplyChannel> ch = b.BuildChannelFactory<IReplyChannel> (new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()), cred);
                        try {
                                ch.Open ();
                        } finally {
@@ -456,7 +458,7 @@ namespace MonoTests.System.ServiceModel.Channels
                        ServiceCredentials cred = new ServiceCredentials ();
                        cred.ServiceCertificate.Certificate =
                                new X509Certificate2 ("Test/Resources/test.pfx", "mono");
-                       IChannelListener<IReplyChannel> ch = b.BuildChannelListener<IReplyChannel> (new Uri ("http://localhost:37564"), cred);
+                       IChannelListener<IReplyChannel> ch = b.BuildChannelListener<IReplyChannel> (new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()), cred);
                        try {
                                ch.Open ();
                        } finally {
@@ -478,7 +480,7 @@ namespace MonoTests.System.ServiceModel.Channels
                                new UserNameSecurityTokenParameters ());
                        Binding b = new CustomBinding (be, new HttpTransportBindingElement ());
                        X509Certificate2 cert = new X509Certificate2 ("Test/Resources/test.pfx", "mono");
-                       EndpointAddress ea = new EndpointAddress (new Uri ("http://localhost:37564"), new X509CertificateEndpointIdentity (cert));
+                       EndpointAddress ea = new EndpointAddress (new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()), new X509CertificateEndpointIdentity (cert));
                        CalcProxy client = new CalcProxy (b, ea);
                        client.ClientCredentials.UserName.UserName = "rupert";
                        client.Sum (1, 2);
index c68cb851126517a6ef40cf846a3a5d394339fe94..d90197b253470f7cb69792bf2acbcca6e2c45c10 100644 (file)
@@ -37,6 +37,8 @@ using System.Threading;
 using System.Xml;
 using NUnit.Framework;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel.Channels
 {
        [TestFixture]
@@ -173,8 +175,9 @@ namespace MonoTests.System.ServiceModel.Channels
                                new TcpTransportBindingElement () });
                        bindingS.ReceiveTimeout = TimeSpan.FromSeconds (5);
                        bindingS.OpenTimeout = TimeSpan.FromSeconds (20);
+                       int port = NetworkHelpers.FindFreePort ();
                        host.AddServiceEndpoint (typeof (IFoo),
-                               bindingS, new Uri ("net.tcp://localhost:37564"));
+                               bindingS, new Uri ("net.tcp://localhost:" + port));
                        host.Description.Behaviors.Find<ServiceBehaviorAttribute> ().IncludeExceptionDetailInFaults = true;
                        host.Open ();
 
@@ -182,7 +185,7 @@ namespace MonoTests.System.ServiceModel.Channels
                                for (int i = 0; i < 2; i++) {
                                        var bindingC = new NetTcpBinding ();
                                        bindingC.Security.Mode = SecurityMode.None;
-                                       IFooChannel proxy = new ChannelFactory<IFooChannel> (bindingC, new EndpointAddress ("net.tcp://localhost:37564/")).CreateChannel ();
+                                       IFooChannel proxy = new ChannelFactory<IFooChannel> (bindingC, new EndpointAddress ("net.tcp://localhost:" + port + "/")).CreateChannel ();
                                        proxy.Open ();
                                        try {
                                                Assert.AreEqual ("TEST FOR ECHO", proxy.Echo ("TEST FOR ECHO"), "#1");
@@ -212,8 +215,9 @@ namespace MonoTests.System.ServiceModel.Channels
                        bindingS.Security.Mode = SecurityMode.None;
                        bindingS.ReceiveTimeout = TimeSpan.FromSeconds (5);
                        bindingS.OpenTimeout = TimeSpan.FromSeconds (20);
+                       int port = NetworkHelpers.FindFreePort ();
                        host.AddServiceEndpoint (typeof (IFoo),
-                               bindingS, new Uri ("net.tcp://localhost:37564"));
+                               bindingS, new Uri ("net.tcp://localhost:" + port));
                        host.Description.Behaviors.Find<ServiceBehaviorAttribute> ().IncludeExceptionDetailInFaults = true;
                        host.Open ();
 
@@ -222,7 +226,7 @@ namespace MonoTests.System.ServiceModel.Channels
                                        var bindingC = new NetTcpBinding ();
                                        bindingS.TransferMode = TransferMode.Streamed;
                                        bindingC.Security.Mode = SecurityMode.None;
-                                       IFooChannel proxy = new ChannelFactory<IFooChannel> (bindingC, new EndpointAddress ("net.tcp://localhost:37564/")).CreateChannel ();
+                                       IFooChannel proxy = new ChannelFactory<IFooChannel> (bindingC, new EndpointAddress ("net.tcp://localhost:" + port + "/")).CreateChannel ();
                                        proxy.Open ();
                                        try {
                                                Assert.AreEqual ("TEST FOR ECHO", proxy.Echo ("TEST FOR ECHO"), "#1");
index b294efc44e009f13f88a607abf4027daa4f44baa..8665fc7990860e744c91cbfa1cb241e1813240f4 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 
 using System;
 using System.Collections.Generic;
@@ -52,4 +51,3 @@ namespace MonoTests.System.ServiceModel.Configuration
                }
        }
 }
-#endif
index 71e580f69033e7224cc11aa659af04baedf56c8f..c822063805c18472d653710b6fa139a881541a7a 100644 (file)
@@ -38,17 +38,19 @@ using System.ServiceModel;
 
 using NUnit.Framework;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel.Description
 {
        [TestFixture]
        public class MetadataResolverTest
        {
-               string url = "http://localhost:37564/echo/mex";
+               string url;
                //string url = "http://192.168.0.1:8080/echo/mex";
 
                static HttpListener listener;
                IAsyncResult current_request;
-               int remaining;
+               int remaining, port;
 
                static readonly string mex = File.ReadAllText ("Test/System.ServiceModel.Description/dump.xml");
 
@@ -58,7 +60,9 @@ namespace MonoTests.System.ServiceModel.Description
                        if (listener != null)
                                listener.Stop ();
                        listener = new HttpListener ();
-                       listener.Prefixes.Add ("http://*:37564/echo/");
+                       port = NetworkHelpers.FindFreePort ();
+                       url = "http://localhost:" + port + "/echo/mex";
+                       listener.Prefixes.Add ("http://*:" + port + "/echo/");
                        listener.Start ();
                        current_request = listener.BeginGetContext (OnReceivedRequest, null);
                        remaining = 1;
index a7cfc7807f767c2f4aba0a60339b4749782bc3d3..861a0be9ac14485e9238153e295faea32594c979 100644 (file)
@@ -34,6 +34,8 @@ using System.ServiceModel.Description;
 using System.ServiceModel.Dispatcher;
 using NUnit.Framework;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel.Description
 {
        [TestFixture]
@@ -73,7 +75,7 @@ namespace MonoTests.System.ServiceModel.Description
                        b.ImpersonateCallerForAllOperations = true;
                        b.PrincipalPermissionMode = PrincipalPermissionMode.None;
 
-                       host.AddServiceEndpoint (typeof (TestService), new BasicHttpBinding (), new Uri ("http://localhost:37564"));
+                       host.AddServiceEndpoint (typeof (TestService), new BasicHttpBinding (), new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()));
 
                        host.Open ();
                }
@@ -86,7 +88,7 @@ namespace MonoTests.System.ServiceModel.Description
                        b.ImpersonateCallerForAllOperations = false;
                        b.PrincipalPermissionMode = PrincipalPermissionMode.None;
 
-                       host.AddServiceEndpoint (typeof (TestService2), new BasicHttpBinding (), new Uri ("http://localhost:37564"));
+                       host.AddServiceEndpoint (typeof (TestService2), new BasicHttpBinding (), new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()));
 
                        host.Open ();
                        var ed = ((ChannelDispatcher) host.ChannelDispatchers [0]).Endpoints [0];
index 46d129ff6010f6c131b1e9d88bf6baee7ebffc09..1785f29015bcde579625c1725aeaff5640167b39 100644 (file)
@@ -36,6 +36,8 @@ using System.ServiceModel.Description;
 using System.ServiceModel.Dispatcher;
 using System.ServiceModel.Channels;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel.Description
 {
        [TestFixture]
@@ -66,7 +68,7 @@ namespace MonoTests.System.ServiceModel.Description
 
                [Test]
                public void InitializeRuntime1 () {
-                       using (ServiceHost host = new ServiceHost (typeof (MyService), CreateUri ("http://localhost:37564"))) {
+                       using (ServiceHost host = new ServiceHost (typeof (MyService), CreateUri ("http://localhost:" + NetworkHelpers.FindFreePort ()))) {
                                host.AddServiceEndpoint (typeof (IMyContract), new BasicHttpBinding (), "e1");
 
                                Assert.AreEqual (0, host.ChannelDispatchers.Count, "ChannelDispatchers.Count #1");
@@ -103,7 +105,7 @@ namespace MonoTests.System.ServiceModel.Description
 
                [Test]
                public void InitializeRuntime2 () {
-                       using (ServiceHost host = new ServiceHost (typeof (MyService), CreateUri ("http://localhost:37564"))) {
+                       using (ServiceHost host = new ServiceHost (typeof (MyService), CreateUri ("http://localhost:" + NetworkHelpers.FindFreePort ()))) {
                                host.AddServiceEndpoint (typeof (IMyContract), new BasicHttpBinding (), "");
                                host.Description.Behaviors.Remove<ServiceDebugBehavior> ();
 
@@ -122,7 +124,7 @@ namespace MonoTests.System.ServiceModel.Description
 
                [Test]
                public void InitializeRuntime3 () {
-                       using (ServiceHost host = new ServiceHost (typeof (MyService), CreateUri ("http://localhost:37564"))) {
+                       using (ServiceHost host = new ServiceHost (typeof (MyService), CreateUri ("http://localhost:" + NetworkHelpers.FindFreePort ()))) {
                                host.AddServiceEndpoint (typeof (IMyContract), new BasicHttpBinding (), "");
                                host.Description.Behaviors.Find<ServiceDebugBehavior> ().HttpHelpPageEnabled = false;
 
@@ -140,9 +142,10 @@ namespace MonoTests.System.ServiceModel.Description
 
                [Test]
                public void InitializeRuntime4 () {
-                       using (ServiceHost host = new ServiceHost (typeof (MyService), CreateUri ("http://localhost:37564"))) {
+                       int port = NetworkHelpers.FindFreePort ();
+                       using (ServiceHost host = new ServiceHost (typeof (MyService), CreateUri ("http://localhost:" + port))) {
                                host.AddServiceEndpoint (typeof (IMyContract), new BasicHttpBinding (), "");
-                               host.Description.Behaviors.Find<ServiceDebugBehavior> ().HttpHelpPageUrl = new Uri ("http://localhost:37564/help");
+                               host.Description.Behaviors.Find<ServiceDebugBehavior> ().HttpHelpPageUrl = new Uri ("http://localhost:" + port + "/help");
 
                                Assert.AreEqual (0, host.ChannelDispatchers.Count, "ChannelDispatchers.Count #1");
 
@@ -168,7 +171,7 @@ namespace MonoTests.System.ServiceModel.Description
                                Assert.AreEqual (0, ed.FilterPriority, "FilterPriority");
 
                                EndpointAddress ea = ed.EndpointAddress;
-                               Assert.AreEqual (new Uri ("http://localhost:37564/help"), ea.Uri, "Uri");
+                               Assert.AreEqual (new Uri ("http://localhost:" + port + "/help"), ea.Uri, "Uri");
 
                                DispatchRuntime dr = ed.DispatchRuntime;
                                Assert.AreEqual (1, dr.Operations.Count, "Operations.Count");
@@ -186,9 +189,10 @@ namespace MonoTests.System.ServiceModel.Description
 
                [Test]
                public void ServiceMetadataExtension1 () {
-                       using (ServiceHost host = new ServiceHost (typeof (MyService), CreateUri ("http://localhost:37564"))) {
+                       int port = NetworkHelpers.FindFreePort ();
+                       using (ServiceHost host = new ServiceHost (typeof (MyService), CreateUri ("http://localhost:" + port))) {
                                host.AddServiceEndpoint (typeof (IMyContract), new BasicHttpBinding (), "");
-                               host.Description.Behaviors.Find<ServiceDebugBehavior> ().HttpHelpPageUrl = new Uri ("http://localhost:37564/help");
+                               host.Description.Behaviors.Find<ServiceDebugBehavior> ().HttpHelpPageUrl = new Uri ("http://localhost:" + port + "/help");
                                try {
                                host.Open ();
 
@@ -202,9 +206,10 @@ namespace MonoTests.System.ServiceModel.Description
 
                [Test]
                public void ServiceMetadataExtension2 () {
-                       using (ServiceHost host = new ServiceHost (typeof (MyService), CreateUri ("http://localhost:37564"))) {
+                       int port = NetworkHelpers.FindFreePort ();
+                       using (ServiceHost host = new ServiceHost (typeof (MyService), CreateUri ("http://localhost:" + port))) {
                                host.AddServiceEndpoint (typeof (IMyContract), new BasicHttpBinding (), "");
-                               host.Description.Behaviors.Find<ServiceDebugBehavior> ().HttpHelpPageUrl = CreateUri ("http://localhost:37564/help");
+                               host.Description.Behaviors.Find<ServiceDebugBehavior> ().HttpHelpPageUrl = CreateUri ("http://localhost:" + port + "/help");
 
                                ServiceMetadataExtension extension = new ServiceMetadataExtension ();
                                host.Extensions.Add (extension);
index 4ec9e8827c7733907fc1f5f48fe93ece3917062e..7921e30d7fec4797ee4026020e9e4aa0b8458eda 100644 (file)
@@ -35,6 +35,8 @@ using System.ServiceModel.Description;
 using System.ServiceModel.Dispatcher;
 using System.ServiceModel.Channels;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel.Description
 {
        [TestFixture]
@@ -58,7 +60,7 @@ namespace MonoTests.System.ServiceModel.Description
                [Test]
                public void ListenUri ()
                {
-                       Uri uri = new Uri ("http://localhost:37564");
+                       Uri uri = new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ());
                        var se = new ServiceEndpoint (contract1, null, new EndpointAddress (uri));
                        Assert.AreEqual (uri, se.ListenUri, "#1");
                }
index 2b36aeac331fa82031f7403bc93e0e6c8b4ab1a7..c8cffbd9317e4bed7885af6f76859e2e2cd13111 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 
 using System;
 using System.Collections.Generic;
@@ -54,4 +53,3 @@ namespace MonoTests.System.ServiceModel.Description
                }
        }
 }
-#endif
index ed5fb8b65c9cc31c43284bd985a0b33a7d369678..cdc68486779adc619e335eccabbb06dc4a72265c 100644 (file)
@@ -35,6 +35,8 @@ using NUnit.Framework;
 
 using WebServiceMoonlightTest.ServiceReference1;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel.Dispatcher
 {
        [TestFixture]
@@ -44,7 +46,8 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                public void Bug652331_2 () // test in one of the comment
                {
                        // Init service
-                       ServiceHost serviceHost = new ServiceHost (typeof (Service1), new Uri ("http://localhost:37564/Service1"));
+                       int port = NetworkHelpers.FindFreePort ();
+                       ServiceHost serviceHost = new ServiceHost (typeof (Service1), new Uri ("http://localhost:" + port + "/Service1"));
                        serviceHost.AddServiceEndpoint (typeof (IService1), new BasicHttpBinding (), string.Empty);
 
                        // Enable metadata exchange (WSDL publishing)
@@ -54,11 +57,12 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                        serviceHost.AddServiceEndpoint (typeof (IMetadataExchange), MetadataExchangeBindings.CreateMexHttpBinding (), "mex");
 
                        serviceHost.Open ();
+                       Thread.Sleep (2000);  // let WCF spin up
 
                        try {
                                // client
                                var binding = new BasicHttpBinding ();
-                               var remoteAddress = new EndpointAddress ("http://localhost:37564/Service1");
+                               var remoteAddress = new EndpointAddress ("http://localhost:" + port + "/Service1");
                                var client = new Service1Client (binding, remoteAddress);
 
                                var wait = new ManualResetEvent (false);
index 3655b4177772f3b5674299727282ca2ff66681f9..4d6fca943e6f88529a257468d0776026019f33f0 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 //
 // Authors:
 //     David Straw
@@ -37,6 +36,8 @@ using NUnit.Framework;
 
 using WebServiceMoonlightTest.ServiceReference2;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel.Dispatcher
 {
        [TestFixture]
@@ -47,7 +48,7 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                public void Bug652331_3 ()
                {
                        // Init service
-                       ServiceHost serviceHost = new ServiceHost(typeof(Service1), new Uri("http://localhost:37564/Service1"));
+                       ServiceHost serviceHost = new ServiceHost(typeof(Service1), new Uri("http://localhost:" + NetworkHelpers.FindFreePort () + "/Service1"));
                        serviceHost.AddServiceEndpoint(typeof(IService1), new BasicHttpBinding(), string.Empty);
 
                        // Enable metadata exchange (WSDL publishing)
@@ -68,7 +69,7 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                void RunClient ()
                {
                        var binding = new BasicHttpBinding ();
-                       var remoteAddress = new EndpointAddress ("http://localhost:37564/Service1");
+                       var remoteAddress = new EndpointAddress ("http://localhost:" + NetworkHelpers.FindFreePort () + "/Service1");
 
                        var normalClient      = new Service1Client (binding, remoteAddress);
                        var collectionClient  = new Service1Client (binding, remoteAddress);
@@ -855,4 +856,3 @@ namespace WebServiceMoonlightTest.ServiceReference2 {
     }
 }
 
-#endif
index 3718357513859af9bbf7e39c3a4febdb3401d2b4..11fe45e9a5924502e03728680ac611e3a25e4840 100644 (file)
@@ -10,6 +10,8 @@ using System.ServiceModel.Channels;
 using System.ServiceModel.Description;
 using System.ServiceModel.Dispatcher;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel.Dispatcher
 {
        [TestFixture]
@@ -42,7 +44,7 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                        var st = cd.ServiceThrottle;
                        Assert.IsNull (st, "#0");
 
-                       var uri = CreateAvailableUri ("http://localhost:37564");
+                       var uri = CreateAvailableUri ("http://localhost:" + NetworkHelpers.FindFreePort ());
                        ServiceHost h = new ServiceHost (typeof (TestContract), uri);
                        h.AddServiceEndpoint (typeof (TestContract).FullName, new BasicHttpBinding (), "address");
                        h.ChannelDispatchers.Add (cd);
@@ -69,7 +71,7 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                [Test]                  
                public void Collection_Add_Remove () {
                        Console.WriteLine ("STart test Collection_Add_Remove");
-                       var uri = CreateAvailableUri ("http://localhost:37564");
+                       var uri = CreateAvailableUri ("http://localhost:" + NetworkHelpers.FindFreePort ());
                        ServiceHost h = new ServiceHost (typeof (TestContract), uri);
                        h.AddServiceEndpoint (typeof (TestContract).FullName, new BasicHttpBinding (), "address");
                        MyChannelDispatcher d = new MyChannelDispatcher (new MyChannelListener (uri));
@@ -87,7 +89,7 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                [Test]
                public void EndpointDispatcherAddTest ()
                {
-                       var uri = CreateAvailableUri ("http://localhost:37564");
+                       var uri = CreateAvailableUri ("http://localhost:" + NetworkHelpers.FindFreePort ());
                        MyChannelDispatcher d = new MyChannelDispatcher (new MyChannelListener (uri));
                        d.Endpoints.Add (new EndpointDispatcher (new EndpointAddress (uri), "", ""));
                }
@@ -95,7 +97,7 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                [Test]
                [ExpectedException (typeof (InvalidOperationException))] 
                public void EndpointDispatcherAddTest2 () {
-                       var uri = CreateAvailableUri ("http://localhost:37564");
+                       var uri = CreateAvailableUri ("http://localhost:" + NetworkHelpers.FindFreePort ());
                        MyChannelDispatcher d = new MyChannelDispatcher (new MyChannelListener (uri));
                        d.Endpoints.Add (new EndpointDispatcher (new EndpointAddress (uri), "", ""));
                        d.Open (); // the dispatcher must be attached.
@@ -105,7 +107,7 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                [ExpectedException (typeof (InvalidOperationException))]
                public void EndpointDispatcherAddTest3 ()
                {
-                       var uri = CreateAvailableUri ("http://localhost:37564");
+                       var uri = CreateAvailableUri ("http://localhost:" + NetworkHelpers.FindFreePort ());
                        ServiceHost h = new ServiceHost (typeof (TestContract), uri);
                        MyChannelDispatcher d = new MyChannelDispatcher (new MyChannelListener (uri));
                        d.Endpoints.Add (new EndpointDispatcher (new EndpointAddress (uri), "", ""));
@@ -117,7 +119,7 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                [ExpectedException (typeof (InvalidOperationException))] // i.e. it is thrown synchronously in current thread.
                public void EndpointDispatcherAddTest4 ()
                {
-                       var uri = CreateAvailableUri ("http://localhost:37564");
+                       var uri = CreateAvailableUri ("http://localhost:" + NetworkHelpers.FindFreePort ());
                        ServiceHost h = new ServiceHost (typeof (TestContract), uri);
                        var listener = new MyChannelListener (uri);
                        MyChannelDispatcher d = new MyChannelDispatcher (listener);
@@ -149,7 +151,7 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                [ExpectedException (typeof (InvalidOperationException))] // i.e. it is thrown synchronously in current thread.
                public void EndpointDispatcherAddTest5 ()
                {
-                       var uri = CreateAvailableUri ("http://localhost:37564");
+                       var uri = CreateAvailableUri ("http://localhost:" + NetworkHelpers.FindFreePort ());
                        ServiceHost h = new ServiceHost (typeof (TestContract), uri);
                        var binding = new BasicHttpBinding ();
                        var listener = new MyChannelListener (uri);
@@ -171,7 +173,7 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                [Test]
                public void EndpointDispatcherAddTest6 ()
                {
-                       var uri = CreateAvailableUri ("http://localhost:37564");
+                       var uri = CreateAvailableUri ("http://localhost:" + NetworkHelpers.FindFreePort ());
                        ServiceHost h = new ServiceHost (typeof (TestContract), uri);
                        var binding = new BasicHttpBinding ();
                        var listener = new MyChannelListener<IReplyChannel> (uri);
@@ -202,7 +204,7 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                [ExpectedException (typeof (InvalidOperationException))]
                public void EndpointDispatcherAddTest7 ()
                {
-                       var uri = CreateAvailableUri ("http://localhost:37564");
+                       var uri = CreateAvailableUri ("http://localhost:" + NetworkHelpers.FindFreePort ());
                        ServiceHost h = new ServiceHost (typeof (TestContract), uri);
                        var binding = new BasicHttpBinding ();
                        var listener = new MyChannelListener<IReplyChannel> (uri);
@@ -237,7 +239,7 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                // but it makes little sense especially for checking duplicate listen URIs. Duplicate listen URIs should be rejected anyways.
                public void EndpointDispatcherAddTest8 ()
                {
-                       var uri = CreateAvailableUri ("http://localhost:37564");
+                       var uri = CreateAvailableUri ("http://localhost:" + NetworkHelpers.FindFreePort ());
                        ServiceHost h = new ServiceHost (typeof (TestContract), uri);
                        var listener = new MyChannelListener<IReplyChannel> (uri);
                        MyChannelDispatcher d = new MyChannelDispatcher (listener);
@@ -282,7 +284,7 @@ namespace MonoTests.System.ServiceModel.Dispatcher
 //             [Test]
                public void EndpointDispatcherAddTest9 () // test singleton service
                {
-                       var uri = CreateAvailableUri ("http://localhost:37564");
+                       var uri = CreateAvailableUri ("http://localhost:" + NetworkHelpers.FindFreePort ());
                        ServiceHost h = new ServiceHost (new TestContract (), uri);
                        h.Description.Behaviors.Find<ServiceBehaviorAttribute> ().InstanceContextMode = InstanceContextMode.Single;
                        var listener = new MyChannelListener<IReplyChannel> (uri);
index e8881b27d8a3d1771c1372d0de6d3de5abce9f95..641a95852ee198c0bfd2d652495f9de556f8c91a 100644 (file)
@@ -37,6 +37,8 @@ using System.ServiceModel.Security;
 using System.Xml;
 using NUnit.Framework;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel.Dispatcher
 {
        [TestFixture]
@@ -88,11 +90,12 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                public void FaultContractInfos ()
                {
                        var host = new ServiceHost (typeof (TestFaultContract));
+                       int port = NetworkHelpers.FindFreePort ();
                        host.Description.Behaviors.Find<ServiceDebugBehavior> ().IncludeExceptionDetailInFaults = false;
-                       host.AddServiceEndpoint (typeof (ITestFaultContract), new BasicHttpBinding (), new Uri ("http://localhost:37564"));
+                       host.AddServiceEndpoint (typeof (ITestFaultContract), new BasicHttpBinding (), new Uri ("http://localhost:" + port));
                        host.Open ();
                        try {
-                               var cf = new ChannelFactory<ITestFaultContract> (new BasicHttpBinding (), new EndpointAddress ("http://localhost:37564"));
+                               var cf = new ChannelFactory<ITestFaultContract> (new BasicHttpBinding (), new EndpointAddress ("http://localhost:" + port));
                                var cli = cf.CreateChannel ();
                                try {
                                        cli.Run ("default");
@@ -178,4 +181,4 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                        { }
                }
        }
-}
\ No newline at end of file
+}
index b29b970197aab4b16e67ed89b2ba9d8150c83a18..424e6519ee3640f62ef1c516fb8bff58515e7a3a 100644 (file)
@@ -42,6 +42,8 @@ using NUnit.Framework;
 
 using MonoTests.System.ServiceModel.Channels;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel.Security
 {
        [TestFixture]
@@ -190,7 +192,7 @@ namespace MonoTests.System.ServiceModel.Security
                                        sintercept,
                                        transport);
                                b_res.ReceiveTimeout = b_res.SendTimeout = TimeSpan.FromSeconds (5);
-                               host.AddServiceEndpoint (typeof (ICalc), b_res, "http://localhost:37564");
+                               host.AddServiceEndpoint (typeof (ICalc), b_res, "http://localhost:" + NetworkHelpers.FindFreePort ());
 
                                ServiceCredentials cred = new ServiceCredentials ();
                                cred.ServiceCertificate.Certificate = cert;
@@ -223,7 +225,7 @@ namespace MonoTests.System.ServiceModel.Security
 
                        b_req.ReceiveTimeout = b_req.SendTimeout = TimeSpan.FromSeconds (5);
                        EndpointAddress remaddr = new EndpointAddress (
-                               new Uri ("http://localhost:37564"),
+                               new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()),
                                new X509CertificateEndpointIdentity (cert));
                        CalcProxy proxy = new CalcProxy (b_req, remaddr);
                        proxy.ClientCredentials.ClientCertificate.Certificate = cert2;
index 3685bd6bb837edfb1b5bb98fcc0ac70aa29e8509..aa8d9417e250b17e665d49e72690c3688c93ee98 100644 (file)
@@ -39,6 +39,8 @@ using System.Transactions;
 using System.Threading;
 using NUnit.Framework;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel
 {
        [TestFixture]
@@ -80,7 +82,7 @@ namespace MonoTests.System.ServiceModel
                        IEndpointBehavior eb = new CallbackBehaviorAttribute () { ConcurrencyMode = ConcurrencyMode.Multiple, ValidateMustUnderstand = false };
                        var cd = ContractDescription.GetContract (typeof (IFoo));
                        var se = new ServiceEndpoint (cd);
-                       var ed = new EndpointDispatcher (new EndpointAddress ("http://localhost:37564"), "IFoo", "urn:foo");
+                       var ed = new EndpointDispatcher (new EndpointAddress ("http://localhost:" + NetworkHelpers.FindFreePort ()), "IFoo", "urn:foo");
                        eb.ApplyDispatchBehavior (se, ed);
                }
 
@@ -92,7 +94,7 @@ namespace MonoTests.System.ServiceModel
                        IEndpointBehavior eb = new CallbackBehaviorAttribute () { ConcurrencyMode = ConcurrencyMode.Multiple, ValidateMustUnderstand = false };
                        var cd = ContractDescription.GetContract (typeof (IFoo));
                        var se = new ServiceEndpoint (cd);
-                       var ed = new EndpointDispatcher (new EndpointAddress ("http://localhost:37564"), "IFoo", "urn:foo");
+                       var ed = new EndpointDispatcher (new EndpointAddress ("http://localhost:" + NetworkHelpers.FindFreePort ()), "IFoo", "urn:foo");
                        var cr = ed.DispatchRuntime.CallbackClientRuntime;
                        eb.ApplyClientBehavior (se, cr);
                }
@@ -104,7 +106,7 @@ namespace MonoTests.System.ServiceModel
                        IEndpointBehavior eb = new CallbackBehaviorAttribute () { ConcurrencyMode = ConcurrencyMode.Multiple, ValidateMustUnderstand = false };
                        var cd = ContractDescription.GetContract (typeof (IDuplexFoo));
                        var se = new ServiceEndpoint (cd);
-                       var ed = new EndpointDispatcher (new EndpointAddress ("http://localhost:37564"), "IDuplexFoo", "urn:foo");
+                       var ed = new EndpointDispatcher (new EndpointAddress ("http://localhost:" + NetworkHelpers.FindFreePort ()), "IDuplexFoo", "urn:foo");
                        var cr = ed.DispatchRuntime.CallbackClientRuntime;
                        eb.ApplyClientBehavior (se, cr);
                        Assert.IsFalse (cr.ValidateMustUnderstand, "#2.1");
index 70efef2761cbe03739ced20a4c172d9f86f0ee5c..0a169ec364f9b637ccdf2093253623a73fb954ba 100644 (file)
@@ -38,6 +38,8 @@ using System.Xml.Serialization;
 using MonoTests.System.ServiceModel.Channels;
 using NUnit.Framework;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel
 {
        [TestFixture]
@@ -63,14 +65,14 @@ namespace MonoTests.System.ServiceModel
                        //ChannelFactory<TestService> f =
                                new ChannelFactory<TestService> (
                                        new BasicHttpBinding (),
-                                       new EndpointAddress ("http://localhost:37564"));
+                                       new EndpointAddress ("http://localhost:" + NetworkHelpers.FindFreePort ()));
                }
 
                [Test]
                public void EndpointAddressAfterCreateChannel ()
                {
                        var f = new ChannelFactory<ITestService> (new BasicHttpBinding ());
-                       f.CreateChannel (new EndpointAddress ("http://localhost:37564"), null);
+                       f.CreateChannel (new EndpointAddress ("http://localhost:" + NetworkHelpers.FindFreePort ()), null);
                        Assert.IsNull (f.Endpoint.Address, "#1");
                }
 
@@ -163,7 +165,7 @@ namespace MonoTests.System.ServiceModel
                        MyChannelFactory<ITestService> f =
                                new MyChannelFactory<ITestService> (
                                        new BasicHttpBinding (),
-                                       new EndpointAddress ("http://localhost:37564"));
+                                       new EndpointAddress ("http://localhost:" + NetworkHelpers.FindFreePort ()));
                        Assert.AreEqual (CommunicationState.Created,
                                f.State, "#1");
                        f.OpenAnyways ();
@@ -179,7 +181,7 @@ namespace MonoTests.System.ServiceModel
                        ChannelFactory<ITestService> f =
                                new ChannelFactory<ITestService> (
                                        new BasicHttpBinding (),
-                                       new EndpointAddress ("http://localhost:37564"));
+                                       new EndpointAddress ("http://localhost:" + NetworkHelpers.FindFreePort ()));
                        f.CreateChannel ();
                }
 
@@ -432,14 +434,12 @@ namespace MonoTests.System.ServiceModel
                        Assert.AreEqual ("callResult", res.val, "#2");
                }
 
-#if NET_4_0
                [Test]
                public void ConstructorServiceEndpoint ()
                {
                        // It is okay to pass ServiceEndpoint that does not have Binding or EndpointAddress.
                        new ChannelFactory<IRequestChannel> (new ServiceEndpoint (ContractDescription.GetContract (typeof (IMetadataExchange)), null, null));
                }
-#endif
 
                public T CreateFooComplexMC_Channel<T> (bool isXml)
                {
index ee445d6620f590d5cb3fcb5aa1d01a6fbee8680f..3c12a4646869c95eb2857abe4afd116274b18837 100644 (file)
@@ -36,6 +36,8 @@ using System.ServiceModel.Description;
 using System.Xml;
 using NUnit.Framework;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel
 {
        [TestFixture]
@@ -217,22 +219,23 @@ namespace MonoTests.System.ServiceModel
                [Ignore ("With Orcas it does not work fine")]
                public void UseCase1Test ()
                {
+                       int port = NetworkHelpers.FindFreePort ();
                        // almost equivalent to samples/clientbase/samplesvc.cs
                        using (host = new ServiceHost (typeof (UseCase1))) {
                                Binding binding = new BasicHttpBinding ();
                                binding.ReceiveTimeout = TimeSpan.FromSeconds (15);
-                               host.AddServiceEndpoint (typeof (IUseCase1).FullName, binding, new Uri ("http://localhost:37564"));
+                               host.AddServiceEndpoint (typeof (IUseCase1).FullName, binding, new Uri ("http://localhost:" + port));
 
                                host.Open ();
                                // almost equivalent to samples/clientbase/samplecli.cs
                                using (UseCase1Proxy proxy = new UseCase1Proxy (
                                        new BasicHttpBinding (),
-                                       new EndpointAddress ("http://localhost:37564"))) {
+                                       new EndpointAddress ("http://localhost:" + port))) {
                                        proxy.Open ();
                                        Assert.AreEqual ("TEST FOR ECHOTEST FOR ECHO", proxy.Echo ("TEST FOR ECHO"));
                                }
                        }
-                       EnsurePortNonBlocking (37564);
+                       EnsurePortNonBlocking (port);
                }
 
                void EnsurePortNonBlocking (int port)
@@ -357,8 +360,9 @@ namespace MonoTests.System.ServiceModel
                        ServiceHost host = new ServiceHost (typeof (UseCase2));
                        Binding binding = new BasicHttpBinding ();
                        binding.ReceiveTimeout = TimeSpan.FromSeconds (15);
+                       int port = NetworkHelpers.FindFreePort ();
                        host.AddServiceEndpoint (typeof (IUseCase2).FullName,
-                       binding, new Uri ("http://localhost:37564"));
+                       binding, new Uri ("http://localhost:" + port));
 
                        try {
                                host.Open ();
@@ -368,7 +372,7 @@ namespace MonoTests.System.ServiceModel
                                b.ReceiveTimeout = TimeSpan.FromSeconds (15);
                                UseCase2Proxy proxy = new UseCase2Proxy (
                                        b,
-                                       new EndpointAddress ("http://localhost:37564/"));
+                                       new EndpointAddress ("http://localhost:" + port + "/"));
                                proxy.Open ();
                                Message req = Message.CreateMessage (MessageVersion.Soap11, "http://tempuri.org/IUseCase2/Echo");
                                Message res = proxy.Echo (req);
@@ -378,7 +382,7 @@ namespace MonoTests.System.ServiceModel
                        } finally {
                                if (host.State == CommunicationState.Opened)
                                        host.Close ();
-                               EnsurePortNonBlocking (37564);
+                               EnsurePortNonBlocking (port);
                        }
                }
 
@@ -426,9 +430,10 @@ namespace MonoTests.System.ServiceModel
                        Binding bs = new BasicHttpBinding ();
                        bs.SendTimeout = TimeSpan.FromSeconds (5);
                        bs.ReceiveTimeout = TimeSpan.FromSeconds (5);
+                       int port = NetworkHelpers.FindFreePort ();
                        // magic name that does not require fully qualified name ...
                        host.AddServiceEndpoint ("IMetadataExchange",
-                               bs, new Uri ("http://localhost:37564"));
+                               bs, new Uri ("http://localhost:" + port));
                        try {
                                host.Open ();
                                // almost equivalent to samples/clientbase/samplecli3.cs
@@ -437,7 +442,7 @@ namespace MonoTests.System.ServiceModel
                                bc.ReceiveTimeout = TimeSpan.FromSeconds (5);
                                MetadataExchangeProxy proxy = new MetadataExchangeProxy (
                                        bc,
-                                       new EndpointAddress ("http://localhost:37564/"));
+                                       new EndpointAddress ("http://localhost:" + port + "/"));
                                proxy.Open ();
 
                                Message req = Message.CreateMessage (MessageVersion.Soap11, "http://schemas.xmlsoap.org/ws/2004/09/transfer/Get");
@@ -448,7 +453,7 @@ namespace MonoTests.System.ServiceModel
                        } finally {
                                if (host.State == CommunicationState.Opened)
                                        host.Close ();
-                               EnsurePortNonBlocking (37564);
+                               EnsurePortNonBlocking (port);
                        }
                }
 
@@ -474,7 +479,6 @@ namespace MonoTests.System.ServiceModel
                        }
                }
 
-#if NET_4_0
                [Test]
                public void ConstructorServiceEndpoint ()
                {
@@ -499,6 +503,5 @@ namespace MonoTests.System.ServiceModel
                        {
                        }
                }
-#endif
        }
 }
index c886a971395332ceeb025856c22629250d6ec82b..d5908a5db451419445d9536a2e3820eafb575748 100644 (file)
@@ -37,6 +37,8 @@ using System.ServiceModel.Dispatcher;
 using System.Xml;
 using NUnit.Framework;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel
 {
        [TestFixture]
@@ -48,7 +50,7 @@ namespace MonoTests.System.ServiceModel
                [ExpectedException (typeof (InvalidOperationException))]
                public void NotAllowedInitializationUI ()
                {
-                       var f = new FooProxy (new BasicHttpBinding (), new EndpointAddress ("http://localhost:37564"));
+                       var f = new FooProxy (new BasicHttpBinding (), new EndpointAddress ("http://localhost:" + NetworkHelpers.FindFreePort ()));
                        f.Endpoint.Contract.Behaviors.Add (new MyContractBehavior ());
                        f.InnerChannel.AllowInitializationUI = false;
                        f.DisplayInitializationUI ();
@@ -58,7 +60,7 @@ namespace MonoTests.System.ServiceModel
                [ExpectedException (typeof (InvalidOperationException))]
                public void OpenBeforeDisplayInitializationUI ()
                {
-                       var f = new FooProxy (new BasicHttpBinding (), new EndpointAddress ("http://localhost:37564"));
+                       var f = new FooProxy (new BasicHttpBinding (), new EndpointAddress ("http://localhost:" + NetworkHelpers.FindFreePort ()));
                        f.Endpoint.Contract.Behaviors.Add (new MyContractBehavior ());
                        f.Open ();
                }
index a1f28e3e1539d1247629cfa96686c16bbcb2307a..cf758cfe3ab8af315e5fd7853034f9825b723feb 100644 (file)
@@ -42,6 +42,8 @@ using MonoTests.System.ServiceModel.Channels;
 
 using ReqType = System.ServiceModel.Security.Tokens.ServiceModelSecurityTokenRequirement;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel
 {
        [TestFixture]
@@ -621,7 +623,7 @@ Assert.IsFalse (new MyManager (new MyClientCredentials ()).IsIssued (r), "premis
                        be.EndpointSupportingTokenParameters.Endorsing.Add (
                                new MyEndorsingTokenParameters ());
                        Binding b = new CustomBinding (be, new HttpTransportBindingElement ());
-                       EndpointAddress ea = new EndpointAddress (new Uri ("http://localhost:37564"), new X509CertificateEndpointIdentity (cert));
+                       EndpointAddress ea = new EndpointAddress (new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()), new X509CertificateEndpointIdentity (cert));
                        CalcProxy client = new CalcProxy (b, ea);
                        client.Endpoint.Behaviors.RemoveAll<ClientCredentials> ();
                        client.Endpoint.Behaviors.Add (new MyClientCredentials ());
index 1fc0a1ee8d1e3f03dd8d49b47c6ab0c3234c3920..962643c81d6240d9ba322bbee2233c79672ff668 100644 (file)
@@ -39,6 +39,7 @@ using System.Threading;
 using System.Xml;
 using NUnit.Framework;
 
+using MonoTests.Helpers;
 
 namespace MonoTests.System.ServiceModel
 {
@@ -55,17 +56,18 @@ namespace MonoTests.System.ServiceModel
                {
                        // Service
                        ServiceHost host = new ServiceHost (typeof (Foo));
+                       int port = NetworkHelpers.FindFreePort ();
                        try {
                                Binding binding = new BasicHttpBinding ();
                                binding.SendTimeout = binding.ReceiveTimeout = TimeSpan.FromSeconds (5);
                                ServiceEndpoint se = host.AddServiceEndpoint ("MonoTests.System.ServiceModel.IFoo",
-                                       binding, new Uri ("http://localhost:37564"));
+                                       binding, new Uri ("http://localhost:" + port));
                                host.Open ();
 
                                // Client
                                ChannelFactory<IFoo> cf = new ChannelFactory<IFoo> (
                                        new BasicHttpBinding (),
-                                       new EndpointAddress ("http://localhost:37564/"));
+                                       new EndpointAddress ("http://localhost:" + port + "/"));
                                IFoo foo  = cf.CreateChannel ();
                                Assert.AreEqual ("Test for EchoTest for Echo", foo.Echo ("Test for Echo"));
                        } finally {
@@ -80,17 +82,18 @@ namespace MonoTests.System.ServiceModel
                {
                        // Service
                        ServiceHost host = new ServiceHost (typeof (Foo2));
+                       int port = NetworkHelpers.FindFreePort ();
                        try {
                                Binding binding = new BasicHttpBinding ();
                                binding.SendTimeout = binding.ReceiveTimeout = TimeSpan.FromSeconds (5);
                                host.AddServiceEndpoint ("MonoTests.System.ServiceModel.IFoo2",
-                               binding, new Uri ("http://localhost:37564"));
+                               binding, new Uri ("http://localhost:" + port));
                                host.Open ();
 
                                // Client
                                Foo2Proxy proxy = new Foo2Proxy (
                                        new BasicHttpBinding (),
-                                       new EndpointAddress ("http://localhost:37564/"));
+                                       new EndpointAddress ("http://localhost:" + port + "/"));
                                proxy.Open ();
                                try {
                                        Assert.AreEqual ("TEST FOR ECHOTEST FOR ECHO",
@@ -111,17 +114,18 @@ namespace MonoTests.System.ServiceModel
                {
                        // Service
                        ServiceHost host = new ServiceHost (typeof (MetadataExchange));
+                       int port = NetworkHelpers.FindFreePort ();
                        try {
                                Binding binding = new BasicHttpBinding ();
                                binding.ReceiveTimeout = TimeSpan.FromSeconds (5);
                                host.AddServiceEndpoint ("IMetadataExchange",
-                               binding, new Uri ("http://localhost:37564"));
+                               binding, new Uri ("http://localhost:" + port));
                                host.Open ();
                                // Client
 
                                MetadataExchangeProxy proxy = new MetadataExchangeProxy (
                                        new BasicHttpBinding (),
-                                       new EndpointAddress ("http://localhost:37564/"));
+                                       new EndpointAddress ("http://localhost:" + port + "/"));
                                proxy.Open ();
 
                                try {
index 72837c7af45453576c231c9a63c50426ac7494f8..633b776aeac48c10c96f3b29d32d12e21dcad79e 100644 (file)
@@ -35,6 +35,8 @@ using System.ServiceModel.Security;
 using System.Threading;
 using NUnit.Framework;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel
 {
        [TestFixture]
@@ -167,17 +169,18 @@ namespace MonoTests.System.ServiceModel
                {
                        var host = new ServiceHost (typeof (Foo));
                        var bindingsvc = new CustomBinding (new BinaryMessageEncodingBindingElement (), new TcpTransportBindingElement ());
-                       host.AddServiceEndpoint (typeof (IFoo), bindingsvc, "net.tcp://localhost:37564/");
+                       int port = NetworkHelpers.FindFreePort ();
+                       host.AddServiceEndpoint (typeof (IFoo), bindingsvc, "net.tcp://localhost:" + port + "/");
                        host.Open (TimeSpan.FromSeconds (5));
                        try {
                                var bindingcli = new NetTcpBinding () { TransactionFlow = false };
                                bindingcli.Security.Mode = SecurityMode.None;
-                               var cli = new ChannelFactory<IFooClient> (bindingcli, new EndpointAddress ("net.tcp://localhost:37564/")).CreateChannel ();
+                               var cli = new ChannelFactory<IFooClient> (bindingcli, new EndpointAddress ("net.tcp://localhost:" + port + "/")).CreateChannel ();
                                Assert.AreEqual (5, cli.Add (1, 4));
                                Assert.AreEqual ("monkey science", cli.Join ("monkey", "science"));
                        } finally {
                                host.Close (TimeSpan.FromSeconds (5));
-                               var t = new TcpListener (37564);
+                               var t = new TcpListener (port);
                                t.Start ();
                                t.Stop ();
                        }
@@ -190,18 +193,19 @@ namespace MonoTests.System.ServiceModel
                {
                        var host = new ServiceHost (typeof (Foo));
                        var bindingsvc = new CustomBinding (new BinaryMessageEncodingBindingElement (), new TcpTransportBindingElement () { TransferMode = TransferMode.Streamed });
-                       host.AddServiceEndpoint (typeof (IFoo), bindingsvc, "net.tcp://localhost:37564/");
+                       int port = NetworkHelpers.FindFreePort ();
+                       host.AddServiceEndpoint (typeof (IFoo), bindingsvc, "net.tcp://localhost:" + port + "/");
                        host.Open (TimeSpan.FromSeconds (5));
                        try {
                                var bindingcli = new NetTcpBinding () { TransactionFlow = false };
                                bindingcli.TransferMode = TransferMode.Streamed;
                                bindingcli.Security.Mode = SecurityMode.None;
-                               var cli = new ChannelFactory<IFooClient> (bindingcli, new EndpointAddress ("net.tcp://localhost:37564/")).CreateChannel ();
+                               var cli = new ChannelFactory<IFooClient> (bindingcli, new EndpointAddress ("net.tcp://localhost:" + port + "/")).CreateChannel ();
                                Assert.AreEqual (5, cli.Add (1, 4));
                                Assert.AreEqual ("monkey science", cli.Join ("monkey", "science"));
                        } finally {
                                host.Close (TimeSpan.FromSeconds (5));
-                               var t = new TcpListener (37564);
+                               var t = new TcpListener (port);
                                t.Start ();
                                t.Stop ();
                        }
index dafa6346c52a2d8d731d3ba18db2cd7252fa9126..3378c7b82b735cc17a8cd9083c810970f00b23f1 100644 (file)
@@ -35,6 +35,8 @@ using System.ServiceModel;
 using System.Xml;
 using NUnit.Framework;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel
 {
        [TestFixture]
@@ -50,7 +52,7 @@ namespace MonoTests.System.ServiceModel
                [Test]
                public void UserContextProperties ()
                {
-                       var ch = ChannelFactory<IFooChannel>.CreateChannel (new BasicHttpBinding (), new EndpointAddress ("http://localhost:37564"));
+                       var ch = ChannelFactory<IFooChannel>.CreateChannel (new BasicHttpBinding (), new EndpointAddress ("http://localhost:" + NetworkHelpers.FindFreePort ()));
                        var o = new OperationContext (ch);
 
                        // FIXME: this is strange. It should return non-null value.
@@ -91,7 +93,7 @@ namespace MonoTests.System.ServiceModel
                        Assert.IsNull (OperationContext.Current, "Current-1");
 
                        try {
-                               var ch = ChannelFactory<IFooChannel>.CreateChannel (new BasicHttpBinding (), new EndpointAddress ("http://localhost:37564"));
+                               var ch = ChannelFactory<IFooChannel>.CreateChannel (new BasicHttpBinding (), new EndpointAddress ("http://localhost:" + NetworkHelpers.FindFreePort ()));
                                OperationContext.Current = new OperationContext (ch);
                                Assert.IsNotNull (OperationContext.Current, "Current-2");
                        }
index d73d516cbbb1c341b565695eb7c3f7ae35ffad34..c7fa92a2f93fb04244fa6b262de0a71fd9749235 100644 (file)
@@ -36,6 +36,8 @@ using System.ServiceModel.Dispatcher;
 using SMMessage = System.ServiceModel.Channels.Message;
 using System.ServiceModel.Channels;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel
 {
        [TestFixture]
@@ -159,7 +161,8 @@ namespace MonoTests.System.ServiceModel
 
                [Test]
                public void ChannelDispatchers_NoDebug () {
-                       ServiceHost h = new ServiceHost (typeof (AllActions), new Uri ("http://localhost:30158"));
+                       var ep = "http://" + NetworkHelpers.LocalEphemeralEndPoint().ToString();
+                       ServiceHost h = new ServiceHost (typeof (AllActions), new Uri (ep));
                        h.AddServiceEndpoint (typeof (AllActions).FullName, new BasicHttpBinding (), "address");
 
                        ServiceDebugBehavior b = h.Description.Behaviors.Find<ServiceDebugBehavior> ();
@@ -173,7 +176,7 @@ namespace MonoTests.System.ServiceModel
                        Assert.IsTrue (channelDispatcher.Endpoints.Count == 1, "#2");
                        EndpointAddressMessageFilter filter = channelDispatcher.Endpoints [0].AddressFilter as EndpointAddressMessageFilter;
                        Assert.IsNotNull (filter, "#3");
-                       Assert.IsTrue (filter.Address.Equals (new EndpointAddress ("http://localhost:30158/address")), "#4");
+                       Assert.IsTrue (filter.Address.Equals (new EndpointAddress (ep + "/address")), "#4");
                        Assert.IsFalse (filter.IncludeHostNameInComparison, "#5");
                        Assert.IsTrue (channelDispatcher.Endpoints [0].ContractFilter is MatchAllMessageFilter, "#6");
                        } finally {
@@ -183,11 +186,12 @@ namespace MonoTests.System.ServiceModel
 
                [Test]
                public void ChannelDispatchers_WithDebug () {
-                       ServiceHost h = new ServiceHost (typeof (AllActions), new Uri ("http://localhost:30158"));
+                       var ep = "http://" + NetworkHelpers.LocalEphemeralEndPoint().ToString();
+                       ServiceHost h = new ServiceHost (typeof (AllActions), new Uri (ep));
                        h.AddServiceEndpoint (typeof (AllActions).FullName, new BasicHttpBinding (), "address");
                        ServiceMetadataBehavior b = new ServiceMetadataBehavior ();
                        b.HttpGetEnabled = true;
-                       b.HttpGetUrl = new Uri( "http://localhost:30158" );
+                       b.HttpGetUrl = new Uri( ep );
                        h.Description.Behaviors.Add (b);
                        h.Open ();
 
@@ -197,7 +201,7 @@ namespace MonoTests.System.ServiceModel
                        Assert.IsTrue (channelDispatcher.Endpoints.Count == 1, "#3");
                        EndpointAddressMessageFilter filter = channelDispatcher.Endpoints [0].AddressFilter as EndpointAddressMessageFilter;
                        Assert.IsNotNull (filter, "#4");
-                       Assert.IsTrue (filter.Address.Equals (new EndpointAddress ("http://localhost:30158")), "#5");
+                       Assert.IsTrue (filter.Address.Equals (new EndpointAddress (ep)), "#5");
                        Assert.IsFalse (filter.IncludeHostNameInComparison, "#6");
                        Assert.IsTrue (channelDispatcher.Endpoints [0].ContractFilter is MatchAllMessageFilter, "#7");
                        h.Close ();
@@ -207,7 +211,8 @@ namespace MonoTests.System.ServiceModel
                public void SpecificActionTest ()
                {
                        //EndpointDispatcher d = new EndpointDispatcher(
-                       ServiceHost h = new ServiceHost (typeof (SpecificAction), new Uri ("http://localhost:30158"));
+                       var ep = NetworkHelpers.LocalEphemeralEndPoint().ToString();
+                       ServiceHost h = new ServiceHost (typeof (SpecificAction), new Uri ("http://" + ep));
                        h.AddServiceEndpoint (typeof (Action1Interface), new BasicHttpBinding (), "address");
                                                
                        h.Open ();
@@ -222,7 +227,8 @@ namespace MonoTests.System.ServiceModel
                [Test]
                public void InitializeRuntimeBehaviors1 () {
                        HostState st = new HostState ();
-                       ServiceHost h = new ServiceHost (typeof (SpecificAction2), new Uri ("http://localhost:30158"));
+                       var ep = NetworkHelpers.LocalEphemeralEndPoint().ToString();
+                       ServiceHost h = new ServiceHost (typeof (SpecificAction2), new Uri ("http://" + ep));
                        h.AddServiceEndpoint (typeof (SpecificAction2), new BasicHttpBinding (), "temp");                       
 
                        h.Description.Behaviors.Add (new MyServiceBehavior (st, h));
@@ -241,7 +247,8 @@ namespace MonoTests.System.ServiceModel
                [Test]
                public void InitializeRuntimeBehaviors2 () {
                        HostState st = new HostState ();
-                       ServiceHost h = new ServiceHost (typeof (SpecificAction), new Uri ("http://localhost:30158"));
+                       var ep = NetworkHelpers.LocalEphemeralEndPoint().ToString();
+                       ServiceHost h = new ServiceHost (typeof (SpecificAction), new Uri ("http://" + ep));
                        h.AddServiceEndpoint (typeof (Action1Interface), new BasicHttpBinding (), "temp");
                        h.AddServiceEndpoint (typeof (Action2Interface), new BasicHttpBinding (), "temp2");
 
@@ -266,9 +273,9 @@ namespace MonoTests.System.ServiceModel
                {
                        var host = new Poker ();
                        Assert.AreEqual (0, host.BaseAddresses.Count, "#1");
-                       host.DoAddBaseAddress (new Uri ("http://localhost:37564"));
+                       host.DoAddBaseAddress (new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()));
                        Assert.AreEqual (1, host.BaseAddresses.Count, "#1");
-                       host.DoAddBaseAddress (new Uri ("net.tcp://localhost:893"));
+                       host.DoAddBaseAddress (new Uri ("net.tcp://localhost:" + NetworkHelpers.FindFreePort ()));
                        Assert.AreEqual (2, host.BaseAddresses.Count, "#1");
                }
 
@@ -278,39 +285,42 @@ namespace MonoTests.System.ServiceModel
                {
                        var host = new Poker ();
                        Assert.AreEqual (0, host.BaseAddresses.Count, "#1");
-                       host.DoAddBaseAddress (new Uri ("http://localhost:37564"));
+                       host.DoAddBaseAddress (new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()));
                        // http base address is already added.
-                       host.DoAddBaseAddress (new Uri ("http://localhost:893"));
+                       host.DoAddBaseAddress (new Uri ("http://localhost:" + NetworkHelpers.FindFreePort ()));
                }
 
                [Test]
                public void AddServiceEndpointUri ()
                {
+                       int port = NetworkHelpers.FindFreePort ();
                        var host = new ServiceHost (typeof (AllActions),
-                               new Uri ("http://localhost:37564"));
+                               new Uri ("http://localhost:" + port));
                        var se = host.AddServiceEndpoint (typeof (AllActions),
                                new BasicHttpBinding (), "foobar");
-                       Assert.AreEqual ("http://localhost:37564/foobar", se.Address.Uri.AbsoluteUri, "#1");
-                       Assert.AreEqual ("http://localhost:37564/foobar", se.ListenUri.AbsoluteUri, "#2");
+                       Assert.AreEqual ("http://localhost:" + port + "/foobar", se.Address.Uri.AbsoluteUri, "#1");
+                       Assert.AreEqual ("http://localhost:" + port + "/foobar", se.ListenUri.AbsoluteUri, "#2");
                }
 
                [Test]
                public void AddServiceEndpointUri2 ()
                {
+                       int port = NetworkHelpers.FindFreePort ();
                        var host = new ServiceHost (typeof (AllActions),
-                               new Uri ("http://localhost:37564"));
+                               new Uri ("http://localhost:" + port));
                        var se = host.AddServiceEndpoint (typeof (AllActions),
                                new BasicHttpBinding (), String.Empty);
-                       Assert.AreEqual ("http://localhost:37564/", se.Address.Uri.AbsoluteUri, "#1");
-                       Assert.AreEqual ("http://localhost:37564/", se.ListenUri.AbsoluteUri, "#2");
+                       Assert.AreEqual ("http://localhost:" + port + "/", se.Address.Uri.AbsoluteUri, "#1");
+                       Assert.AreEqual ("http://localhost:" + port + "/", se.ListenUri.AbsoluteUri, "#2");
                }
 
                [Test]
                [ExpectedException (typeof (InvalidOperationException))]
                public void AddServiceEndpointOnlyMex ()
                {
+            var ep = NetworkHelpers.LocalEphemeralEndPoint().ToString();
                        var host = new ServiceHost (typeof (AllActions),
-                               new Uri ("http://localhost:37564"));
+                               new Uri ("http://" + ep));
                        host.Description.Behaviors.Add (new ServiceMetadataBehavior ());
                        host.AddServiceEndpoint ("IMetadataExchange",
                                new BasicHttpBinding (), "/wsdl");
@@ -339,7 +349,7 @@ namespace MonoTests.System.ServiceModel
 
                void RunDestinationUnreachableTest (string label, Binding binding)
                {
-                       string address = "http://localhost:37564/";
+                       string address = "http://" + NetworkHelpers.LocalEphemeralEndPoint().ToString();
                        var host = OpenHost (address, binding);
                        
                        try {
@@ -363,7 +373,6 @@ namespace MonoTests.System.ServiceModel
                        return host;
                }
 
-#if NET_4_0
                [Test]
                public void AddServiceEndpoint_Directly ()
                {
@@ -412,7 +421,6 @@ namespace MonoTests.System.ServiceModel
                        var contract = ContractDescription.GetContract (typeof (INotImplementedService));
                        host.AddServiceEndpoint (new ServiceEndpoint (contract, binding, address));
                }
-#endif
 
                #region helpers
 
index 57e03d8e7b4fa9e487ea5c0c18e84c479ded4e0d..a120402ff7cc6bbcdcaadc235ad311843ca49752 100644 (file)
@@ -34,6 +34,8 @@ using System.ServiceModel.Description;
 using System.ServiceModel.Dispatcher;
 using NUnit.Framework;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.ServiceModel
 {
        [TestFixture]
@@ -172,10 +174,11 @@ namespace MonoTests.System.ServiceModel
                [Test]
                public void AddServiceEndpoint2_4 ()
                {
-                       ServiceHost host = new ServiceHost (typeof (HogeFuga), new Uri ("http://localhost:37564"));
+                       var ep = "http://" + NetworkHelpers.LocalEphemeralEndPoint().ToString();
+                       ServiceHost host = new ServiceHost (typeof (HogeFuga), new Uri (ep));
                        var binding = new BasicHttpBinding ();
-                       host.AddServiceEndpoint (typeof (IHoge), binding, new Uri ("http://localhost:37564"));
-                       host.AddServiceEndpoint (typeof (IFuga), binding, new Uri ("http://localhost:37564"));
+                       host.AddServiceEndpoint (typeof (IHoge), binding, new Uri (ep));
+                       host.AddServiceEndpoint (typeof (IFuga), binding, new Uri (ep));
 
                        // Use the same binding, results in one ChannelDispatcher (actually two, for metadata/debug behavior).
                        host.Open ();
@@ -296,13 +299,14 @@ namespace MonoTests.System.ServiceModel
                [Test]
                public void InstanceWithNonSingletonMode ()
                {
+                       var ep = NetworkHelpers.LocalEphemeralEndPoint().ToString();
                        ServiceHost host = new ServiceHost (
                                new NonSingletonService ());
                        Assert.IsNotNull (host.Description.Behaviors.Find<ServiceBehaviorAttribute> ().GetWellKnownSingleton (), "premise1");
                        host.AddServiceEndpoint (
                                typeof (NonSingletonService),
                                new BasicHttpBinding (),
-                               new Uri ("http://localhost:37564/s1"));
+                               new Uri ("http://" + ep + "/s1"));
 
                        // in case Open() didn't fail, we need to close the host.
                        // And even if Close() caused the expected exception,
@@ -323,13 +327,14 @@ namespace MonoTests.System.ServiceModel
                [Test]
                public void InstanceWithSingletonMode ()
                {
+            var ep = NetworkHelpers.LocalEphemeralEndPoint().ToString();
                        SingletonService instance = new SingletonService ();
                        ServiceHost host = new ServiceHost (instance);
                        Assert.IsNotNull (host.Description.Behaviors.Find<ServiceBehaviorAttribute> ().GetWellKnownSingleton (), "#1");
                        host.AddServiceEndpoint (
                                typeof (SingletonService),
                                new BasicHttpBinding (),
-                               new Uri ("http://localhost:37564/s2"));
+                               new Uri ("http://" + ep + "/s2"));
 
                        // in case Open() didn't fail, we need to close the host.
                        // And even if Close() caused the expected exception,
diff --git a/mcs/class/System.ServiceModel/monotouch_watch_System.ServiceModel.dll.sources b/mcs/class/System.ServiceModel/monotouch_watch_System.ServiceModel.dll.sources
new file mode 100644 (file)
index 0000000..22ece5c
--- /dev/null
@@ -0,0 +1 @@
+#include mobile_System.ServiceModel.dll.sources
diff --git a/mcs/class/System.ServiceModel/net_4_0_System.ServiceModel.dll.sources b/mcs/class/System.ServiceModel/net_4_0_System.ServiceModel.dll.sources
deleted file mode 100644 (file)
index 9a58870..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-../../build/common/Consts.cs
-../../build/common/MonoTODOAttribute.cs
-#include System.ServiceModel.dll.sources
-
-System.ServiceModel.Channels/IHttpCookieContainer.cs
-System.ServiceModel.Channels/HttpCookieContainerBindingElement.cs
-
-../System.ServiceModel.Web/System.ServiceModel.Syndication/Atom10FeedFormatter.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/Atom10FeedFormatter_1.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/Atom10ItemFormatter.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/Atom10ItemFormatter_1.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/AtomPub10CategoriesDocumentFormatter.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/AtomPub10ServiceDocumentFormatter.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/AtomPub10ServiceDocumentFormatter_1.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/CategoriesDocument.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/CategoriesDocumentFormatter.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/ISyndicationElement.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/InlineCategoriesDocument.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/ReferencedCategoriesDocument.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/ResourceCollectionInfo.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/Rss20FeedFormatter.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/Rss20FeedFormatter_1.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/Rss20ItemFormatter.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/Rss20ItemFormatter_1.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/ServiceDocument.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/ServiceDocumentFormatter.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationCategory.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationContent.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationElementExtension.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationElementExtensionCollection.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationExtensions.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationFeed.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationFeedFormatter.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationItem.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationItemFormatter.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationLink.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationPerson.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/SyndicationVersions.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/TextSyndicationContent.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/TextSyndicationContentKind.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/UrlSyndicationContent.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/Workspace.cs
-../System.ServiceModel.Web/System.ServiceModel.Syndication/XmlSyndicationContent.cs
-../System.ServiceModel.Web/System/UriTemplate.cs
-../System.ServiceModel.Web/System/UriTemplateEquivalenceComparer.cs
-../System.ServiceModel.Web/System/UriTemplateMatch.cs
-../System.ServiceModel.Web/System/UriTemplateMatchException.cs
-../System.ServiceModel.Web/System/UriTemplateTable.cs
diff --git a/mcs/class/System.ServiceModel/net_4_5_System.ServiceModel.dll.sources b/mcs/class/System.ServiceModel/net_4_5_System.ServiceModel.dll.sources
deleted file mode 100644 (file)
index 5f1bdb6..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#include net_4_0_System.ServiceModel.dll.sources
-System.ServiceModel/HttpBindingBase.cs
-System.ServiceModel/BasicHttpBinding_4_5.cs
-System.ServiceModel/BasicHttpsBinding.cs
-System.ServiceModel/BasicHttpsSecurity.cs
-System.ServiceModel/NetHttpBinding.cs
-System.ServiceModel/NetHttpMessageEncoding.cs
-System.ServiceModel.Channels/CompressionFormat.cs
-System.ServiceModel.Channels/WebSocketTransportSettings.cs
-System.ServiceModel.Channels/WebSocketTransportUsage.cs
-System.ServiceModel.Configuration/BasicHttpBindingElement_4_5.cs
-System.ServiceModel.Configuration/HttpBindingBaseElement.cs
-System.ServiceModel.Configuration/BasicHttpsBindingElement.cs
-System.ServiceModel.Configuration/BasicHttpsSecurityElement.cs
-System.ServiceModel.Configuration/BasicHttpsBindingCollectionElement.cs
diff --git a/mcs/class/System.ServiceModel/xammac_net_4_5_System.ServiceModel.dll.sources b/mcs/class/System.ServiceModel/xammac_net_4_5_System.ServiceModel.dll.sources
new file mode 100644 (file)
index 0000000..1e3d293
--- /dev/null
@@ -0,0 +1,64 @@
+#include mobile_System.ServiceModel.dll.sources
+System.ServiceModel.Channels/IChannelListener.cs
+System.ServiceModel.Channels/IReplyChannel.cs
+System.ServiceModel.Channels/IReplySessionChannel.cs
+System.ServiceModel.Configuration/CertificateElement.cs
+System.ServiceModel.Configuration/CertificateReferenceElement.cs
+System.ServiceModel.Configuration/ConfigUtil.cs
+System.ServiceModel.Configuration/DnsElement.cs
+System.ServiceModel.Configuration/IdentityElement.cs
+System.ServiceModel.Configuration/RsaElement.cs
+System.ServiceModel.Configuration/ServicePrincipalNameElement.cs
+System.ServiceModel.Configuration/UserPrincipalNameElement.cs
+System.ServiceModel.Configuration/X509ClientCertificateCredentialsElement.cs
+System.ServiceModel.Configuration/X509DefaultServiceCertificateElement.cs
+System.ServiceModel.Configuration/X509ScopedServiceCertificateElement.cs
+System.ServiceModel.Description/MetadataLocation.cs
+System.ServiceModel.Description/MetadataReference.cs
+System.ServiceModel.Description/MetadataSection.cs
+System.ServiceModel.Description/MetadataSectionSerializerBase.cs
+System.ServiceModel.Description/MetadataSet.cs
+System.ServiceModel.Dispatcher/ActionMessageFilter.cs
+System.ServiceModel.Dispatcher/ActionMessageFilterTable.cs
+System.ServiceModel.Dispatcher/ICallContextInitializer.cs
+System.ServiceModel.Dispatcher/IMessageFilterTable.cs
+System.ServiceModel.Dispatcher/IOperationInvoker.cs
+System.ServiceModel.Dispatcher/MatchAllMessageFilter.cs
+System.ServiceModel.Dispatcher/MatchNoneMessageFilter.cs
+System.ServiceModel.Dispatcher/MessageFilter.cs
+System.ServiceModel.Dispatcher/MessageFilterTable.cs
+System.ServiceModel.Dispatcher/MultipleMessageFilterMatchesException.cs
+System.ServiceModel.Dispatcher/SeekableXPathNavigator.cs
+System.ServiceModel.Dispatcher/XPathMessageFilter.cs
+System.ServiceModel.Security.Tokens/SecurityContextSecurityToken.cs
+System.ServiceModel.Security.Tokens/SslnegoCookieResolver.cs
+System.ServiceModel.Security/ChannelProtectionRequirements.cs
+System.ServiceModel.Security/IdentityVerifier.cs
+System.ServiceModel.Security/IssuedTokenClientCredential.cs
+System.ServiceModel.Security/KeyEntropyMode.cs
+System.ServiceModel.Security/MessagePartSpecification.cs
+System.ServiceModel.Security/PeerCredential.cs
+System.ServiceModel.Security/ScopedMessagePartSpecification.cs
+System.ServiceModel.Security/SecurityAlgorithmSuite.cs
+System.ServiceModel.Security/SecurityContextKeyIdentifierClause.cs
+System.ServiceModel.Security/SecurityMessageProperty.cs
+System.ServiceModel.Security/SecurityStateEncoder.cs
+System.ServiceModel.Security/SecurityTokenAttachmentMode.cs
+System.ServiceModel.Security/SecurityTokenSpecification.cs
+System.ServiceModel.Security/SupportingTokenSpecification.cs
+System.ServiceModel.Security/X509CertificateInitiatorClientCredential.cs
+System.ServiceModel.Security/X509CertificateRecipientClientCredential.cs
+System.ServiceModel.Security/X509PeerCertificateAuthentication.cs
+System.ServiceModel.Security/X509ServiceCertificateAuthentication.cs
+System.ServiceModel/DnsEndpointIdentity.cs
+System.ServiceModel/EndpointAddressAugust2004.cs
+System.ServiceModel/EndpointIdentity.cs
+System.ServiceModel/IDuplexClientChannel.cs
+System.ServiceModel/OperationBehaviorAttribute.cs
+System.ServiceModel/RsaEndpointIdentity.cs
+System.ServiceModel/ServiceSecurityContext.cs
+System.ServiceModel/SpnEndpointIdentity.cs
+System.ServiceModel/UpnEndpointIdentity.cs
+System.ServiceModel/X509CertificateEndpointIdentity.cs
+System.ServiceModel.Dispatcher/IErrorHandler.cs
+Dummy_XM_4_5.cs
index 46df964af01cd3254dfe5b5069855cc1475c401b..ba910861e3b2b7f580e54e997f2747643128690c 100644 (file)
@@ -2,7 +2,7 @@ thisdir = class/System.Transactions
 SUBDIRS = 
 include ../../build/rules.make
 
-MOBILE_PROFILE := $(filter monotouch monodroid xammac mobile mobile_static, $(PROFILE))
+MOBILE_PROFILE := $(filter monotouch monotouch_runtime monotouch_watch monodroid xammac mobile mobile_static, $(PROFILE))
 
 LIBRARY = System.Transactions.dll
 ifdef MOBILE_PROFILE
index bf8cbe5d8e4d91c3c41fe4366fd5415ce5b4d9ab..f896d06efaf8f9e2eb03ef0875942577d5b60c0e 100644 (file)
@@ -10,13 +10,4 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES =
 
-# This is a .NET 3.5+ assembly
-VALID_PROFILE := $(filter net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.Web.Abstractions.dll
-NO_INSTALL = yes
-NO_SIGN_ASSEMBLY = yes
-NO_TEST = yes
-endif
-
 include ../../build/library.make
index db8793f03bcdbbac0124cdff646c5187b353d6c1..ae6565a49595fd2302af50073b1da3e6b08a0aab 100644 (file)
@@ -1,26 +1,2 @@
-../../build/common/Consts.cs
-../../build/common/MonoTODOAttribute.cs
 Assembly/AssemblyInfo.cs
-
-System.Web/HttpApplicationStateBase.cs
-System.Web/HttpApplicationStateWrapper.cs
-System.Web/HttpBrowserCapabilitiesBase.cs
-System.Web/HttpBrowserCapabilitiesWrapper.cs
-System.Web/HttpCachePolicyBase.cs
-System.Web/HttpCachePolicyWrapper.cs
-System.Web/HttpContextBase.cs
-System.Web/HttpContextWrapper.cs
-System.Web/HttpFileCollectionBase.cs
-System.Web/HttpFileCollectionWrapper.cs
-System.Web/HttpPostedFileBase.cs
-System.Web/HttpPostedFileWrapper.cs
-System.Web/HttpRequestBase.cs
-System.Web/HttpRequestWrapper.cs
-System.Web/HttpResponseBase.cs
-System.Web/HttpResponseWrapper.cs
-System.Web/HttpServerUtilityBase.cs
-System.Web/HttpServerUtilityWrapper.cs
-System.Web/HttpSessionStateBase.cs
-System.Web/HttpSessionStateWrapper.cs
-System.Web/HttpStaticObjectsCollectionBase.cs
-System.Web/HttpStaticObjectsCollectionWrapper.cs
+../../build/common/Consts.cs
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpApplicationStateBase.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpApplicationStateBase.cs
deleted file mode 100644 (file)
index 6310cc0..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-//
-// HttpApplicationStateBase.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Globalization;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public abstract class HttpApplicationStateBase : NameObjectCollectionBase, ICollection, IEnumerable
-       {
-               void NotImplemented ()
-               {
-                       throw new NotImplementedException ();
-               }
-
-               public virtual string [] AllKeys {
-                       get { NotImplemented (); return null; }
-               }
-
-               public virtual HttpApplicationStateBase Contents {
-                       get { NotImplemented (); return null; }
-               }
-
-               public override int Count {
-                       get { NotImplemented (); return 0; }
-               }
-
-               public virtual bool IsSynchronized {
-                       get { NotImplemented (); return false; }
-               }
-
-               public virtual object this [int index] {
-                       get { return Get (index); }
-               }
-
-               public virtual object this [string name] {
-                       get { return Get (name); }
-                       set { Set (name, value); }
-               }
-
-               public virtual HttpStaticObjectsCollectionBase StaticObjects {
-                       get { NotImplemented (); return null; }
-               }
-
-               public virtual object SyncRoot {
-                       get { NotImplemented (); return null; }
-               }
-
-               public virtual void Add (string name, object value)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void Clear ()
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void CopyTo (Array array, int index)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual object Get (int index)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual object Get (string name)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public override IEnumerator GetEnumerator ()
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual string GetKey (int index)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual void Lock ()
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void Remove (string name)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RemoveAll ()
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RemoveAt (int index)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void Set (string name, object value)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void UnLock ()
-               {
-                       NotImplemented ();
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpApplicationStateWrapper.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpApplicationStateWrapper.cs
deleted file mode 100644 (file)
index d0299ef..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-//
-// HttpApplicationStateWrapper.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Globalization;
-using System.Runtime.CompilerServices;
-using System.Runtime.Serialization;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class HttpApplicationStateWrapper : HttpApplicationStateBase
-       {
-               HttpApplicationState w;
-
-               public HttpApplicationStateWrapper (HttpApplicationState httpApplicationState)
-               {
-                       if (httpApplicationState == null)
-                               throw new ArgumentNullException ("httpApplicationState");
-                       w = httpApplicationState;
-               }
-
-               public override string [] AllKeys {
-                       get { return w.AllKeys; }
-               }
-
-               public override HttpApplicationStateBase Contents {
-                       get { return new HttpApplicationStateWrapper (w.Contents); }
-               }
-
-               public override int Count {
-                       get { return w.Count; }
-               }
-
-               public override bool IsSynchronized {
-                       get { return ((ICollection) this).IsSynchronized; }
-               }
-
-               public override object this [int index] {
-                       get { return Get (index); }
-               }
-
-               public override object this [string name] {
-                       get { return Get (name); }
-                       set { Set (name, value); }
-               }
-
-               public override NameObjectCollectionBase.KeysCollection Keys {
-                       get { return w.Keys; }
-               }
-
-               public override HttpStaticObjectsCollectionBase StaticObjects {
-                       get { return new HttpStaticObjectsCollectionWrapper (w.StaticObjects); }
-               }
-
-               public override object SyncRoot {
-                       get { return ((ICollection) this).SyncRoot; }
-               }
-
-               public override void Add (string name, object value)
-               {
-                       w.Add (name, value);
-               }
-
-               public override void Clear ()
-               {
-                       w.Clear ();
-               }
-
-               public override void CopyTo (Array array, int index)
-               {
-                       ((ICollection) this).CopyTo (array, index);
-               }
-
-               public override object Get (int index)
-               {
-                       return w.Get (index);
-               }
-
-               public override object Get (string name)
-               {
-                       return w.Get (name);
-               }
-
-               public override IEnumerator GetEnumerator ()
-               {
-                       return w.GetEnumerator ();
-               }
-
-               public override string GetKey (int index)
-               {
-                       return w.GetKey (index);
-               }
-
-               [MonoTODO]
-               public override void GetObjectData (SerializationInfo info, StreamingContext context)
-               {
-                       w.GetObjectData (info, context);
-
-                       throw new NotImplementedException ();
-               }
-
-               public override void Lock ()
-               {
-                       w.Lock ();
-               }
-
-               public override void OnDeserialization (object sender)
-               {
-                       w.OnDeserialization (sender);
-               }
-
-               public override void Remove (string name)
-               {
-                       w.Remove (name);
-               }
-
-               public override void RemoveAll ()
-               {
-                       w.RemoveAll ();
-               }
-
-               public override void RemoveAt (int index)
-               {
-                       w.RemoveAt (index);
-               }
-
-               public override void Set (string name, object value)
-               {
-                       w.Set (name, value);
-               }
-
-               public override void UnLock ()
-               {
-                       w.UnLock ();
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpBrowserCapabilitiesBase.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpBrowserCapabilitiesBase.cs
deleted file mode 100644 (file)
index cd91399..0000000
+++ /dev/null
@@ -1,321 +0,0 @@
-//
-// HttpBrowserCapabilitiesBase.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Globalization;
-using System.IO;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-using System.Web.UI;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public abstract class HttpBrowserCapabilitiesBase : IFilterResolutionService
-       {
-               void NotImplemented ()
-               {
-                       throw new NotImplementedException ();
-               }
-
-               public virtual bool ActiveXControls { get { NotImplemented (); return false; } }
-
-               public virtual IDictionary Adapters { get { NotImplemented (); return null; } }
-
-               public virtual bool AOL { get { NotImplemented (); return false; } }
-
-               public virtual bool BackgroundSounds { get { NotImplemented (); return false; } }
-
-               public virtual bool Beta { get { NotImplemented (); return false; } }
-
-               public virtual string Browser { get { NotImplemented (); return null; } }
-
-               public virtual ArrayList Browsers { get { NotImplemented (); return null; } }
-
-               public virtual bool CanCombineFormsInDeck { get { NotImplemented (); return false; } }
-
-               public virtual bool CanInitiateVoiceCall { get { NotImplemented (); return false; } }
-
-               public virtual bool CanRenderAfterInputOrSelectElement { get { NotImplemented (); return false; } }
-
-               public virtual bool CanRenderEmptySelects { get { NotImplemented (); return false; } }
-
-               public virtual bool CanRenderInputAndSelectElementsTogether { get { NotImplemented (); return false; } }
-
-               public virtual bool CanRenderMixedSelects { get { NotImplemented (); return false; } }
-
-               public virtual bool CanRenderOneventAndPrevElementsTogether { get { NotImplemented (); return false; } }
-
-               public virtual bool CanRenderPostBackCards { get { NotImplemented (); return false; } }
-
-               public virtual bool CanRenderSetvarZeroWithMultiSelectionList { get { NotImplemented (); return false; } }
-
-               public virtual bool CanSendMail { get { NotImplemented (); return false; } }
-
-               public virtual IDictionary Capabilities { get; set; }
-
-               public virtual bool CDF { get { NotImplemented (); return false; } }
-
-               public virtual Version ClrVersion { get { NotImplemented (); return null; } }
-
-               public virtual bool Cookies { get { NotImplemented (); return false; } }
-
-               public virtual bool Crawler { get { NotImplemented (); return false; } }
-
-               public virtual int DefaultSubmitButtonLimit { get { NotImplemented (); return 0; } }
-
-               public virtual Version EcmaScriptVersion { get { NotImplemented (); return null; } }
-
-               public virtual bool Frames { get { NotImplemented (); return false; } }
-
-               public virtual int GatewayMajorVersion { get { NotImplemented (); return 0; } }
-
-               public virtual double GatewayMinorVersion { get { NotImplemented (); return 0; } }
-
-               public virtual string GatewayVersion { get { NotImplemented (); return null; } }
-
-               public virtual bool HasBackButton { get { NotImplemented (); return false; } }
-
-               public virtual bool HidesRightAlignedMultiselectScrollbars { get { NotImplemented (); return false; } }
-
-               public virtual string HtmlTextWriter { get; set; }
-
-               public virtual string Id { get { NotImplemented (); return null; } }
-
-               public virtual string InputType { get { NotImplemented (); return null; } }
-
-               public virtual bool IsColor { get { NotImplemented (); return false; } }
-
-               public virtual bool IsMobileDevice { get { NotImplemented (); return false; } }
-
-               public virtual string this [string key] {
-                       get { throw new NotImplementedException (); }
-               }
-
-               public virtual bool JavaApplets { get { NotImplemented (); return false; } }
-
-               public virtual Version JScriptVersion { get { NotImplemented (); return null; } }
-
-               public virtual int MajorVersion { get { NotImplemented (); return 0; } }
-
-               public virtual int MaximumHrefLength { get { NotImplemented (); return 0; } }
-
-               public virtual int MaximumRenderedPageSize { get { NotImplemented (); return 0; } }
-
-               public virtual int MaximumSoftkeyLabelLength { get { NotImplemented (); return 0; } }
-
-               public virtual double MinorVersion { get { NotImplemented (); return 0; } }
-
-               public virtual string MinorVersionString { get { NotImplemented (); return null; } }
-
-               public virtual string MobileDeviceManufacturer { get { NotImplemented (); return null; } }
-
-               public virtual string MobileDeviceModel { get { NotImplemented (); return null; } }
-
-               public virtual Version MSDomVersion { get { NotImplemented (); return null; } }
-
-               public virtual int NumberOfSoftkeys { get { NotImplemented (); return 0; } }
-
-               public virtual string Platform { get { NotImplemented (); return null; } }
-
-               public virtual string PreferredImageMime { get { NotImplemented (); return null; } }
-
-               public virtual string PreferredRenderingMime { get { NotImplemented (); return null; } }
-
-               public virtual string PreferredRenderingType { get { NotImplemented (); return null; } }
-
-               public virtual string PreferredRequestEncoding { get { NotImplemented (); return null; } }
-
-               public virtual string PreferredResponseEncoding { get { NotImplemented (); return null; } }
-
-               public virtual bool RendersBreakBeforeWmlSelectAndInput { get { NotImplemented (); return false; } }
-
-               public virtual bool RendersBreaksAfterHtmlLists { get { NotImplemented (); return false; } }
-
-               public virtual bool RendersBreaksAfterWmlAnchor { get { NotImplemented (); return false; } }
-
-               public virtual bool RendersBreaksAfterWmlInput { get { NotImplemented (); return false; } }
-
-               public virtual bool RendersWmlDoAcceptsInline { get { NotImplemented (); return false; } }
-
-               public virtual bool RendersWmlSelectsAsMenuCards { get { NotImplemented (); return false; } }
-
-               public virtual string RequiredMetaTagNameValue { get { NotImplemented (); return null; } }
-
-               public virtual bool RequiresAttributeColonSubstitution { get { NotImplemented (); return false; } }
-
-               public virtual bool RequiresContentTypeMetaTag { get { NotImplemented (); return false; } }
-
-               public virtual bool RequiresControlStateInSession { get { NotImplemented (); return false; } }
-
-               public virtual bool RequiresDBCSCharacter { get { NotImplemented (); return false; } }
-
-               public virtual bool RequiresHtmlAdaptiveErrorReporting { get { NotImplemented (); return false; } }
-
-               public virtual bool RequiresLeadingPageBreak { get { NotImplemented (); return false; } }
-
-               public virtual bool RequiresNoBreakInFormatting { get { NotImplemented (); return false; } }
-
-               public virtual bool RequiresOutputOptimization { get { NotImplemented (); return false; } }
-
-               public virtual bool RequiresPhoneNumbersAsPlainText { get { NotImplemented (); return false; } }
-
-               public virtual bool RequiresSpecialViewStateEncoding { get { NotImplemented (); return false; } }
-
-               public virtual bool RequiresUniqueFilePathSuffix { get { NotImplemented (); return false; } }
-
-               public virtual bool RequiresUniqueHtmlCheckboxNames { get { NotImplemented (); return false; } }
-
-               public virtual bool RequiresUniqueHtmlInputNames { get { NotImplemented (); return false; } }
-
-               public virtual bool RequiresUrlEncodedPostfieldValues { get { NotImplemented (); return false; } }
-
-               public virtual int ScreenBitDepth { get { NotImplemented (); return 0; } }
-
-               public virtual int ScreenCharactersHeight { get { NotImplemented (); return 0; } }
-
-               public virtual int ScreenCharactersWidth { get { NotImplemented (); return 0; } }
-
-               public virtual int ScreenPixelsHeight { get { NotImplemented (); return 0; } }
-
-               public virtual int ScreenPixelsWidth { get { NotImplemented (); return 0; } }
-
-               public virtual bool SupportsAccesskeyAttribute { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsBodyColor { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsBold { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsCacheControlMetaTag { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsCallback { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsCss { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsDivAlign { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsDivNoWrap { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsEmptyStringInCookieValue { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsFontColor { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsFontName { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsFontSize { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsImageSubmit { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsIModeSymbols { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsInputIStyle { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsInputMode { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsItalic { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsJPhoneMultiMediaAttributes { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsJPhoneSymbols { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsQueryStringInFormAction { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsRedirectWithCookie { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsSelectMultiple { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsUncheck { get { NotImplemented (); return false; } }
-
-               public virtual bool SupportsXmlHttp { get { NotImplemented (); return false; } }
-
-               public virtual bool Tables { get { NotImplemented (); return false; } }
-
-               public virtual Type TagWriter { get { NotImplemented (); return null; } }
-
-               public virtual string Type { get { NotImplemented (); return null; } }
-
-               public virtual bool UseOptimizedCacheKey { get { NotImplemented (); return false; } }
-
-               public virtual bool VBScript { get { NotImplemented (); return false; } }
-
-               public virtual string Version { get { NotImplemented (); return null; } }
-
-               public virtual Version W3CDomVersion { get { NotImplemented (); return null; } }
-
-               public virtual bool Win16 { get { NotImplemented (); return false; } }
-
-               public virtual bool Win32 { get { NotImplemented (); return false; } }
-
-               public virtual void AddBrowser (string browserName)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual int CompareFilters (string filter1, string filter2)
-               {
-                       NotImplemented ();
-                       return 0;
-               }
-
-               public virtual HtmlTextWriter CreateHtmlTextWriter (TextWriter w)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual void DisableOptimizedCacheKey ()
-               {
-                       NotImplemented ();
-               }
-
-               public virtual bool EvaluateFilter (string filterName)
-               {
-                       NotImplemented ();
-                       return false;
-               }
-
-               public virtual Version [] GetClrVersions ()
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual bool IsBrowser (string browserName)
-               {
-                       NotImplemented ();
-                       return false;
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpBrowserCapabilitiesWrapper.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpBrowserCapabilitiesWrapper.cs
deleted file mode 100644 (file)
index b5cc963..0000000
+++ /dev/null
@@ -1,548 +0,0 @@
-//
-// HttpBrowserCapabilitiesWrapper.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Globalization;
-using System.IO;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-using System.Web.UI;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class HttpBrowserCapabilitiesWrapper : HttpBrowserCapabilitiesBase
-       {
-               HttpBrowserCapabilities w;
-
-               public HttpBrowserCapabilitiesWrapper (HttpBrowserCapabilities httpBrowserCapabilities)
-               {
-                       if (httpBrowserCapabilities == null)
-                               throw new ArgumentNullException ("httpBrowserCapabilities");
-                       w = httpBrowserCapabilities;
-               }
-
-
-               public override bool ActiveXControls {
-                       get { return w.ActiveXControls; }
-               }
-
-               public override IDictionary Adapters {
-                       get { return w.Adapters; }
-               }
-
-               public override bool AOL {
-                       get { return w.AOL; }
-               }
-
-               public override bool BackgroundSounds {
-                       get { return w.BackgroundSounds; }
-               }
-
-               public override bool Beta {
-                       get { return w.Beta; }
-               }
-
-               public override string Browser {
-                       get { return w.Browser; }
-               }
-
-               public override ArrayList Browsers {
-                       get { return w.Browsers; }
-               }
-
-               public override bool CanCombineFormsInDeck {
-                       get { return w.CanCombineFormsInDeck; }
-               }
-
-               public override bool CanInitiateVoiceCall {
-                       get { return w.CanInitiateVoiceCall; }
-               }
-
-               public override bool CanRenderAfterInputOrSelectElement {
-                       get { return w.CanRenderAfterInputOrSelectElement; }
-               }
-
-               public override bool CanRenderEmptySelects {
-                       get { return w.CanRenderEmptySelects; }
-               }
-
-               public override bool CanRenderInputAndSelectElementsTogether {
-                       get { return w.CanRenderInputAndSelectElementsTogether; }
-               }
-
-               public override bool CanRenderMixedSelects {
-                       get { return w.CanRenderMixedSelects; }
-               }
-
-               public override bool CanRenderOneventAndPrevElementsTogether {
-                       get { return w.CanRenderOneventAndPrevElementsTogether; }
-               }
-
-               public override bool CanRenderPostBackCards {
-                       get { return w.CanRenderPostBackCards; }
-               }
-
-               public override bool CanRenderSetvarZeroWithMultiSelectionList {
-                       get { return w.CanRenderSetvarZeroWithMultiSelectionList; }
-               }
-
-               public override bool CanSendMail {
-                       get { return w.CanSendMail; }
-               }
-
-               public override IDictionary Capabilities {
-                       get { return w.Capabilities; } set { w.Capabilities = value; }
-               }
-
-               public override bool CDF {
-                       get { return w.CDF; }
-               }
-
-               public override Version ClrVersion {
-                       get { return w.ClrVersion; }
-               }
-
-               public override bool Cookies {
-                       get { return w.Cookies; }
-               }
-
-               public override bool Crawler {
-                       get { return w.Crawler; }
-               }
-
-               public override int DefaultSubmitButtonLimit {
-                       get { return w.DefaultSubmitButtonLimit; }
-               }
-
-               public override Version EcmaScriptVersion {
-                       get { return w.EcmaScriptVersion; }
-               }
-
-               public override bool Frames {
-                       get { return w.Frames; }
-               }
-
-               public override int GatewayMajorVersion {
-                       get { return w.GatewayMajorVersion; }
-               }
-
-               public override double GatewayMinorVersion {
-                       get { return w.GatewayMinorVersion; }
-               }
-
-               public override string GatewayVersion {
-                       get { return w.GatewayVersion; }
-               }
-
-               public override bool HasBackButton {
-                       get { return w.HasBackButton; }
-               }
-
-               public override bool HidesRightAlignedMultiselectScrollbars {
-                       get { return w.HidesRightAlignedMultiselectScrollbars; }
-               }
-
-               public override string HtmlTextWriter {
-                       get { return w.HtmlTextWriter; } set { w.HtmlTextWriter = value; }
-               }
-
-               public override string Id {
-                       get { return w.Id; }
-               }
-
-               public override string InputType {
-                       get { return w.InputType; }
-               }
-
-               public override bool IsColor {
-                       get { return w.IsColor; }
-               }
-
-               public override bool IsMobileDevice {
-                       get { return w.IsMobileDevice; }
-               }
-
-               public override string this [string key] {
-                       get { throw new NotImplementedException (); }
-               }
-
-               public override bool JavaApplets {
-                       get { return w.JavaApplets; }
-               }
-
-               public override Version JScriptVersion {
-                       get { return w.JScriptVersion; }
-               }
-
-               public override int MajorVersion {
-                       get { return w.MajorVersion; }
-               }
-
-               public override int MaximumHrefLength {
-                       get { return w.MaximumHrefLength; }
-               }
-
-               public override int MaximumRenderedPageSize {
-                       get { return w.MaximumRenderedPageSize; }
-               }
-
-               public override int MaximumSoftkeyLabelLength {
-                       get { return w.MaximumSoftkeyLabelLength; }
-               }
-
-               public override double MinorVersion {
-                       get { return w.MinorVersion; }
-               }
-
-               public override string MinorVersionString {
-                       get { return w.MinorVersionString; }
-               }
-
-               public override string MobileDeviceManufacturer {
-                       get { return w.MobileDeviceManufacturer; }
-               }
-
-               public override string MobileDeviceModel {
-                       get { return w.MobileDeviceModel; }
-               }
-
-               public override Version MSDomVersion {
-                       get { return w.MSDomVersion; }
-               }
-
-               public override int NumberOfSoftkeys {
-                       get { return w.NumberOfSoftkeys; }
-               }
-
-               public override string Platform {
-                       get { return w.Platform; }
-               }
-
-               public override string PreferredImageMime {
-                       get { return w.PreferredImageMime; }
-               }
-
-               public override string PreferredRenderingMime {
-                       get { return w.PreferredRenderingMime; }
-               }
-
-               public override string PreferredRenderingType {
-                       get { return w.PreferredRenderingType; }
-               }
-
-               public override string PreferredRequestEncoding {
-                       get { return w.PreferredRequestEncoding; }
-               }
-
-               public override string PreferredResponseEncoding {
-                       get { return w.PreferredResponseEncoding; }
-               }
-
-               public override bool RendersBreakBeforeWmlSelectAndInput {
-                       get { return w.RendersBreakBeforeWmlSelectAndInput; }
-               }
-
-               public override bool RendersBreaksAfterHtmlLists {
-                       get { return w.RendersBreaksAfterHtmlLists; }
-               }
-
-               public override bool RendersBreaksAfterWmlAnchor {
-                       get { return w.RendersBreaksAfterWmlAnchor; }
-               }
-
-               public override bool RendersBreaksAfterWmlInput {
-                       get { return w.RendersBreaksAfterWmlInput; }
-               }
-
-               public override bool RendersWmlDoAcceptsInline {
-                       get { return w.RendersWmlDoAcceptsInline; }
-               }
-
-               public override bool RendersWmlSelectsAsMenuCards {
-                       get { return w.RendersWmlSelectsAsMenuCards; }
-               }
-
-               public override string RequiredMetaTagNameValue {
-                       get { return w.RequiredMetaTagNameValue; }
-               }
-
-               public override bool RequiresAttributeColonSubstitution {
-                       get { return w.RequiresAttributeColonSubstitution; }
-               }
-
-               public override bool RequiresContentTypeMetaTag {
-                       get { return w.RequiresContentTypeMetaTag; }
-               }
-
-               public override bool RequiresControlStateInSession {
-                       get { return w.RequiresControlStateInSession; }
-               }
-
-               public override bool RequiresDBCSCharacter {
-                       get { return w.RequiresDBCSCharacter; }
-               }
-
-               public override bool RequiresHtmlAdaptiveErrorReporting {
-                       get { return w.RequiresHtmlAdaptiveErrorReporting; }
-               }
-
-               public override bool RequiresLeadingPageBreak {
-                       get { return w.RequiresLeadingPageBreak; }
-               }
-
-               public override bool RequiresNoBreakInFormatting {
-                       get { return w.RequiresNoBreakInFormatting; }
-               }
-
-               public override bool RequiresOutputOptimization {
-                       get { return w.RequiresOutputOptimization; }
-               }
-
-               public override bool RequiresPhoneNumbersAsPlainText {
-                       get { return w.RequiresPhoneNumbersAsPlainText; }
-               }
-
-               public override bool RequiresSpecialViewStateEncoding {
-                       get { return w.RequiresSpecialViewStateEncoding; }
-               }
-
-               public override bool RequiresUniqueFilePathSuffix {
-                       get { return w.RequiresUniqueFilePathSuffix; }
-               }
-
-               public override bool RequiresUniqueHtmlCheckboxNames {
-                       get { return w.RequiresUniqueHtmlCheckboxNames; }
-               }
-
-               public override bool RequiresUniqueHtmlInputNames {
-                       get { return w.RequiresUniqueHtmlInputNames; }
-               }
-
-               public override bool RequiresUrlEncodedPostfieldValues {
-                       get { return w.RequiresUrlEncodedPostfieldValues; }
-               }
-
-               public override int ScreenBitDepth {
-                       get { return w.ScreenBitDepth; }
-               }
-
-               public override int ScreenCharactersHeight {
-                       get { return w.ScreenCharactersHeight; }
-               }
-
-               public override int ScreenCharactersWidth {
-                       get { return w.ScreenCharactersWidth; }
-               }
-
-               public override int ScreenPixelsHeight {
-                       get { return w.ScreenPixelsHeight; }
-               }
-
-               public override int ScreenPixelsWidth {
-                       get { return w.ScreenPixelsWidth; }
-               }
-
-               public override bool SupportsAccesskeyAttribute {
-                       get { return w.SupportsAccesskeyAttribute; }
-               }
-
-               public override bool SupportsBodyColor {
-                       get { return w.SupportsBodyColor; }
-               }
-
-               public override bool SupportsBold {
-                       get { return w.SupportsBold; }
-               }
-
-               public override bool SupportsCacheControlMetaTag {
-                       get { return w.SupportsCacheControlMetaTag; }
-               }
-
-               public override bool SupportsCallback {
-                       get { return w.SupportsCallback; }
-               }
-
-               public override bool SupportsCss {
-                       get { return w.SupportsCss; }
-               }
-
-               public override bool SupportsDivAlign {
-                       get { return w.SupportsDivAlign; }
-               }
-
-               public override bool SupportsDivNoWrap {
-                       get { return w.SupportsDivNoWrap; }
-               }
-
-               public override bool SupportsEmptyStringInCookieValue {
-                       get { return w.SupportsEmptyStringInCookieValue; }
-               }
-
-               public override bool SupportsFontColor {
-                       get { return w.SupportsFontColor; }
-               }
-
-               public override bool SupportsFontName {
-                       get { return w.SupportsFontName; }
-               }
-
-               public override bool SupportsFontSize {
-                       get { return w.SupportsFontSize; }
-               }
-
-               public override bool SupportsImageSubmit {
-                       get { return w.SupportsImageSubmit; }
-               }
-
-               public override bool SupportsIModeSymbols {
-                       get { return w.SupportsIModeSymbols; }
-               }
-
-               public override bool SupportsInputIStyle {
-                       get { return w.SupportsInputIStyle; }
-               }
-
-               public override bool SupportsInputMode {
-                       get { return w.SupportsInputMode; }
-               }
-
-               public override bool SupportsItalic {
-                       get { return w.SupportsItalic; }
-               }
-
-               public override bool SupportsJPhoneMultiMediaAttributes {
-                       get { return w.SupportsJPhoneMultiMediaAttributes; }
-               }
-
-               public override bool SupportsJPhoneSymbols {
-                       get { return w.SupportsJPhoneSymbols; }
-               }
-
-               public override bool SupportsQueryStringInFormAction {
-                       get { return w.SupportsQueryStringInFormAction; }
-               }
-
-               public override bool SupportsRedirectWithCookie {
-                       get { return w.SupportsRedirectWithCookie; }
-               }
-
-               public override bool SupportsSelectMultiple {
-                       get { return w.SupportsSelectMultiple; }
-               }
-
-               public override bool SupportsUncheck {
-                       get { return w.SupportsUncheck; }
-               }
-
-               public override bool SupportsXmlHttp {
-                       get { return w.SupportsXmlHttp; }
-               }
-
-               public override bool Tables {
-                       get { return w.Tables; }
-               }
-
-               public override Type TagWriter {
-                       get { return w.TagWriter; }
-               }
-
-               public override string Type {
-                       get { return w.Type; }
-               }
-
-               public override bool UseOptimizedCacheKey {
-                       get { return w.UseOptimizedCacheKey; }
-               }
-
-               public override bool VBScript {
-                       get { return w.VBScript; }
-               }
-
-               public override string Version {
-                       get { return w.Version; }
-               }
-
-               public override Version W3CDomVersion {
-                       get { return w.W3CDomVersion; }
-               }
-
-               public override bool Win16 {
-                       get { return w.Win16; }
-               }
-
-               public override bool Win32 {
-                       get { return w.Win32; }
-               }
-
-               public override void AddBrowser (string browserName)
-               {
-                       w.AddBrowser (browserName);
-               }
-
-               [MonoTODO]
-               public override int CompareFilters (string filter1, string filter2)
-               {
-                       throw new NotImplementedException ();
-               }
-
-               [MonoTODO]
-               public override HtmlTextWriter CreateHtmlTextWriter (TextWriter w)
-               {
-                       throw new NotImplementedException ();
-               }
-
-               public override void DisableOptimizedCacheKey ()
-               {
-                       w.DisableOptimizedCacheKey ();
-               }
-
-               [MonoTODO]
-               public override bool EvaluateFilter (string filterName)
-               {
-                       throw new NotImplementedException ();
-               }
-
-               public override Version [] GetClrVersions ()
-               {
-                       return w.GetClrVersions ();
-               }
-
-               public override bool IsBrowser (string browserName)
-               {
-                       return w.IsBrowser (browserName);
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpCachePolicyBase.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpCachePolicyBase.cs
deleted file mode 100644 (file)
index 7008474..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-//
-// HttpCachePolicyBase.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public abstract class HttpCachePolicyBase
-       {
-               void NotImplemented ()
-               {
-                       throw new NotImplementedException ();
-               }
-
-               public virtual HttpCacheVaryByContentEncodings VaryByContentEncodings { get { NotImplemented (); return null; } }
-
-               public virtual HttpCacheVaryByHeaders VaryByHeaders { get { NotImplemented (); return null; } }
-
-               public virtual HttpCacheVaryByParams VaryByParams { get { NotImplemented (); return null; } }
-
-               public virtual void AddValidationCallback (HttpCacheValidateHandler handler, object data)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void AppendCacheExtension (string extension)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetAllowResponseInBrowserHistory (bool allow)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetCacheability (HttpCacheability cacheability)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetCacheability (HttpCacheability cacheability, string field)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetETag (string etag)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetETagFromFileDependencies ()
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetExpires (DateTime date)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetLastModified (DateTime date)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetLastModifiedFromFileDependencies ()
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetMaxAge (TimeSpan delta)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetNoServerCaching ()
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetNoStore ()
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetNoTransforms ()
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetOmitVaryStar (bool omit)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetProxyMaxAge (TimeSpan delta)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetRevalidation (HttpCacheRevalidation revalidation)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetSlidingExpiration (bool slide)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetValidUntilExpires (bool validUntilExpires)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void SetVaryByCustom (string custom)
-               {
-                       NotImplemented ();
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpCachePolicyWrapper.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpCachePolicyWrapper.cs
deleted file mode 100644 (file)
index c2fad9d..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-//
-// HttpCachePolicyWrapper.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class HttpCachePolicyWrapper : HttpCachePolicyBase
-       {
-               HttpCachePolicy w;
-
-               public HttpCachePolicyWrapper (HttpCachePolicy httpCachePolicy)
-               {
-                       if (httpCachePolicy == null)
-                               throw new ArgumentNullException ("httpCachePolicy");
-                       w = httpCachePolicy;
-               }
-
-               public override HttpCacheVaryByContentEncodings VaryByContentEncodings {
-                       get { return w.VaryByContentEncodings; }
-               }
-
-               public override HttpCacheVaryByHeaders VaryByHeaders {
-                       get { return w.VaryByHeaders; }
-               }
-
-               public override HttpCacheVaryByParams VaryByParams {
-                       get { return w.VaryByParams; }
-               }
-
-               public override void AddValidationCallback (HttpCacheValidateHandler handler, object data)
-               {
-                       w.AddValidationCallback (handler, data);
-               }
-
-               public override void AppendCacheExtension (string extension)
-               {
-                       w.AppendCacheExtension (extension);
-               }
-
-               public override void SetAllowResponseInBrowserHistory (bool allow)
-               {
-                       w.SetAllowResponseInBrowserHistory (allow);
-               }
-
-               public override void SetCacheability (HttpCacheability cacheability)
-               {
-                       w.SetCacheability (cacheability);
-               }
-
-               public override void SetCacheability (HttpCacheability cacheability, string field)
-               {
-                       w.SetCacheability (cacheability, field);
-               }
-
-               public override void SetVaryByCustom (string custom)
-               {
-                       w.SetVaryByCustom (custom);
-               }
-
-               public override void SetETag (string etag)
-               {
-                       w.SetETag (etag);
-               }
-
-               public override void SetETagFromFileDependencies ()
-               {
-                       w.SetETagFromFileDependencies ();
-               }
-
-               public override void SetExpires (DateTime date)
-               {
-                       w.SetExpires (date);
-               }
-
-               public override void SetLastModified (DateTime date)
-               {
-                       w.SetLastModified (date);
-               }
-
-               public override void SetLastModifiedFromFileDependencies ()
-               {
-                       w.SetLastModifiedFromFileDependencies ();
-               }
-
-               public override void SetMaxAge (TimeSpan delta)
-               {
-                       w.SetMaxAge (delta);
-               }
-
-               public override void SetNoServerCaching ()
-               {
-                       w.SetNoServerCaching ();
-               }
-
-               public override void SetNoStore ()
-               {
-                       w.SetNoStore ();
-               }
-
-               public override void SetNoTransforms ()
-               {
-                       w.SetNoTransforms ();
-               }
-
-               public override void SetOmitVaryStar (bool omit)
-               {
-                       w.SetOmitVaryStar (omit);
-               }
-
-               public override void SetProxyMaxAge (TimeSpan delta)
-               {
-                       w.SetProxyMaxAge (delta);
-               }
-
-               public override void SetRevalidation (HttpCacheRevalidation revalidation)
-               {
-                       w.SetRevalidation (revalidation);
-               }
-
-               public override void SetSlidingExpiration (bool slide)
-               {
-                       w.SetSlidingExpiration (slide);
-               }
-
-               public override void SetValidUntilExpires (bool validUntilExpires)
-               {
-                       w.SetValidUntilExpires (validUntilExpires);
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpContextBase.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpContextBase.cs
deleted file mode 100644 (file)
index f81db29..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-//
-// HttpContextBase.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-using System.Web.Profile;
-using System.Web.SessionState;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public abstract class HttpContextBase : IServiceProvider
-       {
-               void NotImplemented ()
-               {
-                       throw new NotImplementedException ();
-               }
-
-               public virtual Exception [] AllErrors { get { NotImplemented (); return null; } }
-
-               public virtual HttpApplicationStateBase Application { get { NotImplemented (); return null; } }
-
-               public virtual HttpApplication ApplicationInstance { get { NotImplemented (); return null; } set { NotImplemented (); } }
-
-               public virtual Cache Cache { get { NotImplemented (); return null; } }
-
-               public virtual IHttpHandler CurrentHandler { get { NotImplemented (); return null; } }
-
-               public virtual RequestNotification CurrentNotification { get { NotImplemented (); return default (RequestNotification); } }
-
-               public virtual Exception Error { get { NotImplemented (); return null; } }
-
-               public virtual IHttpHandler Handler { get { NotImplemented (); return null; } set { NotImplemented (); } }
-
-               public virtual bool IsCustomErrorEnabled { get { NotImplemented (); return false; } }
-
-               public virtual bool IsDebuggingEnabled { get { NotImplemented (); return false; } }
-
-               public virtual bool IsPostNotification { get { NotImplemented (); return false; } }
-
-               public virtual IDictionary Items { get { NotImplemented (); return null; } }
-
-               public virtual IHttpHandler PreviousHandler { get { NotImplemented (); return null; } }
-
-               public virtual ProfileBase Profile { get { NotImplemented (); return null; } }
-
-               public virtual HttpRequestBase Request { get { NotImplemented (); return null; } }
-
-               public virtual HttpResponseBase Response { get { NotImplemented (); return null; } }
-
-               public virtual HttpServerUtilityBase Server { get { NotImplemented (); return null; } }
-
-               public virtual HttpSessionStateBase Session { get { NotImplemented (); return null; } }
-
-               public virtual bool SkipAuthorization { get { NotImplemented (); return false; } set { NotImplemented (); } }
-
-               public virtual DateTime Timestamp { get { NotImplemented (); return DateTime.MinValue; } }
-
-               public virtual TraceContext Trace { get { NotImplemented (); return null; } }
-
-               public virtual IPrincipal User { get { NotImplemented (); return null; } set { NotImplemented (); } }
-
-               public virtual void AddError (Exception errorInfo)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void ClearError ()
-               {
-                       NotImplemented ();
-               }
-
-               public virtual object GetGlobalResourceObject (string classKey, string resourceKey)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual object GetGlobalResourceObject (string classKey, string resourceKey, CultureInfo culture)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual object GetLocalResourceObject (string virtualPath, string resourceKey)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual object GetLocalResourceObject (string virtualPath, string resourceKey, CultureInfo culture)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual object GetSection (string sectionName)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual object GetService (Type serviceType)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-               public virtual void RemapHandler (IHttpHandler handler)
-               {
-                       NotImplemented ();
-               }
-               public virtual void RewritePath (string path)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RewritePath (string path, bool rebaseClientPath)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RewritePath (string filePath, string pathInfo, string queryString)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RewritePath (string filePath, string pathInfo, string queryString, bool setClientFilePath)
-               {
-                       NotImplemented ();
-               }
-               public virtual void SetSessionStateBehavior (SessionStateBehavior sessionStateBehavior)
-               {
-                       NotImplemented ();
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpContextWrapper.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpContextWrapper.cs
deleted file mode 100644 (file)
index 64975a8..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-//
-// HttpContextWrapper.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008-2010 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-using System.Web.Profile;
-using System.Web.SessionState;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class HttpContextWrapper : HttpContextBase
-       {
-               HttpContext w;
-
-               public HttpContextWrapper (HttpContext httpContext)
-               {
-                       if (httpContext == null)
-                               throw new ArgumentNullException ("httpContext");
-                       w = httpContext;
-               }
-
-               public override Exception [] AllErrors {
-                       get { return w.AllErrors; }
-               }
-
-               public override HttpApplicationStateBase Application {
-                       get { return new HttpApplicationStateWrapper (w.Application); }
-               }
-
-               public override HttpApplication ApplicationInstance {
-                       get { return w.ApplicationInstance; }
-                       set { w.ApplicationInstance = value; }
-               }
-
-               public override Cache Cache {
-                       get { return w.Cache; }
-               }
-
-               public override IHttpHandler CurrentHandler {
-                       get { return w.CurrentHandler; }
-               }
-
-               public override RequestNotification CurrentNotification {
-                       get { return w.CurrentNotification; }
-               }
-
-               public override Exception Error {
-                       get { return w.Error; }
-               }
-
-               public override IHttpHandler Handler {
-                       get { return w.Handler; }
-                       set { w.Handler = value; }
-               }
-
-               public override bool IsCustomErrorEnabled {
-                       get { return w.IsCustomErrorEnabled; }
-               }
-
-               public override bool IsDebuggingEnabled {
-                       get { return w.IsDebuggingEnabled; }
-               }
-
-               public override bool IsPostNotification {
-                       get { return w.IsPostNotification; }
-               }
-
-               public override IDictionary Items {
-                       get { return w.Items; }
-               }
-
-               public override IHttpHandler PreviousHandler {
-                       get { return w.PreviousHandler; }
-               }
-
-               public override ProfileBase Profile {
-                       get { return w.Profile; }
-               }
-
-               public override HttpRequestBase Request {
-                       get { return new HttpRequestWrapper (w.Request); }
-               }
-
-               public override HttpResponseBase Response {
-                       get { return new HttpResponseWrapper (w.Response); }
-               }
-
-               public override HttpServerUtilityBase Server {
-                       get { return new HttpServerUtilityWrapper (w.Server); }
-               }
-
-               public override HttpSessionStateBase Session {
-                       get { return w.Session == null ? null : new HttpSessionStateWrapper (w.Session); }
-               }
-
-               public override bool SkipAuthorization {
-                       get { return w.SkipAuthorization; }
-                       set { w.SkipAuthorization = value; }
-               }
-
-               public override DateTime Timestamp {
-                       get { return w.Timestamp; }
-               }
-
-               public override TraceContext Trace {
-                       get { return w.Trace; }
-               }
-
-               public override IPrincipal User {
-                       get { return w.User; }
-                       set { w.User = value; }
-               }
-
-               public override void AddError (Exception errorInfo)
-               {
-                       w.AddError (errorInfo);
-               }
-
-               public override void ClearError ()
-               {
-                       w.ClearError ();
-               }
-
-               public override object GetGlobalResourceObject (string classKey, string resourceKey)
-               {
-                       return HttpContext.GetGlobalResourceObject (classKey, resourceKey);
-               }
-
-               public override object GetGlobalResourceObject (string classKey, string resourceKey, CultureInfo culture)
-               {
-                       return HttpContext.GetGlobalResourceObject (classKey, resourceKey, culture);
-               }
-
-               public override object GetLocalResourceObject (string overridePath, string resourceKey)
-               {
-                       return HttpContext.GetLocalResourceObject (overridePath, resourceKey);
-               }
-
-               public override object GetLocalResourceObject (string overridePath, string resourceKey, CultureInfo culture)
-               {
-                       return HttpContext.GetLocalResourceObject (overridePath, resourceKey, culture);
-               }
-
-               public override object GetSection (string sectionName)
-               {
-                       return w.GetSection (sectionName);
-               }
-
-               public override object GetService (Type serviceType)
-               {
-                       return ((IServiceProvider)w).GetService (serviceType);
-               }
-               public override void RemapHandler (IHttpHandler handler)
-               {
-                       w.RemapHandler (handler);
-               }
-               public override void RewritePath (string path)
-               {
-                       w.RewritePath (path);
-               }
-
-               public override void RewritePath (string path, bool rebaseClientPath)
-               {
-                       w.RewritePath (path, rebaseClientPath);
-               }
-
-               public override void RewritePath (string filePath, string pathInfo, string queryString)
-               {
-                       w.RewritePath (filePath, pathInfo, queryString);
-               }
-
-               public override void RewritePath (string filePath, string pathInfo, string queryString, bool setClientFilePath)
-               {
-                       w.RewritePath (filePath, pathInfo, queryString, setClientFilePath);
-               }
-               public override void SetSessionStateBehavior (SessionStateBehavior sessionStateBehavior)
-               {
-                       w.SetSessionStateBehavior (sessionStateBehavior);
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpFileCollectionBase.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpFileCollectionBase.cs
deleted file mode 100644 (file)
index bd8c126..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-//
-// HttpFileCollectionBase.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Globalization;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public abstract class HttpFileCollectionBase : NameObjectCollectionBase, ICollection, IEnumerable
-       {
-               void NotImplemented ()
-               {
-                       throw new NotImplementedException ();
-               }
-
-               public virtual string [] AllKeys { get { NotImplemented (); return null; } }
-
-               public override int Count {
-                       get { NotImplemented (); return 0; }
-               }
-
-               public virtual bool IsSynchronized { get { NotImplemented (); return false; } }
-
-               public virtual HttpPostedFileBase this [int index] {
-                       get { return Get (index); }
-               }
-
-               public virtual HttpPostedFileBase this [string name] {
-                       get { return Get (name); }
-               }
-
-               public virtual object SyncRoot { get { NotImplemented (); return null; } }
-
-               public virtual void CopyTo (Array dest, int index)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual HttpPostedFileBase Get (int index)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual HttpPostedFileBase Get (string name)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public override IEnumerator GetEnumerator ()
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual string GetKey (int index)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpFileCollectionWrapper.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpFileCollectionWrapper.cs
deleted file mode 100644 (file)
index 4c7c919..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-//
-// HttpFileCollectionWrapper.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Globalization;
-using System.Runtime.CompilerServices;
-using System.Runtime.Serialization;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class HttpFileCollectionWrapper : HttpFileCollectionBase
-       {
-               HttpFileCollection w;
-
-               public HttpFileCollectionWrapper (HttpFileCollection httpFileCollection)
-               {
-                       if (httpFileCollection == null)
-                               throw new ArgumentNullException ("httpFileCollection");
-                       w = httpFileCollection;
-               }
-
-               public override string [] AllKeys {
-                       get { return w.AllKeys; }
-               }
-
-               public override int Count {
-                       get { return w.Count; }
-               }
-
-               public override bool IsSynchronized {
-                       get { return ((ICollection) w).IsSynchronized; }
-               }
-
-               public override HttpPostedFileBase this [int index] {
-                       get { return Get (index); }
-               }
-
-               public override HttpPostedFileBase this [string name] {
-                       get { return Get (name); }
-               }
-
-               public override NameObjectCollectionBase.KeysCollection Keys {
-                       get { return w.Keys; }
-               }
-
-               public override object SyncRoot {
-                       get { return ((ICollection) w).SyncRoot; }
-               }
-
-               public override void CopyTo (Array dest, int index)
-               {
-                       w.CopyTo (dest, index);
-               }
-
-               public override HttpPostedFileBase Get (int index)
-               {
-                       HttpPostedFile file = w.Get (index);
-                       if (file == null)
-                               return null;
-
-                       return new HttpPostedFileWrapper (file);
-               }
-
-               public override HttpPostedFileBase Get (string name)
-               {
-                       HttpPostedFile file = w.Get (name);
-                       if (file == null)
-                               return null;
-
-                       return new HttpPostedFileWrapper (file);
-               }
-
-               public override IEnumerator GetEnumerator ()
-               {
-                       return w.GetEnumerator ();
-               }
-
-               public override string GetKey (int index)
-               {
-                       return w.GetKey (index);
-               }
-
-               public override void GetObjectData (SerializationInfo info, StreamingContext context)
-               {
-                       w.GetObjectData (info, context);
-               }
-
-               public override void OnDeserialization (object sender)
-               {
-                       w.OnDeserialization (sender);
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpPostedFileBase.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpPostedFileBase.cs
deleted file mode 100644 (file)
index d5a783b..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-//
-// HttpPostedFileBase.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.IO;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public abstract class HttpPostedFileBase
-       {
-               void NotImplemented ()
-               {
-                       throw new NotImplementedException ();
-               }
-
-               public virtual int ContentLength { get { NotImplemented (); return 0; } }
-
-               public virtual string ContentType { get { NotImplemented (); return null; } }
-
-               public virtual string FileName { get { NotImplemented (); return null; } }
-
-               public virtual Stream InputStream { get { NotImplemented (); return null; } }
-
-               public virtual void SaveAs (string filename)
-               {
-                       NotImplemented ();
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpPostedFileWrapper.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpPostedFileWrapper.cs
deleted file mode 100644 (file)
index 247b538..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// HttpPostedFileWrapper.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.IO;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class HttpPostedFileWrapper : HttpPostedFileBase
-       {
-               HttpPostedFile w;
-
-               public HttpPostedFileWrapper (HttpPostedFile httpPostedFile)
-               {
-                       if (httpPostedFile == null)
-                               throw new ArgumentNullException ("httpPostedFile");
-                       w = httpPostedFile;
-               }
-
-               public override int ContentLength {
-                       get { return w.ContentLength; }
-               }
-
-               public override string ContentType {
-                       get { return w.ContentType; }
-               }
-
-               public override string FileName {
-                       get { return w.FileName; }
-               }
-
-               public override Stream InputStream {
-                       get { return w.InputStream; }
-               }
-
-               public override void SaveAs (string filename)
-               {
-                       w.SaveAs (filename);
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpRequestBase.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpRequestBase.cs
deleted file mode 100644 (file)
index 7ccc40d..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-//
-// HttpRequestBase.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Globalization;
-using System.IO;
-using System.Runtime.CompilerServices;
-using System.Runtime.Serialization;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Text;
-using System.Web.Caching;
-
-using System.Security.Authentication.ExtendedProtection;
-using System.Web.Routing;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public abstract class HttpRequestBase
-       {
-               void NotImplemented ()
-               {
-                       throw new NotImplementedException ();
-               }
-
-               public virtual string [] AcceptTypes { get { NotImplemented (); return null; } }
-
-               public virtual string AnonymousID { get { NotImplemented (); return null; } }
-
-               public virtual string ApplicationPath { get { NotImplemented (); return null; } }
-
-               public virtual string AppRelativeCurrentExecutionFilePath { get { NotImplemented (); return null; } }
-
-               public virtual HttpBrowserCapabilitiesBase Browser { get { NotImplemented (); return null; } }
-
-               public virtual HttpClientCertificate ClientCertificate { get { NotImplemented (); return null; } }
-
-               public virtual Encoding ContentEncoding { get { NotImplemented (); return null; } set { NotImplemented (); } }
-
-               public virtual int ContentLength { get { NotImplemented (); return 0; } }
-
-               public virtual string ContentType { get { NotImplemented (); return null; } set { NotImplemented (); } }
-
-               public virtual HttpCookieCollection Cookies { get { NotImplemented (); return null; } }
-
-               public virtual string CurrentExecutionFilePath { get { NotImplemented (); return null; } }
-
-               public virtual string FilePath { get { NotImplemented (); return null; } }
-
-               public virtual HttpFileCollectionBase Files { get { NotImplemented (); return null; } }
-
-               public virtual Stream Filter { get { NotImplemented (); return null; } set { NotImplemented (); } }
-
-               public virtual NameValueCollection Form { get { NotImplemented (); return null; } }
-
-               public virtual NameValueCollection Headers { get { NotImplemented (); return null; } }
-
-               public virtual string HttpMethod { get { NotImplemented (); return null; } }
-
-               public virtual Stream InputStream { get { NotImplemented (); return null; } }
-               // LAMESPEC: MSDN says NotImplementedException is thrown only when the request is
-               // not IIS7WorkerRequest or ISAPIWorkerRequestInProc, but it is thrown always.
-               public virtual ChannelBinding HttpChannelBinding { get { NotImplemented (); return null; } }
-               public virtual bool IsAuthenticated { get { NotImplemented (); return false; } }
-
-               public virtual bool IsLocal { get { NotImplemented (); return false; } }
-
-               public virtual bool IsSecureConnection { get { NotImplemented (); return false; } }
-
-               public virtual string this [string key] {
-                       get { throw new NotImplementedException (); }
-               }
-
-               public virtual WindowsIdentity LogonUserIdentity { get { NotImplemented (); return null; } }
-
-               public virtual NameValueCollection Params { get { NotImplemented (); return null; } }
-
-               public virtual string Path { get { NotImplemented (); return null; } }
-
-               public virtual string PathInfo { get { NotImplemented (); return null; } }
-
-               public virtual string PhysicalApplicationPath { get { NotImplemented (); return null; } }
-
-               public virtual string PhysicalPath { get { NotImplemented (); return null; } }
-
-               public virtual NameValueCollection QueryString { get { NotImplemented (); return null; } }
-
-               public virtual string RawUrl { get { NotImplemented (); return null; } }
-
-               public virtual string RequestType { get { NotImplemented (); return null; } set { NotImplemented (); } }
-               public virtual RequestContext RequestContext {
-                       get { NotImplemented (); return null; } 
-                       internal set { NotImplemented (); }
-               }
-               public virtual NameValueCollection ServerVariables { get { NotImplemented (); return null; } }
-
-               public virtual int TotalBytes { get { NotImplemented (); return 0; } }
-
-               public virtual ReadEntityBodyMode ReadEntityBodyMode { get { NotImplemented(); return ReadEntityBodyMode.Classic; } }
-
-               public virtual UnvalidatedRequestValuesBase Unvalidated { get { NotImplemented (); return null; } }
-
-               public virtual Uri Url { get { NotImplemented (); return null; } }
-
-               public virtual Uri UrlReferrer { get { NotImplemented (); return null; } }
-
-               public virtual string UserAgent { get { NotImplemented (); return null; } }
-
-               public virtual string UserHostAddress { get { NotImplemented (); return null; } }
-
-               public virtual string UserHostName { get { NotImplemented (); return null; } }
-
-               public virtual string [] UserLanguages { get { NotImplemented (); return null; } }
-
-               public virtual void Abort ()
-               {
-                       NotImplemented();
-               }
-
-               public virtual byte [] BinaryRead (int count)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual int [] MapImageCoordinates (string imageFieldName)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual string MapPath (string virtualPath)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual string MapPath (string virtualPath, string baseVirtualDir, bool allowCrossAppMapping)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual void SaveAs (string filename, bool includeHeaders)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void ValidateInput ()
-               {
-                       NotImplemented ();
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpRequestWrapper.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpRequestWrapper.cs
deleted file mode 100644 (file)
index 43abae8..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-//
-// HttpRequestWrapper.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Globalization;
-using System.IO;
-using System.Runtime.CompilerServices;
-using System.Runtime.Serialization;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Text;
-using System.Web.Caching;
-
-using System.Security.Authentication.ExtendedProtection;
-using System.Web.Routing;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class HttpRequestWrapper : HttpRequestBase
-       {
-               HttpRequest w;
-
-               public HttpRequestWrapper (HttpRequest httpRequest)
-               {
-                       if (httpRequest == null)
-                               throw new ArgumentNullException ("httpRequest");
-                       w = httpRequest;
-               }
-
-               public override string [] AcceptTypes {
-                       get { return w.AcceptTypes; }
-               }
-
-               public override string AnonymousID {
-                       get { return w.AnonymousID; }
-               }
-
-               public override string ApplicationPath {
-                       get { return w.ApplicationPath; }
-               }
-
-               public override string AppRelativeCurrentExecutionFilePath {
-                       get { return w.AppRelativeCurrentExecutionFilePath; }
-               }
-
-               public override HttpBrowserCapabilitiesBase Browser {
-                       get { return new HttpBrowserCapabilitiesWrapper (w.Browser); }
-               }
-
-               public override HttpClientCertificate ClientCertificate {
-                       get { return w.ClientCertificate; }
-               }
-
-               public override Encoding ContentEncoding {
-                       get { return w.ContentEncoding; }
-                       set { w.ContentEncoding = value; }
-               }
-
-               public override int ContentLength {
-                       get { return w.ContentLength; }
-               }
-
-               public override string ContentType {
-                       get { return w.ContentType; }
-                       set { w.ContentType = value; }
-               }
-
-               public override HttpCookieCollection Cookies {
-                       get { return w.Cookies; }
-               }
-
-               public override string CurrentExecutionFilePath {
-                       get { return w.CurrentExecutionFilePath; }
-               }
-
-               public override string FilePath {
-                       get { return w.FilePath; }
-               }
-
-               public override HttpFileCollectionBase Files {
-                       get { return new HttpFileCollectionWrapper (w.Files); }
-               }
-
-               public override Stream Filter {
-                       get { return w.Filter; }
-                       set { w.Filter = value; }
-               }
-
-               public override NameValueCollection Form {
-                       get { return w.Form; }
-               }
-
-               public override NameValueCollection Headers {
-                       get { return w.Headers; }
-               }
-
-               public override string HttpMethod {
-                       get { return w.HttpMethod; }
-               }
-               public override ChannelBinding HttpChannelBinding {
-                       get { return w.HttpChannelBinding; }
-               }
-               public override Stream InputStream {
-                       get { return w.InputStream; }
-               }
-
-               public override bool IsAuthenticated {
-                       get { return w.IsAuthenticated; }
-               }
-
-               public override bool IsLocal {
-                       get { return w.IsLocal; }
-               }
-
-               public override bool IsSecureConnection {
-                       get { return w.IsSecureConnection; }
-               }
-
-               public override string this [string key] {
-                       get { return w [key]; }
-               }
-
-               public override WindowsIdentity LogonUserIdentity {
-                       get { return w.LogonUserIdentity; }
-               }
-
-               public override NameValueCollection Params {
-                       get { return w.Params; }
-               }
-
-               public override string Path {
-                       get { return w.Path; }
-               }
-
-               public override string PathInfo {
-                       get { return w.PathInfo; }
-               }
-
-               public override string PhysicalApplicationPath {
-                       get { return w.PhysicalApplicationPath; }
-               }
-
-               public override string PhysicalPath {
-                       get { return w.PhysicalPath; }
-               }
-
-               public override NameValueCollection QueryString {
-                       get { return w.QueryString; }
-               }
-
-               public override string RawUrl {
-                       get { return w.RawUrl; }
-               }
-
-               public override string RequestType {
-                       get { return w.RequestType; }
-                       set { w.RequestType = value; }
-               }
-               public override RequestContext RequestContext {
-                       get { return w.RequestContext; }
-                       internal set { w.RequestContext = value; }      
-               }
-               public override NameValueCollection ServerVariables {
-                       get { return w.ServerVariables; }
-               }
-
-               public override int TotalBytes {
-                       get { return w.TotalBytes; }
-               }
-
-               public override UnvalidatedRequestValuesBase Unvalidated { 
-                       get { return new UnvalidatedRequestValuesWrapper (w.Unvalidated); } 
-               }
-
-               public override ReadEntityBodyMode ReadEntityBodyMode {
-                       get { return ReadEntityBodyMode.Classic; }
-               }
-
-               public override Uri Url {
-                       get { return w.Url; }
-               }
-
-               public override Uri UrlReferrer {
-                       get { return w.UrlReferrer; }
-               }
-
-               public override string UserAgent {
-                       get { return w.UserAgent; }
-               }
-
-               public override string UserHostAddress {
-                       get { return w.UserHostAddress; }
-               }
-
-               public override string UserHostName {
-                       get { return w.UserHostName; }
-               }
-
-               public override string [] UserLanguages {
-                       get { return w.UserLanguages; }
-               }
-
-               public void Abort ()
-               {
-                       w.WorkerRequest.CloseConnection();
-               }
-
-               public override byte [] BinaryRead (int count)
-               {
-                       return w.BinaryRead (count);
-               }
-
-               public override int [] MapImageCoordinates (string imageFieldName)
-               {
-                       return w.MapImageCoordinates (imageFieldName);
-               }
-
-               public override string MapPath (string overridePath)
-               {
-                       return w.MapPath (overridePath);
-               }
-
-               public override string MapPath (string overridePath, string baseVirtualDir, bool allowCrossAppMapping)
-               {
-                       return w.MapPath (overridePath, baseVirtualDir, allowCrossAppMapping);
-               }
-
-               public override void SaveAs (string filename, bool includeHeaders)
-               {
-                       w.SaveAs (filename, includeHeaders);
-               }
-
-               public override void ValidateInput ()
-               {
-                       w.ValidateInput ();
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpResponseBase.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpResponseBase.cs
deleted file mode 100644 (file)
index d7c76d4..0000000
+++ /dev/null
@@ -1,390 +0,0 @@
-//
-// HttpResponseBase.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Globalization;
-using System.IO;
-using System.Runtime.CompilerServices;
-using System.Runtime.Serialization;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Text;
-using System.Web.Caching;
-using System.Threading;
-
-using System.Web.Routing;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public abstract class HttpResponseBase
-       {
-               void NotImplemented ()
-               {
-                       throw new NotImplementedException ();
-               }
-
-
-               public virtual bool Buffer { get { NotImplemented (); return false; } set { NotImplemented (); } }
-
-               public virtual bool BufferOutput { get { NotImplemented (); return false; } set { NotImplemented (); } }
-
-               public virtual HttpCachePolicyBase Cache { get { NotImplemented (); return null; } }
-
-               public virtual string CacheControl { get { NotImplemented (); return null; } set { NotImplemented (); } }
-
-               public virtual string Charset { get { NotImplemented (); return null; } set { NotImplemented (); } }
-
-               public virtual CancellationToken ClientDisconnectedToken { get { NotImplemented (); return CancellationToken.None; } }
-
-               public virtual Encoding ContentEncoding { get { NotImplemented (); return null; } set { NotImplemented (); } }
-
-               public virtual string ContentType { get { NotImplemented (); return null; } set { NotImplemented (); } }
-
-               public virtual HttpCookieCollection Cookies { get { NotImplemented (); return null; } }
-
-               public virtual int Expires { get { NotImplemented (); return 0; } set { NotImplemented (); } }
-
-               public virtual DateTime ExpiresAbsolute { get { NotImplemented (); return DateTime.MinValue; } set { NotImplemented (); } }
-
-               public virtual Stream Filter { get { NotImplemented (); return null; } set { NotImplemented (); } }
-
-               public virtual Encoding HeaderEncoding { get { NotImplemented (); return null; } set { NotImplemented (); } }
-
-               public virtual NameValueCollection Headers { get { NotImplemented (); return null; } }
-
-               public virtual bool IsClientConnected { get { NotImplemented (); return false; } }
-
-               public virtual bool IsRequestBeingRedirected { get { NotImplemented (); return false; } }
-
-               public virtual TextWriter Output { get { NotImplemented (); return null; }  set { NotImplemented (); } }
-
-               public virtual Stream OutputStream { get { NotImplemented (); return null; } }
-
-               public virtual string RedirectLocation { get { NotImplemented (); return null; } set { NotImplemented (); } }
-
-               public virtual string Status { get { NotImplemented (); return null; } set { NotImplemented (); } }
-
-               public virtual int StatusCode { get { NotImplemented (); return 0; } set { NotImplemented (); } }
-
-               public virtual string StatusDescription { get { NotImplemented (); return null; } set { NotImplemented (); } }
-
-               public virtual int SubStatusCode { get { NotImplemented (); return 0; } set { NotImplemented (); } }
-
-               public virtual bool SuppressContent { get { NotImplemented (); return false; } set { NotImplemented (); } }
-
-               public virtual bool SuppressFormsAuthenticationRedirect { get { NotImplemented (); return false; } set { NotImplemented (); } }
-
-               public virtual bool TrySkipIisCustomErrors { get { NotImplemented (); return false; } set { NotImplemented (); } }
-
-
-               public virtual void AddCacheDependency (params CacheDependency [] dependencies)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void AddCacheItemDependencies (ArrayList cacheKeys)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void AddCacheItemDependencies (string [] cacheKeys)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void AddCacheItemDependency (string cacheKey)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void AddFileDependencies (ArrayList filenames)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void AddFileDependencies (string [] filenames)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void AddFileDependency (string filename)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void AddHeader (string name, string value)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void AppendCookie (HttpCookie cookie)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void AppendHeader (string name, string value)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void AppendToLog (string param)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual string ApplyAppPathModifier (string virtualPath)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-
-               public virtual void BinaryWrite (byte [] buffer)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void Clear ()
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void ClearContent ()
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void ClearHeaders ()
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void Close ()
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void DisableKernelCache ()
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void End ()
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void Flush ()
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void Pics (string value)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void Redirect (string url)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void Redirect (string url, bool endResponse)
-               {
-                       NotImplemented ();
-               }
-               public virtual void RedirectPermanent (string url)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RedirectPermanent (string url, bool endResponse)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RedirectToRoute (object routeValues)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RedirectToRoute (RouteValueDictionary routeValues)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RedirectToRoute (string routeName)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RedirectToRoute (string routeName, object routeValues)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RedirectToRoute (string routeName, RouteValueDictionary routeValues)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RedirectToRoutePermanent (object routeValues)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RedirectToRoutePermanent (RouteValueDictionary routeValues)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RedirectToRoutePermanent (string routeName)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RedirectToRoutePermanent (string routeName, object routeValues)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RedirectToRoutePermanent (string routeName, RouteValueDictionary routeValues)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RemoveOutputCacheItem (string path, string providerName)
-               {
-                       NotImplemented ();
-               }
-               public virtual void RemoveOutputCacheItem (string path)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void SetCookie (HttpCookie cookie)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void TransmitFile (string filename)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void TransmitFile (string filename, long offset, long length)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void Write (char ch)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void Write (object obj)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void Write (string s)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void Write (char [] buffer, int index, int count)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void WriteFile (string filename)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void WriteFile (string filename, bool readIntoMemory)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void WriteFile (IntPtr fileHandle, long offset, long size)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void WriteFile (string filename, long offset, long size)
-               {
-                       NotImplemented ();
-               }
-
-
-               public virtual void WriteSubstitution (HttpResponseSubstitutionCallback callback)
-               {
-                       NotImplemented ();
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpResponseWrapper.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpResponseWrapper.cs
deleted file mode 100644 (file)
index 1e437e4..0000000
+++ /dev/null
@@ -1,376 +0,0 @@
-//
-// HttpResponseWrapper.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Globalization;
-using System.IO;
-using System.Runtime.CompilerServices;
-using System.Runtime.Serialization;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Text;
-using System.Web.Caching;
-using System.Threading;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class HttpResponseWrapper : HttpResponseBase
-       {
-               HttpResponse w;
-
-               public HttpResponseWrapper (HttpResponse httpResponse)
-               {
-                       if (httpResponse == null)
-                               throw new ArgumentNullException ("httpResponse");
-                       w = httpResponse;
-               }
-
-               public override bool Buffer {
-                       get { return w.Buffer; }
-                       set { w.Buffer = value; }
-               }
-
-               public override bool BufferOutput {
-                       get { return w.BufferOutput; }
-                       set { w.BufferOutput = value; }
-               }
-
-               public override HttpCachePolicyBase Cache {
-                       get { return new HttpCachePolicyWrapper (w.Cache); }
-               }
-
-               public override string CacheControl {
-                       get { return w.CacheControl; }
-                       set { w.CacheControl = value; }
-               }
-
-               public override string Charset {
-                       get { return w.Charset; }
-                       set { w.Charset = value; }
-               }
-
-               public override CancellationToken ClientDisconnectedToken {
-                       get { return CancellationToken.None; }
-               }
-
-               public override Encoding ContentEncoding {
-                       get { return w.ContentEncoding; }
-                       set { w.ContentEncoding = value; }
-               }
-
-               public override string ContentType {
-                       get { return w.ContentType; }
-                       set { w.ContentType = value; }
-               }
-
-               public override HttpCookieCollection Cookies {
-                       get { return w.Cookies; }
-               }
-
-               public override int Expires {
-                       get { return w.Expires; }
-                       set { w.Expires = value; }
-               }
-
-               public override DateTime ExpiresAbsolute {
-                       get { return w.ExpiresAbsolute; }
-                       set { w.ExpiresAbsolute = value; }
-               }
-
-               public override Stream Filter {
-                       get { return w.Filter; }
-                       set { w.Filter = value; }
-               }
-
-               public override Encoding HeaderEncoding {
-                       get { return w.HeaderEncoding; }
-                       set { w.HeaderEncoding = value; }
-               }
-
-               public override NameValueCollection Headers {
-                       get { return w.Headers; }
-               }
-
-               public override bool IsClientConnected {
-                       get { return w.IsClientConnected; }
-               }
-
-               public override bool IsRequestBeingRedirected {
-                       get { return w.IsRequestBeingRedirected; }
-               }
-
-               public override TextWriter Output {
-                       get { return w.Output; }
-                       set { w.Output = value; }
-               }
-
-               public override Stream OutputStream {
-                       get { return w.OutputStream; }
-               }
-
-               public override string RedirectLocation {
-                       get { return w.RedirectLocation; }
-                       set { w.RedirectLocation = value; }
-               }
-
-               public override string Status {
-                       get { return w.Status; }
-                       set { w.Status = value; }
-               }
-
-               public override int StatusCode {
-                       get { return w.StatusCode; }
-                       set { w.StatusCode = value; }
-               }
-
-               public override string StatusDescription {
-                       get { return w.StatusDescription; }
-                       set { w.StatusDescription = value; }
-               }
-
-               public override int SubStatusCode {
-                       get { return w.SubStatusCode; }
-                       set { w.SubStatusCode = value; }
-               }
-
-               public override bool SuppressContent {
-                       get { return w.SuppressContent; }
-                       set { w.SuppressContent = value; }
-               }
-
-               public override bool SuppressFormsAuthenticationRedirect {
-                       get { return w.SuppressFormsAuthenticationRedirect; }
-                       set { w.SuppressFormsAuthenticationRedirect = value; }
-               }
-
-               public override bool TrySkipIisCustomErrors {
-                       get { return w.TrySkipIisCustomErrors; }
-                       set { w.TrySkipIisCustomErrors = value; }
-               }
-
-               public override void AddCacheDependency (params CacheDependency [] dependencies)
-               {
-                       w.AddCacheDependency (dependencies);
-               }
-
-               public override void AddCacheItemDependencies (ArrayList cacheKeys)
-               {
-                       w.AddCacheItemDependencies (cacheKeys);
-               }
-
-               public override void AddCacheItemDependencies (string [] cacheKeys)
-               {
-                       w.AddCacheItemDependencies (cacheKeys);
-               }
-
-               public override void AddCacheItemDependency (string cacheKey)
-               {
-                       w.AddCacheItemDependency (cacheKey);
-               }
-
-               public override void AddFileDependencies (ArrayList filenames)
-               {
-                       w.AddFileDependencies (filenames);
-               }
-
-               public override void AddFileDependencies (string [] filenames)
-               {
-                       w.AddFileDependencies (filenames);
-               }
-
-               public override void AddFileDependency (string filename)
-               {
-                       w.AddFileDependency (filename);
-               }
-
-               public override void AddHeader (string name, string value)
-               {
-                       w.AddHeader (name, value);
-               }
-
-               public override void AppendCookie (HttpCookie cookie)
-               {
-                       w.AppendCookie (cookie);
-               }
-
-               public override void AppendHeader (string name, string value)
-               {
-                       w.AppendHeader (name, value);
-               }
-
-               public override void AppendToLog (string param)
-               {
-                       w.AppendToLog (param);
-               }
-
-               public override string ApplyAppPathModifier (string overridePath)
-               {
-                       return w.ApplyAppPathModifier (overridePath);
-               }
-
-               public override void BinaryWrite (byte [] buffer)
-               {
-                       w.BinaryWrite (buffer);
-               }
-
-               public override void Clear ()
-               {
-                       w.Clear ();
-               }
-
-               public override void ClearContent ()
-               {
-                       w.ClearContent ();
-               }
-
-               public override void ClearHeaders ()
-               {
-                       w.ClearHeaders ();
-               }
-
-               public override void Close ()
-               {
-                       w.Close ();
-               }
-
-               public override void DisableKernelCache ()
-               {
-                        w.DisableKernelCache ();
-               }
-
-               public override void End ()
-               {
-                       w.End ();
-               }
-
-               public override void Flush ()
-               {
-                       w.Flush ();
-               }
-
-               public override void Pics (string value)
-               {
-                       w.Pics (value);
-               }
-
-               public override void Redirect (string url)
-               {
-                       w.Redirect (url);
-               }
-
-               public override void Redirect (string url, bool endResponse)
-               {
-                       w.Redirect (url, endResponse);
-               }
-               public override void RedirectPermanent (string url)
-               {
-                       w.RedirectPermanent (url);
-               }
-
-               public override void RedirectPermanent (string url, bool endResponse)
-               {
-                       w.RedirectPermanent (url, endResponse);
-               }
-
-               public override void RemoveOutputCacheItem (string path, string providerName)
-               {
-                       HttpResponse.RemoveOutputCacheItem (path, providerName);
-               }
-               public override void RemoveOutputCacheItem (string path)
-               {
-                        HttpResponse.RemoveOutputCacheItem (path);
-               }
-
-               public override void SetCookie (HttpCookie cookie)
-               {
-                       w.SetCookie (cookie);
-               }
-
-               public override void TransmitFile (string filename)
-               {
-                       w.TransmitFile (filename);
-               }
-
-               public override void TransmitFile (string filename, long offset, long length)
-               {
-                       w.TransmitFile (filename, offset, length);
-               }
-
-               public override void Write (char ch)
-               {
-                       w.Write (ch);
-               }
-
-               public override void Write (object obj)
-               {
-                       w.Write (obj);
-               }
-
-               public override void Write (string s)
-               {
-                       w.Write (s);
-               }
-
-               public override void Write (char [] buffer, int index, int count)
-               {
-                       w.Write (buffer, index, count);
-               }
-
-               public override void WriteFile (string filename)
-               {
-                       w.WriteFile (filename);
-               }
-
-               public override void WriteFile (string filename, bool readIntoMemory)
-               {
-                       w.WriteFile (filename, readIntoMemory);
-               }
-
-               public override void WriteFile (IntPtr fileHandle, long offset, long size)
-               {
-                       w.WriteFile (fileHandle, offset, size);
-               }
-
-               public override void WriteFile (string filename, long offset, long size)
-               {
-                       w.WriteFile (filename, offset, size);
-               }
-
-               public override void WriteSubstitution (HttpResponseSubstitutionCallback callback)
-               {
-                       w.WriteSubstitution (callback);
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpServerUtilityBase.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpServerUtilityBase.cs
deleted file mode 100644 (file)
index a56c2c1..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-//
-// HttpServerUtilityBase.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Globalization;
-using System.IO;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-using System.Web.Profile;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public abstract class HttpServerUtilityBase
-       {
-               void NotImplemented ()
-               {
-                       throw new NotImplementedException ();
-               }
-
-               public virtual string MachineName { get { NotImplemented (); return null; } }
-
-               public virtual int ScriptTimeout { get { NotImplemented (); return 0; } set { NotImplemented (); } }
-
-
-               public virtual void ClearError ()
-               {
-                       NotImplemented ();
-               }
-
-               public virtual object CreateObject (string progID)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual object CreateObject (Type type)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual object CreateObjectFromClsid (string clsid)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual void Execute (string path)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void Execute (string path, bool preserveForm)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void Execute (string path, TextWriter writer)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void Execute (string path, TextWriter writer, bool preserveForm)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void Execute (IHttpHandler handler, TextWriter writer, bool preserveForm)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual Exception GetLastError ()
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual string HtmlDecode (string s)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual void HtmlDecode (string s, TextWriter output)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual string HtmlEncode (string s)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual void HtmlEncode (string s, TextWriter output)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual string MapPath (string path)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual void Transfer (string path)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void Transfer (string path, bool preserveForm)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void Transfer (IHttpHandler handler, bool preserveForm)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void TransferRequest (string path)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void TransferRequest (string path, bool preserveForm)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void TransferRequest (string path, bool preserveForm, string method, NameValueCollection headers)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual string UrlDecode (string s)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual void UrlDecode (string s, TextWriter output)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual string UrlEncode (string s)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual void UrlEncode (string s, TextWriter output)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual string UrlPathEncode (string s)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual byte [] UrlTokenDecode (string input)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual string UrlTokenEncode (byte [] input)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpServerUtilityWrapper.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpServerUtilityWrapper.cs
deleted file mode 100644 (file)
index 52fc7a1..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-//
-// HttpServerUtilityWrapper.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Globalization;
-using System.IO;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-using System.Web.Profile;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class HttpServerUtilityWrapper : HttpServerUtilityBase
-       {
-               HttpServerUtility w;
-
-               public HttpServerUtilityWrapper (HttpServerUtility httpServerUtility)
-               {
-                       if (httpServerUtility == null)
-                               throw new ArgumentNullException ("httpServerUtility");
-                       w = httpServerUtility;
-               }
-
-               public override string MachineName {
-                       get { return w.MachineName; }
-               }
-
-               public override int ScriptTimeout {
-                       get { return w.ScriptTimeout; }
-                       set { w.ScriptTimeout = value; }
-               }
-
-               public override void ClearError ()
-               {
-                       w.ClearError ();
-               }
-
-               public override object CreateObject (string progID)
-               {
-                       return w.CreateObject (progID);
-               }
-
-               public override object CreateObject (Type type)
-               {
-                       return w.CreateObject (type);
-               }
-
-               public override object CreateObjectFromClsid (string clsid)
-               {
-                       return w.CreateObjectFromClsid (clsid);
-               }
-
-               public override void Execute (string path)
-               {
-                       w.Execute (path);
-               }
-
-               public override void Execute (string path, bool preserveForm)
-               {
-                       w.Execute (path, preserveForm);
-               }
-
-               public override void Execute (string path, TextWriter writer)
-               {
-                       w.Execute (path, writer);
-               }
-
-               public override void Execute (string path, TextWriter writer, bool preserveForm)
-               {
-                       w.Execute (path, writer, preserveForm);
-               }
-
-               public override void Execute (IHttpHandler handler, TextWriter writer, bool preserveForm)
-               {
-                       w.Execute (handler, writer, preserveForm);
-               }
-
-               public override Exception GetLastError ()
-               {
-                       return w.GetLastError ();
-               }
-
-               public override string HtmlDecode (string s)
-               {
-                       return w.HtmlDecode (s);
-               }
-
-               public override void HtmlDecode (string s, TextWriter output)
-               {
-                       w.HtmlDecode (s, output);
-               }
-
-               public override string HtmlEncode (string s)
-               {
-                       return w.HtmlEncode (s);
-               }
-
-               public override void HtmlEncode (string s, TextWriter output)
-               {
-                       w.HtmlEncode (s, output);
-               }
-
-               public override string MapPath (string path)
-               {
-                       return w.MapPath (path);
-               }
-
-               public override void Transfer (string path)
-               {
-                       w.Transfer (path);
-               }
-
-               public override void Transfer (string path, bool preserveForm)
-               {
-                       w.Transfer (path, preserveForm);
-               }
-
-               public override void Transfer (IHttpHandler handler, bool preserveForm)
-               {
-                       w.Transfer (handler, preserveForm);
-               }
-
-               [MonoTODO]
-               public override void TransferRequest (string path)
-               {
-                       // return TransferRequest (path);
-                       throw new NotImplementedException ();
-               }
-
-               [MonoTODO]
-               public override void TransferRequest (string path, bool preserveForm)
-               {
-                       // return TransferRequest (path, preserveForm);
-                       throw new NotImplementedException ();
-               }
-
-               [MonoTODO]
-               public override void TransferRequest (string path, bool preserveForm, string method, NameValueCollection headers)
-               {
-                       // return TransferRequest (path, preserveForm, method, headers);
-                       throw new NotImplementedException ();
-               }
-
-               public override string UrlDecode (string s)
-               {
-                       return w.UrlDecode (s);
-               }
-
-               public override void UrlDecode (string s, TextWriter output)
-               {
-                       w.UrlDecode (s, output);
-               }
-
-               public override string UrlEncode (string s)
-               {
-                       return w.UrlEncode (s);
-               }
-
-               public override void UrlEncode (string s, TextWriter output)
-               {
-                       w.UrlEncode (s, output);
-               }
-
-               public override string UrlPathEncode (string s)
-               {
-                       return w.UrlPathEncode (s);
-               }
-
-               [MonoTODO]
-               public override byte [] UrlTokenDecode (string input)
-               {
-                       // return w.UrlTokenDecode (input);
-                       throw new NotImplementedException ();
-               }
-
-               [MonoTODO]
-               public override string UrlTokenEncode (byte [] input)
-               {
-                       // return w.UrlTokenEncode (input);
-                       throw new NotImplementedException ();
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpSessionStateBase.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpSessionStateBase.cs
deleted file mode 100644 (file)
index 61edd04..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-//
-// HttpSessionStateBase.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Globalization;
-using System.IO;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-using System.Web.SessionState;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public abstract class HttpSessionStateBase : ICollection, IEnumerable
-       {
-               void NotImplemented ()
-               {
-                       throw new NotImplementedException ();
-               }
-
-               public virtual int CodePage { get { NotImplemented (); return 0; } set { NotImplemented (); } }
-
-               public virtual HttpSessionStateBase Contents { get { NotImplemented (); return null; } }
-
-               public virtual HttpCookieMode CookieMode { get { NotImplemented (); return default (HttpCookieMode); } }
-
-               public virtual int Count { get { NotImplemented (); return 0; } }
-
-               public virtual bool IsCookieless { get { NotImplemented (); return false; } }
-
-               public virtual bool IsNewSession { get { NotImplemented (); return false; } }
-
-               public virtual bool IsReadOnly { get { NotImplemented (); return false; } }
-
-               public virtual bool IsSynchronized { get { NotImplemented (); return false; } }
-
-               public virtual object this [int index] {
-                       get { NotImplemented (); return null; }
-                       set { NotImplemented (); }
-               }
-
-               public virtual object this [string name] {
-                       get { NotImplemented (); return null; }
-                       set { NotImplemented (); }
-               }
-
-               public virtual NameObjectCollectionBase.KeysCollection Keys { get { NotImplemented (); return null; } }
-
-               public virtual int LCID { get { NotImplemented (); return 0; } set { NotImplemented (); } }
-
-               public virtual SessionStateMode Mode { get { NotImplemented (); return default (SessionStateMode); } }
-
-               public virtual string SessionID { get { NotImplemented (); return null; } }
-
-               public virtual HttpStaticObjectsCollectionBase StaticObjects { get { NotImplemented (); return null; } }
-
-               public virtual object SyncRoot { get { NotImplemented (); return null; } }
-
-               public virtual int Timeout { get { NotImplemented (); return 0; } set { NotImplemented (); } }
-
-
-               public virtual void Abandon ()
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void Add (string name, object value)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void Clear ()
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void CopyTo (Array array, int index)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual IEnumerator GetEnumerator ()
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual void Remove (string name)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RemoveAll ()
-               {
-                       NotImplemented ();
-               }
-
-               public virtual void RemoveAt (int index)
-               {
-                       NotImplemented ();
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpSessionStateWrapper.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpSessionStateWrapper.cs
deleted file mode 100644 (file)
index 563eb0b..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-//
-// HttpSessionStateWrapper.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Globalization;
-using System.IO;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-using System.Web.SessionState;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class HttpSessionStateWrapper : HttpSessionStateBase
-       {
-               HttpSessionState w;
-
-               public HttpSessionStateWrapper (HttpSessionState httpSessionState)
-               {
-                       if (httpSessionState == null)
-                               throw new ArgumentNullException ("httpSessionState");
-                       w = httpSessionState;
-               }
-
-               public override int CodePage {
-                       get { return w.CodePage; }
-                       set { w.CodePage = value; }
-               }
-
-               public override HttpSessionStateBase Contents {
-                       get { throw new NotImplementedException (); }
-               }
-
-               [MonoTODO]
-               public override HttpCookieMode CookieMode {
-                       //get { return w.CookieMode; }
-                       get { throw new NotImplementedException (); }
-               }
-
-               public override int Count {
-                       get { return w.Count; }
-               }
-
-               public override bool IsCookieless {
-                       get { return w.IsCookieless; }
-               }
-
-               public override bool IsNewSession {
-                       get { return w.IsNewSession; }
-               }
-
-               public override bool IsReadOnly {
-                       get { return w.IsReadOnly; }
-               }
-
-               public override bool IsSynchronized {
-                       get { return w.IsSynchronized; }
-               }
-
-               public override object this [int index] {
-                       get { return w [index]; }
-                       set { w [index] = value; }
-               }
-
-               public override object this [string name] {
-                       get { return w [name]; }
-                       set { w [name] = value; }
-               }
-
-               public override NameObjectCollectionBase.KeysCollection Keys {
-                       get { return w.Keys; }
-               }
-
-               public override int LCID {
-                       get { return w.LCID; }
-                       set { w.LCID = value; }
-               }
-
-               public override SessionStateMode Mode {
-                       get { return w.Mode; }
-               }
-
-               public override string SessionID {
-                       get { return w.SessionID; }
-               }
-
-               public override HttpStaticObjectsCollectionBase StaticObjects {
-                       get { throw new NotImplementedException (); }
-               }
-
-               public override object SyncRoot {
-                       get { return w.SyncRoot; }
-               }
-
-               public override int Timeout {
-                       get { return w.Timeout; }
-                       set { w.Timeout = value; }
-               }
-
-               public override void Abandon ()
-               {
-                       w.Abandon ();
-               }
-
-               public override void Add (string name, object value)
-               {
-                       w.Add (name, value);
-               }
-
-               public override void Clear ()
-               {
-                       w.Clear ();
-               }
-
-               public override void CopyTo (Array array, int index)
-               {
-                       w.CopyTo (array, index);
-               }
-
-               public override IEnumerator GetEnumerator ()
-               {
-                       return w.GetEnumerator ();
-               }
-
-               public override void Remove (string name)
-               {
-                       w.Remove (name);
-               }
-
-               public override void RemoveAll ()
-               {
-                       w.RemoveAll ();
-               }
-
-               public override void RemoveAt (int index)
-               {
-                       w.RemoveAt (index);
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpStaticObjectsCollectionBase.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpStaticObjectsCollectionBase.cs
deleted file mode 100644 (file)
index ee9b9c2..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// HttpStaticObjectsCollectionBase.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Globalization;
-using System.IO;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-using System.Web.SessionState;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public abstract class HttpStaticObjectsCollectionBase : ICollection, IEnumerable
-       {
-               void NotImplemented ()
-               {
-                       throw new NotImplementedException ();
-               }
-
-               public virtual int Count { get { NotImplemented (); return 0; } }
-
-               public virtual bool IsReadOnly { get { NotImplemented (); return false; } }
-
-               public virtual bool IsSynchronized { get { NotImplemented (); return false; } }
-
-               public virtual object this [string name] {
-                       get { NotImplemented (); return null; }
-               }
-
-               public virtual bool NeverAccessed { get { NotImplemented (); return false; } }
-
-               public virtual object SyncRoot { get { NotImplemented (); return null; } }
-
-               public virtual void CopyTo (Array array, int index)
-               {
-                       NotImplemented ();
-               }
-
-               public virtual IEnumerator GetEnumerator ()
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual object GetObject (string name)
-               {
-                       NotImplemented ();
-                       return null;
-               }
-
-               public virtual void Serialize (BinaryWriter writer)
-               {
-                       NotImplemented ();
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/System.Web/HttpStaticObjectsCollectionWrapper.cs b/mcs/class/System.Web.Abstractions/System.Web/HttpStaticObjectsCollectionWrapper.cs
deleted file mode 100644 (file)
index 4f33434..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-//
-// HttpStaticObjectsCollectionWrapper.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Globalization;
-using System.IO;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Web.Caching;
-using System.Web.SessionState;
-
-namespace System.Web
-{
-        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class HttpStaticObjectsCollectionWrapper : HttpStaticObjectsCollectionBase
-       {
-               HttpStaticObjectsCollection w;
-
-               public HttpStaticObjectsCollectionWrapper (HttpStaticObjectsCollection httpStaticObjectsCollection)
-               {
-                       if (httpStaticObjectsCollection == null)
-                               throw new ArgumentNullException ("httpStaticObjectsCollection");
-                       w = httpStaticObjectsCollection;
-               }
-
-               public override int Count {
-                       get { return w.Count; }
-               }
-
-               public override bool IsReadOnly {
-                       get { return w.IsReadOnly; }
-               }
-
-               public override bool IsSynchronized {
-                       get { return w.IsSynchronized; }
-               }
-
-               public override object this [string name] {
-                       get { return w [name]; }
-               }
-
-               public override bool NeverAccessed {
-                       get { return w.NeverAccessed; }
-               }
-
-               public override object SyncRoot {
-                       get { return w.SyncRoot; }
-               }
-
-               public override void CopyTo (Array array, int index)
-               {
-                       w.CopyTo (array, index);
-               }
-
-               public override IEnumerator GetEnumerator ()
-               {
-                       return w.GetEnumerator ();
-               }
-
-               public override object GetObject (string name)
-               {
-                       return w.GetObject (name);
-               }
-
-               public override void Serialize (BinaryWriter writer)
-               {
-                       w.Serialize (writer);
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Abstractions/net_4_0_System.Web.Abstractions.dll.sources b/mcs/class/System.Web.Abstractions/net_4_0_System.Web.Abstractions.dll.sources
deleted file mode 100644 (file)
index c030663..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-../../build/common/Consts.cs
-../../build/common/MonoTODOAttribute.cs
-Assembly/AssemblyInfo.cs
diff --git a/mcs/class/System.Web.Abstractions/net_4_5_System.Web.Abstractions.dll.sources b/mcs/class/System.Web.Abstractions/net_4_5_System.Web.Abstractions.dll.sources
deleted file mode 100644 (file)
index 32eb7ef..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include net_4_0_System.Web.Abstractions.dll.sources
index 8172b53faf1c54b0049910f0c8a31a9188c93e87..ce75cae57d678c31d6cb27c7ac2b37a6b7a0effa 100644 (file)
@@ -2,3 +2,20 @@ Assembly/AssemblyInfo.cs
 ../../build/common/Consts.cs
 ../../build/common/Locale.cs
 ../../build/common/MonoTODOAttribute.cs
+
+System.Web.Configuration/MembershipPasswordCompatibilityMode.cs
+System.Web.Security/IMembershipHelper.cs
+
+System.Web.UI/KeyedList.cs
+System.Web.UI/KeyedListEnumerator.cs
+System.Web.Security/MembershipCreateStatus.cs
+System.Web.Security/MembershipCreateUserException.cs
+System.Web.Security/MembershipPasswordException.cs
+System.Web.Security/MembershipPasswordFormat.cs
+System.Web.Security/MembershipProviderCollection.cs
+System.Web.Security/MembershipProvider.cs
+System.Web.Security/MembershipUserCollection.cs
+System.Web.Security/MembershipUser.cs
+System.Web.Security/MembershipValidatePasswordEventHandler.cs
+System.Web.Security/RoleProvider.cs
+System.Web.Security/ValidatePasswordEventArgs.cs
diff --git a/mcs/class/System.Web.ApplicationServices/monotouch_runtime_System.Web.ApplicationServices.dll.sources b/mcs/class/System.Web.ApplicationServices/monotouch_runtime_System.Web.ApplicationServices.dll.sources
deleted file mode 100644 (file)
index dfacbe7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include net_4_0_System.Web.ApplicationServices.dll.sources
diff --git a/mcs/class/System.Web.ApplicationServices/net_4_0_System.Web.ApplicationServices.dll.sources b/mcs/class/System.Web.ApplicationServices/net_4_0_System.Web.ApplicationServices.dll.sources
deleted file mode 100644 (file)
index 262a188..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#include System.Web.ApplicationServices.dll.sources
-
-Assembly/AssemblyInfo.cs
-../../build/common/Consts.cs
-../../build/common/Locale.cs
-../../build/common/MonoTODOAttribute.cs
-
-System.Web.Configuration/MembershipPasswordCompatibilityMode.cs
-System.Web.Security/IMembershipHelper.cs
-
-System.Web.UI/KeyedList.cs
-System.Web.UI/KeyedListEnumerator.cs
-System.Web.Security/MembershipCreateStatus.cs
-System.Web.Security/MembershipCreateUserException.cs
-System.Web.Security/MembershipPasswordException.cs
-System.Web.Security/MembershipPasswordFormat.cs
-System.Web.Security/MembershipProviderCollection.cs
-System.Web.Security/MembershipProvider.cs
-System.Web.Security/MembershipUserCollection.cs
-System.Web.Security/MembershipUser.cs
-System.Web.Security/MembershipValidatePasswordEventHandler.cs
-System.Web.Security/RoleProvider.cs
-System.Web.Security/ValidatePasswordEventArgs.cs
diff --git a/mcs/class/System.Web.ApplicationServices/net_4_5_System.Web.ApplicationServices.dll.sources b/mcs/class/System.Web.ApplicationServices/net_4_5_System.Web.ApplicationServices.dll.sources
deleted file mode 100644 (file)
index dfacbe7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include net_4_0_System.Web.ApplicationServices.dll.sources
index 4248b8629e2e05fce27900c1e52ebefa8681dea7..08cb7d04c2b6c0d14512c03a8f744431da3b33b6 100644 (file)
@@ -156,9 +156,7 @@ TEST_RESOURCE_FILES = \
        Test/WebPages/Site.css,MonoTests.WebPages.Site.css      \
        Test/WebPages/Site.master,MonoTests.WebPages.Site.master        \
        Test/WebPages/Site.master.cs,MonoTests.WebPages.Site.master.cs  \
-       Test/WebPages/web.config.2.0,MonoTests.WebPages.web.config.2.0 \
-       Test/WebPages/web.config.4.0,MonoTests.WebPages.web.config.4.0 \
-       Test/WebPages/web.config.4.5,MonoTests.WebPages.web.config.4.5
+       Test/WebPages/web.config.4.x,MonoTests.WebPages.web.config.4.x
 
 NUNIT_RESOURCE_FILES = $(TEST_RESOURCE_FILES)
 
@@ -171,13 +169,4 @@ endif
 
 EXTRA_DISTFILES = $(foreach resource,$(TEST_RESOURCE_FILES), $(shell echo $(subst \`,\\\`,$(resource)) | cut -d ',' -f 1))
 
-# This is a .NET 3.5+ assembly
-VALID_PROFILE := $(filter net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.Web.DynamicData.dll
-NO_INSTALL = yes
-NO_SIGN_ASSEMBLY = yes
-NO_TEST = yes
-endif
-
 include ../../build/library.make
index 5a1c89647343c47dd17c19b7e430de7952a32c97..636357730bc6b034e4079851b75ddd12c477a6bb 100644 (file)
@@ -34,13 +34,7 @@ namespace MonoTests.Common
                {
                        Type type = typeof (TestsSetup);
                        WebTest.CopyResource (type, "MonoTests.WebPages.Global.asax", "Global.asax");
-#if NET_4_5
-                       WebTest.CopyResource (type, "MonoTests.WebPages.web.config.4.5", "web.config");
-#elif NET_4_0
-                       WebTest.CopyResource (type, "MonoTests.WebPages.web.config.4.0", "web.config");
-#else
-                       WebTest.CopyResource (type, "MonoTests.WebPages.web.config.2.0", "web.config");
-#endif
+                       WebTest.CopyResource (type, "MonoTests.WebPages.web.config.4.x", "web.config");
                        WebTest.CopyResource (type, "MonoTests.WebPages.Site.css", "Site.css");
                        WebTest.CopyResource (type, "MonoTests.WebPages.Site.master", "Site.master");
                        WebTest.CopyResource (type, "MonoTests.WebPages.Site.master.cs", "Site.master.cs");
diff --git a/mcs/class/System.Web.DynamicData/Test/WebPages/web.config.2.0 b/mcs/class/System.Web.DynamicData/Test/WebPages/web.config.2.0
deleted file mode 100644 (file)
index 09b0d28..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-<?xml version="1.0"?>
-<!-- 
-    Note: As an alternative to hand editing this file you can use the 
-    web admin tool to configure settings for your application. Use
-    the Website->Asp.Net Configuration option in Visual Studio.
-    A full list of settings and comments can be found in 
-    machine.config.comments usually located in 
-    \Windows\Microsoft.Net\Framework\v2.x\Config 
--->
-<configuration>
-       <configSections>
-               <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
-                       <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
-                               <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
-                               <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
-                                       <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
-                                       <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
-                                       <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
-                                       <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
-                               </sectionGroup>
-                       </sectionGroup>
-               </sectionGroup>
-       </configSections>
-       <appSettings>
-               <add key="OutsideTestSuite" value="false"/>
-       </appSettings>
-       <connectionStrings/>
-       <system.web>
-               <!-- 
-            Set compilation debug="true" to insert debugging 
-            symbols into the compiled page. Because this 
-            affects performance, set this value to true only 
-            during development.
-    -->
-               <compilation debug="true">
-                       <assemblies>
-                               <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
-                               <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add assembly="System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
-                               <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
-                               <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
-                       </assemblies>
-               </compilation>
-               <!--
-            The <authentication> section enables configuration 
-            of the security authentication mode used by 
-            ASP.NET to identify an incoming user. 
-    -->
-               <authentication mode="Windows"/>
-               <!--
-            The <customErrors> section enables configuration 
-            of what to do if/when an unhandled error occurs 
-            during the execution of a request. Specifically, 
-            it enables developers to configure html error pages 
-            to be displayed in place of a error stack trace.
-
-        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
-            <error statusCode="403" redirect="NoAccess.htm" />
-            <error statusCode="404" redirect="FileNotFound.htm" />
-        </customErrors>
-    -->
-               <pages>
-                       <controls>
-                               <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add tagPrefix="asp" namespace="System.Web.DynamicData" assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add tagPrefix="test" namespace="MonoTests.DataSource" assembly="System.Web.DynamicData_test_net_2_0"/>
-                               <add tagPrefix="test" namespace="MonoTests.Common" assembly="System.Web.DynamicData_test_net_2_0"/>
-                       </controls>
-               </pages>
-               <httpHandlers>
-                       <remove verb="*" path="*.asmx"/>
-                       <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
-               </httpHandlers>
-               <httpModules>
-                       <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-               </httpModules>
-       </system.web>
-       <system.codedom>
-               <compilers>
-                       <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-                               <providerOption name="CompilerVersion" value="v3.5"/>
-                               <providerOption name="WarnAsError" value="false"/>
-                       </compiler>
-                       <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-                               <providerOption name="CompilerVersion" value="v3.5"/>
-                               <providerOption name="OptionInfer" value="true"/>
-                               <providerOption name="WarnAsError" value="false"/>
-                       </compiler>
-               </compilers>
-       </system.codedom>
-       <system.web.extensions/>
-       <!-- 
-        The system.webServer section is required for running ASP.NET AJAX under Internet
-        Information Services 7.0.  It is not necessary for previous version of IIS.
-  -->
-       <system.webServer>
-               <validation validateIntegratedModeConfiguration="false"/>
-               <modules runAllManagedModulesForAllRequests="true">
-                       <remove name="ScriptModule"/>
-                       <remove name="UrlRoutingModule"/>
-                       <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-               </modules>
-               <handlers>
-                       <remove name="WebServiceHandlerFactory-Integrated"/>
-                       <remove name="ScriptHandlerFactory"/>
-                       <remove name="ScriptHandlerFactoryAppServices"/>
-                       <remove name="ScriptResource"/>
-                       <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
-               </handlers>
-       </system.webServer>
-       <runtime>
-               <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-                       <dependentAssembly>
-                               <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
-                               <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
-                       </dependentAssembly>
-                       <dependentAssembly>
-                               <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
-                               <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
-                       </dependentAssembly>
-               </assemblyBinding>
-       </runtime>
-</configuration>
diff --git a/mcs/class/System.Web.DynamicData/Test/WebPages/web.config.4.0 b/mcs/class/System.Web.DynamicData/Test/WebPages/web.config.4.0
deleted file mode 100644 (file)
index 9ba9e4b..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-<?xml version="1.0"?>
-<!-- 
-    Note: As an alternative to hand editing this file you can use the 
-    web admin tool to configure settings for your application. Use
-    the Website->Asp.Net Configuration option in Visual Studio.
-    A full list of settings and comments can be found in 
-    machine.config.comments usually located in 
-    \Windows\Microsoft.Net\Framework\v2.x\Config 
--->
-<configuration>
-       <configSections>
-               <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
-                       <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
-                               <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
-                               <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
-                                       <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
-                                       <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
-                                       <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
-                                       <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
-                               </sectionGroup>
-                       </sectionGroup>
-               </sectionGroup>
-       </configSections>
-       <appSettings>
-               <add key="OutsideTestSuite" value="false"/>
-       </appSettings>
-       <connectionStrings/>
-       <system.web>
-               <!-- 
-            Set compilation debug="true" to insert debugging 
-            symbols into the compiled page. Because this 
-            affects performance, set this value to true only 
-            during development.
-    -->
-               <compilation debug="true">
-                       <assemblies>
-                               <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
-                               <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add assembly="System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
-                               <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
-                               <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
-                       </assemblies>
-               </compilation>
-               <!--
-            The <authentication> section enables configuration 
-            of the security authentication mode used by 
-            ASP.NET to identify an incoming user. 
-    -->
-               <authentication mode="Windows"/>
-               <!--
-            The <customErrors> section enables configuration 
-            of what to do if/when an unhandled error occurs 
-            during the execution of a request. Specifically, 
-            it enables developers to configure html error pages 
-            to be displayed in place of a error stack trace.
-
-        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
-            <error statusCode="403" redirect="NoAccess.htm" />
-            <error statusCode="404" redirect="FileNotFound.htm" />
-        </customErrors>
-    -->
-               <pages>
-                       <controls>
-                               <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add tagPrefix="asp" namespace="System.Web.DynamicData" assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add tagPrefix="test" namespace="MonoTests.DataSource" assembly="System.Web.DynamicData_test_net_4_0"/>
-                               <add tagPrefix="test" namespace="MonoTests.Common" assembly="System.Web.DynamicData_test_net_4_0"/>
-                       </controls>
-               </pages>
-               <httpHandlers>
-                       <remove verb="*" path="*.asmx"/>
-                       <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
-               </httpHandlers>
-               <httpModules>
-                       <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-               </httpModules>
-       </system.web>
-       <system.codedom>
-               <compilers>
-                       <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-                               <providerOption name="CompilerVersion" value="v3.5"/>
-                               <providerOption name="WarnAsError" value="false"/>
-                       </compiler>
-                       <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-                               <providerOption name="CompilerVersion" value="v3.5"/>
-                               <providerOption name="OptionInfer" value="true"/>
-                               <providerOption name="WarnAsError" value="false"/>
-                       </compiler>
-               </compilers>
-       </system.codedom>
-       <system.web.extensions/>
-       <!-- 
-        The system.webServer section is required for running ASP.NET AJAX under Internet
-        Information Services 7.0.  It is not necessary for previous version of IIS.
-  -->
-       <system.webServer>
-               <validation validateIntegratedModeConfiguration="false"/>
-               <modules runAllManagedModulesForAllRequests="true">
-                       <remove name="ScriptModule"/>
-                       <remove name="UrlRoutingModule"/>
-                       <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-               </modules>
-               <handlers>
-                       <remove name="WebServiceHandlerFactory-Integrated"/>
-                       <remove name="ScriptHandlerFactory"/>
-                       <remove name="ScriptHandlerFactoryAppServices"/>
-                       <remove name="ScriptResource"/>
-                       <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
-               </handlers>
-       </system.webServer>
-       <runtime>
-               <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-                       <dependentAssembly>
-                               <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
-                               <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
-                       </dependentAssembly>
-                       <dependentAssembly>
-                               <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
-                               <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
-                       </dependentAssembly>
-               </assemblyBinding>
-       </runtime>
-</configuration>
diff --git a/mcs/class/System.Web.DynamicData/Test/WebPages/web.config.4.5 b/mcs/class/System.Web.DynamicData/Test/WebPages/web.config.4.5
deleted file mode 100644 (file)
index b9b23dd..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-<?xml version="1.0"?>
-<!-- 
-    Note: As an alternative to hand editing this file you can use the 
-    web admin tool to configure settings for your application. Use
-    the Website->Asp.Net Configuration option in Visual Studio.
-    A full list of settings and comments can be found in 
-    machine.config.comments usually located in 
-    \Windows\Microsoft.Net\Framework\v2.x\Config 
--->
-<configuration>
-       <configSections>
-               <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
-                       <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
-                               <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
-                               <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
-                                       <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
-                                       <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
-                                       <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
-                                       <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
-                               </sectionGroup>
-                       </sectionGroup>
-               </sectionGroup>
-       </configSections>
-       <appSettings>
-               <add key="OutsideTestSuite" value="false"/>
-       </appSettings>
-       <connectionStrings/>
-       <system.web>
-               <!-- 
-            Set compilation debug="true" to insert debugging 
-            symbols into the compiled page. Because this 
-            affects performance, set this value to true only 
-            during development.
-    -->
-               <compilation debug="true">
-                       <assemblies>
-                               <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
-                               <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add assembly="System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
-                               <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
-                               <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
-                       </assemblies>
-               </compilation>
-               <!--
-            The <authentication> section enables configuration 
-            of the security authentication mode used by 
-            ASP.NET to identify an incoming user. 
-    -->
-               <authentication mode="Windows"/>
-               <!--
-            The <customErrors> section enables configuration 
-            of what to do if/when an unhandled error occurs 
-            during the execution of a request. Specifically, 
-            it enables developers to configure html error pages 
-            to be displayed in place of a error stack trace.
-
-        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
-            <error statusCode="403" redirect="NoAccess.htm" />
-            <error statusCode="404" redirect="FileNotFound.htm" />
-        </customErrors>
-    -->
-               <pages>
-                       <controls>
-                               <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add tagPrefix="asp" namespace="System.Web.DynamicData" assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                               <add tagPrefix="test" namespace="MonoTests.DataSource" assembly="System.Web.DynamicData_test_net_4_5"/>
-                               <add tagPrefix="test" namespace="MonoTests.Common" assembly="System.Web.DynamicData_test_net_4_5"/>
-                       </controls>
-               </pages>
-               <httpHandlers>
-                       <remove verb="*" path="*.asmx"/>
-                       <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
-               </httpHandlers>
-               <httpModules>
-                       <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-               </httpModules>
-       </system.web>
-       <system.codedom>
-               <compilers>
-                       <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-                               <providerOption name="CompilerVersion" value="v3.5"/>
-                               <providerOption name="WarnAsError" value="false"/>
-                       </compiler>
-                       <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-                               <providerOption name="CompilerVersion" value="v3.5"/>
-                               <providerOption name="OptionInfer" value="true"/>
-                               <providerOption name="WarnAsError" value="false"/>
-                       </compiler>
-               </compilers>
-       </system.codedom>
-       <system.web.extensions/>
-       <!-- 
-        The system.webServer section is required for running ASP.NET AJAX under Internet
-        Information Services 7.0.  It is not necessary for previous version of IIS.
-  -->
-       <system.webServer>
-               <validation validateIntegratedModeConfiguration="false"/>
-               <modules runAllManagedModulesForAllRequests="true">
-                       <remove name="ScriptModule"/>
-                       <remove name="UrlRoutingModule"/>
-                       <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-               </modules>
-               <handlers>
-                       <remove name="WebServiceHandlerFactory-Integrated"/>
-                       <remove name="ScriptHandlerFactory"/>
-                       <remove name="ScriptHandlerFactoryAppServices"/>
-                       <remove name="ScriptResource"/>
-                       <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-                       <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
-               </handlers>
-       </system.webServer>
-       <runtime>
-               <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-                       <dependentAssembly>
-                               <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
-                               <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
-                       </dependentAssembly>
-                       <dependentAssembly>
-                               <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
-                               <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
-                       </dependentAssembly>
-               </assemblyBinding>
-       </runtime>
-</configuration>
diff --git a/mcs/class/System.Web.DynamicData/Test/WebPages/web.config.4.x b/mcs/class/System.Web.DynamicData/Test/WebPages/web.config.4.x
new file mode 100644 (file)
index 0000000..11c789d
--- /dev/null
@@ -0,0 +1,135 @@
+<?xml version="1.0"?>
+<!-- 
+    Note: As an alternative to hand editing this file you can use the 
+    web admin tool to configure settings for your application. Use
+    the Website->Asp.Net Configuration option in Visual Studio.
+    A full list of settings and comments can be found in 
+    machine.config.comments usually located in 
+    \Windows\Microsoft.Net\Framework\v2.x\Config 
+-->
+<configuration>
+       <configSections>
+               <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
+                       <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
+                               <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
+                               <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
+                                       <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
+                                       <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
+                                       <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
+                                       <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
+                               </sectionGroup>
+                       </sectionGroup>
+               </sectionGroup>
+       </configSections>
+       <appSettings>
+               <add key="OutsideTestSuite" value="false"/>
+       </appSettings>
+       <connectionStrings/>
+       <system.web>
+               <!-- 
+            Set compilation debug="true" to insert debugging 
+            symbols into the compiled page. Because this 
+            affects performance, set this value to true only 
+            during development.
+    -->
+               <compilation debug="true">
+                       <assemblies>
+                               <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
+                               <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+                               <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+                               <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+                               <add assembly="System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+                               <add assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+                               <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
+                               <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
+                               <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
+                       </assemblies>
+               </compilation>
+               <!--
+            The <authentication> section enables configuration 
+            of the security authentication mode used by 
+            ASP.NET to identify an incoming user. 
+    -->
+               <authentication mode="Windows"/>
+               <!--
+            The <customErrors> section enables configuration 
+            of what to do if/when an unhandled error occurs 
+            during the execution of a request. Specifically, 
+            it enables developers to configure html error pages 
+            to be displayed in place of a error stack trace.
+
+        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
+            <error statusCode="403" redirect="NoAccess.htm" />
+            <error statusCode="404" redirect="FileNotFound.htm" />
+        </customErrors>
+    -->
+               <pages>
+                       <controls>
+                               <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+                               <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+                               <add tagPrefix="asp" namespace="System.Web.DynamicData" assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+                               <add tagPrefix="test" namespace="MonoTests.DataSource" assembly="System.Web.DynamicData_test_net_4_x"/>
+                               <add tagPrefix="test" namespace="MonoTests.Common" assembly="System.Web.DynamicData_test_net_4_x"/>
+                       </controls>
+               </pages>
+               <httpHandlers>
+                       <remove verb="*" path="*.asmx"/>
+                       <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+                       <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+                       <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
+               </httpHandlers>
+               <httpModules>
+                       <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+                       <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+               </httpModules>
+       </system.web>
+       <system.codedom>
+               <compilers>
+                       <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+                               <providerOption name="CompilerVersion" value="v3.5"/>
+                               <providerOption name="WarnAsError" value="false"/>
+                       </compiler>
+                       <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+                               <providerOption name="CompilerVersion" value="v3.5"/>
+                               <providerOption name="OptionInfer" value="true"/>
+                               <providerOption name="WarnAsError" value="false"/>
+                       </compiler>
+               </compilers>
+       </system.codedom>
+       <system.web.extensions/>
+       <!-- 
+        The system.webServer section is required for running ASP.NET AJAX under Internet
+        Information Services 7.0.  It is not necessary for previous version of IIS.
+  -->
+       <system.webServer>
+               <validation validateIntegratedModeConfiguration="false"/>
+               <modules runAllManagedModulesForAllRequests="true">
+                       <remove name="ScriptModule"/>
+                       <remove name="UrlRoutingModule"/>
+                       <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+                       <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+               </modules>
+               <handlers>
+                       <remove name="WebServiceHandlerFactory-Integrated"/>
+                       <remove name="ScriptHandlerFactory"/>
+                       <remove name="ScriptHandlerFactoryAppServices"/>
+                       <remove name="ScriptResource"/>
+                       <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+                       <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+                       <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+                       <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
+               </handlers>
+       </system.webServer>
+       <runtime>
+               <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+                       <dependentAssembly>
+                               <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
+                               <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
+                       </dependentAssembly>
+                       <dependentAssembly>
+                               <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
+                               <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
+                       </dependentAssembly>
+               </assemblyBinding>
+       </runtime>
+</configuration>
index e7dd5e0f017b684e0fc2384baabaa040c7d71980..bf15f32944f8a2e700ca4acc1066ddedf799497e 100644 (file)
@@ -30,9 +30,7 @@ RESOURCE_FILES_DIST= \
 
 NUNIT_RESOURCE_FILES= \
        Test/resources/Web.mono.config \
-       Test/resources/profile.config.4.5 \
-       Test/resources/profile.config.4.0 \
-       Test/resources/profile.config.2.0 \
+       Test/resources/profile.config.4.x \
        $(wildcard Test/resources/*.as?x) \
        $(wildcard ../System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/*.cs) \
        $(wildcard ../System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/*.as?x) \
index dd2d5a38bc9de2c505e9ebb1f2286e49eafabdb0..c8bb51a77999f8781bac2b6b9459b6b5bf5840b7 100644 (file)
@@ -430,12 +430,10 @@ namespace MonoTests.System.Web.Script.Serialization
                [Test]
                public void TestDeserializeTypeResolver () 
                {
-#if NET_4_5
-                       string expected = "{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+X, System.Web.Extensions_test_net_4_5, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"z\":8,\"ch\":\"v\",\"ch_null\":null,\"str\":\"vwF59g\",\"b\":253,\"sb\":-48,\"sh\":-32740,\"ush\":65511,\"i\":-234235453,\"ui\":4294733061,\"l\":-9223372036854775780,\"ul\":18446744073709551612,\"f\":NaN,\"f1\":-Infinity,\"f2\":Infinity,\"f3\":-3.40282347E+38,\"f4\":3.40282347E+38,\"d\":NaN,\"d1\":-Infinity,\"d2\":Infinity,\"d3\":-1.7976931348623157E+308,\"d4\":1.7976931348623157E+308,\"de\":-1,\"de1\":0,\"de2\":1,\"de3\":-79228162514264337593543950335,\"de4\":79228162514264337593543950335,\"g\":\"000000ea-0002-0162-0102-030405060708\",\"nb\":null,\"dbn\":null,\"uri\":\"http://kostat@mainsoft/adfasdf/asdfasdf.aspx/asda/ads?a=b&c=d\",\"hash\":{\"mykey\":{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_4_5, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10}},\"point\":{\"__type\":\"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\",\"IsEmpty\":false,\"X\":150,\"Y\":150},\"MyEnum\":[1,10,345],\"MyEnum1\":[1,10,345],\"AA\":5,\"AA1\":[{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_4_5, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10},{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_4_5, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10}],\"BB\":18446744073709551610,\"YY\":[{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_4_5, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10},{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_4_5, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10}]}";
-#elif NET_4_0
-                       string expected = "{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+X, System.Web.Extensions_test_net_4_0, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"z\":8,\"ch\":\"v\",\"ch_null\":null,\"str\":\"vwF59g\",\"b\":253,\"sb\":-48,\"sh\":-32740,\"ush\":65511,\"i\":-234235453,\"ui\":4294733061,\"l\":-9223372036854775780,\"ul\":18446744073709551612,\"f\":NaN,\"f1\":-Infinity,\"f2\":Infinity,\"f3\":-3.40282347E+38,\"f4\":3.40282347E+38,\"d\":NaN,\"d1\":-Infinity,\"d2\":Infinity,\"d3\":-1.7976931348623157E+308,\"d4\":1.7976931348623157E+308,\"de\":-1,\"de1\":0,\"de2\":1,\"de3\":-79228162514264337593543950335,\"de4\":79228162514264337593543950335,\"g\":\"000000ea-0002-0162-0102-030405060708\",\"nb\":null,\"dbn\":null,\"uri\":\"http://kostat@mainsoft/adfasdf/asdfasdf.aspx/asda/ads?a=b&c=d\",\"hash\":{\"mykey\":{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_4_0, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10}},\"point\":{\"__type\":\"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\",\"IsEmpty\":false,\"X\":150,\"Y\":150},\"MyEnum\":[1,10,345],\"MyEnum1\":[1,10,345],\"AA\":5,\"AA1\":[{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_4_0, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10},{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_4_0, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10}],\"BB\":18446744073709551610,\"YY\":[{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_4_0, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10},{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_4_0, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10}]}";
+#if NET_4_6
+                       string expected = "{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+X, System.Web.Extensions_test_net_4_x, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"z\":8,\"ch\":\"v\",\"ch_null\":null,\"str\":\"vwF59g\",\"b\":253,\"sb\":-48,\"sh\":-32740,\"ush\":65511,\"i\":-234235453,\"ui\":4294733061,\"l\":-9223372036854775780,\"ul\":18446744073709551612,\"f\":NaN,\"f1\":-Infinity,\"f2\":Infinity,\"f3\":-3.40282347E+38,\"f4\":3.40282347E+38,\"d\":NaN,\"d1\":-Infinity,\"d2\":Infinity,\"d3\":-1.7976931348623157E+308,\"d4\":1.7976931348623157E+308,\"de\":-1,\"de1\":0,\"de2\":1,\"de3\":-79228162514264337593543950335,\"de4\":79228162514264337593543950335,\"g\":\"000000ea-0002-0162-0102-030405060708\",\"nb\":null,\"dbn\":null,\"uri\":\"http://kostat@mainsoft/adfasdf/asdfasdf.aspx/asda/ads?a=b&c=d\",\"hash\":{\"mykey\":{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_4_x, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10}},\"point\":{\"__type\":\"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\",\"IsEmpty\":false,\"X\":150,\"Y\":150},\"MyEnum\":[1,10,345],\"MyEnum1\":[1,10,345],\"AA\":5,\"AA1\":[{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_4_x, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10},{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_4_x, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10}],\"BB\":18446744073709551610,\"YY\":[{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_4_x, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10},{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_4_x, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10}]}";
 #else
-                       string expected = "{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+X, System.Web.Extensions_test_net_2_0, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"z\":8,\"ch\":\"v\",\"ch_null\":null,\"str\":\"vwF59g\",\"b\":253,\"sb\":-48,\"sh\":-32740,\"ush\":65511,\"i\":-234235453,\"ui\":4294733061,\"l\":-9223372036854775780,\"ul\":18446744073709551612,\"f\":NaN,\"f1\":-Infinity,\"f2\":Infinity,\"f3\":-3.40282347E+38,\"f4\":3.40282347E+38,\"d\":NaN,\"d1\":-Infinity,\"d2\":Infinity,\"d3\":-1.7976931348623157E+308,\"d4\":1.7976931348623157E+308,\"de\":-1,\"de1\":0,\"de2\":1,\"de3\":-79228162514264337593543950335,\"de4\":79228162514264337593543950335,\"g\":\"000000ea-0002-0162-0102-030405060708\",\"nb\":null,\"dbn\":null,\"uri\":\"http://kostat@mainsoft/adfasdf/asdfasdf.aspx/asda/ads?a=b&c=d\",\"hash\":{\"mykey\":{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_2_0, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10}},\"point\":{\"__type\":\"System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\",\"IsEmpty\":false,\"X\":150,\"Y\":150},\"MyEnum\":[1,10,345],\"MyEnum1\":[1,10,345],\"AA\":5,\"AA1\":[{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_2_0, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10},{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_2_0, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10}],\"BB\":18446744073709551610,\"YY\":[{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_2_0, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10},{\"__type\":\"MonoTests.System.Web.Script.Serialization.JavaScriptSerializerTest+Y, System.Web.Extensions_test_net_2_0, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\",\"BB\":10}]}";
+                       #error "Unknown profile"
 #endif
                        JavaScriptSerializer ser = new JavaScriptSerializer (new SimpleTypeResolver ());
                        X x = new X ();
index f651fcfb8bb04d11b90d9f54df544136bbca2ed4..57fc8386befbcb7d8fbcc3650c73314f240cfb60 100644 (file)
@@ -1214,7 +1214,6 @@ namespace MonoTests.System.Web.UI.WebControls
                [Test (Description="Bug #535701, test 1")]
                public void Bug_535701_1 ()
                {
-#if NET_4_0
                        string originalHtml_1 = @"<span id=""ListViewTest"">
         0 1 2 3 4 5 6 7 8 9 
         </span>
@@ -1223,16 +1222,6 @@ namespace MonoTests.System.Web.UI.WebControls
         10 11 12 
         </span>
         <span id=""DataPager1""><a href=""javascript:__doPostBack(&#39;DataPager1$ctl00$ctl00&#39;,&#39;&#39;)"">First</a>&nbsp;<a href=""javascript:__doPostBack(&#39;DataPager1$ctl00$ctl01&#39;,&#39;&#39;)"">Previous</a>&nbsp;<a href=""javascript:__doPostBack(&#39;DataPager1$ctl01$ctl00&#39;,&#39;&#39;)"">1</a>&nbsp;<span>2</span>&nbsp;<a class=""aspNetDisabled"">Next</a>&nbsp;<a class=""aspNetDisabled"">Last</a>&nbsp;</span>";
-#else
-                       string originalHtml_1 = @"<span id=""ListViewTest"">
-        0 1 2 3 4 5 6 7 8 9 
-        </span>
-        <span id=""DataPager1""><a disabled=""disabled"">First</a>&nbsp;<a disabled=""disabled"">Previous</a>&nbsp;<span>1</span>&nbsp;<a href=""javascript:__doPostBack('DataPager1$ctl01$ctl01','')"">2</a>&nbsp;<a href=""javascript:__doPostBack('DataPager1$ctl02$ctl00','')"">Next</a>&nbsp;<a href=""javascript:__doPostBack('DataPager1$ctl02$ctl01','')"">Last</a>&nbsp;</span>";
-                       string originalHtml_2 = @"<span id=""ListViewTest"">
-        10 11 12 
-        </span>
-        <span id=""DataPager1""><a href=""javascript:__doPostBack('DataPager1$ctl00$ctl00','')"">First</a>&nbsp;<a href=""javascript:__doPostBack('DataPager1$ctl00$ctl01','')"">Previous</a>&nbsp;<a href=""javascript:__doPostBack('DataPager1$ctl01$ctl00','')"">1</a>&nbsp;<span>2</span>&nbsp;<a disabled=""disabled"">Next</a>&nbsp;<a disabled=""disabled"">Last</a>&nbsp;</span>";
-#endif
                        WebTest t = new WebTest ("ListViewTotalRowCount_Bug535701_1.aspx");
                        string pageHtml = t.Run ();
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHtml);
@@ -1253,7 +1242,6 @@ namespace MonoTests.System.Web.UI.WebControls
                [Test (Description="Bug #535701, test 2")]
                public void Bug_535701_2 ()
                {
-#if NET_4_0
                        string originalHtml_1 = @"<span id=""ListViewTest2"">
         12345678910
         </span>
@@ -1270,24 +1258,6 @@ namespace MonoTests.System.Web.UI.WebControls
         <br /><div>
         DataPager.TotalRowCount = 14<br />
         Actual TotalRowCount = 14</div>";
-#else
-                       string originalHtml_1 = @"<span id=""ListViewTest2"">
-        12345678910
-        </span>
-        <span id=""DataPager1""><a disabled=""disabled"">First</a>&nbsp;<a disabled=""disabled"">Previous</a>&nbsp;<span>1</span>&nbsp;<a href=""javascript:__doPostBack('DataPager1$ctl01$ctl01','')"">2</a>&nbsp;<a href=""javascript:__doPostBack('DataPager1$ctl02$ctl00','')"">Next</a>&nbsp;<a href=""javascript:__doPostBack('DataPager1$ctl02$ctl01','')"">Last</a>&nbsp;</span>
-               
-        <br /><div>
-        DataPager.TotalRowCount = 14<br />
-        Actual TotalRowCount = 14</div>";
-                       string originalHtml_2 = @"<span id=""ListViewTest2"">
-        11121314
-        </span>
-        <span id=""DataPager1""><a href=""javascript:__doPostBack('DataPager1$ctl00$ctl00','')"">First</a>&nbsp;<a href=""javascript:__doPostBack('DataPager1$ctl00$ctl01','')"">Previous</a>&nbsp;<a href=""javascript:__doPostBack('DataPager1$ctl01$ctl00','')"">1</a>&nbsp;<span>2</span>&nbsp;<a disabled=""disabled"">Next</a>&nbsp;<a disabled=""disabled"">Last</a>&nbsp;</span>
-               
-        <br /><div>
-        DataPager.TotalRowCount = 14<br />
-        Actual TotalRowCount = 14</div>";
-#endif
                        WebTest t = new WebTest ("ListViewTotalRowCount_Bug535701_2.aspx");
                        string pageHtml = t.Run ();
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHtml);
@@ -1308,11 +1278,7 @@ namespace MonoTests.System.Web.UI.WebControls
                [Test (Description="Bug #604053")]
                public void Bug_604053 ()
                {
-#if NET_4_0
                        string originalHtml = "<span id=\"Bug604053ListView1\"><table id=\"Bug604053ListView1_itemPlaceholderContainer\" border=\"0\" style=\"\"><tr style=\"\"><th>\n\t\t\t\t\t\t\t\t\t\t\tM1</th><th>\n\t\t\t\t\t\t\t\t\t\t\tM2</th>\r\n\t</tr>\n\t\t\t\t\t<tr style=\"\">\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span id=\"Bug604053ListView1_ctl10_M1Label_0\">0</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span id=\"Bug604053ListView1_ctl10_M2Label_0\">0</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\r\n\t\t\n\t\t\t\t\t<tr style=\"\">\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span id=\"Bug604053ListView1_ctl12_M1Label_1\">1</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span id=\"Bug604053ListView1_ctl12_M2Label_1\">1</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\r\n\r\n\r\n</table>\r\n\n\t\t\t\t\t<table><tr><td>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t</td>\r\n\t</tr><tr><td style=\"\">\n\t\t\t\t\t\t\t\t<span id=\"Bug604053ListView1_DataPager1\"><input type=\"submit\" name=\"Bug604053ListView1$DataPager1$ctl00$ctl00\" value=\"First\" disabled=\"disabled\" />&nbsp;<span>1</span>&nbsp;<a href=\"javascript:__doPostBack(&#39;Bug604053ListView1$DataPager1$ctl01$ctl01&#39;,&#39;&#39;)\">2</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;Bug604053ListView1$DataPager1$ctl01$ctl02&#39;,&#39;&#39;)\">3</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;Bug604053ListView1$DataPager1$ctl01$ctl03&#39;,&#39;&#39;)\">4</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;Bug604053ListView1$DataPager1$ctl01$ctl04&#39;,&#39;&#39;)\">5</a>&nbsp;<input type=\"submit\" name=\"Bug604053ListView1$DataPager1$ctl02$ctl00\" value=\"Last\" />&nbsp;</span>\n\t\t\t\t\t\t\t</td>\r\n\t</tr>\r\n\r\n</table>\r\n\n\t\t\t\t</span>\n\t\t\t<span id=\"Bug604053ListView2\"><table id=\"Bug604053ListView2_itemPlaceholderContainer\" border=\"0\" style=\"\"><tr style=\"\"><th>\n\t\t\t\t\t\t\t\t\t\t\tM1</th><th>\n\t\t\t\t\t\t\t\t\t\t\tM2</th>\r\n\t</tr>\n\t\t\t\t\t<tr style=\"\">\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span id=\"Bug604053ListView2_ctl10_M1Label_0\">0</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span id=\"Bug604053ListView2_ctl10_M2Label_0\">0</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\r\n\t\t\n\t\t\t\t\t<tr style=\"\">\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span id=\"Bug604053ListView2_ctl12_M1Label_1\">1</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span id=\"Bug604053ListView2_ctl12_M2Label_1\">1</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\r\n\r\n\r\n</table>\r\n\n\t\t\t\t\t<table><tr><td>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t</td>\r\n\t</tr><tr><td style=\"\">\n\t\t\t\t\t\t\t\t<span id=\"Bug604053ListView2_DataPager1\"><input type=\"submit\" name=\"Bug604053ListView2$DataPager1$ctl00$ctl00\" value=\"First\" disabled=\"disabled\" />&nbsp;<input type=\"submit\" name=\"Bug604053ListView2$DataPager1$ctl00$ctl01\" value=\"Previous\" disabled=\"disabled\" />&nbsp;<input type=\"submit\" name=\"Bug604053ListView2$DataPager1$ctl00$ctl02\" value=\"Next\" />&nbsp;<input type=\"submit\" name=\"Bug604053ListView2$DataPager1$ctl00$ctl03\" value=\"Last\" />&nbsp;</span>\n\t\t\t\t\t\t\t</td>\r\n\t</tr>\r\n\r\n</table>\r\n\n\t\t\t\t</span>";
-#else
-                       string originalHtml = "<span id=\"Bug604053ListView1\"><table id=\"Bug604053ListView1_itemPlaceholderContainer\" border=\"0\" style=\"\"><tr style=\"\"><th>\n\t\t\t\t\t\t\t\t\t\t\tM1</th><th>\n\t\t\t\t\t\t\t\t\t\t\tM2</th>\r\n\t</tr>\n\t\t\t\t\t<tr style=\"\">\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span id=\"Bug604053ListView1_ctl10_M1Label\">0</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span id=\"Bug604053ListView1_ctl10_M2Label\">0</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\r\n\t\t\n\t\t\t\t\t<tr style=\"\">\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span id=\"Bug604053ListView1_ctl12_M1Label\">1</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span id=\"Bug604053ListView1_ctl12_M2Label\">1</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\r\n\r\n\r\n</table>\r\n\n\t\t\t\t\t<table><tr><td>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t</td>\r\n\t</tr><tr><td style=\"\">\n\t\t\t\t\t\t\t\t<span id=\"Bug604053ListView1_DataPager1\"><input type=\"submit\" name=\"Bug604053ListView1$DataPager1$ctl00$ctl00\" value=\"First\" disabled=\"disabled\" />&nbsp;<span>1</span>&nbsp;<a href=\"javascript:__doPostBack('Bug604053ListView1$DataPager1$ctl01$ctl01','')\">2</a>&nbsp;<a href=\"javascript:__doPostBack('Bug604053ListView1$DataPager1$ctl01$ctl02','')\">3</a>&nbsp;<a href=\"javascript:__doPostBack('Bug604053ListView1$DataPager1$ctl01$ctl03','')\">4</a>&nbsp;<a href=\"javascript:__doPostBack('Bug604053ListView1$DataPager1$ctl01$ctl04','')\">5</a>&nbsp;<input type=\"submit\" name=\"Bug604053ListView1$DataPager1$ctl02$ctl00\" value=\"Last\" />&nbsp;</span>\n\t\t\t\t\t\t\t</td>\r\n\t</tr>\r\n\r\n</table>\r\n\n\t\t\t\t</span>\n\t\t\t<span id=\"Bug604053ListView2\"><table id=\"Bug604053ListView2_itemPlaceholderContainer\" border=\"0\" style=\"\"><tr style=\"\"><th>\n\t\t\t\t\t\t\t\t\t\t\tM1</th><th>\n\t\t\t\t\t\t\t\t\t\t\tM2</th>\r\n\t</tr>\n\t\t\t\t\t<tr style=\"\">\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span id=\"Bug604053ListView2_ctl10_M1Label\">0</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span id=\"Bug604053ListView2_ctl10_M2Label\">0</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\r\n\t\t\n\t\t\t\t\t<tr style=\"\">\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span id=\"Bug604053ListView2_ctl12_M1Label\">1</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span id=\"Bug604053ListView2_ctl12_M2Label\">1</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\r\n\r\n\r\n</table>\r\n\n\t\t\t\t\t<table><tr><td>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t</td>\r\n\t</tr><tr><td style=\"\">\n\t\t\t\t\t\t\t\t<span id=\"Bug604053ListView2_DataPager1\"><input type=\"submit\" name=\"Bug604053ListView2$DataPager1$ctl00$ctl00\" value=\"First\" disabled=\"disabled\" />&nbsp;<input type=\"submit\" name=\"Bug604053ListView2$DataPager1$ctl00$ctl01\" value=\"Previous\" disabled=\"disabled\" />&nbsp;<input type=\"submit\" name=\"Bug604053ListView2$DataPager1$ctl00$ctl02\" value=\"Next\" />&nbsp;<input type=\"submit\" name=\"Bug604053ListView2$DataPager1$ctl00$ctl03\" value=\"Last\" />&nbsp;</span>\n\t\t\t\t\t\t\t</td>\r\n\t</tr>\r\n\r\n</table>\r\n\n\t\t\t\t</span>";
-#endif                 
                        WebTest t = new WebTest ("ListViewTotalRowCount_Bug604053.aspx");
                        string pageHtml = t.Run ();
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHtml);
index 31197a56ae5043ac2387b3ed8c3117bd58b782e1..898d9d3ea8d03a6a1133df546556f64148e48ab1 100644 (file)
@@ -10,12 +10,10 @@ namespace MonoTests.SystemWeb.Framework
 #if !DOTNET
                        CopyResource (myself, "Web.mono.config", "Web.config");
 #endif
-#if NET_4_5
-                       CopyResource (myself, "profile.config.4.5", "profile.config");
-#elif NET_4_0
-                       CopyResource (myself, "profile.config.4.0", "profile.config");
+#if NET_4_6
+                       CopyResource (myself, "profile.config.4.x", "profile.config");
 #else
-                       CopyResource (myself, "profile.config.2.0", "profile.config");
+                       #error "Unknown profile"
 #endif
                }
        }
diff --git a/mcs/class/System.Web.Extensions/Test/resources/profile.config.2.0 b/mcs/class/System.Web.Extensions/Test/resources/profile.config.2.0
deleted file mode 100644 (file)
index 97ef369..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<pages>
-       <controls>
-               <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-               <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-               <add tagPrefix="t" namespace="MonoTests.System.Web.UI.WebControls" assembly="System.Web.Extensions_test_net_2_0"/>
-       </controls>
-</pages>
diff --git a/mcs/class/System.Web.Extensions/Test/resources/profile.config.4.0 b/mcs/class/System.Web.Extensions/Test/resources/profile.config.4.0
deleted file mode 100644 (file)
index 0a65227..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<pages>
-       <controls>
-               <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-               <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-               <add tagPrefix="t" namespace="MonoTests.System.Web.UI.WebControls" assembly="System.Web.Extensions_test_net_4_0"/>
-       </controls>
-</pages>
diff --git a/mcs/class/System.Web.Extensions/Test/resources/profile.config.4.5 b/mcs/class/System.Web.Extensions/Test/resources/profile.config.4.5
deleted file mode 100644 (file)
index 526002f..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<pages>
-       <controls>
-               <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-               <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
-               <add tagPrefix="t" namespace="MonoTests.System.Web.UI.WebControls" assembly="System.Web.Extensions_test_net_4_5"/>
-       </controls>
-</pages>
diff --git a/mcs/class/System.Web.Extensions/Test/resources/profile.config.4.x b/mcs/class/System.Web.Extensions/Test/resources/profile.config.4.x
new file mode 100644 (file)
index 0000000..126cacc
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<pages>
+       <controls>
+               <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+               <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
+               <add tagPrefix="t" namespace="MonoTests.System.Web.UI.WebControls" assembly="System.Web.Extensions_test_net_4_x"/>
+       </controls>
+</pages>
index e2b0a9f1a9649fd8886b0b87faa0ad22e0320343..09df4e8819aed3ee0e3516c679a2865d468c1419 100644 (file)
@@ -6,21 +6,8 @@ LIBRARY = System.Web.Routing.dll
 LIB_REFS = System System.Core System.Web System.Web.Abstractions
 LIB_MCS_FLAGS = 
 
-ifdef DEBUG
-LIB_MCS_FLAGS += -define:DEBUG
-endif
-
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES =
 
-# This is a .NET 3.5+ assembly
-VALID_PROFILE := $(filter net_4_5, $(PROFILE))
-ifndef VALID_PROFILE
-LIBRARY_NAME = dummy-System.Web.Routing.dll
-NO_INSTALL = yes
-NO_SIGN_ASSEMBLY = yes
-NO_TEST = yes
-endif
-
 include ../../build/library.make
index be16d0b3b4b378a6288a2a8f47f9d7e5a644175b..c030663c148c81734a972b51eaf0f05025a806d3 100644 (file)
@@ -1,22 +1,3 @@
 ../../build/common/Consts.cs
 ../../build/common/MonoTODOAttribute.cs
 Assembly/AssemblyInfo.cs
-System.Web.Routing/HttpMethodConstraint.cs
-System.Web.Routing/IRouteConstraint.cs
-System.Web.Routing/IRouteHandler.cs
-System.Web.Routing/PatternParser.cs
-System.Web.Routing/PatternToken.cs
-System.Web.Routing/PatternTokenType.cs
-System.Web.Routing/RequestContext.cs
-System.Web.Routing/Route.cs
-System.Web.Routing/RouteBase.cs
-System.Web.Routing/RouteCollection.cs
-System.Web.Routing/RouteData.cs
-System.Web.Routing/RouteDirection.cs
-System.Web.Routing/RouteTable.cs
-System.Web.Routing/RouteValueDictionary.cs
-System.Web.Routing/RouteValueDictionaryExtensions.cs
-System.Web.Routing/StopRoutingHandler.cs
-System.Web.Routing/UrlRoutingHandler.cs
-System.Web.Routing/UrlRoutingModule.cs
-System.Web.Routing/VirtualPathData.cs
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/ChangeLog b/mcs/class/System.Web.Routing/System.Web.Routing/ChangeLog
deleted file mode 100644 (file)
index cdbb490..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-2010-06-05  Marek Habersack  <mhabersack@novell.com>
-
-       * UrlRoutingModule.cs: 4.0 doesn't do the UrlRouting.axd magic, it
-       simply remaps the current handler to the one obtained from the
-       route.
-
-2010-05-06  Marek Habersack  <mhabersack@novell.com>
-
-       * RouteCollection.cs: GetVirtualPath throws ArgumentException
-       when named route is not found in the collection.
-
-2010-05-05  Marek Habersack  <mhabersack@novell.com>
-
-       * UrlRoutingModule.cs: PostMapRequestHandler is obsolete in 4.0
-
-       * RouteValueDictionary.cs: do not process type fields in
-       RouteValueDictionary (object)
-
-       * RouteCollection.cs: GetRouteData throws an exception if Request
-       is null in the passed context.
-       Added Ignore* and MapPageRoute* 4.0 APIs
-
-       * RequestContext.cs: 4.0 API update
-
-       * PatternParser.cs: match parser rewrite to encompass 4.0 bug
-       fixes. We don't emulate some of the pre-4.0 routing bugs anymore.
-
-2009-11-23  Marek Habersack  <mhabersack@novell.com>
-
-       * Route.cs: GetRouteData throws NotImplementedException only when
-       pathInfo for the current request is a non-empty string. Patch from
-       Tiaan <tagdev@gmail.com>, thanks!
-
-2009-11-09  Marek Habersack  <mhabersack@novell.com>
-
-       * RouteCollection.cs: GetVirtualPath doesn't append trailing slash
-       to application path blindly anymore. Fixes bug #553022
-
-2009-09-09  Marek Habersack  <mhabersack@novell.com>
-
-       * Route.cs: when Url is set to null, create a parser for empty
-       string. Fixes bug #537751
-
-       * PatternParser.cs: Parse allows for null/empty URLs. Fixes bug
-       #537751
-
-2009-09-08  Marek Habersack  <mhabersack@novell.com>
-
-       * UrlRoutingModule.cs: store original request path in
-       PostResolveRequestCache and restore it in
-       PostMapRequestHandler. Fixes bug #537089
-
-2009-08-19  Marek Habersack  <mhabersack@novell.com>
-
-       * Route.cs: GetRouteData adds contents of its DataTokens
-       dictionary to the returned RouteData.DataTokens dictionary. Fixes
-       bug #523330. Patch from Dax@daxxfiles.net, thanks!
-
-2009-06-25  Marek Habersack  <mhabersack@novell.com>
-
-       * PatternParser.cs: parameter name lookups must be
-       case-insensitive.
-       Null and empty (string) parameters are skipped when building query
-       part of the action path.
-
-2009-06-16  Marek Habersack  <mhabersack@novell.com>
-
-       * RouteValueDictionaryExtensions.cs: do not compile if
-       SYSTEMCORE_DEP is not defined
-
-       * PatternParser.cs: if SYSTEMCORE_DEP is not defined, do not
-       compile parts which require RouteValueDictionaryExtensions.
-
-       * Decorated all classes with the TypeForwardedFrom attribute for
-       the 4.0 profile.
-
-2009-06-04  Marek Habersack  <mhabersack@novell.com>
-
-       * RouteValueDictionaryExtensions.cs: if both values are strings in
-       Has (string, value), compare them case-insensitively. Fixes bug
-       #502555
-
-2009-05-27  Marek Habersack  <mhabersack@novell.com>
-
-       * PatternParser.cs: if Match is passed an empty path, do not
-       attempt to match the Url segments, skip to defaults matching right
-       away.
-
-2009-05-25  Marek Habersack  <mhabersack@novell.com>
-
-       * UrlPattern.cs: removed - replaced by PatternParser below.
-       
-       * RouteValueDictionaryExtensions.cs: added - some shortcuts for
-       using RouteValueDictionary in PatternParser
-
-       * Route.cs: use the new PatternParser.
-       Factored out ProcessConstraint into ProcessConstraintInternal so
-       that the latter can be used by the PatternParser class.
-       Added parameter checks in ProcessConstraint.
-
-       * PatternTokenType.cs: added
-
-       * PatternToken.cs: added a helper class for the pattern parser.
-
-       * PatternParser.cs: added. New implementation of url
-       parser/matcher/generator which fixes all URL isues known so
-       far. Fixes bug #504378
-
-2009-05-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
-
-       * UrlPattern.cs: if the pattern is line {a}/{b} and {b} is substituted
-       by an empty string, remove the '/' too.
-
-2009-05-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
-
-       * UrlPattern.cs: non-string default arguments work now.
-
-2009-05-12  Marek Habersack  <mhabersack@novell.com>
-
-       * UrlPattern.cs: TrySubstitute performs substitution trimming. If
-       a segment would be set to a default value and all of its following
-       segments as well, it will be omitted from the generated URL. The
-       value comparison is done case-insensitively when the dictionary
-       values are strings. Fixes bug #502555
-
-2009-05-11  Marek Habersack  <mhabersack@novell.com>
-
-       * UrlPattern.cs: TrySubstitute treats defaults differently
-       now. They are not consulted when checking if the passed values
-       match the pattern, but only when substituting the values. Fixes
-       bug #502555
-
-2009-05-05  Marek Habersack  <mhabersack@novell.com>
-
-       * UrlPattern.cs: Match adds defaults values should some keys be
-       missing from the url. Fixes bug #500739
-
-       * Route.cs: a small GetRouteData loop optimization
-
-2009-02-18  Marek Habersack  <mhabersack@novell.com>
-
-       * UrlPattern.cs: TrySubstitute now gets the collection of default
-       values and uses it to replace url segments instead of failing when
-       the passed values collection is missing a segment.
-       Do not use the tokens array in Match.
-
-       * RouteCollection.cs: check if name is null or empty, not just
-       null in GetVirtualPath
-
-       * Route.cs: url.TrySubstitute should be passed the defaults
-       collection when called from GetVirtualPath
-
-2009-02-14  Marek Habersack  <mhabersack@novell.com>
-
-       * UrlPattern.cs: use the defaults collection when matching a path
-       and segments are missing.
-
-       * RouteCollection.cs: GetRouteData must use VirtualPathProvider
-       to check for virtual path existence.
-
-2008-10-23  Atsushi Enomoto  <atsushi@ximian.com>
-
-       * UrlPattern.cs : fixed possible out-of-range case ("tableName/" in
-         DynamicData).
-
-2008-10-17  Atsushi Enomoto  <atsushi@ximian.com>
-
-       * RouteValueDictionary.cs : its string comparison is case
-         insensitive.
-
-2008-10-17  Atsushi Enomoto  <atsushi@ximian.com>
-
-       * UrlPattern.cs : fixed pattern match for such string that has
-         suffix. (DynamicData uses it.)
-
-2008-10-16  Atsushi Enomoto  <atsushi@ximian.com>
-
-       * RouteValueDictionary.cs : object argument is actually for
-         anonymous type instance.
-
-2008-10-10  Atsushi Enomoto  <atsushi@ximian.com>
-
-       * UrlRoutingModule.cs : implement PostMapRequestHandler() and 
-         PostResolveRequestCache() to work correctly in order.
-         Now it should practically work.
-
-2008-09-18  Atsushi Enomoto  <atsushi@ximian.com>
-
-       * UrlRoutingModule.cs, RouteCollection.cs :
-         handle RouteExistingFiles.
-
-2008-09-18  Atsushi Enomoto  <atsushi@ximian.com>
-
-       * Route.cs : reject invalid constraint.
-       * UrlRoutingHandler.cs : more ProcessRequest() impl.
-       * UrlRoutingModule.cs : note.
-
-2008-09-17  Atsushi Enomoto  <atsushi@ximian.com>
-
-       * HttpMethodConstraint.cs, Route.cs, RouteCollection.cs,
-         UrlPattern.cs, UrlRoutingModule.cs:
-         ongoing UrlRoutingModule implementation.
-
-2008-09-12  Atsushi Enomoto  <atsushi@ximian.com>
-
-       * HttpMethodConstraint.cs, Route.cs, UrlPattern.cs, 
-         RouteCollection.cs : implement Route.GetRouteData() and
-         HttpMethodConstraint.Match().
-
-2008-09-12  Atsushi Enomoto  <atsushi@ximian.com>
-
-       * UrlPattern.cs : new file for URL pattern processing.
-       * Route.cs : use above.
-
-2008-09-11  Atsushi Enomoto  <atsushi@ximian.com>
-
-       * HttpMethodConstraint.cs, RequestContext.cs, Route.cs,
-         RouteCollection.cs, RouteData.cs, RouteTable.cs,
-         RouteValueDictionary.cs, StopRoutingHandler.cs,
-         UrlRoutingHandler.cs, UrlRoutingModule.cs, VirtualPathData.cs:
-         some implementation.
-
-2008-09-04  Atsushi Enomoto  <atsushi@ximian.com>
-
-       *.cs: initial checkin.
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/HttpMethodConstraint.cs b/mcs/class/System.Web.Routing/System.Web.Routing/HttpMethodConstraint.cs
deleted file mode 100644 (file)
index c163c73..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// HttpMethodConstraint.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Web;
-
-namespace System.Web.Routing
-{
-       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class HttpMethodConstraint : IRouteConstraint
-       {
-               public HttpMethodConstraint (params string[] allowedMethods)
-               {
-                       if (allowedMethods == null)
-                               throw new ArgumentNullException ("allowedMethods");
-                       AllowedMethods = allowedMethods;
-               }
-
-               public ICollection<string> AllowedMethods { get; private set; }
-
-               bool IRouteConstraint.Match (HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
-               {
-                       return Match (httpContext, route, parameterName, values, routeDirection);
-               }
-
-               protected virtual bool Match (HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
-               {
-                       if (httpContext == null)
-                               throw new ArgumentNullException ("httpContext");
-                       if (route == null)
-                               throw new ArgumentNullException ("route");
-                       if (parameterName == null)
-                               throw new ArgumentNullException ("parameterName");
-                       if (values == null)
-                               throw new ArgumentNullException ("values");
-
-                       switch (routeDirection) {
-                       case RouteDirection.IncomingRequest:
-                               // LAMESPEC: .NET allows case-insensitive comparison, which violates RFC 2616
-                               return AllowedMethods.Contains (httpContext.Request.HttpMethod);
-
-                       case RouteDirection.UrlGeneration:
-                               // See: aspnetwebstack's WebAPI equivalent for details.
-                               object method;
-
-                               if (!values.TryGetValue (parameterName, out method))
-                                       return true;
-
-                               // LAMESPEC: .NET allows case-insensitive comparison, which violates RFC 2616
-                               return AllowedMethods.Contains (Convert.ToString (method));
-
-                       default:
-                               throw new ArgumentException ("Invalid routeDirection: " + routeDirection);
-                       }
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/IRouteConstraint.cs b/mcs/class/System.Web.Routing/System.Web.Routing/IRouteConstraint.cs
deleted file mode 100644 (file)
index 0011843..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-//
-// IRouteConstraint.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Web;
-
-namespace System.Web.Routing
-{
-       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       public interface IRouteConstraint
-       {
-               bool Match (HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection);
-       }
-}
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/IRouteHandler.cs b/mcs/class/System.Web.Routing/System.Web.Routing/IRouteHandler.cs
deleted file mode 100644 (file)
index a9a0d09..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-//
-// IRouteHandler.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Web;
-
-namespace System.Web.Routing
-{
-       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       public interface IRouteHandler
-       {
-               IHttpHandler GetHttpHandler (RequestContext requestContext);
-       }
-}
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/PatternParser.cs b/mcs/class/System.Web.Routing/System.Web.Routing/PatternParser.cs
deleted file mode 100644 (file)
index 080a7bf..0000000
+++ /dev/null
@@ -1,721 +0,0 @@
-//
-// PatternParser.cs
-//
-// Author:
-//      Atsushi Enomoto <atsushi@ximian.com>
-//      Marek Habersack <mhabersack@novell.com>
-//
-// Copyright (C) 2008-2010 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections.Generic;
-using System.Security.Permissions;
-using System.Text;
-using System.Text.RegularExpressions;
-using System.Web;
-using System.Web.Util;
-using System.Diagnostics;
-using System.Globalization;
-
-namespace System.Web.Routing
-{
-       sealed class PatternParser
-       {
-               struct PatternSegment
-               {
-                       public bool AllLiteral;
-                       public List <PatternToken> Tokens;
-               }
-               
-               static readonly char[] placeholderDelimiters = { '{', '}' };
-               
-               PatternSegment[] segments;
-               Dictionary <string, bool> parameterNames;
-               PatternToken[] tokens;
-               
-               int segmentCount;
-               bool haveSegmentWithCatchAll;
-               
-               public string Url {
-                       get;
-                       private set;
-               }
-               
-               public PatternParser (string pattern)
-               {
-                       this.Url = pattern;
-                       Parse ();
-               }
-
-               void Parse ()
-               {
-                       string url = Url;
-                       parameterNames = new Dictionary <string, bool> (StringComparer.OrdinalIgnoreCase);
-                       
-                       if (!String.IsNullOrEmpty (url)) {
-                               if (url [0] == '~' || url [0] == '/')
-                                       throw new ArgumentException ("Url must not start with '~' or '/'");
-                               if (url.IndexOf ('?') >= 0)
-                                       throw new ArgumentException ("Url must not contain '?'");
-                       } else {
-                               segments = new PatternSegment [0];
-                               tokens = new PatternToken [0];
-                               return;
-                       }
-                       
-                       string[] parts = url.Split ('/');
-                       int partsCount = segmentCount = parts.Length;
-                       var allTokens = new List <PatternToken> ();
-                       PatternToken tmpToken;
-                       
-                       segments = new PatternSegment [partsCount];
-                       
-                       for (int i = 0; i < partsCount; i++) {
-                               if (haveSegmentWithCatchAll)
-                                       throw new ArgumentException ("A catch-all parameter can only appear as the last segment of the route URL");
-                               
-                               int catchAlls = 0;
-                               string part = parts [i];
-                               int partLength = part.Length;
-                               var tokens = new List <PatternToken> ();
-
-                               if (partLength == 0 && i < partsCount - 1)
-                                       throw new ArgumentException ("Consecutive URL segment separators '/' are not allowed");
-
-                               if (part.IndexOf ("{}") != -1)
-                                       throw new ArgumentException ("Empty URL parameter name is not allowed");
-
-                               if (i > 0)
-                                       allTokens.Add (null);
-                               
-                               if (part.IndexOfAny (placeholderDelimiters) == -1) {
-                                       // no placeholders here, short-circuit it
-                                       tmpToken = new PatternToken (PatternTokenType.Literal, part);
-                                       tokens.Add (tmpToken);
-                                       allTokens.Add (tmpToken);
-                                       segments [i].AllLiteral = true;
-                                       segments [i].Tokens = tokens;
-                                       continue;
-                               }
-
-                               string tmp;
-                               int from = 0, start;
-                               bool allLiteral = true;
-                               while (from < partLength) {
-                                       start = part.IndexOf ('{', from);
-                                       if (start >= partLength - 2)
-                                               throw new ArgumentException ("Unterminated URL parameter. It must contain matching '}'");
-
-                                       if (start < 0) {
-                                               if (part.IndexOf ('}', from) >= from)
-                                                       throw new ArgumentException ("Unmatched URL parameter closer '}'. A corresponding '{' must precede");
-                                               tmp = part.Substring (from);
-                                               tmpToken = new PatternToken (PatternTokenType.Literal, tmp);
-                                               tokens.Add (tmpToken);
-                                               allTokens.Add (tmpToken);
-                                               from += tmp.Length;
-                                               break;
-                                       }
-
-                                       if (from == 0 && start > 0) {
-                                               tmpToken = new PatternToken (PatternTokenType.Literal, part.Substring (0, start));
-                                               tokens.Add (tmpToken);
-                                               allTokens.Add (tmpToken);
-                                       }
-                                       
-                                       int end = part.IndexOf ('}', start + 1);
-                                       int next = part.IndexOf ('{', start + 1);
-                                       
-                                       if (end < 0 || next >= 0 && next < end)
-                                               throw new ArgumentException ("Unterminated URL parameter. It must contain matching '}'");
-                                       if (next == end + 1)
-                                               throw new ArgumentException ("Two consecutive URL parameters are not allowed. Split into a different segment by '/', or a literal string.");
-
-                                       if (next == -1)
-                                               next = partLength;
-                                       
-                                       string token = part.Substring (start + 1, end - start - 1);
-                                       PatternTokenType type;
-                                       if (token [0] == '*') {
-                                               catchAlls++;
-                                               haveSegmentWithCatchAll = true;
-                                               type = PatternTokenType.CatchAll;
-                                               token = token.Substring (1);
-                                       } else
-                                               type = PatternTokenType.Standard;
-
-                                       if (!parameterNames.ContainsKey (token))
-                                               parameterNames.Add (token, true);
-
-                                       tmpToken = new PatternToken (type, token);
-                                       tokens.Add (tmpToken);
-                                       allTokens.Add (tmpToken);
-                                       allLiteral = false;
-                                       
-                                       if (end < partLength - 1) {
-                                               token = part.Substring (end + 1, next - end - 1);
-                                               tmpToken = new PatternToken (PatternTokenType.Literal, token);
-                                               tokens.Add (tmpToken);
-                                               allTokens.Add (tmpToken);
-                                               end += token.Length;
-                                       }
-
-                                       if (catchAlls > 1 || (catchAlls == 1 && tokens.Count > 1))
-                                               throw new ArgumentException ("A path segment that contains more than one section, such as a literal section or a parameter, cannot contain a catch-all parameter.");
-                                       from = end + 1;
-                               }
-                               
-                               segments [i].AllLiteral = allLiteral;
-                               segments [i].Tokens = tokens;
-                       }
-
-                       if (allTokens.Count > 0)
-                               this.tokens = allTokens.ToArray ();
-                       allTokens = null;
-               }
-
-               RouteValueDictionary AddDefaults (RouteValueDictionary dict, RouteValueDictionary defaults)
-               {
-                       if (defaults != null && defaults.Count > 0) {
-                               string key;
-                               foreach (var def in defaults) {
-                                       key = def.Key;
-                                       if (dict.ContainsKey (key))
-                                               continue;
-                                       dict.Add (key, def.Value);
-                               }
-                       }
-
-                       return dict;
-               }
-
-               static bool ParametersAreEqual (object a, object b)
-               {
-                       if (a is string && b is string) {
-                               return String.Equals (a as string, b as string, StringComparison.OrdinalIgnoreCase);
-                       } else {
-                               // Parameter may be a boxed value type, need to use .Equals() for comparison
-                               return object.Equals (a, b);
-                       }
-               }
-
-               static bool ParameterIsNonEmpty (object param)
-               {
-                       if (param is string)
-                               return !string.IsNullOrEmpty (param as string);
-
-                       return param != null;
-               }
-
-               bool IsParameterRequired (string parameterName, RouteValueDictionary defaultValues, out object defaultValue)
-               {
-                       foreach (var token in tokens) {
-                               if (token == null)
-                                       continue;
-
-                               if (string.Equals (token.Name, parameterName, StringComparison.OrdinalIgnoreCase)) {
-                                       if (token.Type == PatternTokenType.CatchAll) {
-                                               defaultValue = null;
-                                               return false;
-                                       }
-                               }
-                       }
-
-                       if (defaultValues == null)
-                               throw new ArgumentNullException ("defaultValues is null?!");
-
-                       return !defaultValues.TryGetValue (parameterName, out defaultValue);
-               }
-
-               static string EscapeReservedCharacters (Match m)
-               {
-                       if (m == null)
-                               throw new ArgumentNullException("m");
-
-                       return Uri.HexEscape (m.Value[0]);
-               }
-
-               static string UriEncode (string str)
-               {
-                       if (string.IsNullOrEmpty (str))
-                               return str;
-
-                       string escape = Uri.EscapeUriString (str);
-                       return Regex.Replace (escape, "([#?])", new MatchEvaluator (EscapeReservedCharacters));
-               }
-
-               bool MatchSegment (int segIndex, int argsCount, string[] argSegs, List <PatternToken> tokens, RouteValueDictionary ret)
-               {
-                       string pathSegment = argSegs [segIndex];
-                       int pathSegmentLength = pathSegment != null ? pathSegment.Length : -1;
-                       int startIndex = pathSegmentLength - 1;
-                       PatternTokenType tokenType;
-                       int tokensCount = tokens.Count;
-                       PatternToken token;
-                       string tokenName;
-
-                       for (int tokenIndex = tokensCount - 1; tokenIndex > -1; tokenIndex--) {
-                               token = tokens [tokenIndex];
-                               if (startIndex < 0)
-                                       return false;
-
-                               tokenType = token.Type;
-                               tokenName = token.Name;
-
-                               if (segIndex > segmentCount - 1 || tokenType == PatternTokenType.CatchAll) {
-                                       var sb = new StringBuilder ();
-
-                                       for (int j = segIndex; j < argsCount; j++) {
-                                               if (j > segIndex)
-                                                       sb.Append ('/');
-                                               sb.Append (argSegs [j]);
-                                       }
-                                               
-                                       ret.Add (tokenName, sb.ToString ());
-                                       break;
-                               }
-
-                               int scanIndex;
-                               if (token.Type == PatternTokenType.Literal) {
-                                       int nameLen = tokenName.Length;
-                                       if (startIndex + 1 < nameLen)
-                                               return false;
-                                       scanIndex = startIndex - nameLen + 1;
-                                       if (String.Compare (pathSegment, scanIndex, tokenName, 0, nameLen, StringComparison.OrdinalIgnoreCase) != 0)
-                                               return false;
-                                       startIndex = scanIndex - 1;
-                                       continue;
-                               }
-
-                               // Standard token
-                               int nextTokenIndex = tokenIndex - 1;
-                               if (nextTokenIndex < 0) {
-                                       // First token
-                                       ret.Add (tokenName, pathSegment.Substring (0, startIndex + 1));
-                                       continue;
-                               }
-
-                               if (startIndex == 0)
-                                       return false;
-                               
-                               var nextToken = tokens [nextTokenIndex];
-                               string nextTokenName = nextToken.Name;
-
-                               // Skip one char, since there can be no empty segments and if the
-                               // current token's value happens to be the same as preceeding
-                               // literal text, we'll save some time and complexity.
-                               scanIndex = startIndex - 1;
-                               int lastIndex = pathSegment.LastIndexOf (nextTokenName, scanIndex, StringComparison.OrdinalIgnoreCase);
-                               if (lastIndex == -1)
-                                       return false;
-
-                               lastIndex += nextTokenName.Length - 1;
-                                               
-                               string sectionValue = pathSegment.Substring (lastIndex + 1, startIndex - lastIndex);
-                               if (String.IsNullOrEmpty (sectionValue))
-                                       return false;
-
-                               ret.Add (tokenName, sectionValue);
-                               startIndex = lastIndex;
-                       }
-                       
-                       return true;
-               }
-
-               public RouteValueDictionary Match (string path, RouteValueDictionary defaults)
-               {
-                       var ret = new RouteValueDictionary ();
-                       string url = Url;
-                       string [] argSegs;
-                       int argsCount;
-                       
-                       if (String.IsNullOrEmpty (path)) {
-                               argSegs = null;
-                               argsCount = 0;
-                       } else {
-                               // quick check
-                               if (String.Compare (url, path, StringComparison.Ordinal) == 0 && url.IndexOf ('{') < 0)
-                                       return AddDefaults (ret, defaults);
-
-                               argSegs = path.Split ('/');
-                               argsCount = argSegs.Length;
-
-                               if (String.IsNullOrEmpty (argSegs [argsCount - 1]))
-                                       argsCount--; // path ends with a trailinig '/'
-                       }
-                       bool haveDefaults = defaults != null && defaults.Count > 0;
-
-                       if (argsCount == 1 && String.IsNullOrEmpty (argSegs [0]))
-                               argsCount = 0;
-                       
-                       if (!haveDefaults && ((haveSegmentWithCatchAll && argsCount < segmentCount) || (!haveSegmentWithCatchAll && argsCount != segmentCount)))
-                               return null;
-
-                       int i = 0;
-
-                       foreach (PatternSegment segment in segments) {
-                               if (i >= argsCount)
-                                       break;
-                               
-                               if (segment.AllLiteral) {
-                                       if (String.Compare (argSegs [i], segment.Tokens [0].Name, StringComparison.OrdinalIgnoreCase) != 0)
-                                               return null;
-                                       i++;
-                                       continue;
-                               }
-
-                               if (!MatchSegment (i, argsCount, argSegs, segment.Tokens, ret))
-                                       return null;
-                               i++;
-                       }
-
-                       // Check the remaining segments, if any, and see if they are required
-                       //
-                       // If a segment has more than one section (i.e. there's at least one
-                       // literal, then it cannot match defaults
-                       //
-                       // All of the remaining segments must have all defaults provided and they
-                       // must not be literals or the match will fail.
-                       if (i < segmentCount) {
-                               if (!haveDefaults)
-                                       return null;
-                               
-                               for (;i < segmentCount; i++) {
-                                       var segment = segments [i];
-                                       if (segment.AllLiteral)
-                                               return null;
-                                       
-                                       var tokens = segment.Tokens;
-                                       if (tokens.Count != 1)
-                                               return null;
-
-                                       // if token is catch-all, we're done.
-                                       if (tokens [0].Type == PatternTokenType.CatchAll)
-                                               break;
-
-                                       if (!defaults.ContainsKey (tokens [0].Name))
-                                               return null;
-                               }
-                       } else if (!haveSegmentWithCatchAll && argsCount > segmentCount)
-                               return null;
-                       
-                       return AddDefaults (ret, defaults);
-               }
-               
-               public string BuildUrl (Route route, RequestContext requestContext, RouteValueDictionary userValues, RouteValueDictionary constraints, out RouteValueDictionary usedValues)
-               {
-                       usedValues = null;
-
-                       if (requestContext == null)
-                               return null;
-
-                       RouteData routeData = requestContext.RouteData;
-                       var currentValues = routeData.Values ?? new RouteValueDictionary ();
-                       var values = userValues ?? new RouteValueDictionary ();
-                       var defaultValues = (route != null ? route.Defaults : null) ?? new RouteValueDictionary ();
-
-                       // The set of values we should be using when generating the URL in this route
-                       var acceptedValues = new RouteValueDictionary ();
-
-                       // Keep track of which new values have been used
-                       HashSet<string> unusedNewValues = new HashSet<string> (values.Keys, StringComparer.OrdinalIgnoreCase);
-
-                       // This route building logic is based on System.Web.Http's Routing code (which is Apache Licensed by MS)
-                       // and which can be found at mono's external/aspnetwebstack/src/System.Web.Http/Routing/HttpParsedRoute.cs
-                       // Hopefully this will ensure a much higher compatiblity with MS.NET's System.Web.Routing logic. (pruiz)
-
-                       #region Step 1: Get the list of values we're going to use to match and generate this URL
-                       // Find out which entries in the URL are valid for the URL we want to generate.
-                       // If the URL had ordered parameters a="1", b="2", c="3" and the new values
-                       // specified that b="9", then we need to invalidate everything after it. The new
-                       // values should then be a="1", b="9", c=<no value>.
-                       foreach (var item in parameterNames) {
-                               var parameterName = item.Key;
-
-                               object newParameterValue;
-                               bool hasNewParameterValue = values.TryGetValue (parameterName, out newParameterValue);
-                               if (hasNewParameterValue) {
-                                       unusedNewValues.Remove(parameterName);
-                               }
-
-                               object currentParameterValue;
-                               bool hasCurrentParameterValue = currentValues.TryGetValue (parameterName, out currentParameterValue);
-
-                               if (hasNewParameterValue && hasCurrentParameterValue) {
-                                       if (!ParametersAreEqual (currentParameterValue, newParameterValue)) {
-                                               // Stop copying current values when we find one that doesn't match
-                                               break;
-                                       }
-                               }
-
-                               // If the parameter is a match, add it to the list of values we will use for URL generation
-                               if (hasNewParameterValue) {
-                                       if (ParameterIsNonEmpty (newParameterValue)) {
-                                               acceptedValues.Add (parameterName, newParameterValue);
-                                       }
-                               }
-                               else {
-                                       if (hasCurrentParameterValue) {
-                                               acceptedValues.Add (parameterName, currentParameterValue);
-                                       }
-                               }
-                       }
-
-                       // Add all remaining new values to the list of values we will use for URL generation
-                       foreach (var newValue in values) {
-                               if (ParameterIsNonEmpty (newValue.Value) && !acceptedValues.ContainsKey (newValue.Key)) {
-                                       acceptedValues.Add (newValue.Key, newValue.Value);
-                               }
-                       }
-
-                       // Add all current values that aren't in the URL at all
-                       foreach (var currentValue in currentValues) {
-                               if (!acceptedValues.ContainsKey (currentValue.Key) && !parameterNames.ContainsKey (currentValue.Key)) {
-                                       acceptedValues.Add (currentValue.Key, currentValue.Value);
-                               }
-                       }
-
-                       // Add all remaining default values from the route to the list of values we will use for URL generation
-                       foreach (var item in parameterNames) {
-                               object defaultValue;
-                               if (!acceptedValues.ContainsKey (item.Key) && !IsParameterRequired (item.Key, defaultValues, out defaultValue)) {
-                                       // Add the default value only if there isn't already a new value for it and
-                                       // only if it actually has a default value, which we determine based on whether
-                                       // the parameter value is required.
-                                       acceptedValues.Add (item.Key, defaultValue);
-                               }
-                       }
-
-                       // All required parameters in this URL must have values from somewhere (i.e. the accepted values)
-                       foreach (var item in parameterNames) {
-                               object defaultValue;
-                               if (IsParameterRequired (item.Key, defaultValues, out defaultValue) && !acceptedValues.ContainsKey (item.Key)) {
-                                       // If the route parameter value is required that means there's
-                                       // no default value, so if there wasn't a new value for it
-                                       // either, this route won't match.
-                                       return null;
-                               }
-                       }
-
-                       // All other default values must match if they are explicitly defined in the new values
-                       var otherDefaultValues = new RouteValueDictionary (defaultValues);
-                       foreach (var item in parameterNames) {
-                               otherDefaultValues.Remove (item.Key);
-                       }
-
-                       foreach (var defaultValue in otherDefaultValues) {
-                               object value;
-                               if (values.TryGetValue (defaultValue.Key, out value)) {
-                                       unusedNewValues.Remove (defaultValue.Key);
-                                       if (!ParametersAreEqual (value, defaultValue.Value)) {
-                                               // If there is a non-parameterized value in the route and there is a
-                                               // new value for it and it doesn't match, this route won't match.
-                                               return null;
-                                       }
-                               }
-                       }
-                       #endregion
-
-                       #region Step 2: If the route is a match generate the appropriate URL
-
-                       var uri = new StringBuilder ();
-                       var pendingParts = new StringBuilder ();
-                       var pendingPartsAreAllSafe = false;
-                       bool blockAllUriAppends = false;
-                       var allSegments = new List<PatternSegment?> ();
-
-                       // Build a list of segments plus separators we can use as template.
-                       foreach (var segment in segments) {
-                               if (allSegments.Count > 0)
-                                       allSegments.Add (null); // separator exposed as null.
-                               allSegments.Add (segment);
-                       }
-
-                       // Finally loop thru al segment-templates building the actual uri.
-                       foreach (var item in allSegments) {
-                               var segment = item.GetValueOrDefault ();
-
-                               // If segment is a separator..
-                               if (item == null) {
-                                       if (pendingPartsAreAllSafe) {
-                                               // Accept
-                                               if (pendingParts.Length > 0) {
-                                                       if (blockAllUriAppends)
-                                                               return null;
-
-                                                       // Append any pending literals to the URL
-                                                       uri.Append (pendingParts.ToString ());
-                                                       pendingParts.Length = 0;
-                                               }
-                                       }
-                                       pendingPartsAreAllSafe = false;
-
-                                       // Guard against appending multiple separators for empty segments
-                                       if (pendingParts.Length > 0 && pendingParts[pendingParts.Length - 1] == '/') {
-                                               // Dev10 676725: Route should not be matched if that causes mismatched tokens
-                                               // Dev11 86819: We will allow empty matches if all subsequent segments are null
-                                               if (blockAllUriAppends)
-                                                       return null;
-
-                                               // Append any pending literals to the URI (without the trailing slash) and prevent any future appends
-                                               uri.Append(pendingParts.ToString (0, pendingParts.Length - 1));
-                                               pendingParts.Length = 0;
-                                       } else {
-                                               pendingParts.Append ("/");
-                                       }
-#if false
-                               } else if (segment.AllLiteral) {
-                                       // Spezial (optimized) case: all elements of segment are literals.
-                                       pendingPartsAreAllSafe = true;
-                                       foreach (var tk in segment.Tokens)
-                                               pendingParts.Append (tk.Name);
-#endif
-                               } else {
-                                       // Segments are treated as all-or-none. We should never output a partial segment.
-                                       // If we add any subsegment of this segment to the generated URL, we have to add
-                                       // the complete match. For example, if the subsegment is "{p1}-{p2}.xml" and we
-                                       // used a value for {p1}, we have to output the entire segment up to the next "/".
-                                       // Otherwise we could end up with the partial segment "v1" instead of the entire
-                                       // segment "v1-v2.xml".
-                                       bool addedAnySubsegments = false;
-
-                                       foreach (var token in segment.Tokens) {
-                                               if (token.Type == PatternTokenType.Literal) {
-                                                       // If it's a literal we hold on to it until we are sure we need to add it
-                                                       pendingPartsAreAllSafe = true;
-                                                       pendingParts.Append (token.Name);
-                                               } else {
-                                                       if (token.Type == PatternTokenType.Standard || token.Type == PatternTokenType.CatchAll) {
-                                                               if (pendingPartsAreAllSafe) {
-                                                                       // Accept
-                                                                       if (pendingParts.Length > 0) {
-                                                                               if (blockAllUriAppends)
-                                                                                       return null;
-
-                                                                               // Append any pending literals to the URL
-                                                                               uri.Append (pendingParts.ToString ());
-                                                                               pendingParts.Length = 0;
-
-                                                                               addedAnySubsegments = true;
-                                                                       }
-                                                               }
-                                                               pendingPartsAreAllSafe = false;
-
-                                                               // If it's a parameter, get its value
-                                                               object acceptedParameterValue;
-                                                               bool hasAcceptedParameterValue = acceptedValues.TryGetValue (token.Name, out acceptedParameterValue);
-                                                               if (hasAcceptedParameterValue)
-                                                                       unusedNewValues.Remove (token.Name);
-
-                                                               object defaultParameterValue;
-                                                               defaultValues.TryGetValue (token.Name, out defaultParameterValue);
-
-                                                               if (ParametersAreEqual (acceptedParameterValue, defaultParameterValue)) {
-                                                                       // If the accepted value is the same as the default value, mark it as pending since
-                                                                       // we won't necessarily add it to the URL we generate.
-                                                                       pendingParts.Append (Convert.ToString (acceptedParameterValue, CultureInfo.InvariantCulture));
-                                                               } else {
-                                                                       if (blockAllUriAppends)
-                                                                               return null;
-
-                                                                       // Add the new part to the URL as well as any pending parts
-                                                                       if (pendingParts.Length > 0) {
-                                                                               // Append any pending literals to the URL
-                                                                               uri.Append (pendingParts.ToString ());
-                                                                               pendingParts.Length = 0;
-                                                                       }
-                                                                       uri.Append (Convert.ToString (acceptedParameterValue, CultureInfo.InvariantCulture));
-
-                                                                       addedAnySubsegments = true;
-                                                               }
-                                                       } else {
-                                                               Debug.Fail ("Invalid path subsegment type");
-                                                       }
-                                               }
-                                       }
-
-                                       if (addedAnySubsegments) {
-                                               // See comment above about why we add the pending parts
-                                               if (pendingParts.Length > 0) {
-                                                       if (blockAllUriAppends)
-                                                               return null;
-
-                                                       // Append any pending literals to the URL
-                                                       uri.Append (pendingParts.ToString ());
-                                                       pendingParts.Length = 0;
-                                               }
-                                       }
-                               }
-                       }
-
-                       if (pendingPartsAreAllSafe) {
-                               // Accept
-                               if (pendingParts.Length > 0) {
-                                       if (blockAllUriAppends)
-                                               return null;
-
-                                       // Append any pending literals to the URI
-                                       uri.Append (pendingParts.ToString ());
-                               }
-                       }
-
-                       // Process constraints keys
-                       if (constraints != null) {
-                               // If there are any constraints, mark all the keys as being used so that we don't
-                               // generate query string items for custom constraints that don't appear as parameters
-                               // in the URI format.
-                               foreach (var constraintsItem in constraints) {
-                                       unusedNewValues.Remove (constraintsItem.Key);
-                               }
-                       }
-
-                       // Encode the URI before we append the query string, otherwise we would double encode the query string
-                       var encodedUri = new StringBuilder ();
-                       encodedUri.Append (UriEncode (uri.ToString ()));
-                       uri = encodedUri;
-
-                       // Add remaining new values as query string parameters to the URI
-                       if (unusedNewValues.Count > 0) {
-                               // Generate the query string
-                               bool firstParam = true;
-                               foreach (string unusedNewValue in unusedNewValues) {
-                                       object value;
-                                       if (acceptedValues.TryGetValue (unusedNewValue, out value)) {
-                                               uri.Append (firstParam ? '?' : '&');
-                                               firstParam = false;
-                                               uri.Append (Uri.EscapeDataString (unusedNewValue));
-                                               uri.Append ('=');
-                                               uri.Append (Uri.EscapeDataString (Convert.ToString (value, CultureInfo.InvariantCulture)));
-                                       }
-                               }
-                       }
-
-                       #endregion
-
-                       usedValues = acceptedValues;
-                       return uri.ToString();
-               }
-       }
-}
-
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/PatternToken.cs b/mcs/class/System.Web.Routing/System.Web.Routing/PatternToken.cs
deleted file mode 100644 (file)
index 5f40cee..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// PatternToken.cs
-//
-// Author:
-//     Marek Habersack <mhabersack@novell.com>
-//
-// Copyright (C) 2009 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Text;
-using System.Web;
-
-namespace System.Web.Routing
-{
-       sealed class PatternToken
-       {
-               public PatternTokenType Type {
-                       get;
-                       private set;
-               }
-
-               public string Name {
-                       get;
-                       private set;
-               }
-
-               public PatternToken (PatternTokenType type, string name)
-               {
-                       this.Type = type;
-                       this.Name = name;
-               }
-
-               public override string ToString ()
-               {
-                       StringBuilder sb = new StringBuilder ();
-
-                       switch (Type) {
-                               case PatternTokenType.Standard:
-                                       sb.Append ("PatternToken_Standard");
-                                       break;
-
-                               case PatternTokenType.Literal:
-                                       sb.Append ("PatternToken_Literal");
-                                       break;
-
-                               case PatternTokenType.CatchAll:
-                                       sb.Append ("PatternToken_CatchAll");
-                                       break;
-
-                               default:
-                                       sb.Append ("PatternToken_UNKNOWN");
-                                       break;
-                       }
-
-                       sb.AppendFormat (" [Name = '{0}']", Name);
-
-                       return sb.ToString ();
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/PatternTokenType.cs b/mcs/class/System.Web.Routing/System.Web.Routing/PatternTokenType.cs
deleted file mode 100644 (file)
index 7321ca1..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-//
-// PatternTokenType.cs
-//
-// Author:
-//     Marek Habersack <mhabersack@novell.com>
-//
-// Copyright (C) 2009 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-
-namespace System.Web.Routing
-{
-       enum PatternTokenType
-       {
-               Standard,
-               Literal,
-               CatchAll
-       }
-}
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/RequestContext.cs b/mcs/class/System.Web.Routing/System.Web.Routing/RequestContext.cs
deleted file mode 100644 (file)
index 62c6957..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-//
-// RequestContext.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Web;
-
-namespace System.Web.Routing
-{
-       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class RequestContext
-       {
-               public RequestContext ()
-               {
-                       HttpContext = null;
-                       RouteData = null;
-               }
-               public RequestContext (HttpContextBase httpContext, RouteData routeData)
-               {
-                       if (httpContext == null)
-                               throw new ArgumentNullException ("httpContext");
-                       if (routeData == null)
-                               throw new ArgumentNullException ("routeData");
-
-                       HttpContext = httpContext;
-                       RouteData = routeData;
-               }
-
-               public virtual HttpContextBase HttpContext { get; set; }
-               public virtual RouteData RouteData { get; set; }
-       }
-}
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/Route.cs b/mcs/class/System.Web.Routing/System.Web.Routing/Route.cs
deleted file mode 100644 (file)
index 0e28483..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-//
-// Route.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Text.RegularExpressions;
-using System.Web;
-using System.Globalization;
-
-namespace System.Web.Routing
-{
-       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class Route : RouteBase
-       {
-               static readonly Type httpRequestBaseType = typeof (HttpRequestBase);
-               PatternParser url;
-
-               public RouteValueDictionary Constraints { get; set; }
-
-               public RouteValueDictionary DataTokens { get; set; }
-
-               public RouteValueDictionary Defaults { get; set; }
-
-               public IRouteHandler RouteHandler { get; set; }
-
-               public string Url {
-                       get { return url != null ? url.Url : String.Empty; }
-                       set { url = value != null ? new PatternParser (value) : new PatternParser (String.Empty); }
-               }
-
-               public Route (string url, IRouteHandler routeHandler)
-                       : this (url, null, routeHandler)
-               {
-               }
-
-               public Route (string url, RouteValueDictionary defaults, IRouteHandler routeHandler)
-                       : this (url, defaults, null, routeHandler)
-               {
-               }
-
-               public Route (string url, RouteValueDictionary defaults, RouteValueDictionary constraints, IRouteHandler routeHandler)
-                       : this (url, defaults, constraints, null, routeHandler)
-               {
-               }
-
-               public Route (string url, RouteValueDictionary defaults, RouteValueDictionary constraints, RouteValueDictionary dataTokens, IRouteHandler routeHandler)
-               {
-                       Url = url;
-                       Defaults = defaults;
-                       Constraints = constraints;
-                       DataTokens = dataTokens;
-                       RouteHandler = routeHandler;
-               }
-
-               public override RouteData GetRouteData (HttpContextBase httpContext)
-               {
-                       var path = httpContext.Request.AppRelativeCurrentExecutionFilePath;
-                       var pathInfo = httpContext.Request.PathInfo;
-
-                       if (!String.IsNullOrEmpty (pathInfo))
-                               path += pathInfo;
-
-                       // probably code like this causes ArgumentOutOfRangeException under .NET.
-                       // It somehow allows such path that is completely equivalent to the Url. Dunno why.
-                       if (Url != path && path.Substring (0, 2) != "~/")
-                               return null;
-                       path = path.Substring (2);
-
-                       var values = url.Match (path, Defaults);
-                       if (values == null)
-                               return null;
-
-                       if (!ProcessConstraints (httpContext, values, RouteDirection.IncomingRequest))
-                               return null;
-                       
-                       var rd = new RouteData (this, RouteHandler);
-                       RouteValueDictionary rdValues = rd.Values;
-                       
-                       foreach (var p in values)
-                               rdValues.Add (p.Key, p.Value);
-
-                       RouteValueDictionary dataTokens = DataTokens;
-                       if (dataTokens != null) {
-                               RouteValueDictionary rdDataTokens = rd.DataTokens;
-                               foreach (var token in dataTokens)
-                                       rdDataTokens.Add (token.Key, token.Value);
-                       }
-                       
-                       return rd;
-               }
-
-               public override VirtualPathData GetVirtualPath (RequestContext requestContext, RouteValueDictionary values)
-               {
-                       if (requestContext == null)
-                               throw new ArgumentNullException ("requestContext");
-                       if (url == null)
-                               return new VirtualPathData (this, String.Empty);
-
-                       // null values is allowed.
-                       // if (values == null)
-                       //      values = requestContext.RouteData.Values;
-
-                       RouteValueDictionary usedValues;
-                       string resultUrl = url.BuildUrl (this, requestContext, values, Constraints, out usedValues);
-
-                       if (resultUrl == null)
-                               return null;
-
-                       if (!ProcessConstraints (requestContext.HttpContext, usedValues, RouteDirection.UrlGeneration))
-                               return null;
-
-                       var result = new VirtualPathData (this, resultUrl);
-
-                       RouteValueDictionary dataTokens = DataTokens;
-                       if (dataTokens != null) {
-                               foreach (var item in dataTokens)
-                                       result.DataTokens[item.Key] = item.Value;
-                       }
-
-                       return result;
-               }
-
-               private bool ProcessConstraintInternal (HttpContextBase httpContext, Route route, object constraint, string parameterName,
-                                                               RouteValueDictionary values, RouteDirection routeDirection, RequestContext reqContext,
-                                                               out bool invalidConstraint)
-               {
-                       invalidConstraint = false;
-                       IRouteConstraint irc = constraint as IRouteConstraint;
-                       if (irc != null)
-                               return irc.Match (httpContext, route, parameterName, values, routeDirection);
-
-                       string s = constraint as string;
-                       if (s != null) {
-                               string v = null;
-                               object o;
-
-                               // NOTE: If constraint was not an IRouteConstraint, is is asumed
-                               // to be an object 'convertible' to string, or at least this is how
-                               // ASP.NET seems to work by the tests i've done latelly. (pruiz)
-
-                               if (values != null && values.TryGetValue (parameterName, out o))
-                                       v = Convert.ToString (o, CultureInfo.InvariantCulture);
-
-                               if (!String.IsNullOrEmpty (v))
-                                       return MatchConstraintRegex (v, s);
-                               else if (reqContext != null) {
-                                       RouteData rd = reqContext != null ? reqContext.RouteData : null;
-                                       RouteValueDictionary rdValues = rd != null ? rd.Values : null;
-
-                                       if (rdValues == null || rdValues.Count == 0)
-                                               return false;
-                                       
-                                       if (!rdValues.TryGetValue (parameterName, out o))
-                                               return false;
-
-                                       v = Convert.ToString (o, CultureInfo.InvariantCulture);
-                                       if (String.IsNullOrEmpty (v))
-                                               return false;
-
-                                       return MatchConstraintRegex (v, s);
-                               }
-                               return false;
-                       }
-
-                       invalidConstraint = true;
-                       return false;
-               }
-
-               static bool MatchConstraintRegex (string value, string constraint)
-               {
-                       int len = constraint.Length;
-                       if (len > 0) {
-                               // Bug #651966 - regexp constraints must be treated
-                               // as absolute expressions
-                               if (constraint [0] != '^') {
-                                       constraint = "^" + constraint;
-                                       len++;
-                               }
-
-                               if (constraint [len - 1] != '$')
-                                       constraint += "$";
-                       }
-
-                       return Regex.IsMatch (value, constraint, RegexOptions.CultureInvariant | RegexOptions.IgnoreCase | RegexOptions.Compiled);
-               }
-               
-               protected virtual bool ProcessConstraint (HttpContextBase httpContext, object constraint, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
-               {
-                       if (parameterName == null)
-                               throw new ArgumentNullException ("parameterName");
-
-                       // .NET "compatibility"
-                       if (values == null)
-                               throw new NullReferenceException ();
-
-                       RequestContext reqContext;
-                       reqContext = SafeGetContext (httpContext != null ? httpContext.Request : null);
-                       bool invalidConstraint;
-                       bool ret = ProcessConstraintInternal (httpContext, this, constraint, parameterName, values, routeDirection, reqContext, out invalidConstraint);
-                       
-                       if (invalidConstraint)
-                               throw new InvalidOperationException (
-                                       String.Format (
-                                               "Constraint parameter '{0}' on the route with URL '{1}' must have a string value type or be a type which implements IRouteConstraint",
-                                               parameterName, Url
-                                       )
-                               );
-
-                       return ret;
-               }
-
-               private bool ProcessConstraints (HttpContextBase httpContext, RouteValueDictionary values, RouteDirection routeDirection)
-               {
-                       var constraints = Constraints;
-
-                       if (Constraints != null) {
-                               foreach (var p in constraints)
-                                       if (!ProcessConstraint (httpContext, p.Value, p.Key, values, routeDirection))
-                                               return false;
-                       }
-
-                       return true;
-               }
-
-               RequestContext SafeGetContext (HttpRequestBase req)
-               {
-                       if (req == null || req.GetType () != httpRequestBaseType)
-                               return null;
-                               
-                       return req.RequestContext;
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/RouteBase.cs b/mcs/class/System.Web.Routing/System.Web.Routing/RouteBase.cs
deleted file mode 100644 (file)
index 7e7d921..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-//
-// RouteBase.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Web;
-
-namespace System.Web.Routing
-{
-       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public abstract class RouteBase
-       {
-               public abstract RouteData GetRouteData (HttpContextBase httpContext);
-               public abstract VirtualPathData GetVirtualPath (RequestContext requestContext, RouteValueDictionary values);
-       }
-}
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/RouteCollection.cs b/mcs/class/System.Web.Routing/System.Web.Routing/RouteCollection.cs
deleted file mode 100644 (file)
index d53c063..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-//
-// RouteCollection.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.IO;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Web;
-using System.Web.Hosting;
-
-namespace System.Web.Routing
-{
-       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class RouteCollection : Collection<RouteBase>
-       {
-               class Lock : IDisposable
-               {
-                       //RouteCollection owner;
-                       //bool read;
-
-                       public Lock (RouteCollection owner, bool read)
-                       {
-                               //this.owner = owner;
-                               //this.read = read;
-                       }
-
-                       public void Dispose ()
-                       {
-                               //if (read)
-                               //      owner.read_lock = null;
-                               //else
-                               //      owner_write_lock = null;
-                       }
-               }
-
-               public RouteCollection ()
-                       : this (null)
-               {
-               }
-
-               public RouteCollection (VirtualPathProvider virtualPathProvider)
-               {
-                       // null argument is allowed
-                       //provider = virtualPathProvider;
-
-                       read_lock = new Lock (this, true);
-                       write_lock = new Lock (this, false);
-               }
-
-               //VirtualPathProvider provider;
-               Dictionary<string,RouteBase> d = new Dictionary<string,RouteBase> ();
-
-               Lock read_lock, write_lock;
-
-               public RouteBase this [string name] {
-                       get {
-                               foreach (var p in d)
-                                       if (p.Key == name)
-                                               return p.Value;
-                               return null;
-                       }
-               }
-
-               public bool LowercaseUrls { get; set; }
-               public bool AppendTrailingSlash { get; set; }
-               public bool RouteExistingFiles { get; set; }
-
-               public void Add (string name, RouteBase item)
-               {
-                       lock (GetWriteLock ()) {
-                               base.Add (item);
-                               if (!String.IsNullOrEmpty (name))
-                                       d.Add (name, item);
-                       }
-               }
-
-               protected override void ClearItems ()
-               {
-                       lock (GetWriteLock ())
-                               base.ClearItems ();
-               }
-
-               public IDisposable GetReadLock ()
-               {
-                       return read_lock;
-               }
-
-               public RouteData GetRouteData (HttpContextBase httpContext)
-               {
-                       if (httpContext == null)
-                               throw new ArgumentNullException ("httpContext");
-
-                       if (httpContext.Request == null)
-                               throw new ArgumentException ("The context does not contain any request data.", "httpContext");
-                       if (Count == 0)
-                               return null;
-                       if (!RouteExistingFiles) {
-                               var path = httpContext.Request.AppRelativeCurrentExecutionFilePath;
-                               VirtualPathProvider vpp = HostingEnvironment.VirtualPathProvider;
-                               if (path != "~/" && vpp != null && (vpp.FileExists (path) || vpp.DirectoryExists (path)))
-                                       return null;
-                       }
-                       foreach (RouteBase rb in this) {
-                               var rd = rb.GetRouteData (httpContext);
-                               if (rd != null)
-                                       return rd;
-                       }
-
-                       return null;
-               }
-
-               public VirtualPathData GetVirtualPath (RequestContext requestContext, RouteValueDictionary values)
-               {
-                       return GetVirtualPath (requestContext, null, values);
-               }
-
-               public VirtualPathData GetVirtualPath (RequestContext requestContext, string name, RouteValueDictionary values)
-               {
-                       if (requestContext == null)
-                               throw new ArgumentNullException ("httpContext");
-                       VirtualPathData vp = null;
-                       if (!String.IsNullOrEmpty (name)) {
-                               RouteBase rb = this [name];
-                               if (rb != null)
-                                       vp = rb.GetVirtualPath (requestContext, values);
-                               else
-                                       throw new ArgumentException ("A route named '" + name + "' could not be found in the route collection.", "name");
-                       } else {
-                               foreach (RouteBase rb in this) {
-                                       vp = rb.GetVirtualPath (requestContext, values);
-                                       if (vp != null)
-                                               break;
-                               }
-                       }
-
-                       if (vp != null) {
-                               string appPath = requestContext.HttpContext.Request.ApplicationPath;
-                               if (appPath != null && (appPath.Length == 0 || !appPath.EndsWith ("/", StringComparison.Ordinal)))
-                                       appPath += "/";
-                               
-                               string pathWithApp = String.Concat (appPath, vp.VirtualPath);
-                               vp.VirtualPath = requestContext.HttpContext.Response.ApplyAppPathModifier (pathWithApp);
-                               return vp;
-                       }
-
-                       return null;
-               }
-
-               public IDisposable GetWriteLock ()
-               {
-                       return write_lock;
-               }
-               public void Ignore (string url)
-               {
-                       Ignore (url, null);
-               }
-
-               public void Ignore (string url, object constraints)
-               {
-                       if (url == null)
-                               throw new ArgumentNullException ("url");
-
-                       Add (new Route (url, null, new RouteValueDictionary (constraints), new StopRoutingHandler ()));
-               }
-               
-               public Route MapPageRoute (string routeName, string routeUrl, string physicalFile)
-               {
-                       return MapPageRoute (routeName, routeUrl, physicalFile, true, null, null, null);
-               }
-
-               public Route MapPageRoute (string routeName, string routeUrl, string physicalFile, bool checkPhysicalUrlAccess)
-               {
-                       return MapPageRoute (routeName, routeUrl, physicalFile, checkPhysicalUrlAccess, null, null, null);
-               }
-
-               public Route MapPageRoute (string routeName, string routeUrl, string physicalFile, bool checkPhysicalUrlAccess,
-                                          RouteValueDictionary defaults)
-               {
-                       return MapPageRoute (routeName, routeUrl, physicalFile, checkPhysicalUrlAccess, defaults, null, null);
-               }
-
-               public Route MapPageRoute (string routeName, string routeUrl, string physicalFile, bool checkPhysicalUrlAccess,
-                                          RouteValueDictionary defaults, RouteValueDictionary constraints)
-               {
-                       return MapPageRoute (routeName, routeUrl, physicalFile, checkPhysicalUrlAccess, defaults, constraints, null);
-               }
-
-               public Route MapPageRoute (string routeName, string routeUrl, string physicalFile, bool checkPhysicalUrlAccess,
-                                          RouteValueDictionary defaults, RouteValueDictionary constraints, RouteValueDictionary dataTokens)
-               {
-                       if (routeUrl == null)
-                               throw new ArgumentNullException ("routeUrl");
-                       
-                       var route = new Route (routeUrl, defaults, constraints, dataTokens, new PageRouteHandler (physicalFile, checkPhysicalUrlAccess));
-                       Add (routeName, route);
-
-                       return route;
-               }
-               protected override void InsertItem (int index, RouteBase item)
-               {
-                       // FIXME: what happens wrt its name?
-                       lock (GetWriteLock ())
-                               base.InsertItem (index, item);
-               }
-
-               protected override void RemoveItem (int index)
-               {
-                       // FIXME: what happens wrt its name?
-                       lock (GetWriteLock ()) {
-                               string k = GetKey (index);
-                               base.RemoveItem (index);
-                               if (k != null)
-                                       d.Remove (k);
-                       }
-               }
-
-               protected override void SetItem (int index, RouteBase item)
-               {
-                       // FIXME: what happens wrt its name?
-                       lock (GetWriteLock ()) {
-                               string k = GetKey (index);
-                               base.SetItem (index, item);
-                               if (k != null)
-                                       d.Remove (k);
-                       }
-               }
-
-               string GetKey (int index)
-               {
-                       var item = this [index];
-                       foreach (var p in d)
-                               if (p.Value == item)
-                                       return p.Key;
-                       return null;
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/RouteData.cs b/mcs/class/System.Web.Routing/System.Web.Routing/RouteData.cs
deleted file mode 100644 (file)
index 4ae2289..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// RouteData.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Web;
-
-namespace System.Web.Routing
-{
-       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class RouteData
-       {
-               public RouteData ()
-                       : this (null, null)
-               {
-               }
-
-               public RouteData (RouteBase route, IRouteHandler routeHandler)
-               {
-                       // arguments can be null.
-                       Route = route;
-                       RouteHandler = routeHandler;
-
-                       DataTokens = new RouteValueDictionary ();
-                       Values = new RouteValueDictionary ();
-               }
-
-               public RouteValueDictionary DataTokens { get; private set; }
-
-               public RouteBase Route { get; set; }
-
-               public IRouteHandler RouteHandler { get; set; }
-
-               public RouteValueDictionary Values { get; private set; }
-
-               public string GetRequiredString (string valueName)
-               {
-                       object o;
-                       if (!Values.TryGetValue (valueName, out o))
-                               throw new InvalidOperationException (String.Format ("value name {0} does not match any of the values.", valueName));
-                       string s = o as string;
-                       if (String.IsNullOrEmpty (s))
-                               throw new InvalidOperationException (String.Format ("The value for the name {0} must be a non-empty string", valueName));
-                       return s;
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/RouteDirection.cs b/mcs/class/System.Web.Routing/System.Web.Routing/RouteDirection.cs
deleted file mode 100644 (file)
index 693d1dc..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-//
-// RouteDirection.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System.Runtime.CompilerServices;
-
-namespace System.Web.Routing
-{
-       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       public enum RouteDirection
-       {
-               IncomingRequest,
-               UrlGeneration
-       }
-}
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/RouteTable.cs b/mcs/class/System.Web.Routing/System.Web.Routing/RouteTable.cs
deleted file mode 100644 (file)
index ff0bc2e..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-//
-// RouteTable.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Web;
-
-namespace System.Web.Routing
-{
-       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class RouteTable
-       {
-               static RouteTable ()
-               {
-                       Routes = new RouteCollection ();
-               }
-
-               public static RouteCollection Routes { get; private set; }
-       }
-}
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/RouteValueDictionary.cs b/mcs/class/System.Web.Routing/System.Web.Routing/RouteValueDictionary.cs
deleted file mode 100644 (file)
index eeef0dd..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-//
-// RouteValueDictionary.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Web;
-
-using PairCollection = System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>;
-
-namespace System.Web.Routing
-{
-       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class RouteValueDictionary : IDictionary<string, object>
-       {
-               internal class CaseInsensitiveStringComparer : IEqualityComparer<string>
-               {
-                       public static readonly CaseInsensitiveStringComparer Instance = new CaseInsensitiveStringComparer ();
-
-                       public int GetHashCode (string obj)
-                       {
-                               return obj.ToLower (CultureInfo.InvariantCulture).GetHashCode ();
-                       }
-
-                       public bool Equals (string obj1, string obj2)
-                       {
-                               return String.Equals (obj1, obj2, StringComparison.OrdinalIgnoreCase);
-                       }
-               }
-
-               Dictionary<string,object> d = new Dictionary<string,object> (CaseInsensitiveStringComparer.Instance);
-
-               public RouteValueDictionary ()
-               {
-               }
-
-               public RouteValueDictionary (IDictionary<string, object> dictionary)
-               {
-                       if (dictionary == null)
-                               throw new ArgumentNullException ("dictionary");
-                       foreach (var p in dictionary)
-                               Add (p.Key, p.Value);
-               }
-
-               public RouteValueDictionary (object values) // anonymous type instance
-               {
-                       if (values == null)
-                               return;
-
-                       foreach (var pi in values.GetType ().GetProperties ()) {
-                               try {
-                                       Add (pi.Name, pi.GetValue (values, null));
-                               } catch {
-                                       // ignore
-                               }
-                       }
-               }
-
-               public int Count {
-                       get { return d.Count; }
-               }
-
-               bool PairCollection.IsReadOnly {
-                       get { return ((PairCollection) d).IsReadOnly; }
-               }
-
-               ICollection<string> IDictionary<string, object>.Keys {
-                       get { return d.Keys; }
-               }
-
-               ICollection<Object> IDictionary<string, object>.Values {
-                       get { return d.Values; }
-               }
-
-               public object this [string key] {
-                       get { object v; return d.TryGetValue (key, out v) ? v : null; }
-                       set { d [key] = value; }
-               }
-
-               public Dictionary<string, object>.KeyCollection Keys {
-                       get { return d.Keys; }
-               }
-
-               public Dictionary<string, object>.ValueCollection Values {
-                       get { return d.Values; }
-               }
-
-               public void Add (string key, object value)
-               {
-                       d.Add (key, value);
-               }
-
-               public void Clear ()
-               {
-                       d.Clear ();
-               }
-
-               public bool ContainsKey (string key)
-               {
-                       return d.ContainsKey (key);
-               }
-
-               public bool ContainsValue (object value)
-               {
-                       return d.ContainsValue (value);
-               }
-
-               public Dictionary<string, object>.Enumerator GetEnumerator ()
-               {
-                       return d.GetEnumerator ();
-               }
-
-               void ICollection<KeyValuePair<string, object>>.Add (KeyValuePair<string, object> item)
-               {
-                       ((PairCollection) d).Add (item);
-               }
-
-               bool ICollection<KeyValuePair<string, object>>.Contains (KeyValuePair<string, object> item)
-               {
-                       return ((PairCollection) d).Contains (item);
-               }
-
-               void ICollection<KeyValuePair<string, object>>.CopyTo (KeyValuePair<string, object> [] array, int arrayIndex)
-               {
-                       ((PairCollection) d).CopyTo (array, arrayIndex);
-               }
-
-               bool ICollection<KeyValuePair<string, object>>.Remove (KeyValuePair<string, object> item)
-               {
-                       return ((PairCollection) d).Remove (item);
-               }
-
-               IEnumerator<KeyValuePair<string, object>> IEnumerable<KeyValuePair<string, object>>.GetEnumerator()
-               {
-                       return d.GetEnumerator ();
-               }
-
-               IEnumerator IEnumerable.GetEnumerator ()
-               {
-                       return d.GetEnumerator ();
-               }
-
-               public bool Remove (string key)
-               {
-                       return d.Remove (key);
-               }
-
-               public bool TryGetValue (string key, out object value)
-               {
-                       return d.TryGetValue (key, out value);
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/RouteValueDictionaryExtensions.cs b/mcs/class/System.Web.Routing/System.Web.Routing/RouteValueDictionaryExtensions.cs
deleted file mode 100644 (file)
index b73719a..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-//
-// PatternParser.cs
-//
-// Author:
-//      Marek Habersack <mhabersack@novell.com>
-//
-// Copyright (C) 2009 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-#if SYSTEMCORE_DEP
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-
-namespace System.Web.Routing
-{
-       static class RouteValueDictionaryExtensions
-       {
-               public static bool Has (this RouteValueDictionary dict, string key)
-               {
-                       if (dict == null)
-                               return false;
-                       
-                       return dict.ContainsKey (key);
-               }
-
-               public static bool Has (this RouteValueDictionary dict, string key, object value)
-               {
-                       if (dict == null)
-                               return false;
-
-                       object entryValue;
-                       if (dict.TryGetValue (key, out entryValue)) {
-                               if (value is string) {
-                                       if (!(entryValue is string))
-                                               return false;
-                                       
-                                       string s1 = value as string;
-                                       string s2 = entryValue as string;
-                                       return String.Compare (s1, s2, StringComparison.OrdinalIgnoreCase) == 0;
-                               }
-                               
-                               return entryValue == null ? value == null : entryValue.Equals (value);
-                       }
-                       
-                       return false;
-               }
-
-               public static bool GetValue (this RouteValueDictionary dict, string key, out object value)
-               {
-                       if (dict == null) {
-                               value = null;
-                               return false;
-                       }
-
-                       return dict.TryGetValue (key, out value);
-               }
-
-               [Conditional ("DEBUG")]
-               public static void Dump (this RouteValueDictionary dict, string name, string indent)
-               {
-                       if (indent == null)
-                               indent = String.Empty;
-                       
-                       if (dict == null) {
-                               Console.WriteLine (indent + "Dictionary '{0}' is null", name);
-                               return;
-                       }
-                       
-                       if (dict.Count == 0) {
-                               Console.WriteLine (indent + "Dictionary '{0}' is empty", name);
-                               return;
-                       }
-
-                       Console.WriteLine (indent + "Dictionary '{0}':", name);
-                       foreach (var de in dict)
-                               Console.WriteLine (indent + "\t'{0}' == {1}", de.Key, de.Value);
-               }
-       }
-}
-#endif
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/StopRoutingHandler.cs b/mcs/class/System.Web.Routing/System.Web.Routing/StopRoutingHandler.cs
deleted file mode 100644 (file)
index 8e67ad1..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-//
-// StopRoutingHandler.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Web;
-
-namespace System.Web.Routing
-{
-       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class StopRoutingHandler : IRouteHandler
-       {
-               protected virtual IHttpHandler GetHttpHandler (RequestContext requestContext)
-               {
-                       throw new NotSupportedException ();
-               }
-
-               IHttpHandler IRouteHandler.GetHttpHandler (RequestContext requestContext)
-               {
-                       return GetHttpHandler (requestContext);
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/UrlRoutingHandler.cs b/mcs/class/System.Web.Routing/System.Web.Routing/UrlRoutingHandler.cs
deleted file mode 100644 (file)
index f067b5f..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// UrlRoutingHandler.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008-2010 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Web;
-
-namespace System.Web.Routing
-{
-       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public abstract class UrlRoutingHandler : IHttpHandler
-       {
-               RouteCollection routes;
-
-               bool IHttpHandler.IsReusable {
-                       get { return IsReusable; }
-               }
-
-               protected virtual bool IsReusable { get { return false; } }
-
-               public RouteCollection RouteCollection {
-                       get {
-                               if (routes == null)
-                                       routes = RouteTable.Routes;
-                               return routes;
-                       }
-                       set { routes = value; }
-               }
-
-               void IHttpHandler.ProcessRequest (HttpContext context)
-               {
-                       ProcessRequest (context);
-               }
-
-               protected virtual void ProcessRequest (HttpContext httpContext)
-               {
-                       ProcessRequest (new HttpContextWrapper (httpContext));
-               }
-
-               protected virtual void ProcessRequest (HttpContextBase httpContext)
-               {
-                       if (httpContext == null)
-                               throw new ArgumentNullException ("httpContext");
-
-                       var rd = RouteCollection.GetRouteData (httpContext);
-                       if (rd == null)
-                               throw new HttpException ("The incoming request does not match any route");
-                       if (rd.RouteHandler == null)
-                               throw new InvalidOperationException ("No  IRouteHandler is assigned to the selected route");
-
-                       RequestContext rc = new RequestContext (httpContext, rd);
-
-                       var hh = rd.RouteHandler.GetHttpHandler (rc);
-                       VerifyAndProcessRequest (hh, httpContext);
-               }
-
-               protected abstract void VerifyAndProcessRequest (IHttpHandler httpHandler, HttpContextBase httpContext);
-       }
-}
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/UrlRoutingModule.cs b/mcs/class/System.Web.Routing/System.Web.Routing/UrlRoutingModule.cs
deleted file mode 100644 (file)
index 6fad095..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-//
-// UrlRoutingModule.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Threading;
-using System.Web;
-
-namespace System.Web.Routing
-{
-       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class UrlRoutingModule : IHttpModule
-       {
-               RouteCollection routes;
-               public RouteCollection RouteCollection {
-                       get {
-                               if (routes == null)
-                                       routes = RouteTable.Routes;
-                               return routes;
-                       }
-                       set { routes = value; }
-               }
-
-               protected virtual void Dispose ()
-               {
-               }
-
-               void IHttpModule.Dispose ()
-               {
-                       Dispose ();
-               }
-
-               void IHttpModule.Init (HttpApplication application)
-               {
-                       Init (application);
-               }
-
-               protected virtual void Init (HttpApplication application)
-               {
-                       application.PostMapRequestHandler += PostMapRequestHandler;
-                       application.PostResolveRequestCache += PostResolveRequestCache;
-               }
-
-               void PostMapRequestHandler (object o, EventArgs e)
-               {
-                       var app = (HttpApplication) o;
-                       PostMapRequestHandler (new HttpContextWrapper (app.Context));
-               }
-
-               void PostResolveRequestCache (object o, EventArgs e)
-               {
-                       var app = (HttpApplication) o;
-                       PostResolveRequestCache (new HttpContextWrapper (app.Context));
-               }
-               [Obsolete]
-               public virtual void PostMapRequestHandler (HttpContextBase context)
-               {
-               }
-
-               [MonoTODO]
-               public virtual void PostResolveRequestCache (HttpContextBase context)
-               {
-                       if (context == null)
-                               throw new ArgumentNullException ("context");
-
-                       var rd = RouteCollection.GetRouteData (context);
-                       if (rd == null)
-                               return; // do nothing
-
-                       if (rd.RouteHandler == null)
-                               throw new InvalidOperationException ("No  IRouteHandler is assigned to the selected route");
-
-                       if (rd.RouteHandler is StopRoutingHandler)
-                               return; //stop further processing
-                       
-                       var rc = new RequestContext (context, rd);
-
-                       IHttpHandler http = rd.RouteHandler.GetHttpHandler (rc);
-                       if (http == null)
-                               throw new InvalidOperationException ("The mapped IRouteHandler did not return an IHttpHandler");
-                       context.Request.RequestContext = rc;
-                       context.RemapHandler (http);
-               }
-       }
-}
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/VirtualPathData.cs b/mcs/class/System.Web.Routing/System.Web.Routing/VirtualPathData.cs
deleted file mode 100644 (file)
index 3449b3b..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-//
-// VirtualPathData.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell Inc. http://novell.com
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.Runtime.CompilerServices;
-using System.Security.Permissions;
-using System.Web;
-
-namespace System.Web.Routing
-{
-       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
-       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
-       public class VirtualPathData
-       {
-               public VirtualPathData (RouteBase route, string virtualPath)
-               {
-                       // arguments can be null.
-                       Route = route;
-                       VirtualPath = virtualPath;
-                       DataTokens = new RouteValueDictionary ();
-               }
-
-               public RouteValueDictionary DataTokens { get; private set; }
-
-               public RouteBase Route { get; set; }
-
-               public string VirtualPath { get; set; }
-       }
-}
index 5d59be0c2fbecfa592a256e34c0f45343f678b66..1e536b0dcfd35b53be6367aa042e7314656de52e 100644 (file)
@@ -81,11 +81,7 @@ namespace MonoTests.Common
 
         public override string GetRawUrl ()
         {
-#if NET_4_0
            return "/GetRawUrl";
-#else
-            return "GetRawUrl";
-#endif
         }
 
         public override string GetHttpVerbName ()
index 7e890be7939941feb74016c978f4024b31a67a97..5d2aeceb85542b941d91531211a3fde287cf2f1f 100644 (file)
@@ -40,7 +40,6 @@ namespace MonoTests.System.Web.Routing
        [TestFixture]
        public class RequestContextTest
        {
-#if NET_4_0
                [Test]
                public void DefaultConstructor ()
                {
@@ -49,7 +48,6 @@ namespace MonoTests.System.Web.Routing
                        Assert.AreEqual (null, rc.HttpContext, "#A1");
                        Assert.AreEqual (null, rc.RouteData, "#A2");
                }
-#endif
                [Test]
                public void Constructor_HttpContextBase_RouteData ()
                {
@@ -72,14 +70,12 @@ namespace MonoTests.System.Web.Routing
                        var rc = new RequestContext (ctx, new RouteData ());
 
                        Assert.AreSame (ctx, rc.HttpContext, "#A1");
-#if NET_4_0
                        ctx = new HttpContextWrapper (new HttpContext (new HttpRequest ("filename", "http://localhost/filename", String.Empty), new HttpResponse (new StringWriter ())));
                        rc.HttpContext = ctx;
                        Assert.AreSame (ctx, rc.HttpContext, "#A2");
 
                        rc.HttpContext = null;
                        Assert.IsNull (rc.HttpContext, "#A3");
-#endif
                }
 
                [Test]
@@ -90,14 +86,12 @@ namespace MonoTests.System.Web.Routing
                        var rc = new RequestContext (ctx, rd);
 
                        Assert.AreSame (rd, rc.RouteData, "#A1");
-#if NET_4_0
                        rd = new RouteData ();
                        rc.RouteData = rd;
                        Assert.AreSame (rd, rc.RouteData, "#A2");
 
                        rc.RouteData = null;
                        Assert.IsNull (rc.RouteData, "#A3");
-#endif
                }
        }
 }
index 18b52ea11ba3e77e607c455a04e753e395eb9dc3..a6f26b6b6f6dfc151d114892ac1f0259ce7dadc0 100644 (file)
@@ -131,17 +131,8 @@ namespace MonoTests.System.Web.Routing
                {
                        var rd = new RouteCollection () { RouteExistingFiles = true }.GetRouteData (new HttpContextStub2 (null, null, null));
                        Assert.IsNull (rd, "#A1");
-#if NET_4_0
                        rd = new RouteCollection ().GetRouteData (new HttpContextStub2 (null, null, null));
                        Assert.IsNull (rd, "#A2");
-#else
-                       try {
-                               new RouteCollection ().GetRouteData (new HttpContextStub2 (null, null, null));
-                               Assert.Fail ("#A3");
-                       } catch (NotImplementedException) {
-                               // it should fail due to the NIE on AppRelativeCurrentExecutionFilePath.
-                       }
-#endif
                }
 
                [Test]
@@ -648,7 +639,6 @@ namespace MonoTests.System.Web.Routing
                        
                        Assert.IsNotNull (rd, "#A1");
                }
-#if NET_4_0
                [Test]
                public void Ignore_String ()
                {
@@ -926,6 +916,5 @@ namespace MonoTests.System.Web.Routing
                        Assert.AreEqual (typeof (PageRouteHandler), rd.RouteHandler.GetType (), "#A4-3");
                        Assert.IsFalse (((PageRouteHandler) rd.RouteHandler).CheckPhysicalUrlAccess, "#A4-4");
                }
-#endif
        }
 }
index b9e9be7247ca21e35e58e3ce6485b245f5ed0b70..c9fd18a29cf437d1402bfa1d1f8c447c995c3d24 100644 (file)
@@ -627,7 +627,6 @@ namespace MonoTests.System.Web.Routing
                        var hc = new HttpContextStub ("~/xyzxyzxyzxyzblah", String.Empty);
                        var rd = r.GetRouteData (hc);
 
-#if NET_4_0 || !DOTNET
                        // When running on Mono this test succeeds - it was a bug in .NET routing for 3.5 which
                        // we don't reproduce anymore.
                        Assert.IsNotNull (rd, "#1");
@@ -637,9 +636,6 @@ namespace MonoTests.System.Web.Routing
                        Assert.AreEqual ("xyz", rd.Values ["foo"], "#4-1");
                        Assert.AreEqual ("xyz", rd.Values ["bar"], "#4-2");
                        Assert.AreEqual ("blah", rd.Values ["baz"], "#4-3");
-#else
-                       Assert.IsNull (rd, "#1");
-#endif
                }
 
                [Test]
@@ -738,7 +734,6 @@ namespace MonoTests.System.Web.Routing
                        var hc = new HttpContextStub ("~/xyzxyzxyzxyzxyzxyzblah", String.Empty);
                        var rd = r.GetRouteData (hc);
 
-#if NET_4_0 || !DOTNET
                        // When running on Mono this test succeeds - it was a bug in .NET routing for 3.5 which
                        // we don't reproduce anymore.
                        Assert.IsNotNull (rd, "#1");
@@ -748,9 +743,6 @@ namespace MonoTests.System.Web.Routing
                        Assert.AreEqual ("xyzxyzxyz", rd.Values ["foo"], "#4-1");
                        Assert.AreEqual ("xyz", rd.Values ["bar"], "#4-2");
                        Assert.AreEqual ("blah", rd.Values ["baz"], "#4-3");
-#else
-                       Assert.IsNull (rd, "#1");
-#endif
                }
 
                [Test]
@@ -776,7 +768,6 @@ namespace MonoTests.System.Web.Routing
                        var hc = new HttpContextStub ("~/xyzxyzxyzdabxyzblah", String.Empty);
                        var rd = r.GetRouteData (hc);
 
-#if NET_4_0 || !DOTNET
                        // When running on Mono this test succeeds - it was a bug in .NET routing for 3.5 which
                        // we don't reproduce anymore.
                        Assert.IsNotNull (rd, "#1");
@@ -786,9 +777,6 @@ namespace MonoTests.System.Web.Routing
                        Assert.AreEqual ("xyz", rd.Values ["foo"], "#4-1");
                        Assert.AreEqual ("dab", rd.Values ["bar"], "#4-2");
                        Assert.AreEqual ("blah", rd.Values ["baz"], "#4-3");
-#else
-                       Assert.IsNull (rd, "#1");
-#endif
                }
 
                [Test]
@@ -798,7 +786,6 @@ namespace MonoTests.System.Web.Routing
                        var hc = new HttpContextStub ("~/xyzxyzxyzxyzxyz", String.Empty);
                        var rd = r.GetRouteData (hc);
 
-#if NET_4_0 || !DOTNET
                        // When running on Mono this test succeeds - it was a bug in .NET routing for 3.5 which
                        // we don't reproduce anymore.
                        Assert.IsNotNull (rd, "#1");
@@ -808,9 +795,6 @@ namespace MonoTests.System.Web.Routing
                        Assert.AreEqual ("xyz", rd.Values ["foo"], "#4-1");
                        Assert.AreEqual ("xyz", rd.Values ["bar"], "#4-2");
                        Assert.AreEqual ("xyz", rd.Values ["baz"], "#4-3");
-#else
-                       Assert.IsNull (rd, "#1");
-#endif
                }
 
                [Test]
@@ -1375,7 +1359,6 @@ namespace MonoTests.System.Web.Routing
 
                }
                
-#if NET_4_0
                [Test (Description="Bug #671753")]
                public void GetVirtualPath15 ()
                {
@@ -1396,7 +1379,6 @@ namespace MonoTests.System.Web.Routing
                        Assert.IsNotNull (RouteTable.Routes.GetVirtualPath (rc, "TestRoute", new RouteValueDictionary ()), "#A3");
                        Assert.IsNotNull (RouteTable.Routes.GetVirtualPath (rc, "TestRoute", null), "#A4");
                }
-#endif
 
                [Test (Description="Xamarin Bug #9116")]
                public void GetVirtualPath16 ()
index 817ae81973e892c81add39b6b86cdbd11adbb3db..45f3ede61226f3453726c79f5fc3a80545fc7f46 100644 (file)
@@ -248,7 +248,6 @@ namespace MonoTests.System.Web.Routing
 
                public string RewrittenPath { get; set; }
        }
-#if NET_4_0
        class FakeHttpRequestWrapper : HttpRequestWrapper
        {
                string requestUrl;
@@ -320,7 +319,6 @@ namespace MonoTests.System.Web.Routing
                        wrapper = new FakeHttpRequestWrapper (requestUrl, path, appPath);
                }
        }
-#endif
        public class MyStopRoutingHandler : StopRoutingHandler
        {
                public IHttpHandler CallGetHttpHandler (RequestContext rc)
index a55d911e567866ee396ccf8ead3eb1e45af48a7b..784dc510895dae089275d6a91a2b298a44f6ba9c 100644 (file)
@@ -85,17 +85,6 @@ namespace MonoTests.System.Web.Routing
                        m.PostResolveRequestCache (new HttpContextStub2 ("~/foo/bar", null));
                }
 
-#if !NET_4_0
-               [Test]
-               [ExpectedException (typeof (InvalidOperationException))]
-               public void PostResolveRequestCacheNullHttpHandler ()
-               {
-                       var m = new UrlRoutingModule ();
-                       RouteTable.Routes.Add (new MyRoute ("foo/bar", new NullRouteHandler ()));
-
-                       m.PostResolveRequestCache (new HttpContextStub2 ("~/foo/bar", null));
-               }
-#endif
                [Test]
                [ExpectedException (typeof (NotImplementedException))]
                public void PostResolveRequestCacheNoPath ()
@@ -106,53 +95,15 @@ namespace MonoTests.System.Web.Routing
                        m.PostResolveRequestCache (new HttpContextStub2 ("~/foo/bar", null));
                }
 
-#if !NET_4_0
-               [Test]
-               public void PostResolveRequestCacheCallRewritePath ()
-               {
-                       var m = new UrlRoutingModule ();
-                       RouteTable.Routes.Add (new MyRoute ("{foo}/{bar}", new MyRouteHandler ()));
-                       var hc = new HttpContextStub2 ("~/x/y", "z");
-                       try {
-                               m.PostResolveRequestCache (hc);
-                               Assert.Fail ("#1");
-                       } catch (ApplicationException ex) {
-                               Assert.AreEqual ("~/UrlRouting.axd", ex.Message, "#2");
-                       }
-               }
-
-               [Test]
-               public void PostResolveRequestCacheModifiedPath ()
-               {
-                       var m = new UrlRoutingModule ();
-                       RouteTable.Routes.Add (new MyRoute ("{foo}/{bar}", new MyRouteHandler ()));
-                       var hc = new HttpContextStub2 ("~/x/y", "z", "apppath");
-                       hc.SetResponse (new HttpResponseStub (2));
-                       try {
-                               m.PostResolveRequestCache (hc);
-                               Assert.Fail ("#1");
-                       } catch (ApplicationException ex) {
-                               Assert.AreEqual ("~/UrlRouting.axd", ex.Message, "#2");
-                       }
-               }
-#endif
                [Test]
                public void PostResolveRequestCache ()
                {
                        var m = new UrlRoutingModule ();
                        RouteTable.Routes.Add (new MyRoute ("{foo}/{bar}", new MyRouteHandler ()));
-#if NET_4_0
                        var hc = new HttpContextStub4 ("~/x/y", "z", "apppath", false);
-#else
-                       var hc = new HttpContextStub3 ("~/x/y", "z", "apppath", false);
-#endif
                        hc.SetResponse (new HttpResponseStub (2));
                        m.PostResolveRequestCache (hc);
-#if NET_4_0
                        Assert.AreEqual (null, hc.RewrittenPath, "#1");
-#else
-                       Assert.AreEqual ("~/UrlRouting.axd", hc.RewrittenPath, "#1");
-#endif
                        // it internally stores the handler 
                }
                
@@ -203,49 +154,23 @@ namespace MonoTests.System.Web.Routing
                {
                        var m = new UrlRoutingModule ();
                        RouteTable.Routes.Add (new MyRoute ("{foo}/{bar}", new MyRouteHandler ()));
-#if NET_4_0
                        var hc = new HttpContextStub4 ("~/x/y", "z", "apppath", true);
-#else
-                       var hc = new HttpContextStub3 ("~/x/y", "z", "apppath", true);
-#endif
                        hc.HttpHandler = new MyHttpHandler ();
                        hc.SetResponse (new HttpResponseStub (2));
                        m.PostResolveRequestCache (hc);
-#if NET_4_0
                        Assert.AreEqual (null, hc.RewrittenPath, "#1");
-#else
-                       Assert.AreEqual ("~/UrlRouting.axd", hc.RewrittenPath, "#1");
-#endif
                        // It tries to set Handler and causes NIE
                        m.PostMapRequestHandler (hc);
                }
 
                [Test]
-#if !NET_4_0
-               [ExpectedException (typeof (ApplicationException))]
-#endif
                public void Pipeline3 ()
                {
                        var m = new UrlRoutingModule ();
                        RouteTable.Routes.Add (new MyRoute ("{foo}/{bar}", new MyRouteHandler ()));
-#if NET_4_0
                        var hc = new HttpContextStub5 ("~/x/y", String.Empty, "apppath");
-#else
-                       var hc = new HttpContextStub2 ("~/x/y", String.Empty, "apppath");
-#endif
                        hc.SetResponse (new HttpResponseStub (2));
-#if NET_4_0
                        Assert.IsNull (m.RouteCollection.GetRouteData (hc), "#0");
-#else
-                       Assert.IsNotNull (m.RouteCollection.GetRouteData (hc), "#0");
-                       m.PostResolveRequestCache (hc);
-                       try {
-                               m.PostMapRequestHandler (hc);
-                               Assert.Fail ("#1");
-                       } catch (ApplicationException ex) {
-                               Assert.AreEqual ("~/UrlRouting.axd", ex.Message, "#2");
-                       }
-#endif
                }
        }
 }
diff --git a/mcs/class/System.Web.Routing/net_4_0_System.Web.Routing.dll.sources b/mcs/class/System.Web.Routing/net_4_0_System.Web.Routing.dll.sources
deleted file mode 100644 (file)
index c030663..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-../../build/common/Consts.cs
-../../build/common/MonoTODOAttribute.cs
-Assembly/AssemblyInfo.cs
diff --git a/mcs/class/System.Web.Routing/net_4_5_System.Web.Routing.dll.sources b/mcs/class/System.Web.Routing/net_4_5_System.Web.Routing.dll.sources
deleted file mode 100644 (file)
index 7194672..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include net_4_0_System.Web.Routing.dll.sources
index 2ba370c04ab51bc78b7aa505fcefbfb158a0aebe..a77c3683895f1c00aabe392949e3b9272edbfe07 100644 (file)
@@ -3,7 +3,7 @@ SUBDIRS =
 include ../../build/rules.make
 
 LIBRARY = System.Web.Services.dll
-MOBILE := $(filter monotouch monodroid xammac mobile mobile_static, $(PROFILE))
+MOBILE := $(filter monotouch monotouch_watch monodroid xammac mobile mobile_static, $(PROFILE))
 ifdef MOBILE
 LIB_REFS = System System.Xml
 LIB_MCS_FLAGS = \
@@ -15,18 +15,28 @@ LIB_MCS_FLAGS = \
        -resource:System.Web.Services.Description/wsdl-1.1-soap.xsd,wsdl-1.1-soap.xsd \
        -resource:System.Web.Services.Description/web-reference.xsd,web-reference.xsd
 else
-LIB_REFS = System System.EnterpriseServices System.Xml System.Web System.DirectoryServices System.Data System.Design
+LIB_REFS = System System.EnterpriseServices System.Xml System.Data
 LIB_MCS_FLAGS = -nowarn:168,169,219,414,612,649 -d:MONO_BROKEN_CONFIGURATION_DLL
 
+ifndef NO_SYSTEM_WEB_DEPENDENCY
+LIB_REFS += System.Web
 plainweb_dir = $(the_libdir_base)plainweb
 plainweb = $(plainweb_dir)/System.Web.dll
 system_web_services_deps = $(plainweb)
+LOCAL_MCS_FLAGS += -lib:$(plainweb_dir)
+endif
 
+ifndef NO_SYSTEM_DESIGN_DEPENDENCY
+LIB_REFS += System.Design
 plaindesign_dir = $(the_libdir_base)plaindesign
 plaindesign = $(plaindesign_dir)/System.Design.dll
 system_design_deps = $(plaindesign)
+LOCAL_MCS_FLAGS += -lib:$(plaindesign_dir)
+endif
 
-LOCAL_MCS_FLAGS = -lib:$(plaindesign_dir) -lib:$(plainweb_dir)
+ifndef NO_SYSTEM_DIRECTORY_SERVICES_DEPENDENCY
+LIB_REFS += System.DirectoryServices
+endif
 
 LIB_REFS += System.Configuration
 LIB_MCS_FLAGS += \
index bcc9fbee75703ef394a3536d8fb93c65b5f220f8..4bfcff325bbb4fabdcb8c7cf92415d61e469ea4e 100644 (file)
@@ -71,7 +71,7 @@ namespace System.Web.Services.Description
                        RegisterExtensionType (typeof (Soap12HeaderBinding));
                        RegisterExtensionType (typeof (Soap12OperationBinding));
 
-#if !MOBILE
+#if !MOBILE && !XAMMAC_4_5
                        /*
                         * Currently, the mobile profile has not support for
                         * System.Configuration, so there are no external modules
@@ -164,7 +164,7 @@ namespace System.Web.Services.Description
                /*
                 * The mobile profile lacks support for configuration
                 */
-#if MOBILE
+#if MOBILE || XAMMAC_4_5
                public static ArrayList BuildExtensionImporters ()
                {
                        return new ArrayList (0);
index be3201d18c6b6b356fd3829b51de76f8c255f358..dd29adbeb18084daa20fc2c189d25d0e1334992b 100644 (file)
@@ -142,7 +142,7 @@ namespace System.Web.Services.Description {
                                schemas.Add (serviceDescription.Types.Schemas);
                }
 
-#if !MOBILE
+#if !MOBILE && !XAMMAC_4_5
                public ServiceDescriptionImportWarnings Import (CodeNamespace codeNamespace, CodeCompileUnit codeCompileUnit)
                {
                        foreach (ProtocolImporter importer in GetSupportedImporters ()) {
@@ -163,9 +163,6 @@ namespace System.Web.Services.Description {
                        list.Add (new HttpPostProtocolImporter ());
                        return list;
                }
-#endif
-               
-#if !MOBILE
 
                [MonoTODO] // where to use Verbose and Extensions in options?
                public static StringCollection GenerateWebReferences (
index 1774d436ed0e0b477131d06c9b2870f38ead522e..2585d05360537e00514bc4969b0836d105d15b7f 100644 (file)
@@ -487,7 +487,7 @@ namespace System.Web.Services.Protocols {
                        xmlImporter.IncludeTypes (Type);
                        soapImporter.IncludeTypes (Type);
 
-#if MOBILE
+#if MOBILE || XAMMAC_4_5
                        SoapExtensions = new SoapExtensionRuntimeConfig [2][];
 #else
                        SoapExtensions = SoapExtension.GetTypeExtensions (Type);
index 61ce80625f0dcefdee5bbc07c1e17415bdb10b06..57852949efb085625329dad4873e31c7837eb062 100644 (file)
@@ -207,7 +207,7 @@ namespace System.Web.Services.Protocols
                                                soap12Protocol.Initialize ();
                                        }
                                        return soap12Protocol;
-#if !MOBILE
+#if !MOBILE && !XAMMAC_4_5
                                case "HttpGet":
                                        if (httpGetProtocol == null){
                                                httpGetProtocol = new HttpGetTypeStubInfo (this);
index 2846572ec610ca0cc269b376981a95a0af5f2f53..ae1bd44980989b34cdfd0609a81669df88b005cb 100644 (file)
@@ -100,7 +100,7 @@ namespace System.Web.Services.Protocols {
                        return pos;
                }
 
-#if !MOBILE
+#if !MOBILE && !XAMMAC_4_5
                static void InitializeGlobalExtensions ()
                {
                        globalExtensions = new ArrayList[2];
index 925cb087bb6511d978287ac12bb448d61004e976..e4075a45ffa066a29131836b9ac67f95f0ceb8fa 100644 (file)
@@ -1,5 +1,5 @@
 MCS=mcs -g
-MONO=MONO_PATH=../../../lib/net_4_5 mono
+MONO=MONO_PATH=../../../lib/net_4_x mono
 sourcefile = proxies.sources
 
 tools: wstest.exe
@@ -71,7 +71,7 @@ test-clients: tests
        rm -f somefile && touch somefile
        (tail -f somefile | xsp --root server)&
        sleep 2
-       -harness=../../../lib/net_4_5/nunit-console.exe; \
+       -harness=../../../lib/net_4_x/nunit-console.exe; \
        if test -f $$harness; then :; else harness=../../../lib/nunit-console.exe; fi; \
        $(MONO) $$harness System.Web.Services-standalone_test.dll
        echo "" >> somefile
diff --git a/mcs/class/System.Web.Services/monotouch_watch_System.Web.Services.dll.sources b/mcs/class/System.Web.Services/monotouch_watch_System.Web.Services.dll.sources
new file mode 100644 (file)
index 0000000..9e39dcc
--- /dev/null
@@ -0,0 +1 @@
+#include mobile_System.Web.Services.dll.sources
diff --git a/mcs/class/System.Web.Services/xammac_net_4_5_System.Web.Services.dll.sources b/mcs/class/System.Web.Services/xammac_net_4_5_System.Web.Services.dll.sources
new file mode 100644 (file)
index 0000000..2e521cf
--- /dev/null
@@ -0,0 +1,3 @@
+#include mobile_System.Web.Services.dll.sources
+System.Web.Services.Description/ServiceDescription.cs
+System.Web.Services.Description/ServiceDescriptionImportWarnings.cs 
index a10e374faffeb47a23970dcff414db462187aa62..67619f020976092155be5f58bbe469ab1e18a60c 100644 (file)
@@ -85,9 +85,7 @@ using System.Web.UI;
 #endif
 
 [assembly: InternalsVisibleTo ("SystemWebTestShim, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
-[assembly: InternalsVisibleTo ("System.Web_test_net_2_0, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
-[assembly: InternalsVisibleTo ("System.Web_test_net_4_0, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
-[assembly: InternalsVisibleTo ("System.Web_test_net_4_5, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
+[assembly: InternalsVisibleTo ("System.Web_test_net_4_x, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
 // Resources
 
 [assembly: WebResource ("TreeView_noexpand.gif", "image/gif")]
index f1b350172c181bfbc5de5bdfac758063ebbd84f5..67956ca1ebddea04ac32fbbf78d0615b834230df 100644 (file)
     <Compile Include="System.Web\CapabilitiesLoader.cs" />\r
     <Compile Include="System.Web\DefaultExceptionPageTemplate.cs" />\r
     <Compile Include="System.Web\DefaultHttpHandler.cs" />\r
+    <Compile Include="System.Web\DynamicModuleManager.cs" />\r
     <Compile Include="System.Web\EndEventHandler.cs" />\r
     <Compile Include="System.Web\EventHandlerTaskAsyncHelper.cs" />\r
     <Compile Include="System.Web\ExceptionPageTemplate.cs" />\r
index fe5bb23c9924ee97d2adc1f1800f43553300d645..925358a6fb72a9893dd309a6b89af2885379b355 100644 (file)
     <Compile Include="System.Web\CapabilitiesLoader.cs" />\r
     <Compile Include="System.Web\DefaultExceptionPageTemplate.cs" />\r
     <Compile Include="System.Web\DefaultHttpHandler.cs" />\r
+    <Compile Include="System.Web\DynamicModuleManager.cs" />\r
     <Compile Include="System.Web\EndEventHandler.cs" />\r
     <Compile Include="System.Web\EventHandlerTaskAsyncHelper.cs" />\r
     <Compile Include="System.Web\ExceptionPageTemplate.cs" />\r
index da8d37df9fef40585511ddd1725d16a37ffc98c1..895440d3a6a8ec33f843523b24777261e37e3014 100644 (file)
@@ -48,7 +48,7 @@ namespace System.Web.Compilation
        class AppResourcesAssemblyBuilder
        {
                static string framework_version = "4.5";
-               static string profile_path = "net_4_5";
+               static string profile_path = "net_4_x";
                CompilationSection config;
                CompilerInfo ci;
                CodeDomProvider _provider;
diff --git a/mcs/class/System.Web/System.Web.Profile/ProfileGroupBase.cs b/mcs/class/System.Web/System.Web.Profile/ProfileGroupBase.cs
deleted file mode 100644 (file)
index 9ac173f..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-//
-// System.Web.UI.WebControls.ProfileGroupBase.cs
-//
-// Authors:
-//     Chris Toshok (toshok@ximian.com)
-//     Vladimir Krasnov (vladimirk@mainsoft.com)
-//
-// (C) 2005 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Configuration;
-
-namespace System.Web.Profile
-{
-       public class ProfileGroupBase
-       {
-               ProfileBase _parent = null;
-               string _name = null;
-
-               public ProfileGroupBase ()
-               {
-               }
-
-               public void Init (ProfileBase parent, string myName)
-               {
-                       _parent = parent;
-                       _name = myName;
-               }
-               
-               public object GetPropertyValue (string propertyName)
-               {
-                       return _parent.GetPropertyValue (_name + "." + propertyName);
-               }
-
-               public void SetPropertyValue (string propertyName, object propertyValue)
-               {
-                       _parent.SetPropertyValue (_name + "." + propertyName, propertyValue);
-               }
-
-               public object this [string propertyName] {
-                       get {
-                               return GetPropertyValue (propertyName);
-                       }
-                       set {
-                               SetPropertyValue (propertyName, value);
-                       }
-               }
-       }
-}
-
diff --git a/mcs/class/System.Web/System.Web.Routing/HttpMethodConstraint.cs b/mcs/class/System.Web/System.Web.Routing/HttpMethodConstraint.cs
new file mode 100644 (file)
index 0000000..c163c73
--- /dev/null
@@ -0,0 +1,89 @@
+//
+// HttpMethodConstraint.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Web;
+
+namespace System.Web.Routing
+{
+       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class HttpMethodConstraint : IRouteConstraint
+       {
+               public HttpMethodConstraint (params string[] allowedMethods)
+               {
+                       if (allowedMethods == null)
+                               throw new ArgumentNullException ("allowedMethods");
+                       AllowedMethods = allowedMethods;
+               }
+
+               public ICollection<string> AllowedMethods { get; private set; }
+
+               bool IRouteConstraint.Match (HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
+               {
+                       return Match (httpContext, route, parameterName, values, routeDirection);
+               }
+
+               protected virtual bool Match (HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
+               {
+                       if (httpContext == null)
+                               throw new ArgumentNullException ("httpContext");
+                       if (route == null)
+                               throw new ArgumentNullException ("route");
+                       if (parameterName == null)
+                               throw new ArgumentNullException ("parameterName");
+                       if (values == null)
+                               throw new ArgumentNullException ("values");
+
+                       switch (routeDirection) {
+                       case RouteDirection.IncomingRequest:
+                               // LAMESPEC: .NET allows case-insensitive comparison, which violates RFC 2616
+                               return AllowedMethods.Contains (httpContext.Request.HttpMethod);
+
+                       case RouteDirection.UrlGeneration:
+                               // See: aspnetwebstack's WebAPI equivalent for details.
+                               object method;
+
+                               if (!values.TryGetValue (parameterName, out method))
+                                       return true;
+
+                               // LAMESPEC: .NET allows case-insensitive comparison, which violates RFC 2616
+                               return AllowedMethods.Contains (Convert.ToString (method));
+
+                       default:
+                               throw new ArgumentException ("Invalid routeDirection: " + routeDirection);
+                       }
+               }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web.Routing/IRouteConstraint.cs b/mcs/class/System.Web/System.Web.Routing/IRouteConstraint.cs
new file mode 100644 (file)
index 0000000..0011843
--- /dev/null
@@ -0,0 +1,42 @@
+//
+// IRouteConstraint.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Web;
+
+namespace System.Web.Routing
+{
+       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       public interface IRouteConstraint
+       {
+               bool Match (HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection);
+       }
+}
diff --git a/mcs/class/System.Web/System.Web.Routing/IRouteHandler.cs b/mcs/class/System.Web/System.Web.Routing/IRouteHandler.cs
new file mode 100644 (file)
index 0000000..a9a0d09
--- /dev/null
@@ -0,0 +1,42 @@
+//
+// IRouteHandler.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Web;
+
+namespace System.Web.Routing
+{
+       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       public interface IRouteHandler
+       {
+               IHttpHandler GetHttpHandler (RequestContext requestContext);
+       }
+}
diff --git a/mcs/class/System.Web/System.Web.Routing/PatternParser.cs b/mcs/class/System.Web/System.Web.Routing/PatternParser.cs
new file mode 100644 (file)
index 0000000..080a7bf
--- /dev/null
@@ -0,0 +1,721 @@
+//
+// PatternParser.cs
+//
+// Author:
+//      Atsushi Enomoto <atsushi@ximian.com>
+//      Marek Habersack <mhabersack@novell.com>
+//
+// Copyright (C) 2008-2010 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Collections.Generic;
+using System.Security.Permissions;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Web;
+using System.Web.Util;
+using System.Diagnostics;
+using System.Globalization;
+
+namespace System.Web.Routing
+{
+       sealed class PatternParser
+       {
+               struct PatternSegment
+               {
+                       public bool AllLiteral;
+                       public List <PatternToken> Tokens;
+               }
+               
+               static readonly char[] placeholderDelimiters = { '{', '}' };
+               
+               PatternSegment[] segments;
+               Dictionary <string, bool> parameterNames;
+               PatternToken[] tokens;
+               
+               int segmentCount;
+               bool haveSegmentWithCatchAll;
+               
+               public string Url {
+                       get;
+                       private set;
+               }
+               
+               public PatternParser (string pattern)
+               {
+                       this.Url = pattern;
+                       Parse ();
+               }
+
+               void Parse ()
+               {
+                       string url = Url;
+                       parameterNames = new Dictionary <string, bool> (StringComparer.OrdinalIgnoreCase);
+                       
+                       if (!String.IsNullOrEmpty (url)) {
+                               if (url [0] == '~' || url [0] == '/')
+                                       throw new ArgumentException ("Url must not start with '~' or '/'");
+                               if (url.IndexOf ('?') >= 0)
+                                       throw new ArgumentException ("Url must not contain '?'");
+                       } else {
+                               segments = new PatternSegment [0];
+                               tokens = new PatternToken [0];
+                               return;
+                       }
+                       
+                       string[] parts = url.Split ('/');
+                       int partsCount = segmentCount = parts.Length;
+                       var allTokens = new List <PatternToken> ();
+                       PatternToken tmpToken;
+                       
+                       segments = new PatternSegment [partsCount];
+                       
+                       for (int i = 0; i < partsCount; i++) {
+                               if (haveSegmentWithCatchAll)
+                                       throw new ArgumentException ("A catch-all parameter can only appear as the last segment of the route URL");
+                               
+                               int catchAlls = 0;
+                               string part = parts [i];
+                               int partLength = part.Length;
+                               var tokens = new List <PatternToken> ();
+
+                               if (partLength == 0 && i < partsCount - 1)
+                                       throw new ArgumentException ("Consecutive URL segment separators '/' are not allowed");
+
+                               if (part.IndexOf ("{}") != -1)
+                                       throw new ArgumentException ("Empty URL parameter name is not allowed");
+
+                               if (i > 0)
+                                       allTokens.Add (null);
+                               
+                               if (part.IndexOfAny (placeholderDelimiters) == -1) {
+                                       // no placeholders here, short-circuit it
+                                       tmpToken = new PatternToken (PatternTokenType.Literal, part);
+                                       tokens.Add (tmpToken);
+                                       allTokens.Add (tmpToken);
+                                       segments [i].AllLiteral = true;
+                                       segments [i].Tokens = tokens;
+                                       continue;
+                               }
+
+                               string tmp;
+                               int from = 0, start;
+                               bool allLiteral = true;
+                               while (from < partLength) {
+                                       start = part.IndexOf ('{', from);
+                                       if (start >= partLength - 2)
+                                               throw new ArgumentException ("Unterminated URL parameter. It must contain matching '}'");
+
+                                       if (start < 0) {
+                                               if (part.IndexOf ('}', from) >= from)
+                                                       throw new ArgumentException ("Unmatched URL parameter closer '}'. A corresponding '{' must precede");
+                                               tmp = part.Substring (from);
+                                               tmpToken = new PatternToken (PatternTokenType.Literal, tmp);
+                                               tokens.Add (tmpToken);
+                                               allTokens.Add (tmpToken);
+                                               from += tmp.Length;
+                                               break;
+                                       }
+
+                                       if (from == 0 && start > 0) {
+                                               tmpToken = new PatternToken (PatternTokenType.Literal, part.Substring (0, start));
+                                               tokens.Add (tmpToken);
+                                               allTokens.Add (tmpToken);
+                                       }
+                                       
+                                       int end = part.IndexOf ('}', start + 1);
+                                       int next = part.IndexOf ('{', start + 1);
+                                       
+                                       if (end < 0 || next >= 0 && next < end)
+                                               throw new ArgumentException ("Unterminated URL parameter. It must contain matching '}'");
+                                       if (next == end + 1)
+                                               throw new ArgumentException ("Two consecutive URL parameters are not allowed. Split into a different segment by '/', or a literal string.");
+
+                                       if (next == -1)
+                                               next = partLength;
+                                       
+                                       string token = part.Substring (start + 1, end - start - 1);
+                                       PatternTokenType type;
+                                       if (token [0] == '*') {
+                                               catchAlls++;
+                                               haveSegmentWithCatchAll = true;
+                                               type = PatternTokenType.CatchAll;
+                                               token = token.Substring (1);
+                                       } else
+                                               type = PatternTokenType.Standard;
+
+                                       if (!parameterNames.ContainsKey (token))
+                                               parameterNames.Add (token, true);
+
+                                       tmpToken = new PatternToken (type, token);
+                                       tokens.Add (tmpToken);
+                                       allTokens.Add (tmpToken);
+                                       allLiteral = false;
+                                       
+                                       if (end < partLength - 1) {
+                                               token = part.Substring (end + 1, next - end - 1);
+                                               tmpToken = new PatternToken (PatternTokenType.Literal, token);
+                                               tokens.Add (tmpToken);
+                                               allTokens.Add (tmpToken);
+                                               end += token.Length;
+                                       }
+
+                                       if (catchAlls > 1 || (catchAlls == 1 && tokens.Count > 1))
+                                               throw new ArgumentException ("A path segment that contains more than one section, such as a literal section or a parameter, cannot contain a catch-all parameter.");
+                                       from = end + 1;
+                               }
+                               
+                               segments [i].AllLiteral = allLiteral;
+                               segments [i].Tokens = tokens;
+                       }
+
+                       if (allTokens.Count > 0)
+                               this.tokens = allTokens.ToArray ();
+                       allTokens = null;
+               }
+
+               RouteValueDictionary AddDefaults (RouteValueDictionary dict, RouteValueDictionary defaults)
+               {
+                       if (defaults != null && defaults.Count > 0) {
+                               string key;
+                               foreach (var def in defaults) {
+                                       key = def.Key;
+                                       if (dict.ContainsKey (key))
+                                               continue;
+                                       dict.Add (key, def.Value);
+                               }
+                       }
+
+                       return dict;
+               }
+
+               static bool ParametersAreEqual (object a, object b)
+               {
+                       if (a is string && b is string) {
+                               return String.Equals (a as string, b as string, StringComparison.OrdinalIgnoreCase);
+                       } else {
+                               // Parameter may be a boxed value type, need to use .Equals() for comparison
+                               return object.Equals (a, b);
+                       }
+               }
+
+               static bool ParameterIsNonEmpty (object param)
+               {
+                       if (param is string)
+                               return !string.IsNullOrEmpty (param as string);
+
+                       return param != null;
+               }
+
+               bool IsParameterRequired (string parameterName, RouteValueDictionary defaultValues, out object defaultValue)
+               {
+                       foreach (var token in tokens) {
+                               if (token == null)
+                                       continue;
+
+                               if (string.Equals (token.Name, parameterName, StringComparison.OrdinalIgnoreCase)) {
+                                       if (token.Type == PatternTokenType.CatchAll) {
+                                               defaultValue = null;
+                                               return false;
+                                       }
+                               }
+                       }
+
+                       if (defaultValues == null)
+                               throw new ArgumentNullException ("defaultValues is null?!");
+
+                       return !defaultValues.TryGetValue (parameterName, out defaultValue);
+               }
+
+               static string EscapeReservedCharacters (Match m)
+               {
+                       if (m == null)
+                               throw new ArgumentNullException("m");
+
+                       return Uri.HexEscape (m.Value[0]);
+               }
+
+               static string UriEncode (string str)
+               {
+                       if (string.IsNullOrEmpty (str))
+                               return str;
+
+                       string escape = Uri.EscapeUriString (str);
+                       return Regex.Replace (escape, "([#?])", new MatchEvaluator (EscapeReservedCharacters));
+               }
+
+               bool MatchSegment (int segIndex, int argsCount, string[] argSegs, List <PatternToken> tokens, RouteValueDictionary ret)
+               {
+                       string pathSegment = argSegs [segIndex];
+                       int pathSegmentLength = pathSegment != null ? pathSegment.Length : -1;
+                       int startIndex = pathSegmentLength - 1;
+                       PatternTokenType tokenType;
+                       int tokensCount = tokens.Count;
+                       PatternToken token;
+                       string tokenName;
+
+                       for (int tokenIndex = tokensCount - 1; tokenIndex > -1; tokenIndex--) {
+                               token = tokens [tokenIndex];
+                               if (startIndex < 0)
+                                       return false;
+
+                               tokenType = token.Type;
+                               tokenName = token.Name;
+
+                               if (segIndex > segmentCount - 1 || tokenType == PatternTokenType.CatchAll) {
+                                       var sb = new StringBuilder ();
+
+                                       for (int j = segIndex; j < argsCount; j++) {
+                                               if (j > segIndex)
+                                                       sb.Append ('/');
+                                               sb.Append (argSegs [j]);
+                                       }
+                                               
+                                       ret.Add (tokenName, sb.ToString ());
+                                       break;
+                               }
+
+                               int scanIndex;
+                               if (token.Type == PatternTokenType.Literal) {
+                                       int nameLen = tokenName.Length;
+                                       if (startIndex + 1 < nameLen)
+                                               return false;
+                                       scanIndex = startIndex - nameLen + 1;
+                                       if (String.Compare (pathSegment, scanIndex, tokenName, 0, nameLen, StringComparison.OrdinalIgnoreCase) != 0)
+                                               return false;
+                                       startIndex = scanIndex - 1;
+                                       continue;
+                               }
+
+                               // Standard token
+                               int nextTokenIndex = tokenIndex - 1;
+                               if (nextTokenIndex < 0) {
+                                       // First token
+                                       ret.Add (tokenName, pathSegment.Substring (0, startIndex + 1));
+                                       continue;
+                               }
+
+                               if (startIndex == 0)
+                                       return false;
+                               
+                               var nextToken = tokens [nextTokenIndex];
+                               string nextTokenName = nextToken.Name;
+
+                               // Skip one char, since there can be no empty segments and if the
+                               // current token's value happens to be the same as preceeding
+                               // literal text, we'll save some time and complexity.
+                               scanIndex = startIndex - 1;
+                               int lastIndex = pathSegment.LastIndexOf (nextTokenName, scanIndex, StringComparison.OrdinalIgnoreCase);
+                               if (lastIndex == -1)
+                                       return false;
+
+                               lastIndex += nextTokenName.Length - 1;
+                                               
+                               string sectionValue = pathSegment.Substring (lastIndex + 1, startIndex - lastIndex);
+                               if (String.IsNullOrEmpty (sectionValue))
+                                       return false;
+
+                               ret.Add (tokenName, sectionValue);
+                               startIndex = lastIndex;
+                       }
+                       
+                       return true;
+               }
+
+               public RouteValueDictionary Match (string path, RouteValueDictionary defaults)
+               {
+                       var ret = new RouteValueDictionary ();
+                       string url = Url;
+                       string [] argSegs;
+                       int argsCount;
+                       
+                       if (String.IsNullOrEmpty (path)) {
+                               argSegs = null;
+                               argsCount = 0;
+                       } else {
+                               // quick check
+                               if (String.Compare (url, path, StringComparison.Ordinal) == 0 && url.IndexOf ('{') < 0)
+                                       return AddDefaults (ret, defaults);
+
+                               argSegs = path.Split ('/');
+                               argsCount = argSegs.Length;
+
+                               if (String.IsNullOrEmpty (argSegs [argsCount - 1]))
+                                       argsCount--; // path ends with a trailinig '/'
+                       }
+                       bool haveDefaults = defaults != null && defaults.Count > 0;
+
+                       if (argsCount == 1 && String.IsNullOrEmpty (argSegs [0]))
+                               argsCount = 0;
+                       
+                       if (!haveDefaults && ((haveSegmentWithCatchAll && argsCount < segmentCount) || (!haveSegmentWithCatchAll && argsCount != segmentCount)))
+                               return null;
+
+                       int i = 0;
+
+                       foreach (PatternSegment segment in segments) {
+                               if (i >= argsCount)
+                                       break;
+                               
+                               if (segment.AllLiteral) {
+                                       if (String.Compare (argSegs [i], segment.Tokens [0].Name, StringComparison.OrdinalIgnoreCase) != 0)
+                                               return null;
+                                       i++;
+                                       continue;
+                               }
+
+                               if (!MatchSegment (i, argsCount, argSegs, segment.Tokens, ret))
+                                       return null;
+                               i++;
+                       }
+
+                       // Check the remaining segments, if any, and see if they are required
+                       //
+                       // If a segment has more than one section (i.e. there's at least one
+                       // literal, then it cannot match defaults
+                       //
+                       // All of the remaining segments must have all defaults provided and they
+                       // must not be literals or the match will fail.
+                       if (i < segmentCount) {
+                               if (!haveDefaults)
+                                       return null;
+                               
+                               for (;i < segmentCount; i++) {
+                                       var segment = segments [i];
+                                       if (segment.AllLiteral)
+                                               return null;
+                                       
+                                       var tokens = segment.Tokens;
+                                       if (tokens.Count != 1)
+                                               return null;
+
+                                       // if token is catch-all, we're done.
+                                       if (tokens [0].Type == PatternTokenType.CatchAll)
+                                               break;
+
+                                       if (!defaults.ContainsKey (tokens [0].Name))
+                                               return null;
+                               }
+                       } else if (!haveSegmentWithCatchAll && argsCount > segmentCount)
+                               return null;
+                       
+                       return AddDefaults (ret, defaults);
+               }
+               
+               public string BuildUrl (Route route, RequestContext requestContext, RouteValueDictionary userValues, RouteValueDictionary constraints, out RouteValueDictionary usedValues)
+               {
+                       usedValues = null;
+
+                       if (requestContext == null)
+                               return null;
+
+                       RouteData routeData = requestContext.RouteData;
+                       var currentValues = routeData.Values ?? new RouteValueDictionary ();
+                       var values = userValues ?? new RouteValueDictionary ();
+                       var defaultValues = (route != null ? route.Defaults : null) ?? new RouteValueDictionary ();
+
+                       // The set of values we should be using when generating the URL in this route
+                       var acceptedValues = new RouteValueDictionary ();
+
+                       // Keep track of which new values have been used
+                       HashSet<string> unusedNewValues = new HashSet<string> (values.Keys, StringComparer.OrdinalIgnoreCase);
+
+                       // This route building logic is based on System.Web.Http's Routing code (which is Apache Licensed by MS)
+                       // and which can be found at mono's external/aspnetwebstack/src/System.Web.Http/Routing/HttpParsedRoute.cs
+                       // Hopefully this will ensure a much higher compatiblity with MS.NET's System.Web.Routing logic. (pruiz)
+
+                       #region Step 1: Get the list of values we're going to use to match and generate this URL
+                       // Find out which entries in the URL are valid for the URL we want to generate.
+                       // If the URL had ordered parameters a="1", b="2", c="3" and the new values
+                       // specified that b="9", then we need to invalidate everything after it. The new
+                       // values should then be a="1", b="9", c=<no value>.
+                       foreach (var item in parameterNames) {
+                               var parameterName = item.Key;
+
+                               object newParameterValue;
+                               bool hasNewParameterValue = values.TryGetValue (parameterName, out newParameterValue);
+                               if (hasNewParameterValue) {
+                                       unusedNewValues.Remove(parameterName);
+                               }
+
+                               object currentParameterValue;
+                               bool hasCurrentParameterValue = currentValues.TryGetValue (parameterName, out currentParameterValue);
+
+                               if (hasNewParameterValue && hasCurrentParameterValue) {
+                                       if (!ParametersAreEqual (currentParameterValue, newParameterValue)) {
+                                               // Stop copying current values when we find one that doesn't match
+                                               break;
+                                       }
+                               }
+
+                               // If the parameter is a match, add it to the list of values we will use for URL generation
+                               if (hasNewParameterValue) {
+                                       if (ParameterIsNonEmpty (newParameterValue)) {
+                                               acceptedValues.Add (parameterName, newParameterValue);
+                                       }
+                               }
+                               else {
+                                       if (hasCurrentParameterValue) {
+                                               acceptedValues.Add (parameterName, currentParameterValue);
+                                       }
+                               }
+                       }
+
+                       // Add all remaining new values to the list of values we will use for URL generation
+                       foreach (var newValue in values) {
+                               if (ParameterIsNonEmpty (newValue.Value) && !acceptedValues.ContainsKey (newValue.Key)) {
+                                       acceptedValues.Add (newValue.Key, newValue.Value);
+                               }
+                       }
+
+                       // Add all current values that aren't in the URL at all
+                       foreach (var currentValue in currentValues) {
+                               if (!acceptedValues.ContainsKey (currentValue.Key) && !parameterNames.ContainsKey (currentValue.Key)) {
+                                       acceptedValues.Add (currentValue.Key, currentValue.Value);
+                               }
+                       }
+
+                       // Add all remaining default values from the route to the list of values we will use for URL generation
+                       foreach (var item in parameterNames) {
+                               object defaultValue;
+                               if (!acceptedValues.ContainsKey (item.Key) && !IsParameterRequired (item.Key, defaultValues, out defaultValue)) {
+                                       // Add the default value only if there isn't already a new value for it and
+                                       // only if it actually has a default value, which we determine based on whether
+                                       // the parameter value is required.
+                                       acceptedValues.Add (item.Key, defaultValue);
+                               }
+                       }
+
+                       // All required parameters in this URL must have values from somewhere (i.e. the accepted values)
+                       foreach (var item in parameterNames) {
+                               object defaultValue;
+                               if (IsParameterRequired (item.Key, defaultValues, out defaultValue) && !acceptedValues.ContainsKey (item.Key)) {
+                                       // If the route parameter value is required that means there's
+                                       // no default value, so if there wasn't a new value for it
+                                       // either, this route won't match.
+                                       return null;
+                               }
+                       }
+
+                       // All other default values must match if they are explicitly defined in the new values
+                       var otherDefaultValues = new RouteValueDictionary (defaultValues);
+                       foreach (var item in parameterNames) {
+                               otherDefaultValues.Remove (item.Key);
+                       }
+
+                       foreach (var defaultValue in otherDefaultValues) {
+                               object value;
+                               if (values.TryGetValue (defaultValue.Key, out value)) {
+                                       unusedNewValues.Remove (defaultValue.Key);
+                                       if (!ParametersAreEqual (value, defaultValue.Value)) {
+                                               // If there is a non-parameterized value in the route and there is a
+                                               // new value for it and it doesn't match, this route won't match.
+                                               return null;
+                                       }
+                               }
+                       }
+                       #endregion
+
+                       #region Step 2: If the route is a match generate the appropriate URL
+
+                       var uri = new StringBuilder ();
+                       var pendingParts = new StringBuilder ();
+                       var pendingPartsAreAllSafe = false;
+                       bool blockAllUriAppends = false;
+                       var allSegments = new List<PatternSegment?> ();
+
+                       // Build a list of segments plus separators we can use as template.
+                       foreach (var segment in segments) {
+                               if (allSegments.Count > 0)
+                                       allSegments.Add (null); // separator exposed as null.
+                               allSegments.Add (segment);
+                       }
+
+                       // Finally loop thru al segment-templates building the actual uri.
+                       foreach (var item in allSegments) {
+                               var segment = item.GetValueOrDefault ();
+
+                               // If segment is a separator..
+                               if (item == null) {
+                                       if (pendingPartsAreAllSafe) {
+                                               // Accept
+                                               if (pendingParts.Length > 0) {
+                                                       if (blockAllUriAppends)
+                                                               return null;
+
+                                                       // Append any pending literals to the URL
+                                                       uri.Append (pendingParts.ToString ());
+                                                       pendingParts.Length = 0;
+                                               }
+                                       }
+                                       pendingPartsAreAllSafe = false;
+
+                                       // Guard against appending multiple separators for empty segments
+                                       if (pendingParts.Length > 0 && pendingParts[pendingParts.Length - 1] == '/') {
+                                               // Dev10 676725: Route should not be matched if that causes mismatched tokens
+                                               // Dev11 86819: We will allow empty matches if all subsequent segments are null
+                                               if (blockAllUriAppends)
+                                                       return null;
+
+                                               // Append any pending literals to the URI (without the trailing slash) and prevent any future appends
+                                               uri.Append(pendingParts.ToString (0, pendingParts.Length - 1));
+                                               pendingParts.Length = 0;
+                                       } else {
+                                               pendingParts.Append ("/");
+                                       }
+#if false
+                               } else if (segment.AllLiteral) {
+                                       // Spezial (optimized) case: all elements of segment are literals.
+                                       pendingPartsAreAllSafe = true;
+                                       foreach (var tk in segment.Tokens)
+                                               pendingParts.Append (tk.Name);
+#endif
+                               } else {
+                                       // Segments are treated as all-or-none. We should never output a partial segment.
+                                       // If we add any subsegment of this segment to the generated URL, we have to add
+                                       // the complete match. For example, if the subsegment is "{p1}-{p2}.xml" and we
+                                       // used a value for {p1}, we have to output the entire segment up to the next "/".
+                                       // Otherwise we could end up with the partial segment "v1" instead of the entire
+                                       // segment "v1-v2.xml".
+                                       bool addedAnySubsegments = false;
+
+                                       foreach (var token in segment.Tokens) {
+                                               if (token.Type == PatternTokenType.Literal) {
+                                                       // If it's a literal we hold on to it until we are sure we need to add it
+                                                       pendingPartsAreAllSafe = true;
+                                                       pendingParts.Append (token.Name);
+                                               } else {
+                                                       if (token.Type == PatternTokenType.Standard || token.Type == PatternTokenType.CatchAll) {
+                                                               if (pendingPartsAreAllSafe) {
+                                                                       // Accept
+                                                                       if (pendingParts.Length > 0) {
+                                                                               if (blockAllUriAppends)
+                                                                                       return null;
+
+                                                                               // Append any pending literals to the URL
+                                                                               uri.Append (pendingParts.ToString ());
+                                                                               pendingParts.Length = 0;
+
+                                                                               addedAnySubsegments = true;
+                                                                       }
+                                                               }
+                                                               pendingPartsAreAllSafe = false;
+
+                                                               // If it's a parameter, get its value
+                                                               object acceptedParameterValue;
+                                                               bool hasAcceptedParameterValue = acceptedValues.TryGetValue (token.Name, out acceptedParameterValue);
+                                                               if (hasAcceptedParameterValue)
+                                                                       unusedNewValues.Remove (token.Name);
+
+                                                               object defaultParameterValue;
+                                                               defaultValues.TryGetValue (token.Name, out defaultParameterValue);
+
+                                                               if (ParametersAreEqual (acceptedParameterValue, defaultParameterValue)) {
+                                                                       // If the accepted value is the same as the default value, mark it as pending since
+                                                                       // we won't necessarily add it to the URL we generate.
+                                                                       pendingParts.Append (Convert.ToString (acceptedParameterValue, CultureInfo.InvariantCulture));
+                                                               } else {
+                                                                       if (blockAllUriAppends)
+                                                                               return null;
+
+                                                                       // Add the new part to the URL as well as any pending parts
+                                                                       if (pendingParts.Length > 0) {
+                                                                               // Append any pending literals to the URL
+                                                                               uri.Append (pendingParts.ToString ());
+                                                                               pendingParts.Length = 0;
+                                                                       }
+                                                                       uri.Append (Convert.ToString (acceptedParameterValue, CultureInfo.InvariantCulture));
+
+                                                                       addedAnySubsegments = true;
+                                                               }
+                                                       } else {
+                                                               Debug.Fail ("Invalid path subsegment type");
+                                                       }
+                                               }
+                                       }
+
+                                       if (addedAnySubsegments) {
+                                               // See comment above about why we add the pending parts
+                                               if (pendingParts.Length > 0) {
+                                                       if (blockAllUriAppends)
+                                                               return null;
+
+                                                       // Append any pending literals to the URL
+                                                       uri.Append (pendingParts.ToString ());
+                                                       pendingParts.Length = 0;
+                                               }
+                                       }
+                               }
+                       }
+
+                       if (pendingPartsAreAllSafe) {
+                               // Accept
+                               if (pendingParts.Length > 0) {
+                                       if (blockAllUriAppends)
+                                               return null;
+
+                                       // Append any pending literals to the URI
+                                       uri.Append (pendingParts.ToString ());
+                               }
+                       }
+
+                       // Process constraints keys
+                       if (constraints != null) {
+                               // If there are any constraints, mark all the keys as being used so that we don't
+                               // generate query string items for custom constraints that don't appear as parameters
+                               // in the URI format.
+                               foreach (var constraintsItem in constraints) {
+                                       unusedNewValues.Remove (constraintsItem.Key);
+                               }
+                       }
+
+                       // Encode the URI before we append the query string, otherwise we would double encode the query string
+                       var encodedUri = new StringBuilder ();
+                       encodedUri.Append (UriEncode (uri.ToString ()));
+                       uri = encodedUri;
+
+                       // Add remaining new values as query string parameters to the URI
+                       if (unusedNewValues.Count > 0) {
+                               // Generate the query string
+                               bool firstParam = true;
+                               foreach (string unusedNewValue in unusedNewValues) {
+                                       object value;
+                                       if (acceptedValues.TryGetValue (unusedNewValue, out value)) {
+                                               uri.Append (firstParam ? '?' : '&');
+                                               firstParam = false;
+                                               uri.Append (Uri.EscapeDataString (unusedNewValue));
+                                               uri.Append ('=');
+                                               uri.Append (Uri.EscapeDataString (Convert.ToString (value, CultureInfo.InvariantCulture)));
+                                       }
+                               }
+                       }
+
+                       #endregion
+
+                       usedValues = acceptedValues;
+                       return uri.ToString();
+               }
+       }
+}
+
diff --git a/mcs/class/System.Web/System.Web.Routing/PatternToken.cs b/mcs/class/System.Web/System.Web.Routing/PatternToken.cs
new file mode 100644 (file)
index 0000000..5f40cee
--- /dev/null
@@ -0,0 +1,81 @@
+//
+// PatternToken.cs
+//
+// Author:
+//     Marek Habersack <mhabersack@novell.com>
+//
+// Copyright (C) 2009 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Text;
+using System.Web;
+
+namespace System.Web.Routing
+{
+       sealed class PatternToken
+       {
+               public PatternTokenType Type {
+                       get;
+                       private set;
+               }
+
+               public string Name {
+                       get;
+                       private set;
+               }
+
+               public PatternToken (PatternTokenType type, string name)
+               {
+                       this.Type = type;
+                       this.Name = name;
+               }
+
+               public override string ToString ()
+               {
+                       StringBuilder sb = new StringBuilder ();
+
+                       switch (Type) {
+                               case PatternTokenType.Standard:
+                                       sb.Append ("PatternToken_Standard");
+                                       break;
+
+                               case PatternTokenType.Literal:
+                                       sb.Append ("PatternToken_Literal");
+                                       break;
+
+                               case PatternTokenType.CatchAll:
+                                       sb.Append ("PatternToken_CatchAll");
+                                       break;
+
+                               default:
+                                       sb.Append ("PatternToken_UNKNOWN");
+                                       break;
+                       }
+
+                       sb.AppendFormat (" [Name = '{0}']", Name);
+
+                       return sb.ToString ();
+               }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web.Routing/PatternTokenType.cs b/mcs/class/System.Web/System.Web.Routing/PatternTokenType.cs
new file mode 100644 (file)
index 0000000..7321ca1
--- /dev/null
@@ -0,0 +1,40 @@
+//
+// PatternTokenType.cs
+//
+// Author:
+//     Marek Habersack <mhabersack@novell.com>
+//
+// Copyright (C) 2009 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+
+namespace System.Web.Routing
+{
+       enum PatternTokenType
+       {
+               Standard,
+               Literal,
+               CatchAll
+       }
+}
diff --git a/mcs/class/System.Web/System.Web.Routing/RequestContext.cs b/mcs/class/System.Web/System.Web.Routing/RequestContext.cs
new file mode 100644 (file)
index 0000000..62c6957
--- /dev/null
@@ -0,0 +1,61 @@
+//
+// RequestContext.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Web;
+
+namespace System.Web.Routing
+{
+       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class RequestContext
+       {
+               public RequestContext ()
+               {
+                       HttpContext = null;
+                       RouteData = null;
+               }
+               public RequestContext (HttpContextBase httpContext, RouteData routeData)
+               {
+                       if (httpContext == null)
+                               throw new ArgumentNullException ("httpContext");
+                       if (routeData == null)
+                               throw new ArgumentNullException ("routeData");
+
+                       HttpContext = httpContext;
+                       RouteData = routeData;
+               }
+
+               public virtual HttpContextBase HttpContext { get; set; }
+               public virtual RouteData RouteData { get; set; }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web.Routing/Route.cs b/mcs/class/System.Web/System.Web.Routing/Route.cs
new file mode 100644 (file)
index 0000000..0e28483
--- /dev/null
@@ -0,0 +1,262 @@
+//
+// Route.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Text.RegularExpressions;
+using System.Web;
+using System.Globalization;
+
+namespace System.Web.Routing
+{
+       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class Route : RouteBase
+       {
+               static readonly Type httpRequestBaseType = typeof (HttpRequestBase);
+               PatternParser url;
+
+               public RouteValueDictionary Constraints { get; set; }
+
+               public RouteValueDictionary DataTokens { get; set; }
+
+               public RouteValueDictionary Defaults { get; set; }
+
+               public IRouteHandler RouteHandler { get; set; }
+
+               public string Url {
+                       get { return url != null ? url.Url : String.Empty; }
+                       set { url = value != null ? new PatternParser (value) : new PatternParser (String.Empty); }
+               }
+
+               public Route (string url, IRouteHandler routeHandler)
+                       : this (url, null, routeHandler)
+               {
+               }
+
+               public Route (string url, RouteValueDictionary defaults, IRouteHandler routeHandler)
+                       : this (url, defaults, null, routeHandler)
+               {
+               }
+
+               public Route (string url, RouteValueDictionary defaults, RouteValueDictionary constraints, IRouteHandler routeHandler)
+                       : this (url, defaults, constraints, null, routeHandler)
+               {
+               }
+
+               public Route (string url, RouteValueDictionary defaults, RouteValueDictionary constraints, RouteValueDictionary dataTokens, IRouteHandler routeHandler)
+               {
+                       Url = url;
+                       Defaults = defaults;
+                       Constraints = constraints;
+                       DataTokens = dataTokens;
+                       RouteHandler = routeHandler;
+               }
+
+               public override RouteData GetRouteData (HttpContextBase httpContext)
+               {
+                       var path = httpContext.Request.AppRelativeCurrentExecutionFilePath;
+                       var pathInfo = httpContext.Request.PathInfo;
+
+                       if (!String.IsNullOrEmpty (pathInfo))
+                               path += pathInfo;
+
+                       // probably code like this causes ArgumentOutOfRangeException under .NET.
+                       // It somehow allows such path that is completely equivalent to the Url. Dunno why.
+                       if (Url != path && path.Substring (0, 2) != "~/")
+                               return null;
+                       path = path.Substring (2);
+
+                       var values = url.Match (path, Defaults);
+                       if (values == null)
+                               return null;
+
+                       if (!ProcessConstraints (httpContext, values, RouteDirection.IncomingRequest))
+                               return null;
+                       
+                       var rd = new RouteData (this, RouteHandler);
+                       RouteValueDictionary rdValues = rd.Values;
+                       
+                       foreach (var p in values)
+                               rdValues.Add (p.Key, p.Value);
+
+                       RouteValueDictionary dataTokens = DataTokens;
+                       if (dataTokens != null) {
+                               RouteValueDictionary rdDataTokens = rd.DataTokens;
+                               foreach (var token in dataTokens)
+                                       rdDataTokens.Add (token.Key, token.Value);
+                       }
+                       
+                       return rd;
+               }
+
+               public override VirtualPathData GetVirtualPath (RequestContext requestContext, RouteValueDictionary values)
+               {
+                       if (requestContext == null)
+                               throw new ArgumentNullException ("requestContext");
+                       if (url == null)
+                               return new VirtualPathData (this, String.Empty);
+
+                       // null values is allowed.
+                       // if (values == null)
+                       //      values = requestContext.RouteData.Values;
+
+                       RouteValueDictionary usedValues;
+                       string resultUrl = url.BuildUrl (this, requestContext, values, Constraints, out usedValues);
+
+                       if (resultUrl == null)
+                               return null;
+
+                       if (!ProcessConstraints (requestContext.HttpContext, usedValues, RouteDirection.UrlGeneration))
+                               return null;
+
+                       var result = new VirtualPathData (this, resultUrl);
+
+                       RouteValueDictionary dataTokens = DataTokens;
+                       if (dataTokens != null) {
+                               foreach (var item in dataTokens)
+                                       result.DataTokens[item.Key] = item.Value;
+                       }
+
+                       return result;
+               }
+
+               private bool ProcessConstraintInternal (HttpContextBase httpContext, Route route, object constraint, string parameterName,
+                                                               RouteValueDictionary values, RouteDirection routeDirection, RequestContext reqContext,
+                                                               out bool invalidConstraint)
+               {
+                       invalidConstraint = false;
+                       IRouteConstraint irc = constraint as IRouteConstraint;
+                       if (irc != null)
+                               return irc.Match (httpContext, route, parameterName, values, routeDirection);
+
+                       string s = constraint as string;
+                       if (s != null) {
+                               string v = null;
+                               object o;
+
+                               // NOTE: If constraint was not an IRouteConstraint, is is asumed
+                               // to be an object 'convertible' to string, or at least this is how
+                               // ASP.NET seems to work by the tests i've done latelly. (pruiz)
+
+                               if (values != null && values.TryGetValue (parameterName, out o))
+                                       v = Convert.ToString (o, CultureInfo.InvariantCulture);
+
+                               if (!String.IsNullOrEmpty (v))
+                                       return MatchConstraintRegex (v, s);
+                               else if (reqContext != null) {
+                                       RouteData rd = reqContext != null ? reqContext.RouteData : null;
+                                       RouteValueDictionary rdValues = rd != null ? rd.Values : null;
+
+                                       if (rdValues == null || rdValues.Count == 0)
+                                               return false;
+                                       
+                                       if (!rdValues.TryGetValue (parameterName, out o))
+                                               return false;
+
+                                       v = Convert.ToString (o, CultureInfo.InvariantCulture);
+                                       if (String.IsNullOrEmpty (v))
+                                               return false;
+
+                                       return MatchConstraintRegex (v, s);
+                               }
+                               return false;
+                       }
+
+                       invalidConstraint = true;
+                       return false;
+               }
+
+               static bool MatchConstraintRegex (string value, string constraint)
+               {
+                       int len = constraint.Length;
+                       if (len > 0) {
+                               // Bug #651966 - regexp constraints must be treated
+                               // as absolute expressions
+                               if (constraint [0] != '^') {
+                                       constraint = "^" + constraint;
+                                       len++;
+                               }
+
+                               if (constraint [len - 1] != '$')
+                                       constraint += "$";
+                       }
+
+                       return Regex.IsMatch (value, constraint, RegexOptions.CultureInvariant | RegexOptions.IgnoreCase | RegexOptions.Compiled);
+               }
+               
+               protected virtual bool ProcessConstraint (HttpContextBase httpContext, object constraint, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
+               {
+                       if (parameterName == null)
+                               throw new ArgumentNullException ("parameterName");
+
+                       // .NET "compatibility"
+                       if (values == null)
+                               throw new NullReferenceException ();
+
+                       RequestContext reqContext;
+                       reqContext = SafeGetContext (httpContext != null ? httpContext.Request : null);
+                       bool invalidConstraint;
+                       bool ret = ProcessConstraintInternal (httpContext, this, constraint, parameterName, values, routeDirection, reqContext, out invalidConstraint);
+                       
+                       if (invalidConstraint)
+                               throw new InvalidOperationException (
+                                       String.Format (
+                                               "Constraint parameter '{0}' on the route with URL '{1}' must have a string value type or be a type which implements IRouteConstraint",
+                                               parameterName, Url
+                                       )
+                               );
+
+                       return ret;
+               }
+
+               private bool ProcessConstraints (HttpContextBase httpContext, RouteValueDictionary values, RouteDirection routeDirection)
+               {
+                       var constraints = Constraints;
+
+                       if (Constraints != null) {
+                               foreach (var p in constraints)
+                                       if (!ProcessConstraint (httpContext, p.Value, p.Key, values, routeDirection))
+                                               return false;
+                       }
+
+                       return true;
+               }
+
+               RequestContext SafeGetContext (HttpRequestBase req)
+               {
+                       if (req == null || req.GetType () != httpRequestBaseType)
+                               return null;
+                               
+                       return req.RequestContext;
+               }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web.Routing/RouteCollection.cs b/mcs/class/System.Web/System.Web.Routing/RouteCollection.cs
new file mode 100644 (file)
index 0000000..d53c063
--- /dev/null
@@ -0,0 +1,268 @@
+//
+// RouteCollection.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Web;
+using System.Web.Hosting;
+
+namespace System.Web.Routing
+{
+       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class RouteCollection : Collection<RouteBase>
+       {
+               class Lock : IDisposable
+               {
+                       //RouteCollection owner;
+                       //bool read;
+
+                       public Lock (RouteCollection owner, bool read)
+                       {
+                               //this.owner = owner;
+                               //this.read = read;
+                       }
+
+                       public void Dispose ()
+                       {
+                               //if (read)
+                               //      owner.read_lock = null;
+                               //else
+                               //      owner_write_lock = null;
+                       }
+               }
+
+               public RouteCollection ()
+                       : this (null)
+               {
+               }
+
+               public RouteCollection (VirtualPathProvider virtualPathProvider)
+               {
+                       // null argument is allowed
+                       //provider = virtualPathProvider;
+
+                       read_lock = new Lock (this, true);
+                       write_lock = new Lock (this, false);
+               }
+
+               //VirtualPathProvider provider;
+               Dictionary<string,RouteBase> d = new Dictionary<string,RouteBase> ();
+
+               Lock read_lock, write_lock;
+
+               public RouteBase this [string name] {
+                       get {
+                               foreach (var p in d)
+                                       if (p.Key == name)
+                                               return p.Value;
+                               return null;
+                       }
+               }
+
+               public bool LowercaseUrls { get; set; }
+               public bool AppendTrailingSlash { get; set; }
+               public bool RouteExistingFiles { get; set; }
+
+               public void Add (string name, RouteBase item)
+               {
+                       lock (GetWriteLock ()) {
+                               base.Add (item);
+                               if (!String.IsNullOrEmpty (name))
+                                       d.Add (name, item);
+                       }
+               }
+
+               protected override void ClearItems ()
+               {
+                       lock (GetWriteLock ())
+                               base.ClearItems ();
+               }
+
+               public IDisposable GetReadLock ()
+               {
+                       return read_lock;
+               }
+
+               public RouteData GetRouteData (HttpContextBase httpContext)
+               {
+                       if (httpContext == null)
+                               throw new ArgumentNullException ("httpContext");
+
+                       if (httpContext.Request == null)
+                               throw new ArgumentException ("The context does not contain any request data.", "httpContext");
+                       if (Count == 0)
+                               return null;
+                       if (!RouteExistingFiles) {
+                               var path = httpContext.Request.AppRelativeCurrentExecutionFilePath;
+                               VirtualPathProvider vpp = HostingEnvironment.VirtualPathProvider;
+                               if (path != "~/" && vpp != null && (vpp.FileExists (path) || vpp.DirectoryExists (path)))
+                                       return null;
+                       }
+                       foreach (RouteBase rb in this) {
+                               var rd = rb.GetRouteData (httpContext);
+                               if (rd != null)
+                                       return rd;
+                       }
+
+                       return null;
+               }
+
+               public VirtualPathData GetVirtualPath (RequestContext requestContext, RouteValueDictionary values)
+               {
+                       return GetVirtualPath (requestContext, null, values);
+               }
+
+               public VirtualPathData GetVirtualPath (RequestContext requestContext, string name, RouteValueDictionary values)
+               {
+                       if (requestContext == null)
+                               throw new ArgumentNullException ("httpContext");
+                       VirtualPathData vp = null;
+                       if (!String.IsNullOrEmpty (name)) {
+                               RouteBase rb = this [name];
+                               if (rb != null)
+                                       vp = rb.GetVirtualPath (requestContext, values);
+                               else
+                                       throw new ArgumentException ("A route named '" + name + "' could not be found in the route collection.", "name");
+                       } else {
+                               foreach (RouteBase rb in this) {
+                                       vp = rb.GetVirtualPath (requestContext, values);
+                                       if (vp != null)
+                                               break;
+                               }
+                       }
+
+                       if (vp != null) {
+                               string appPath = requestContext.HttpContext.Request.ApplicationPath;
+                               if (appPath != null && (appPath.Length == 0 || !appPath.EndsWith ("/", StringComparison.Ordinal)))
+                                       appPath += "/";
+                               
+                               string pathWithApp = String.Concat (appPath, vp.VirtualPath);
+                               vp.VirtualPath = requestContext.HttpContext.Response.ApplyAppPathModifier (pathWithApp);
+                               return vp;
+                       }
+
+                       return null;
+               }
+
+               public IDisposable GetWriteLock ()
+               {
+                       return write_lock;
+               }
+               public void Ignore (string url)
+               {
+                       Ignore (url, null);
+               }
+
+               public void Ignore (string url, object constraints)
+               {
+                       if (url == null)
+                               throw new ArgumentNullException ("url");
+
+                       Add (new Route (url, null, new RouteValueDictionary (constraints), new StopRoutingHandler ()));
+               }
+               
+               public Route MapPageRoute (string routeName, string routeUrl, string physicalFile)
+               {
+                       return MapPageRoute (routeName, routeUrl, physicalFile, true, null, null, null);
+               }
+
+               public Route MapPageRoute (string routeName, string routeUrl, string physicalFile, bool checkPhysicalUrlAccess)
+               {
+                       return MapPageRoute (routeName, routeUrl, physicalFile, checkPhysicalUrlAccess, null, null, null);
+               }
+
+               public Route MapPageRoute (string routeName, string routeUrl, string physicalFile, bool checkPhysicalUrlAccess,
+                                          RouteValueDictionary defaults)
+               {
+                       return MapPageRoute (routeName, routeUrl, physicalFile, checkPhysicalUrlAccess, defaults, null, null);
+               }
+
+               public Route MapPageRoute (string routeName, string routeUrl, string physicalFile, bool checkPhysicalUrlAccess,
+                                          RouteValueDictionary defaults, RouteValueDictionary constraints)
+               {
+                       return MapPageRoute (routeName, routeUrl, physicalFile, checkPhysicalUrlAccess, defaults, constraints, null);
+               }
+
+               public Route MapPageRoute (string routeName, string routeUrl, string physicalFile, bool checkPhysicalUrlAccess,
+                                          RouteValueDictionary defaults, RouteValueDictionary constraints, RouteValueDictionary dataTokens)
+               {
+                       if (routeUrl == null)
+                               throw new ArgumentNullException ("routeUrl");
+                       
+                       var route = new Route (routeUrl, defaults, constraints, dataTokens, new PageRouteHandler (physicalFile, checkPhysicalUrlAccess));
+                       Add (routeName, route);
+
+                       return route;
+               }
+               protected override void InsertItem (int index, RouteBase item)
+               {
+                       // FIXME: what happens wrt its name?
+                       lock (GetWriteLock ())
+                               base.InsertItem (index, item);
+               }
+
+               protected override void RemoveItem (int index)
+               {
+                       // FIXME: what happens wrt its name?
+                       lock (GetWriteLock ()) {
+                               string k = GetKey (index);
+                               base.RemoveItem (index);
+                               if (k != null)
+                                       d.Remove (k);
+                       }
+               }
+
+               protected override void SetItem (int index, RouteBase item)
+               {
+                       // FIXME: what happens wrt its name?
+                       lock (GetWriteLock ()) {
+                               string k = GetKey (index);
+                               base.SetItem (index, item);
+                               if (k != null)
+                                       d.Remove (k);
+                       }
+               }
+
+               string GetKey (int index)
+               {
+                       var item = this [index];
+                       foreach (var p in d)
+                               if (p.Value == item)
+                                       return p.Key;
+                       return null;
+               }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web.Routing/RouteData.cs b/mcs/class/System.Web/System.Web.Routing/RouteData.cs
new file mode 100644 (file)
index 0000000..4ae2289
--- /dev/null
@@ -0,0 +1,76 @@
+//
+// RouteData.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Web;
+
+namespace System.Web.Routing
+{
+       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class RouteData
+       {
+               public RouteData ()
+                       : this (null, null)
+               {
+               }
+
+               public RouteData (RouteBase route, IRouteHandler routeHandler)
+               {
+                       // arguments can be null.
+                       Route = route;
+                       RouteHandler = routeHandler;
+
+                       DataTokens = new RouteValueDictionary ();
+                       Values = new RouteValueDictionary ();
+               }
+
+               public RouteValueDictionary DataTokens { get; private set; }
+
+               public RouteBase Route { get; set; }
+
+               public IRouteHandler RouteHandler { get; set; }
+
+               public RouteValueDictionary Values { get; private set; }
+
+               public string GetRequiredString (string valueName)
+               {
+                       object o;
+                       if (!Values.TryGetValue (valueName, out o))
+                               throw new InvalidOperationException (String.Format ("value name {0} does not match any of the values.", valueName));
+                       string s = o as string;
+                       if (String.IsNullOrEmpty (s))
+                               throw new InvalidOperationException (String.Format ("The value for the name {0} must be a non-empty string", valueName));
+                       return s;
+               }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web.Routing/RouteDirection.cs b/mcs/class/System.Web/System.Web.Routing/RouteDirection.cs
new file mode 100644 (file)
index 0000000..693d1dc
--- /dev/null
@@ -0,0 +1,40 @@
+//
+// RouteDirection.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System.Runtime.CompilerServices;
+
+namespace System.Web.Routing
+{
+       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       public enum RouteDirection
+       {
+               IncomingRequest,
+               UrlGeneration
+       }
+}
diff --git a/mcs/class/System.Web/System.Web.Routing/RouteTable.cs b/mcs/class/System.Web/System.Web.Routing/RouteTable.cs
new file mode 100644 (file)
index 0000000..ff0bc2e
--- /dev/null
@@ -0,0 +1,49 @@
+//
+// RouteTable.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Web;
+
+namespace System.Web.Routing
+{
+       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class RouteTable
+       {
+               static RouteTable ()
+               {
+                       Routes = new RouteCollection ();
+               }
+
+               public static RouteCollection Routes { get; private set; }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web.Routing/RouteValueDictionary.cs b/mcs/class/System.Web/System.Web.Routing/RouteValueDictionary.cs
new file mode 100644 (file)
index 0000000..eeef0dd
--- /dev/null
@@ -0,0 +1,184 @@
+//
+// RouteValueDictionary.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Web;
+
+using PairCollection = System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>;
+
+namespace System.Web.Routing
+{
+       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class RouteValueDictionary : IDictionary<string, object>
+       {
+               internal class CaseInsensitiveStringComparer : IEqualityComparer<string>
+               {
+                       public static readonly CaseInsensitiveStringComparer Instance = new CaseInsensitiveStringComparer ();
+
+                       public int GetHashCode (string obj)
+                       {
+                               return obj.ToLower (CultureInfo.InvariantCulture).GetHashCode ();
+                       }
+
+                       public bool Equals (string obj1, string obj2)
+                       {
+                               return String.Equals (obj1, obj2, StringComparison.OrdinalIgnoreCase);
+                       }
+               }
+
+               Dictionary<string,object> d = new Dictionary<string,object> (CaseInsensitiveStringComparer.Instance);
+
+               public RouteValueDictionary ()
+               {
+               }
+
+               public RouteValueDictionary (IDictionary<string, object> dictionary)
+               {
+                       if (dictionary == null)
+                               throw new ArgumentNullException ("dictionary");
+                       foreach (var p in dictionary)
+                               Add (p.Key, p.Value);
+               }
+
+               public RouteValueDictionary (object values) // anonymous type instance
+               {
+                       if (values == null)
+                               return;
+
+                       foreach (var pi in values.GetType ().GetProperties ()) {
+                               try {
+                                       Add (pi.Name, pi.GetValue (values, null));
+                               } catch {
+                                       // ignore
+                               }
+                       }
+               }
+
+               public int Count {
+                       get { return d.Count; }
+               }
+
+               bool PairCollection.IsReadOnly {
+                       get { return ((PairCollection) d).IsReadOnly; }
+               }
+
+               ICollection<string> IDictionary<string, object>.Keys {
+                       get { return d.Keys; }
+               }
+
+               ICollection<Object> IDictionary<string, object>.Values {
+                       get { return d.Values; }
+               }
+
+               public object this [string key] {
+                       get { object v; return d.TryGetValue (key, out v) ? v : null; }
+                       set { d [key] = value; }
+               }
+
+               public Dictionary<string, object>.KeyCollection Keys {
+                       get { return d.Keys; }
+               }
+
+               public Dictionary<string, object>.ValueCollection Values {
+                       get { return d.Values; }
+               }
+
+               public void Add (string key, object value)
+               {
+                       d.Add (key, value);
+               }
+
+               public void Clear ()
+               {
+                       d.Clear ();
+               }
+
+               public bool ContainsKey (string key)
+               {
+                       return d.ContainsKey (key);
+               }
+
+               public bool ContainsValue (object value)
+               {
+                       return d.ContainsValue (value);
+               }
+
+               public Dictionary<string, object>.Enumerator GetEnumerator ()
+               {
+                       return d.GetEnumerator ();
+               }
+
+               void ICollection<KeyValuePair<string, object>>.Add (KeyValuePair<string, object> item)
+               {
+                       ((PairCollection) d).Add (item);
+               }
+
+               bool ICollection<KeyValuePair<string, object>>.Contains (KeyValuePair<string, object> item)
+               {
+                       return ((PairCollection) d).Contains (item);
+               }
+
+               void ICollection<KeyValuePair<string, object>>.CopyTo (KeyValuePair<string, object> [] array, int arrayIndex)
+               {
+                       ((PairCollection) d).CopyTo (array, arrayIndex);
+               }
+
+               bool ICollection<KeyValuePair<string, object>>.Remove (KeyValuePair<string, object> item)
+               {
+                       return ((PairCollection) d).Remove (item);
+               }
+
+               IEnumerator<KeyValuePair<string, object>> IEnumerable<KeyValuePair<string, object>>.GetEnumerator()
+               {
+                       return d.GetEnumerator ();
+               }
+
+               IEnumerator IEnumerable.GetEnumerator ()
+               {
+                       return d.GetEnumerator ();
+               }
+
+               public bool Remove (string key)
+               {
+                       return d.Remove (key);
+               }
+
+               public bool TryGetValue (string key, out object value)
+               {
+                       return d.TryGetValue (key, out value);
+               }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web.Routing/RouteValueDictionaryExtensions.cs b/mcs/class/System.Web/System.Web.Routing/RouteValueDictionaryExtensions.cs
new file mode 100644 (file)
index 0000000..b73719a
--- /dev/null
@@ -0,0 +1,101 @@
+//
+// PatternParser.cs
+//
+// Author:
+//      Marek Habersack <mhabersack@novell.com>
+//
+// Copyright (C) 2009 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if SYSTEMCORE_DEP
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+
+namespace System.Web.Routing
+{
+       static class RouteValueDictionaryExtensions
+       {
+               public static bool Has (this RouteValueDictionary dict, string key)
+               {
+                       if (dict == null)
+                               return false;
+                       
+                       return dict.ContainsKey (key);
+               }
+
+               public static bool Has (this RouteValueDictionary dict, string key, object value)
+               {
+                       if (dict == null)
+                               return false;
+
+                       object entryValue;
+                       if (dict.TryGetValue (key, out entryValue)) {
+                               if (value is string) {
+                                       if (!(entryValue is string))
+                                               return false;
+                                       
+                                       string s1 = value as string;
+                                       string s2 = entryValue as string;
+                                       return String.Compare (s1, s2, StringComparison.OrdinalIgnoreCase) == 0;
+                               }
+                               
+                               return entryValue == null ? value == null : entryValue.Equals (value);
+                       }
+                       
+                       return false;
+               }
+
+               public static bool GetValue (this RouteValueDictionary dict, string key, out object value)
+               {
+                       if (dict == null) {
+                               value = null;
+                               return false;
+                       }
+
+                       return dict.TryGetValue (key, out value);
+               }
+
+               [Conditional ("DEBUG")]
+               public static void Dump (this RouteValueDictionary dict, string name, string indent)
+               {
+                       if (indent == null)
+                               indent = String.Empty;
+                       
+                       if (dict == null) {
+                               Console.WriteLine (indent + "Dictionary '{0}' is null", name);
+                               return;
+                       }
+                       
+                       if (dict.Count == 0) {
+                               Console.WriteLine (indent + "Dictionary '{0}' is empty", name);
+                               return;
+                       }
+
+                       Console.WriteLine (indent + "Dictionary '{0}':", name);
+                       foreach (var de in dict)
+                               Console.WriteLine (indent + "\t'{0}' == {1}", de.Key, de.Value);
+               }
+       }
+}
+#endif
diff --git a/mcs/class/System.Web/System.Web.Routing/StopRoutingHandler.cs b/mcs/class/System.Web/System.Web.Routing/StopRoutingHandler.cs
new file mode 100644 (file)
index 0000000..8e67ad1
--- /dev/null
@@ -0,0 +1,52 @@
+//
+// StopRoutingHandler.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Web;
+
+namespace System.Web.Routing
+{
+       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class StopRoutingHandler : IRouteHandler
+       {
+               protected virtual IHttpHandler GetHttpHandler (RequestContext requestContext)
+               {
+                       throw new NotSupportedException ();
+               }
+
+               IHttpHandler IRouteHandler.GetHttpHandler (RequestContext requestContext)
+               {
+                       return GetHttpHandler (requestContext);
+               }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web.Routing/UrlRoutingHandler.cs b/mcs/class/System.Web/System.Web.Routing/UrlRoutingHandler.cs
new file mode 100644 (file)
index 0000000..f067b5f
--- /dev/null
@@ -0,0 +1,88 @@
+//
+// UrlRoutingHandler.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008-2010 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Web;
+
+namespace System.Web.Routing
+{
+       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public abstract class UrlRoutingHandler : IHttpHandler
+       {
+               RouteCollection routes;
+
+               bool IHttpHandler.IsReusable {
+                       get { return IsReusable; }
+               }
+
+               protected virtual bool IsReusable { get { return false; } }
+
+               public RouteCollection RouteCollection {
+                       get {
+                               if (routes == null)
+                                       routes = RouteTable.Routes;
+                               return routes;
+                       }
+                       set { routes = value; }
+               }
+
+               void IHttpHandler.ProcessRequest (HttpContext context)
+               {
+                       ProcessRequest (context);
+               }
+
+               protected virtual void ProcessRequest (HttpContext httpContext)
+               {
+                       ProcessRequest (new HttpContextWrapper (httpContext));
+               }
+
+               protected virtual void ProcessRequest (HttpContextBase httpContext)
+               {
+                       if (httpContext == null)
+                               throw new ArgumentNullException ("httpContext");
+
+                       var rd = RouteCollection.GetRouteData (httpContext);
+                       if (rd == null)
+                               throw new HttpException ("The incoming request does not match any route");
+                       if (rd.RouteHandler == null)
+                               throw new InvalidOperationException ("No  IRouteHandler is assigned to the selected route");
+
+                       RequestContext rc = new RequestContext (httpContext, rd);
+
+                       var hh = rd.RouteHandler.GetHttpHandler (rc);
+                       VerifyAndProcessRequest (hh, httpContext);
+               }
+
+               protected abstract void VerifyAndProcessRequest (IHttpHandler httpHandler, HttpContextBase httpContext);
+       }
+}
diff --git a/mcs/class/System.Web/System.Web.Routing/UrlRoutingModule.cs b/mcs/class/System.Web/System.Web.Routing/UrlRoutingModule.cs
new file mode 100644 (file)
index 0000000..6fad095
--- /dev/null
@@ -0,0 +1,114 @@
+//
+// UrlRoutingModule.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Threading;
+using System.Web;
+
+namespace System.Web.Routing
+{
+       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class UrlRoutingModule : IHttpModule
+       {
+               RouteCollection routes;
+               public RouteCollection RouteCollection {
+                       get {
+                               if (routes == null)
+                                       routes = RouteTable.Routes;
+                               return routes;
+                       }
+                       set { routes = value; }
+               }
+
+               protected virtual void Dispose ()
+               {
+               }
+
+               void IHttpModule.Dispose ()
+               {
+                       Dispose ();
+               }
+
+               void IHttpModule.Init (HttpApplication application)
+               {
+                       Init (application);
+               }
+
+               protected virtual void Init (HttpApplication application)
+               {
+                       application.PostMapRequestHandler += PostMapRequestHandler;
+                       application.PostResolveRequestCache += PostResolveRequestCache;
+               }
+
+               void PostMapRequestHandler (object o, EventArgs e)
+               {
+                       var app = (HttpApplication) o;
+                       PostMapRequestHandler (new HttpContextWrapper (app.Context));
+               }
+
+               void PostResolveRequestCache (object o, EventArgs e)
+               {
+                       var app = (HttpApplication) o;
+                       PostResolveRequestCache (new HttpContextWrapper (app.Context));
+               }
+               [Obsolete]
+               public virtual void PostMapRequestHandler (HttpContextBase context)
+               {
+               }
+
+               [MonoTODO]
+               public virtual void PostResolveRequestCache (HttpContextBase context)
+               {
+                       if (context == null)
+                               throw new ArgumentNullException ("context");
+
+                       var rd = RouteCollection.GetRouteData (context);
+                       if (rd == null)
+                               return; // do nothing
+
+                       if (rd.RouteHandler == null)
+                               throw new InvalidOperationException ("No  IRouteHandler is assigned to the selected route");
+
+                       if (rd.RouteHandler is StopRoutingHandler)
+                               return; //stop further processing
+                       
+                       var rc = new RequestContext (context, rd);
+
+                       IHttpHandler http = rd.RouteHandler.GetHttpHandler (rc);
+                       if (http == null)
+                               throw new InvalidOperationException ("The mapped IRouteHandler did not return an IHttpHandler");
+                       context.Request.RequestContext = rc;
+                       context.RemapHandler (http);
+               }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web.Routing/VirtualPathData.cs b/mcs/class/System.Web/System.Web.Routing/VirtualPathData.cs
new file mode 100644 (file)
index 0000000..3449b3b
--- /dev/null
@@ -0,0 +1,56 @@
+//
+// VirtualPathData.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Web;
+
+namespace System.Web.Routing
+{
+       [TypeForwardedFrom ("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class VirtualPathData
+       {
+               public VirtualPathData (RouteBase route, string virtualPath)
+               {
+                       // arguments can be null.
+                       Route = route;
+                       VirtualPath = virtualPath;
+                       DataTokens = new RouteValueDictionary ();
+               }
+
+               public RouteValueDictionary DataTokens { get; private set; }
+
+               public RouteBase Route { get; set; }
+
+               public string VirtualPath { get; set; }
+       }
+}
index 865c463688d36b2aebcceaf22ded597e2ec1ce44..0bde072c28a014541503b8957ddcbbd8ae1946a7 100644 (file)
@@ -248,11 +248,6 @@ namespace System.Web.UI.WebControls {
                                writer.Write (s);
                                writer.RenderEndTag ();
                        }
-// #if !NET_4_0
-//                     else if (HasControls ()) {
-//                             writer.Indent++;
-//                     }
-// #endif
                }
 
                void IPostBackEventHandler.RaisePostBackEvent (string argument)
index 2a2800483afb18d95988e12e0bf52c75dd0b0380..abf6238524544173140691a58a874377c05c27ee 100644 (file)
@@ -35,7 +35,7 @@ using System.Collections.Generic;
 using System.Configuration;
 using System.IO;
 using System.Text;
-#if NET_4_0 && !MOBILE
+#if !NO_SYSTEM_WEB_DEPENDENCY && !MOBILE
 using System.Web.Configuration;
 #endif
 
@@ -163,7 +163,7 @@ namespace System.Web.Util
 
                static HttpEncoder GetCustomEncoderFromConfig ()
                {
-#if MOBILE
+#if MOBILE || NO_SYSTEM_WEB_DEPENDENCY
                        return defaultEncoder.Value;
 #else
                        var cfg = HttpRuntime.Section;
index ef284f5be93c950441b8f4fe0de69a1672115656..c300b3d90010ee658e1e822157ecd1a83a220402 100644 (file)
@@ -409,7 +409,7 @@ System.Web.Profile/ProfileAutoSaveEventHandler.cs
 System.Web.Profile/ProfileBase.cs
 System.Web.Profile/ProfileEventArgs.cs
 System.Web.Profile/ProfileEventHandler.cs
-System.Web.Profile/ProfileGroupBase.cs
+../../../external/referencesource/System.Web/Profile/HttpProfileGroupBase.cs
 System.Web.Profile/ProfileInfoCollection.cs
 System.Web.Profile/ProfileInfo.cs
 System.Web.Profile/ProfileManager.cs
@@ -1218,5 +1218,123 @@ System.Web/WebROCollection.cs
 System.Web/WebSysDescriptionAttribute.cs
 System.Web/XmlSiteMapProvider.cs
 
+System.Web/IHtmlString.cs
+System.Web/HtmlString.cs
+System.Web/PreApplicationStartMethodAttribute.cs
+
+System.Web.Caching/FileResponseElement.cs
+System.Web.Caching/HeaderElement.cs
+System.Web.Caching/IOutputCacheEntry.cs
+System.Web.Caching/MemoryResponseElement.cs
+System.Web.Caching/OutputCache.cs
+System.Web.Caching/OutputCacheProviderCollection.cs
+System.Web.Caching/ResponseElement.cs
+System.Web.Caching/SubstitutionResponseElement.cs
+System.Web.Configuration_2.0/VersionConverter.cs
+System.Web.Configuration_2.0/MachineKeyCompatibilityMode.cs
+System.Web.Configuration_2.0/HttpCapabilitiesProvider.cs
+System.Web.Configuration_2.0/HttpCapabilitiesDefaultProvider.cs
+System.Web.Compilation/FolderLevelBuildProviderAppliesTo.cs
+System.Web.Compilation/FolderLevelBuildProviderAppliesToAttribute.cs
+System.Web.Compilation/RouteUrlExpressionBuilder.cs
+System.Web.Compilation/RouteValueExpressionBuilder.cs
+System.Web.Security/MachineKey.cs
+System.Web.Security/MachineKeyProtection.cs
+System.Web.SessionState_2.0/SessionStateBehavior.cs
+System.Web.Routing/PageRouteHandler.cs
+System.Web.UI/ClientIDMode.cs
+System.Web.UI/DataKeyPropertyAttribute.cs
+System.Web.UI/FileLevelMasterPageControlBuilder.cs
+System.Web.UI/IDataKeysControl.cs
+System.Web.UI/ViewStateMode.cs
+System.Web.UI.WebControls/IDataBoundControl.cs
+System.Web.UI.WebControls/IDataBoundItemControl.cs
+System.Web.UI.WebControls/IDataBoundListControl.cs
+System.Web.UI.WebControls/IFieldControl.cs
+System.Web.UI.WebControls/IRenderOuterTable.cs
+System.Web.UI.WebControls/MenuListRenderer.cs
+System.Web.UI.WebControls/MenuRenderingMode.cs
+System.Web.UI.WebControls/NamedCssStyleCollection.cs
+System.Web.UI.WebControls/RouteParameter.cs
+System.Web.UI.WebControls/StyleBlock.cs
+System.Web.UI.WebControls/WizardLayoutContainer.cs
+System.Web.UI.WebControls/WizardLayoutNavigationContainer.cs
+System.Web.Util/SimpleWebObjectFactory.cs
+System.Web.Util/RequestValidationSource.cs
+System.Web.Util/RequestValidator.cs
+
+System.Web.Routing/HttpMethodConstraint.cs
+System.Web.Routing/IRouteConstraint.cs
+System.Web.Routing/IRouteHandler.cs
+System.Web.Routing/PatternParser.cs
+System.Web.Routing/PatternToken.cs
+System.Web.Routing/PatternTokenType.cs
+System.Web.Routing/RequestContext.cs
+System.Web.Routing/Route.cs
+../../../external/referencesource/System.Web/Routing/RouteBase.cs
+System.Web.Routing/RouteCollection.cs
+System.Web.Routing/RouteData.cs
+System.Web.Routing/RouteDirection.cs
+System.Web.Routing/RouteTable.cs
+System.Web.Routing/RouteValueDictionary.cs
+System.Web.Routing/RouteValueDictionaryExtensions.cs
+System.Web.Routing/StopRoutingHandler.cs
+System.Web.Routing/UrlRoutingHandler.cs
+System.Web.Routing/UrlRoutingModule.cs
+System.Web.Routing/VirtualPathData.cs
+
+../../../external/referencesource/System.Web/Abstractions/HttpApplicationStateBase.cs
+System.Web/HttpApplicationStateWrapper.cs
+../../../external/referencesource/System.Web/Abstractions/HttpBrowserCapabilitiesBase.cs
+System.Web/HttpBrowserCapabilitiesWrapper.cs
+../../../external/referencesource/System.Web/Abstractions/HttpCachePolicyBase.cs
+System.Web/HttpCachePolicyWrapper.cs
+System.Web/HttpContextBase.cs
+System.Web/HttpContextWrapper.cs
+../../../external/referencesource/System.Web/Abstractions/HttpFileCollectionBase.cs
+System.Web/HttpFileCollectionWrapper.cs
+../../../external/referencesource/System.Web/Abstractions/HttpPostedFileBase.cs
+../../../external/referencesource/System.Web/Abstractions/HttpPostedFileWrapper.cs
+../../../external/referencesource/System.Web/Abstractions/HttpRequestBase.cs
+System.Web/HttpRequestWrapper.cs
+../../../external/referencesource/System.Web/Abstractions/HttpResponseBase.cs
+System.Web/HttpResponseWrapper.cs
+../../../external/referencesource/System.Web/Abstractions/HttpServerUtilityBase.cs
+System.Web/HttpServerUtilityWrapper.cs
+../../../external/referencesource/System.Web/Abstractions/HttpSessionStateBase.cs
+System.Web/HttpSessionStateWrapper.cs
+../../../external/referencesource/System.Web/Abstractions/HttpStaticObjectsCollectionBase.cs
+../../../external/referencesource/System.Web/Abstractions/HttpStaticObjectsCollectionWrapper.cs
+
 System.Collections.Concurrent/SplitOrderedList.cs
 
+System.Web/EventHandlerTaskAsyncHelper.cs
+System.Web/HttpTaskAsyncHandler.cs
+System.Web/MimeMapping.cs
+System.Web/ReadEntityBodyMode.cs
+System.Web/UnvalidatedRequestValues.cs
+../../../external/referencesource/System.Web/UnvalidatedRequestValuesWrapper.cs
+../../../external/referencesource/System.Web/UnvalidatedRequestValuesBase.cs
+System.Web/TaskAsyncResult.cs
+System.Web/TaskEventHandler.cs
+System.Web.Security/MembershipPasswordAttribute.cs
+System.Web/DynamicModuleManager.cs
+
+../../../external/referencesource/System.Web/ISubscriptionToken.cs
+
+../../../external/referencesource/System.Web/ModelBinding/IModelNameProvider.cs
+../../../external/referencesource/System.Web/ModelBinding/BindingBehaviorAttribute.cs
+../../../external/referencesource/System.Web/ModelBinding/BindingBehavior.cs
+../../../external/referencesource/System.Web/ModelBinding/BindNeverAttribute.cs
+../../../external/referencesource/System.Web/ModelBinding/BindRequiredAttribute.cs
+../../../external/referencesource/System.Web/ModelBinding/ExtensibleModelBinderAttribute.cs
+../../../external/referencesource/System.Web/ModelBinding/ModelBinderProviderOptionsAttribute.cs
+
+../../../external/referencesource/System.Web/Security/AntiXss/CodeCharts.cs
+
+../../../external/referencesource/System.Web/UI/WebParts/WebBrowsableAttribute.cs
+../../../external/referencesource/System.Web/UI/WebParts/WebDescriptionAttribute.cs
+../../../external/referencesource/System.Web/UI/WebParts/WebDisplayNameAttribute.cs
+
+../../../external/referencesource/System.Web/WebSockets/AspNetWebSocketOptions.cs
+../../../external/referencesource/System.Web/WebSockets/SubprotocolUtil.cs
index 34c2d105769aa4f5623694fd0d1d903d48c81039..c2fc0ddb71ae5bbf874342c83b0346b0d993afc6 100644 (file)
@@ -567,9 +567,9 @@ namespace System.Web
                        AddOnPostAuthenticateRequestAsync (bh, eh, null);
                }
                        
-               public void AddOnPostAuthenticateRequestAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+               public void AddOnPostAuthenticateRequestAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        PostAuthenticateRequest += new EventHandler (invoker.Invoke);
                }
 
@@ -585,9 +585,9 @@ namespace System.Web
                        AddOnPostAuthorizeRequestAsync (bh, eh, null);
                }
                
-               public void AddOnPostAuthorizeRequestAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+               public void AddOnPostAuthorizeRequestAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        PostAuthorizeRequest += new EventHandler (invoker.Invoke);
                }
                
@@ -603,9 +603,9 @@ namespace System.Web
                        AddOnPostResolveRequestCacheAsync (bh, eh, null);
                }
                
-               public void AddOnPostResolveRequestCacheAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+               public void AddOnPostResolveRequestCacheAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        PostResolveRequestCache += new EventHandler (invoker.Invoke);
                }
 
@@ -621,9 +621,9 @@ namespace System.Web
                        AddOnPostMapRequestHandlerAsync (bh, eh, null);
                }
                
-               public void AddOnPostMapRequestHandlerAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+               public void AddOnPostMapRequestHandlerAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        PostMapRequestHandler += new EventHandler (invoker.Invoke);
                }
 
@@ -639,9 +639,9 @@ namespace System.Web
                        AddOnPostAcquireRequestStateAsync (bh, eh, null);
                }
                
-               public void AddOnPostAcquireRequestStateAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+               public void AddOnPostAcquireRequestStateAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        PostAcquireRequestState += new EventHandler (invoker.Invoke);
                }
 
@@ -657,9 +657,9 @@ namespace System.Web
                        AddOnPostReleaseRequestStateAsync (bh, eh, null);
                }
                
-               public void AddOnPostReleaseRequestStateAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+               public void AddOnPostReleaseRequestStateAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        PostReleaseRequestState += new EventHandler (invoker.Invoke);
                }
 
@@ -675,72 +675,72 @@ namespace System.Web
                        AddOnPostUpdateRequestCacheAsync (bh, eh, null);
                }
                
-               public void AddOnPostUpdateRequestCacheAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+               public void AddOnPostUpdateRequestCacheAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        PostUpdateRequestCache += new EventHandler (invoker.Invoke);
                }
 
                //
                // The new overloads that take a data parameter
                //
-               public void AddOnAcquireRequestStateAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+               public void AddOnAcquireRequestStateAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        AcquireRequestState += new EventHandler (invoker.Invoke);
                }
 
-               public void AddOnAuthenticateRequestAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+               public void AddOnAuthenticateRequestAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        AuthenticateRequest += new EventHandler (invoker.Invoke);
                }
 
-               public void AddOnAuthorizeRequestAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+               public void AddOnAuthorizeRequestAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        AuthorizeRequest += new EventHandler (invoker.Invoke);
                }
 
-               public void AddOnBeginRequestAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+               public void AddOnBeginRequestAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        BeginRequest += new EventHandler (invoker.Invoke);
                }
 
-               public void AddOnEndRequestAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+               public void AddOnEndRequestAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        EndRequest += new EventHandler (invoker.Invoke);
                }
                
-               public void AddOnPostRequestHandlerExecuteAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+                       public void AddOnPostRequestHandlerExecuteAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        PostRequestHandlerExecute += new EventHandler (invoker.Invoke);
                }
 
-               public void AddOnPreRequestHandlerExecuteAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+                       public void AddOnPreRequestHandlerExecuteAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        PreRequestHandlerExecute += new EventHandler (invoker.Invoke);
                }
 
-               public void AddOnReleaseRequestStateAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+               public void AddOnReleaseRequestStateAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        ReleaseRequestState += new EventHandler (invoker.Invoke);
                }
 
-               public void AddOnResolveRequestCacheAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+               public void AddOnResolveRequestCacheAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        ResolveRequestCache += new EventHandler (invoker.Invoke);
                }
 
-               public void AddOnUpdateRequestCacheAsync (BeginEventHandler bh, EndEventHandler eh, object data)
+               public void AddOnUpdateRequestCacheAsync (BeginEventHandler beginHandler, EndEventHandler endHandler, object state)
                {
-                       AsyncInvoker invoker = new AsyncInvoker (bh, eh, this, data);
+                       AsyncInvoker invoker = new AsyncInvoker (beginHandler, endHandler, this, state);
                        UpdateRequestCache += new EventHandler (invoker.Invoke);
                }
 
diff --git a/mcs/class/System.Web/System.Web/HttpApplicationStateWrapper.cs b/mcs/class/System.Web/System.Web/HttpApplicationStateWrapper.cs
new file mode 100644 (file)
index 0000000..d0299ef
--- /dev/null
@@ -0,0 +1,172 @@
+//
+// HttpApplicationStateWrapper.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.Specialized;
+using System.Globalization;
+using System.Runtime.CompilerServices;
+using System.Runtime.Serialization;
+using System.Security.Permissions;
+using System.Security.Principal;
+using System.Web.Caching;
+
+namespace System.Web
+{
+        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class HttpApplicationStateWrapper : HttpApplicationStateBase
+       {
+               HttpApplicationState w;
+
+               public HttpApplicationStateWrapper (HttpApplicationState httpApplicationState)
+               {
+                       if (httpApplicationState == null)
+                               throw new ArgumentNullException ("httpApplicationState");
+                       w = httpApplicationState;
+               }
+
+               public override string [] AllKeys {
+                       get { return w.AllKeys; }
+               }
+
+               public override HttpApplicationStateBase Contents {
+                       get { return new HttpApplicationStateWrapper (w.Contents); }
+               }
+
+               public override int Count {
+                       get { return w.Count; }
+               }
+
+               public override bool IsSynchronized {
+                       get { return ((ICollection) this).IsSynchronized; }
+               }
+
+               public override object this [int index] {
+                       get { return Get (index); }
+               }
+
+               public override object this [string name] {
+                       get { return Get (name); }
+                       set { Set (name, value); }
+               }
+
+               public override NameObjectCollectionBase.KeysCollection Keys {
+                       get { return w.Keys; }
+               }
+
+               public override HttpStaticObjectsCollectionBase StaticObjects {
+                       get { return new HttpStaticObjectsCollectionWrapper (w.StaticObjects); }
+               }
+
+               public override object SyncRoot {
+                       get { return ((ICollection) this).SyncRoot; }
+               }
+
+               public override void Add (string name, object value)
+               {
+                       w.Add (name, value);
+               }
+
+               public override void Clear ()
+               {
+                       w.Clear ();
+               }
+
+               public override void CopyTo (Array array, int index)
+               {
+                       ((ICollection) this).CopyTo (array, index);
+               }
+
+               public override object Get (int index)
+               {
+                       return w.Get (index);
+               }
+
+               public override object Get (string name)
+               {
+                       return w.Get (name);
+               }
+
+               public override IEnumerator GetEnumerator ()
+               {
+                       return w.GetEnumerator ();
+               }
+
+               public override string GetKey (int index)
+               {
+                       return w.GetKey (index);
+               }
+
+               [MonoTODO]
+               public override void GetObjectData (SerializationInfo info, StreamingContext context)
+               {
+                       w.GetObjectData (info, context);
+
+                       throw new NotImplementedException ();
+               }
+
+               public override void Lock ()
+               {
+                       w.Lock ();
+               }
+
+               public override void OnDeserialization (object sender)
+               {
+                       w.OnDeserialization (sender);
+               }
+
+               public override void Remove (string name)
+               {
+                       w.Remove (name);
+               }
+
+               public override void RemoveAll ()
+               {
+                       w.RemoveAll ();
+               }
+
+               public override void RemoveAt (int index)
+               {
+                       w.RemoveAt (index);
+               }
+
+               public override void Set (string name, object value)
+               {
+                       w.Set (name, value);
+               }
+
+               public override void UnLock ()
+               {
+                       w.UnLock ();
+               }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web/HttpBrowserCapabilitiesWrapper.cs b/mcs/class/System.Web/System.Web/HttpBrowserCapabilitiesWrapper.cs
new file mode 100644 (file)
index 0000000..b5cc963
--- /dev/null
@@ -0,0 +1,548 @@
+//
+// HttpBrowserCapabilitiesWrapper.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.IO;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Security.Principal;
+using System.Web.Caching;
+using System.Web.UI;
+
+namespace System.Web
+{
+        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class HttpBrowserCapabilitiesWrapper : HttpBrowserCapabilitiesBase
+       {
+               HttpBrowserCapabilities w;
+
+               public HttpBrowserCapabilitiesWrapper (HttpBrowserCapabilities httpBrowserCapabilities)
+               {
+                       if (httpBrowserCapabilities == null)
+                               throw new ArgumentNullException ("httpBrowserCapabilities");
+                       w = httpBrowserCapabilities;
+               }
+
+
+               public override bool ActiveXControls {
+                       get { return w.ActiveXControls; }
+               }
+
+               public override IDictionary Adapters {
+                       get { return w.Adapters; }
+               }
+
+               public override bool AOL {
+                       get { return w.AOL; }
+               }
+
+               public override bool BackgroundSounds {
+                       get { return w.BackgroundSounds; }
+               }
+
+               public override bool Beta {
+                       get { return w.Beta; }
+               }
+
+               public override string Browser {
+                       get { return w.Browser; }
+               }
+
+               public override ArrayList Browsers {
+                       get { return w.Browsers; }
+               }
+
+               public override bool CanCombineFormsInDeck {
+                       get { return w.CanCombineFormsInDeck; }
+               }
+
+               public override bool CanInitiateVoiceCall {
+                       get { return w.CanInitiateVoiceCall; }
+               }
+
+               public override bool CanRenderAfterInputOrSelectElement {
+                       get { return w.CanRenderAfterInputOrSelectElement; }
+               }
+
+               public override bool CanRenderEmptySelects {
+                       get { return w.CanRenderEmptySelects; }
+               }
+
+               public override bool CanRenderInputAndSelectElementsTogether {
+                       get { return w.CanRenderInputAndSelectElementsTogether; }
+               }
+
+               public override bool CanRenderMixedSelects {
+                       get { return w.CanRenderMixedSelects; }
+               }
+
+               public override bool CanRenderOneventAndPrevElementsTogether {
+                       get { return w.CanRenderOneventAndPrevElementsTogether; }
+               }
+
+               public override bool CanRenderPostBackCards {
+                       get { return w.CanRenderPostBackCards; }
+               }
+
+               public override bool CanRenderSetvarZeroWithMultiSelectionList {
+                       get { return w.CanRenderSetvarZeroWithMultiSelectionList; }
+               }
+
+               public override bool CanSendMail {
+                       get { return w.CanSendMail; }
+               }
+
+               public override IDictionary Capabilities {
+                       get { return w.Capabilities; } set { w.Capabilities = value; }
+               }
+
+               public override bool CDF {
+                       get { return w.CDF; }
+               }
+
+               public override Version ClrVersion {
+                       get { return w.ClrVersion; }
+               }
+
+               public override bool Cookies {
+                       get { return w.Cookies; }
+               }
+
+               public override bool Crawler {
+                       get { return w.Crawler; }
+               }
+
+               public override int DefaultSubmitButtonLimit {
+                       get { return w.DefaultSubmitButtonLimit; }
+               }
+
+               public override Version EcmaScriptVersion {
+                       get { return w.EcmaScriptVersion; }
+               }
+
+               public override bool Frames {
+                       get { return w.Frames; }
+               }
+
+               public override int GatewayMajorVersion {
+                       get { return w.GatewayMajorVersion; }
+               }
+
+               public override double GatewayMinorVersion {
+                       get { return w.GatewayMinorVersion; }
+               }
+
+               public override string GatewayVersion {
+                       get { return w.GatewayVersion; }
+               }
+
+               public override bool HasBackButton {
+                       get { return w.HasBackButton; }
+               }
+
+               public override bool HidesRightAlignedMultiselectScrollbars {
+                       get { return w.HidesRightAlignedMultiselectScrollbars; }
+               }
+
+               public override string HtmlTextWriter {
+                       get { return w.HtmlTextWriter; } set { w.HtmlTextWriter = value; }
+               }
+
+               public override string Id {
+                       get { return w.Id; }
+               }
+
+               public override string InputType {
+                       get { return w.InputType; }
+               }
+
+               public override bool IsColor {
+                       get { return w.IsColor; }
+               }
+
+               public override bool IsMobileDevice {
+                       get { return w.IsMobileDevice; }
+               }
+
+               public override string this [string key] {
+                       get { throw new NotImplementedException (); }
+               }
+
+               public override bool JavaApplets {
+                       get { return w.JavaApplets; }
+               }
+
+               public override Version JScriptVersion {
+                       get { return w.JScriptVersion; }
+               }
+
+               public override int MajorVersion {
+                       get { return w.MajorVersion; }
+               }
+
+               public override int MaximumHrefLength {
+                       get { return w.MaximumHrefLength; }
+               }
+
+               public override int MaximumRenderedPageSize {
+                       get { return w.MaximumRenderedPageSize; }
+               }
+
+               public override int MaximumSoftkeyLabelLength {
+                       get { return w.MaximumSoftkeyLabelLength; }
+               }
+
+               public override double MinorVersion {
+                       get { return w.MinorVersion; }
+               }
+
+               public override string MinorVersionString {
+                       get { return w.MinorVersionString; }
+               }
+
+               public override string MobileDeviceManufacturer {
+                       get { return w.MobileDeviceManufacturer; }
+               }
+
+               public override string MobileDeviceModel {
+                       get { return w.MobileDeviceModel; }
+               }
+
+               public override Version MSDomVersion {
+                       get { return w.MSDomVersion; }
+               }
+
+               public override int NumberOfSoftkeys {
+                       get { return w.NumberOfSoftkeys; }
+               }
+
+               public override string Platform {
+                       get { return w.Platform; }
+               }
+
+               public override string PreferredImageMime {
+                       get { return w.PreferredImageMime; }
+               }
+
+               public override string PreferredRenderingMime {
+                       get { return w.PreferredRenderingMime; }
+               }
+
+               public override string PreferredRenderingType {
+                       get { return w.PreferredRenderingType; }
+               }
+
+               public override string PreferredRequestEncoding {
+                       get { return w.PreferredRequestEncoding; }
+               }
+
+               public override string PreferredResponseEncoding {
+                       get { return w.PreferredResponseEncoding; }
+               }
+
+               public override bool RendersBreakBeforeWmlSelectAndInput {
+                       get { return w.RendersBreakBeforeWmlSelectAndInput; }
+               }
+
+               public override bool RendersBreaksAfterHtmlLists {
+                       get { return w.RendersBreaksAfterHtmlLists; }
+               }
+
+               public override bool RendersBreaksAfterWmlAnchor {
+                       get { return w.RendersBreaksAfterWmlAnchor; }
+               }
+
+               public override bool RendersBreaksAfterWmlInput {
+                       get { return w.RendersBreaksAfterWmlInput; }
+               }
+
+               public override bool RendersWmlDoAcceptsInline {
+                       get { return w.RendersWmlDoAcceptsInline; }
+               }
+
+               public override bool RendersWmlSelectsAsMenuCards {
+                       get { return w.RendersWmlSelectsAsMenuCards; }
+               }
+
+               public override string RequiredMetaTagNameValue {
+                       get { return w.RequiredMetaTagNameValue; }
+               }
+
+               public override bool RequiresAttributeColonSubstitution {
+                       get { return w.RequiresAttributeColonSubstitution; }
+               }
+
+               public override bool RequiresContentTypeMetaTag {
+                       get { return w.RequiresContentTypeMetaTag; }
+               }
+
+               public override bool RequiresControlStateInSession {
+                       get { return w.RequiresControlStateInSession; }
+               }
+
+               public override bool RequiresDBCSCharacter {
+                       get { return w.RequiresDBCSCharacter; }
+               }
+
+               public override bool RequiresHtmlAdaptiveErrorReporting {
+                       get { return w.RequiresHtmlAdaptiveErrorReporting; }
+               }
+
+               public override bool RequiresLeadingPageBreak {
+                       get { return w.RequiresLeadingPageBreak; }
+               }
+
+               public override bool RequiresNoBreakInFormatting {
+                       get { return w.RequiresNoBreakInFormatting; }
+               }
+
+               public override bool RequiresOutputOptimization {
+                       get { return w.RequiresOutputOptimization; }
+               }
+
+               public override bool RequiresPhoneNumbersAsPlainText {
+                       get { return w.RequiresPhoneNumbersAsPlainText; }
+               }
+
+               public override bool RequiresSpecialViewStateEncoding {
+                       get { return w.RequiresSpecialViewStateEncoding; }
+               }
+
+               public override bool RequiresUniqueFilePathSuffix {
+                       get { return w.RequiresUniqueFilePathSuffix; }
+               }
+
+               public override bool RequiresUniqueHtmlCheckboxNames {
+                       get { return w.RequiresUniqueHtmlCheckboxNames; }
+               }
+
+               public override bool RequiresUniqueHtmlInputNames {
+                       get { return w.RequiresUniqueHtmlInputNames; }
+               }
+
+               public override bool RequiresUrlEncodedPostfieldValues {
+                       get { return w.RequiresUrlEncodedPostfieldValues; }
+               }
+
+               public override int ScreenBitDepth {
+                       get { return w.ScreenBitDepth; }
+               }
+
+               public override int ScreenCharactersHeight {
+                       get { return w.ScreenCharactersHeight; }
+               }
+
+               public override int ScreenCharactersWidth {
+                       get { return w.ScreenCharactersWidth; }
+               }
+
+               public override int ScreenPixelsHeight {
+                       get { return w.ScreenPixelsHeight; }
+               }
+
+               public override int ScreenPixelsWidth {
+                       get { return w.ScreenPixelsWidth; }
+               }
+
+               public override bool SupportsAccesskeyAttribute {
+                       get { return w.SupportsAccesskeyAttribute; }
+               }
+
+               public override bool SupportsBodyColor {
+                       get { return w.SupportsBodyColor; }
+               }
+
+               public override bool SupportsBold {
+                       get { return w.SupportsBold; }
+               }
+
+               public override bool SupportsCacheControlMetaTag {
+                       get { return w.SupportsCacheControlMetaTag; }
+               }
+
+               public override bool SupportsCallback {
+                       get { return w.SupportsCallback; }
+               }
+
+               public override bool SupportsCss {
+                       get { return w.SupportsCss; }
+               }
+
+               public override bool SupportsDivAlign {
+                       get { return w.SupportsDivAlign; }
+               }
+
+               public override bool SupportsDivNoWrap {
+                       get { return w.SupportsDivNoWrap; }
+               }
+
+               public override bool SupportsEmptyStringInCookieValue {
+                       get { return w.SupportsEmptyStringInCookieValue; }
+               }
+
+               public override bool SupportsFontColor {
+                       get { return w.SupportsFontColor; }
+               }
+
+               public override bool SupportsFontName {
+                       get { return w.SupportsFontName; }
+               }
+
+               public override bool SupportsFontSize {
+                       get { return w.SupportsFontSize; }
+               }
+
+               public override bool SupportsImageSubmit {
+                       get { return w.SupportsImageSubmit; }
+               }
+
+               public override bool SupportsIModeSymbols {
+                       get { return w.SupportsIModeSymbols; }
+               }
+
+               public override bool SupportsInputIStyle {
+                       get { return w.SupportsInputIStyle; }
+               }
+
+               public override bool SupportsInputMode {
+                       get { return w.SupportsInputMode; }
+               }
+
+               public override bool SupportsItalic {
+                       get { return w.SupportsItalic; }
+               }
+
+               public override bool SupportsJPhoneMultiMediaAttributes {
+                       get { return w.SupportsJPhoneMultiMediaAttributes; }
+               }
+
+               public override bool SupportsJPhoneSymbols {
+                       get { return w.SupportsJPhoneSymbols; }
+               }
+
+               public override bool SupportsQueryStringInFormAction {
+                       get { return w.SupportsQueryStringInFormAction; }
+               }
+
+               public override bool SupportsRedirectWithCookie {
+                       get { return w.SupportsRedirectWithCookie; }
+               }
+
+               public override bool SupportsSelectMultiple {
+                       get { return w.SupportsSelectMultiple; }
+               }
+
+               public override bool SupportsUncheck {
+                       get { return w.SupportsUncheck; }
+               }
+
+               public override bool SupportsXmlHttp {
+                       get { return w.SupportsXmlHttp; }
+               }
+
+               public override bool Tables {
+                       get { return w.Tables; }
+               }
+
+               public override Type TagWriter {
+                       get { return w.TagWriter; }
+               }
+
+               public override string Type {
+                       get { return w.Type; }
+               }
+
+               public override bool UseOptimizedCacheKey {
+                       get { return w.UseOptimizedCacheKey; }
+               }
+
+               public override bool VBScript {
+                       get { return w.VBScript; }
+               }
+
+               public override string Version {
+                       get { return w.Version; }
+               }
+
+               public override Version W3CDomVersion {
+                       get { return w.W3CDomVersion; }
+               }
+
+               public override bool Win16 {
+                       get { return w.Win16; }
+               }
+
+               public override bool Win32 {
+                       get { return w.Win32; }
+               }
+
+               public override void AddBrowser (string browserName)
+               {
+                       w.AddBrowser (browserName);
+               }
+
+               [MonoTODO]
+               public override int CompareFilters (string filter1, string filter2)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public override HtmlTextWriter CreateHtmlTextWriter (TextWriter w)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public override void DisableOptimizedCacheKey ()
+               {
+                       w.DisableOptimizedCacheKey ();
+               }
+
+               [MonoTODO]
+               public override bool EvaluateFilter (string filterName)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public override Version [] GetClrVersions ()
+               {
+                       return w.GetClrVersions ();
+               }
+
+               public override bool IsBrowser (string browserName)
+               {
+                       return w.IsBrowser (browserName);
+               }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web/HttpCachePolicyWrapper.cs b/mcs/class/System.Web/System.Web/HttpCachePolicyWrapper.cs
new file mode 100644 (file)
index 0000000..c2fad9d
--- /dev/null
@@ -0,0 +1,167 @@
+//
+// HttpCachePolicyWrapper.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Security.Principal;
+using System.Web.Caching;
+
+namespace System.Web
+{
+        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class HttpCachePolicyWrapper : HttpCachePolicyBase
+       {
+               HttpCachePolicy w;
+
+               public HttpCachePolicyWrapper (HttpCachePolicy httpCachePolicy)
+               {
+                       if (httpCachePolicy == null)
+                               throw new ArgumentNullException ("httpCachePolicy");
+                       w = httpCachePolicy;
+               }
+
+               public override HttpCacheVaryByContentEncodings VaryByContentEncodings {
+                       get { return w.VaryByContentEncodings; }
+               }
+
+               public override HttpCacheVaryByHeaders VaryByHeaders {
+                       get { return w.VaryByHeaders; }
+               }
+
+               public override HttpCacheVaryByParams VaryByParams {
+                       get { return w.VaryByParams; }
+               }
+
+               public override void AddValidationCallback (HttpCacheValidateHandler handler, object data)
+               {
+                       w.AddValidationCallback (handler, data);
+               }
+
+               public override void AppendCacheExtension (string extension)
+               {
+                       w.AppendCacheExtension (extension);
+               }
+
+               public override void SetAllowResponseInBrowserHistory (bool allow)
+               {
+                       w.SetAllowResponseInBrowserHistory (allow);
+               }
+
+               public override void SetCacheability (HttpCacheability cacheability)
+               {
+                       w.SetCacheability (cacheability);
+               }
+
+               public override void SetCacheability (HttpCacheability cacheability, string field)
+               {
+                       w.SetCacheability (cacheability, field);
+               }
+
+               public override void SetVaryByCustom (string custom)
+               {
+                       w.SetVaryByCustom (custom);
+               }
+
+               public override void SetETag (string etag)
+               {
+                       w.SetETag (etag);
+               }
+
+               public override void SetETagFromFileDependencies ()
+               {
+                       w.SetETagFromFileDependencies ();
+               }
+
+               public override void SetExpires (DateTime date)
+               {
+                       w.SetExpires (date);
+               }
+
+               public override void SetLastModified (DateTime date)
+               {
+                       w.SetLastModified (date);
+               }
+
+               public override void SetLastModifiedFromFileDependencies ()
+               {
+                       w.SetLastModifiedFromFileDependencies ();
+               }
+
+               public override void SetMaxAge (TimeSpan delta)
+               {
+                       w.SetMaxAge (delta);
+               }
+
+               public override void SetNoServerCaching ()
+               {
+                       w.SetNoServerCaching ();
+               }
+
+               public override void SetNoStore ()
+               {
+                       w.SetNoStore ();
+               }
+
+               public override void SetNoTransforms ()
+               {
+                       w.SetNoTransforms ();
+               }
+
+               public override void SetOmitVaryStar (bool omit)
+               {
+                       w.SetOmitVaryStar (omit);
+               }
+
+               public override void SetProxyMaxAge (TimeSpan delta)
+               {
+                       w.SetProxyMaxAge (delta);
+               }
+
+               public override void SetRevalidation (HttpCacheRevalidation revalidation)
+               {
+                       w.SetRevalidation (revalidation);
+               }
+
+               public override void SetSlidingExpiration (bool slide)
+               {
+                       w.SetSlidingExpiration (slide);
+               }
+
+               public override void SetValidUntilExpires (bool validUntilExpires)
+               {
+                       w.SetValidUntilExpires (validUntilExpires);
+               }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web/HttpContextBase.cs b/mcs/class/System.Web/System.Web/HttpContextBase.cs
new file mode 100644 (file)
index 0000000..f81db29
--- /dev/null
@@ -0,0 +1,170 @@
+//
+// HttpContextBase.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Security.Principal;
+using System.Web.Caching;
+using System.Web.Profile;
+using System.Web.SessionState;
+
+namespace System.Web
+{
+        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public abstract class HttpContextBase : IServiceProvider
+       {
+               void NotImplemented ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public virtual Exception [] AllErrors { get { NotImplemented (); return null; } }
+
+               public virtual HttpApplicationStateBase Application { get { NotImplemented (); return null; } }
+
+               public virtual HttpApplication ApplicationInstance { get { NotImplemented (); return null; } set { NotImplemented (); } }
+
+               public virtual Cache Cache { get { NotImplemented (); return null; } }
+
+               public virtual IHttpHandler CurrentHandler { get { NotImplemented (); return null; } }
+
+               public virtual RequestNotification CurrentNotification { get { NotImplemented (); return default (RequestNotification); } }
+
+               public virtual Exception Error { get { NotImplemented (); return null; } }
+
+               public virtual IHttpHandler Handler { get { NotImplemented (); return null; } set { NotImplemented (); } }
+
+               public virtual bool IsCustomErrorEnabled { get { NotImplemented (); return false; } }
+
+               public virtual bool IsDebuggingEnabled { get { NotImplemented (); return false; } }
+
+               public virtual bool IsPostNotification { get { NotImplemented (); return false; } }
+
+               public virtual IDictionary Items { get { NotImplemented (); return null; } }
+
+               public virtual IHttpHandler PreviousHandler { get { NotImplemented (); return null; } }
+
+               public virtual ProfileBase Profile { get { NotImplemented (); return null; } }
+
+               public virtual HttpRequestBase Request { get { NotImplemented (); return null; } }
+
+               public virtual HttpResponseBase Response { get { NotImplemented (); return null; } }
+
+               public virtual HttpServerUtilityBase Server { get { NotImplemented (); return null; } }
+
+               public virtual HttpSessionStateBase Session { get { NotImplemented (); return null; } }
+
+               public virtual bool SkipAuthorization { get { NotImplemented (); return false; } set { NotImplemented (); } }
+
+               public virtual DateTime Timestamp { get { NotImplemented (); return DateTime.MinValue; } }
+
+               public virtual TraceContext Trace { get { NotImplemented (); return null; } }
+
+               public virtual IPrincipal User { get { NotImplemented (); return null; } set { NotImplemented (); } }
+
+               public virtual void AddError (Exception errorInfo)
+               {
+                       NotImplemented ();
+               }
+
+               public virtual void ClearError ()
+               {
+                       NotImplemented ();
+               }
+
+               public virtual object GetGlobalResourceObject (string classKey, string resourceKey)
+               {
+                       NotImplemented ();
+                       return null;
+               }
+
+               public virtual object GetGlobalResourceObject (string classKey, string resourceKey, CultureInfo culture)
+               {
+                       NotImplemented ();
+                       return null;
+               }
+
+               public virtual object GetLocalResourceObject (string virtualPath, string resourceKey)
+               {
+                       NotImplemented ();
+                       return null;
+               }
+
+               public virtual object GetLocalResourceObject (string virtualPath, string resourceKey, CultureInfo culture)
+               {
+                       NotImplemented ();
+                       return null;
+               }
+
+               public virtual object GetSection (string sectionName)
+               {
+                       NotImplemented ();
+                       return null;
+               }
+
+               public virtual object GetService (Type serviceType)
+               {
+                       NotImplemented ();
+                       return null;
+               }
+               public virtual void RemapHandler (IHttpHandler handler)
+               {
+                       NotImplemented ();
+               }
+               public virtual void RewritePath (string path)
+               {
+                       NotImplemented ();
+               }
+
+               public virtual void RewritePath (string path, bool rebaseClientPath)
+               {
+                       NotImplemented ();
+               }
+
+               public virtual void RewritePath (string filePath, string pathInfo, string queryString)
+               {
+                       NotImplemented ();
+               }
+
+               public virtual void RewritePath (string filePath, string pathInfo, string queryString, bool setClientFilePath)
+               {
+                       NotImplemented ();
+               }
+               public virtual void SetSessionStateBehavior (SessionStateBehavior sessionStateBehavior)
+               {
+                       NotImplemented ();
+               }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web/HttpContextWrapper.cs b/mcs/class/System.Web/System.Web/HttpContextWrapper.cs
new file mode 100644 (file)
index 0000000..64975a8
--- /dev/null
@@ -0,0 +1,216 @@
+//
+// HttpContextWrapper.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008-2010 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Security.Principal;
+using System.Web.Caching;
+using System.Web.Profile;
+using System.Web.SessionState;
+
+namespace System.Web
+{
+        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class HttpContextWrapper : HttpContextBase
+       {
+               HttpContext w;
+
+               public HttpContextWrapper (HttpContext httpContext)
+               {
+                       if (httpContext == null)
+                               throw new ArgumentNullException ("httpContext");
+                       w = httpContext;
+               }
+
+               public override Exception [] AllErrors {
+                       get { return w.AllErrors; }
+               }
+
+               public override HttpApplicationStateBase Application {
+                       get { return new HttpApplicationStateWrapper (w.Application); }
+               }
+
+               public override HttpApplication ApplicationInstance {
+                       get { return w.ApplicationInstance; }
+                       set { w.ApplicationInstance = value; }
+               }
+
+               public override Cache Cache {
+                       get { return w.Cache; }
+               }
+
+               public override IHttpHandler CurrentHandler {
+                       get { return w.CurrentHandler; }
+               }
+
+               public override RequestNotification CurrentNotification {
+                       get { return w.CurrentNotification; }
+               }
+
+               public override Exception Error {
+                       get { return w.Error; }
+               }
+
+               public override IHttpHandler Handler {
+                       get { return w.Handler; }
+                       set { w.Handler = value; }
+               }
+
+               public override bool IsCustomErrorEnabled {
+                       get { return w.IsCustomErrorEnabled; }
+               }
+
+               public override bool IsDebuggingEnabled {
+                       get { return w.IsDebuggingEnabled; }
+               }
+
+               public override bool IsPostNotification {
+                       get { return w.IsPostNotification; }
+               }
+
+               public override IDictionary Items {
+                       get { return w.Items; }
+               }
+
+               public override IHttpHandler PreviousHandler {
+                       get { return w.PreviousHandler; }
+               }
+
+               public override ProfileBase Profile {
+                       get { return w.Profile; }
+               }
+
+               public override HttpRequestBase Request {
+                       get { return new HttpRequestWrapper (w.Request); }
+               }
+
+               public override HttpResponseBase Response {
+                       get { return new HttpResponseWrapper (w.Response); }
+               }
+
+               public override HttpServerUtilityBase Server {
+                       get { return new HttpServerUtilityWrapper (w.Server); }
+               }
+
+               public override HttpSessionStateBase Session {
+                       get { return w.Session == null ? null : new HttpSessionStateWrapper (w.Session); }
+               }
+
+               public override bool SkipAuthorization {
+                       get { return w.SkipAuthorization; }
+                       set { w.SkipAuthorization = value; }
+               }
+
+               public override DateTime Timestamp {
+                       get { return w.Timestamp; }
+               }
+
+               public override TraceContext Trace {
+                       get { return w.Trace; }
+               }
+
+               public override IPrincipal User {
+                       get { return w.User; }
+                       set { w.User = value; }
+               }
+
+               public override void AddError (Exception errorInfo)
+               {
+                       w.AddError (errorInfo);
+               }
+
+               public override void ClearError ()
+               {
+                       w.ClearError ();
+               }
+
+               public override object GetGlobalResourceObject (string classKey, string resourceKey)
+               {
+                       return HttpContext.GetGlobalResourceObject (classKey, resourceKey);
+               }
+
+               public override object GetGlobalResourceObject (string classKey, string resourceKey, CultureInfo culture)
+               {
+                       return HttpContext.GetGlobalResourceObject (classKey, resourceKey, culture);
+               }
+
+               public override object GetLocalResourceObject (string overridePath, string resourceKey)
+               {
+                       return HttpContext.GetLocalResourceObject (overridePath, resourceKey);
+               }
+
+               public override object GetLocalResourceObject (string overridePath, string resourceKey, CultureInfo culture)
+               {
+                       return HttpContext.GetLocalResourceObject (overridePath, resourceKey, culture);
+               }
+
+               public override object GetSection (string sectionName)
+               {
+                       return w.GetSection (sectionName);
+               }
+
+               public override object GetService (Type serviceType)
+               {
+                       return ((IServiceProvider)w).GetService (serviceType);
+               }
+               public override void RemapHandler (IHttpHandler handler)
+               {
+                       w.RemapHandler (handler);
+               }
+               public override void RewritePath (string path)
+               {
+                       w.RewritePath (path);
+               }
+
+               public override void RewritePath (string path, bool rebaseClientPath)
+               {
+                       w.RewritePath (path, rebaseClientPath);
+               }
+
+               public override void RewritePath (string filePath, string pathInfo, string queryString)
+               {
+                       w.RewritePath (filePath, pathInfo, queryString);
+               }
+
+               public override void RewritePath (string filePath, string pathInfo, string queryString, bool setClientFilePath)
+               {
+                       w.RewritePath (filePath, pathInfo, queryString, setClientFilePath);
+               }
+               public override void SetSessionStateBehavior (SessionStateBehavior sessionStateBehavior)
+               {
+                       w.SetSessionStateBehavior (sessionStateBehavior);
+               }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web/HttpFileCollectionWrapper.cs b/mcs/class/System.Web/System.Web/HttpFileCollectionWrapper.cs
new file mode 100644 (file)
index 0000000..4c7c919
--- /dev/null
@@ -0,0 +1,128 @@
+//
+// HttpFileCollectionWrapper.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.Specialized;
+using System.Globalization;
+using System.Runtime.CompilerServices;
+using System.Runtime.Serialization;
+using System.Security.Permissions;
+using System.Security.Principal;
+using System.Web.Caching;
+
+namespace System.Web
+{
+        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class HttpFileCollectionWrapper : HttpFileCollectionBase
+       {
+               HttpFileCollection w;
+
+               public HttpFileCollectionWrapper (HttpFileCollection httpFileCollection)
+               {
+                       if (httpFileCollection == null)
+                               throw new ArgumentNullException ("httpFileCollection");
+                       w = httpFileCollection;
+               }
+
+               public override string [] AllKeys {
+                       get { return w.AllKeys; }
+               }
+
+               public override int Count {
+                       get { return w.Count; }
+               }
+
+               public override bool IsSynchronized {
+                       get { return ((ICollection) w).IsSynchronized; }
+               }
+
+               public override HttpPostedFileBase this [int index] {
+                       get { return Get (index); }
+               }
+
+               public override HttpPostedFileBase this [string name] {
+                       get { return Get (name); }
+               }
+
+               public override NameObjectCollectionBase.KeysCollection Keys {
+                       get { return w.Keys; }
+               }
+
+               public override object SyncRoot {
+                       get { return ((ICollection) w).SyncRoot; }
+               }
+
+               public override void CopyTo (Array dest, int index)
+               {
+                       w.CopyTo (dest, index);
+               }
+
+               public override HttpPostedFileBase Get (int index)
+               {
+                       HttpPostedFile file = w.Get (index);
+                       if (file == null)
+                               return null;
+
+                       return new HttpPostedFileWrapper (file);
+               }
+
+               public override HttpPostedFileBase Get (string name)
+               {
+                       HttpPostedFile file = w.Get (name);
+                       if (file == null)
+                               return null;
+
+                       return new HttpPostedFileWrapper (file);
+               }
+
+               public override IEnumerator GetEnumerator ()
+               {
+                       return w.GetEnumerator ();
+               }
+
+               public override string GetKey (int index)
+               {
+                       return w.GetKey (index);
+               }
+
+               public override void GetObjectData (SerializationInfo info, StreamingContext context)
+               {
+                       w.GetObjectData (info, context);
+               }
+
+               public override void OnDeserialization (object sender)
+               {
+                       w.OnDeserialization (sender);
+               }
+       }
+}
index d273f1cf1fdb7d7c3afa0de5240527a8ec6cae8c..8e9359a9f896d82618f25239529e50c3a0f90087 100755 (executable)
@@ -39,6 +39,7 @@ using System.Runtime.InteropServices;
 using System.Security;
 using System.Security.Permissions;
 using System.Security.Principal;
+using System.Threading;
 using System.Web.Configuration;
 using System.Web.Management;
 using System.Web.UI;
@@ -980,6 +981,11 @@ namespace System.Web
                        }
                }
 
+               public Stream GetBufferedInputStream ()
+               {
+                       return input_stream;
+               }
+
                public Stream GetBufferlessInputStream ()
                {
                        if (bufferlessInputStream == null) {
@@ -993,6 +999,11 @@ namespace System.Web
                        return bufferlessInputStream;
                }
 
+               public Stream GetBufferlessInputStream (bool disableMaxRequestLength)
+               {
+                       return GetBufferlessInputStream ();
+               }
+
                //
                // Stream that returns the data as it is read, without buffering
                //
@@ -1399,6 +1410,12 @@ namespace System.Web
                        }
                }
 
+               public CancellationToken TimedOutToken {
+                       get {
+                               throw new NotImplementedException ();
+                       }
+               }
+
                public int TotalBytes {
                        get {
                                Stream ins = InputStream;
@@ -1508,6 +1525,38 @@ namespace System.Web
                }
 
                public int [] MapImageCoordinates (string imageFieldName)
+               {
+                       string[] parameters = GetImageCoordinatesParameters (imageFieldName);
+                       if (parameters == null)
+                               return null;
+                       int [] result = new int [2];
+                       try {
+                               result [0] = Int32.Parse (parameters [0]);
+                               result [1] = Int32.Parse (parameters [1]);
+                       } catch {
+                               return null;
+                       }
+
+                       return result;
+               }
+
+               public double [] MapRawImageCoordinates (string imageFieldName)
+               {
+                       string[] parameters = GetImageCoordinatesParameters (imageFieldName);
+                       if (parameters == null)
+                               return null;
+                       double [] result = new double [2];
+                       try {
+                               result [0] = Double.Parse (parameters [0]);
+                               result [1] = Double.Parse (parameters [1]);
+                       } catch {
+                               return null;
+                       }
+
+                       return result;
+               }
+
+               string [] GetImageCoordinatesParameters (string imageFieldName)
                {
                        string method = HttpMethod;
                        NameValueCollection coll = null;
@@ -1526,14 +1575,7 @@ namespace System.Web
                        string y = coll [imageFieldName + ".y"];
                        if (y == null || y == "")
                                return null;
-
-                       int [] result = new int [2];
-                       try {
-                               result [0] = Int32.Parse (x);
-                               result [1] = Int32.Parse (y);
-                       } catch {
-                               return null;
-                       }
+                       string[] result = new string [] { x, y };
 
                        return result;
                }
diff --git a/mcs/class/System.Web/System.Web/HttpRequestWrapper.cs b/mcs/class/System.Web/System.Web/HttpRequestWrapper.cs
new file mode 100644 (file)
index 0000000..fee41fe
--- /dev/null
@@ -0,0 +1,295 @@
+//
+// HttpRequestWrapper.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.Specialized;
+using System.Globalization;
+using System.IO;
+using System.Runtime.CompilerServices;
+using System.Runtime.Serialization;
+using System.Security.Permissions;
+using System.Security.Principal;
+using System.Text;
+using System.Threading;
+using System.Web.Caching;
+
+using System.Security.Authentication.ExtendedProtection;
+using System.Web.Routing;
+
+namespace System.Web
+{
+        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class HttpRequestWrapper : HttpRequestBase
+       {
+               HttpRequest w;
+
+               public HttpRequestWrapper (HttpRequest httpRequest)
+               {
+                       if (httpRequest == null)
+                               throw new ArgumentNullException ("httpRequest");
+                       w = httpRequest;
+               }
+
+               public override string [] AcceptTypes {
+                       get { return w.AcceptTypes; }
+               }
+
+               public override string AnonymousID {
+                       get { return w.AnonymousID; }
+               }
+
+               public override string ApplicationPath {
+                       get { return w.ApplicationPath; }
+               }
+
+               public override string AppRelativeCurrentExecutionFilePath {
+                       get { return w.AppRelativeCurrentExecutionFilePath; }
+               }
+
+               public override HttpBrowserCapabilitiesBase Browser {
+                       get { return new HttpBrowserCapabilitiesWrapper (w.Browser); }
+               }
+
+               public override HttpClientCertificate ClientCertificate {
+                       get { return w.ClientCertificate; }
+               }
+
+               public override Encoding ContentEncoding {
+                       get { return w.ContentEncoding; }
+                       set { w.ContentEncoding = value; }
+               }
+
+               public override int ContentLength {
+                       get { return w.ContentLength; }
+               }
+
+               public override string ContentType {
+                       get { return w.ContentType; }
+                       set { w.ContentType = value; }
+               }
+
+               public override HttpCookieCollection Cookies {
+                       get { return w.Cookies; }
+               }
+
+               public override string CurrentExecutionFilePath {
+                       get { return w.CurrentExecutionFilePath; }
+               }
+
+               public override string FilePath {
+                       get { return w.FilePath; }
+               }
+
+               public override HttpFileCollectionBase Files {
+                       get { return new HttpFileCollectionWrapper (w.Files); }
+               }
+
+               public override Stream Filter {
+                       get { return w.Filter; }
+                       set { w.Filter = value; }
+               }
+
+               public override NameValueCollection Form {
+                       get { return w.Form; }
+               }
+
+               public override NameValueCollection Headers {
+                       get { return w.Headers; }
+               }
+
+               public override Stream GetBufferedInputStream ()
+               {
+                       return w.GetBufferedInputStream ();
+               }
+
+               public override Stream GetBufferlessInputStream ()
+               {
+                       return w.GetBufferlessInputStream ();
+               }
+
+               public override Stream GetBufferlessInputStream (System.Boolean disableMaxRequestLength)
+               {
+                       return w.GetBufferlessInputStream (disableMaxRequestLength);
+               }
+
+               public override string HttpMethod {
+                       get { return w.HttpMethod; }
+               }
+               public override ChannelBinding HttpChannelBinding {
+                       get { return w.HttpChannelBinding; }
+               }
+               public override Stream InputStream {
+                       get { return w.InputStream; }
+               }
+
+               public override bool IsAuthenticated {
+                       get { return w.IsAuthenticated; }
+               }
+
+               public override bool IsLocal {
+                       get { return w.IsLocal; }
+               }
+
+               public override bool IsSecureConnection {
+                       get { return w.IsSecureConnection; }
+               }
+
+               public override string this [string key] {
+                       get { return w [key]; }
+               }
+
+               public override WindowsIdentity LogonUserIdentity {
+                       get { return w.LogonUserIdentity; }
+               }
+
+               public override NameValueCollection Params {
+                       get { return w.Params; }
+               }
+
+               public override string Path {
+                       get { return w.Path; }
+               }
+
+               public override string PathInfo {
+                       get { return w.PathInfo; }
+               }
+
+               public override string PhysicalApplicationPath {
+                       get { return w.PhysicalApplicationPath; }
+               }
+
+               public override string PhysicalPath {
+                       get { return w.PhysicalPath; }
+               }
+
+               public override NameValueCollection QueryString {
+                       get { return w.QueryString; }
+               }
+
+               public override string RawUrl {
+                       get { return w.RawUrl; }
+               }
+
+               public override string RequestType {
+                       get { return w.RequestType; }
+                       set { w.RequestType = value; }
+               }
+               public override RequestContext RequestContext {
+                       get { return w.RequestContext; }
+                       set { w.RequestContext = value; }       
+               }
+               public override NameValueCollection ServerVariables {
+                       get { return w.ServerVariables; }
+               }
+
+               public virtual CancellationToken TimedOutToken {
+                       get { return w.TimedOutToken; }
+               }
+
+               public override int TotalBytes {
+                       get { return w.TotalBytes; }
+               }
+
+               public override UnvalidatedRequestValuesBase Unvalidated { 
+                       get { return new UnvalidatedRequestValuesWrapper (w.Unvalidated); } 
+               }
+
+               public override ReadEntityBodyMode ReadEntityBodyMode {
+                       get { return ReadEntityBodyMode.Classic; }
+               }
+
+               public override Uri Url {
+                       get { return w.Url; }
+               }
+
+               public override Uri UrlReferrer {
+                       get { return w.UrlReferrer; }
+               }
+
+               public override string UserAgent {
+                       get { return w.UserAgent; }
+               }
+
+               public override string UserHostAddress {
+                       get { return w.UserHostAddress; }
+               }
+
+               public override string UserHostName {
+                       get { return w.UserHostName; }
+               }
+
+               public override string [] UserLanguages {
+                       get { return w.UserLanguages; }
+               }
+
+               public void Abort ()
+               {
+                       w.WorkerRequest.CloseConnection();
+               }
+
+               public override byte [] BinaryRead (int count)
+               {
+                       return w.BinaryRead (count);
+               }
+
+               public override int [] MapImageCoordinates (string imageFieldName)
+               {
+                       return w.MapImageCoordinates (imageFieldName);
+               }
+
+               public override string MapPath (string virtualPath)
+               {
+                       return w.MapPath (virtualPath);
+               }
+
+               public override string MapPath (string virtualPath, string baseVirtualDir, bool allowCrossAppMapping)
+               {
+                       return w.MapPath (virtualPath, baseVirtualDir, allowCrossAppMapping);
+               }
+
+               public override double [] MapRawImageCoordinates (System.String imageFieldName)
+               {
+                       return w.MapRawImageCoordinates (imageFieldName);
+               }
+
+               public override void SaveAs (string filename, bool includeHeaders)
+               {
+                       w.SaveAs (filename, includeHeaders);
+               }
+
+               public override void ValidateInput ()
+               {
+                       w.ValidateInput ();
+               }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web/HttpResponseWrapper.cs b/mcs/class/System.Web/System.Web/HttpResponseWrapper.cs
new file mode 100644 (file)
index 0000000..1e437e4
--- /dev/null
@@ -0,0 +1,376 @@
+//
+// HttpResponseWrapper.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.Specialized;
+using System.Globalization;
+using System.IO;
+using System.Runtime.CompilerServices;
+using System.Runtime.Serialization;
+using System.Security.Permissions;
+using System.Security.Principal;
+using System.Text;
+using System.Web.Caching;
+using System.Threading;
+
+namespace System.Web
+{
+        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class HttpResponseWrapper : HttpResponseBase
+       {
+               HttpResponse w;
+
+               public HttpResponseWrapper (HttpResponse httpResponse)
+               {
+                       if (httpResponse == null)
+                               throw new ArgumentNullException ("httpResponse");
+                       w = httpResponse;
+               }
+
+               public override bool Buffer {
+                       get { return w.Buffer; }
+                       set { w.Buffer = value; }
+               }
+
+               public override bool BufferOutput {
+                       get { return w.BufferOutput; }
+                       set { w.BufferOutput = value; }
+               }
+
+               public override HttpCachePolicyBase Cache {
+                       get { return new HttpCachePolicyWrapper (w.Cache); }
+               }
+
+               public override string CacheControl {
+                       get { return w.CacheControl; }
+                       set { w.CacheControl = value; }
+               }
+
+               public override string Charset {
+                       get { return w.Charset; }
+                       set { w.Charset = value; }
+               }
+
+               public override CancellationToken ClientDisconnectedToken {
+                       get { return CancellationToken.None; }
+               }
+
+               public override Encoding ContentEncoding {
+                       get { return w.ContentEncoding; }
+                       set { w.ContentEncoding = value; }
+               }
+
+               public override string ContentType {
+                       get { return w.ContentType; }
+                       set { w.ContentType = value; }
+               }
+
+               public override HttpCookieCollection Cookies {
+                       get { return w.Cookies; }
+               }
+
+               public override int Expires {
+                       get { return w.Expires; }
+                       set { w.Expires = value; }
+               }
+
+               public override DateTime ExpiresAbsolute {
+                       get { return w.ExpiresAbsolute; }
+                       set { w.ExpiresAbsolute = value; }
+               }
+
+               public override Stream Filter {
+                       get { return w.Filter; }
+                       set { w.Filter = value; }
+               }
+
+               public override Encoding HeaderEncoding {
+                       get { return w.HeaderEncoding; }
+                       set { w.HeaderEncoding = value; }
+               }
+
+               public override NameValueCollection Headers {
+                       get { return w.Headers; }
+               }
+
+               public override bool IsClientConnected {
+                       get { return w.IsClientConnected; }
+               }
+
+               public override bool IsRequestBeingRedirected {
+                       get { return w.IsRequestBeingRedirected; }
+               }
+
+               public override TextWriter Output {
+                       get { return w.Output; }
+                       set { w.Output = value; }
+               }
+
+               public override Stream OutputStream {
+                       get { return w.OutputStream; }
+               }
+
+               public override string RedirectLocation {
+                       get { return w.RedirectLocation; }
+                       set { w.RedirectLocation = value; }
+               }
+
+               public override string Status {
+                       get { return w.Status; }
+                       set { w.Status = value; }
+               }
+
+               public override int StatusCode {
+                       get { return w.StatusCode; }
+                       set { w.StatusCode = value; }
+               }
+
+               public override string StatusDescription {
+                       get { return w.StatusDescription; }
+                       set { w.StatusDescription = value; }
+               }
+
+               public override int SubStatusCode {
+                       get { return w.SubStatusCode; }
+                       set { w.SubStatusCode = value; }
+               }
+
+               public override bool SuppressContent {
+                       get { return w.SuppressContent; }
+                       set { w.SuppressContent = value; }
+               }
+
+               public override bool SuppressFormsAuthenticationRedirect {
+                       get { return w.SuppressFormsAuthenticationRedirect; }
+                       set { w.SuppressFormsAuthenticationRedirect = value; }
+               }
+
+               public override bool TrySkipIisCustomErrors {
+                       get { return w.TrySkipIisCustomErrors; }
+                       set { w.TrySkipIisCustomErrors = value; }
+               }
+
+               public override void AddCacheDependency (params CacheDependency [] dependencies)
+               {
+                       w.AddCacheDependency (dependencies);
+               }
+
+               public override void AddCacheItemDependencies (ArrayList cacheKeys)
+               {
+                       w.AddCacheItemDependencies (cacheKeys);
+               }
+
+               public override void AddCacheItemDependencies (string [] cacheKeys)
+               {
+                       w.AddCacheItemDependencies (cacheKeys);
+               }
+
+               public override void AddCacheItemDependency (string cacheKey)
+               {
+                       w.AddCacheItemDependency (cacheKey);
+               }
+
+               public override void AddFileDependencies (ArrayList filenames)
+               {
+                       w.AddFileDependencies (filenames);
+               }
+
+               public override void AddFileDependencies (string [] filenames)
+               {
+                       w.AddFileDependencies (filenames);
+               }
+
+               public override void AddFileDependency (string filename)
+               {
+                       w.AddFileDependency (filename);
+               }
+
+               public override void AddHeader (string name, string value)
+               {
+                       w.AddHeader (name, value);
+               }
+
+               public override void AppendCookie (HttpCookie cookie)
+               {
+                       w.AppendCookie (cookie);
+               }
+
+               public override void AppendHeader (string name, string value)
+               {
+                       w.AppendHeader (name, value);
+               }
+
+               public override void AppendToLog (string param)
+               {
+                       w.AppendToLog (param);
+               }
+
+               public override string ApplyAppPathModifier (string overridePath)
+               {
+                       return w.ApplyAppPathModifier (overridePath);
+               }
+
+               public override void BinaryWrite (byte [] buffer)
+               {
+                       w.BinaryWrite (buffer);
+               }
+
+               public override void Clear ()
+               {
+                       w.Clear ();
+               }
+
+               public override void ClearContent ()
+               {
+                       w.ClearContent ();
+               }
+
+               public override void ClearHeaders ()
+               {
+                       w.ClearHeaders ();
+               }
+
+               public override void Close ()
+               {
+                       w.Close ();
+               }
+
+               public override void DisableKernelCache ()
+               {
+                        w.DisableKernelCache ();
+               }
+
+               public override void End ()
+               {
+                       w.End ();
+               }
+
+               public override void Flush ()
+               {
+                       w.Flush ();
+               }
+
+               public override void Pics (string value)
+               {
+                       w.Pics (value);
+               }
+
+               public override void Redirect (string url)
+               {
+                       w.Redirect (url);
+               }
+
+               public override void Redirect (string url, bool endResponse)
+               {
+                       w.Redirect (url, endResponse);
+               }
+               public override void RedirectPermanent (string url)
+               {
+                       w.RedirectPermanent (url);
+               }
+
+               public override void RedirectPermanent (string url, bool endResponse)
+               {
+                       w.RedirectPermanent (url, endResponse);
+               }
+
+               public override void RemoveOutputCacheItem (string path, string providerName)
+               {
+                       HttpResponse.RemoveOutputCacheItem (path, providerName);
+               }
+               public override void RemoveOutputCacheItem (string path)
+               {
+                        HttpResponse.RemoveOutputCacheItem (path);
+               }
+
+               public override void SetCookie (HttpCookie cookie)
+               {
+                       w.SetCookie (cookie);
+               }
+
+               public override void TransmitFile (string filename)
+               {
+                       w.TransmitFile (filename);
+               }
+
+               public override void TransmitFile (string filename, long offset, long length)
+               {
+                       w.TransmitFile (filename, offset, length);
+               }
+
+               public override void Write (char ch)
+               {
+                       w.Write (ch);
+               }
+
+               public override void Write (object obj)
+               {
+                       w.Write (obj);
+               }
+
+               public override void Write (string s)
+               {
+                       w.Write (s);
+               }
+
+               public override void Write (char [] buffer, int index, int count)
+               {
+                       w.Write (buffer, index, count);
+               }
+
+               public override void WriteFile (string filename)
+               {
+                       w.WriteFile (filename);
+               }
+
+               public override void WriteFile (string filename, bool readIntoMemory)
+               {
+                       w.WriteFile (filename, readIntoMemory);
+               }
+
+               public override void WriteFile (IntPtr fileHandle, long offset, long size)
+               {
+                       w.WriteFile (fileHandle, offset, size);
+               }
+
+               public override void WriteFile (string filename, long offset, long size)
+               {
+                       w.WriteFile (filename, offset, size);
+               }
+
+               public override void WriteSubstitution (HttpResponseSubstitutionCallback callback)
+               {
+                       w.WriteSubstitution (callback);
+               }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web/HttpServerUtilityWrapper.cs b/mcs/class/System.Web/System.Web/HttpServerUtilityWrapper.cs
new file mode 100644 (file)
index 0000000..52fc7a1
--- /dev/null
@@ -0,0 +1,217 @@
+//
+// HttpServerUtilityWrapper.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.Specialized;
+using System.Globalization;
+using System.IO;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Security.Principal;
+using System.Web.Caching;
+using System.Web.Profile;
+
+namespace System.Web
+{
+        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class HttpServerUtilityWrapper : HttpServerUtilityBase
+       {
+               HttpServerUtility w;
+
+               public HttpServerUtilityWrapper (HttpServerUtility httpServerUtility)
+               {
+                       if (httpServerUtility == null)
+                               throw new ArgumentNullException ("httpServerUtility");
+                       w = httpServerUtility;
+               }
+
+               public override string MachineName {
+                       get { return w.MachineName; }
+               }
+
+               public override int ScriptTimeout {
+                       get { return w.ScriptTimeout; }
+                       set { w.ScriptTimeout = value; }
+               }
+
+               public override void ClearError ()
+               {
+                       w.ClearError ();
+               }
+
+               public override object CreateObject (string progID)
+               {
+                       return w.CreateObject (progID);
+               }
+
+               public override object CreateObject (Type type)
+               {
+                       return w.CreateObject (type);
+               }
+
+               public override object CreateObjectFromClsid (string clsid)
+               {
+                       return w.CreateObjectFromClsid (clsid);
+               }
+
+               public override void Execute (string path)
+               {
+                       w.Execute (path);
+               }
+
+               public override void Execute (string path, bool preserveForm)
+               {
+                       w.Execute (path, preserveForm);
+               }
+
+               public override void Execute (string path, TextWriter writer)
+               {
+                       w.Execute (path, writer);
+               }
+
+               public override void Execute (string path, TextWriter writer, bool preserveForm)
+               {
+                       w.Execute (path, writer, preserveForm);
+               }
+
+               public override void Execute (IHttpHandler handler, TextWriter writer, bool preserveForm)
+               {
+                       w.Execute (handler, writer, preserveForm);
+               }
+
+               public override Exception GetLastError ()
+               {
+                       return w.GetLastError ();
+               }
+
+               public override string HtmlDecode (string s)
+               {
+                       return w.HtmlDecode (s);
+               }
+
+               public override void HtmlDecode (string s, TextWriter output)
+               {
+                       w.HtmlDecode (s, output);
+               }
+
+               public override string HtmlEncode (string s)
+               {
+                       return w.HtmlEncode (s);
+               }
+
+               public override void HtmlEncode (string s, TextWriter output)
+               {
+                       w.HtmlEncode (s, output);
+               }
+
+               public override string MapPath (string path)
+               {
+                       return w.MapPath (path);
+               }
+
+               public override void Transfer (string path)
+               {
+                       w.Transfer (path);
+               }
+
+               public override void Transfer (string path, bool preserveForm)
+               {
+                       w.Transfer (path, preserveForm);
+               }
+
+               public override void Transfer (IHttpHandler handler, bool preserveForm)
+               {
+                       w.Transfer (handler, preserveForm);
+               }
+
+               [MonoTODO]
+               public override void TransferRequest (string path)
+               {
+                       // return TransferRequest (path);
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public override void TransferRequest (string path, bool preserveForm)
+               {
+                       // return TransferRequest (path, preserveForm);
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public override void TransferRequest (string path, bool preserveForm, string method, NameValueCollection headers)
+               {
+                       // return TransferRequest (path, preserveForm, method, headers);
+                       throw new NotImplementedException ();
+               }
+
+               public override string UrlDecode (string s)
+               {
+                       return w.UrlDecode (s);
+               }
+
+               public override void UrlDecode (string s, TextWriter output)
+               {
+                       w.UrlDecode (s, output);
+               }
+
+               public override string UrlEncode (string s)
+               {
+                       return w.UrlEncode (s);
+               }
+
+               public override void UrlEncode (string s, TextWriter output)
+               {
+                       w.UrlEncode (s, output);
+               }
+
+               public override string UrlPathEncode (string s)
+               {
+                       return w.UrlPathEncode (s);
+               }
+
+               [MonoTODO]
+               public override byte [] UrlTokenDecode (string input)
+               {
+                       // return w.UrlTokenDecode (input);
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               public override string UrlTokenEncode (byte [] input)
+               {
+                       // return w.UrlTokenEncode (input);
+                       throw new NotImplementedException ();
+               }
+       }
+}
diff --git a/mcs/class/System.Web/System.Web/HttpSessionStateWrapper.cs b/mcs/class/System.Web/System.Web/HttpSessionStateWrapper.cs
new file mode 100644 (file)
index 0000000..563eb0b
--- /dev/null
@@ -0,0 +1,173 @@
+//
+// HttpSessionStateWrapper.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2008 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.Specialized;
+using System.Globalization;
+using System.IO;
+using System.Runtime.CompilerServices;
+using System.Security.Permissions;
+using System.Security.Principal;
+using System.Web.Caching;
+using System.Web.SessionState;
+
+namespace System.Web
+{
+        [TypeForwardedFrom ("System.Web.Abstractions, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class HttpSessionStateWrapper : HttpSessionStateBase
+       {
+               HttpSessionState w;
+
+               public HttpSessionStateWrapper (HttpSessionState httpSessionState)
+               {
+                       if (httpSessionState == null)
+                               throw new ArgumentNullException ("httpSessionState");
+                       w = httpSessionState;
+               }
+
+               public override int CodePage {
+                       get { return w.CodePage; }
+                       set { w.CodePage = value; }
+               }
+
+               public override HttpSessionStateBase Contents {
+                       get { throw new NotImplementedException (); }
+               }
+
+               [MonoTODO]
+               public override HttpCookieMode CookieMode {
+                       //get { return w.CookieMode; }
+                       get { throw new NotImplementedException (); }
+               }
+
+               public override int Count {
+                       get { return w.Count; }
+               }
+
+               public override bool IsCookieless {
+                       get { return w.IsCookieless; }
+               }
+
+               public override bool IsNewSession {
+                       get { return w.IsNewSession; }
+               }
+
+               public override bool IsReadOnly {
+                       get { return w.IsReadOnly; }
+               }
+
+               public override bool IsSynchronized {
+                       get { return w.IsSynchronized; }
+               }
+
+               public override object this [int index] {
+                       get { return w [index]; }
+                       set { w [index] = value; }
+               }
+
+               public override object this [string name] {
+                       get { return w [name]; }
+                       set { w [name] = value; }
+               }
+
+               public override NameObjectCollectionBase.KeysCollection Keys {
+                       get { return w.Keys; }
+               }
+
+               public override int LCID {
+                       get { return w.LCID; }
+                       set { w.LCID = value; }
+               }
+
+               public override SessionStateMode Mode {
+                       get { return w.Mode; }
+               }
+
+               public override string SessionID {
+                       get { return w.SessionID; }
+               }
+
+               public override HttpStaticObjectsCollectionBase StaticObjects {
+                       get { throw new NotImplementedException (); }
+               }
+
+               public override object SyncRoot {
+                       get { return w.SyncRoot; }
+               }
+
+               public override int Timeout {
+                       get { return w.Timeout; }
+                       set { w.Timeout = value; }
+               }
+
+               public override void Abandon ()
+               {
+                       w.Abandon ();
+               }
+
+               public override void Add (string name, object value)
+               {
+                       w.Add (name, value);
+               }
+
+               public override void Clear ()
+               {
+                       w.Clear ();
+               }
+
+               public override void CopyTo (Array array, int index)
+               {
+                       w.CopyTo (array, index);
+               }
+
+               public override IEnumerator GetEnumerator ()
+               {
+                       return w.GetEnumerator ();
+               }
+
+               public override void Remove (string name)
+               {
+                       w.Remove (name);
+               }
+
+               public override void RemoveAll ()
+               {
+                       w.RemoveAll ();
+               }
+
+               public override void RemoveAt (int index)
+               {
+                       w.RemoveAt (index);
+               }
+       }
+}
index 786956ee9da6646d5a3ca849134b09b1a66b9dac..83fe4eb3b7193aab797cf0ca252095ead23716c2 100644 (file)
@@ -511,7 +511,7 @@ namespace System.Web {
                        if (value == null)
                                return null;
 
-#if !MOBILE
+#if !(MOBILE || NO_SYSTEM_WEB_DEPENDENCY)
                        IHtmlString htmlString = value as IHtmlString;
                        if (htmlString != null)
                                return htmlString.ToHtmlString ();
diff --git a/mcs/class/System.Web/System.Web/UnvalidatedRequestValuesBase.cs b/mcs/class/System.Web/System.Web/UnvalidatedRequestValuesBase.cs
deleted file mode 100644 (file)
index 9b54b07..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// System.Web.UnvalidatedRequestValuesBase.cs
-//
-// Author:
-//   Mike Morano <mmorano@mikeandwan.us>
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Specialized;
-
-
-namespace System.Web {
-       public abstract class UnvalidatedRequestValuesBase {
-               void NotImplemented ()
-               {
-                       throw new NotImplementedException ();
-               }
-
-               public virtual HttpCookieCollection Cookies 
-               { 
-                       get { NotImplemented (); return null; }
-               }
-
-               public virtual HttpFileCollection Files 
-               { 
-                       get { NotImplemented (); return null; }
-               }
-
-               public virtual NameValueCollection Form 
-               { 
-                       get { NotImplemented (); return null; }
-               }
-
-               public virtual NameValueCollection Headers 
-               { 
-                       get { NotImplemented (); return null; }
-               }
-
-               public virtual string this[string field] 
-               { 
-                       get { NotImplemented (); return null; }
-               }
-
-               public virtual string Path 
-               { 
-                       get { NotImplemented (); return null; }
-               }
-
-               public virtual string PathInfo 
-               { 
-                       get { NotImplemented (); return null; }
-               }
-
-               public virtual NameValueCollection QueryString 
-               { 
-                       get { NotImplemented (); return null; }
-               }
-
-               public virtual string RawUrl 
-               { 
-                       get { NotImplemented (); return null; }
-               }
-
-               public virtual Uri Url 
-               { 
-                       get { NotImplemented (); return null; }
-               }
-       }
-}
diff --git a/mcs/class/System.Web/System.Web/UnvalidatedRequestValuesWrapper.cs b/mcs/class/System.Web/System.Web/UnvalidatedRequestValuesWrapper.cs
deleted file mode 100644 (file)
index e6b6084..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-//
-// System.Web.UnvalidatedRequestValuesWrapper.cs
-//
-// Author:
-//   Mike Morano <mmorano@mikeandwan.us>
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Specialized;
-
-
-namespace System.Web {
-       public class UnvalidatedRequestValuesWrapper : UnvalidatedRequestValuesBase {
-               UnvalidatedRequestValues rv;
-
-               public UnvalidatedRequestValuesWrapper (UnvalidatedRequestValues requestValues) 
-               {
-                       rv = requestValues;
-               }
-
-               public override HttpCookieCollection Cookies 
-               { 
-                       get { return rv.Cookies; }
-               }
-
-               public override HttpFileCollection Files 
-               { 
-                       get { return rv.Files; }
-               }
-
-               public override NameValueCollection Form 
-               { 
-                       get { return rv.Form; }
-               }
-
-               public override NameValueCollection Headers 
-               { 
-                       get { return rv.Headers; }
-               }
-
-               public override string this[string field] 
-               { 
-                       get { return rv[field]; }
-               }
-
-               public override string Path 
-               { 
-                       get { return rv.Path; }
-               }
-
-               public override string PathInfo 
-               { 
-                       get { return rv.PathInfo; }
-               }
-
-               public override NameValueCollection QueryString 
-               { 
-                       get { return rv.QueryString; }
-               }
-
-               public override string RawUrl 
-               { 
-                       get { return rv.RawUrl; }
-               }
-
-               public override Uri Url 
-               { 
-                       get { return rv.Url; }
-               }
-       }
-}
index 29339b428c9d3f6677cac539ae7e76751a53878d..4416f5a698b9262d036092092c23f1b41e3585a4 100644 (file)
@@ -272,7 +272,6 @@ System.Web.UI.WebControls/RangeValidatorTest.cs
 System.Web.UI.WebControls/RectangleHotSpotTest.cs
 System.Web.UI.WebControls/RegularExpressionValidatorTest.cs
 System.Web.UI.WebControls/RepeatInfoTest.auto.cs
-System.Web.UI.WebControls/RepeatInfoTest.auto.2.0.cs
 System.Web.UI.WebControls/RepeatInfoTest.auto.4.0.cs
 System.Web.UI.WebControls/RepeatInfoTest.cs
 System.Web.UI.WebControls/RepeatInfoUser.cs
index ee2bd41226523258e853938f525d69913cc810f0..ac14cee58ba3ac542d913bce06beac1bb15337db 100644 (file)
@@ -28,7 +28,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0
 using System;
 using System.Web;
 using System.Web.Caching;
@@ -70,4 +69,3 @@ namespace MonoTests.System.Web.Caching
                }
        }
 }
-#endif
\ No newline at end of file
index e9e505926997e33df4648e9c0533dd63f1a1b321..7a6a7434b8a1b5593f3c8b85d9b5a273217299d9 100644 (file)
@@ -28,7 +28,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0
 using System;
 using System.Web;
 using System.Web.Caching;
@@ -68,4 +67,3 @@ namespace MonoTests.System.Web.Caching
                }
        }
 }
-#endif
\ No newline at end of file
index 6f732dddcb82db8adb0245a7fc22f3763cbb7085..bfee3cc479b4b44c68407f10c807b4534074a9a1 100644 (file)
@@ -28,7 +28,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0
 using System;
 using System.Web;
 using System.Web.Caching;
@@ -74,4 +73,3 @@ namespace MonoTests.System.Web.Caching
                }
        }
 }
-#endif
index c26e99432e1b4f80d79edab7dd2efb64be1cf4b8..604b418f5e207ab205f4d68aa48dd18c0709dd55 100644 (file)
@@ -25,7 +25,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.Configuration;
@@ -134,10 +133,10 @@ namespace MonoTests.System.Web.Caching
                static readonly byte[] substitutionResponseElement = { 0x0, 0x1, 0x0, 0x0, 0x0, 0xFF, 0xFF, 0xFF, 0xFF, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x2, 0x0, 0x0, 0x0, 0x4D, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x57, 0x65, 0x62, 0x2C, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x34, 0x2E, 0x30, 0x2E, 0x30, 0x2E, 0x30, 0x2C, 0x20, 0x43, 0x75, 0x6C, 0x74, 0x75, 0x72, 0x65, 0x3D, 0x6E, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6C, 0x2C, 0x20, 0x50, 0x75, 0x62, 0x6C, 0x69, 0x63, 0x4B, 0x65, 0x79, 0x54, 0x6F, 0x6B, 0x65, 0x6E, 0x3D, 0x62, 0x30, 0x33, 0x66, 0x35, 0x66, 0x37, 0x66, 0x31, 0x31, 0x64, 0x35, 0x30, 0x61, 0x33, 0x61, 0x5, 0x1, 0x0, 0x0, 0x0, 0x2E, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x57, 0x65, 0x62, 0x2E, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6E, 0x67, 0x2E, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x52, 0x65, 0x73, 0x70, 0x6F, 0x6E, 0x73, 0x65, 0x45, 0x6C, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x2, 0x0, 0x0, 0x0, 0xF, 0x5F, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4E, 0x61, 0x6D, 0x65, 0xB, 0x5F, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x4E, 0x61, 0x6D, 0x65, 0x1, 0x1, 0x2, 0x0, 0x0, 0x0, 0x6, 0x3, 0x0, 0x0, 0x0, 0x41, 0x4D, 0x6F, 0x6E, 0x6F, 0x54, 0x65, 0x73, 0x74, 0x73, 0x2E, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x57, 0x65, 0x62, 0x2E, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6E, 0x67, 0x2E, 0x4F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x65, 0x73, 0x74, 0x2C, 0x20, 0x44, 0x6F, 0x74, 0x4E, 0x65, 0x74, 0x34, 0x5F, 0x4E, 0x55, 0x6E, 0x69, 0x74, 0x5F, 0x54, 0x65, 0x73, 0x74, 0x73, 0x6, 0x4, 0x0, 0x0, 0x0, 0x19, 0x44, 0x75, 0x6D, 0x6D, 0x79, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x43, 0x61, 0x6C, 0x6C, 0x62, 0x61, 0x63, 0x6B, 0xB, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 };
                static readonly byte[] badSubstitutionResponseElement = { 0x0, 0x1, 0x0, 0x0, 0x0, 0xFF, 0xFF, 0xFF, 0xFF, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x2, 0x0, 0x0, 0x0, 0x4D, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x57, 0x65, 0x62, 0x2C, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x34, 0x2E, 0x30, 0x2E, 0x30, 0x2E, 0x30, 0x2C, 0x20, 0x43, 0x75, 0x6C, 0x74, 0x75, 0x72, 0x65, 0x3D, 0x6E, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6C, 0x2C, 0x20, 0x50, 0x75, 0x62, 0x6C, 0x69, 0x63, 0x4B, 0x65, 0x79, 0x54, 0x6F, 0x6B, 0x65, 0x6E, 0x3D, 0x62, 0x30, 0x33, 0x66, 0x35, 0x66, 0x37, 0x66, 0x31, 0x31, 0x64, 0x35, 0x30, 0x61, 0x33, 0x61, 0x5, 0x1, 0x0, 0x0, 0x0, 0x2E, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x57, 0x65, 0x62, 0x2E, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6E, 0x67, 0x2E, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x52, 0x65, 0x73, 0x70, 0x6F, 0x6E, 0x73, 0x65, 0x45, 0x6C, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x2, 0x0, 0x0, 0x0, 0xF, 0x5F, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4E, 0x61, 0x6D, 0x65, 0xB, 0x5F, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x4E, 0x61, 0x6D, 0x65, 0x1, 0x1, 0x2, 0x0, 0x0, 0x0, 0x6, 0x3, 0x0, 0x0, 0x0, 0x41, 0x4D, 0x6F, 0x6E, 0x6F, 0x54, 0x65, 0x73, 0x74, 0x73, 0x2E, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x57, 0x65, 0x62, 0x2E, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6E, 0x67, 0x2E, 0x4F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x65, 0x73, 0x74, 0x2C, 0x20, 0x44, 0x6F, 0x74, 0x4E, 0x65, 0x74, 0x34, 0x5F, 0x4E, 0x55, 0x6E, 0x69, 0x74, 0x5F, 0x54, 0x65, 0x73, 0x74, 0x73, 0x6, 0x4, 0x0, 0x0, 0x0, 0x1C, 0x44, 0x75, 0x6D, 0x6D, 0x79, 0x42, 0x61, 0x64, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x43, 0x61, 0x6C, 0x6C, 0x62, 0x61, 0x63, 0x6B, 0xB, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 };
 #else
-               static readonly byte[] substitutionResponseElement = {0x0,0x1,0x0,0x0,0x0,0xFF,0xFF,0xFF,0xFF,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC,0x2,0x0,0x0,0x0,0x4D,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x34,0x2E,0x30,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x62,0x30,0x33,0x66,0x35,0x66,0x37,0x66,0x31,0x31,0x64,0x35,0x30,0x61,0x33,0x61,0x5,0x1,0x0,0x0,0x0,0x2E,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x52,0x65,0x73,0x70,0x6F,0x6E,0x73,0x65,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x3,0x0,0x0,0x0,0x8,0x74,0x79,0x70,0x65,0x4E,0x61,0x6D,0x65,0xA,0x6D,0x65,0x74,0x68,0x6F,0x64,0x4E,0x61,0x6D,0x65,0x19,0x3C,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x3E,0x6B,0x5F,0x5F,0x42,0x61,0x63,0x6B,0x69,0x6E,0x67,0x46,0x69,0x65,0x6C,0x64,0x1,0x1,0x3,0x22,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2,0x0,0x0,0x0,0x6,0x3,0x0,0x0,0x0,0x88,0x1,0x4D,0x6F,0x6E,0x6F,0x54,0x65,0x73,0x74,0x73,0x2E,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x4F,0x75,0x74,0x70,0x75,0x74,0x43,0x61,0x63,0x68,0x65,0x54,0x65,0x73,0x74,0x2C,0x20,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x5F,0x74,0x65,0x73,0x74,0x5F,0x6E,0x65,0x74,0x5F,0x34,0x5F,0x35,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x31,0x2E,0x33,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x33,0x31,0x62,0x66,0x33,0x38,0x35,0x36,0x61,0x64,0x33,0x36,0x34,0x65,0x33,0x35,0x6,0x4,0x0,0x0,0x0,0x19,0x44,0x75,0x6D,0x6D,0x79,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x9,0x5,0x0,0x0,0x0,0x4,0x5,0x0,0x0,0x0,0x22,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2,0x0,0x0,0x0,0x8,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x7,0x6D,0x65,0x74,0x68,0x6F,0x64,0x30,0x3,0x3,0x30,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2B,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x45,0x6E,0x74,0x72,0x79,0x2F,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x52,0x65,0x66,0x6C,0x65,0x63,0x74,0x69,0x6F,0x6E,0x2E,0x4D,0x65,0x6D,0x62,0x65,0x72,0x49,0x6E,0x66,0x6F,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x9,0x6,0x0,0x0,0x0,0x9,0x7,0x0,0x0,0x0,0x4,0x6,0x0,0x0,0x0,0x30,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2B,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x45,0x6E,0x74,0x72,0x79,0x7,0x0,0x0,0x0,0x4,0x74,0x79,0x70,0x65,0x8,0x61,0x73,0x73,0x65,0x6D,0x62,0x6C,0x79,0x6,0x74,0x61,0x72,0x67,0x65,0x74,0x12,0x74,0x61,0x72,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x41,0x73,0x73,0x65,0x6D,0x62,0x6C,0x79,0xE,0x74,0x61,0x72,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x4E,0x61,0x6D,0x65,0xA,0x6D,0x65,0x74,0x68,0x6F,0x64,0x4E,0x61,0x6D,0x65,0xD,0x64,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x45,0x6E,0x74,0x72,0x79,0x1,0x1,0x2,0x1,0x1,0x1,0x3,0x30,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2B,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x45,0x6E,0x74,0x72,0x79,0x6,0x8,0x0,0x0,0x0,0x2B,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x48,0x74,0x74,0x70,0x52,0x65,0x73,0x70,0x6F,0x6E,0x73,0x65,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x6,0x9,0x0,0x0,0x0,0x4D,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x34,0x2E,0x30,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x62,0x30,0x33,0x66,0x35,0x66,0x37,0x66,0x31,0x31,0x64,0x35,0x30,0x61,0x33,0x61,0xA,0x6,0xA,0x0,0x0,0x0,0x5A,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x5F,0x74,0x65,0x73,0x74,0x5F,0x6E,0x65,0x74,0x5F,0x34,0x5F,0x35,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x31,0x2E,0x33,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x33,0x31,0x62,0x66,0x33,0x38,0x35,0x36,0x61,0x64,0x33,0x36,0x34,0x65,0x33,0x35,0x6,0xB,0x0,0x0,0x0,0x2C,0x4D,0x6F,0x6E,0x6F,0x54,0x65,0x73,0x74,0x73,0x2E,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x4F,0x75,0x74,0x70,0x75,0x74,0x43,0x61,0x63,0x68,0x65,0x54,0x65,0x73,0x74,0x9,0x4,0x0,0x0,0x0,0xA,0x4,0x7,0x0,0x0,0x0,0x2F,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x52,0x65,0x66,0x6C,0x65,0x63,0x74,0x69,0x6F,0x6E,0x2E,0x4D,0x65,0x6D,0x62,0x65,0x72,0x49,0x6E,0x66,0x6F,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x7,0x0,0x0,0x0,0x4,0x4E,0x61,0x6D,0x65,0xC,0x41,0x73,0x73,0x65,0x6D,0x62,0x6C,0x79,0x4E,0x61,0x6D,0x65,0x9,0x43,0x6C,0x61,0x73,0x73,0x4E,0x61,0x6D,0x65,0x9,0x53,0x69,0x67,0x6E,0x61,0x74,0x75,0x72,0x65,0xA,0x53,0x69,0x67,0x6E,0x61,0x74,0x75,0x72,0x65,0x32,0xA,0x4D,0x65,0x6D,0x62,0x65,0x72,0x54,0x79,0x70,0x65,0x10,0x47,0x65,0x6E,0x65,0x72,0x69,0x63,0x41,0x72,0x67,0x75,0x6D,0x65,0x6E,0x74,0x73,0x1,0x1,0x1,0x1,0x1,0x0,0x3,0x8,0xD,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x54,0x79,0x70,0x65,0x5B,0x5D,0x9,0x4,0x0,0x0,0x0,0x9,0xA,0x0,0x0,0x0,0x9,0xB,0x0,0x0,0x0,0x6,0xF,0x0,0x0,0x0,0x3F,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x53,0x74,0x72,0x69,0x6E,0x67,0x20,0x44,0x75,0x6D,0x6D,0x79,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x28,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x48,0x74,0x74,0x70,0x43,0x6F,0x6E,0x74,0x65,0x78,0x74,0x29,0x6,0x10,0x0,0x0,0x0,0x3F,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x53,0x74,0x72,0x69,0x6E,0x67,0x20,0x44,0x75,0x6D,0x6D,0x79,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x28,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x48,0x74,0x74,0x70,0x43,0x6F,0x6E,0x74,0x65,0x78,0x74,0x29,0x8,0x0,0x0,0x0,0xA,0xB,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0};
-               static readonly byte[] badSubstitutionResponseElement = {0x0,0x1,0x0,0x0,0x0,0xFF,0xFF,0xFF,0xFF,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC,0x2,0x0,0x0,0x0,0x4D,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x34,0x2E,0x30,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x62,0x30,0x33,0x66,0x35,0x66,0x37,0x66,0x31,0x31,0x64,0x35,0x30,0x61,0x33,0x61,0x5,0x1,0x0,0x0,0x0,0x2E,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x52,0x65,0x73,0x70,0x6F,0x6E,0x73,0x65,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x3,0x0,0x0,0x0,0x8,0x74,0x79,0x70,0x65,0x4E,0x61,0x6D,0x65,0xA,0x6D,0x65,0x74,0x68,0x6F,0x64,0x4E,0x61,0x6D,0x65,0x19,0x3C,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x3E,0x6B,0x5F,0x5F,0x42,0x61,0x63,0x6B,0x69,0x6E,0x67,0x46,0x69,0x65,0x6C,0x64,0x1,0x1,0x3,0x22,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2,0x0,0x0,0x0,0x6,0x3,0x0,0x0,0x0,0x88,0x1,0x4D,0x6F,0x6E,0x6F,0x54,0x65,0x73,0x74,0x73,0x2E,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x4F,0x75,0x74,0x70,0x75,0x74,0x43,0x61,0x63,0x68,0x65,0x54,0x65,0x73,0x74,0x2C,0x20,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x5F,0x74,0x65,0x73,0x74,0x5F,0x6E,0x65,0x74,0x5F,0x34,0x5F,0x35,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x31,0x2E,0x33,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x33,0x31,0x62,0x66,0x33,0x38,0x35,0x36,0x61,0x64,0x33,0x36,0x34,0x65,0x33,0x35,0x6,0x4,0x0,0x0,0x0,0x1C,0x44,0x75,0x6D,0x6D,0x79,0x42,0x61,0x64,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x9,0x5,0x0,0x0,0x0,0xC,0x6,0x0,0x0,0x0,0x5A,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x5F,0x74,0x65,0x73,0x74,0x5F,0x6E,0x65,0x74,0x5F,0x34,0x5F,0x35,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x31,0x2E,0x33,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x33,0x31,0x62,0x66,0x33,0x38,0x35,0x36,0x61,0x64,0x33,0x36,0x34,0x65,0x33,0x35,0x4,0x5,0x0,0x0,0x0,0x22,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x3,0x0,0x0,0x0,0x8,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x7,0x74,0x61,0x72,0x67,0x65,0x74,0x30,0x7,0x6D,0x65,0x74,0x68,0x6F,0x64,0x30,0x3,0x4,0x3,0x30,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2B,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x45,0x6E,0x74,0x72,0x79,0x2C,0x4D,0x6F,0x6E,0x6F,0x54,0x65,0x73,0x74,0x73,0x2E,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x4F,0x75,0x74,0x70,0x75,0x74,0x43,0x61,0x63,0x68,0x65,0x54,0x65,0x73,0x74,0x6,0x0,0x0,0x0,0x2F,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x52,0x65,0x66,0x6C,0x65,0x63,0x74,0x69,0x6F,0x6E,0x2E,0x4D,0x65,0x6D,0x62,0x65,0x72,0x49,0x6E,0x66,0x6F,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x9,0x7,0x0,0x0,0x0,0x9,0x8,0x0,0x0,0x0,0x9,0x9,0x0,0x0,0x0,0x4,0x7,0x0,0x0,0x0,0x30,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2B,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x45,0x6E,0x74,0x72,0x79,0x7,0x0,0x0,0x0,0x4,0x74,0x79,0x70,0x65,0x8,0x61,0x73,0x73,0x65,0x6D,0x62,0x6C,0x79,0x6,0x74,0x61,0x72,0x67,0x65,0x74,0x12,0x74,0x61,0x72,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x41,0x73,0x73,0x65,0x6D,0x62,0x6C,0x79,0xE,0x74,0x61,0x72,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x4E,0x61,0x6D,0x65,0xA,0x6D,0x65,0x74,0x68,0x6F,0x64,0x4E,0x61,0x6D,0x65,0xD,0x64,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x45,0x6E,0x74,0x72,0x79,0x1,0x1,0x2,0x1,0x1,0x1,0x3,0x30,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2B,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x45,0x6E,0x74,0x72,0x79,0x6,0xA,0x0,0x0,0x0,0x2B,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x48,0x74,0x74,0x70,0x52,0x65,0x73,0x70,0x6F,0x6E,0x73,0x65,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x6,0xB,0x0,0x0,0x0,0x4D,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x34,0x2E,0x30,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x62,0x30,0x33,0x66,0x35,0x66,0x37,0x66,0x31,0x31,0x64,0x35,0x30,0x61,0x33,0x61,0x6,0xC,0x0,0x0,0x0,0x7,0x74,0x61,0x72,0x67,0x65,0x74,0x30,0x6,0xD,0x0,0x0,0x0,0x5A,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x5F,0x74,0x65,0x73,0x74,0x5F,0x6E,0x65,0x74,0x5F,0x34,0x5F,0x35,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x31,0x2E,0x33,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x33,0x31,0x62,0x66,0x33,0x38,0x35,0x36,0x61,0x64,0x33,0x36,0x34,0x65,0x33,0x35,0x6,0xE,0x0,0x0,0x0,0x2C,0x4D,0x6F,0x6E,0x6F,0x54,0x65,0x73,0x74,0x73,0x2E,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x4F,0x75,0x74,0x70,0x75,0x74,0x43,0x61,0x63,0x68,0x65,0x54,0x65,0x73,0x74,0x9,0x4,0x0,0x0,0x0,0xA,0x5,0x8,0x0,0x0,0x0,0x2C,0x4D,0x6F,0x6E,0x6F,0x54,0x65,0x73,0x74,0x73,0x2E,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x4F,0x75,0x74,0x70,0x75,0x74,0x43,0x61,0x63,0x68,0x65,0x54,0x65,0x73,0x74,0x0,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x4,0x9,0x0,0x0,0x0,0x2F,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x52,0x65,0x66,0x6C,0x65,0x63,0x74,0x69,0x6F,0x6E,0x2E,0x4D,0x65,0x6D,0x62,0x65,0x72,0x49,0x6E,0x66,0x6F,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x7,0x0,0x0,0x0,0x4,0x4E,0x61,0x6D,0x65,0xC,0x41,0x73,0x73,0x65,0x6D,0x62,0x6C,0x79,0x4E,0x61,0x6D,0x65,0x9,0x43,0x6C,0x61,0x73,0x73,0x4E,0x61,0x6D,0x65,0x9,0x53,0x69,0x67,0x6E,0x61,0x74,0x75,0x72,0x65,0xA,0x53,0x69,0x67,0x6E,0x61,0x74,0x75,0x72,0x65,0x32,0xA,0x4D,0x65,0x6D,0x62,0x65,0x72,0x54,0x79,0x70,0x65,0x10,0x47,0x65,0x6E,0x65,0x72,0x69,0x63,0x41,0x72,0x67,0x75,0x6D,0x65,0x6E,0x74,0x73,0x1,0x1,0x1,0x1,0x1,0x0,0x3,0x8,0xD,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x54,0x79,0x70,0x65,0x5B,0x5D,0x9,0x4,0x0,0x0,0x0,0x9,0xD,0x0,0x0,0x0,0x9,0xE,0x0,0x0,0x0,0x6,0x12,0x0,0x0,0x0,0x42,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x53,0x74,0x72,0x69,0x6E,0x67,0x20,0x44,0x75,0x6D,0x6D,0x79,0x42,0x61,0x64,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x28,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x48,0x74,0x74,0x70,0x43,0x6F,0x6E,0x74,0x65,0x78,0x74,0x29,0x6,0x13,0x0,0x0,0x0,0x42,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x53,0x74,0x72,0x69,0x6E,0x67,0x20,0x44,0x75,0x6D,0x6D,0x79,0x42,0x61,0x64,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x28,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x48,0x74,0x74,0x70,0x43,0x6F,0x6E,0x74,0x65,0x78,0x74,0x29,0x8,0x0,0x0,0x0,0xA,0xB,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0};
                static readonly byte[] memoryResponseElement = {0x0,0x1,0x0,0x0,0x0,0xFF,0xFF,0xFF,0xFF,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC,0x2,0x0,0x0,0x0,0x4D,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x34,0x2E,0x30,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x62,0x30,0x33,0x66,0x35,0x66,0x37,0x66,0x31,0x31,0x64,0x35,0x30,0x61,0x33,0x61,0x5,0x1,0x0,0x0,0x0,0x28,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x4D,0x65,0x6D,0x6F,0x72,0x79,0x52,0x65,0x73,0x70,0x6F,0x6E,0x73,0x65,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x2,0x0,0x0,0x0,0x17,0x3C,0x42,0x75,0x66,0x66,0x65,0x72,0x3E,0x6B,0x5F,0x5F,0x42,0x61,0x63,0x6B,0x69,0x6E,0x67,0x46,0x69,0x65,0x6C,0x64,0x17,0x3C,0x4C,0x65,0x6E,0x67,0x74,0x68,0x3E,0x6B,0x5F,0x5F,0x42,0x61,0x63,0x6B,0x69,0x6E,0x67,0x46,0x69,0x65,0x6C,0x64,0x7,0x0,0x2,0x9,0x2,0x0,0x0,0x0,0x9,0x3,0x0,0x0,0x0,0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xF,0x3,0x0,0x0,0x0,0xC,0x0,0x0,0x0,0x2,0x45,0x6E,0x63,0x6F,0x64,0x65,0x64,0x20,0x64,0x61,0x74,0x61,0xB,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0};
                static readonly byte[] fileResponseElement = {0x0,0x1,0x0,0x0,0x0,0xFF,0xFF,0xFF,0xFF,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC,0x2,0x0,0x0,0x0,0x4D,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x34,0x2E,0x30,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x62,0x30,0x33,0x66,0x35,0x66,0x37,0x66,0x31,0x31,0x64,0x35,0x30,0x61,0x33,0x61,0x5,0x1,0x0,0x0,0x0,0x26,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x46,0x69,0x6C,0x65,0x52,0x65,0x73,0x70,0x6F,0x6E,0x73,0x65,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x3,0x0,0x0,0x0,0x17,0x3C,0x4C,0x65,0x6E,0x67,0x74,0x68,0x3E,0x6B,0x5F,0x5F,0x42,0x61,0x63,0x6B,0x69,0x6E,0x67,0x46,0x69,0x65,0x6C,0x64,0x17,0x3C,0x4F,0x66,0x66,0x73,0x65,0x74,0x3E,0x6B,0x5F,0x5F,0x42,0x61,0x63,0x6B,0x69,0x6E,0x67,0x46,0x69,0x65,0x6C,0x64,0x15,0x3C,0x50,0x61,0x74,0x68,0x3E,0x6B,0x5F,0x5F,0x42,0x61,0x63,0x6B,0x69,0x6E,0x67,0x46,0x69,0x65,0x6C,0x64,0x0,0x0,0x1,0x9,0x9,0x2,0x0,0x0,0x0,0xD2,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x3,0x0,0x0,0x0,0x11,0x2F,0x70,0x61,0x74,0x68,0x2F,0x74,0x6F,0x2F,0x66,0x69,0x6C,0x65,0x2E,0x74,0x78,0x74,0xB,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0};
+               static readonly byte[] substitutionResponseElement = {0x0,0x1,0x0,0x0,0x0,0xFF,0xFF,0xFF,0xFF,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC,0x2,0x0,0x0,0x0,0x4D,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x34,0x2E,0x30,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x62,0x30,0x33,0x66,0x35,0x66,0x37,0x66,0x31,0x31,0x64,0x35,0x30,0x61,0x33,0x61,0x5,0x1,0x0,0x0,0x0,0x2E,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x52,0x65,0x73,0x70,0x6F,0x6E,0x73,0x65,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x3,0x0,0x0,0x0,0x8,0x74,0x79,0x70,0x65,0x4E,0x61,0x6D,0x65,0xA,0x6D,0x65,0x74,0x68,0x6F,0x64,0x4E,0x61,0x6D,0x65,0x19,0x3C,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x3E,0x6B,0x5F,0x5F,0x42,0x61,0x63,0x6B,0x69,0x6E,0x67,0x46,0x69,0x65,0x6C,0x64,0x1,0x1,0x3,0x22,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2,0x0,0x0,0x0,0x6,0x3,0x0,0x0,0x0,0x88,0x1,0x4D,0x6F,0x6E,0x6F,0x54,0x65,0x73,0x74,0x73,0x2E,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x4F,0x75,0x74,0x70,0x75,0x74,0x43,0x61,0x63,0x68,0x65,0x54,0x65,0x73,0x74,0x2C,0x20,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x5F,0x74,0x65,0x73,0x74,0x5F,0x6E,0x65,0x74,0x5F,0x34,0x5F,0x78,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x31,0x2E,0x33,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x33,0x31,0x62,0x66,0x33,0x38,0x35,0x36,0x61,0x64,0x33,0x36,0x34,0x65,0x33,0x35,0x6,0x4,0x0,0x0,0x0,0x19,0x44,0x75,0x6D,0x6D,0x79,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x9,0x5,0x0,0x0,0x0,0x4,0x5,0x0,0x0,0x0,0x22,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2,0x0,0x0,0x0,0x8,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x7,0x6D,0x65,0x74,0x68,0x6F,0x64,0x30,0x3,0x3,0x30,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2B,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x45,0x6E,0x74,0x72,0x79,0x2F,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x52,0x65,0x66,0x6C,0x65,0x63,0x74,0x69,0x6F,0x6E,0x2E,0x4D,0x65,0x6D,0x62,0x65,0x72,0x49,0x6E,0x66,0x6F,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x9,0x6,0x0,0x0,0x0,0x9,0x7,0x0,0x0,0x0,0x4,0x6,0x0,0x0,0x0,0x30,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2B,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x45,0x6E,0x74,0x72,0x79,0x7,0x0,0x0,0x0,0x4,0x74,0x79,0x70,0x65,0x8,0x61,0x73,0x73,0x65,0x6D,0x62,0x6C,0x79,0x6,0x74,0x61,0x72,0x67,0x65,0x74,0x12,0x74,0x61,0x72,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x41,0x73,0x73,0x65,0x6D,0x62,0x6C,0x79,0xE,0x74,0x61,0x72,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x4E,0x61,0x6D,0x65,0xA,0x6D,0x65,0x74,0x68,0x6F,0x64,0x4E,0x61,0x6D,0x65,0xD,0x64,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x45,0x6E,0x74,0x72,0x79,0x1,0x1,0x2,0x1,0x1,0x1,0x3,0x30,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2B,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x45,0x6E,0x74,0x72,0x79,0x6,0x8,0x0,0x0,0x0,0x2B,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x48,0x74,0x74,0x70,0x52,0x65,0x73,0x70,0x6F,0x6E,0x73,0x65,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x6,0x9,0x0,0x0,0x0,0x4D,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x34,0x2E,0x30,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x62,0x30,0x33,0x66,0x35,0x66,0x37,0x66,0x31,0x31,0x64,0x35,0x30,0x61,0x33,0x61,0xA,0x6,0xA,0x0,0x0,0x0,0x5A,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x5F,0x74,0x65,0x73,0x74,0x5F,0x6E,0x65,0x74,0x5F,0x34,0x5F,0x78,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x31,0x2E,0x33,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x33,0x31,0x62,0x66,0x33,0x38,0x35,0x36,0x61,0x64,0x33,0x36,0x34,0x65,0x33,0x35,0x6,0xB,0x0,0x0,0x0,0x2C,0x4D,0x6F,0x6E,0x6F,0x54,0x65,0x73,0x74,0x73,0x2E,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x4F,0x75,0x74,0x70,0x75,0x74,0x43,0x61,0x63,0x68,0x65,0x54,0x65,0x73,0x74,0x9,0x4,0x0,0x0,0x0,0xA,0x4,0x7,0x0,0x0,0x0,0x2F,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x52,0x65,0x66,0x6C,0x65,0x63,0x74,0x69,0x6F,0x6E,0x2E,0x4D,0x65,0x6D,0x62,0x65,0x72,0x49,0x6E,0x66,0x6F,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x7,0x0,0x0,0x0,0x4,0x4E,0x61,0x6D,0x65,0xC,0x41,0x73,0x73,0x65,0x6D,0x62,0x6C,0x79,0x4E,0x61,0x6D,0x65,0x9,0x43,0x6C,0x61,0x73,0x73,0x4E,0x61,0x6D,0x65,0x9,0x53,0x69,0x67,0x6E,0x61,0x74,0x75,0x72,0x65,0xA,0x53,0x69,0x67,0x6E,0x61,0x74,0x75,0x72,0x65,0x32,0xA,0x4D,0x65,0x6D,0x62,0x65,0x72,0x54,0x79,0x70,0x65,0x10,0x47,0x65,0x6E,0x65,0x72,0x69,0x63,0x41,0x72,0x67,0x75,0x6D,0x65,0x6E,0x74,0x73,0x1,0x1,0x1,0x1,0x1,0x0,0x3,0x8,0xD,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x54,0x79,0x70,0x65,0x5B,0x5D,0x9,0x4,0x0,0x0,0x0,0x9,0xA,0x0,0x0,0x0,0x9,0xB,0x0,0x0,0x0,0x6,0xF,0x0,0x0,0x0,0x3F,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x53,0x74,0x72,0x69,0x6E,0x67,0x20,0x44,0x75,0x6D,0x6D,0x79,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x28,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x48,0x74,0x74,0x70,0x43,0x6F,0x6E,0x74,0x65,0x78,0x74,0x29,0x6,0x10,0x0,0x0,0x0,0x3F,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x53,0x74,0x72,0x69,0x6E,0x67,0x20,0x44,0x75,0x6D,0x6D,0x79,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x28,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x48,0x74,0x74,0x70,0x43,0x6F,0x6E,0x74,0x65,0x78,0x74,0x29,0x8,0x0,0x0,0x0,0xA,0xB,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0};
+               static readonly byte[] badSubstitutionResponseElement = {0x0,0x1,0x0,0x0,0x0,0xFF,0xFF,0xFF,0xFF,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC,0x2,0x0,0x0,0x0,0x4D,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x34,0x2E,0x30,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x62,0x30,0x33,0x66,0x35,0x66,0x37,0x66,0x31,0x31,0x64,0x35,0x30,0x61,0x33,0x61,0x5,0x1,0x0,0x0,0x0,0x2E,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x52,0x65,0x73,0x70,0x6F,0x6E,0x73,0x65,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x3,0x0,0x0,0x0,0x8,0x74,0x79,0x70,0x65,0x4E,0x61,0x6D,0x65,0xA,0x6D,0x65,0x74,0x68,0x6F,0x64,0x4E,0x61,0x6D,0x65,0x19,0x3C,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x3E,0x6B,0x5F,0x5F,0x42,0x61,0x63,0x6B,0x69,0x6E,0x67,0x46,0x69,0x65,0x6C,0x64,0x1,0x1,0x3,0x22,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2,0x0,0x0,0x0,0x6,0x3,0x0,0x0,0x0,0x88,0x1,0x4D,0x6F,0x6E,0x6F,0x54,0x65,0x73,0x74,0x73,0x2E,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x4F,0x75,0x74,0x70,0x75,0x74,0x43,0x61,0x63,0x68,0x65,0x54,0x65,0x73,0x74,0x2C,0x20,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x5F,0x74,0x65,0x73,0x74,0x5F,0x6E,0x65,0x74,0x5F,0x34,0x5F,0x78,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x31,0x2E,0x33,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x33,0x31,0x62,0x66,0x33,0x38,0x35,0x36,0x61,0x64,0x33,0x36,0x34,0x65,0x33,0x35,0x6,0x4,0x0,0x0,0x0,0x1C,0x44,0x75,0x6D,0x6D,0x79,0x42,0x61,0x64,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x9,0x5,0x0,0x0,0x0,0xC,0x6,0x0,0x0,0x0,0x5A,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x5F,0x74,0x65,0x73,0x74,0x5F,0x6E,0x65,0x74,0x5F,0x34,0x5F,0x78,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x31,0x2E,0x33,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x33,0x31,0x62,0x66,0x33,0x38,0x35,0x36,0x61,0x64,0x33,0x36,0x34,0x65,0x33,0x35,0x4,0x5,0x0,0x0,0x0,0x22,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x3,0x0,0x0,0x0,0x8,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x7,0x74,0x61,0x72,0x67,0x65,0x74,0x30,0x7,0x6D,0x65,0x74,0x68,0x6F,0x64,0x30,0x3,0x4,0x3,0x30,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2B,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x45,0x6E,0x74,0x72,0x79,0x2C,0x4D,0x6F,0x6E,0x6F,0x54,0x65,0x73,0x74,0x73,0x2E,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x4F,0x75,0x74,0x70,0x75,0x74,0x43,0x61,0x63,0x68,0x65,0x54,0x65,0x73,0x74,0x6,0x0,0x0,0x0,0x2F,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x52,0x65,0x66,0x6C,0x65,0x63,0x74,0x69,0x6F,0x6E,0x2E,0x4D,0x65,0x6D,0x62,0x65,0x72,0x49,0x6E,0x66,0x6F,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x9,0x7,0x0,0x0,0x0,0x9,0x8,0x0,0x0,0x0,0x9,0x9,0x0,0x0,0x0,0x4,0x7,0x0,0x0,0x0,0x30,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2B,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x45,0x6E,0x74,0x72,0x79,0x7,0x0,0x0,0x0,0x4,0x74,0x79,0x70,0x65,0x8,0x61,0x73,0x73,0x65,0x6D,0x62,0x6C,0x79,0x6,0x74,0x61,0x72,0x67,0x65,0x74,0x12,0x74,0x61,0x72,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x41,0x73,0x73,0x65,0x6D,0x62,0x6C,0x79,0xE,0x74,0x61,0x72,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x4E,0x61,0x6D,0x65,0xA,0x6D,0x65,0x74,0x68,0x6F,0x64,0x4E,0x61,0x6D,0x65,0xD,0x64,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x45,0x6E,0x74,0x72,0x79,0x1,0x1,0x2,0x1,0x1,0x1,0x3,0x30,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x2B,0x44,0x65,0x6C,0x65,0x67,0x61,0x74,0x65,0x45,0x6E,0x74,0x72,0x79,0x6,0xA,0x0,0x0,0x0,0x2B,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x48,0x74,0x74,0x70,0x52,0x65,0x73,0x70,0x6F,0x6E,0x73,0x65,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x6,0xB,0x0,0x0,0x0,0x4D,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x34,0x2E,0x30,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x62,0x30,0x33,0x66,0x35,0x66,0x37,0x66,0x31,0x31,0x64,0x35,0x30,0x61,0x33,0x61,0x6,0xC,0x0,0x0,0x0,0x7,0x74,0x61,0x72,0x67,0x65,0x74,0x30,0x6,0xD,0x0,0x0,0x0,0x5A,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x5F,0x74,0x65,0x73,0x74,0x5F,0x6E,0x65,0x74,0x5F,0x34,0x5F,0x78,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x31,0x2E,0x33,0x2E,0x30,0x2E,0x30,0x2C,0x20,0x43,0x75,0x6C,0x74,0x75,0x72,0x65,0x3D,0x6E,0x65,0x75,0x74,0x72,0x61,0x6C,0x2C,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x4B,0x65,0x79,0x54,0x6F,0x6B,0x65,0x6E,0x3D,0x33,0x31,0x62,0x66,0x33,0x38,0x35,0x36,0x61,0x64,0x33,0x36,0x34,0x65,0x33,0x35,0x6,0xE,0x0,0x0,0x0,0x2C,0x4D,0x6F,0x6E,0x6F,0x54,0x65,0x73,0x74,0x73,0x2E,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x4F,0x75,0x74,0x70,0x75,0x74,0x43,0x61,0x63,0x68,0x65,0x54,0x65,0x73,0x74,0x9,0x4,0x0,0x0,0x0,0xA,0x5,0x8,0x0,0x0,0x0,0x2C,0x4D,0x6F,0x6E,0x6F,0x54,0x65,0x73,0x74,0x73,0x2E,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x43,0x61,0x63,0x68,0x69,0x6E,0x67,0x2E,0x4F,0x75,0x74,0x70,0x75,0x74,0x43,0x61,0x63,0x68,0x65,0x54,0x65,0x73,0x74,0x0,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x4,0x9,0x0,0x0,0x0,0x2F,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x52,0x65,0x66,0x6C,0x65,0x63,0x74,0x69,0x6F,0x6E,0x2E,0x4D,0x65,0x6D,0x62,0x65,0x72,0x49,0x6E,0x66,0x6F,0x53,0x65,0x72,0x69,0x61,0x6C,0x69,0x7A,0x61,0x74,0x69,0x6F,0x6E,0x48,0x6F,0x6C,0x64,0x65,0x72,0x7,0x0,0x0,0x0,0x4,0x4E,0x61,0x6D,0x65,0xC,0x41,0x73,0x73,0x65,0x6D,0x62,0x6C,0x79,0x4E,0x61,0x6D,0x65,0x9,0x43,0x6C,0x61,0x73,0x73,0x4E,0x61,0x6D,0x65,0x9,0x53,0x69,0x67,0x6E,0x61,0x74,0x75,0x72,0x65,0xA,0x53,0x69,0x67,0x6E,0x61,0x74,0x75,0x72,0x65,0x32,0xA,0x4D,0x65,0x6D,0x62,0x65,0x72,0x54,0x79,0x70,0x65,0x10,0x47,0x65,0x6E,0x65,0x72,0x69,0x63,0x41,0x72,0x67,0x75,0x6D,0x65,0x6E,0x74,0x73,0x1,0x1,0x1,0x1,0x1,0x0,0x3,0x8,0xD,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x54,0x79,0x70,0x65,0x5B,0x5D,0x9,0x4,0x0,0x0,0x0,0x9,0xD,0x0,0x0,0x0,0x9,0xE,0x0,0x0,0x0,0x6,0x12,0x0,0x0,0x0,0x42,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x53,0x74,0x72,0x69,0x6E,0x67,0x20,0x44,0x75,0x6D,0x6D,0x79,0x42,0x61,0x64,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x28,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x48,0x74,0x74,0x70,0x43,0x6F,0x6E,0x74,0x65,0x78,0x74,0x29,0x6,0x13,0x0,0x0,0x0,0x42,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x53,0x74,0x72,0x69,0x6E,0x67,0x20,0x44,0x75,0x6D,0x6D,0x79,0x42,0x61,0x64,0x53,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x69,0x6F,0x6E,0x43,0x61,0x6C,0x6C,0x62,0x61,0x63,0x6B,0x28,0x53,0x79,0x73,0x74,0x65,0x6D,0x2E,0x57,0x65,0x62,0x2E,0x48,0x74,0x74,0x70,0x43,0x6F,0x6E,0x74,0x65,0x78,0x74,0x29,0x8,0x0,0x0,0x0,0xA,0xB,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0};
 #endif
 
                static readonly object[] serializeObjects = {
@@ -187,10 +186,12 @@ namespace MonoTests.System.Web.Caching
                        SubstitutionResponseElement sre, sreBad;
 
                        CreateElements (out mre, out fre, out sre, out sreBad);
-                       // WriteSerializedBytes ("/tmp/bytes.txt", "memoryResponseElement", mre);
-                       // WriteSerializedBytes ("/tmp/bytes.txt", "fileResponseElement", fre);
-                       // WriteSerializedBytes ("/tmp/bytes.txt", "substitutionResponseElement", sre);
-                       // WriteSerializedBytes ("/tmp/bytes.txt", "badSubstitutionResponseElement", sreBad);
+#if false
+                       WriteSerializedBytes ("/tmp/bytes.txt", "memoryResponseElement", mre);
+                       WriteSerializedBytes ("/tmp/bytes.txt", "fileResponseElement", fre);
+                       WriteSerializedBytes ("/tmp/bytes.txt", "substitutionResponseElement", sre);
+                       WriteSerializedBytes ("/tmp/bytes.txt", "badSubstitutionResponseElement", sreBad);
+#endif
                        
                        byte[] bytes = SerializeElement (mre);
                        AssertExtensions.AreEqual (bytes, memoryResponseElement, "#B1");
@@ -310,4 +311,3 @@ namespace MonoTests.System.Web.Caching
                }
        }
 }
-#endif
index 264074366b8dd929661618639dd40731321e6cdd..e26dafb8ce975c392f8d9437eb964eb840411b8f 100644 (file)
@@ -65,7 +65,6 @@ namespace MonoTests.System.Web.Caching
                        //}, "#A3");
                }
 
-#if NET_4_0
                [Test]
                public void CreateOutputCacheDependency ()
                {
@@ -90,7 +89,6 @@ namespace MonoTests.System.Web.Caching
                        //sqc = SqlCacheDependency.CreateOutputCacheDependency ("Database:table; AnotherDatabase:table");
                        //Assert.IsTrue (sql is AggregateCacheDependency, "#B2");
                }
-#endif
        }
 }
 
index e277b12f0c0ab7be74700858ad53a0c6e798287c..64a32af27baeb4df1e314f6dcd490b1e4d75ed67 100644 (file)
@@ -28,7 +28,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0
 using System;
 using System.Web;
 using System.Web.Caching;
@@ -61,4 +60,3 @@ namespace MonoTests.System.Web.Caching
                }
        }
 }
-#endif
\ No newline at end of file
index 7a748e634d82b64ab97d3d669fd354592ff8e0aa..28de9a7623fdeb6de7ead34bf7798454dd843885 100644 (file)
@@ -41,7 +41,6 @@ namespace MonoTests.System.Web.Compilation
        [Serializable]
        public class BuildManagerTest
        {
-#if NET_4_0
                [Test]
                [Ignore ("Pending investigation if it is indeed the correct test.")]
                public void GetGlobalAsaxType ()
@@ -59,6 +58,5 @@ namespace MonoTests.System.Web.Compilation
                        Assert.AreEqual ("", BuildManager.TargetFramework.Profile, "#A1-3");
                        Assert.AreEqual (new Version (4, 0), BuildManager.TargetFramework.Version, "#A1-4");
                }
-#endif
        }
 }
index fa8d77031c2c541060c15ed4e079e324353db9dd..852b3773c953ce109564956bf884a2e9fa7a4b69 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.CodeDom;
 using System.IO;
@@ -78,4 +77,3 @@ namespace MonoTests.System.Web.Compilation
        {
        }
 }
-#endif
\ No newline at end of file
index a549dd5825fc99ac0574b5484028dc6558422192..68a97a2e7e4181f0fb3db927e47a6dc58f51f31c 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.CodeDom;
 using System.IO;
@@ -286,4 +285,3 @@ namespace MonoTests.System.Web.Compilation
                }
        }
 }
-#endif
index 7b1b941daee52c5d31f721beeb95f27822bb2a2d..dd324ad03886e516d91a1f36e2b7ec82788b1112 100644 (file)
@@ -40,26 +40,16 @@ namespace MonoTests.System.Web.Configuration {
                public void DefaultValues ()
                {
                        MachineKeySection section = new MachineKeySection ();
-#if NET_4_0
                        Assert.AreEqual (MachineKeyCompatibilityMode.Framework20SP1, section.CompatibilityMode, "CompatibilityMode");
-#endif
                        Assert.AreEqual ("Auto", section.Decryption, "Decryption");
                        Assert.AreEqual ("AutoGenerate,IsolateApps", section.DecryptionKey, "DecryptionKey");
-#if NET_4_0
                        Assert.AreEqual (MachineKeyValidation.HMACSHA256, section.Validation, "Validation");
                        Assert.AreEqual ("HMACSHA256", section.ValidationAlgorithm, "ValidationAlgorithm");
-#else
-                       Assert.AreEqual (MachineKeyValidation.SHA1, section.Validation, "Validation");
-#endif
                        Assert.AreEqual ("AutoGenerate,IsolateApps", section.ValidationKey, "ValidationKey");
                }
 
                [Test]
-#if NET_4_0
                [ExpectedException (typeof (NullReferenceException))]
-#else
-               [ExpectedException (typeof (ConfigurationErrorsException))]
-#endif
                public void Decryption_Null ()
                {
                        MachineKeySection section = new MachineKeySection ();
@@ -73,7 +63,6 @@ namespace MonoTests.System.Web.Configuration {
                        MachineKeySection section = new MachineKeySection ();
                        section.Decryption = String.Empty;
                }
-#if NET_4_0
                [Test]
                public void Decryption_RC2 ()
                {
@@ -172,7 +161,6 @@ namespace MonoTests.System.Web.Configuration {
                        Assert.AreEqual (MachineKeyValidation.Custom, section.Validation, "after");
                        Assert.AreEqual ("alg:UnexistingType", section.ValidationAlgorithm, "ValidationAlgorithm");
                }
-#endif
        }
 }
 
index f99158367cc21b9f01ca798837c371444533f6b7..a9a605c61c7612293b16056dac59a4646fc2882a 100644 (file)
@@ -77,7 +77,6 @@ namespace MonoTests.System.Web.Configuration {
 
                        o = cv.ConvertFrom (null, null, "AES");
                        Assert.AreEqual ("AES", o.ToString (), "AES");
-#if NET_4_0
                        o = cv.ConvertFrom (null, null, "HMACSHA256");
                        Assert.AreEqual ("HMACSHA256", o.ToString (), "HMACSHA256");
 
@@ -86,10 +85,8 @@ namespace MonoTests.System.Web.Configuration {
 
                        o = cv.ConvertFrom (null, null, "HMACSHA512");
                        Assert.AreEqual ("HMACSHA512", o.ToString (), "HMACSHA512");
-#endif
                }
 
-#if NET_4_0
                [Test]
                [ExpectedException (typeof (ArgumentException))]
                public void ConvertFrom_Custom ()
@@ -97,7 +94,6 @@ namespace MonoTests.System.Web.Configuration {
                        MachineKeyValidationConverter cv = new MachineKeyValidationConverter ();
                        cv.ConvertFrom (null, null, "Custom");
                }
-#endif
 
                [Test]
                [ExpectedException (typeof (ArgumentException))]
@@ -126,14 +122,11 @@ namespace MonoTests.System.Web.Configuration {
                        Assert.AreEqual ("MD5", cv.ConvertTo (null, null, MachineKeyValidation.MD5, typeof (string)), "A1");
                        Assert.AreEqual ("SHA1", cv.ConvertTo (null, null, MachineKeyValidation.SHA1, typeof (string)), "A2");
                        Assert.AreEqual ("3DES", cv.ConvertTo (null, null, MachineKeyValidation.TripleDES, typeof (string)), "A3");
-#if NET_4_0
                        Assert.AreEqual ("HMACSHA256", cv.ConvertTo (null, null, MachineKeyValidation.HMACSHA256, typeof (string)), "HMACSHA256");
                        Assert.AreEqual ("HMACSHA384", cv.ConvertTo (null, null, MachineKeyValidation.HMACSHA384, typeof (string)), "HMACSHA384");
                        Assert.AreEqual ("HMACSHA512", cv.ConvertTo (null, null, MachineKeyValidation.HMACSHA512, typeof (string)), "HMACSHA512");
-#endif
                }
 
-#if NET_4_0
                [Test]
                [ExpectedException (typeof (ArgumentException))]
                public void ConvertTo_Custom ()
@@ -141,14 +134,9 @@ namespace MonoTests.System.Web.Configuration {
                        MachineKeyValidationConverter cv = new MachineKeyValidationConverter ();
                        cv.ConvertTo (null, null, MachineKeyValidation.Custom, typeof (string));
                }
-#endif
 
                [Test]
-#if NET_4_0
                [ExpectedException (typeof (ArgumentException))]
-#else
-               [ExpectedException (typeof (NullReferenceException))]
-#endif
                public void ConvertTo_NullError ()
                {
                        MachineKeyValidationConverter cv = new MachineKeyValidationConverter ();
@@ -157,11 +145,7 @@ namespace MonoTests.System.Web.Configuration {
                }
 
                [Test]
-#if NET_4_0
                [ExpectedException (typeof (ArgumentException))]
-#else
-               [ExpectedException (typeof (FormatException))]
-#endif
                public void ConvertTo_TypeError1 ()
                {
                        MachineKeyValidationConverter cv = new MachineKeyValidationConverter ();
@@ -179,11 +163,7 @@ namespace MonoTests.System.Web.Configuration {
                }
 
                [Test]
-#if NET_4_0
                [ExpectedException (typeof (ArgumentException))]
-#else
-               [ExpectedException (typeof (FormatException))]
-#endif
                public void ConvertTo_TypeError3 ()
                {
                        MachineKeyValidationConverter cv = new MachineKeyValidationConverter ();
index d00e0eb60d793a84fcfb84cfc4039a622c338c06..06ee42a1a11954ad135e2bceda783c3e00a6beec 100644 (file)
@@ -28,7 +28,6 @@
 using System.Security.Cryptography;
 
 
-#if NET_4_0
 using System;
 using System.Text;
 using System.Web.Security;
@@ -204,4 +203,3 @@ namespace MonoTests.System.Web.Security
 #endif
        }
 }
-#endif
index 58b7881c24a2a85213fd7e2947b0ec2562cb5f8e..b08edd3da7e09bfbe131443a800418f868865683 100644 (file)
@@ -200,11 +200,9 @@ namespace MonoTests.System.Web.UI.HtmlControls {
 
                        // Indirect test for HttpRequest.QueryStringRaw, see
                        // https://bugzilla.novell.com/show_bug.cgi?id=376352
-#if NET_4_0
                        Assert.AreEqual (" method=\"post\" action=\"?q=1&amp;q2=2\"", attrs, "A1");
                        form.RenderingCompatibility = new Version (3, 5);
                        attrs = form.RenderAttributes ();
-#endif
                        Assert.AreEqual (" name=\"aspnetForm\" method=\"post\" action=\"?q=1&amp;q2=2\"", attrs, "A2");
                }
 #endif
@@ -218,11 +216,9 @@ namespace MonoTests.System.Web.UI.HtmlControls {
                        form.Page = p;
                        form.Action = "someactionfile.aspx";
                        string attrs = form.RenderAttributes ();
-#if NET_4_0
                        Assert.AreEqual (" method=\"post\" action=\"someactionfile.aspx\"", attrs, "A1");
                        form.RenderingCompatibility = new Version (3, 5);
                        attrs = form.RenderAttributes ();
-#endif
                        Assert.AreEqual (" name=\"aspnetForm\" method=\"post\" action=\"someactionfile.aspx\"", attrs, "A2");
                }
                
index a9e39053d6671e68ba1ecee5d7f3364614f4ae87..5ae77e49dd21386bf58d26a430d58ee6e0bf8858 100644 (file)
@@ -157,13 +157,8 @@ namespace MonoTests.System.Web.UI.HtmlControls {
                [Test]
                public void OnClickAttributeWithSpecials ()
                {
-#if NET_4_0
                        string origHtml = "alert(&#39;&lt;&amp;&#39;);";
                        string origHtml2 = "alert('<&');";
-#else
-                       string origHtml = "alert('&lt;&amp;');";
-                       string origHtml2 = "alert('<&');";
-#endif
 
                        StringWriter sw = new StringWriter ();
                        HtmlTextWriter tw = new HtmlTextWriter (sw);
index 804313f84ae6ea22bd551117fe402fc3d3f24c0d..fe1cb73ac5de134f1f044f60185385730ed81074 100644 (file)
@@ -57,9 +57,7 @@ namespace MonoTests.System.Web.UI.WebControls.Adapters
                {
                        p = new Page ();
                        c = new MyMenu ();
-#if NET_4_0
                        c.RenderingMode = MenuRenderingMode.Table;
-#endif
                        a = new MyMenuAdapter (c);
                        p.Controls.Add(c);
                        sw = new StringWriter ();
index b312107569c11633ff747d9376c92623dacc9e66..dc358f382b99e2c3c31b7f70474f23eb463e23d2 100644 (file)
@@ -180,7 +180,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        p.DataSource = new Object();
                        Assert.AreEqual (true, p.ValidateDataSourceCalled);
                }
-#if NET_4_0
                [Test]
                public void SupportsDisabledAttribute ()
                {
@@ -194,6 +193,5 @@ namespace MonoTests.System.Web.UI.WebControls
                        Assert.AreEqual (ver35, p.RenderingCompatibility, "#A2-1");
                        Assert.IsTrue (p.SupportsDisabledAttribute, "#A2-2");
                }
-#endif
        }
 }
index 82355fa4550e708cd10d3788d1963d7dcf94bd30..8202d2c4ea1fa93d8e4eb0f6a0e6cee321491cda 100644 (file)
@@ -802,7 +802,6 @@ namespace MonoTests.System.Web.UI.WebControls {
                        // and junk
                        Assert.IsFalse (BaseDataList.IsBindableType (this.GetType ()), "this");
                }
-#if NET_4_0
                [Test]
                public void SupportsDisabledAttribute ()
                {
@@ -816,6 +815,5 @@ namespace MonoTests.System.Web.UI.WebControls {
                        Assert.AreEqual (ver35, p.RenderingCompatibility, "#A2-1");
                        Assert.IsTrue (p.SupportsDisabledAttribute, "#A2-2");
                }
-#endif
        }
 }
index df66f3bca30ecd3d24ce27a40acc9e57548d354b..1b168a53f274c32b38f3139198b6b50a61571384 100644 (file)
@@ -130,11 +130,7 @@ namespace MonoTests.System.Web.UI.WebControls
                [Test (Description="Bug 646505")]
                public void BoundField_Bug646505 ()
                {
-#if NET_4_0
                        string originalHtml = "<div>\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"gridView\" style=\"border-collapse:collapse;\">\n\t\t<tr>\n\t\t\t<th scope=\"col\">&nbsp;</th><th scope=\"col\">&nbsp;</th>\n\t\t</tr><tr>\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;gridView$ctl02$ctl00&#39;,&#39;&#39;)\">Update</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;gridView&#39;,&#39;Cancel$0&#39;)\">Cancel</a></td><td><input name=\"gridView$ctl02$ctl02\" type=\"text\" value=\"False\" /></td>\n\t\t</tr><tr>\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;gridView&#39;,&#39;Edit$1&#39;)\">Edit</a></td><td>False</td>\n\t\t</tr>\n\t</table>\n</div>\n";
-#else
-                       string originalHtml = "<div>\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"gridView\" style=\"border-collapse:collapse;\">\n\t\t<tr>\n\t\t\t<th scope=\"col\">&nbsp;</th><th scope=\"col\">&nbsp;</th>\n\t\t</tr><tr>\n\t\t\t<td><a href=\"javascript:__doPostBack('gridView$ctl02$ctl00','')\">Update</a>&nbsp;<a href=\"javascript:__doPostBack('gridView','Cancel$0')\">Cancel</a></td><td><input name=\"gridView$ctl02$ctl02\" type=\"text\" value=\"False\" /></td>\n\t\t</tr><tr>\n\t\t\t<td><a href=\"javascript:__doPostBack('gridView','Edit$1')\">Edit</a></td><td>False</td>\n\t\t</tr>\n\t</table>\n</div>\n";
-#endif
                        WebTest t = new WebTest ("BoundField_Bug646505.aspx");
                        t.Run ();
 
@@ -371,11 +367,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        Assert.IsTrue (bf.DoSupportsHtmlEncode, "#A1-3");
 
                        bf.DataFormatString = formatString;
-#if NET_4_0
                        Assert.AreEqual ("&lt;script&gt;alert (&#39;&lt;test&gt;&#39;);&lt;/script&gt;", bf.DoFormatDataValue ("<test>", true), "#A2");
-#else
-                       Assert.AreEqual ("&lt;script&gt;alert ('&lt;test&gt;');&lt;/script&gt;", bf.DoFormatDataValue ("<test>", true), "#A2");
-#endif
                        Assert.AreEqual (String.Format (formatString, "<test>"), bf.DoFormatDataValue ("<test>", false), "#A3");
 
                        bf.HtmlEncodeFormatString = false;
@@ -383,11 +375,7 @@ namespace MonoTests.System.Web.UI.WebControls
 
                        var ec = new EncodingTest ();
                        bf.HtmlEncodeFormatString = true;
-#if NET_4_0
                        Assert.AreEqual ("&lt;script&gt;alert (&#39;&lt;EncodingTest&gt;&amp;&#39;);&lt;/script&gt;", bf.DoFormatDataValue (ec, true), "#A4");
-#else
-                       Assert.AreEqual ("&lt;script&gt;alert ('&lt;EncodingTest&gt;&amp;');&lt;/script&gt;", bf.DoFormatDataValue (ec, true), "#A4");
-#endif
                }
 
                [Test]
index 56760e102278bfad4453d9efa0a4835b8ad2916c..4fc1f75f851e82b4fb9057b3bdf2ebef8040abfa 100644 (file)
@@ -823,7 +823,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        RequiredFieldValidator rfv = cp.ChangePasswordTemplateContainer.FindControl ("text1required") as RequiredFieldValidator;
                        Assert.IsNotNull (rfv, "#A2");
                }
-#if NET_4_0
                [Test]
                public void RenderOuterTableForbiddenStyles ()
                {
@@ -890,7 +889,6 @@ namespace MonoTests.System.Web.UI.WebControls
                                }
                        }
                }
-#endif
                [TestFixtureTearDown]
                public void TearDown ()
                {
index 5645545eed12686f1b45964eab2c0bd74d8b8a7a..dc40bf111116b71c9ee3bddecb59db087781af3e 100644 (file)
@@ -127,11 +127,7 @@ namespace MonoTests.System.Web.UI.WebControls
                [Test (Description="Bug 595568 #0")]
                public void CheckBoxField_Bug595568_0 ()
                {
-#if NET_4_0
                        string originalHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"gridView\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">&nbsp;</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><span title=\"Dummy\"><input id=\"gridView_ctl00_0\" type=\"checkbox\" name=\"gridView$ctl02$ctl00\" checked=\"checked\" /></span></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><span title=\"Dummy\"><input id=\"gridView_ctl00_1\" type=\"checkbox\" name=\"gridView$ctl03$ctl00\" /></span></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><span title=\"Dummy\"><input id=\"gridView_ctl00_2\" type=\"checkbox\" name=\"gridView$ctl04$ctl00\" /></span></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string originalHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"gridView\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">&nbsp;</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><span title=\"Dummy\"><input id=\"gridView_ctl02_ctl00\" type=\"checkbox\" name=\"gridView$ctl02$ctl00\" checked=\"checked\" /></span></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><span title=\"Dummy\"><input id=\"gridView_ctl03_ctl00\" type=\"checkbox\" name=\"gridView$ctl03$ctl00\" /></span></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><span title=\"Dummy\"><input id=\"gridView_ctl04_ctl00\" type=\"checkbox\" name=\"gridView$ctl04$ctl00\" /></span></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        WebTest t = new WebTest ("CheckBoxField_Bug595568_0.aspx");
                        string pageHtml = t.Run ();
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHtml);
@@ -142,11 +138,7 @@ namespace MonoTests.System.Web.UI.WebControls
                [Test (Description="Bug 595568 #1")]
                public void CheckBoxField_Bug595568_1 ()
                {
-#if NET_4_0
                        string originalHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"gridView\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">&nbsp;</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><select size=\"4\" name=\"gridView$ctl02$ctl00\">\r\n\r\n\t\t\t</select><span title=\"Dummy\"><input id=\"gridView_ctl01_0\" type=\"checkbox\" name=\"gridView$ctl02$ctl01\" checked=\"checked\" /></span></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><select size=\"4\" name=\"gridView$ctl03$ctl00\">\r\n\r\n\t\t\t</select><span title=\"Dummy\"><input id=\"gridView_ctl01_1\" type=\"checkbox\" name=\"gridView$ctl03$ctl01\" /></span></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><select size=\"4\" name=\"gridView$ctl04$ctl00\">\r\n\r\n\t\t\t</select><span title=\"Dummy\"><input id=\"gridView_ctl01_2\" type=\"checkbox\" name=\"gridView$ctl04$ctl01\" /></span></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string originalHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"gridView\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">&nbsp;</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><select size=\"4\" name=\"gridView$ctl02$ctl00\">\r\n\r\n\t\t\t</select><span title=\"Dummy\"><input id=\"gridView_ctl02_ctl01\" type=\"checkbox\" name=\"gridView$ctl02$ctl01\" checked=\"checked\" /></span></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><select size=\"4\" name=\"gridView$ctl03$ctl00\">\r\n\r\n\t\t\t</select><span title=\"Dummy\"><input id=\"gridView_ctl03_ctl01\" type=\"checkbox\" name=\"gridView$ctl03$ctl01\" /></span></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><select size=\"4\" name=\"gridView$ctl04$ctl00\">\r\n\r\n\t\t\t</select><span title=\"Dummy\"><input id=\"gridView_ctl04_ctl01\" type=\"checkbox\" name=\"gridView$ctl04$ctl01\" /></span></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        WebTest t = new WebTest ("CheckBoxField_Bug595568_1.aspx");
                        string pageHtml = t.Run ();
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHtml);
@@ -157,11 +149,7 @@ namespace MonoTests.System.Web.UI.WebControls
                [Test (Description="Bug 595568 #2")]
                public void CheckBoxField_Bug595568_2 ()
                {
-#if NET_4_0
                        string originalHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"gridView\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">&nbsp;</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input id=\"gridView_ctl00_0\" type=\"checkbox\" name=\"gridView$ctl02$ctl00\" /><span title=\"Dummy\"><input id=\"gridView_ctl01_0\" type=\"checkbox\" name=\"gridView$ctl02$ctl01\" checked=\"checked\" /></span><input id=\"gridView_ctl02_0\" type=\"checkbox\" name=\"gridView$ctl02$ctl02\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input id=\"gridView_ctl00_1\" type=\"checkbox\" name=\"gridView$ctl03$ctl00\" /><span title=\"Dummy\"><input id=\"gridView_ctl01_1\" type=\"checkbox\" name=\"gridView$ctl03$ctl01\" /></span><input id=\"gridView_ctl02_1\" type=\"checkbox\" name=\"gridView$ctl03$ctl02\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input id=\"gridView_ctl00_2\" type=\"checkbox\" name=\"gridView$ctl04$ctl00\" /><span title=\"Dummy\"><input id=\"gridView_ctl01_2\" type=\"checkbox\" name=\"gridView$ctl04$ctl01\" /></span><input id=\"gridView_ctl02_2\" type=\"checkbox\" name=\"gridView$ctl04$ctl02\" /></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string originalHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"gridView\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">&nbsp;</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input id=\"gridView_ctl02_ctl00\" type=\"checkbox\" name=\"gridView$ctl02$ctl00\" /><span title=\"Dummy\"><input id=\"gridView_ctl02_ctl01\" type=\"checkbox\" name=\"gridView$ctl02$ctl01\" checked=\"checked\" /></span><input id=\"gridView_ctl02_ctl02\" type=\"checkbox\" name=\"gridView$ctl02$ctl02\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input id=\"gridView_ctl03_ctl00\" type=\"checkbox\" name=\"gridView$ctl03$ctl00\" /><span title=\"Dummy\"><input id=\"gridView_ctl03_ctl01\" type=\"checkbox\" name=\"gridView$ctl03$ctl01\" /></span><input id=\"gridView_ctl03_ctl02\" type=\"checkbox\" name=\"gridView$ctl03$ctl02\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input id=\"gridView_ctl04_ctl00\" type=\"checkbox\" name=\"gridView$ctl04$ctl00\" /><span title=\"Dummy\"><input id=\"gridView_ctl04_ctl01\" type=\"checkbox\" name=\"gridView$ctl04$ctl01\" /></span><input id=\"gridView_ctl04_ctl02\" type=\"checkbox\" name=\"gridView$ctl04$ctl02\" /></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        
                        WebTest t = new WebTest ("CheckBoxField_Bug595568_2.aspx");
                        string pageHtml = t.Run ();
@@ -185,11 +173,7 @@ namespace MonoTests.System.Web.UI.WebControls
                [Test (Description="Bug 595568 #6")]
                public void CheckBoxField_Bug595568_6 ()
                {       
-#if NET_4_0
                        string originalHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"gridView\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">&nbsp;</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><select size=\"4\" name=\"gridView$ctl02$ctl00\">\r\n\r\n\t\t\t</select><input id=\"gridView_ctl01_0\" type=\"checkbox\" name=\"gridView$ctl02$ctl01\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><select size=\"4\" name=\"gridView$ctl03$ctl00\">\r\n\r\n\t\t\t</select><input id=\"gridView_ctl01_1\" type=\"checkbox\" name=\"gridView$ctl03$ctl01\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><select size=\"4\" name=\"gridView$ctl04$ctl00\">\r\n\r\n\t\t\t</select><input id=\"gridView_ctl01_2\" type=\"checkbox\" name=\"gridView$ctl04$ctl01\" /></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string originalHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"gridView\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">&nbsp;</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><select size=\"4\" name=\"gridView$ctl02$ctl00\">\r\n\r\n\t\t\t</select><input id=\"gridView_ctl02_ctl01\" type=\"checkbox\" name=\"gridView$ctl02$ctl01\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><select size=\"4\" name=\"gridView$ctl03$ctl00\">\r\n\r\n\t\t\t</select><input id=\"gridView_ctl03_ctl01\" type=\"checkbox\" name=\"gridView$ctl03$ctl01\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><select size=\"4\" name=\"gridView$ctl04$ctl00\">\r\n\r\n\t\t\t</select><input id=\"gridView_ctl04_ctl01\" type=\"checkbox\" name=\"gridView$ctl04$ctl01\" /></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
 
                        WebTest t = new WebTest ("CheckBoxField_Bug595568_6.aspx");
                        string pageHtml = t.Run ();
@@ -201,11 +185,7 @@ namespace MonoTests.System.Web.UI.WebControls
                [Test (Description="Bug 595568 #7")]
                public void CheckBoxField_Bug595568_7 ()
                {
-#if NET_4_0
                        string originalHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"gridView\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">&nbsp;</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input id=\"gridView_ctl00_0\" type=\"checkbox\" name=\"gridView$ctl02$ctl00\" /><select size=\"4\" name=\"gridView$ctl02$ctl01\">\r\n\r\n\t\t\t</select></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input id=\"gridView_ctl00_1\" type=\"checkbox\" name=\"gridView$ctl03$ctl00\" /><select size=\"4\" name=\"gridView$ctl03$ctl01\">\r\n\r\n\t\t\t</select></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input id=\"gridView_ctl00_2\" type=\"checkbox\" name=\"gridView$ctl04$ctl00\" /><select size=\"4\" name=\"gridView$ctl04$ctl01\">\r\n\r\n\t\t\t</select></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string originalHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"gridView\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">&nbsp;</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input id=\"gridView_ctl02_ctl00\" type=\"checkbox\" name=\"gridView$ctl02$ctl00\" /><select size=\"4\" name=\"gridView$ctl02$ctl01\">\r\n\r\n\t\t\t</select></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input id=\"gridView_ctl03_ctl00\" type=\"checkbox\" name=\"gridView$ctl03$ctl00\" /><select size=\"4\" name=\"gridView$ctl03$ctl01\">\r\n\r\n\t\t\t</select></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input id=\"gridView_ctl04_ctl00\" type=\"checkbox\" name=\"gridView$ctl04$ctl00\" /><select size=\"4\" name=\"gridView$ctl04$ctl01\">\r\n\r\n\t\t\t</select></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        WebTest t = new WebTest ("CheckBoxField_Bug595568_7.aspx");             
                        string pageHtml = t.Run ();
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHtml);
index 1860f47b4bfa00af615b2d8ac6d557f3df2bde59..afa86b3835035ba8900af83da9f67c2f203ed23a 100644 (file)
@@ -160,13 +160,8 @@ namespace MonoTests.System.Web.UI.WebControls {
                {
                        WebTest t = new WebTest ("CheckBoxList_Bug377703_1.aspx");
                        t.Invoker = PageInvoker.CreateOnInit (CheckBoxList_Bug377703_1_OnInit);
-#if NET_4_0
                        string origHtmlFirst = "<table id=\"cbxl1\">\r\n\t<tr>\r\n\t\t<td><input id=\"cbxl1_0\" type=\"checkbox\" name=\"cbxl1$0\" value=\"x\" /><label for=\"cbxl1_0\">x</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"cbxl1_1\" type=\"checkbox\" name=\"cbxl1$1\" value=\"y\" /><label for=\"cbxl1_1\">y</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"cbxl1_2\" type=\"checkbox\" name=\"cbxl1$2\" value=\"z\" /><label for=\"cbxl1_2\">z</label></td>\r\n\t</tr>\r\n</table>";
                        string origHtmlSecond = "<table id=\"cbxl1\">\r\n\t<tr>\r\n\t\t<td><input id=\"cbxl1_0\" type=\"checkbox\" name=\"cbxl1$0\" checked=\"checked\" value=\"x\" /><label for=\"cbxl1_0\">x</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"cbxl1_1\" type=\"checkbox\" name=\"cbxl1$1\" value=\"y\" /><label for=\"cbxl1_1\">y</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"cbxl1_2\" type=\"checkbox\" name=\"cbxl1$2\" value=\"z\" /><label for=\"cbxl1_2\">z</label></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origHtmlFirst = "<table id=\"cbxl1\" border=\"0\">\r\n\t<tr>\r\n\t\t<td><input id=\"cbxl1_0\" type=\"checkbox\" name=\"cbxl1$0\" /><label for=\"cbxl1_0\">x</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"cbxl1_1\" type=\"checkbox\" name=\"cbxl1$1\" /><label for=\"cbxl1_1\">y</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"cbxl1_2\" type=\"checkbox\" name=\"cbxl1$2\" /><label for=\"cbxl1_2\">z</label></td>\r\n\t</tr>\r\n</table>";
-                       string origHtmlSecond = "<table id=\"cbxl1\" border=\"0\">\r\n\t<tr>\r\n\t\t<td><input id=\"cbxl1_0\" type=\"checkbox\" name=\"cbxl1$0\" checked=\"checked\" /><label for=\"cbxl1_0\">x</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"cbxl1_1\" type=\"checkbox\" name=\"cbxl1$1\" /><label for=\"cbxl1_1\">y</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"cbxl1_2\" type=\"checkbox\" name=\"cbxl1$2\" /><label for=\"cbxl1_2\">z</label></td>\r\n\t</tr>\r\n</table>";
-#endif
                        string html = t.Run ();
                        string listHtml = HtmlDiff.GetControlFromPageHtml (html);
 
@@ -215,15 +210,9 @@ namespace MonoTests.System.Web.UI.WebControls {
                {
                        WebTest t = new WebTest ("CheckBoxList_Bug377703_2.aspx");
                        t.Invoker = PageInvoker.CreateOnInit (CheckBoxList_Bug377703_2_OnInit);
-#if NET_4_0
                        string origHtmlFirst = "<table id=\"cbxl2\">\r\n\t<tr>\r\n\t\t<td><input id=\"cbxl2_0\" type=\"checkbox\" name=\"cbxl2$0\" value=\"x\" /><label for=\"cbxl2_0\">x</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"cbxl2_1\" type=\"checkbox\" name=\"cbxl2$1\" value=\"y\" /><label for=\"cbxl2_1\">y</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"cbxl2_2\" type=\"checkbox\" name=\"cbxl2$2\" value=\"z\" /><label for=\"cbxl2_2\">z</label></td>\r\n\t</tr>\r\n</table>";
                        string origHtmlSecond = "<table id=\"cbxl2\" class=\"aspNetDisabled\">\r\n\t<tr>\r\n\t\t<td><span class=\"aspNetDisabled\"><input id=\"cbxl2_0\" type=\"checkbox\" name=\"cbxl2$0\" checked=\"checked\" disabled=\"disabled\" value=\"x\" /><label for=\"cbxl2_0\">x</label></span></td>\r\n\t</tr><tr>\r\n\t\t<td><span class=\"aspNetDisabled\"><input id=\"cbxl2_1\" type=\"checkbox\" name=\"cbxl2$1\" disabled=\"disabled\" value=\"y\" /><label for=\"cbxl2_1\">y</label></span></td>\r\n\t</tr><tr>\r\n\t\t<td><span class=\"aspNetDisabled\"><input id=\"cbxl2_2\" type=\"checkbox\" name=\"cbxl2$2\" checked=\"checked\" disabled=\"disabled\" value=\"z\" /><label for=\"cbxl2_2\">z</label></span></td>\r\n\t</tr>\r\n</table>";
                        string origHtmlThird = "<table id=\"cbxl2\" class=\"aspNetDisabled\">\r\n\t<tr>\r\n\t\t<td><span class=\"aspNetDisabled\"><input id=\"cbxl2_0\" type=\"checkbox\" name=\"cbxl2$0\" checked=\"checked\" disabled=\"disabled\" value=\"x\" /><label for=\"cbxl2_0\">x</label></span></td>\r\n\t</tr><tr>\r\n\t\t<td><span class=\"aspNetDisabled\"><input id=\"cbxl2_1\" type=\"checkbox\" name=\"cbxl2$1\" disabled=\"disabled\" value=\"y\" /><label for=\"cbxl2_1\">y</label></span></td>\r\n\t</tr><tr>\r\n\t\t<td><span class=\"aspNetDisabled\"><input id=\"cbxl2_2\" type=\"checkbox\" name=\"cbxl2$2\" checked=\"checked\" disabled=\"disabled\" value=\"z\" /><label for=\"cbxl2_2\">z</label></span></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origHtmlFirst = "<table id=\"cbxl2\" border=\"0\">\r\n\t<tr>\r\n\t\t<td><input id=\"cbxl2_0\" type=\"checkbox\" name=\"cbxl2$0\" /><label for=\"cbxl2_0\">x</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"cbxl2_1\" type=\"checkbox\" name=\"cbxl2$1\" /><label for=\"cbxl2_1\">y</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"cbxl2_2\" type=\"checkbox\" name=\"cbxl2$2\" /><label for=\"cbxl2_2\">z</label></td>\r\n\t</tr>\r\n</table>";
-                       string origHtmlSecond = "<table id=\"cbxl2\" disabled=\"disabled\" border=\"0\">\r\n\t<tr>\r\n\t\t<td><span disabled=\"disabled\"><input id=\"cbxl2_0\" type=\"checkbox\" name=\"cbxl2$0\" checked=\"checked\" disabled=\"disabled\" /><label for=\"cbxl2_0\">x</label></span></td>\r\n\t</tr><tr>\r\n\t\t<td><span disabled=\"disabled\"><input id=\"cbxl2_1\" type=\"checkbox\" name=\"cbxl2$1\" disabled=\"disabled\" /><label for=\"cbxl2_1\">y</label></span></td>\r\n\t</tr><tr>\r\n\t\t<td><span disabled=\"disabled\"><input id=\"cbxl2_2\" type=\"checkbox\" name=\"cbxl2$2\" checked=\"checked\" disabled=\"disabled\" /><label for=\"cbxl2_2\">z</label></span></td>\r\n\t</tr>\r\n</table>";
-                       string origHtmlThird = "<table id=\"cbxl2\" disabled=\"disabled\" border=\"0\">\r\n\t<tr>\r\n\t\t<td><span disabled=\"disabled\"><input id=\"cbxl2_0\" type=\"checkbox\" name=\"cbxl2$0\" checked=\"checked\" disabled=\"disabled\" /><label for=\"cbxl2_0\">x</label></span></td>\r\n\t</tr><tr>\r\n\t\t<td><span disabled=\"disabled\"><input id=\"cbxl2_1\" type=\"checkbox\" name=\"cbxl2$1\" disabled=\"disabled\" /><label for=\"cbxl2_1\">y</label></span></td>\r\n\t</tr><tr>\r\n\t\t<td><span disabled=\"disabled\"><input id=\"cbxl2_2\" type=\"checkbox\" name=\"cbxl2$2\" checked=\"checked\" disabled=\"disabled\" /><label for=\"cbxl2_2\">z</label></span></td>\r\n\t</tr>\r\n</table>";
-#endif
                        string html = t.Run ();
                        string listHtml = HtmlDiff.GetControlFromPageHtml (html);
 
@@ -276,11 +265,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                {
                        WebTest t = new WebTest ("CheckBoxList_Bug578770.aspx");
                        t.Invoker = PageInvoker.CreateOnInit (CheckBoxList_Bug578770_OnInit);
-#if NET_4_0
                        string origHtml = "<table id=\"test\">\r\n\t<tr>\r\n\t\t<td><span class=\"aspNetDisabled\"><input id=\"test_0\" type=\"checkbox\" name=\"test$0\" disabled=\"disabled\" value=\"Sun\" /><label for=\"test_0\">Sun</label></span></td>\r\n\t</tr><tr>\r\n\t\t<td><span><input id=\"test_1\" type=\"checkbox\" name=\"test$1\" value=\"Mon\" /><label for=\"test_1\">Mon</label></span></td>\r\n\t</tr><tr>\r\n\t\t<td><span><input id=\"test_2\" type=\"checkbox\" name=\"test$2\" value=\"Tue\" /><label for=\"test_2\">Tue</label></span></td>\r\n\t</tr><tr>\r\n\t\t<td><span><input id=\"test_3\" type=\"checkbox\" name=\"test$3\" value=\"Wed\" /><label for=\"test_3\">Wed</label></span></td>\r\n\t</tr><tr>\r\n\t\t<td><span><input id=\"test_4\" type=\"checkbox\" name=\"test$4\" value=\"Thu\" /><label for=\"test_4\">Thu</label></span></td>\r\n\t</tr><tr>\r\n\t\t<td><span><input id=\"test_5\" type=\"checkbox\" name=\"test$5\" value=\"Fri\" /><label for=\"test_5\">Fri</label></span></td>\r\n\t</tr><tr>\r\n\t\t<td><span><input id=\"test_6\" type=\"checkbox\" name=\"test$6\" value=\"Sat\" /><label for=\"test_6\">Sat</label></span></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origHtml = "<table id=\"test\" border=\"0\">\r\n\t<tr>\r\n\t\t<td><span disabled=\"disabled\"><input id=\"test_0\" type=\"checkbox\" name=\"test$0\" disabled=\"disabled\" /><label for=\"test_0\">Sun</label></span></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"test_1\" type=\"checkbox\" name=\"test$1\" /><label for=\"test_1\">Mon</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"test_2\" type=\"checkbox\" name=\"test$2\" /><label for=\"test_2\">Tue</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"test_3\" type=\"checkbox\" name=\"test$3\" /><label for=\"test_3\">Wed</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"test_4\" type=\"checkbox\" name=\"test$4\" /><label for=\"test_4\">Thu</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"test_5\" type=\"checkbox\" name=\"test$5\" /><label for=\"test_5\">Fri</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"test_6\" type=\"checkbox\" name=\"test$6\" /><label for=\"test_6\">Sat</label></td>\r\n\t</tr>\r\n</table>";
-#endif
                        string html = t.Run ();
                        string listHtml = HtmlDiff.GetControlFromPageHtml (html);
 
@@ -300,15 +285,9 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void CheckBoxList_Bug600415 ()
                {
                        WebTest t = new WebTest ("CheckBoxList_Bug600415.aspx");
-#if NET_4_0
                        string origHtmlFirst = "<table id=\"checkBoxList\">\r\n\t<tr>\r\n\t\t<td><input id=\"checkBoxList_0\" type=\"checkbox\" name=\"checkBoxList$0\" checked=\"checked\" value=\"Item 1\" /><label for=\"checkBoxList_0\">Item 1</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_1\" type=\"checkbox\" name=\"checkBoxList$1\" value=\"Item 2\" /><label for=\"checkBoxList_1\">Item 2</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_2\" type=\"checkbox\" name=\"checkBoxList$2\" checked=\"checked\" value=\"Item 3\" /><label for=\"checkBoxList_2\">Item 3</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_3\" type=\"checkbox\" name=\"checkBoxList$3\" value=\"Item 4\" /><label for=\"checkBoxList_3\">Item 4</label></td>\r\n\t</tr>\r\n</table>";
                        string origHtmlSecond = "<table id=\"checkBoxList\">\r\n\t<tr>\r\n\t\t<td><input id=\"checkBoxList_0\" type=\"checkbox\" name=\"checkBoxList$0\" value=\"Item 1\" /><label for=\"checkBoxList_0\">Item 1</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_1\" type=\"checkbox\" name=\"checkBoxList$1\" value=\"Item 2\" /><label for=\"checkBoxList_1\">Item 2</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_2\" type=\"checkbox\" name=\"checkBoxList$2\" value=\"Item 3\" /><label for=\"checkBoxList_2\">Item 3</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_3\" type=\"checkbox\" name=\"checkBoxList$3\" value=\"Item 4\" /><label for=\"checkBoxList_3\">Item 4</label></td>\r\n\t</tr>\r\n</table>";
                        string origHtmlThird = "<table id=\"checkBoxList\">\r\n\t<tr>\r\n\t\t<td><input id=\"checkBoxList_0\" type=\"checkbox\" name=\"checkBoxList$0\" checked=\"checked\" value=\"Item 1\" /><label for=\"checkBoxList_0\">Item 1</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_1\" type=\"checkbox\" name=\"checkBoxList$1\" checked=\"checked\" value=\"Item 2\" /><label for=\"checkBoxList_1\">Item 2</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_2\" type=\"checkbox\" name=\"checkBoxList$2\" checked=\"checked\" value=\"Item 3\" /><label for=\"checkBoxList_2\">Item 3</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_3\" type=\"checkbox\" name=\"checkBoxList$3\" checked=\"checked\" value=\"Item 4\" /><label for=\"checkBoxList_3\">Item 4</label></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origHtmlFirst = "<table id=\"checkBoxList\" border=\"0\">\r\n\t<tr>\r\n\t\t<td><input id=\"checkBoxList_0\" type=\"checkbox\" name=\"checkBoxList$0\" checked=\"checked\" /><label for=\"checkBoxList_0\">Item 1</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_1\" type=\"checkbox\" name=\"checkBoxList$1\" /><label for=\"checkBoxList_1\">Item 2</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_2\" type=\"checkbox\" name=\"checkBoxList$2\" checked=\"checked\" /><label for=\"checkBoxList_2\">Item 3</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_3\" type=\"checkbox\" name=\"checkBoxList$3\" /><label for=\"checkBoxList_3\">Item 4</label></td>\r\n\t</tr>\r\n</table>";
-                       string origHtmlSecond = "<table id=\"checkBoxList\" border=\"0\">\r\n\t<tr>\r\n\t\t<td><input id=\"checkBoxList_0\" type=\"checkbox\" name=\"checkBoxList$0\" /><label for=\"checkBoxList_0\">Item 1</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_1\" type=\"checkbox\" name=\"checkBoxList$1\" /><label for=\"checkBoxList_1\">Item 2</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_2\" type=\"checkbox\" name=\"checkBoxList$2\" /><label for=\"checkBoxList_2\">Item 3</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_3\" type=\"checkbox\" name=\"checkBoxList$3\" /><label for=\"checkBoxList_3\">Item 4</label></td>\r\n\t</tr>\r\n</table>";
-                       string origHtmlThird = "<table id=\"checkBoxList\" border=\"0\">\r\n\t<tr>\r\n\t\t<td><input id=\"checkBoxList_0\" type=\"checkbox\" name=\"checkBoxList$0\" checked=\"checked\" /><label for=\"checkBoxList_0\">Item 1</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_1\" type=\"checkbox\" name=\"checkBoxList$1\" checked=\"checked\" /><label for=\"checkBoxList_1\">Item 2</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_2\" type=\"checkbox\" name=\"checkBoxList$2\" checked=\"checked\" /><label for=\"checkBoxList_2\">Item 3</label></td>\r\n\t</tr><tr>\r\n\t\t<td><input id=\"checkBoxList_3\" type=\"checkbox\" name=\"checkBoxList$3\" checked=\"checked\" /><label for=\"checkBoxList_3\">Item 4</label></td>\r\n\t</tr>\r\n</table>";
-#endif
                        string html = t.Run ();
                        string listHtml = HtmlDiff.GetControlFromPageHtml (html);
 
@@ -386,13 +365,8 @@ namespace MonoTests.System.Web.UI.WebControls {
                [Test]
                public void RenderItem ()
                {
-#if NET_4_0
                        string origHtml1 = "<input id=\"0\" type=\"checkbox\" name=\"0\" value=\"value1\" /><label for=\"0\">item1</label>";
                        string origHtml2 = "<input id=\"1\" type=\"checkbox\" name=\"1\" value=\"value2\" /><label for=\"1\">item2</label>";
-#else
-                       string origHtml1 = "<input id=\"0\" type=\"checkbox\" name=\"0\" /><label for=\"0\">item1</label>";
-                       string origHtml2 = "<input id=\"1\" type=\"checkbox\" name=\"1\" /><label for=\"1\">item2</label>";
-#endif
                        CheckBoxListPoker c = new CheckBoxListPoker ();
                        ListItem l1 = new ListItem ("item1", "value1");
                        ListItem l2 = new ListItem ("item2", "value2");
@@ -561,11 +535,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                [Test]
                public void RepeatInfoRenderItem ()
                {
-#if NET_4_0
                        string origHtml = "<input id=\"0\" type=\"checkbox\" name=\"0\" value=\"one\" /><label for=\"0\">one</label>";
-#else
-                       string origHtml = "<input id=\"0\" type=\"checkbox\" name=\"0\" /><label for=\"0\">one</label>";
-#endif
                        StringWriter sw = new StringWriter ();
                        HtmlTextWriter tw = new HtmlTextWriter (sw);
                        CheckBoxList c = new CheckBoxList ();
@@ -640,13 +610,8 @@ namespace MonoTests.System.Web.UI.WebControls {
                [Category("NotDotNet")] // MS's implementation throws NRE's from these
                public void Render ()
                {
-#if NET_4_0
                        string origHtml1 = "<table>\n\t<tr>\n\t\t<td><input id=\"0\" name=\"0\" type=\"checkbox\" value=\"foo\"/><label for=\"0\">foo</label></td>\n\t</tr>\n</table>";
                        string origHtml2 = "<table>\n\t<tr>\n\t\t<td><input id=\"0\" name=\"0\" type=\"checkbox\" value=\"foo\"/><label for=\"0\">foo</label></td>\n\t</tr>\n</table>";
-#else
-                       string origHtml1 = "<table border=\"0\">\n\t<tr>\n\t\t<td><input id=\"0\" name=\"0\" type=\"checkbox\" /><label for=\"0\">foo</label></td>\n\t</tr>\n</table>";
-                       string origHtml2 = "<table border=\"0\">\n\t<tr>\n\t\t<td><input id=\"0\" name=\"0\" type=\"checkbox\" /><label for=\"0\">foo</label></td>\n\t</tr>\n</table>";
-#endif
                        CheckBoxList c;
                        c = new CheckBoxList ();
                        c.Items.Add ("foo");
@@ -666,19 +631,11 @@ namespace MonoTests.System.Web.UI.WebControls {
                        CheckBoxList c = new CheckBoxList ();
                        c.TabIndex = 5;
                        c.Items.Add ("Item1");
-#if NET_4_0
                        string exp = @"<table>
        <tr>
                <td><input id=""0"" name=""0"" tabindex=""5"" type=""checkbox"" value=""Item1""/><label for=""0"">Item1</label></td>
        </tr>
 </table>";
-#else
-                       string exp = @"<table border=""0"">
-       <tr>
-               <td><input id=""0"" name=""0"" tabindex=""5"" type=""checkbox"" /><label for=""0"">Item1</label></td>
-       </tr>
-</table>";
-#endif
                        Render (c, exp, "B1");
                }
 
@@ -690,19 +647,11 @@ namespace MonoTests.System.Web.UI.WebControls {
                        CheckBoxList c = new CheckBoxList ();
                        c.Enabled = false;
                        c.Items.Add ("Item1");
-#if NET_4_0
                        string exp = @"<table class=""aspNetDisabled"">
        <tr>
                <td><span class=""aspNetDisabled""><input disabled=""disabled"" id=""0"" name=""0"" type=""checkbox"" value=""Item1""/><label for=""0"">Item1</label></span></td>
        </tr>
 </table>";
-#else
-                       string exp = @"<table border=""0"" disabled=""disabled"">
-       <tr>
-               <td><span disabled=""disabled""><input disabled=""disabled"" id=""0"" name=""0"" type=""checkbox"" /><label for=""0"">Item1</label></span></td>
-       </tr>
-</table>";
-#endif
                        Render (c, exp, "C1");
                }       
        class TestCheckBoxList : CheckBoxList
index 2bcb4c0f9b343e0acacaac955df5a1375475d39e..1cdc7cdd467125cc74b1f3308c5e2f1f98cf7614 100644 (file)
@@ -186,11 +186,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        c.InputAttributes.Add ("value", "value1");
                        c.Text = "Title";
                        c.Checked = true;
-#if NET_4_0
                        string origHtml = "<input id=\"\" type=\"checkbox\" checked=\"checked\" value=\"value1\" /><label for=\"\">Title</label>";
-#else
-                       string origHtml = "<input type=\"checkbox\" checked=\"checked\" value=\"value1\" /><label for>Title</label>";
-#endif
                        string html = c.Render ();
                        HtmlDiff.AssertAreEqual (origHtml, html, "#A1");
                }
index 1e1daa9a8a28a4f12bc766e426f50b17ce6bf6ae..a957bc84b85b4b9b8d8ababfa8559162f36e91fd 100644 (file)
@@ -1577,11 +1577,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        t.Invoker = PageInvoker.CreateOnInit (DataGrid_OnInit);
                        string html = t.Run ();
                        string gridHtml = HtmlDiff.GetControlFromPageHtml (html);
-#if NET_4_0
                        string expectedFirstPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl00&#39;,&#39;&#39;)\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl01&#39;,&#39;&#39;)\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl02&#39;,&#39;&#39;)\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>1</td><td>heh1</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>1</td><td>heh1</td><td>Comment 1</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>2</td><td>heh2</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>2</td><td>heh2</td><td>Comment 2</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>3</td><td>heh3</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>3</td><td>heh3</td><td>Comment 3</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>4</td><td>heh4</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>4</td><td>heh4</td><td>Comment 4</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>5</td><td>heh5</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>5</td><td>heh5</td><td>Comment 5</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><span>Previous</span>&nbsp;<a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl09$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Next</a></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string expectedFirstPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" border=\"0\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl00','')\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl01','')\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl02','')\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>1</td><td>heh1</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>1</td><td>heh1</td><td>Comment 1</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>2</td><td>heh2</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>2</td><td>heh2</td><td>Comment 2</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>3</td><td>heh3</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>3</td><td>heh3</td><td>Comment 3</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>4</td><td>heh4</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>4</td><td>heh4</td><td>Comment 4</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>5</td><td>heh5</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>5</td><td>heh5</td><td>Comment 5</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><span>Previous</span>&nbsp;<a href=\"javascript:__doPostBack('DataGrid1$ctl09$ctl01','')\" style=\"color:#333333;\">Next</a></td>\r\n\t</tr>\r\n</table>";
-#endif
 
                        HtmlDiff.AssertAreEqual (expectedFirstPage, gridHtml, "DataGrid initial Render");
 
@@ -1598,11 +1594,7 @@ namespace MonoTests.System.Web.UI.WebControls {
 
                        html = t.Run ();
                        gridHtml = HtmlDiff.GetControlFromPageHtml (html);
-#if NET_4_0
                        string expectedSecondPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl00&#39;,&#39;&#39;)\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl01&#39;,&#39;&#39;)\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl02&#39;,&#39;&#39;)\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>6</td><td>heh6</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>6</td><td>heh6</td><td>Comment 6</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>7</td><td>heh7</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>7</td><td>heh7</td><td>Comment 7</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>8</td><td>heh8</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>8</td><td>heh8</td><td>Comment 8</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>9</td><td>heh9</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>9</td><td>heh9</td><td>Comment 9</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>10</td><td>heh10</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>10</td><td>heh10</td><td>Comment 10</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl09$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Previous</a>&nbsp;<span>Next</span></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string expectedSecondPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" border=\"0\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl00','')\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl01','')\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl02','')\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>6</td><td>heh6</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>6</td><td>heh6</td><td>Comment 6</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>7</td><td>heh7</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>7</td><td>heh7</td><td>Comment 7</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>8</td><td>heh8</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>8</td><td>heh8</td><td>Comment 8</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>9</td><td>heh9</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>9</td><td>heh9</td><td>Comment 9</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>10</td><td>heh10</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>10</td><td>heh10</td><td>Comment 10</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><a href=\"javascript:__doPostBack('DataGrid1$ctl09$ctl00','')\" style=\"color:#333333;\">Previous</a>&nbsp;<span>Next</span></td>\r\n\t</tr>\r\n</table>";
-#endif
                        HtmlDiff.AssertAreEqual (expectedSecondPage, gridHtml, "DataGrid Paging Next");
 
                        fr = new FormRequest (t.Response, "form1");
@@ -1630,11 +1622,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        t.Invoker = PageInvoker.CreateOnInit (DataGrid_OnInit);
                        string html = t.Run ();
                        string gridHtml = HtmlDiff.GetControlFromPageHtml (html);
-#if NET_4_0
                        string expectedFirstPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl00&#39;,&#39;&#39;)\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl01&#39;,&#39;&#39;)\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl02&#39;,&#39;&#39;)\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>1</td><td>heh1</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>1</td><td>heh1</td><td>Comment 1</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>2</td><td>heh2</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>2</td><td>heh2</td><td>Comment 2</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>3</td><td>heh3</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>3</td><td>heh3</td><td>Comment 3</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>4</td><td>heh4</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>4</td><td>heh4</td><td>Comment 4</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>5</td><td>heh5</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>5</td><td>heh5</td><td>Comment 5</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><span>Previous</span>&nbsp;<a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl09$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Next</a></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string expectedFirstPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" border=\"0\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl00','')\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl01','')\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl02','')\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>1</td><td>heh1</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>1</td><td>heh1</td><td>Comment 1</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>2</td><td>heh2</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>2</td><td>heh2</td><td>Comment 2</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>3</td><td>heh3</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>3</td><td>heh3</td><td>Comment 3</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>4</td><td>heh4</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>4</td><td>heh4</td><td>Comment 4</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>5</td><td>heh5</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>5</td><td>heh5</td><td>Comment 5</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><span>Previous</span>&nbsp;<a href=\"javascript:__doPostBack('DataGrid1$ctl09$ctl01','')\" style=\"color:#333333;\">Next</a></td>\r\n\t</tr>\r\n</table>";
-#endif
 
                        HtmlDiff.AssertAreEqual (expectedFirstPage, gridHtml, "DataGrid initial Render");
 
@@ -1651,11 +1639,7 @@ namespace MonoTests.System.Web.UI.WebControls {
 
                        html = t.Run ();
                        gridHtml = HtmlDiff.GetControlFromPageHtml (html);
-#if NET_4_0
                        string expectedSecondPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl00&#39;,&#39;&#39;)\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl01&#39;,&#39;&#39;)\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl02&#39;,&#39;&#39;)\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:#333333;background-color:Green;font-weight:normal;font-style:normal;text-decoration:none;\">\r\n\t\t<td>1</td><td><input name=\"DataGrid1$ctl03$ctl00\" type=\"text\" value=\"heh1\" /></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Update</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl02&#39;,&#39;&#39;)\" style=\"color:#333333;\">Cancel</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl03&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>1</td><td><input name=\"DataGrid1$ctl03$ctl04\" type=\"text\" value=\"heh1\" /></td><td><input name=\"DataGrid1$ctl03$ctl05\" type=\"text\" value=\"Comment 1\" /></td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>2</td><td>heh2</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>2</td><td>heh2</td><td>Comment 2</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>3</td><td>heh3</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>3</td><td>heh3</td><td>Comment 3</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>4</td><td>heh4</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>4</td><td>heh4</td><td>Comment 4</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>5</td><td>heh5</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>5</td><td>heh5</td><td>Comment 5</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><span>Previous</span>&nbsp;<a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl09$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Next</a></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string expectedSecondPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" border=\"0\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl00','')\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl01','')\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl02','')\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:#333333;background-color:Green;font-weight:normal;font-style:normal;text-decoration:none;\">\r\n\t\t<td>1</td><td><input name=\"DataGrid1$ctl03$ctl00\" type=\"text\" value=\"heh1\" /></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl01','')\" style=\"color:#333333;\">Update</a>&nbsp;<a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl02','')\" style=\"color:#333333;\">Cancel</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl03','')\" style=\"color:#333333;\">Delete</a></td><td>1</td><td><input name=\"DataGrid1$ctl03$ctl04\" type=\"text\" value=\"heh1\" /></td><td><input name=\"DataGrid1$ctl03$ctl05\" type=\"text\" value=\"Comment 1\" /></td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>2</td><td>heh2</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>2</td><td>heh2</td><td>Comment 2</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>3</td><td>heh3</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>3</td><td>heh3</td><td>Comment 3</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>4</td><td>heh4</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>4</td><td>heh4</td><td>Comment 4</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>5</td><td>heh5</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>5</td><td>heh5</td><td>Comment 5</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><span>Previous</span>&nbsp;<a href=\"javascript:__doPostBack('DataGrid1$ctl09$ctl01','')\" style=\"color:#333333;\">Next</a></td>\r\n\t</tr>\r\n</table>";
-#endif
                        HtmlDiff.AssertAreEqual (expectedSecondPage, gridHtml, "DataGrid Edit");
 
                        fr = new FormRequest (t.Response, "form1");
@@ -1678,11 +1662,7 @@ namespace MonoTests.System.Web.UI.WebControls {
 
                        html = t.Run ();
                        gridHtml = HtmlDiff.GetControlFromPageHtml (html);
-#if NET_4_0
                        string expectedThirdPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl00&#39;,&#39;&#39;)\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl01&#39;,&#39;&#39;)\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl02&#39;,&#39;&#39;)\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>1</td><td>New Value</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>1</td><td>New Value</td><td>Comment 1</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>2</td><td>heh2</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>2</td><td>heh2</td><td>Comment 2</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>3</td><td>heh3</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>3</td><td>heh3</td><td>Comment 3</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>4</td><td>heh4</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>4</td><td>heh4</td><td>Comment 4</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>5</td><td>heh5</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>5</td><td>heh5</td><td>Comment 5</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><span>Previous</span>&nbsp;<a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl09$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Next</a></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string expectedThirdPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" border=\"0\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl00','')\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl01','')\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl02','')\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>1</td><td>New Value</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>1</td><td>New Value</td><td>Comment 1</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>2</td><td>heh2</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>2</td><td>heh2</td><td>Comment 2</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>3</td><td>heh3</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>3</td><td>heh3</td><td>Comment 3</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>4</td><td>heh4</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>4</td><td>heh4</td><td>Comment 4</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>5</td><td>heh5</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>5</td><td>heh5</td><td>Comment 5</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><span>Previous</span>&nbsp;<a href=\"javascript:__doPostBack('DataGrid1$ctl09$ctl01','')\" style=\"color:#333333;\">Next</a></td>\r\n\t</tr>\r\n</table>";
-#endif
 
                        HtmlDiff.AssertAreEqual (expectedThirdPage, gridHtml, "DataGrid Update");
 
@@ -1699,11 +1679,7 @@ namespace MonoTests.System.Web.UI.WebControls {
 
                        html = t.Run ();
                        gridHtml = HtmlDiff.GetControlFromPageHtml (html);
-#if NET_4_0
                        string expectedFourthPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl00&#39;,&#39;&#39;)\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl01&#39;,&#39;&#39;)\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl02&#39;,&#39;&#39;)\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>1</td><td>New Value</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>1</td><td>New Value</td><td>Comment 1</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>3</td><td>heh3</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>3</td><td>heh3</td><td>Comment 3</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>4</td><td>heh4</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>4</td><td>heh4</td><td>Comment 4</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>5</td><td>heh5</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>5</td><td>heh5</td><td>Comment 5</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>6</td><td>heh6</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>6</td><td>heh6</td><td>Comment 6</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><span>Previous</span>&nbsp;<a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl09$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Next</a></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string expectedFourthPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" border=\"0\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl00','')\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl01','')\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl02','')\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>1</td><td>New Value</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>1</td><td>New Value</td><td>Comment 1</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>3</td><td>heh3</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>3</td><td>heh3</td><td>Comment 3</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>4</td><td>heh4</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>4</td><td>heh4</td><td>Comment 4</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>5</td><td>heh5</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>5</td><td>heh5</td><td>Comment 5</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>6</td><td>heh6</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>6</td><td>heh6</td><td>Comment 6</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><span>Previous</span>&nbsp;<a href=\"javascript:__doPostBack('DataGrid1$ctl09$ctl01','')\" style=\"color:#333333;\">Next</a></td>\r\n\t</tr>\r\n</table>";
-#endif
 
                        HtmlDiff.AssertAreEqual (expectedFourthPage, gridHtml, "DataGrid Delete");
                }
@@ -1716,11 +1692,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        t.Invoker = PageInvoker.CreateOnInit (DataGrid_OnInit);
                        string html = t.Run ();
                        string gridHtml = HtmlDiff.GetControlFromPageHtml (html);
-#if NET_4_0
                        string expectedFirstPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl00&#39;,&#39;&#39;)\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl01&#39;,&#39;&#39;)\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl02&#39;,&#39;&#39;)\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>1</td><td>heh1</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>1</td><td>heh1</td><td>Comment 1</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>2</td><td>heh2</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>2</td><td>heh2</td><td>Comment 2</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>3</td><td>heh3</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>3</td><td>heh3</td><td>Comment 3</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>4</td><td>heh4</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>4</td><td>heh4</td><td>Comment 4</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>5</td><td>heh5</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>5</td><td>heh5</td><td>Comment 5</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><span>Previous</span>&nbsp;<a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl09$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Next</a></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string expectedFirstPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" border=\"0\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl00','')\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl01','')\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl02','')\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>1</td><td>heh1</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>1</td><td>heh1</td><td>Comment 1</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>2</td><td>heh2</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>2</td><td>heh2</td><td>Comment 2</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>3</td><td>heh3</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>3</td><td>heh3</td><td>Comment 3</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>4</td><td>heh4</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>4</td><td>heh4</td><td>Comment 4</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>5</td><td>heh5</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>5</td><td>heh5</td><td>Comment 5</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><span>Previous</span>&nbsp;<a href=\"javascript:__doPostBack('DataGrid1$ctl09$ctl01','')\" style=\"color:#333333;\">Next</a></td>\r\n\t</tr>\r\n</table>";
-#endif
 
                        HtmlDiff.AssertAreEqual (expectedFirstPage, gridHtml, "DataGrid initial Render");
 
@@ -1733,11 +1705,7 @@ namespace MonoTests.System.Web.UI.WebControls {
 
                        html = t.Run ();
                        gridHtml = HtmlDiff.GetControlFromPageHtml (html);
-#if NET_4_0
                        string expectedSecondPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl00&#39;,&#39;&#39;)\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl01&#39;,&#39;&#39;)\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl02&#39;,&#39;&#39;)\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:Navy;background-color:#FFCC66;font-weight:bold;\">\r\n\t\t<td>1</td><td>heh1</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl00&#39;,&#39;&#39;)\" style=\"color:Navy;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl01&#39;,&#39;&#39;)\" style=\"color:Navy;\">Delete</a></td><td>1</td><td>heh1</td><td>Comment 1</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>2</td><td>heh2</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>2</td><td>heh2</td><td>Comment 2</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>3</td><td>heh3</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>3</td><td>heh3</td><td>Comment 3</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>4</td><td>heh4</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>4</td><td>heh4</td><td>Comment 4</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>5</td><td>heh5</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>5</td><td>heh5</td><td>Comment 5</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><span>Previous</span>&nbsp;<a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl09$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Next</a></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string expectedSecondPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" border=\"0\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl00','')\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl01','')\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl02','')\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:Navy;background-color:#FFCC66;font-weight:bold;\">\r\n\t\t<td>1</td><td>heh1</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl00','')\" style=\"color:Navy;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl01','')\" style=\"color:Navy;\">Delete</a></td><td>1</td><td>heh1</td><td>Comment 1</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>2</td><td>heh2</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>2</td><td>heh2</td><td>Comment 2</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>3</td><td>heh3</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>3</td><td>heh3</td><td>Comment 3</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>4</td><td>heh4</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>4</td><td>heh4</td><td>Comment 4</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>5</td><td>heh5</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>5</td><td>heh5</td><td>Comment 5</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><span>Previous</span>&nbsp;<a href=\"javascript:__doPostBack('DataGrid1$ctl09$ctl01','')\" style=\"color:#333333;\">Next</a></td>\r\n\t</tr>\r\n</table>";
-#endif
                        HtmlDiff.AssertAreEqual (expectedSecondPage, gridHtml, "DataGrid Selected 1");
 
                        fr = new FormRequest (t.Response, "form1");
@@ -1749,11 +1717,7 @@ namespace MonoTests.System.Web.UI.WebControls {
 
                        html = t.Run ();
                        gridHtml = HtmlDiff.GetControlFromPageHtml (html);
-#if NET_4_0
                        string expectedThirdPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl00&#39;,&#39;&#39;)\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl01&#39;,&#39;&#39;)\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl02$ctl02&#39;,&#39;&#39;)\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>1</td><td>heh1</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl03$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>1</td><td>heh1</td><td>Comment 1</td>\r\n\t</tr><tr style=\"color:Navy;background-color:#FFCC66;font-weight:bold;\">\r\n\t\t<td>2</td><td>heh2</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl00&#39;,&#39;&#39;)\" style=\"color:Navy;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl04$ctl01&#39;,&#39;&#39;)\" style=\"color:Navy;\">Delete</a></td><td>2</td><td>heh2</td><td>Comment 2</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>3</td><td>heh3</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl05$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>3</td><td>heh3</td><td>Comment 3</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>4</td><td>heh4</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl06$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>4</td><td>heh4</td><td>Comment 4</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>5</td><td>heh5</td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl00&#39;,&#39;&#39;)\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl07$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Delete</a></td><td>5</td><td>heh5</td><td>Comment 5</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><span>Previous</span>&nbsp;<a href=\"javascript:__doPostBack(&#39;DataGrid1$ctl09$ctl01&#39;,&#39;&#39;)\" style=\"color:#333333;\">Next</a></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string expectedThirdPage = "\n        <table cellspacing=\"0\" cellpadding=\"4\" border=\"0\" id=\"DataGrid1\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>ID</td><td>Name</td><td>&nbsp;</td><td>&nbsp;</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl00','')\" style=\"color:White;\">ID</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl01','')\" style=\"color:White;\">Name</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl02$ctl02','')\" style=\"color:White;\">Comment</a></td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>1</td><td>heh1</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl03$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>1</td><td>heh1</td><td>Comment 1</td>\r\n\t</tr><tr style=\"color:Navy;background-color:#FFCC66;font-weight:bold;\">\r\n\t\t<td>2</td><td>heh2</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl00','')\" style=\"color:Navy;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl04$ctl01','')\" style=\"color:Navy;\">Delete</a></td><td>2</td><td>heh2</td><td>Comment 2</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>3</td><td>heh3</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl05$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>3</td><td>heh3</td><td>Comment 3</td>\r\n\t</tr><tr style=\"color:#333333;background-color:White;\">\r\n\t\t<td>4</td><td>heh4</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl06$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>4</td><td>heh4</td><td>Comment 4</td>\r\n\t</tr><tr style=\"color:#333333;background-color:#FFFBD6;\">\r\n\t\t<td>5</td><td>heh5</td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl00','')\" style=\"color:#333333;\">Edit</a></td><td><a href=\"javascript:__doPostBack('DataGrid1$ctl07$ctl01','')\" style=\"color:#333333;\">Delete</a></td><td>5</td><td>heh5</td><td>Comment 5</td>\r\n\t</tr><tr style=\"color:White;background-color:#990000;font-weight:bold;\">\r\n\t\t<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\r\n\t</tr><tr align=\"center\" style=\"color:#333333;background-color:#FFCC66;\">\r\n\t\t<td colspan=\"4\"><span>Previous</span>&nbsp;<a href=\"javascript:__doPostBack('DataGrid1$ctl09$ctl01','')\" style=\"color:#333333;\">Next</a></td>\r\n\t</tr>\r\n</table>";
-#endif
 
                        HtmlDiff.AssertAreEqual (expectedThirdPage, gridHtml, "DataGrid Selected 2");
                }
index e34fa9b64f695b5be4e809787c13090380b18616..9b34ea95686cf5bf72bcdb6a8ac0401c4bed9c35 100644 (file)
@@ -67,7 +67,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        Assert.AreEqual (2, iDictionary.Count, "AllValuesReferringToKey#1");
                        Assert.AreEqual ("value1", iDictionary[1], "ValueReferringToKey#1");
                }
-#if NET_4_0
                [Test]
                public void DataKey_Equals ()
                {
@@ -229,6 +228,5 @@ namespace MonoTests.System.Web.UI.WebControls
                        Assert.IsFalse (key1.Equals (key2), "#A17-1");
                        Assert.IsFalse (key2.Equals (key1), "#A17-2");
                }
-#endif
        }
 }
index af110da16a89a4e0794df508af2d65e23ac807b9..25684a24f84a37686238a43efb676f674c89f1b0 100644 (file)
@@ -241,17 +241,10 @@ namespace MonoTests.System.Web.UI.WebControls {
                [Test]
                public void Controls_Table ()
                {
-#if NET_4_0
                        string origHtml1 = "<tr>\n\t<td>mono</td>\n</tr>";
                        string origHtml2 = "<tr>\n\t<td>mono</td>\n</tr>";
                        string origHtml3 = "<table>\n\t<tr>\n\t\t<td>mono</td>\n\t</tr>\n</table>";
                        string origHtml4 = "<span><table>\n\t<tr>\n\t\t<td>mono</td>\n\t</tr>\n</table></span>";
-#else
-                       string origHtml1 = "<tr>\n\t<td>mono</td>\n</tr>";
-                       string origHtml2 = "<tr>\n\t<td>mono</td>\n</tr>";
-                       string origHtml3 = "<table border=\"0\">\n\t<tr>\n\t\t<td>mono</td>\n\t</tr>\n</table>";
-                       string origHtml4 = "<span><table border=\"0\">\n\t<tr>\n\t\t<td>mono</td>\n\t</tr>\n</table></span>";
-#endif
                        TestDataListItem dli = new TestDataListItem (0, ListItemType.Item);
                        dli.Controls.Add (GetTable ("mono"));
 
@@ -271,17 +264,10 @@ namespace MonoTests.System.Web.UI.WebControls {
                [Test]
                public void Controls_Table_Dual ()
                {
-#if NET_4_0
                        string origHtml1 = "<tr>\n\t<td>mono</td>\n</tr>";
                        string origHtml2 = "<tr>\n\t<td>mono</td>\n</tr>";
                        string origHtml3 = "<table>\n\t<tr>\n\t\t<td>mono</td>\n\t</tr>\n</table><table>\n\t<tr>\n\t\t<td>monkey</td>\n\t</tr>\n</table>";
                        string origHtml4 = "<span><table>\n\t<tr>\n\t\t<td>mono</td>\n\t</tr>\n</table><table>\n\t<tr>\n\t\t<td>monkey</td>\n\t</tr>\n</table></span>";
-#else
-                       string origHtml1 = "<tr>\n\t<td>mono</td>\n</tr>";
-                       string origHtml2 = "<tr>\n\t<td>mono</td>\n</tr>";
-                       string origHtml3 = "<table border=\"0\">\n\t<tr>\n\t\t<td>mono</td>\n\t</tr>\n</table><table border=\"0\">\n\t<tr>\n\t\t<td>monkey</td>\n\t</tr>\n</table>";
-                       string origHtml4 = "<span><table border=\"0\">\n\t<tr>\n\t\t<td>mono</td>\n\t</tr>\n</table><table border=\"0\">\n\t<tr>\n\t\t<td>monkey</td>\n\t</tr>\n</table></span>";
-#endif
                        TestDataListItem dli = new TestDataListItem (0, ListItemType.Item);
                        dli.Controls.Add (GetTable ("mono"));
                        dli.Controls.Add (GetTable ("monkey"));
@@ -315,7 +301,6 @@ namespace MonoTests.System.Web.UI.WebControls {
                        Assert.AreEqual ("mono", dli.Render (false, true), "Render-Empty-F-T");
                        Assert.AreEqual ("<span>mono</span>", dli.Render (false, false), "Render-Empty-F-F");
                }
-#if NET_4_0
                [Test]
                public void SupportsDisabledAttribute ()
                {
@@ -329,6 +314,5 @@ namespace MonoTests.System.Web.UI.WebControls {
                        Assert.AreEqual (ver35, p.RenderingCompatibility, "#A2-1");
                        Assert.IsTrue (p.SupportsDisabledAttribute, "#A2-2");
                }
-#endif
        }
 }
index 54ae69e334b2091bd061913106bda958300f400a..9e61762f001f1daa44ddfb8b64bd7fc6bb139acc 100644 (file)
@@ -322,7 +322,6 @@ namespace MonoTests.System.Web.UI.WebControls {
 
                        Assert.AreEqual (0, dl.Attributes.Count, "Attributes.Count-2");
                }
-#if NET_4_0
                [Test]
                public void RepeatLayout_Lists ()
                {
@@ -336,7 +335,6 @@ namespace MonoTests.System.Web.UI.WebControls {
                                dl.RepeatLayout = RepeatLayout.UnorderedList;
                        }, "#A2");
                }
-#endif
                [Test]
                public void CleanProperties ()
                {
index af5e33c80e6f453c46e69229956147d2345d4b81..e6a55f8f67e99e62fe83bdb28c7d2f17fb68ccd3 100644 (file)
@@ -76,11 +76,7 @@ namespace MonoTests.System.Web.UI.WebControls
                public void DataSourceControl_DefaultProperty ()
                {
                        PokerDataSource ds = new PokerDataSource ();
-#if NET_4_0
                        Assert.AreEqual (String.Empty, ds.ClientID, "ClientID");
-#else
-                       Assert.AreEqual (null, ds.ClientID, "ClientID");
-#endif
                        Assert.IsNotNull (ds.Controls, "Controls#1");
                        Assert.AreEqual ( 0 , ds.Controls.Count , "Controls#2");
                        Assert.AreEqual (false, ds.Visible, "Visible");
index 5813d894d5739d2826a5f32486fa6c849c81cddc..12a7ab9e97bc4ad43efdca1e7f12435ee44c417c 100644 (file)
@@ -634,11 +634,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        t.Request = fr;
                        result = t.Run ();
                        string newHtml = HtmlDiff.GetControlFromPageHtml (result);
-#if NET_4_0
                        string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\r\n\t</table>\r\n</div><a id=\"LinkButton1\" href=\"javascript:__doPostBack(&#39;LinkButton1&#39;,&#39;&#39;)\">Test</a>";
-#else
-                       string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\r\n\t</table>\r\n</div><a id=\"LinkButton1\" href=\"javascript:__doPostBack('LinkButton1','')\">Test</a>";
-#endif
                        HtmlDiff.AssertAreEqual(origHtml, newHtml, "EmptyContentTest");
                }
                
@@ -681,11 +677,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        t.Request = fr;
                        result = t.Run ();
                        string newHtml = HtmlDiff.GetControlFromPageHtml (result); 
-#if NET_4_0
                        string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\r\n\t</table>\r\n</div><a id=\"LinkButton1\" href=\"javascript:__doPostBack(&#39;LinkButton1&#39;,&#39;&#39;)\">Test</a>";
-#else
-                       string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\r\n\t</table>\r\n</div><a id=\"LinkButton1\" href=\"javascript:__doPostBack('LinkButton1','')\">Test</a>";
-#endif
                        HtmlDiff.AssertAreEqual(origHtml, newHtml, "EmptyFooterTextTest");
                }
                
@@ -727,11 +719,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        t.Request = fr;
                        result = t.Run ();
                        string newHtml = HtmlDiff.GetControlFromPageHtml (result); 
-#if NET_4_0
                        string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\r\n\t</table>\r\n</div><a id=\"LinkButton1\" href=\"javascript:__doPostBack(&#39;LinkButton1&#39;,&#39;&#39;)\">Test</a>";
-#else
-                       string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\r\n\t</table>\r\n</div><a id=\"LinkButton1\" href=\"javascript:__doPostBack('LinkButton1','')\">Test</a>";
-#endif
                        HtmlDiff.AssertAreEqual(origHtml, newHtml, "EmptyHeaderTextTest");
                }
                
@@ -770,11 +758,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        //t.Invoker = PageInvoker.CreateOnLoad (pd);
                        result = t.Run ();
                        string newHtml = HtmlDiff.GetControlFromPageHtml (result); 
-#if NET_4_0
                        string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>Empty Data</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"LinkButton1\" href=\"javascript:__doPostBack(&#39;LinkButton1&#39;,&#39;&#39;)\">Test</a>";
-#else
-                       string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>Empty Data</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"LinkButton1\" href=\"javascript:__doPostBack('LinkButton1','')\">Test</a>";
-#endif
                        HtmlDiff.AssertAreEqual(origHtml, newHtml, "EmptyDataTextTest");
                }
 
@@ -879,11 +863,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        string html = new WebTest (PageInvoker.CreateOnLoad (
                                new PageDelegate (DetailsView_DeleteItem))).Run ();
                        string newHtml = HtmlDiff.GetControlFromPageHtml (html);
-#if NET_4_0
                        string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1002</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Melanie</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Talmadge</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Page$2&#39;)\">2</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1002</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Melanie</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Talmadge</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('ctl01','Page$2')\">2</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        HtmlDiff.AssertAreEqual (origHtml, newHtml, "DeleteItemMethod");
                }
 
@@ -1204,11 +1184,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        Assert.AreEqual (null, tb.Parent, "CreateTable1");
                        Assert.AreEqual (String.Empty, tb.BackImageUrl, "CreateTable2");
                        Assert.AreEqual (0, tb.Rows.Count, "CreateTable3");
-#if NET_4_0
                        Assert.AreEqual (String.Empty, tb.ClientID, "CreateTable3");
-#else
-                       Assert.AreEqual (null, tb.ClientID , "CreateTable3");
-#endif
                        dv.ID = "testId"; //private filed _parentID should be set to "testId"                   
                        tb = dv.DoCreateTable ();
                        Assert.AreEqual (-1, tb.CellSpacing, "CreateTable4");
@@ -1441,11 +1417,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        //Footer Template property is checked.
                        string renderedPageHtml = new WebTest ("FooterTemplateTest.aspx").Run ();
                        string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
-#if NET_4_0
                        string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\">\n                Footer Template Test<a id=\"DetailsView1_HyperLink1\">Footer</a>\n            </td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\">\n                Footer Template Test<a id=\"DetailsView1_HyperLink1\">Footer</a>\n            </td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$3')\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";       
-#endif
 
                        HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderFooterTemplate");
                }
@@ -1457,11 +1429,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        //Header Template property is checked
                        string renderedPageHtml = new WebTest ("DetailsViewTemplates.aspx").Run ();
                        string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
-#if NET_4_0
                        string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td colspan=\"2\">\n                Header Template<input type=\"submit\" name=\"DetailsView1$Button1\" value=\"Header button\" id=\"DetailsView1_Button1\" />\n            </td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Delete$0&#39;)\">Delete</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td colspan=\"2\">\n                Header Template<input type=\"submit\" name=\"DetailsView1$Button1\" value=\"Header button\" id=\"DetailsView1_Button1\" />\n            </td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack('DetailsView1','Delete$0')\">Delete</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$3')\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderHeaderTemplate");
                }
 
@@ -1483,11 +1451,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        string renderedPageHtml = new WebTest ("DetailsViewTemplates_3.aspx").Run ();
                        string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
-#if NET_4_0
                        string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView3\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack(&#39;DetailsView3&#39;,&#39;$0&#39;)\">TestButtonField</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>&nbsp;</td><td><a></a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Image field</td><td></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>&nbsp;</td><td></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Template Field</td><td style=\"background-color:#FFE0C0;\">&nbsp;</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView3&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView3&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView3\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack('DetailsView3','$0')\">TestButtonField</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>&nbsp;</td><td><a></a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Image field</td><td></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>&nbsp;</td><td></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Template Field</td><td style=\"background-color:#FFE0C0;\">&nbsp;</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('DetailsView3','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('DetailsView3','Page$3')\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                                        
                        HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderDataFields");
                }
@@ -1500,11 +1464,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        t.Invoker = PageInvoker.CreateOnLoad (PagingPostback_Load);
                        string pageHTML = t.Run ();
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
-#if NET_4_0
                        string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Edit$0&#39;)\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Delete$0&#39;)\">Delete</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;New$0&#39;)\">New</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack('DetailsView1','Edit$0')\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack('DetailsView1','Delete$0')\">Delete</a>&nbsp;<a href=\"javascript:__doPostBack('DetailsView1','New$0')\">New</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$3')\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        HtmlDiff.AssertAreEqual (origHtmlValue, renderedHtml, "BeforePagingDataPostback");
                        FormRequest fr = new FormRequest (t.Response, "form1");
                        fr.Controls.Add ("__EVENTTARGET");
@@ -1514,11 +1474,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        t.Request = fr;
                        pageHTML = t.Run ();
                        renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
-#if NET_4_0
                        origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1002</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Melanie</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Talmadge</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Edit$1&#39;)\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Delete$1&#39;)\">Delete</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;New$1&#39;)\">New</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$1&#39;)\">1</a></td><td><span>2</span></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else                  
-                       origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1002</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Melanie</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Talmadge</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack('DetailsView1','Edit$1')\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack('DetailsView1','Delete$1')\">Delete</a>&nbsp;<a href=\"javascript:__doPostBack('DetailsView1','New$1')\">New</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><a href=\"javascript:__doPostBack('DetailsView1','Page$1')\">1</a></td><td><span>2</span></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$3')\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        HtmlDiff.AssertAreEqual (origHtmlValue, renderedHtml, "AfterPagingDataPostback");
 
                        // Checking for change index event fired.
@@ -1589,11 +1545,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        t.Request = fr;                 
                        pageHTML = t.Run ();
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
-#if NET_4_0
                        string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td><input name=\"DetailsView1$ctl01\" type=\"text\" value=\"Mahesh\" title=\"FName\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td><input name=\"DetailsView1$ctl02\" type=\"text\" value=\"Chand\" title=\"LName\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack(&#39;DetailsView1$ctl03&#39;,&#39;&#39;)\">Update</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Cancel$0&#39;)\">Cancel</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td><input name=\"DetailsView1$ctl01\" type=\"text\" value=\"Mahesh\" title=\"FName\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td><input name=\"DetailsView1$ctl02\" type=\"text\" value=\"Chand\" title=\"LName\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack('DetailsView1$ctl03','')\">Update</a>&nbsp;<a href=\"javascript:__doPostBack('DetailsView1','Cancel$0')\">Cancel</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$3')\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        HtmlDiff.AssertAreEqual (origHtmlValue, renderedHtml, "AfterEditPostback");
                        // Checking for change mode event fired.
                        ArrayList eventlist = t.UserData as ArrayList;
@@ -1664,11 +1616,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        pageHTML = t.Run ();
                        //Console.WriteLine ("XXXXFAIL {0}", pageHTML);
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
-#if NET_4_0
                        string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1002</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Melanie</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Talmadge</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Edit$0&#39;)\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Delete$0&#39;)\">Delete</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;New$0&#39;)\">New</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$2&#39;)\">2</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1002</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Melanie</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Talmadge</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack('DetailsView1','Edit$0')\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack('DetailsView1','Delete$0')\">Delete</a>&nbsp;<a href=\"javascript:__doPostBack('DetailsView1','New$0')\">New</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$2')\">2</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
 
                        HtmlDiff.AssertAreEqual (origHtmlValue, renderedHtml, "DeleteDataPostback");
                        Assert.AreEqual (false, renderedHtml.Contains ("1001"), "AfterDeletePostback");
@@ -1740,11 +1688,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        t.Request = fr;                 
                        pageHTML = t.Run ();
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
-#if NET_4_0
                        string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td><input name=\"DetailsView1$ctl01\" type=\"text\" title=\"ID\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td><input name=\"DetailsView1$ctl02\" type=\"text\" title=\"FName\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td><input name=\"DetailsView1$ctl03\" type=\"text\" title=\"LName\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack(&#39;DetailsView1$ctl04&#39;,&#39;&#39;)\">Insert</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Cancel$-1&#39;)\">Cancel</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td><input name=\"DetailsView1$ctl01\" type=\"text\" title=\"ID\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td><input name=\"DetailsView1$ctl02\" type=\"text\" title=\"FName\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td><input name=\"DetailsView1$ctl03\" type=\"text\" title=\"LName\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack('DetailsView1$ctl04','')\">Insert</a>&nbsp;<a href=\"javascript:__doPostBack('DetailsView1','Cancel$-1')\">Cancel</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";    
-#endif
 
                        HtmlDiff.AssertAreEqual (origHtmlValue, renderedHtml, "InsertDataPostback");
                        
index 5b2987fb5e0376b92b38a854d43e0431f299dab2..85072013f6a48ed3605d0cd8b513ed613f0c7050 100644 (file)
@@ -121,11 +121,7 @@ namespace MonoTests.System.Web.UI.WebControls
                [Test]
                public void InitializeCell () 
                {
-#if NET_4_0
                        string origHtml = "<table><tr><td>&nbsp;</td><td>&nbsp;</td><td>one</td><td>two</td><td>three</td></tr><tr><td><a>Edit</a></td><td><input name=\"sucker$ctl02$ctl00\" type=\"submit\" value=\"Bearbeiten\" /></td><td>1</td><td>2</td><td>3</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></table>";
-#else
-                       string origHtml = "<table border=\"0\"><tr><td>&nbsp;</td><td>&nbsp;</td><td>one</td><td>two</td><td>three</td></tr><tr><td><a>Edit</a></td><td><input name=\"sucker$ctl02$ctl00\" type=\"submit\" value=\"Bearbeiten\" /></td><td>1</td><td>2</td><td>3</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></table>";
-#endif
                        DataGridTest    p = new DataGridTest ();
                        DataTable       table = new DataTable ();
                        EditCommandColumn       e;
@@ -170,11 +166,7 @@ namespace MonoTests.System.Web.UI.WebControls
                [Test]
                public void ThisIsADGTest () 
                {
-#if NET_4_0
                        string origHtml = "<table id=\"sucker_tbl\"><tr><td>&nbsp;</td><td>&nbsp;</td><td>one</td><td>two</td><td>three</td></tr><tr><td><a>Edit</a></td><td><input name=\"sucker$ctl02$ctl00\" type=\"submit\" value=\"Bearbeiten\" /></td><td>1</td><td>2</td><td>3</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></table>";
-#else
-                       string origHtml = "<table border=\"0\" id=\"sucker_tbl\"><tr><td>&nbsp;</td><td>&nbsp;</td><td>one</td><td>two</td><td>three</td></tr><tr><td><a>Edit</a></td><td><input name=\"sucker$ctl02$ctl00\" type=\"submit\" value=\"Bearbeiten\" /></td><td>1</td><td>2</td><td>3</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></table>";
-#endif
                        DataGridTest    p = new DataGridTest ();
                        DataTable       table = new DataTable ();
                        EditCommandColumn       e;
@@ -228,11 +220,7 @@ namespace MonoTests.System.Web.UI.WebControls
                [Test]
                public void InitializeEditCell () 
                {
-#if NET_4_0
                        string origHtml = "<table><tr><td>&nbsp;</td><td>&nbsp;</td><td>one</td><td>two</td><td>three</td></tr><tr><td><a>Update</a>&nbsp;<a>Cancel</a></td><td><input name=\"sucker$ctl02$ctl00\" type=\"submit\" value=\"Refresh\" />&nbsp;<input name=\"sucker$ctl02$ctl01\" type=\"submit\" value=\"Abbrechen\" /></td><td><input name=\"sucker$ctl02$ctl02\" type=\"text\" value=\"1\" /></td><td><input name=\"sucker$ctl02$ctl03\" type=\"text\" value=\"2\" /></td><td><input name=\"sucker$ctl02$ctl04\" type=\"text\" value=\"3\" /></td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></table>";
-#else
-                       string origHtml = "<table border=\"0\"><tr><td>&nbsp;</td><td>&nbsp;</td><td>one</td><td>two</td><td>three</td></tr><tr><td><a>Update</a>&nbsp;<a>Cancel</a></td><td><input name=\"sucker$ctl02$ctl00\" type=\"submit\" value=\"Refresh\" />&nbsp;<input name=\"sucker$ctl02$ctl01\" type=\"submit\" value=\"Abbrechen\" /></td><td><input name=\"sucker$ctl02$ctl02\" type=\"text\" value=\"1\" /></td><td><input name=\"sucker$ctl02$ctl03\" type=\"text\" value=\"2\" /></td><td><input name=\"sucker$ctl02$ctl04\" type=\"text\" value=\"3\" /></td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></table>";
-#endif
                        DataGridTest    p = new DataGridTest ();
                        DataTable       table = new DataTable ();
                        EditCommandColumn       e;
index b4d8d304db7540d11f79acbf97c5c27983983838..33bb4b6d0937226a2b5c5c52d910ad1213b9ce98 100644 (file)
@@ -349,12 +349,10 @@ namespace MonoTests.System.Web.UI.WebControls
                        public bool GetInitialized () {
                                return Initialized;
                        }
-#if NET_4_0
                        public string CallModifiedOuterTableStylePropertyName ()
                        {
                                return ModifiedOuterTableStylePropertyName ();
                        }
-#endif
                }
                
                class Template : ITemplate
@@ -1570,11 +1568,7 @@ CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
                {
                        string renderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
                        string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
-#if NET_4_0
                        string origHtmlValue = "<table cellspacing=\"2\" cellpadding=\"3\" rules=\"all\" id=\"FormView1\" style=\"background-color:#DEBA84;border-color:#DEBA84;border-width:1px;border-style:None;\">\r\n\t<tr style=\"color:#8C4510;background-color:#FFF7E7;\">\r\n\t\t<td colspan=\"2\">\n                <span id=\"FormView1_Label1\">1</span>\n            </td>\r\n\t</tr><tr align=\"center\" style=\"color:#8C4510;\">\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$2&#39;)\" style=\"color:#8C4510;\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$3&#39;)\" style=\"color:#8C4510;\">3</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$4&#39;)\" style=\"color:#8C4510;\">4</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$5&#39;)\" style=\"color:#8C4510;\">5</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$6&#39;)\" style=\"color:#8C4510;\">6</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origHtmlValue = "<table cellspacing=\"2\" cellpadding=\"3\" rules=\"all\" border=\"1\" id=\"FormView1\" style=\"background-color:#DEBA84;border-color:#DEBA84;border-width:1px;border-style:None;\">\r\n\t<tr style=\"color:#8C4510;background-color:#FFF7E7;\">\r\n\t\t<td colspan=\"2\">\n                <span id=\"FormView1_Label1\">1</span>\n            </td>\r\n\t</tr><tr align=\"center\" style=\"color:#8C4510;\">\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView1','Page$2')\" style=\"color:#8C4510;\">2</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$3')\" style=\"color:#8C4510;\">3</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$4')\" style=\"color:#8C4510;\">4</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$5')\" style=\"color:#8C4510;\">5</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$6')\" style=\"color:#8C4510;\">6</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";         
-#endif
        
                        HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderSimpleTemplate");                  
                }
@@ -1585,11 +1579,7 @@ CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
                {
                        string renderedPageHtml = new WebTest ("FormViewTest1_2.aspx").Run ();
                        string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
-#if NET_4_0
                        string origHtmlValue = "<table cellspacing=\"0\" cellpadding=\"4\" id=\"FormView2\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:#333333;background-color:#F7F6F3;\">\r\n\t\t<td colspan=\"2\">\n                <span id=\"FormView2_Label2\">1</span>\n            </td>\r\n\t</tr><tr style=\"color:White;background-color:#5D7B9D;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">\n                <span id=\"FormView2_Label3\">Footer Template Test</span>\n            </td>\r\n\t</tr><tr align=\"center\" style=\"color:White;background-color:#284775;\">\r\n\t\t<td colspan=\"2\">\n                <input type=\"submit\" name=\"FormView2$ctl01$Button1\" value=\"Prev Item\" id=\"FormView2_ctl01_Button1\" />\n                <input type=\"submit\" name=\"FormView2$ctl01$Button2\" value=\"Next Item\" id=\"FormView2_ctl01_Button2\" />\n                <input type=\"submit\" name=\"FormView2$ctl01$Button3\" value=\"First Item\" id=\"FormView2_ctl01_Button3\" />\n                <input type=\"submit\" name=\"FormView2$ctl01$Button4\" value=\"Last Item\" id=\"FormView2_ctl01_Button4\" />\n            </td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origHtmlValue = "<table cellspacing=\"0\" cellpadding=\"4\" border=\"0\" id=\"FormView2\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:#333333;background-color:#F7F6F3;\">\r\n\t\t<td colspan=\"2\">\n                <span id=\"FormView2_Label2\">1</span>\n            </td>\r\n\t</tr><tr style=\"color:White;background-color:#5D7B9D;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">\n                <span id=\"FormView2_Label3\">Footer Template Test</span>\n            </td>\r\n\t</tr><tr align=\"center\" style=\"color:White;background-color:#284775;\">\r\n\t\t<td colspan=\"2\">\n                <input type=\"submit\" name=\"FormView2$ctl01$Button1\" value=\"Prev Item\" id=\"FormView2_ctl01_Button1\" />\n                <input type=\"submit\" name=\"FormView2$ctl01$Button2\" value=\"Next Item\" id=\"FormView2_ctl01_Button2\" />\n                <input type=\"submit\" name=\"FormView2$ctl01$Button3\" value=\"First Item\" id=\"FormView2_ctl01_Button3\" />\n                <input type=\"submit\" name=\"FormView2$ctl01$Button4\" value=\"Last Item\" id=\"FormView2_ctl01_Button4\" />\n            </td>\r\n\t</tr>\r\n</table>";    
-#endif
                        HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "FormView_RenderFooterAndPager");
                }
 
@@ -1599,11 +1589,7 @@ CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
                {
                        string renderedPageHtml = new WebTest ("FormViewTest1_4.aspx").Run ();
                        string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
-#if NET_4_0
                        string origHtmlValue = "<table cellspacing=\"10\" cellpadding=\"3\" align=\"Right\" rules=\"all\" id=\"FormView4\" style=\"background-color:White;border-color:#CCCCCC;border-width:1px;border-style:None;\">\r\n\t<tr align=\"left\" style=\"color:White;background-color:#006699;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">Using Header Text property</td>\r\n\t</tr><tr align=\"center\" style=\"color:#000066;background-color:Maroon;\">\r\n\t\t<td colspan=\"2\">Using Footer Text property</td>\r\n\t</tr><tr align=\"left\" style=\"color:#000066;background-color:LightGrey;\">\r\n\t\t<td colspan=\"2\">\n                <a id=\"FormView4_ctl01_LinkButton1\" href=\"javascript:__doPostBack(&#39;FormView4$ctl01$LinkButton1&#39;,&#39;&#39;)\">Next</a>\n                <a id=\"FormView4_ctl01_LinkButton2\" href=\"javascript:__doPostBack(&#39;FormView4$ctl01$LinkButton2&#39;,&#39;&#39;)\">Prev</a>\n                <span id=\"FormView4_ctl01_Label7\">Page Index: 0</span>\n            </td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origHtmlValue = "<table cellspacing=\"10\" cellpadding=\"3\" align=\"Right\" rules=\"all\" border=\"1\" id=\"FormView4\" style=\"background-color:White;border-color:#CCCCCC;border-width:1px;border-style:None;\">\r\n\t<tr align=\"left\" style=\"color:White;background-color:#006699;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">Using Header Text property</td>\r\n\t</tr><tr align=\"center\" style=\"color:#000066;background-color:Maroon;\">\r\n\t\t<td colspan=\"2\">Using Footer Text property</td>\r\n\t</tr><tr align=\"left\" style=\"color:#000066;background-color:LightGrey;\">\r\n\t\t<td colspan=\"2\">\n                <a id=\"FormView4_ctl01_LinkButton1\" href=\"javascript:__doPostBack('FormView4$ctl01$LinkButton1','')\">Next</a>\n                <a id=\"FormView4_ctl01_LinkButton2\" href=\"javascript:__doPostBack('FormView4$ctl01$LinkButton2','')\">Prev</a>\n                <span id=\"FormView4_ctl01_Label7\">Page Index: 0</span>\n            </td>\r\n\t</tr>\r\n</table>";                         
-#endif
                        HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");
                }
 
@@ -1614,11 +1600,7 @@ CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
                {
                        string RenderedPageHtml = new WebTest ("FormViewTest1_3.aspx").Run ();
                        string newHtmlValue = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
-#if NET_4_0
                        string origHtmlValue = "<table cellspacing=\"0\" cellpadding=\"2\" id=\"FormView3\" style=\"color:Black;background-color:LightGoldenrodYellow;border-color:Tan;border-width:1px;border-style:solid;border-collapse:collapse;\">\r\n\t<tr align=\"center\" valign=\"top\" style=\"color:#C00000;background-color:Tan;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">\n                <span id=\"FormView3_Label5\">Header Template Test</span>\n            </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\">\n                <span id=\"FormView3_Label4\">1</span>\n            </td>\r\n\t</tr><tr align=\"right\" style=\"color:#FFC0FF;background-color:Tan;\">\r\n\t\t<td colspan=\"2\">\n                <span id=\"FormView3_Label6\">FormView Footer</span>\n            </td>\r\n\t</tr><tr align=\"center\" style=\"color:DarkSlateBlue;background-color:PaleGoldenrod;\">\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;FormView3&#39;,&#39;Page$2&#39;)\" style=\"color:DarkSlateBlue;\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView3&#39;,&#39;Page$3&#39;)\" style=\"color:DarkSlateBlue;\">3</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView3&#39;,&#39;Page$4&#39;)\" style=\"color:DarkSlateBlue;\">4</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView3&#39;,&#39;Page$5&#39;)\" style=\"color:DarkSlateBlue;\">5</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView3&#39;,&#39;Page$6&#39;)\" style=\"color:DarkSlateBlue;\">6</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origHtmlValue = "<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" id=\"FormView3\" style=\"color:Black;background-color:LightGoldenrodYellow;border-color:Tan;border-width:1px;border-style:solid;border-collapse:collapse;\">\r\n\t<tr align=\"center\" valign=\"top\" style=\"color:#C00000;background-color:Tan;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">\n                <span id=\"FormView3_Label5\">Header Template Test</span>\n            </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\">\n                <span id=\"FormView3_Label4\">1</span>\n            </td>\r\n\t</tr><tr align=\"right\" style=\"color:#FFC0FF;background-color:Tan;\">\r\n\t\t<td colspan=\"2\">\n                <span id=\"FormView3_Label6\">FormView Footer</span>\n            </td>\r\n\t</tr><tr align=\"center\" style=\"color:DarkSlateBlue;background-color:PaleGoldenrod;\">\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView3','Page$2')\" style=\"color:DarkSlateBlue;\">2</a></td><td><a href=\"javascript:__doPostBack('FormView3','Page$3')\" style=\"color:DarkSlateBlue;\">3</a></td><td><a href=\"javascript:__doPostBack('FormView3','Page$4')\" style=\"color:DarkSlateBlue;\">4</a></td><td><a href=\"javascript:__doPostBack('FormView3','Page$5')\" style=\"color:DarkSlateBlue;\">5</a></td><td><a href=\"javascript:__doPostBack('FormView3','Page$6')\" style=\"color:DarkSlateBlue;\">6</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";        
-#endif
                        HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");
                }
                
@@ -1630,11 +1612,7 @@ CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
                        WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
                        string pageHTML = t.Run ();
                        string newHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
-#if NET_4_0
                        string origHtml = "<table cellspacing=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n                    <span id=\"FormView1_ID\">1001</span>&nbsp;\n                    <span id=\"FormView1_LName\">Chand</span>\n                    <span id=\"FormView1_FName\">Mahesh</span>&nbsp;\n                    <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack(&#39;FormView1$EditButton&#39;,&#39;&#39;)\">Edit</a>\n                    <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack(&#39;FormView1$NewButton&#39;,&#39;&#39;)\">New</a>\n                    <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack(&#39;FormView1$DeleteButton&#39;,&#39;&#39;)\">Delete</a>\n                </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origHtml = "<table cellspacing=\"0\" border=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n                    <span id=\"FormView1_ID\">1001</span>&nbsp;\n                    <span id=\"FormView1_LName\">Chand</span>\n                    <span id=\"FormView1_FName\">Mahesh</span>&nbsp;\n                    <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack('FormView1$EditButton','')\">Edit</a>\n                    <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack('FormView1$NewButton','')\">New</a>\n                    <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack('FormView1$DeleteButton','')\">Delete</a>\n                </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$3')\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#endif
                        HtmlDiff.AssertAreEqual (origHtml, newHtml, "BeforeEditPostback");
 
                        //Edit button postback (change to edit mode - buttons "Update" and "Cancel" should appear.
@@ -1647,11 +1625,7 @@ CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
                        t.Request = fr;
                        pageHTML = t.Run ();
                        newHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
-#if NET_4_0
                        origHtml = "<table cellspacing=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n                    Enter First Name:<input name=\"FormView1$FNameEdit\" type=\"text\" value=\"Mahesh\" id=\"FormView1_FNameEdit\" /><br />\n                    Enter Last Name:<input name=\"FormView1$LNameEdit\" type=\"text\" value=\"Chand\" id=\"FormView1_LNameEdit\" /><br />\n                    <a id=\"FormView1_UpdateButton\" href=\"javascript:__doPostBack(&#39;FormView1$UpdateButton&#39;,&#39;&#39;)\">Update</a>\n                    <a id=\"FormView1_CancelUpdateButton\" href=\"javascript:__doPostBack(&#39;FormView1$CancelUpdateButton&#39;,&#39;&#39;)\">Cancel</a>\n                </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else
-                       origHtml = "<table cellspacing=\"0\" border=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n                    Enter First Name:<input name=\"FormView1$FNameEdit\" type=\"text\" value=\"Mahesh\" id=\"FormView1_FNameEdit\" /><br />\n                    Enter Last Name:<input name=\"FormView1$LNameEdit\" type=\"text\" value=\"Chand\" id=\"FormView1_LNameEdit\" /><br />\n                    <a id=\"FormView1_UpdateButton\" href=\"javascript:__doPostBack('FormView1$UpdateButton','')\">Update</a>\n                    <a id=\"FormView1_CancelUpdateButton\" href=\"javascript:__doPostBack('FormView1$CancelUpdateButton','')\">Cancel</a>\n                </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$3')\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#endif
                        HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterEditPostback");
 
                        //Update record postback                
@@ -1668,11 +1642,7 @@ CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
                        t.Request = fr;
                        pageHTML = t.Run ();
                        newHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
-#if NET_4_0
                        origHtml = "<table cellspacing=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n                    <span id=\"FormView1_ID\">1001</span>&nbsp;\n                    <span id=\"FormView1_LName\">Test</span>\n                    <span id=\"FormView1_FName\">Merav</span>&nbsp;\n                    <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack(&#39;FormView1$EditButton&#39;,&#39;&#39;)\">Edit</a>\n                    <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack(&#39;FormView1$NewButton&#39;,&#39;&#39;)\">New</a>\n                    <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack(&#39;FormView1$DeleteButton&#39;,&#39;&#39;)\">Delete</a>\n                </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else
-                       origHtml = "<table cellspacing=\"0\" border=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n                    <span id=\"FormView1_ID\">1001</span>&nbsp;\n                    <span id=\"FormView1_LName\">Test</span>\n                    <span id=\"FormView1_FName\">Merav</span>&nbsp;\n                    <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack('FormView1$EditButton','')\">Edit</a>\n                    <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack('FormView1$NewButton','')\">New</a>\n                    <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack('FormView1$DeleteButton','')\">Delete</a>\n                </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$3')\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#endif
                        HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterUpdatePostback"); 
   
                        //Postback to return to Edit mode
@@ -1700,22 +1670,14 @@ CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
                        t.Request = fr;
                        pageHTML = t.Run ();
                        newHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
-#if NET_4_0
                        origHtml = "<table cellspacing=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n                    <span id=\"FormView1_ID\">1001</span>&nbsp;\n                    <span id=\"FormView1_LName\">Test</span>\n                    <span id=\"FormView1_FName\">Merav</span>&nbsp;\n                    <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack(&#39;FormView1$EditButton&#39;,&#39;&#39;)\">Edit</a>\n                    <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack(&#39;FormView1$NewButton&#39;,&#39;&#39;)\">New</a>\n                    <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack(&#39;FormView1$DeleteButton&#39;,&#39;&#39;)\">Delete</a>\n                </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else
-                       origHtml = "<table cellspacing=\"0\" border=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n                    <span id=\"FormView1_ID\">1001</span>&nbsp;\n                    <span id=\"FormView1_LName\">Test</span>\n                    <span id=\"FormView1_FName\">Merav</span>&nbsp;\n                    <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack('FormView1$EditButton','')\">Edit</a>\n                    <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack('FormView1$NewButton','')\">New</a>\n                    <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack('FormView1$DeleteButton','')\">Delete</a>\n                </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$3')\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#endif
                        HtmlDiff.AssertAreEqual (origHtml, newHtml, "CancelEditedRecordPostback");   
                }
 
                [Test (Description="Bug #578863")]
                public void FormView_PagerSettings_Visibility ()
                {
-#if NET_4_0
                        string origHtml = "<table cellspacing=\"2\" cellpadding=\"3\" rules=\"all\" id=\"FormView1\" style=\"background-color:#DEBA84;border-color:#DEBA84;border-width:1px;border-style:None;\">\r\n\t<tr style=\"color:#8C4510;background-color:#FFF7E7;\">\r\n\t\t<td colspan=\"2\">\n          <span id=\"FormView1_Label1\">1</span>\n\t</td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origHtml = "<table cellspacing=\"2\" cellpadding=\"3\" rules=\"all\" border=\"1\" id=\"FormView1\" style=\"background-color:#DEBA84;border-color:#DEBA84;border-width:1px;border-style:None;\">\r\n\t<tr style=\"color:#8C4510;background-color:#FFF7E7;\">\r\n\t\t<td colspan=\"2\">\n          <span id=\"FormView1_Label1\">1</span>\n\t</td>\r\n\t</tr>\r\n</table>";
-#endif
                        WebTest t = new WebTest ("FormViewPagerVisibility.aspx");
                        string pageHtml = t.Run ();
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHtml);
@@ -2151,11 +2113,7 @@ CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
                        t.Request = fr;
                        pageHTML = t.Run ();
                        string newHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
-#if NET_4_0
                        string origHtml = "<table cellspacing=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n                    Insert ID:\n                    <input name=\"FormView1$IDInsert\" type=\"text\" id=\"FormView1_IDInsert\" /><br />\n                    Insert First Name:\n                    <input name=\"FormView1$FNameInsert\" type=\"text\" id=\"FormView1_FNameInsert\" />\n                    <br />\n                    Insert Last Name:&nbsp;\n                    <input name=\"FormView1$LNameInsert\" type=\"text\" id=\"FormView1_LNameInsert\" />\n                    <a id=\"FormView1_InsertButton\" href=\"javascript:__doPostBack(&#39;FormView1$InsertButton&#39;,&#39;&#39;)\">Insert</a>\n                    <a id=\"FormView1_CancelInsertButton\" href=\"javascript:__doPostBack(&#39;FormView1$CancelInsertButton&#39;,&#39;&#39;)\">Cancel</a>\n                </td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origHtml = "<table cellspacing=\"0\" border=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n                    Insert ID:\n                    <input name=\"FormView1$IDInsert\" type=\"text\" id=\"FormView1_IDInsert\" /><br />\n                    Insert First Name:\n                    <input name=\"FormView1$FNameInsert\" type=\"text\" id=\"FormView1_FNameInsert\" />\n                    <br />\n                    Insert Last Name:&nbsp;\n                    <input name=\"FormView1$LNameInsert\" type=\"text\" id=\"FormView1_LNameInsert\" />\n                    <a id=\"FormView1_InsertButton\" href=\"javascript:__doPostBack('FormView1$InsertButton','')\">Insert</a>\n                    <a id=\"FormView1_CancelInsertButton\" href=\"javascript:__doPostBack('FormView1$CancelInsertButton','')\">Cancel</a>\n                </td>\r\n\t</tr>\r\n</table>";
-#endif
                        HtmlDiff.AssertAreEqual (origHtml, newHtml, "InsertPostback");
 
                        //Insert new record
@@ -2418,7 +2376,6 @@ CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
                }
 
                public static void BuildTemplateMethod (Control c) { }
-#if NET_4_0
                [Test]
                public void ModifiedOuterTableStylePropertyName ()
                {
@@ -2471,7 +2428,6 @@ CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
                        Assert.IsNotNull (props, "#B1-1");
                        Assert.AreEqual ("BackImageUrl", props, "#B1-2");
                }
-#endif
        }
 
        public class TestMyData
index 2f38ba4b556ad9983b3585b4831ef907f227fc94..7561fd84425b70a803d0918521917d5d9deb3e8c 100644 (file)
@@ -591,7 +591,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        g.UseAccessibleHeader = false;
                        Assert.AreEqual (false, g.UseAccessibleHeader, "UseAccessibleHeader");
                }
-#if NET_4_0
                [Test]
                public void SortedAscendingCellStyle ()
                {
@@ -623,7 +622,6 @@ namespace MonoTests.System.Web.UI.WebControls
 
                        Assert.IsNotNull (g.SortedDescendingHeaderStyle, "#A1-1");
                }
-#endif
                [Test]
                public void GridView_DefaultProtectedProperties ()
                {
@@ -1596,11 +1594,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderAllowPaging)).Run ();
                        string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
-#if NET_4_0
                        string OriginControlHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">Item</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Norway</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Sweden</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Page$2&#39;)\">2</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string OriginControlHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">Item</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Norway</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Sweden</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><table border=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('ctl01','Page$2')\">2</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderDefault");
                }
 
@@ -1629,11 +1623,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderAllowPaging2)).Run ();
                        string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
-#if NET_4_0
                        string OriginControlHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">Item</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td>France</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Italy</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Page$1&#39;)\">1</a></td><td><span>2</span></td><td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Page$3&#39;)\">3</a></td><td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Page$4&#39;)\">4</a></td><td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Page$5&#39;)\">...</a></td><td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Page$Last&#39;)\">&gt;&gt;</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string OriginControlHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">Item</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td>France</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Italy</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><table border=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><a href=\"javascript:__doPostBack('ctl01','Page$1')\">1</a></td><td><span>2</span></td><td><a href=\"javascript:__doPostBack('ctl01','Page$3')\">3</a></td><td><a href=\"javascript:__doPostBack('ctl01','Page$4')\">4</a></td><td><a href=\"javascript:__doPostBack('ctl01','Page$5')\">...</a></td><td><a href=\"javascript:__doPostBack('ctl01','Page$Last')\">&gt;&gt;</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderDefault");
                }
 
@@ -1672,11 +1662,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderProperty)).Run ();
                        string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
-#if NET_4_0
                                string OriginControlHtml = "<div id=\"__gvctl01__div\">\r\n\t<table cellspacing=\"1\" cellpadding=\"0\" align=\"Justify\" rules=\"rows\" border=\"1\" style=\"background-image:url(http://test);\">\r\n\t\t<caption align=\"Left\">\r\n\t\t\ttest\r\n\t\t</caption><tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Edit$0&#39;)\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Delete$0&#39;)\">Delete</a></td><td>Norway</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Edit$1&#39;)\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Delete$1&#39;)\">Delete</a></td><td>Sweden</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Edit$2&#39;)\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Delete$2&#39;)\">Delete</a></td><td>France</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Edit$3&#39;)\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Delete$3&#39;)\">Delete</a></td><td>Italy</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>&nbsp;</td><td>&nbsp;</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string OriginControlHtml = "<div id=\"__gvctl01__div\">\r\n\t<table cellspacing=\"1\" cellpadding=\"0\" align=\"Justify\" rules=\"rows\" border=\"1\" style=\"background-image:url(http://test);\">\r\n\t\t<caption align=\"Left\">\r\n\t\t\ttest\r\n\t\t</caption><tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack('ctl01','Edit$0')\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack('ctl01','Delete$0')\">Delete</a></td><td>Norway</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack('ctl01','Edit$1')\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack('ctl01','Delete$1')\">Delete</a></td><td>Sweden</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack('ctl01','Edit$2')\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack('ctl01','Delete$2')\">Delete</a></td><td>France</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack('ctl01','Edit$3')\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack('ctl01','Delete$3')\">Delete</a></td><td>Italy</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>&nbsp;</td><td>&nbsp;</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderDefault");
                }
 
@@ -1738,11 +1724,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingCheckBoxField)).Run ();
                        string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
-#if NET_4_0
                        string OriginControlHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">HeaderText</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><span class=\"aspNetDisabled\"><input id=\"ctl01_ctl00_0\" type=\"checkbox\" name=\"ctl01$ctl02$ctl00\" checked=\"checked\" disabled=\"disabled\" /></span></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><span class=\"aspNetDisabled\"><input id=\"ctl01_ctl00_1\" type=\"checkbox\" name=\"ctl01$ctl03$ctl00\" disabled=\"disabled\" /></span></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FooterText</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string OriginControlHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">HeaderText</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><span disabled=\"disabled\"><input id=\"ctl01_ctl02_ctl00\" type=\"checkbox\" name=\"ctl01$ctl02$ctl00\" checked=\"checked\" disabled=\"disabled\" /></span></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><span disabled=\"disabled\"><input id=\"ctl01_ctl03_ctl00\" type=\"checkbox\" name=\"ctl01$ctl03$ctl00\" disabled=\"disabled\" /></span></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FooterText</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingCheckBoxField");
                }
 
@@ -1751,11 +1733,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingCheckBoxField2)).Run ();
                        string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
-#if NET_4_0
                        string OriginControlHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">bool</th><th scope=\"col\">str</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><span class=\"aspNetDisabled\" title=\"bool\"><input id=\"ctl01_ctl00_0\" type=\"checkbox\" name=\"ctl01$ctl02$ctl00\" checked=\"checked\" disabled=\"disabled\" /></span></td><td>1</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><span class=\"aspNetDisabled\" title=\"bool\"><input id=\"ctl01_ctl00_1\" type=\"checkbox\" name=\"ctl01$ctl03$ctl00\" disabled=\"disabled\" /></span></td><td>2</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>&nbsp;</td><td>&nbsp;</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string OriginControlHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">bool</th><th scope=\"col\">str</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><span disabled=\"disabled\" title=\"bool\"><input id=\"ctl01_ctl02_ctl00\" type=\"checkbox\" name=\"ctl01$ctl02$ctl00\" checked=\"checked\" disabled=\"disabled\" /></span></td><td>1</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><span disabled=\"disabled\" title=\"bool\"><input id=\"ctl01_ctl03_ctl00\" type=\"checkbox\" name=\"ctl01$ctl03$ctl00\" disabled=\"disabled\" /></span></td><td>2</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>&nbsp;</td><td>&nbsp;</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingCheckBoxField2");
                }
                
@@ -1764,11 +1742,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingImageField)).Run ();
                        string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
-#if NET_4_0
                        string OriginControlHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">HeaderText</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"1\" alt=\"1\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"2\" alt=\"2\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FooterText</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string OriginControlHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">HeaderText</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"1\" alt=\"1\" style=\"border-width:0px;\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"2\" alt=\"2\" style=\"border-width:0px;\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FooterText</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingImageField");
                }
 
@@ -1777,11 +1751,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingCommandField)).Run ();
                        string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
-#if NET_4_0
                        string OriginControlHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">HeaderText</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Edit$0&#39;)\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Delete$0&#39;)\">Delete</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;New$0&#39;)\">New</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Select$0&#39;)\">Select</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Edit$1&#39;)\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Delete$1&#39;)\">Delete</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;New$1&#39;)\">New</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Select$1&#39;)\">Select</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FooterText</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string OriginControlHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">HeaderText</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack('ctl01','Edit$0')\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack('ctl01','Delete$0')\">Delete</a>&nbsp;<a href=\"javascript:__doPostBack('ctl01','New$0')\">New</a>&nbsp;<a href=\"javascript:__doPostBack('ctl01','Select$0')\">Select</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack('ctl01','Edit$1')\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack('ctl01','Delete$1')\">Delete</a>&nbsp;<a href=\"javascript:__doPostBack('ctl01','New$1')\">New</a>&nbsp;<a href=\"javascript:__doPostBack('ctl01','Select$1')\">Select</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FooterText</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingCommandField");
                }
 
@@ -1799,11 +1769,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingButtonField)).Run ();
                        string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
-#if NET_4_0
                        string OriginControlHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">HeaderText</th><th scope=\"col\">HeaderText</th><th scope=\"col\">HeaderText</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input type=\"button\" value=\"1\" onclick=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;$0&#39;)\" /></td><td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;cmd2$0&#39;)\">1</a></td><td><input type=\"image\" src=\"\" alt=\"1\" onclick=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;cmd3$0&#39;);return false;\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input type=\"button\" value=\"2\" onclick=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;$1&#39;)\" /></td><td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;cmd2$1&#39;)\">2</a></td><td><input type=\"image\" src=\"\" alt=\"2\" onclick=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;cmd3$1&#39;);return false;\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FooterText</td><td>FooterText</td><td>FooterText</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string OriginControlHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">HeaderText</th><th scope=\"col\">HeaderText</th><th scope=\"col\">HeaderText</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input type=\"button\" value=\"1\" onclick=\"javascript:__doPostBack('ctl01','$0')\" /></td><td><a href=\"javascript:__doPostBack('ctl01','cmd2$0')\">1</a></td><td><input type=\"image\" src=\"\" alt=\"1\" onclick=\"javascript:__doPostBack('ctl01','cmd3$0')\" style=\"border-width:0px;\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input type=\"button\" value=\"2\" onclick=\"javascript:__doPostBack('ctl01','$1')\" /></td><td><a href=\"javascript:__doPostBack('ctl01','cmd2$1')\">2</a></td><td><input type=\"image\" src=\"\" alt=\"2\" onclick=\"javascript:__doPostBack('ctl01','cmd3$1')\" style=\"border-width:0px;\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FooterText</td><td>FooterText</td><td>FooterText</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingButtonField");
                }
 
@@ -1822,11 +1788,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingTemplateField)).Run ();
                        string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
-#if NET_4_0
                        string OriginControlHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"grid\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\"><input name=\"grid$ctl01$TextBox1\" type=\"text\" id=\"grid_TextBox1\" /></th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input name=\"grid$ctl02$TextBox1\" type=\"text\" value=\"1\" id=\"grid_TextBox1_0\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input name=\"grid$ctl03$TextBox1\" type=\"text\" value=\"2\" id=\"grid_TextBox1_1\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input name=\"grid$ctl04$TextBox1\" type=\"text\" id=\"grid_TextBox1\" /></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string OriginControlHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"grid\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\"><input name=\"grid$ctl01$TextBox1\" type=\"text\" id=\"grid_ctl01_TextBox1\" /></th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input name=\"grid$ctl02$TextBox1\" type=\"text\" value=\"1\" id=\"grid_ctl02_TextBox1\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input name=\"grid$ctl03$TextBox1\" type=\"text\" value=\"2\" id=\"grid_ctl03_TextBox1\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><input name=\"grid$ctl04$TextBox1\" type=\"text\" id=\"grid_ctl04_TextBox1\" /></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingTemplateField");
                }
                
index af0ffcd739124e674e8dfe93e393de0c6872bc57..cdfe04bfb997c6d57c3e0bf3116137bd94cfb5a8 100644 (file)
@@ -81,11 +81,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                [Test]
                public void ImageUrlWithoutText ()
                {
-#if NET_4_0
                        string origHtml = "<a><img src=\"http://www.mono-project.com/stylesheets/images.wiki.png\" alt=\"\" /></a>";
-#else
-                       string origHtml = "<a><img src=\"http://www.mono-project.com/stylesheets/images.wiki.png\" style=\"border-width:0px;\" /></a>";
-#endif
                        TestHyperLink hl = new TestHyperLink ();
                        hl.ImageUrl = imageUrl;
                        Assert.AreEqual (imageUrl, hl.ImageUrl, "ImageUrl");
@@ -101,11 +97,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                [Test]
                public void ImageUrlWithoutText_ToolTip ()
                {
-#if NET_4_0
                        string origHtml = "<a title=\"Some message\"><img title=\"Some message\" src=\"http://www.mono-project.com/stylesheets/images.wiki.png\" alt=\"\" /></a>";
-#else
-                       string origHtml = "<a title=\"Some message\"><img title=\"Some message\" src=\"http://www.mono-project.com/stylesheets/images.wiki.png\" style=\"border-width:0px;\" /></a>";
-#endif
                        TestHyperLink hl = new TestHyperLink ();
                        hl.ImageUrl = imageUrl;
                        hl.ToolTip = "Some message";
@@ -136,11 +128,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                [Test]
                public void ImageUrl_NO_ResolveUrl ()
                {
-#if NET_4_0
                        string origHtml = "<a><img src=\"~/ben.jpeg\" alt=\"\" /></a>";
-#else
-                       string origHtml = "<a><img src=\"~/ben.jpeg\" style=\"border-width:0px;\" /></a>";
-#endif
                        TestHyperLink hl = new TestHyperLink ();
                        hl.ImageUrl = "~/ben.jpeg";
                        Assert.AreEqual ("~/ben.jpeg", hl.ImageUrl, "ImageUrl");
index 0cb462e762411aebe15e537b585d7539424cd5c6..f15a00fe4d9d3a9ed3bd47cfac59beda9eeecd96 100644 (file)
@@ -237,11 +237,7 @@ namespace MonoTests.System.Web.UI.WebControls
                [Test]
                public void Text ()
                {
-#if NET_4_0
                        string origHtml = "<input type=\"image\" src=\"\" alt=\"MyText\" />";
-#else
-                       string origHtml = "<input type=\"image\" src=\"\" alt=\"MyText\" style=\"border-width:0px;\" />";
-#endif
                        PokerImageButton b = new PokerImageButton ();
                        b.Text = "MyText";
                        string html = b.Render ();
index 1f9e1bea4ab704bc759344f4af1d7aaba6ad9ca8..b413ce2f2e5023510b6e74a162366a8fc2251cff 100644 (file)
@@ -299,11 +299,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        t.Invoker = new PageInvoker (pd);
                        
                        string htmlPage = t.Run ();
-#if NET_4_0
                        string htmlOrigin = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"Grid\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">Data</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"Item%200\" alt=\"Item: Item 0\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"Item%201\" alt=\"Item: Item 1\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"Item%202\" alt=\"Item: Item 2\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"Item%203\" alt=\"Item: Item 3\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"Item%204\" alt=\"Item: Item 4\" /></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string htmlOrigin = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"Grid\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">Data</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"Item%200\" alt=\"Item: Item 0\" style=\"border-width:0px;\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"Item%201\" alt=\"Item: Item 1\" style=\"border-width:0px;\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"Item%202\" alt=\"Item: Item 2\" style=\"border-width:0px;\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"Item%203\" alt=\"Item: Item 3\" style=\"border-width:0px;\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"Item%204\" alt=\"Item: Item 4\" style=\"border-width:0px;\" /></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        string htmlControl = HtmlDiff.GetControlFromPageHtml (htmlPage);
                        HtmlDiff.AssertAreEqual (htmlOrigin, htmlControl, "GetFormattedAlternateText");
                }
@@ -372,11 +368,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        pd.PreRender = _ConvertEmptyStringToNull;
                        t.Invoker = new PageInvoker (pd);
                        string htmlPage = t.Run ();
-#if NET_4_0
                        string htmlOrigin = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">Data</th><th scope=\"col\">Field</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"\" /></td><td>&nbsp;</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"\" /></td><td>&nbsp;</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"\" /></td><td>&nbsp;</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"\" /></td><td>&nbsp;</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"\" /></td><td>&nbsp;</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string htmlOrigin = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">Data</th><th scope=\"col\">Field</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"\" style=\"border-width:0px;\" /></td><td>&nbsp;</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"\" style=\"border-width:0px;\" /></td><td>&nbsp;</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"\" style=\"border-width:0px;\" /></td><td>&nbsp;</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"\" style=\"border-width:0px;\" /></td><td>&nbsp;</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td><img src=\"\" style=\"border-width:0px;\" /></td><td>&nbsp;</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        string htmlControl = HtmlDiff.GetControlFromPageHtml (htmlPage);
                        HtmlDiff.AssertAreEqual (htmlOrigin, htmlControl, "ConvertEmptyStringToNull");
                }
index 64863d73e78e7ea0e1b8b1e4e1b344035c3c960a..ff078412d93cf85f4d40f3dac18fbdae15c0f47f 100644 (file)
@@ -133,11 +133,7 @@ namespace MonoTests.System.Web.UI.WebControls
                public void ImageMap_Defaults_Render ()
                {
                        PokerImageMap imageMap = new PokerImageMap ();
-#if NET_4_0
                        string originalHtml = "<img src=\"\" />";
-#else
-                       string originalHtml = "<img src=\"\" style=\"border-width:0px;\" />";
-#endif
                        string renderedHtml = imageMap.Render ();
                        HtmlDiff.AssertAreEqual (originalHtml, renderedHtml, "RenderDefault");
                }
@@ -154,11 +150,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        CircleHotSpot circle = new CircleHotSpot ();
                        circle.NavigateUrl = "NavigateURL";
                        imageMap.HotSpots.Add (circle);
-#if NET_4_0
                        string originalHtml = "<img src=\"\" usemap=\"#ImageMap\" /><map name=\"ImageMap\" id=\"ImageMap\">\r\n\t<area shape=\"circle\" coords=\"0,0,0\" href=\"NavigateURL\" target=\"Target\" title=\"\" alt=\"\" />\r\n</map>";
-#else
-                       string originalHtml = "<img src=\"\" usemap=\"#ImageMap\" style=\"border-width:0px;\" /><map name=\"ImageMap\" id=\"ImageMap\">\r\n\t<area shape=\"circle\" coords=\"0,0,0\" href=\"NavigateURL\" target=\"Target\" title=\"\" alt=\"\" />\r\n</map>";
-#endif
                        string renderedHtml = imageMap.Render ();
                        HtmlDiff.AssertAreEqual (originalHtml, renderedHtml, "RenderNavigateTextAssigned");
                }
@@ -180,11 +172,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        circle.X = 30;
                        circle.Y = 40;
                        imageMap.HotSpots.Add (circle);
-#if NET_4_0
                        string originalHtml = "<img src=\"\" usemap=\"#ImageMap\" /><map name=\"ImageMap\" id=\"ImageMap\">\r\n\t<area shape=\"circle\" coords=\"30,40,10\" href=\"NavigateURL\" title=\"Circle\" alt=\"Circle\" accesskey=\"A\" tabindex=\"1\" />\r\n</map>";
-#else
-                       string originalHtml = "<img src=\"\" usemap=\"#ImageMap\" style=\"border-width:0px;\" /><map name=\"ImageMap\" id=\"ImageMap\">\r\n\t<area shape=\"circle\" coords=\"30,40,10\" href=\"NavigateURL\" title=\"Circle\" alt=\"Circle\" accesskey=\"A\" tabindex=\"1\" />\r\n</map>";
-#endif
                        string renderedHtml = imageMap.Render ();
                        HtmlDiff.AssertAreEqual (originalHtml, renderedHtml, "RenderNavigateCircleTextAssigned");
                }
@@ -216,11 +204,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        poly.TabIndex = 2;
                        poly.Coordinates = "10,20,30,40,50,60,100,200";
                        imageMap.HotSpots.Add (poly);
-#if NET_4_0
                        string originalHtml = "<img src=\"\" usemap=\"#ImageMap\" /><map name=\"ImageMap\" id=\"ImageMap\">\r\n\t<area shape=\"rect\" coords=\"30,20,40,10\" href=\"NavigateUrlRect\" title=\"Rectangle\" alt=\"Rectangle\" accesskey=\"R\" tabindex=\"1\" /><area shape=\"poly\" coords=\"10,20,30,40,50,60,100,200\" href=\"NavigateUrlPoly\" title=\"Polygon\" alt=\"Polygon\" accesskey=\"P\" tabindex=\"2\" />\r\n</map>";
-#else
-                       string originalHtml = "<img src=\"\" usemap=\"#ImageMap\" style=\"border-width:0px;\" /><map name=\"ImageMap\" id=\"ImageMap\">\r\n\t<area shape=\"rect\" coords=\"30,20,40,10\" href=\"NavigateUrlRect\" title=\"Rectangle\" alt=\"Rectangle\" accesskey=\"R\" tabindex=\"1\" /><area shape=\"poly\" coords=\"10,20,30,40,50,60,100,200\" href=\"NavigateUrlPoly\" title=\"Polygon\" alt=\"Polygon\" accesskey=\"P\" tabindex=\"2\" />\r\n</map>";
-#endif
                        string renderedHtml = imageMap.Render ();
                        HtmlDiff.AssertAreEqual (originalHtml, renderedHtml, "RenderNavigateShapesTextAssigned");
                }
@@ -235,11 +219,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        imageMap.HotSpotMode = HotSpotMode.Inactive;
                        imageMap.Target = "Target";
                        imageMap.HotSpots.Add (new CircleHotSpot ());
-#if NET_4_0
                        string originalHtml = "<img src=\"\" usemap=\"#ImageMap\" /><map name=\"ImageMap\" id=\"ImageMap\">\r\n\t<area shape=\"circle\" coords=\"0,0,0\" nohref=\"true\" title=\"\" alt=\"\" />\r\n</map>";
-#else
-                       string originalHtml = "<img src=\"\" usemap=\"#ImageMap\" style=\"border-width:0px;\" /><map name=\"ImageMap\" id=\"ImageMap\">\r\n\t<area shape=\"circle\" coords=\"0,0,0\" nohref=\"true\" title=\"\" alt=\"\" />\r\n</map>";
-#endif
                        string renderedHtml = imageMap.Render ();
                        HtmlDiff.AssertAreEqual (originalHtml, renderedHtml, "RenderInaciveTextAssigned");
                }
@@ -256,11 +236,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        CircleHotSpot circle = new CircleHotSpot ();
                        circle.NavigateUrl = "NavigateURL";
                        imageMap.HotSpots.Add (circle);
-#if NET_4_0
                        string originalHtml = "<img class=\"aspNetDisabled\" src=\"\" usemap=\"#ImageMap\" /><map name=\"ImageMap\" id=\"ImageMap\">\r\n\t<area shape=\"circle\" coords=\"0,0,0\" target=\"Target\" title=\"\" alt=\"\" />\r\n</map>";
-#else
-                       string originalHtml = "<img disabled=\"disabled\" src=\"\" usemap=\"#ImageMap\" style=\"border-width:0px;\" /><map name=\"ImageMap\" id=\"ImageMap\">\r\n\t<area shape=\"circle\" coords=\"0,0,0\" href=\"NavigateURL\" target=\"Target\" title=\"\" alt=\"\" />\r\n</map>";
-#endif
                        string renderedHtml = imageMap.Render ();
                        HtmlDiff.AssertAreEqual (originalHtml, renderedHtml, "RenderDisabledTextAssigne");
                }
@@ -470,11 +446,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (myPageLoad));
                        #region orig
-#if NET_4_0
                        string strTarget = "<img id=\"imgmap\" src=\"\" usemap=\"#ImageMapimgmap\" /><map name=\"ImageMapimgmap\" id=\"ImageMapimgmap\">\r\n\t<area shape=\"rect\" coords=\"0,0,0,0\" href=\"javascript:__doPostBack(&#39;imgmap&#39;,&#39;0&#39;)\" title=\"\" alt=\"\" /><area shape=\"poly\" coords=\"\" href=\"javascript:__doPostBack(&#39;imgmap&#39;,&#39;1&#39;)\" title=\"\" alt=\"\" /><area shape=\"circle\" coords=\"0,0,0\" href=\"javascript:__doPostBack(&#39;imgmap&#39;,&#39;2&#39;)\" title=\"\" alt=\"\" />\r\n</map>";
-#else
-                       string strTarget = "<img id=\"imgmap\" src=\"\" usemap=\"#ImageMapimgmap\" style=\"border-width:0px;\" /><map name=\"ImageMapimgmap\" id=\"ImageMapimgmap\">\r\n\t<area shape=\"rect\" coords=\"0,0,0,0\" href=\"javascript:__doPostBack('imgmap','0')\" title=\"\" alt=\"\" /><area shape=\"poly\" coords=\"\" href=\"javascript:__doPostBack('imgmap','1')\" title=\"\" alt=\"\" /><area shape=\"circle\" coords=\"0,0,0\" href=\"javascript:__doPostBack('imgmap','2')\" title=\"\" alt=\"\" />\r\n</map>";
-#endif
                        #endregion
                        string RenderedPageHtml = t.Run ();
                        string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
@@ -494,11 +466,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        fr.Controls["__EVENTARGUMENT"].Value = "0";
                        t.Request = fr;
                        #region orig
-#if NET_4_0
                        string strTarget = "<img id=\"imgmap\" src=\"\" usemap=\"#ImageMapimgmap\" /><map name=\"ImageMapimgmap\" id=\"ImageMapimgmap\">\r\n\t<area shape=\"rect\" coords=\"0,0,0,0\" href=\"javascript:__doPostBack(&#39;imgmap&#39;,&#39;0&#39;)\" title=\"\" alt=\"\" /><area shape=\"poly\" coords=\"\" href=\"javascript:__doPostBack(&#39;imgmap&#39;,&#39;1&#39;)\" title=\"\" alt=\"\" /><area shape=\"circle\" coords=\"0,0,0\" href=\"javascript:__doPostBack(&#39;imgmap&#39;,&#39;2&#39;)\" title=\"\" alt=\"\" />\r\n</map>";
-#else
-                       string strTarget = "<img id=\"imgmap\" src=\"\" usemap=\"#ImageMapimgmap\" style=\"border-width:0px;\" /><map name=\"ImageMapimgmap\" id=\"ImageMapimgmap\">\r\n\t<area shape=\"rect\" coords=\"0,0,0,0\" href=\"javascript:__doPostBack('imgmap','0')\" title=\"\" alt=\"\" /><area shape=\"poly\" coords=\"\" href=\"javascript:__doPostBack('imgmap','1')\" title=\"\" alt=\"\" /><area shape=\"circle\" coords=\"0,0,0\" href=\"javascript:__doPostBack('imgmap','2')\" title=\"\" alt=\"\" />\r\n</map>";
-#endif
                        #endregion
                        string RenderedPageHtml = t.Run ();
                        string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
index 3bc92fa124487dd75cbed1437a99062c90f83609..2afd9e1b6a9ce8c12b92e15b69c59439039a5222 100644 (file)
@@ -167,11 +167,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        img.Enabled = false;
 
                        string html = img.Render ();
-#if NET_4_0
                        Assert.IsTrue (html.IndexOf (" class=\"aspNetDisabled\"") > 0, "#");
-#else
-                       Assert.IsTrue (html.IndexOf (" disabled=\"") > 0, "#");
-#endif
                }
 
                [Test]
@@ -196,21 +192,12 @@ namespace MonoTests.System.Web.UI.WebControls {
                        s = i.Render ();
                        Assert.IsTrue (i.Render ().IndexOf (" alt=\"alt\"") > 0, "alt");
                        i.AlternateText = String.Empty;
-#if NET_4_0
                        s = i.Render ();
                        Assert.IsTrue (s.IndexOf (" class=\"aspNetDisabled\"") < 0, "enabled");
                        i.Enabled = false;
                        s = i.Render ();
                        Assert.IsTrue (s.IndexOf (" class=\"aspNetDisabled\"") > 0, "disabled");
                        i.Enabled = true;
-#else
-                       s = i.Render ();
-                       Assert.IsTrue (i.Render ().IndexOf (" disabled=\"disabled\"") < 0, "enabled");
-                       i.Enabled = false;
-                       s = i.Render ();
-                       Assert.IsTrue (i.Render ().IndexOf (" disabled=\"disabled\"") > 0, "disabled");
-                       i.Enabled = true;
-#endif
 
                        // note: align is in mixed-case in 1.x so we lower everything to test
                        i.ImageAlign = ImageAlign.AbsBottom;
index bb97516436660db62002bfb0b36ee5209277622e..02fc8537059ed040c765786aa6c3efaa53bb8f72 100644 (file)
@@ -73,7 +73,6 @@ namespace MonoTests.System.Web.UI.WebControls
        [TestFixture]
        public class MasterPageTest
        {
-#if NET_4_0
                class MyTemplate : ITemplate
                {
                        public const string MyText = "|MyTemplate.InstantiateIn called|";
@@ -93,7 +92,6 @@ namespace MonoTests.System.Web.UI.WebControls
                                container.Controls.Add (new LiteralControl (MyText));
                        }
                }
-#endif
                [TestFixtureSetUp]
                public void CopyTestResources ()
                {
@@ -215,7 +213,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        if (PageRenderHtml.IndexOf ("FromMasterMethod") < 0)
                                Assert.Fail ("MasterType TypeName test failed");
                }
-#if NET_4_0
                [Test]
                public void InstantiateInContentPlaceHolder ()
                {
@@ -295,7 +292,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        return false;
                }
 
-#endif
                public static void _RenderDefault (Page p)
                {
                        p.Form.Controls.Add(new LiteralControl("Page dynamic text"));
index a9107f858520f4202da2ede25c2ffe0b633844c8..7921e1e2348d441498dee5dbb17dce439ac1fa61 100644 (file)
@@ -31,7 +31,6 @@ using System.Web.UI;
 using System.Web.UI.WebControls;
 
 using NUnit.Framework;
-#if NET_4_0
 namespace MonoTests.System.Web.UI.WebControls
 {
        [TestFixture]
@@ -126,4 +125,3 @@ namespace MonoTests.System.Web.UI.WebControls
                }
        }
 }
-#endif
\ No newline at end of file
index c4defa6b5dccd209fafc7eb2e185725645954dfe..868e447a2761274ed4b95ac2ed602db9a81d46f9 100644 (file)
@@ -55,9 +55,7 @@ namespace MonoTests.System.Web.UI.WebControls
        {
                public MenuTable ()
                {
-#if NET_4_0
                        RenderingMode = MenuRenderingMode.Table;
-#endif
                }
        }
        
@@ -180,11 +178,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        Assert.IsNotNull (p.StaticMenuStyle, "StaticMenuStyle");
                        Assert.AreEqual ("", p.StaticPopOutImageUrl, "StaticPopOutImageUrl");
                        Assert.IsNotNull (p.StaticSelectedStyle, "StaticSelectedStyle");
-#if NET_4_0
                        Assert.IsTrue (p.StaticSubMenuIndent.IsEmpty, "StaticSubMenuIndent");
-#else
-                       Assert.AreEqual (Unit.Pixel(16), p.StaticSubMenuIndent, "StaticSubMenuIndent");
-#endif
                        Assert.AreEqual ("", p.StaticTopSeparatorImageUrl, "StaticTopSeparatorImageUrl");
                        Assert.AreEqual ("", p.Target, "Target");
                        Assert.IsNotNull (p.OnTagKey (), "TagKey");
@@ -412,22 +406,15 @@ namespace MonoTests.System.Web.UI.WebControls
                public static void _BeginTagRender(Page p)
                {
                        PokerMenu pm = new PokerMenu ();
-#if NET_4_0
                        pm.RenderingCompatibility = new Version (2, 0);
-#endif
                        p.Form.Controls.Add (pm);
                        StringWriter sw = new StringWriter ();
                        HtmlTextWriter tw = new HtmlTextWriter (sw);
                        pm.RenderBeginTag (tw);
                        string RenderedControlHtml = sw.ToString();
-#if NET_4_0
                        string OriginControlHtml = "<a href=\"#ctl01_SkipLink\"><img alt=\"Skip Navigation Links\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><table id=\"ctl01\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\r\n";
-#else
-                       string OriginControlHtml = "<a href=\"#ctl01_SkipLink\"><img alt=\"Skip Navigation Links\" src=\"/NunitWeb/WebResource.axd?d=4RHYfeNnynkXiM59uthjZg2&amp;t=633802729995006876\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><table id=\"ctl01\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\r\n";
-#endif
                        HtmlDiff.AssertAreEqual(OriginControlHtml,RenderedControlHtml,"RenderBeginTag");
                }
-#if NET_4_0
                [Test]
                [Category ("NunitWeb")]
                public void Menu_RenderBeginTag_List ()
@@ -449,7 +436,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        string OriginControlHtml = "<a href=\"#ctl01_SkipLink\"><img alt=\"Skip Navigation Links\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"ctl01\">\r\n";
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderBeginTag_List");
                }
-#endif
                [Test]
                [Category ("NunitWeb")]
                public void Menu_RenderEndTag ()
@@ -459,23 +445,16 @@ namespace MonoTests.System.Web.UI.WebControls
                public static void _EndTagRender (Page p)
                {
                        PokerMenu pm = new PokerMenu ();
-#if NET_4_0
                        pm.RenderingCompatibility = new Version (2, 0);
-#endif
                        p.Form.Controls.Add (pm);
                        StringWriter sw = new StringWriter ();
                        HtmlTextWriter tw = new HtmlTextWriter (sw);
                        pm.RenderBeginTag (tw);
                        pm.RenderEndTag (tw);
                        string RenderedControlHtml = sw.ToString ();
-#if NET_4_0
                        string OriginControlHtml = "<a href=\"#ctl01_SkipLink\"><img alt=\"Skip Navigation Links\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><table id=\"ctl01\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\r\n\r\n</table><a id=\"ctl01_SkipLink\"></a>";
-#else
-                       string OriginControlHtml = "<a href=\"#ctl01_SkipLink\"><img alt=\"Skip Navigation Links\" src=\"/NunitWeb/WebResource.axd?d=4RHYfeNnynkXiM59uthjZg2&amp;t=633802729995006876\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><table id=\"ctl01\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\r\n\r\n</table><a id=\"ctl01_SkipLink\"></a>";
-#endif
                        HtmlDiff.AssertAreEqual(OriginControlHtml, RenderedControlHtml,"RenderEndTag"); 
                }
-#if NET_4_0
                [Test]
                [Category ("NunitWeb")]
                public void Menu_RenderEndTag_List ()
@@ -497,7 +476,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        string OriginControlHtml = "<a href=\"#ctl01_SkipLink\"><img alt=\"Skip Navigation Links\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"ctl01\">\r\n\r\n</div><a id=\"ctl01_SkipLink\"></a>";
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderEndTag");
                }
-#endif
                [Test]
                public void Menu_DataBind () {
                        Page p = new Page ();
@@ -555,9 +533,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        p.Form.Controls.Add (xmlDs);
 
                        Menu m = CreateMenu ();
-#if NET_4_0
                        m.RenderingMode = MenuRenderingMode.Table;
-#endif
                        m.DataSourceID = "XmlDataSource";
                        m.MenuItemDataBound += new MenuEventHandler (m_MenuItemDataBound);
                        p.Form.Controls.Add (m);
@@ -951,250 +927,29 @@ namespace MonoTests.System.Web.UI.WebControls
                public void Menu_RenderStaticItems () {
                        string RenderedPageHtml, RenderedControlHtml, OriginControlHtml;
                        #region OriginControlHtml
-#if NET_4_0
                        OriginControlHtml = "<a href=\"#Menu_SkipLink\"><img alt=\"Skip Navigation Links\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><table id=\"Menu\" class=\"Menu_2\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\r\n\t<tr onmouseover=\"Menu_HoverRoot(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun0\">\r\n\t\t<td><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td style=\"white-space:nowrap;width:100%;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value&#39;)\">one-black</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr><tr>\r\n\t\t<td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\r\n\t\t\t<tr onmouseover=\"Menu_HoverRoot(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun1\">\r\n\t\t\t\t<td><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td style=\"white-space:nowrap;width:100%;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-1-value&#39;)\" style=\"margin-left:16px;\">two-black-1</a></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\r\n\t\t\t\t\t<tr onmouseover=\"Menu_HoverRoot(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun2\">\r\n\t\t\t\t\t\t<td><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;width:100%;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-1-value\\\\three-black-1-value&#39;)\" style=\"margin-left:32px;\">three-black-1</a></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t</tr><tr>\r\n\t\t\t\t\t\t<td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t<tr onmouseover=\"Menu_HoverStatic(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun3\">\r\n\t\t\t\t\t\t\t\t<td><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;width:100%;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-1-value\\\\three-black-1-value\\\\four-black-1-value&#39;)\" style=\"margin-left:48px;\">four-black-1</a></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t\t\t</tr><tr onmouseover=\"Menu_HoverStatic(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun4\">\r\n\t\t\t\t\t\t\t\t<td><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;width:100%;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-1-value\\\\three-black-1-value\\\\four-black-2-value&#39;)\" style=\"margin-left:48px;\">four-black-2</a></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t</tr><tr onmouseover=\"Menu_HoverRoot(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun5\">\r\n\t\t\t\t\t\t<td><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;width:100%;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-1-value\\\\three-black-2-value&#39;)\" style=\"margin-left:32px;\">three-black-2</a></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t</tr><tr>\r\n\t\t\t\t\t\t<td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t<tr onmouseover=\"Menu_HoverStatic(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun6\">\r\n\t\t\t\t\t\t\t\t<td><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;width:100%;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-1-value\\\\three-black-2-value\\\\four-black-3-value&#39;)\" style=\"margin-left:48px;\">four-black-3</a></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t\t\t</tr><tr onmouseover=\"Menu_HoverStatic(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun7\">\r\n\t\t\t\t\t\t\t\t<td><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;width:100%;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-1-value\\\\three-black-2-value\\\\four-black-4-value&#39;)\" style=\"margin-left:48px;\">four-black-4</a></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td>\r\n\t\t\t</tr><tr onmouseover=\"Menu_HoverRoot(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun8\">\r\n\t\t\t\t<td><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td style=\"white-space:nowrap;width:100%;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-2-value&#39;)\" style=\"margin-left:16px;\">two-black-2</a></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\r\n\t\t\t\t\t<tr onmouseover=\"Menu_HoverRoot(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun9\">\r\n\t\t\t\t\t\t<td><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;width:100%;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-2-value\\\\three-black-3-value&#39;)\" style=\"margin-left:32px;\">three-black-3</a></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t</tr><tr>\r\n\t\t\t\t\t\t<td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t<tr onmouseover=\"Menu_HoverStatic(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun10\">\r\n\t\t\t\t\t\t\t\t<td><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;width:100%;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-2-value\\\\three-black-3-value\\\\four-black-5-value&#39;)\" style=\"margin-left:48px;\">four-black-5</a></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t\t\t</tr><tr onmouseover=\"Menu_HoverStatic(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun11\">\r\n\t\t\t\t\t\t\t\t<td><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;width:100%;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-2-value\\\\three-black-3-value\\\\four-black-6-value&#39;)\" style=\"margin-left:48px;\">four-black-6</a></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t</tr><tr onmouseover=\"Menu_HoverRoot(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun12\">\r\n\t\t\t\t\t\t<td><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;width:100%;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-2-value\\\\three-black-4-value&#39;)\" style=\"margin-left:32px;\">three-black-4</a></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t</tr><tr>\r\n\t\t\t\t\t\t<td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t<tr onmouseover=\"Menu_HoverStatic(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun13\">\r\n\t\t\t\t\t\t\t\t<td><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;width:100%;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-2-value\\\\three-black-4-value\\\\four-black-7-value&#39;)\" style=\"margin-left:48px;\">four-black-7</a></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t\t\t</tr><tr onmouseover=\"Menu_HoverStatic(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun14\">\r\n\t\t\t\t\t\t\t\t<td><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;width:100%;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-2-value\\\\three-black-4-value\\\\four-black-8-value&#39;)\" style=\"margin-left:48px;\">four-black-8</a></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table><a id=\"Menu_SkipLink\"></a>";
-#else
-                       OriginControlHtml = @"<a href=""#Menu_SkipLink""><img alt=""Skip Navigation Links"" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><table id=""Menu"" class=""Menu_2"" cellpadding=""0"" cellspacing=""0"" border=""0"">
-       <tr onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun0"">
-               <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                       <tr>
-                               <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value')"">one-black</a></td>
-                       </tr>
-               </table></td>
-       </tr><tr>
-               <td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
-                       <tr onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun1"">
-                               <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                       <tr>
-                                               <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value')"" style=""margin-left:16px;"">two-black-1</a></td>
-                                       </tr>
-                               </table></td>
-                       </tr><tr>
-                               <td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
-                                       <tr onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun2"">
-                                               <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                       <tr>
-                                                               <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-1-value')"" style=""margin-left:32px;"">three-black-1</a></td>
-                                                       </tr>
-                                               </table></td>
-                                       </tr><tr>
-                                               <td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
-                                                       <tr onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun3"">
-                                                               <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                                       <tr>
-                                                                               <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-1-value\\four-black-1-value')"" style=""margin-left:48px;"">four-black-1</a></td>
-                                                                       </tr>
-                                                               </table></td>
-                                                       </tr><tr onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun4"">
-                                                               <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                                       <tr>
-                                                                               <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-1-value\\four-black-2-value')"" style=""margin-left:48px;"">four-black-2</a></td>
-                                                                       </tr>
-                                                               </table></td>
-                                                       </tr>
-                                               </table></td>
-                                       </tr><tr onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun5"">
-                                               <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                       <tr>
-                                                               <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-2-value')"" style=""margin-left:32px;"">three-black-2</a></td>
-                                                       </tr>
-                                               </table></td>
-                                       </tr><tr>
-                                               <td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
-                                                       <tr onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun6"">
-                                                               <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                                       <tr>
-                                                                               <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-2-value\\four-black-3-value')"" style=""margin-left:48px;"">four-black-3</a></td>
-                                                                       </tr>
-                                                               </table></td>
-                                                       </tr><tr onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun7"">
-                                                               <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                                       <tr>
-                                                                               <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-2-value\\four-black-4-value')"" style=""margin-left:48px;"">four-black-4</a></td>
-                                                                       </tr>
-                                                               </table></td>
-                                                       </tr>
-                                               </table></td>
-                                       </tr>
-                               </table></td>
-                       </tr><tr onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun8"">
-                               <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                       <tr>
-                                               <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value')"" style=""margin-left:16px;"">two-black-2</a></td>
-                                       </tr>
-                               </table></td>
-                       </tr><tr>
-                               <td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
-                                       <tr onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun9"">
-                                               <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                       <tr>
-                                                               <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-3-value')"" style=""margin-left:32px;"">three-black-3</a></td>
-                                                       </tr>
-                                               </table></td>
-                                       </tr><tr>
-                                               <td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
-                                                       <tr onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun10"">
-                                                               <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                                       <tr>
-                                                                               <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-3-value\\four-black-5-value')"" style=""margin-left:48px;"">four-black-5</a></td>
-                                                                       </tr>
-                                                               </table></td>
-                                                       </tr><tr onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun11"">
-                                                               <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                                       <tr>
-                                                                               <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-3-value\\four-black-6-value')"" style=""margin-left:48px;"">four-black-6</a></td>
-                                                                       </tr>
-                                                               </table></td>
-                                                       </tr>
-                                               </table></td>
-                                       </tr><tr onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun12"">
-                                               <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                       <tr>
-                                                               <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-4-value')"" style=""margin-left:32px;"">three-black-4</a></td>
-                                                       </tr>
-                                               </table></td>
-                                       </tr><tr>
-                                               <td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
-                                                       <tr onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun13"">
-                                                               <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                                       <tr>
-                                                                               <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-4-value\\four-black-7-value')"" style=""margin-left:48px;"">four-black-7</a></td>
-                                                                       </tr>
-                                                               </table></td>
-                                                       </tr><tr onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun14"">
-                                                               <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                                       <tr>
-                                                                               <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-4-value\\four-black-8-value')"" style=""margin-left:48px;"">four-black-8</a></td>
-                                                                       </tr>
-                                                               </table></td>
-                                                       </tr>
-                                               </table></td>
-                                       </tr>
-                               </table></td>
-                       </tr>
-               </table></td>
-       </tr>
-</table><a id=""Menu_SkipLink""></a>";
-#endif
                        #endregion
                        RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (Menu_RenderStaticItems_Vertical)).Run ();
                        RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "Menu_RenderStaticItems_Vertical");
-#if !NET_4_0 || (NET_4_0 && !DOT_NET)
+#if !DOT_NET
                        // Throws NREX on .NET 4.0, most probably because the adapter's Control is null
                        RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (Menu_RenderStaticItemsWithBaseAdapter_Vertical)).Run ();
                        RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "Menu_RenderStaticItemsWithDefaultAdapter_Vertical");
 #endif
                        #region OriginControlHtml
-#if NET_4_0
                        OriginControlHtml = "<a href=\"#Menu_SkipLink\"><img alt=\"Skip Navigation Links\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><table id=\"Menu\" class=\"Menu_2\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\r\n\t<tr>\r\n\t\t<td onmouseover=\"Menu_HoverRoot(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun0\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td style=\"white-space:nowrap;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value&#39;)\">one-black</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td><td style=\"width:3px;\"></td><td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td onmouseover=\"Menu_HoverRoot(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun1\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td style=\"white-space:nowrap;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-1-value&#39;)\" style=\"margin-left:16px;\">two-black-1</a></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td><td style=\"width:3px;\"></td><td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td onmouseover=\"Menu_HoverRoot(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun2\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-1-value\\\\three-black-1-value&#39;)\" style=\"margin-left:32px;\">three-black-1</a></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table></td><td style=\"width:3px;\"></td><td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td onmouseover=\"Menu_HoverStatic(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun3\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-1-value\\\\three-black-1-value\\\\four-black-1-value&#39;)\" style=\"margin-left:48px;\">four-black-1</a></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table></td><td style=\"width:3px;\"></td><td onmouseover=\"Menu_HoverStatic(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun4\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-1-value\\\\three-black-1-value\\\\four-black-2-value&#39;)\" style=\"margin-left:48px;\">four-black-2</a></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table></td><td style=\"width:3px;\"></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table></td><td onmouseover=\"Menu_HoverRoot(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun5\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-1-value\\\\three-black-2-value&#39;)\" style=\"margin-left:32px;\">three-black-2</a></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table></td><td style=\"width:3px;\"></td><td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td onmouseover=\"Menu_HoverStatic(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun6\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-1-value\\\\three-black-2-value\\\\four-black-3-value&#39;)\" style=\"margin-left:48px;\">four-black-3</a></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table></td><td style=\"width:3px;\"></td><td onmouseover=\"Menu_HoverStatic(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun7\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-1-value\\\\three-black-2-value\\\\four-black-4-value&#39;)\" style=\"margin-left:48px;\">four-black-4</a></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table></td><td style=\"width:3px;\"></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td><td onmouseover=\"Menu_HoverRoot(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun8\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td style=\"white-space:nowrap;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-2-value&#39;)\" style=\"margin-left:16px;\">two-black-2</a></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td><td style=\"width:3px;\"></td><td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td onmouseover=\"Menu_HoverRoot(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun9\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-2-value\\\\three-black-3-value&#39;)\" style=\"margin-left:32px;\">three-black-3</a></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table></td><td style=\"width:3px;\"></td><td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td onmouseover=\"Menu_HoverStatic(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun10\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-2-value\\\\three-black-3-value\\\\four-black-5-value&#39;)\" style=\"margin-left:48px;\">four-black-5</a></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table></td><td style=\"width:3px;\"></td><td onmouseover=\"Menu_HoverStatic(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun11\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-2-value\\\\three-black-3-value\\\\four-black-6-value&#39;)\" style=\"margin-left:48px;\">four-black-6</a></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table></td><td style=\"width:3px;\"></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table></td><td onmouseover=\"Menu_HoverRoot(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun12\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-2-value\\\\three-black-4-value&#39;)\" style=\"margin-left:32px;\">three-black-4</a></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table></td><td style=\"width:3px;\"></td><td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td onmouseover=\"Menu_HoverStatic(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun13\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-2-value\\\\three-black-4-value\\\\four-black-7-value&#39;)\" style=\"margin-left:48px;\">four-black-7</a></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table></td><td style=\"width:3px;\"></td><td onmouseover=\"Menu_HoverStatic(this)\" onmouseout=\"Menu_Unhover(this)\" onkeyup=\"Menu_Key(this)\" id=\"Menun14\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td style=\"white-space:nowrap;\"><a class=\"Menu_1\" href=\"javascript:__doPostBack(&#39;Menu&#39;,&#39;one-black-value\\\\two-black-2-value\\\\three-black-4-value\\\\four-black-8-value&#39;)\" style=\"margin-left:48px;\">four-black-8</a></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table><a id=\"Menu_SkipLink\"></a>";
-#else
-                       OriginControlHtml = @"<a href=""#Menu_SkipLink""><img alt=""Skip Navigation Links"" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><table id=""Menu"" class=""Menu_2"" cellpadding=""0"" cellspacing=""0"" border=""0"">
-       <tr>
-               <td onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun0""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                       <tr>
-                               <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value')"">one-black</a></td>
-                       </tr>
-               </table></td><td style=""width:3px;""></td><td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
-                       <tr>
-                               <td onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun1""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                       <tr>
-                                               <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value')"" style=""margin-left:16px;"">two-black-1</a></td>
-                                       </tr>
-                               </table></td><td style=""width:3px;""></td><td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
-                                       <tr>
-                                               <td onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun2""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                       <tr>
-                                                               <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-1-value')"" style=""margin-left:32px;"">three-black-1</a></td>
-                                                       </tr>
-                                               </table></td><td style=""width:3px;""></td><td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
-                                                       <tr>
-                                                               <td onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun3""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                                       <tr>
-                                                                               <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-1-value\\four-black-1-value')"" style=""margin-left:48px;"">four-black-1</a></td>
-                                                                       </tr>
-                                                               </table></td><td style=""width:3px;""></td><td onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun4""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                                       <tr>
-                                                                               <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-1-value\\four-black-2-value')"" style=""margin-left:48px;"">four-black-2</a></td>
-                                                                       </tr>
-                                                               </table></td><td style=""width:3px;""></td>
-                                                       </tr>
-                                               </table></td><td onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun5""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                       <tr>
-                                                               <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-2-value')"" style=""margin-left:32px;"">three-black-2</a></td>
-                                                       </tr>
-                                               </table></td><td style=""width:3px;""></td><td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
-                                                       <tr>
-                                                               <td onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun6""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                                       <tr>
-                                                                               <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-2-value\\four-black-3-value')"" style=""margin-left:48px;"">four-black-3</a></td>
-                                                                       </tr>
-                                                               </table></td><td style=""width:3px;""></td><td onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun7""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                                       <tr>
-                                                                               <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-2-value\\four-black-4-value')"" style=""margin-left:48px;"">four-black-4</a></td>
-                                                                       </tr>
-                                                               </table></td><td style=""width:3px;""></td>
-                                                       </tr>
-                                               </table></td>
-                                       </tr>
-                               </table></td><td onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun8""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                       <tr>
-                                               <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value')"" style=""margin-left:16px;"">two-black-2</a></td>
-                                       </tr>
-                               </table></td><td style=""width:3px;""></td><td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
-                                       <tr>
-                                               <td onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun9""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                       <tr>
-                                                               <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-3-value')"" style=""margin-left:32px;"">three-black-3</a></td>
-                                                       </tr>
-                                               </table></td><td style=""width:3px;""></td><td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
-                                                       <tr>
-                                                               <td onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun10""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                                       <tr>
-                                                                               <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-3-value\\four-black-5-value')"" style=""margin-left:48px;"">four-black-5</a></td>
-                                                                       </tr>
-                                                               </table></td><td style=""width:3px;""></td><td onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun11""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                                       <tr>
-                                                                               <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-3-value\\four-black-6-value')"" style=""margin-left:48px;"">four-black-6</a></td>
-                                                                       </tr>
-                                                               </table></td><td style=""width:3px;""></td>
-                                                       </tr>
-                                               </table></td><td onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun12""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                       <tr>
-                                                               <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-4-value')"" style=""margin-left:32px;"">three-black-4</a></td>
-                                                       </tr>
-                                               </table></td><td style=""width:3px;""></td><td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
-                                                       <tr>
-                                                               <td onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun13""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                                       <tr>
-                                                                               <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-4-value\\four-black-7-value')"" style=""margin-left:48px;"">four-black-7</a></td>
-                                                                       </tr>
-                                                               </table></td><td style=""width:3px;""></td><td onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun14""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
-                                                                       <tr>
-                                                                               <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-4-value\\four-black-8-value')"" style=""margin-left:48px;"">four-black-8</a></td>
-                                                                       </tr>
-                                                               </table></td>
-                                                       </tr>
-                                               </table></td>
-                                       </tr>
-                               </table></td>
-                       </tr>
-               </table></td>
-       </tr>
-</table><a id=""Menu_SkipLink""></a>";
-#endif
                        #endregion
                        RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (Menu_RenderStaticItems_Horizontal)).Run ();
                        RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "Menu_RenderStaticItems_Horizontal");
-#if !NET_4_0 || (NET_4_0 && !DOT_NET)
+#if !DOT_NET
                        RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (Menu_RenderStaticItemsWithBaseAdapter_Horizontal)).Run ();
                        RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "Menu_RenderStaticItemsWithBaseAdapter_Horizontal");
 #endif
                }
-#if NET_4_0
                [Test]
                [Category ("NunitWeb")]
                [Ignore ("Disabled temporarily")]
@@ -1225,7 +980,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "Menu_RenderStaticItemsWithBaseAdapter_Horizontal");
 #endif
                }
-#endif
                class MyMenuAdapter : global::System.Web.UI.WebControls.Adapters.MenuAdapter
                {
                        protected internal override void RenderItem (HtmlTextWriter writer, 
@@ -1240,9 +994,7 @@ namespace MonoTests.System.Web.UI.WebControls
 
                [Test]
                [Category ("NunitWeb")]
-#if NET_4_0
                [Category ("NotDotNet")]
-#endif
                public void Menu_RenderStaticItemsWithAdapter () 
                {
                        string RenderedPageHtml, RenderedControlHtml, OriginControlHtml;
@@ -1484,7 +1236,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        m.StaticDisplayLevels = 4;
                        AddMenuToPage (p, m);
                }
-#if NET_4_0
                public static void Menu_RenderStaticItems_Vertical_List (Page p)
                {
                        Menu m = CreateMenuForRenderTests (null, false);
@@ -1503,7 +1254,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        m.RenderingMode = MenuRenderingMode.List;
                        AddMenuToPage (p, m);
                }
-#endif
                public static void Menu_RenderStaticItemsWithBaseAdapter_Vertical (Page p) {
                        Menu m = CreateMenuForRenderTests (new MyWebControl.Adapters.MenuAdapter());
                        m.StaticDisplayLevels = 4;
@@ -1560,10 +1310,8 @@ namespace MonoTests.System.Web.UI.WebControls
                static Menu CreateMenuForRenderTests (MyWebControl.Adapters.MenuAdapter adapter, bool compatibilityRendering) 
                {
                        Menu menu = new MyMenu (adapter);
-#if NET_4_0
                        if (compatibilityRendering)
                                menu.RenderingCompatibility = new Version (3, 5);
-#endif
                        menu.ID = "Menu";
                        MenuItem R, N1, N2, SN1, SN2, SN3, SN4;
                        R = new MenuItem ("one-black", "one-black-value");
@@ -1728,17 +1476,13 @@ namespace MonoTests.System.Web.UI.WebControls
                }
                [Test]
                [Category ("NunitWeb")]
-#if NET_4_0 && !DOT_NET
+#if !DOT_NET
                [Ignore ("Temporarily ignored on Mono until the Menu control is updated for 4.0")]
 #endif
                public void MenuClass ()
                {
                        string res = new WebTest ("menuclass.aspx").Run ();
-#if NET_4_0
                        string menua_pattern="<div[^>]*class=\"[^\"]*menua[^\"]*\"[^>]*>";
-#else
-                       string menua_pattern="<table[^>]*class=\"[^\"]*menua[^\"]*\"[^>]*>";
-#endif
                        Assert.IsTrue (Regex.IsMatch (res, ".*"+menua_pattern+".*",
                                RegexOptions.IgnoreCase|RegexOptions.Singleline),
                                "check that <table class=\"menua\"> is found");
@@ -1771,11 +1515,9 @@ namespace MonoTests.System.Web.UI.WebControls
 
                public static void Menu_SetTableMode (Page p)
                {
-#if NET_4_0
                        Menu m = p.Form.FindControl ("Menu1") as Menu;
                        Assert.IsNotNull (m, "Menu present");
                        m.RenderingMode = MenuRenderingMode.Table;
-#endif
                }
                
                public static void _MenuItemsPost (Page p)
@@ -2014,7 +1756,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        item.Text = null;
                        Assert.AreEqual ("VVV", item.Text, "MenuItem_TextValue2#3");
                }
-#if NET_4_0
                [Test]
                public void Menu_RenderingMode ()
                {
@@ -2041,6 +1782,5 @@ namespace MonoTests.System.Web.UI.WebControls
                                m.RenderingMode = (MenuRenderingMode) (maxValue + 1);
                        }, "#A2-2");
                }
-#endif
        }
 }
index 05fa013c7af968fb7f1f34cc2a981356b7fb3595..9f0d0ea297249bc4f134ac76004fcd09a9e4a38a 100644 (file)
@@ -422,11 +422,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        string html = new WebTest (PageInvoker.CreateOnLoad (
                                new PageDelegate (EnablePaging))).Run ();
                        string newHtml = HtmlDiff.GetControlFromPageHtml (html);
-#if NET_4_0
                        string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">Name</th><th scope=\"col\">Number</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number0</td><td>0</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number1</td><td>1</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number2</td><td>2</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number3</td><td>3</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number4</td><td>4</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Page$3&#39;)\">3</a></td><td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Page$4&#39;)\">4</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">Name</th><th scope=\"col\">Number</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number0</td><td>0</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number1</td><td>1</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number2</td><td>2</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number3</td><td>3</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number4</td><td>4</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('ctl01','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('ctl01','Page$3')\">3</a></td><td><a href=\"javascript:__doPostBack('ctl01','Page$4')\">4</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        HtmlDiff.AssertAreEqual (origHtml, newHtml, "EnablePaging");
                }
 
index e6f461ffb818bccec85b19e771c5a80c06ff2fbd..7ae1839e3af5a701cb9206d0bc94d13afdd70d2f 100644 (file)
@@ -504,11 +504,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (select));
                        string html = t.Run ();
-#if NET_4_0
                        string origin = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"Grid\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">ID</th><th scope=\"col\">FName</th><th scope=\"col\">LName</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td>1001</td><td>Mahesh</td><td>Chand</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string origin = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"Grid\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">ID</th><th scope=\"col\">FName</th><th scope=\"col\">LName</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td>1001</td><td>Mahesh</td><td>Chand</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (html);
                        HtmlDiff.AssertAreEqual (origin, renderedHtml, "ObjectDataSourceViewSelect");
                }
@@ -552,11 +548,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        // Note : ObjectDataSource will return page counter 5 hard coded
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (selectcount));
                        string html = t.Run ();
-#if NET_4_0
                        string origin = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"Grid\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">ID</th><th scope=\"col\">FName</th><th scope=\"col\">LName</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td>1001</td><td>Mahesh</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"3\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;Grid&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;Grid&#39;,&#39;Page$3&#39;)\">3</a></td><td><a href=\"javascript:__doPostBack(&#39;Grid&#39;,&#39;Page$4&#39;)\">4</a></td><td><a href=\"javascript:__doPostBack(&#39;Grid&#39;,&#39;Page$5&#39;)\">5</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string origin = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"Grid\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">ID</th><th scope=\"col\">FName</th><th scope=\"col\">LName</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td>1001</td><td>Mahesh</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"3\"><table border=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('Grid','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('Grid','Page$3')\">3</a></td><td><a href=\"javascript:__doPostBack('Grid','Page$4')\">4</a></td><td><a href=\"javascript:__doPostBack('Grid','Page$5')\">5</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (html);
                        HtmlDiff.AssertAreEqual (origin, renderedHtml, "ObjectDataSourceViewSelectCount");
                }
@@ -923,9 +915,7 @@ namespace MonoTests.System.Web.UI.WebControls
                                evaluateCount = 0;
                        }
 
-#if NET_4_0
                        internal
-#endif
                        protected override object Evaluate (HttpContext context, Control control) 
                        {
                                evaluateCount++;
index c78edd26fbd3ab9137ae52c69506eeb8a622abea..75fd9a334b889ec505883783f1222d035e9d55b6 100644 (file)
@@ -180,11 +180,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                {
                        string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (Render_Load)).Run ();
                        string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
-#if NET_4_0
                        string OriginControlHtml = "<table id=\"ctl01\">\r\n\t<tr>\r\n\t\t<td><input id=\"ctl01_0\" type=\"radio\" name=\"ctl01\" value=\"value1\" /><label for=\"ctl01_0\">text2</label></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string OriginControlHtml = "<table id=\"ctl01\" border=\"0\">\r\n\t<tr>\r\n\t\t<td><input id=\"ctl01_0\" type=\"radio\" name=\"ctl01\" value=\"value1\" /><label for=\"ctl01_0\">text2</label></td>\r\n\t</tr>\r\n</table>";
-#endif
                        HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "Render");
                }
 
index 89ac879c342baa7a97974db1e0b8727b06461a61..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
-#if !NET_4_0
-
-// THIS IS AUTOGENERATED DO NOT EDIT
-//
-// Authors:
-//    Ben Maurer (bmaurer@novell.com)
-//
-// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections;
-using System.ComponentModel;
-using System.Drawing;
-using System.IO;
-using System.Web;
-using System.Web.UI;
-using System.Web.UI.WebControls;
-using MonoTests.stand_alone.WebHarness;
-
-
-using NUnit.Framework;
-namespace MonoTests.System.Web.UI.WebControls {
-[TestFixture]
-public class RepeatInfo_Autogen {
-       public class RepeatInfoUser : IRepeatInfoUser {
-
-               private bool footer;
-               private bool header;
-               private bool separators;
-               private int count;
-               private int counter;
-
-
-               public RepeatInfoUser (bool header, bool footer, bool separators, int count)
-               {
-                       this.footer = footer;
-                       this.header = header;
-                       this.separators = separators;
-                       this.count = count;
-               }
-
-               static HtmlTextWriter GetWriter ()
-               {
-                       StringWriter sw = new StringWriter ();
-                       sw.NewLine = "\n";
-                       return new HtmlTextWriter (sw);
-               }
-
-               public static string DoTest (int cols, int cnt, RepeatDirection d, RepeatLayout l, bool OuterTableImplied, bool hdr, bool ftr, bool sep)
-               {
-                       HtmlTextWriter htw = GetWriter ();
-                       RepeatInfo ri = new RepeatInfo ();
-                       ri.RepeatColumns = cols;
-                       ri.RepeatDirection = d;
-                       ri.RepeatLayout = l;
-                       ri.OuterTableImplied = OuterTableImplied;
-                       Style s = new Style ();
-                       if (cols != 3)
-                               s.CssClass = "mainstyle";
-
-                       ri.RenderRepeater (htw, new RepeatInfoUser (hdr, ftr, sep, cnt), s, new DataList ());
-                       return htw.InnerWriter.ToString ();
-               }
-
-
-               public bool HasFooter {
-                       get { return footer; }
-               }
-
-               public bool HasHeader {
-                       get { return header; }
-               }
-               
-               public bool HasSeparators {
-                       get { return separators; }
-               }
-
-               public int RepeatedItemCount {
-                       get { return count; }
-               }
-
-               public Style GetItemStyle (ListItemType itemType, int repeatIndex)
-               {
-                       Style s = new Style ();
-                       s.CssClass = String.Format ("{0}{1}", itemType, repeatIndex);
-                       return s;
-               }
-
-               public void RenderItem (ListItemType itemType, int repeatIndex, RepeatInfo repeatInfo, HtmlTextWriter writer)
-               {
-                       writer.Write ("({0},{1},{2})", counter++, itemType, repeatIndex);
-               }
-       }
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""0"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td colspan=""0"" class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-        
-        HtmlDiff.AssertAreEqual(exp, v, "#0");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td></td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(2,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#1");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td></td>
-       </tr><tr>
-               <td colspan=""4"" class=""Footer-1"">(4,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#2");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""10"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td></td>
-       </tr><tr>
-               <td colspan=""10"" class=""Footer-1"">(10,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#3");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#4");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(9,Item,4)</td><td></td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(10,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#5");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td></td>
-       </tr><tr>
-               <td colspan=""4"" class=""Footer-1"">(8,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#6");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(13,Item,6)</td><td></td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""4"" class=""Footer-1"">(14,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#7");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(13,Item,6)</td><td class=""Separator6"">(14,Separator,6)</td><td class=""Item7"">(15,Item,7)</td><td class=""Separator7"">(16,Separator,7)</td><td class=""Item8"">(17,Item,8)</td><td></td>
-       </tr><tr>
-               <td colspan=""6"" class=""Footer-1"">(18,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#8");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(13,Item,6)</td><td></td><td></td><td></td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""6"" class=""Footer-1"">(14,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#9");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#10");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#11");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#12");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)(9,Item,4)(10,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#13");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#14");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)(9,Item,4)(10,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#15");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,2)(4,Separator,2)(5,Item,1)(6,Separator,1)(7,Item,3)(8,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#16");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,4)(4,Separator,4)(5,Item,1)(6,Separator,1)(7,Item,5)(8,Separator,5)(9,Item,2)(10,Separator,2)(11,Item,6)(12,Item,3)(13,Separator,3)(14,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#17");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,6)(6,Separator,6)(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,7)(12,Separator,7)(13,Item,2)(14,Separator,2)(15,Item,5)(16,Separator,5)(17,Item,8)(18,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#18");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_tbl_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,5)(6,Separator,5)(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,6)(12,Item,2)(13,Separator,2)(14,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#19");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#20");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#21");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#22");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)(9,Item,4)(10,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#23");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#24");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Separator,0)<br />(3,Item,1)(4,Separator,1)<br />(5,Item,2)(6,Separator,2)<br />(7,Item,3)(8,Separator,3)<br />(9,Item,4)<br />(10,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#25");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)<br />(5,Item,2)(6,Separator,2)(7,Item,3)<br />(8,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#26");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)<br />(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)<br />(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br />(13,Item,6)<br />(14,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#27");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)<br />(7,Item,3)(8,Separator,3)(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br />(13,Item,6)(14,Separator,6)(15,Item,7)(16,Separator,7)(17,Item,8)<br />(18,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#28");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)<br />(7,Item,3)(8,Separator,3)(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br />(13,Item,6)<br />(14,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#29");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#30");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#31");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#32");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)(9,Item,4)(10,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#33");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#34");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)(9,Item,4)(10,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#35");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,2)(4,Separator,2)(5,Item,1)(6,Separator,1)(7,Item,3)(8,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#36");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,4)(4,Separator,4)(5,Item,1)(6,Separator,1)(7,Item,5)(8,Separator,5)(9,Item,2)(10,Separator,2)(11,Item,6)(12,Item,3)(13,Separator,3)(14,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#37");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,6)(6,Separator,6)(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,7)(12,Separator,7)(13,Item,2)(14,Separator,2)(15,Item,5)(16,Separator,5)(17,Item,8)(18,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#38");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_flow_otrtblimp_hdr_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,5)(6,Separator,5)(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,6)(12,Item,2)(13,Separator,2)(14,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#39");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""0"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td colspan=""0"" class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#40");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td></td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(2,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#41");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td></td>
-       </tr><tr>
-               <td colspan=""4"" class=""Footer-1"">(4,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#42");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""10"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td></td>
-       </tr><tr>
-               <td colspan=""10"" class=""Footer-1"">(10,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#43");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#44");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(9,Item,4)</td><td></td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(10,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#45");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td></td>
-       </tr><tr>
-               <td colspan=""4"" class=""Footer-1"">(8,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#46");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(13,Item,6)</td><td></td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""4"" class=""Footer-1"">(14,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#47");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(13,Item,6)</td><td class=""Separator6"">(14,Separator,6)</td><td class=""Item7"">(15,Item,7)</td><td class=""Separator7"">(16,Separator,7)</td><td class=""Item8"">(17,Item,8)</td><td></td>
-       </tr><tr>
-               <td colspan=""6"" class=""Footer-1"">(18,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#48");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(13,Item,6)</td><td></td><td></td><td></td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""6"" class=""Footer-1"">(14,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#49");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#50");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(2,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#51");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Separator0"">(2,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(4,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#52");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Separator0"">(2,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td>
-       </tr><tr>
-               <td class=""Separator1"">(4,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td>
-       </tr><tr>
-               <td class=""Separator2"">(6,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td>
-       </tr><tr>
-               <td class=""Separator3"">(8,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(9,Item,4)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(10,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#53");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#54");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Separator0"">(2,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td>
-       </tr><tr>
-               <td class=""Separator1"">(4,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td>
-       </tr><tr>
-               <td class=""Separator2"">(6,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td>
-       </tr><tr>
-               <td class=""Separator3"">(8,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(9,Item,4)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(10,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#55");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item2"">(3,Item,2)</td><td class=""Separator2"">(4,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item1"">(5,Item,1)</td><td class=""Separator1"">(6,Separator,1)</td><td class=""Item3"">(7,Item,3)</td><td></td>
-       </tr><tr>
-               <td colspan=""4"" class=""Footer-1"">(8,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#56");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item4"">(3,Item,4)</td><td class=""Separator4"">(4,Separator,4)</td>
-       </tr><tr>
-               <td class=""Item1"">(5,Item,1)</td><td class=""Separator1"">(6,Separator,1)</td><td class=""Item5"">(7,Item,5)</td><td class=""Separator5"">(8,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item2"">(9,Item,2)</td><td class=""Separator2"">(10,Separator,2)</td><td class=""Item6"">(11,Item,6)</td><td></td>
-       </tr><tr>
-               <td class=""Item3"">(12,Item,3)</td><td class=""Separator3"">(13,Separator,3)</td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""4"" class=""Footer-1"">(14,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#57");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item3"">(3,Item,3)</td><td class=""Separator3"">(4,Separator,3)</td><td class=""Item6"">(5,Item,6)</td><td class=""Separator6"">(6,Separator,6)</td>
-       </tr><tr>
-               <td class=""Item1"">(7,Item,1)</td><td class=""Separator1"">(8,Separator,1)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item7"">(11,Item,7)</td><td class=""Separator7"">(12,Separator,7)</td>
-       </tr><tr>
-               <td class=""Item2"">(13,Item,2)</td><td class=""Separator2"">(14,Separator,2)</td><td class=""Item5"">(15,Item,5)</td><td class=""Separator5"">(16,Separator,5)</td><td class=""Item8"">(17,Item,8)</td><td></td>
-       </tr><tr>
-               <td colspan=""6"" class=""Footer-1"">(18,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#58");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_tbl_hdr_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item3"">(3,Item,3)</td><td class=""Separator3"">(4,Separator,3)</td><td class=""Item5"">(5,Item,5)</td><td class=""Separator5"">(6,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item1"">(7,Item,1)</td><td class=""Separator1"">(8,Separator,1)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item6"">(11,Item,6)</td><td></td>
-       </tr><tr>
-               <td class=""Item2"">(12,Item,2)</td><td class=""Separator2"">(13,Separator,2)</td><td></td><td></td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""6"" class=""Footer-1"">(14,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#59");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_flow_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#60");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_flow_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#61");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_flow_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#62");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_flow_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)(9,Item,4)(10,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#63");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_flow_hdr_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#64");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_flow_hdr_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Separator,0)<br />(3,Item,1)(4,Separator,1)<br />(5,Item,2)(6,Separator,2)<br />(7,Item,3)(8,Separator,3)<br />(9,Item,4)<br />(10,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#65");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_flow_hdr_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)<br />(5,Item,2)(6,Separator,2)(7,Item,3)<br />(8,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#66");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_flow_hdr_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)<br />(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)<br />(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br />(13,Item,6)<br />(14,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#67");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_flow_hdr_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)<br />(7,Item,3)(8,Separator,3)(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br />(13,Item,6)(14,Separator,6)(15,Item,7)(16,Separator,7)(17,Item,8)<br />(18,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#68");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_flow_hdr_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)<br />(7,Item,3)(8,Separator,3)(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br />(13,Item,6)<br />(14,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#69");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_flow_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#70");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_flow_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#71");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_flow_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Separator,0)<br />(3,Item,1)<br />(4,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#72");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_flow_hdr_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Separator,0)<br />(3,Item,1)<br />(4,Separator,1)<br />(5,Item,2)<br />(6,Separator,2)<br />(7,Item,3)<br />(8,Separator,3)<br />(9,Item,4)<br />(10,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#73");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_flow_hdr_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#74");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_flow_hdr_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Separator,0)<br />(3,Item,1)<br />(4,Separator,1)<br />(5,Item,2)<br />(6,Separator,2)<br />(7,Item,3)<br />(8,Separator,3)<br />(9,Item,4)<br />(10,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#75");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_flow_hdr_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,2)(4,Separator,2)<br />(5,Item,1)(6,Separator,1)(7,Item,3)<br />(8,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#76");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_flow_hdr_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,4)(4,Separator,4)<br />(5,Item,1)(6,Separator,1)(7,Item,5)(8,Separator,5)<br />(9,Item,2)(10,Separator,2)(11,Item,6)<br />(12,Item,3)(13,Separator,3)<br />(14,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#77");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_flow_hdr_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,6)(6,Separator,6)<br />(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,7)(12,Separator,7)<br />(13,Item,2)(14,Separator,2)(15,Item,5)(16,Separator,5)(17,Item,8)<br />(18,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#78");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_flow_hdr_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, true);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,5)(6,Separator,5)<br />(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,6)<br />(12,Item,2)(13,Separator,2)<br />(14,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#79");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""0"" class=""Footer-1"">(0,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#80");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td></td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#81");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td></td>
-       </tr><tr>
-               <td colspan=""4"" class=""Footer-1"">(3,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#82");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td></td>
-       </tr><tr>
-               <td colspan=""10"" class=""Footer-1"">(9,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#83");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Footer-1"">(0,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#84");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(8,Item,4)</td><td></td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(9,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#85");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td></td>
-       </tr><tr>
-               <td colspan=""4"" class=""Footer-1"">(7,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#86");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(12,Item,6)</td><td></td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""4"" class=""Footer-1"">(13,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#87");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(12,Item,6)</td><td class=""Separator6"">(13,Separator,6)</td><td class=""Item7"">(14,Item,7)</td><td class=""Separator7"">(15,Separator,7)</td><td class=""Item8"">(16,Item,8)</td><td></td>
-       </tr><tr>
-               <td colspan=""6"" class=""Footer-1"">(17,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#88");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(12,Item,6)</td><td></td><td></td><td></td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""6"" class=""Footer-1"">(13,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#89");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
-               string exp = @"(0,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#90");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
-               string exp = @"(0,Item,0)(1,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#91");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,1)(3,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#92");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)(8,Item,4)(9,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#93");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
-               string exp = @"(0,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#94");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)(8,Item,4)(9,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#95");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,2)(3,Separator,2)(4,Item,1)(5,Separator,1)(6,Item,3)(7,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#96");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,4)(3,Separator,4)(4,Item,1)(5,Separator,1)(6,Item,5)(7,Separator,5)(8,Item,2)(9,Separator,2)(10,Item,6)(11,Item,3)(12,Separator,3)(13,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#97");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,6)(5,Separator,6)(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,7)(11,Separator,7)(12,Item,2)(13,Separator,2)(14,Item,5)(15,Separator,5)(16,Item,8)(17,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#98");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_tbl_otrtblimp_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,5)(5,Separator,5)(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,6)(11,Item,2)(12,Separator,2)(13,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#99");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#100");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#101");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#102");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)(8,Item,4)(9,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#103");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#104");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)<br />(2,Item,1)(3,Separator,1)<br />(4,Item,2)(5,Separator,2)<br />(6,Item,3)(7,Separator,3)<br />(8,Item,4)<br />(9,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#105");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)<br />(4,Item,2)(5,Separator,2)(6,Item,3)<br />(7,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#106");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)<br />(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)<br />(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br />(12,Item,6)<br />(13,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#107");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)<br />(6,Item,3)(7,Separator,3)(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br />(12,Item,6)(13,Separator,6)(14,Item,7)(15,Separator,7)(16,Item,8)<br />(17,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#108");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)<br />(6,Item,3)(7,Separator,3)(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br />(12,Item,6)<br />(13,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#109");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"(0,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#110");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"(0,Item,0)(1,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#111");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,1)(3,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#112");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)(8,Item,4)(9,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#113");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"(0,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#114");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)(8,Item,4)(9,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#115");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,2)(3,Separator,2)(4,Item,1)(5,Separator,1)(6,Item,3)(7,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#116");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,4)(3,Separator,4)(4,Item,1)(5,Separator,1)(6,Item,5)(7,Separator,5)(8,Item,2)(9,Separator,2)(10,Item,6)(11,Item,3)(12,Separator,3)(13,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#117");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,6)(5,Separator,6)(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,7)(11,Separator,7)(12,Item,2)(13,Separator,2)(14,Item,5)(15,Separator,5)(16,Item,8)(17,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#118");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_flow_otrtblimp_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,5)(5,Separator,5)(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,6)(11,Item,2)(12,Separator,2)(13,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#119");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_tbl_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""0"" class=""Footer-1"">(0,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#120");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_tbl_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td></td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#121");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_tbl_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td></td>
-       </tr><tr>
-               <td colspan=""4"" class=""Footer-1"">(3,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#122");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_tbl_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td></td>
-       </tr><tr>
-               <td colspan=""10"" class=""Footer-1"">(9,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#123");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_tbl_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Footer-1"">(0,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#124");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_tbl_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(8,Item,4)</td><td></td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(9,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#125");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_tbl_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td></td>
-       </tr><tr>
-               <td colspan=""4"" class=""Footer-1"">(7,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#126");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_tbl_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(12,Item,6)</td><td></td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""4"" class=""Footer-1"">(13,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#127");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_tbl_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(12,Item,6)</td><td class=""Separator6"">(13,Separator,6)</td><td class=""Item7"">(14,Item,7)</td><td class=""Separator7"">(15,Separator,7)</td><td class=""Item8"">(16,Item,8)</td><td></td>
-       </tr><tr>
-               <td colspan=""6"" class=""Footer-1"">(17,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#128");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_tbl_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(12,Item,6)</td><td></td><td></td><td></td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""6"" class=""Footer-1"">(13,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#129");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_tbl_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Footer-1"">(0,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#130");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_tbl_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#131");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_tbl_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Separator0"">(1,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(3,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#132");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_tbl_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Separator0"">(1,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Separator1"">(3,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td>
-       </tr><tr>
-               <td class=""Separator2"">(5,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td>
-       </tr><tr>
-               <td class=""Separator3"">(7,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(8,Item,4)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(9,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#133");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_tbl_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Footer-1"">(0,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#134");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_tbl_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Separator0"">(1,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Separator1"">(3,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td>
-       </tr><tr>
-               <td class=""Separator2"">(5,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td>
-       </tr><tr>
-               <td class=""Separator3"">(7,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(8,Item,4)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(9,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#135");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_tbl_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item2"">(2,Item,2)</td><td class=""Separator2"">(3,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item1"">(4,Item,1)</td><td class=""Separator1"">(5,Separator,1)</td><td class=""Item3"">(6,Item,3)</td><td></td>
-       </tr><tr>
-               <td colspan=""4"" class=""Footer-1"">(7,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#136");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_tbl_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item4"">(2,Item,4)</td><td class=""Separator4"">(3,Separator,4)</td>
-       </tr><tr>
-               <td class=""Item1"">(4,Item,1)</td><td class=""Separator1"">(5,Separator,1)</td><td class=""Item5"">(6,Item,5)</td><td class=""Separator5"">(7,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item2"">(8,Item,2)</td><td class=""Separator2"">(9,Separator,2)</td><td class=""Item6"">(10,Item,6)</td><td></td>
-       </tr><tr>
-               <td class=""Item3"">(11,Item,3)</td><td class=""Separator3"">(12,Separator,3)</td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""4"" class=""Footer-1"">(13,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#137");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_tbl_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item3"">(2,Item,3)</td><td class=""Separator3"">(3,Separator,3)</td><td class=""Item6"">(4,Item,6)</td><td class=""Separator6"">(5,Separator,6)</td>
-       </tr><tr>
-               <td class=""Item1"">(6,Item,1)</td><td class=""Separator1"">(7,Separator,1)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item7"">(10,Item,7)</td><td class=""Separator7"">(11,Separator,7)</td>
-       </tr><tr>
-               <td class=""Item2"">(12,Item,2)</td><td class=""Separator2"">(13,Separator,2)</td><td class=""Item5"">(14,Item,5)</td><td class=""Separator5"">(15,Separator,5)</td><td class=""Item8"">(16,Item,8)</td><td></td>
-       </tr><tr>
-               <td colspan=""6"" class=""Footer-1"">(17,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#138");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_tbl_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item3"">(2,Item,3)</td><td class=""Separator3"">(3,Separator,3)</td><td class=""Item5"">(4,Item,5)</td><td class=""Separator5"">(5,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item1"">(6,Item,1)</td><td class=""Separator1"">(7,Separator,1)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item6"">(10,Item,6)</td><td></td>
-       </tr><tr>
-               <td class=""Item2"">(11,Item,2)</td><td class=""Separator2"">(12,Separator,2)</td><td></td><td></td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""6"" class=""Footer-1"">(13,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#139");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_flow_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#140");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_flow_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#141");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_flow_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#142");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_flow_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)(8,Item,4)(9,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#143");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_flow_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#144");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_flow_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)<br />(2,Item,1)(3,Separator,1)<br />(4,Item,2)(5,Separator,2)<br />(6,Item,3)(7,Separator,3)<br />(8,Item,4)<br />(9,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#145");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_flow_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)<br />(4,Item,2)(5,Separator,2)(6,Item,3)<br />(7,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#146");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_flow_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)<br />(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)<br />(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br />(12,Item,6)<br />(13,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#147");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_flow_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)<br />(6,Item,3)(7,Separator,3)(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br />(12,Item,6)(13,Separator,6)(14,Item,7)(15,Separator,7)(16,Item,8)<br />(17,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#148");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_flow_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)<br />(6,Item,3)(7,Separator,3)(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br />(12,Item,6)<br />(13,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#149");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_flow_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#150");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_flow_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#151");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_flow_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Separator,0)<br />(2,Item,1)<br />(3,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#152");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_flow_ftr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Separator,0)<br />(2,Item,1)<br />(3,Separator,1)<br />(4,Item,2)<br />(5,Separator,2)<br />(6,Item,3)<br />(7,Separator,3)<br />(8,Item,4)<br />(9,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#153");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_flow_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#154");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_flow_ftr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Separator,0)<br />(2,Item,1)<br />(3,Separator,1)<br />(4,Item,2)<br />(5,Separator,2)<br />(6,Item,3)<br />(7,Separator,3)<br />(8,Item,4)<br />(9,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#155");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_flow_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,2)(3,Separator,2)<br />(4,Item,1)(5,Separator,1)(6,Item,3)<br />(7,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#156");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_flow_ftr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,4)(3,Separator,4)<br />(4,Item,1)(5,Separator,1)(6,Item,5)(7,Separator,5)<br />(8,Item,2)(9,Separator,2)(10,Item,6)<br />(11,Item,3)(12,Separator,3)<br />(13,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#157");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_flow_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,6)(5,Separator,6)<br />(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,7)(11,Separator,7)<br />(12,Item,2)(13,Separator,2)(14,Item,5)(15,Separator,5)(16,Item,8)<br />(17,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#158");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_flow_ftr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, true);
-               string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,5)(5,Separator,5)<br />(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,6)<br />(11,Item,2)(12,Separator,2)<br />(13,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#159");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""0"" class=""Header-1"">(0,Header,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#160");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#161");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#162");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""10"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#163");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#164");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(9,Item,4)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#165");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#166");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(13,Item,6)</td><td></td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#167");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(13,Item,6)</td><td class=""Separator6"">(14,Separator,6)</td><td class=""Item7"">(15,Item,7)</td><td class=""Separator7"">(16,Separator,7)</td><td class=""Item8"">(17,Item,8)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#168");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(13,Item,6)</td><td></td><td></td><td></td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#169");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
-               string exp = @"(0,Header,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#170");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
-               string exp = @"(0,Header,-1)(1,Item,0)";
-               HtmlDiff.AssertAreEqual (exp, v, "#171");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#172");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)(9,Item,4)";
-               HtmlDiff.AssertAreEqual (exp, v, "#173");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
-               string exp = @"(0,Header,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#174");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)(9,Item,4)";
-               HtmlDiff.AssertAreEqual (exp, v, "#175");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,2)(4,Separator,2)(5,Item,1)(6,Separator,1)(7,Item,3)";
-               HtmlDiff.AssertAreEqual (exp, v, "#176");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,4)(4,Separator,4)(5,Item,1)(6,Separator,1)(7,Item,5)(8,Separator,5)(9,Item,2)(10,Separator,2)(11,Item,6)(12,Item,3)(13,Separator,3)";
-               HtmlDiff.AssertAreEqual (exp, v, "#177");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,6)(6,Separator,6)(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,7)(12,Separator,7)(13,Item,2)(14,Separator,2)(15,Item,5)(16,Separator,5)(17,Item,8)";
-               HtmlDiff.AssertAreEqual (exp, v, "#178");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_tbl_otrtblimp_hdr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,5)(6,Separator,5)(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,6)(12,Item,2)(13,Separator,2)";
-               HtmlDiff.AssertAreEqual (exp, v, "#179");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#180");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#181");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#182");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)(9,Item,4)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#183");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#184");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Separator,0)<br />(3,Item,1)(4,Separator,1)<br />(5,Item,2)(6,Separator,2)<br />(7,Item,3)(8,Separator,3)<br />(9,Item,4)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#185");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)<br />(5,Item,2)(6,Separator,2)(7,Item,3)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#186");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)<br />(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)<br />(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br />(13,Item,6)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#187");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)<br />(7,Item,3)(8,Separator,3)(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br />(13,Item,6)(14,Separator,6)(15,Item,7)(16,Separator,7)(17,Item,8)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#188");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)<br />(7,Item,3)(8,Separator,3)(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br />(13,Item,6)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#189");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"(0,Header,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#190");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"(0,Header,-1)(1,Item,0)";
-               HtmlDiff.AssertAreEqual (exp, v, "#191");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#192");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)(9,Item,4)";
-               HtmlDiff.AssertAreEqual (exp, v, "#193");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"(0,Header,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#194");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)(9,Item,4)";
-               HtmlDiff.AssertAreEqual (exp, v, "#195");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,2)(4,Separator,2)(5,Item,1)(6,Separator,1)(7,Item,3)";
-               HtmlDiff.AssertAreEqual (exp, v, "#196");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,4)(4,Separator,4)(5,Item,1)(6,Separator,1)(7,Item,5)(8,Separator,5)(9,Item,2)(10,Separator,2)(11,Item,6)(12,Item,3)(13,Separator,3)";
-               HtmlDiff.AssertAreEqual (exp, v, "#197");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,6)(6,Separator,6)(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,7)(12,Separator,7)(13,Item,2)(14,Separator,2)(15,Item,5)(16,Separator,5)(17,Item,8)";
-               HtmlDiff.AssertAreEqual (exp, v, "#198");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_flow_otrtblimp_hdr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, true);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,5)(6,Separator,5)(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,6)(12,Item,2)(13,Separator,2)";
-               HtmlDiff.AssertAreEqual (exp, v, "#199");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_tbl_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""0"" class=""Header-1"">(0,Header,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#200");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_tbl_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#201");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_tbl_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#202");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_tbl_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""10"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#203");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_tbl_hdr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#204");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_tbl_hdr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(9,Item,4)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#205");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_tbl_hdr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#206");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_tbl_hdr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td><td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(13,Item,6)</td><td></td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#207");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_tbl_hdr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(13,Item,6)</td><td class=""Separator6"">(14,Separator,6)</td><td class=""Item7"">(15,Item,7)</td><td class=""Separator7"">(16,Separator,7)</td><td class=""Item8"">(17,Item,8)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#208");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_tbl_hdr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item1"">(3,Item,1)</td><td class=""Separator1"">(4,Separator,1)</td><td class=""Item2"">(5,Item,2)</td><td class=""Separator2"">(6,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td><td class=""Separator3"">(8,Separator,3)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item5"">(11,Item,5)</td><td class=""Separator5"">(12,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(13,Item,6)</td><td></td><td></td><td></td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#209");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_tbl_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#210");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_tbl_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#211");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_tbl_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Separator0"">(2,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#212");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_tbl_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Separator0"">(2,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td>
-       </tr><tr>
-               <td class=""Separator1"">(4,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td>
-       </tr><tr>
-               <td class=""Separator2"">(6,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td>
-       </tr><tr>
-               <td class=""Separator3"">(8,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(9,Item,4)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#213");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_tbl_hdr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#214");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_tbl_hdr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Separator0"">(2,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td>
-       </tr><tr>
-               <td class=""Separator1"">(4,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td>
-       </tr><tr>
-               <td class=""Separator2"">(6,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td>
-       </tr><tr>
-               <td class=""Separator3"">(8,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(9,Item,4)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#215");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_tbl_hdr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item2"">(3,Item,2)</td><td class=""Separator2"">(4,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item1"">(5,Item,1)</td><td class=""Separator1"">(6,Separator,1)</td><td class=""Item3"">(7,Item,3)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#216");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_tbl_hdr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""4"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item4"">(3,Item,4)</td><td class=""Separator4"">(4,Separator,4)</td>
-       </tr><tr>
-               <td class=""Item1"">(5,Item,1)</td><td class=""Separator1"">(6,Separator,1)</td><td class=""Item5"">(7,Item,5)</td><td class=""Separator5"">(8,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item2"">(9,Item,2)</td><td class=""Separator2"">(10,Separator,2)</td><td class=""Item6"">(11,Item,6)</td><td></td>
-       </tr><tr>
-               <td class=""Item3"">(12,Item,3)</td><td class=""Separator3"">(13,Separator,3)</td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#217");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_tbl_hdr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item3"">(3,Item,3)</td><td class=""Separator3"">(4,Separator,3)</td><td class=""Item6"">(5,Item,6)</td><td class=""Separator6"">(6,Separator,6)</td>
-       </tr><tr>
-               <td class=""Item1"">(7,Item,1)</td><td class=""Separator1"">(8,Separator,1)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item7"">(11,Item,7)</td><td class=""Separator7"">(12,Separator,7)</td>
-       </tr><tr>
-               <td class=""Item2"">(13,Item,2)</td><td class=""Separator2"">(14,Separator,2)</td><td class=""Item5"">(15,Item,5)</td><td class=""Separator5"">(16,Separator,5)</td><td class=""Item8"">(17,Item,8)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#218");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_tbl_hdr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""6"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Separator0"">(2,Separator,0)</td><td class=""Item3"">(3,Item,3)</td><td class=""Separator3"">(4,Separator,3)</td><td class=""Item5"">(5,Item,5)</td><td class=""Separator5"">(6,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item1"">(7,Item,1)</td><td class=""Separator1"">(8,Separator,1)</td><td class=""Item4"">(9,Item,4)</td><td class=""Separator4"">(10,Separator,4)</td><td class=""Item6"">(11,Item,6)</td><td></td>
-       </tr><tr>
-               <td class=""Item2"">(12,Item,2)</td><td class=""Separator2"">(13,Separator,2)</td><td></td><td></td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#219");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_flow_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#220");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_flow_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#221");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_flow_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#222");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_flow_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)(9,Item,4)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#223");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_flow_hdr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#224");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_flow_hdr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Separator,0)<br />(3,Item,1)(4,Separator,1)<br />(5,Item,2)(6,Separator,2)<br />(7,Item,3)(8,Separator,3)<br />(9,Item,4)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#225");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_flow_hdr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)<br />(5,Item,2)(6,Separator,2)(7,Item,3)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#226");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_flow_hdr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)<br />(5,Item,2)(6,Separator,2)(7,Item,3)(8,Separator,3)<br />(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br />(13,Item,6)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#227");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_flow_hdr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)<br />(7,Item,3)(8,Separator,3)(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br />(13,Item,6)(14,Separator,6)(15,Item,7)(16,Separator,7)(17,Item,8)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#228");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_flow_hdr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,1)(4,Separator,1)(5,Item,2)(6,Separator,2)<br />(7,Item,3)(8,Separator,3)(9,Item,4)(10,Separator,4)(11,Item,5)(12,Separator,5)<br />(13,Item,6)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#229");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_flow_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#230");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_flow_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#231");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_flow_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Separator,0)<br />(3,Item,1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#232");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_flow_hdr_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Separator,0)<br />(3,Item,1)<br />(4,Separator,1)<br />(5,Item,2)<br />(6,Separator,2)<br />(7,Item,3)<br />(8,Separator,3)<br />(9,Item,4)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#233");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_flow_hdr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#234");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_flow_hdr_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Separator,0)<br />(3,Item,1)<br />(4,Separator,1)<br />(5,Item,2)<br />(6,Separator,2)<br />(7,Item,3)<br />(8,Separator,3)<br />(9,Item,4)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#235");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_flow_hdr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,2)(4,Separator,2)<br />(5,Item,1)(6,Separator,1)(7,Item,3)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#236");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_flow_hdr_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,4)(4,Separator,4)<br />(5,Item,1)(6,Separator,1)(7,Item,5)(8,Separator,5)<br />(9,Item,2)(10,Separator,2)(11,Item,6)<br />(12,Item,3)(13,Separator,3)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#237");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_flow_hdr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,6)(6,Separator,6)<br />(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,7)(12,Separator,7)<br />(13,Item,2)(14,Separator,2)(15,Item,5)(16,Separator,5)(17,Item,8)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#238");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_flow_hdr_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, true);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Separator,0)(3,Item,3)(4,Separator,3)(5,Item,5)(6,Separator,5)<br />(7,Item,1)(8,Separator,1)(9,Item,4)(10,Separator,4)(11,Item,6)<br />(12,Item,2)(13,Separator,2)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#239");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_tbl_otrtblimp_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#240");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_tbl_otrtblimp_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#241");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_tbl_otrtblimp_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#242");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_tbl_otrtblimp_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#243");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_tbl_otrtblimp_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#244");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_tbl_otrtblimp_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(8,Item,4)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#245");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_tbl_otrtblimp_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#246");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_tbl_otrtblimp_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(12,Item,6)</td><td></td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#247");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_tbl_otrtblimp_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(12,Item,6)</td><td class=""Separator6"">(13,Separator,6)</td><td class=""Item7"">(14,Item,7)</td><td class=""Separator7"">(15,Separator,7)</td><td class=""Item8"">(16,Item,8)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#248");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_tbl_otrtblimp_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(12,Item,6)</td><td></td><td></td><td></td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#249");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_tbl_otrtblimp_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
-               string exp = @"";
-               HtmlDiff.AssertAreEqual (exp, v, "#250");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_tbl_otrtblimp_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
-               string exp = @"(0,Item,0)";
-               HtmlDiff.AssertAreEqual (exp, v, "#251");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_tbl_otrtblimp_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#252");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_tbl_otrtblimp_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)(8,Item,4)";
-               HtmlDiff.AssertAreEqual (exp, v, "#253");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_tbl_otrtblimp_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
-               string exp = @"";
-               HtmlDiff.AssertAreEqual (exp, v, "#254");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_tbl_otrtblimp_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)(8,Item,4)";
-               HtmlDiff.AssertAreEqual (exp, v, "#255");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_tbl_otrtblimp_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,2)(3,Separator,2)(4,Item,1)(5,Separator,1)(6,Item,3)";
-               HtmlDiff.AssertAreEqual (exp, v, "#256");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_tbl_otrtblimp_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,4)(3,Separator,4)(4,Item,1)(5,Separator,1)(6,Item,5)(7,Separator,5)(8,Item,2)(9,Separator,2)(10,Item,6)(11,Item,3)(12,Separator,3)";
-               HtmlDiff.AssertAreEqual (exp, v, "#257");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_tbl_otrtblimp_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,6)(5,Separator,6)(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,7)(11,Separator,7)(12,Item,2)(13,Separator,2)(14,Item,5)(15,Separator,5)(16,Item,8)";
-               HtmlDiff.AssertAreEqual (exp, v, "#258");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_tbl_otrtblimp_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,5)(5,Separator,5)(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,6)(11,Item,2)(12,Separator,2)";
-               HtmlDiff.AssertAreEqual (exp, v, "#259");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_flow_otrtblimp_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"<span class=""mainstyle""></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#260");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_flow_otrtblimp_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#261");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_flow_otrtblimp_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#262");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_flow_otrtblimp_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)(8,Item,4)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#263");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_flow_otrtblimp_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"<span class=""mainstyle""></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#264");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_flow_otrtblimp_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)<br />(2,Item,1)(3,Separator,1)<br />(4,Item,2)(5,Separator,2)<br />(6,Item,3)(7,Separator,3)<br />(8,Item,4)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#265");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_flow_otrtblimp_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)<br />(4,Item,2)(5,Separator,2)(6,Item,3)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#266");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_flow_otrtblimp_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)<br />(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)<br />(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br />(12,Item,6)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#267");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_flow_otrtblimp_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)<br />(6,Item,3)(7,Separator,3)(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br />(12,Item,6)(13,Separator,6)(14,Item,7)(15,Separator,7)(16,Item,8)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#268");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_flow_otrtblimp_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)<br />(6,Item,3)(7,Separator,3)(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br />(12,Item,6)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#269");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_flow_otrtblimp_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"";
-               HtmlDiff.AssertAreEqual (exp, v, "#270");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_flow_otrtblimp_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"(0,Item,0)";
-               HtmlDiff.AssertAreEqual (exp, v, "#271");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_flow_otrtblimp_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#272");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_flow_otrtblimp_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)(8,Item,4)";
-               HtmlDiff.AssertAreEqual (exp, v, "#273");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_flow_otrtblimp_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"";
-               HtmlDiff.AssertAreEqual (exp, v, "#274");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_flow_otrtblimp_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)(8,Item,4)";
-               HtmlDiff.AssertAreEqual (exp, v, "#275");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_flow_otrtblimp_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,2)(3,Separator,2)(4,Item,1)(5,Separator,1)(6,Item,3)";
-               HtmlDiff.AssertAreEqual (exp, v, "#276");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_flow_otrtblimp_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,4)(3,Separator,4)(4,Item,1)(5,Separator,1)(6,Item,5)(7,Separator,5)(8,Item,2)(9,Separator,2)(10,Item,6)(11,Item,3)(12,Separator,3)";
-               HtmlDiff.AssertAreEqual (exp, v, "#277");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_flow_otrtblimp_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,6)(5,Separator,6)(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,7)(11,Separator,7)(12,Item,2)(13,Separator,2)(14,Item,5)(15,Separator,5)(16,Item,8)";
-               HtmlDiff.AssertAreEqual (exp, v, "#278");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_flow_otrtblimp_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, true);
-               string exp = @"(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,5)(5,Separator,5)(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,6)(11,Item,2)(12,Separator,2)";
-               HtmlDiff.AssertAreEqual (exp, v, "#279");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_tbl_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#280");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_tbl_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#281");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_tbl_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#282");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_tbl_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#283");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_tbl_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#284");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_tbl_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(8,Item,4)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#285");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_tbl_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#286");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_tbl_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td><td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(12,Item,6)</td><td></td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#287");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_tbl_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(12,Item,6)</td><td class=""Separator6"">(13,Separator,6)</td><td class=""Item7"">(14,Item,7)</td><td class=""Separator7"">(15,Separator,7)</td><td class=""Item8"">(16,Item,8)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#288");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_tbl_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Separator1"">(3,Separator,1)</td><td class=""Item2"">(4,Item,2)</td><td class=""Separator2"">(5,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td><td class=""Separator3"">(7,Separator,3)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item5"">(10,Item,5)</td><td class=""Separator5"">(11,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(12,Item,6)</td><td></td><td></td><td></td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#289");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_tbl_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#290");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_tbl_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#291");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_tbl_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Separator0"">(1,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#292");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_tbl_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Separator0"">(1,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Separator1"">(3,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td>
-       </tr><tr>
-               <td class=""Separator2"">(5,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td>
-       </tr><tr>
-               <td class=""Separator3"">(7,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(8,Item,4)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#293");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_tbl_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#294");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_tbl_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Separator0"">(1,Separator,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Separator1"">(3,Separator,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td>
-       </tr><tr>
-               <td class=""Separator2"">(5,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td>
-       </tr><tr>
-               <td class=""Separator3"">(7,Separator,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(8,Item,4)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#295");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_tbl_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item2"">(2,Item,2)</td><td class=""Separator2"">(3,Separator,2)</td>
-       </tr><tr>
-               <td class=""Item1"">(4,Item,1)</td><td class=""Separator1"">(5,Separator,1)</td><td class=""Item3"">(6,Item,3)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#296");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_tbl_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item4"">(2,Item,4)</td><td class=""Separator4"">(3,Separator,4)</td>
-       </tr><tr>
-               <td class=""Item1"">(4,Item,1)</td><td class=""Separator1"">(5,Separator,1)</td><td class=""Item5"">(6,Item,5)</td><td class=""Separator5"">(7,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item2"">(8,Item,2)</td><td class=""Separator2"">(9,Separator,2)</td><td class=""Item6"">(10,Item,6)</td><td></td>
-       </tr><tr>
-               <td class=""Item3"">(11,Item,3)</td><td class=""Separator3"">(12,Separator,3)</td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#297");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_tbl_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item3"">(2,Item,3)</td><td class=""Separator3"">(3,Separator,3)</td><td class=""Item6"">(4,Item,6)</td><td class=""Separator6"">(5,Separator,6)</td>
-       </tr><tr>
-               <td class=""Item1"">(6,Item,1)</td><td class=""Separator1"">(7,Separator,1)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item7"">(10,Item,7)</td><td class=""Separator7"">(11,Separator,7)</td>
-       </tr><tr>
-               <td class=""Item2"">(12,Item,2)</td><td class=""Separator2"">(13,Separator,2)</td><td class=""Item5"">(14,Item,5)</td><td class=""Separator5"">(15,Separator,5)</td><td class=""Item8"">(16,Item,8)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#298");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_tbl_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, true);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Separator0"">(1,Separator,0)</td><td class=""Item3"">(2,Item,3)</td><td class=""Separator3"">(3,Separator,3)</td><td class=""Item5"">(4,Item,5)</td><td class=""Separator5"">(5,Separator,5)</td>
-       </tr><tr>
-               <td class=""Item1"">(6,Item,1)</td><td class=""Separator1"">(7,Separator,1)</td><td class=""Item4"">(8,Item,4)</td><td class=""Separator4"">(9,Separator,4)</td><td class=""Item6"">(10,Item,6)</td><td></td>
-       </tr><tr>
-               <td class=""Item2"">(11,Item,2)</td><td class=""Separator2"">(12,Separator,2)</td><td></td><td></td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#299");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_flow_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span class=""mainstyle""></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#300");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_flow_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#301");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_flow_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#302");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_flow_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)(8,Item,4)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#303");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_flow_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span class=""mainstyle""></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#304");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_flow_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)<br />(2,Item,1)(3,Separator,1)<br />(4,Item,2)(5,Separator,2)<br />(6,Item,3)(7,Separator,3)<br />(8,Item,4)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#305");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_flow_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)<br />(4,Item,2)(5,Separator,2)(6,Item,3)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#306");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_flow_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)<br />(4,Item,2)(5,Separator,2)(6,Item,3)(7,Separator,3)<br />(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br />(12,Item,6)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#307");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_flow_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)<br />(6,Item,3)(7,Separator,3)(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br />(12,Item,6)(13,Separator,6)(14,Item,7)(15,Separator,7)(16,Item,8)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#308");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_flow_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,1)(3,Separator,1)(4,Item,2)(5,Separator,2)<br />(6,Item,3)(7,Separator,3)(8,Item,4)(9,Separator,4)(10,Item,5)(11,Separator,5)<br />(12,Item,6)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#309");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_flow_sep ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span class=""mainstyle""></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#310");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_flow_sep ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#311");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_flow_sep ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Separator,0)<br />(2,Item,1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#312");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_flow_sep ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Separator,0)<br />(2,Item,1)<br />(3,Separator,1)<br />(4,Item,2)<br />(5,Separator,2)<br />(6,Item,3)<br />(7,Separator,3)<br />(8,Item,4)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#313");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_flow_sep ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span class=""mainstyle""></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#314");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_flow_sep ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Separator,0)<br />(2,Item,1)<br />(3,Separator,1)<br />(4,Item,2)<br />(5,Separator,2)<br />(6,Item,3)<br />(7,Separator,3)<br />(8,Item,4)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#315");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_flow_sep ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,2)(3,Separator,2)<br />(4,Item,1)(5,Separator,1)(6,Item,3)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#316");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_flow_sep ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Separator,0)(2,Item,4)(3,Separator,4)<br />(4,Item,1)(5,Separator,1)(6,Item,5)(7,Separator,5)<br />(8,Item,2)(9,Separator,2)(10,Item,6)<br />(11,Item,3)(12,Separator,3)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#317");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_flow_sep ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,6)(5,Separator,6)<br />(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,7)(11,Separator,7)<br />(12,Item,2)(13,Separator,2)(14,Item,5)(15,Separator,5)(16,Item,8)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#318");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_flow_sep ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : True
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, true);
-               string exp = @"<span>(0,Item,0)(1,Separator,0)(2,Item,3)(3,Separator,3)(4,Item,5)(5,Separator,5)<br />(6,Item,1)(7,Separator,1)(8,Item,4)(9,Separator,4)(10,Item,6)<br />(11,Item,2)(12,Separator,2)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#319");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""0"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td colspan=""0"" class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#320");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(2,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#321");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(3,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#322");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""5"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td>
-       </tr><tr>
-               <td colspan=""5"" class=""Footer-1"">(6,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#323");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#324");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(3,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(4,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(5,Item,4)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(6,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#325");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(5,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#326");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(7,Item,6)</td><td></td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(8,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#327");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(7,Item,6)</td><td class=""Item7"">(8,Item,7)</td><td class=""Item8"">(9,Item,8)</td>
-       </tr><tr>
-               <td colspan=""3"" class=""Footer-1"">(10,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#328");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, true, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(7,Item,6)</td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""3"" class=""Footer-1"">(8,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#329");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#330");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#331");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#332");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)(6,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#333");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#334");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)(6,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#335");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,2)(3,Item,1)(4,Item,3)(5,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#336");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,4)(3,Item,1)(4,Item,5)(5,Item,2)(6,Item,6)(7,Item,3)(8,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#337");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,3)(3,Item,6)(4,Item,1)(5,Item,4)(6,Item,7)(7,Item,2)(8,Item,5)(9,Item,8)(10,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#338");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_tbl_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,3)(3,Item,5)(4,Item,1)(5,Item,4)(6,Item,6)(7,Item,2)(8,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#339");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#340");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#341");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Item,1)(3,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#342");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)(6,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#343");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#344");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Item,1)<br />(3,Item,2)<br />(4,Item,3)<br />(5,Item,4)<br />(6,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#345");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Item,1)<br />(3,Item,2)(4,Item,3)<br />(5,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#346");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Item,1)<br />(3,Item,2)(4,Item,3)<br />(5,Item,4)(6,Item,5)<br />(7,Item,6)<br />(8,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#347");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Item,1)(3,Item,2)<br />(4,Item,3)(5,Item,4)(6,Item,5)<br />(7,Item,6)(8,Item,7)(9,Item,8)<br />(10,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#348");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Item,1)(3,Item,2)<br />(4,Item,3)(5,Item,4)(6,Item,5)<br />(7,Item,6)<br />(8,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#349");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#350");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#351");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#352");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)(6,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#353");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#354");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)(6,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#355");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,2)(3,Item,1)(4,Item,3)(5,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#356");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,4)(3,Item,1)(4,Item,5)(5,Item,2)(6,Item,6)(7,Item,3)(8,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#357");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,3)(3,Item,6)(4,Item,1)(5,Item,4)(6,Item,7)(7,Item,2)(8,Item,5)(9,Item,8)(10,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#358");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_flow_otrtblimp_hdr_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, true, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,3)(3,Item,5)(4,Item,1)(5,Item,4)(6,Item,6)(7,Item,2)(8,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#359");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_tbl_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""0"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td colspan=""0"" class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#360");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_tbl_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(2,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#361");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_tbl_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(3,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#362");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_tbl_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""5"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td>
-       </tr><tr>
-               <td colspan=""5"" class=""Footer-1"">(6,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#363");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_tbl_hdr_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#364");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_tbl_hdr_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(3,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(4,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(5,Item,4)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(6,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#365");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_tbl_hdr_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(5,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#366");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_tbl_hdr_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(7,Item,6)</td><td></td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(8,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#367");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_tbl_hdr_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(7,Item,6)</td><td class=""Item7"">(8,Item,7)</td><td class=""Item8"">(9,Item,8)</td>
-       </tr><tr>
-               <td colspan=""3"" class=""Footer-1"">(10,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#368");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_tbl_hdr_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(7,Item,6)</td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""3"" class=""Footer-1"">(8,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#369");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_tbl_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#370");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_tbl_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(2,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#371");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_tbl_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(3,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#372");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_tbl_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(3,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(4,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(5,Item,4)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(6,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#373");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_tbl_hdr_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#374");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_tbl_hdr_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(3,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(4,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(5,Item,4)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(6,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#375");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_tbl_hdr_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td><td class=""Item3"">(4,Item,3)</td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(5,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#376");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_tbl_hdr_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item4"">(2,Item,4)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td><td class=""Item5"">(4,Item,5)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td><td class=""Item6"">(6,Item,6)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td><td></td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(8,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#377");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_tbl_hdr_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item3"">(2,Item,3)</td><td class=""Item6"">(3,Item,6)</td>
-       </tr><tr>
-               <td class=""Item1"">(4,Item,1)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item7"">(6,Item,7)</td>
-       </tr><tr>
-               <td class=""Item2"">(7,Item,2)</td><td class=""Item5"">(8,Item,5)</td><td class=""Item8"">(9,Item,8)</td>
-       </tr><tr>
-               <td colspan=""3"" class=""Footer-1"">(10,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#378");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_tbl_hdr_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, true, true, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item3"">(2,Item,3)</td><td class=""Item5"">(3,Item,5)</td>
-       </tr><tr>
-               <td class=""Item1"">(4,Item,1)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item6"">(6,Item,6)</td>
-       </tr><tr>
-               <td class=""Item2"">(7,Item,2)</td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""3"" class=""Footer-1"">(8,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#379");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_flow_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#380");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_flow_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#381");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_flow_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Item,1)(3,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#382");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_flow_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)(6,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#383");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_flow_hdr_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#384");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_flow_hdr_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Item,1)<br />(3,Item,2)<br />(4,Item,3)<br />(5,Item,4)<br />(6,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#385");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_flow_hdr_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Item,1)<br />(3,Item,2)(4,Item,3)<br />(5,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#386");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_flow_hdr_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Item,1)<br />(3,Item,2)(4,Item,3)<br />(5,Item,4)(6,Item,5)<br />(7,Item,6)<br />(8,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#387");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_flow_hdr_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Item,1)(3,Item,2)<br />(4,Item,3)(5,Item,4)(6,Item,5)<br />(7,Item,6)(8,Item,7)(9,Item,8)<br />(10,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#388");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_flow_hdr_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Item,1)(3,Item,2)<br />(4,Item,3)(5,Item,4)(6,Item,5)<br />(7,Item,6)<br />(8,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#389");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_flow_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#390");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_flow_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#391");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_flow_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Item,1)<br />(3,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#392");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_flow_hdr_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Item,1)<br />(3,Item,2)<br />(4,Item,3)<br />(5,Item,4)<br />(6,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#393");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_flow_hdr_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#394");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_flow_hdr_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Item,1)<br />(3,Item,2)<br />(4,Item,3)<br />(5,Item,4)<br />(6,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#395");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_flow_hdr_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Item,2)<br />(3,Item,1)(4,Item,3)<br />(5,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#396");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_flow_hdr_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Item,4)<br />(3,Item,1)(4,Item,5)<br />(5,Item,2)(6,Item,6)<br />(7,Item,3)<br />(8,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#397");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_flow_hdr_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Item,3)(3,Item,6)<br />(4,Item,1)(5,Item,4)(6,Item,7)<br />(7,Item,2)(8,Item,5)(9,Item,8)<br />(10,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#398");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_flow_hdr_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, true, false);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Item,3)(3,Item,5)<br />(4,Item,1)(5,Item,4)(6,Item,6)<br />(7,Item,2)<br />(8,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#399");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""0"" class=""Footer-1"">(0,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#400");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#401");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(2,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#402");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td>
-       </tr><tr>
-               <td colspan=""5"" class=""Footer-1"">(5,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#403");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Footer-1"">(0,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#404");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(3,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(4,Item,4)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(5,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#405");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(4,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#406");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(6,Item,6)</td><td></td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(7,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#407");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(6,Item,6)</td><td class=""Item7"">(7,Item,7)</td><td class=""Item8"">(8,Item,8)</td>
-       </tr><tr>
-               <td colspan=""3"" class=""Footer-1"">(9,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#408");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, true, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(6,Item,6)</td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""3"" class=""Footer-1"">(7,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#409");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
-               string exp = @"(0,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#410");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
-               string exp = @"(0,Item,0)(1,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#411");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
-               string exp = @"(0,Item,0)(1,Item,1)(2,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#412");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
-               string exp = @"(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)(5,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#413");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
-               string exp = @"(0,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#414");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
-               string exp = @"(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)(5,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#415");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
-               string exp = @"(0,Item,0)(1,Item,2)(2,Item,1)(3,Item,3)(4,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#416");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
-               string exp = @"(0,Item,0)(1,Item,4)(2,Item,1)(3,Item,5)(4,Item,2)(5,Item,6)(6,Item,3)(7,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#417");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
-               string exp = @"(0,Item,0)(1,Item,3)(2,Item,6)(3,Item,1)(4,Item,4)(5,Item,7)(6,Item,2)(7,Item,5)(8,Item,8)(9,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#418");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_tbl_otrtblimp_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, false, true, false);
-               string exp = @"(0,Item,0)(1,Item,3)(2,Item,5)(3,Item,1)(4,Item,4)(5,Item,6)(6,Item,2)(7,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#419");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_flow_otrtblimp_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#420");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_flow_otrtblimp_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#421");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_flow_otrtblimp_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)(2,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#422");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_flow_otrtblimp_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)(5,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#423");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_flow_otrtblimp_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#424");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_flow_otrtblimp_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Item,1)<br />(2,Item,2)<br />(3,Item,3)<br />(4,Item,4)<br />(5,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#425");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_flow_otrtblimp_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)<br />(2,Item,2)(3,Item,3)<br />(4,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#426");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_flow_otrtblimp_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)<br />(2,Item,2)(3,Item,3)<br />(4,Item,4)(5,Item,5)<br />(6,Item,6)<br />(7,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#427");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_flow_otrtblimp_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"<span>(0,Item,0)(1,Item,1)(2,Item,2)<br />(3,Item,3)(4,Item,4)(5,Item,5)<br />(6,Item,6)(7,Item,7)(8,Item,8)<br />(9,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#428");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_flow_otrtblimp_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"<span>(0,Item,0)(1,Item,1)(2,Item,2)<br />(3,Item,3)(4,Item,4)(5,Item,5)<br />(6,Item,6)<br />(7,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#429");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_flow_otrtblimp_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"(0,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#430");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_flow_otrtblimp_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"(0,Item,0)(1,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#431");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_flow_otrtblimp_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"(0,Item,0)(1,Item,1)(2,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#432");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_flow_otrtblimp_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)(5,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#433");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_flow_otrtblimp_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"(0,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#434");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_flow_otrtblimp_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)(5,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#435");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_flow_otrtblimp_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"(0,Item,0)(1,Item,2)(2,Item,1)(3,Item,3)(4,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#436");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_flow_otrtblimp_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"(0,Item,0)(1,Item,4)(2,Item,1)(3,Item,5)(4,Item,2)(5,Item,6)(6,Item,3)(7,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#437");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_flow_otrtblimp_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"(0,Item,0)(1,Item,3)(2,Item,6)(3,Item,1)(4,Item,4)(5,Item,7)(6,Item,2)(7,Item,5)(8,Item,8)(9,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#438");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_flow_otrtblimp_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, true, false);
-               string exp = @"(0,Item,0)(1,Item,3)(2,Item,5)(3,Item,1)(4,Item,4)(5,Item,6)(6,Item,2)(7,Footer,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#439");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_tbl_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""0"" class=""Footer-1"">(0,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#440");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_tbl_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#441");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_tbl_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(2,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#442");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_tbl_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td>
-       </tr><tr>
-               <td colspan=""5"" class=""Footer-1"">(5,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#443");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_tbl_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Footer-1"">(0,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#444");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_tbl_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(3,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(4,Item,4)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(5,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#445");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_tbl_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(4,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#446");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_tbl_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(6,Item,6)</td><td></td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(7,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#447");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_tbl_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(6,Item,6)</td><td class=""Item7"">(7,Item,7)</td><td class=""Item8"">(8,Item,8)</td>
-       </tr><tr>
-               <td colspan=""3"" class=""Footer-1"">(9,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#448");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_tbl_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(6,Item,6)</td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""3"" class=""Footer-1"">(7,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#449");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_tbl_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Footer-1"">(0,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#450");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_tbl_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(1,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#451");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_tbl_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(2,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#452");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_tbl_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(3,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(4,Item,4)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(5,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#453");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_tbl_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Footer-1"">(0,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#454");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_tbl_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(3,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(4,Item,4)</td>
-       </tr><tr>
-               <td class=""Footer-1"">(5,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#455");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_tbl_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item2"">(1,Item,2)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td><td class=""Item3"">(3,Item,3)</td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(4,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#456");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_tbl_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item4"">(1,Item,4)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td><td class=""Item5"">(3,Item,5)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td><td class=""Item6"">(5,Item,6)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td><td></td>
-       </tr><tr>
-               <td colspan=""2"" class=""Footer-1"">(7,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#457");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_tbl_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item3"">(1,Item,3)</td><td class=""Item6"">(2,Item,6)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item7"">(5,Item,7)</td>
-       </tr><tr>
-               <td class=""Item2"">(6,Item,2)</td><td class=""Item5"">(7,Item,5)</td><td class=""Item8"">(8,Item,8)</td>
-       </tr><tr>
-               <td colspan=""3"" class=""Footer-1"">(9,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#458");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_tbl_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, false, true, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item3"">(1,Item,3)</td><td class=""Item5"">(2,Item,5)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item6"">(5,Item,6)</td>
-       </tr><tr>
-               <td class=""Item2"">(6,Item,2)</td><td></td><td></td>
-       </tr><tr>
-               <td colspan=""3"" class=""Footer-1"">(7,Footer,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#459");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_flow_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#460");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_flow_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#461");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_flow_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)(2,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#462");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_flow_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)(5,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#463");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_flow_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#464");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_flow_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Item,1)<br />(2,Item,2)<br />(3,Item,3)<br />(4,Item,4)<br />(5,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#465");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_flow_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)<br />(2,Item,2)(3,Item,3)<br />(4,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#466");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_flow_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)<br />(2,Item,2)(3,Item,3)<br />(4,Item,4)(5,Item,5)<br />(6,Item,6)<br />(7,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#467");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_flow_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span>(0,Item,0)(1,Item,1)(2,Item,2)<br />(3,Item,3)(4,Item,4)(5,Item,5)<br />(6,Item,6)(7,Item,7)(8,Item,8)<br />(9,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#468");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_flow_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span>(0,Item,0)(1,Item,1)(2,Item,2)<br />(3,Item,3)(4,Item,4)(5,Item,5)<br />(6,Item,6)<br />(7,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#469");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_flow_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#470");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_flow_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#471");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_flow_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Item,1)<br />(2,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#472");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_flow_ftr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Item,1)<br />(2,Item,2)<br />(3,Item,3)<br />(4,Item,4)<br />(5,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#473");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_flow_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#474");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_flow_ftr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Item,1)<br />(2,Item,2)<br />(3,Item,3)<br />(4,Item,4)<br />(5,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#475");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_flow_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,2)<br />(2,Item,1)(3,Item,3)<br />(4,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#476");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_flow_ftr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,4)<br />(2,Item,1)(3,Item,5)<br />(4,Item,2)(5,Item,6)<br />(6,Item,3)<br />(7,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#477");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_flow_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span>(0,Item,0)(1,Item,3)(2,Item,6)<br />(3,Item,1)(4,Item,4)(5,Item,7)<br />(6,Item,2)(7,Item,5)(8,Item,8)<br />(9,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#478");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_flow_ftr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : True
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, true, false);
-               string exp = @"<span>(0,Item,0)(1,Item,3)(2,Item,5)<br />(3,Item,1)(4,Item,4)(5,Item,6)<br />(6,Item,2)<br />(7,Footer,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#479");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""0"" class=""Header-1"">(0,Header,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#480");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#481");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#482");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""5"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#483");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#484");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(3,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(4,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(5,Item,4)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#485");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#486");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(7,Item,6)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#487");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(7,Item,6)</td><td class=""Item7"">(8,Item,7)</td><td class=""Item8"">(9,Item,8)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#488");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, true, false, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(7,Item,6)</td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#489");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
-               string exp = @"(0,Header,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#490");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
-               string exp = @"(0,Header,-1)(1,Item,0)";
-               HtmlDiff.AssertAreEqual (exp, v, "#491");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#492");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)";
-               HtmlDiff.AssertAreEqual (exp, v, "#493");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
-               string exp = @"(0,Header,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#494");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)";
-               HtmlDiff.AssertAreEqual (exp, v, "#495");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,2)(3,Item,1)(4,Item,3)";
-               HtmlDiff.AssertAreEqual (exp, v, "#496");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,4)(3,Item,1)(4,Item,5)(5,Item,2)(6,Item,6)(7,Item,3)";
-               HtmlDiff.AssertAreEqual (exp, v, "#497");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,3)(3,Item,6)(4,Item,1)(5,Item,4)(6,Item,7)(7,Item,2)(8,Item,5)(9,Item,8)";
-               HtmlDiff.AssertAreEqual (exp, v, "#498");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_tbl_otrtblimp_hdr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, true, false, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,3)(3,Item,5)(4,Item,1)(5,Item,4)(6,Item,6)(7,Item,2)";
-               HtmlDiff.AssertAreEqual (exp, v, "#499");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_flow_otrtblimp_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#500");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_flow_otrtblimp_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#501");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_flow_otrtblimp_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Item,1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#502");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_flow_otrtblimp_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#503");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_flow_otrtblimp_hdr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#504");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_flow_otrtblimp_hdr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Item,1)<br />(3,Item,2)<br />(4,Item,3)<br />(5,Item,4)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#505");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_flow_otrtblimp_hdr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Item,1)<br />(3,Item,2)(4,Item,3)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#506");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_flow_otrtblimp_hdr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Item,1)<br />(3,Item,2)(4,Item,3)<br />(5,Item,4)(6,Item,5)<br />(7,Item,6)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#507");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_flow_otrtblimp_hdr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Item,1)(3,Item,2)<br />(4,Item,3)(5,Item,4)(6,Item,5)<br />(7,Item,6)(8,Item,7)(9,Item,8)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#508");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_flow_otrtblimp_hdr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Item,1)(3,Item,2)<br />(4,Item,3)(5,Item,4)(6,Item,5)<br />(7,Item,6)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#509");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_flow_otrtblimp_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"(0,Header,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#510");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_flow_otrtblimp_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"(0,Header,-1)(1,Item,0)";
-               HtmlDiff.AssertAreEqual (exp, v, "#511");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_flow_otrtblimp_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#512");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_flow_otrtblimp_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)";
-               HtmlDiff.AssertAreEqual (exp, v, "#513");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_flow_otrtblimp_hdr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"(0,Header,-1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#514");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_flow_otrtblimp_hdr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)";
-               HtmlDiff.AssertAreEqual (exp, v, "#515");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_flow_otrtblimp_hdr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,2)(3,Item,1)(4,Item,3)";
-               HtmlDiff.AssertAreEqual (exp, v, "#516");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_flow_otrtblimp_hdr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,4)(3,Item,1)(4,Item,5)(5,Item,2)(6,Item,6)(7,Item,3)";
-               HtmlDiff.AssertAreEqual (exp, v, "#517");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_flow_otrtblimp_hdr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,3)(3,Item,6)(4,Item,1)(5,Item,4)(6,Item,7)(7,Item,2)(8,Item,5)(9,Item,8)";
-               HtmlDiff.AssertAreEqual (exp, v, "#518");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_flow_otrtblimp_hdr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, true, false, false);
-               string exp = @"(0,Header,-1)(1,Item,0)(2,Item,3)(3,Item,5)(4,Item,1)(5,Item,4)(6,Item,6)(7,Item,2)";
-               HtmlDiff.AssertAreEqual (exp, v, "#519");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_tbl_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""0"" class=""Header-1"">(0,Header,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#520");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_tbl_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#521");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_tbl_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#522");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_tbl_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""5"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#523");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_tbl_hdr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#524");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_tbl_hdr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(3,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(4,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(5,Item,4)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#525");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_tbl_hdr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#526");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_tbl_hdr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(3,Item,2)</td><td class=""Item3"">(4,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(7,Item,6)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#527");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_tbl_hdr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(7,Item,6)</td><td class=""Item7"">(8,Item,7)</td><td class=""Item8"">(9,Item,8)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#528");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_tbl_hdr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item1"">(2,Item,1)</td><td class=""Item2"">(3,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(4,Item,3)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item5"">(6,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(7,Item,6)</td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#529");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_tbl_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#530");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_tbl_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#531");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_tbl_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#532");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_tbl_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(3,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(4,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(5,Item,4)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#533");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_tbl_hdr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#534");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_tbl_hdr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(3,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(4,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(5,Item,4)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#535");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_tbl_hdr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td><td class=""Item3"">(4,Item,3)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#536");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_tbl_hdr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td colspan=""2"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item4"">(2,Item,4)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td><td class=""Item5"">(4,Item,5)</td>
-       </tr><tr>
-               <td class=""Item2"">(5,Item,2)</td><td class=""Item6"">(6,Item,6)</td>
-       </tr><tr>
-               <td class=""Item3"">(7,Item,3)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#537");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_tbl_hdr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item3"">(2,Item,3)</td><td class=""Item6"">(3,Item,6)</td>
-       </tr><tr>
-               <td class=""Item1"">(4,Item,1)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item7"">(6,Item,7)</td>
-       </tr><tr>
-               <td class=""Item2"">(7,Item,2)</td><td class=""Item5"">(8,Item,5)</td><td class=""Item8"">(9,Item,8)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#538");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_tbl_hdr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, true, false, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td colspan=""3"" class=""Header-1"">(0,Header,-1)</td>
-       </tr><tr>
-               <td class=""Item0"">(1,Item,0)</td><td class=""Item3"">(2,Item,3)</td><td class=""Item5"">(3,Item,5)</td>
-       </tr><tr>
-               <td class=""Item1"">(4,Item,1)</td><td class=""Item4"">(5,Item,4)</td><td class=""Item6"">(6,Item,6)</td>
-       </tr><tr>
-               <td class=""Item2"">(7,Item,2)</td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#539");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_flow_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#540");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_flow_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#541");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_flow_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Item,1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#542");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_flow_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)(1,Item,0)(2,Item,1)(3,Item,2)(4,Item,3)(5,Item,4)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#543");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_flow_hdr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#544");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_flow_hdr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Item,1)<br />(3,Item,2)<br />(4,Item,3)<br />(5,Item,4)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#545");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_flow_hdr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Item,1)<br />(3,Item,2)(4,Item,3)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#546");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_flow_hdr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Item,1)<br />(3,Item,2)(4,Item,3)<br />(5,Item,4)(6,Item,5)<br />(7,Item,6)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#547");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_flow_hdr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Item,1)(3,Item,2)<br />(4,Item,3)(5,Item,4)(6,Item,5)<br />(7,Item,6)(8,Item,7)(9,Item,8)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#548");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_flow_hdr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Item,1)(3,Item,2)<br />(4,Item,3)(5,Item,4)(6,Item,5)<br />(7,Item,6)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#549");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_flow_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#550");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_flow_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#551");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_flow_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Item,1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#552");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_flow_hdr ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Item,1)<br />(3,Item,2)<br />(4,Item,3)<br />(5,Item,4)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#553");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_flow_hdr ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#554");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_flow_hdr ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)<br />(2,Item,1)<br />(3,Item,2)<br />(4,Item,3)<br />(5,Item,4)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#555");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_flow_hdr ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Item,2)<br />(3,Item,1)(4,Item,3)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#556");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_flow_hdr ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Header,-1)<br />(1,Item,0)(2,Item,4)<br />(3,Item,1)(4,Item,5)<br />(5,Item,2)(6,Item,6)<br />(7,Item,3)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#557");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_flow_hdr ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Item,3)(3,Item,6)<br />(4,Item,1)(5,Item,4)(6,Item,7)<br />(7,Item,2)(8,Item,5)(9,Item,8)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#558");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_flow_hdr ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : True
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, true, false, false);
-               string exp = @"<span>(0,Header,-1)<br />(1,Item,0)(2,Item,3)(3,Item,5)<br />(4,Item,1)(5,Item,4)(6,Item,6)<br />(7,Item,2)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#559");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_tbl_otrtblimp ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#560");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_tbl_otrtblimp ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#561");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_tbl_otrtblimp ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#562");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_tbl_otrtblimp ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#563");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_tbl_otrtblimp ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#564");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_tbl_otrtblimp ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(3,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(4,Item,4)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#565");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_tbl_otrtblimp ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#566");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_tbl_otrtblimp ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(6,Item,6)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#567");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_tbl_otrtblimp ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(6,Item,6)</td><td class=""Item7"">(7,Item,7)</td><td class=""Item8"">(8,Item,8)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#568");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_tbl_otrtblimp ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, true, false, false, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(6,Item,6)</td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#569");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_tbl_otrtblimp ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
-               string exp = @"";
-               HtmlDiff.AssertAreEqual (exp, v, "#570");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_tbl_otrtblimp ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
-               string exp = @"(0,Item,0)";
-               HtmlDiff.AssertAreEqual (exp, v, "#571");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_tbl_otrtblimp ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
-               string exp = @"(0,Item,0)(1,Item,1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#572");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_tbl_otrtblimp ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
-               string exp = @"(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)";
-               HtmlDiff.AssertAreEqual (exp, v, "#573");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_tbl_otrtblimp ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
-               string exp = @"";
-               HtmlDiff.AssertAreEqual (exp, v, "#574");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_tbl_otrtblimp ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
-               string exp = @"(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)";
-               HtmlDiff.AssertAreEqual (exp, v, "#575");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_tbl_otrtblimp ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
-               string exp = @"(0,Item,0)(1,Item,2)(2,Item,1)(3,Item,3)";
-               HtmlDiff.AssertAreEqual (exp, v, "#576");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_tbl_otrtblimp ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
-               string exp = @"(0,Item,0)(1,Item,4)(2,Item,1)(3,Item,5)(4,Item,2)(5,Item,6)(6,Item,3)";
-               HtmlDiff.AssertAreEqual (exp, v, "#577");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_tbl_otrtblimp ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
-               string exp = @"(0,Item,0)(1,Item,3)(2,Item,6)(3,Item,1)(4,Item,4)(5,Item,7)(6,Item,2)(7,Item,5)(8,Item,8)";
-               HtmlDiff.AssertAreEqual (exp, v, "#578");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_tbl_otrtblimp ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, true, false, false, false);
-               string exp = @"(0,Item,0)(1,Item,3)(2,Item,5)(3,Item,1)(4,Item,4)(5,Item,6)(6,Item,2)";
-               HtmlDiff.AssertAreEqual (exp, v, "#579");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_flow_otrtblimp ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"<span class=""mainstyle""></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#580");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_flow_otrtblimp ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#581");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_flow_otrtblimp ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#582");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_flow_otrtblimp ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#583");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_flow_otrtblimp ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"<span class=""mainstyle""></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#584");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_flow_otrtblimp ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Item,1)<br />(2,Item,2)<br />(3,Item,3)<br />(4,Item,4)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#585");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_flow_otrtblimp ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)<br />(2,Item,2)(3,Item,3)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#586");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_flow_otrtblimp ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)<br />(2,Item,2)(3,Item,3)<br />(4,Item,4)(5,Item,5)<br />(6,Item,6)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#587");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_flow_otrtblimp ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"<span>(0,Item,0)(1,Item,1)(2,Item,2)<br />(3,Item,3)(4,Item,4)(5,Item,5)<br />(6,Item,6)(7,Item,7)(8,Item,8)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#588");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_flow_otrtblimp ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"<span>(0,Item,0)(1,Item,1)(2,Item,2)<br />(3,Item,3)(4,Item,4)(5,Item,5)<br />(6,Item,6)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#589");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_flow_otrtblimp ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"";
-               HtmlDiff.AssertAreEqual (exp, v, "#590");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_flow_otrtblimp ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"(0,Item,0)";
-               HtmlDiff.AssertAreEqual (exp, v, "#591");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_flow_otrtblimp ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"(0,Item,0)(1,Item,1)";
-               HtmlDiff.AssertAreEqual (exp, v, "#592");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_flow_otrtblimp ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)";
-               HtmlDiff.AssertAreEqual (exp, v, "#593");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_flow_otrtblimp ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"";
-               HtmlDiff.AssertAreEqual (exp, v, "#594");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_flow_otrtblimp ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)";
-               HtmlDiff.AssertAreEqual (exp, v, "#595");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_flow_otrtblimp ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"(0,Item,0)(1,Item,2)(2,Item,1)(3,Item,3)";
-               HtmlDiff.AssertAreEqual (exp, v, "#596");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_flow_otrtblimp ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"(0,Item,0)(1,Item,4)(2,Item,1)(3,Item,5)(4,Item,2)(5,Item,6)(6,Item,3)";
-               HtmlDiff.AssertAreEqual (exp, v, "#597");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_flow_otrtblimp ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"(0,Item,0)(1,Item,3)(2,Item,6)(3,Item,1)(4,Item,4)(5,Item,7)(6,Item,2)(7,Item,5)(8,Item,8)";
-               HtmlDiff.AssertAreEqual (exp, v, "#598");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_flow_otrtblimp ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : True
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, true, false, false, false);
-               string exp = @"(0,Item,0)(1,Item,3)(2,Item,5)(3,Item,1)(4,Item,4)(5,Item,6)(6,Item,2)";
-               HtmlDiff.AssertAreEqual (exp, v, "#599");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_tbl ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#600");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_tbl ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#601");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_tbl ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#602");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_tbl ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#603");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_tbl ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#604");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_tbl ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(3,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(4,Item,4)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#605");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_tbl ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#606");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_tbl ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(2,Item,2)</td><td class=""Item3"">(3,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(6,Item,6)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#607");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_tbl ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(6,Item,6)</td><td class=""Item7"">(7,Item,7)</td><td class=""Item8"">(8,Item,8)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#608");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_tbl ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item1"">(1,Item,1)</td><td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(3,Item,3)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item5"">(5,Item,5)</td>
-       </tr><tr>
-               <td class=""Item6"">(6,Item,6)</td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#609");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_tbl ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#610");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_tbl ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#611");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_tbl ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(1,Item,1)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#612");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_tbl ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(3,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(4,Item,4)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#613");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_tbl ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#614");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_tbl ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td>
-       </tr><tr>
-               <td class=""Item1"">(1,Item,1)</td>
-       </tr><tr>
-               <td class=""Item2"">(2,Item,2)</td>
-       </tr><tr>
-               <td class=""Item3"">(3,Item,3)</td>
-       </tr><tr>
-               <td class=""Item4"">(4,Item,4)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#615");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_tbl ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item2"">(1,Item,2)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td><td class=""Item3"">(3,Item,3)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#616");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_tbl ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table class=""mainstyle"" border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item4"">(1,Item,4)</td>
-       </tr><tr>
-               <td class=""Item1"">(2,Item,1)</td><td class=""Item5"">(3,Item,5)</td>
-       </tr><tr>
-               <td class=""Item2"">(4,Item,2)</td><td class=""Item6"">(5,Item,6)</td>
-       </tr><tr>
-               <td class=""Item3"">(6,Item,3)</td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#617");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_tbl ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item3"">(1,Item,3)</td><td class=""Item6"">(2,Item,6)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item7"">(5,Item,7)</td>
-       </tr><tr>
-               <td class=""Item2"">(6,Item,2)</td><td class=""Item5"">(7,Item,5)</td><td class=""Item8"">(8,Item,8)</td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#618");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_tbl ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Table
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Table, false, false, false, false);
-               string exp = @"<table border=""0"">
-       <tr>
-               <td class=""Item0"">(0,Item,0)</td><td class=""Item3"">(1,Item,3)</td><td class=""Item5"">(2,Item,5)</td>
-       </tr><tr>
-               <td class=""Item1"">(3,Item,1)</td><td class=""Item4"">(4,Item,4)</td><td class=""Item6"">(5,Item,6)</td>
-       </tr><tr>
-               <td class=""Item2"">(6,Item,2)</td><td></td><td></td>
-       </tr>
-</table>";
-               HtmlDiff.AssertAreEqual (exp, v, "#619");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_horiz_flow ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span class=""mainstyle""></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#620");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_horiz_flow ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#621");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_horiz_flow ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#622");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_horiz_flow ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)(2,Item,2)(3,Item,3)(4,Item,4)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#623");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_horiz_flow ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span class=""mainstyle""></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#624");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_horiz_flow ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Item,1)<br />(2,Item,2)<br />(3,Item,3)<br />(4,Item,4)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#625");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_horiz_flow ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)<br />(2,Item,2)(3,Item,3)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#626");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_horiz_flow ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,1)<br />(2,Item,2)(3,Item,3)<br />(4,Item,4)(5,Item,5)<br />(6,Item,6)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#627");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_horiz_flow ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span>(0,Item,0)(1,Item,1)(2,Item,2)<br />(3,Item,3)(4,Item,4)(5,Item,5)<br />(6,Item,6)(7,Item,7)(8,Item,8)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#628");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_horiz_flow ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Horizontal
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Horizontal, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span>(0,Item,0)(1,Item,1)(2,Item,2)<br />(3,Item,3)(4,Item,4)(5,Item,5)<br />(6,Item,6)<br /></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#629");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_0itms_vert_flow ()
-       {
-               // cols              : 0
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span class=""mainstyle""></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#630");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_1itms_vert_flow ()
-       {
-               // cols              : 0
-               // cnt               : 1
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 1, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#631");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_2itms_vert_flow ()
-       {
-               // cols              : 0
-               // cnt               : 2
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 2, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Item,1)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#632");
-       }
-
-
-       [Test]
-       public void RepeatInfo_0cols_5itms_vert_flow ()
-       {
-               // cols              : 0
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (0, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Item,1)<br />(2,Item,2)<br />(3,Item,3)<br />(4,Item,4)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#633");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_0itms_vert_flow ()
-       {
-               // cols              : 1
-               // cnt               : 0
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 0, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span class=""mainstyle""></span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#634");
-       }
-
-
-       [Test]
-       public void RepeatInfo_1cols_5itms_vert_flow ()
-       {
-               // cols              : 1
-               // cnt               : 5
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (1, 5, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)<br />(1,Item,1)<br />(2,Item,2)<br />(3,Item,3)<br />(4,Item,4)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#635");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_4itms_vert_flow ()
-       {
-               // cols              : 2
-               // cnt               : 4
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 4, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,2)<br />(2,Item,1)(3,Item,3)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#636");
-       }
-
-
-       [Test]
-       public void RepeatInfo_2cols_7itms_vert_flow ()
-       {
-               // cols              : 2
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (2, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span class=""mainstyle"">(0,Item,0)(1,Item,4)<br />(2,Item,1)(3,Item,5)<br />(4,Item,2)(5,Item,6)<br />(6,Item,3)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#637");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_9itms_vert_flow ()
-       {
-               // cols              : 3
-               // cnt               : 9
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 9, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span>(0,Item,0)(1,Item,3)(2,Item,6)<br />(3,Item,1)(4,Item,4)(5,Item,7)<br />(6,Item,2)(7,Item,5)(8,Item,8)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#638");
-       }
-
-
-       [Test]
-       public void RepeatInfo_3cols_7itms_vert_flow ()
-       {
-               // cols              : 3
-               // cnt               : 7
-               // RepeatDirection   : Vertical
-               // RepeatLayout      : Flow
-               // OuterTableImplied : False
-               // Header            : False
-               // Footer            : False
-               // Separator         : False
-
-
-               string v = RepeatInfoUser.DoTest (3, 7, RepeatDirection.Vertical, RepeatLayout.Flow, false, false, false, false);
-               string exp = @"<span>(0,Item,0)(1,Item,3)(2,Item,5)<br />(3,Item,1)(4,Item,4)(5,Item,6)<br />(6,Item,2)</span>";
-               HtmlDiff.AssertAreEqual (exp, v, "#639");
-       }
-
-
-}
-}
-#endif
index ecdf82387178897008415dae7f86bf9b30ebfa67..a3772412270d2034fc106168a237dd41420adfa9 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 
 // THIS IS AUTOGENERATED DO NOT EDIT
 //
@@ -24558,4 +24557,3 @@ public class RepeatInfo_Autogen {
 
 }
 }
-#endif
index 218d8d896d9c25f846449641b43f0e30f1398433..cf59b7d81d7725758e62eb150eb3b8533a83b9d2 100644 (file)
@@ -167,13 +167,8 @@ namespace MonoTests.System.Web.UI.WebControls {
                [Test]
                public void RenderRepeater_BaseControl ()
                {
-#if NET_4_0
                        string noid = "<table>\n\t<tr>\n\t\t<td>0</td><td></td><td></td>\n\t</tr>\n</table>";
                        string id_enabled = "<table id=\"foo\" class=\"aspNetDisabled\">\n\t<tr>\n\t\t<td>0</td><td></td><td></td>\n\t</tr>\n</table>";
-#else
-                       string noid = "<table border=\"0\">\n\t<tr>\n\t\t<td>0</td><td></td><td></td>\n\t</tr>\n</table>";
-                       string id_enabled = "<table id=\"foo\" disabled=\"disabled\" border=\"0\">\n\t<tr>\n\t\t<td>0</td><td></td><td></td>\n\t</tr>\n</table>";
-#endif
                        RenderRepeater_BaseControl (noid, "Table", new Table ());
                        RenderRepeater_BaseControl (noid, "DataList", new DataList ());
                        RenderRepeater_BaseControl (noid, "DataListItem", new DataListItem (0, ListItemType.Item));
index f1bfcb7114b6c9a93bcd2ee1e662c239e7378471..4d87fce7d59a23f469902a2e534f648973e0d845 100644 (file)
@@ -45,13 +45,11 @@ class X {
 
                        case RepeatLayout.Table:
                                return "tbl";
-#if NET_4_0
                        case RepeatLayout.OrderedList:
                                return "ol";
 
                        case RepeatLayout.UnorderedList:
                                return "ul";
-#endif
                        default:
                                throw new InvalidOperationException ("Unsupported layout value: " + layout);
                }
@@ -59,11 +57,7 @@ class X {
 
        static void Main ()
        {
-#if NET_4_0
                Console.WriteLine ("#if NET_4_0");
-#else
-               Console.WriteLine ("#if NET_2_0 && !NET_4_0");
-#endif
                bool isMono = Type.GetType ("Mono.Runtime", false) != null;
 
                Console.WriteLine (@"
@@ -125,12 +119,8 @@ public class RepeatInfo_Autogen {{
                        new int [] {3, 9},
                        new int [] {3, 7}
                };
-#if NET_4_0
                int ntests = 1 << 7;
                int lcount = -1;
-#else
-               int ntests = 1 << 6;
-#endif
                RepeatDirection d;
                RepeatLayout l;
                bool oti, hdr, ftr, sep;
@@ -138,13 +128,9 @@ public class RepeatInfo_Autogen {{
 
                for (int i = 0; i < ntests; i ++) {
                        d = (RepeatDirection) (i & (1 << 0));
-#if NET_4_0
                        if ((i % 2) == 0)
                                lcount++;
                        l = (RepeatLayout) (lcount % 4);
-#else
-                       l = (RepeatLayout) ((i & (1 << 1)) >> 1);
-#endif
                        oti = (i & (1 << 3)) == 0;
                        hdr = (i & (1 << 4)) == 0;
                        ftr = (i & (1 << 5)) == 0;
index dccaf32652068ac9d6fe6dc21821a724db72be76..eec1e9bc2c23feef3d6eaa86041c7fe49dfbc300 100644 (file)
@@ -23,7 +23,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.Data;
@@ -177,4 +176,3 @@ namespace MonoTests.System.Web.UI.WebControls
                }
        }
 }
-#endif
\ No newline at end of file
index 9d8d7ae6ca5e77d1e3be1af8115d8dca3f1df38e..e44c3db5d61f0c2f648f4f75b97ae606ce4e6c43 100644 (file)
@@ -452,9 +452,7 @@ namespace MonoTests.System.Web.UI.WebControls
                                evaluateCount = 0;
                        }
 
-#if NET_4_0
                        internal
-#endif
                        protected override object Evaluate (HttpContext context, Control control) {
                                evaluateCount++;
                                return String.Format ("{0}{1}", DefaultValue, evaluateCount);
index 46adf22e5ae1d258b1015d06dbe3a96cfb05c762..1daefe5a3a9ad680a2450143b5527e1ad3effc1c 100644 (file)
@@ -112,11 +112,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        TestTable t = new TestTable ();
                        t.Caption = "CaptionText";
                        string html = t.Render ();
-#if NET_4_0
                        string orig = "<table>\n\t<caption>\n\t\tCaptionText\n\t</caption>\n</table>";
-#else
-                       string orig = "<table border=\"0\">\n\t<caption>\n\t\tCaptionText\n\t</caption>\n</table>";
-#endif
                        HtmlDiff.AssertAreEqual (orig, html, "Caption");
                }
 
@@ -127,11 +123,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        t.Caption = "CaptionText";
                        t.CaptionAlign = TableCaptionAlign.Left; 
                        string html = t.Render ();
-#if NET_4_0
                        string orig = "<table>\n\t<caption align=\"Left\">\n\t\tCaptionText\n\t</caption>\n</table>";
-#else
-                       string orig = "<table border=\"0\">\n\t<caption align=\"Left\">\n\t\tCaptionText\n\t</caption>\n</table>";
-#endif
                        HtmlDiff.AssertAreEqual (orig, html, "CaptionAlign");
                }
                [Test]
@@ -251,28 +243,16 @@ namespace MonoTests.System.Web.UI.WebControls {
                {
                        TestTable t = new TestTable ();
                        string s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual ("<table>\n\n</table>", s, "empty/default");
-#else
-                       Assert.AreEqual ("<table border=\"0\">\n\n</table>", s, "empty/default");
-#endif
 
                        t.CellPadding = 1;
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual ("<table cellpadding=\"1\">\n\n</table>", s, "CellPadding");
-#else
-                       Assert.AreEqual ("<table cellpadding=\"1\" border=\"0\">\n\n</table>", s, "CellPadding");
-#endif
                        t.CellPadding = -1;
 
                        t.CellSpacing = 2;
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual ("<table cellspacing=\"2\">\n\n</table>", s, "CellSpacing");
-#else
-                       Assert.AreEqual ("<table cellspacing=\"2\" border=\"0\">\n\n</table>", s, "CellSpacing");
-#endif
                        t.CellSpacing = -1;
 
                        t.GridLines = GridLines.Horizontal;
@@ -288,125 +268,61 @@ namespace MonoTests.System.Web.UI.WebControls {
 
                        t.BorderWidth = new Unit (2);
                        s = t.Render ();
-#if NET_4_0
                        Assert.IsTrue ((s.IndexOf ("\"border-width:2px;border-style:solid;\"") > 0), "border=0/2");
-#else
-                       Assert.IsTrue ((s.IndexOf ("border=\"0\"") > 0), "border=0/2");
-#endif
                        t.GridLines = GridLines.Horizontal;
                        s = t.Render ();
-#if NET_4_0
                        Console.WriteLine (s);
                        Assert.IsTrue ((s.IndexOf ("rules=\"rows\" style=\"border-width:2px;border-style:solid;\"") > 0), "2/GridLines.Horizontal");
-#else
-                       Assert.IsTrue ((s.IndexOf ("rules=\"rows\" border=\"2\"") > 0), "2/GridLines.Horizontal");
-#endif
                        t.GridLines = GridLines.Vertical;
                        s = t.Render ();
-#if NET_4_0
                        Assert.IsTrue ((s.IndexOf ("rules=\"cols\" style=\"border-width:2px;border-style:solid;\"") > 0), "2/GridLines.Vertical");
-#else
-                       Assert.IsTrue ((s.IndexOf ("rules=\"cols\" border=\"2\"") > 0), "2/GridLines.Vertical");
-#endif
                        t.GridLines = GridLines.Both;
                        s = t.Render ();
-#if NET_4_0
                        Assert.IsTrue ((s.IndexOf ("rules=\"all\" style=\"border-width:2px;border-style:solid;\"") > 0), "2/GridLines.Both");
-#else
-                       Assert.IsTrue ((s.IndexOf ("rules=\"all\" border=\"2\"") > 0), "2/GridLines.Both");
-#endif
                        t.GridLines = GridLines.None;
                        t.BorderWidth = new Unit ();
 
                        t.HorizontalAlign = HorizontalAlign.Left;
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual ("<table align=\"left\">\n\n</table>", s.ToLower (), "HorizontalAlign.Left");
-#else
-                       Assert.AreEqual ("<table align=\"left\" border=\"0\">\n\n</table>", s.ToLower (), "HorizontalAlign.Left");
-#endif
                        t.HorizontalAlign = HorizontalAlign.Center;
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual ("<table align=\"center\">\n\n</table>", s.ToLower (), "HorizontalAlign.Center");
-#else
-                       Assert.AreEqual ("<table align=\"center\" border=\"0\">\n\n</table>", s.ToLower (), "HorizontalAlign.Center");
-#endif
                        t.HorizontalAlign = HorizontalAlign.Right;
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual ("<table align=\"right\">\n\n</table>", s.ToLower (), "HorizontalAlign.Right");
-#else
-                       Assert.AreEqual ("<table align=\"right\" border=\"0\">\n\n</table>", s.ToLower (), "HorizontalAlign.Right");
-#endif
                        t.HorizontalAlign = HorizontalAlign.Justify;
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual ("<table align=\"justify\">\n\n</table>", s.ToLower (), "HorizontalAlign.Justify");
-#else
-                       Assert.AreEqual ("<table align=\"justify\" border=\"0\">\n\n</table>", s.ToLower (), "HorizontalAlign.Justify");
-#endif
                        t.HorizontalAlign = HorizontalAlign.NotSet;
 
                        t.Caption = "mono";
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual ("<table>\n\t<caption>\n\t\tmono\n\t</caption>\n</table>", s.ToLower (), "Caption");
-#else
-                       Assert.AreEqual ("<table border=\"0\">\n\t<caption>\n\t\tmono\n\t</caption>\n</table>", s.ToLower (), "Caption");
-#endif
 
                        t.CaptionAlign = TableCaptionAlign.Top;
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual ("<table>\n\t<caption align=\"top\">\n\t\tmono\n\t</caption>\n</table>", s.ToLower (), "Caption/Top");
-#else
-                       Assert.AreEqual ("<table border=\"0\">\n\t<caption align=\"top\">\n\t\tmono\n\t</caption>\n</table>", s.ToLower (), "Caption/Top");
-#endif
                        t.CaptionAlign = TableCaptionAlign.Bottom;
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual ("<table>\n\t<caption align=\"bottom\">\n\t\tmono\n\t</caption>\n</table>", s.ToLower (), "Caption/Bottom");
-#else
-                       Assert.AreEqual ("<table border=\"0\">\n\t<caption align=\"bottom\">\n\t\tmono\n\t</caption>\n</table>", s.ToLower (), "Caption/Bottom");
-#endif
                        t.CaptionAlign = TableCaptionAlign.Right;
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual ("<table>\n\t<caption align=\"right\">\n\t\tmono\n\t</caption>\n</table>", s.ToLower (), "Caption/Right");
-#else
-                       Assert.AreEqual ("<table border=\"0\">\n\t<caption align=\"right\">\n\t\tmono\n\t</caption>\n</table>", s.ToLower (), "Caption/Right");
-#endif
                        t.CaptionAlign = TableCaptionAlign.Left;
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual ("<table>\n\t<caption align=\"left\">\n\t\tmono\n\t</caption>\n</table>", s.ToLower (), "Caption/Left");
-#else
-                       Assert.AreEqual ("<table border=\"0\">\n\t<caption align=\"left\">\n\t\tmono\n\t</caption>\n</table>", s.ToLower (), "Caption/Left");
-#endif
                        t.Caption = null;
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual ("<table>\n\n</table>", s, "CaptionAlign without Caption");
-#else
-                       Assert.AreEqual ("<table border=\"0\">\n\n</table>", s, "CaptionAlign without Caption");
-#endif
                        t.CaptionAlign = TableCaptionAlign.NotSet;
 
                        t.BackImageUrl = imageUrl;
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual ("<table style=\"background-image:url(http://www.mono-project.com/stylesheets/images.wiki.png);\">\n\n</table>", s, "BackImageUrl");
-#else
-                       Assert.AreEqual ("<table border=\"0\" style=\"background-image:url(http://www.mono-project.com/stylesheets/images.wiki.png);\">\n\n</table>", s, "BackImageUrl");
-#endif
                        t.BackImageUrl = localImageUrl;
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual ("<table style=\"background-image:url(foo.jpg);\">\n\n</table>", s, "BackImageUrl");
-#else
-                       Assert.AreEqual ("<table border=\"0\" style=\"background-image:url(foo.jpg);\">\n\n</table>", s, "BackImageUrl");
-#endif
                        t.BackImageUrl = String.Empty;
                }
 
@@ -416,11 +332,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (RenderInAspxPage_OnLoad));
                        string res = t.Run ();
-#if NET_4_0
                        Assert.IsTrue (res.IndexOf ("<table id=\"MagicID_A1C3\" style=\"background-image:url(foo.jpg);\"") != -1, res);
-#else
-                       Assert.IsTrue (res.IndexOf ("<table id=\"MagicID_A1C3\" border=\"0\" style=\"background-image:url(foo.jpg);\"")!= -1, res);
-#endif
                }
 
                public static void RenderInAspxPage_OnLoad (Page p)
@@ -474,31 +386,19 @@ namespace MonoTests.System.Web.UI.WebControls {
                        Assert.AreEqual (1, t.Rows.Count, "r1");
                        Assert.AreEqual (1, t.Controls.Count, "c1");
                        string s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual (Adjust ("<table>\n\t<tr>\n\n\t</tr>\n</table>"), Adjust (s), "tr-1");
-#else
-                       Assert.AreEqual (Adjust ("<table border=\"0\">\n\t<tr>\n\n\t</tr>\n</table>"), Adjust (s), "tr-1");
-#endif
 
                        // change instance properties
                        tr.HorizontalAlign = HorizontalAlign.Justify;
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual (Adjust ("<table>\n\t<tr align=\"justify\">\n\n\t</tr>\n</table>"), Adjust (s), "tr-1j");
-#else
-                       Assert.AreEqual (Adjust ("<table border=\"0\">\n\t<tr align=\"justify\">\n\n\t</tr>\n</table>"), Adjust (s), "tr-1j");
-#endif
 
                        // add it again (same instance)
                        t.Rows.Add (tr);
                        Assert.AreEqual (1, t.Rows.Count, "t1bis");
                        Assert.AreEqual (1, t.Controls.Count, "c1bis");
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual (Adjust ("<table>\n\t<tr align=\"justify\">\n\n\t</tr>\n</table>"), Adjust (s), "tr-1bis");
-#else
-                       Assert.AreEqual (Adjust ("<table border=\"0\">\n\t<tr align=\"justify\">\n\n\t</tr>\n</table>"), Adjust (s), "tr-1bis");
-#endif
                        tr.HorizontalAlign = HorizontalAlign.NotSet;
 
                        tr = new TableRow ();
@@ -507,11 +407,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        Assert.AreEqual (2, t.Rows.Count, "r2");
                        Assert.AreEqual (2, t.Controls.Count, "c2");
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual (Adjust ("<table>\n\t<tr>\n\n\t</tr><tr align=\"justify\">\n\n\t</tr>\n</table>"), Adjust (s), "tr-2");
-#else
-                       Assert.AreEqual (Adjust ("<table border=\"0\">\n\t<tr>\n\n\t</tr><tr align=\"justify\">\n\n\t</tr>\n</table>"), Adjust (s), "tr-2");
-#endif
 
                        tr = new TableRow ();
                        tr.VerticalAlign = VerticalAlign.Bottom;
@@ -519,19 +415,11 @@ namespace MonoTests.System.Web.UI.WebControls {
                        Assert.AreEqual (3, t.Rows.Count, "r3");
                        Assert.AreEqual (3, t.Controls.Count, "c3");
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual (Adjust ("<table>\n\t<tr>\n\n\t</tr><tr align=\"justify\">\n\n\t</tr><tr valign=\"bottom\">\n\n\t</tr>\n</table>"), Adjust (s), "tr-3");
-#else
-                       Assert.AreEqual (Adjust ("<table border=\"0\">\n\t<tr>\n\n\t</tr><tr align=\"justify\">\n\n\t</tr><tr valign=\"bottom\">\n\n\t</tr>\n</table>"), Adjust (s), "tr-3");
-#endif
 
                        t.Caption = "caption";
                        s = t.Render ();
-#if NET_4_0
                        Assert.AreEqual (Adjust ("<table>\n\t<caption>\n\t\tcaption\n\t</caption><tr>\n\n\t</tr><tr align=\"justify\">\n\n\t</tr><tr valign=\"bottom\">\n\n\t</tr>\n</table>"), Adjust (s), "tr-2c");
-#else
-                       Assert.AreEqual (Adjust ("<table border=\"0\">\n\t<caption>\n\t\tcaption\n\t</caption><tr>\n\n\t</tr><tr align=\"justify\">\n\n\t</tr><tr valign=\"bottom\">\n\n\t</tr>\n</table>"), Adjust (s), "tr-2c");
-#endif
                }
 
                [Test]
@@ -620,11 +508,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        Table t = new Table ();
                        t.RenderBeginTag (writer);
                        string s = writer.InnerWriter.ToString ();
-#if NET_4_0
                        Assert.AreEqual ("<table>\n", s, "empty");
-#else
-                       Assert.AreEqual ("<table border=\"0\">\n", s, "empty");
-#endif
                }
 
                [Test]
@@ -635,11 +519,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        t.CellPadding = 1;
                        t.RenderBeginTag (writer);
                        string s = writer.InnerWriter.ToString ();
-#if NET_4_0
                        Assert.AreEqual ("<table cellpadding=\"1\">\n", s, "CellPadding");
-#else
-                       Assert.AreEqual ("<table cellpadding=\"1\" border=\"0\">\n", s, "CellPadding");
-#endif
                }
 
                [Test]
@@ -650,11 +530,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        t.Caption = "caption";
                        t.RenderBeginTag (writer);
                        string s = writer.InnerWriter.ToString ();
-#if NET_4_0
                        Assert.AreEqual ("<table>\n\t<caption>\n\t\tcaption\n\t</caption>", s, "caption");
-#else
-                       Assert.AreEqual ("<table border=\"0\">\n\t<caption>\n\t\tcaption\n\t</caption>", s, "caption");
-#endif
                }
 
                [Test]
@@ -666,11 +542,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        t.CaptionAlign = TableCaptionAlign.Top;
                        t.RenderBeginTag (writer);
                        string s = writer.InnerWriter.ToString ();
-#if NET_4_0
                        Assert.AreEqual ("<table>\n\t<caption align=\"top\">\n\t\tcaption\n\t</caption>", s.ToLower (), "caption");
-#else
-                       Assert.AreEqual ("<table border=\"0\">\n\t<caption align=\"top\">\n\t\tcaption\n\t</caption>", s.ToLower (), "caption");
-#endif
                }
 
                [Test]
@@ -681,11 +553,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        t.Rows.Add (new TableRow ());
                        t.RenderBeginTag (writer);
                        string s = writer.InnerWriter.ToString ();
-#if NET_4_0
                        Assert.AreEqual ("<table>\n", s, "tr");
-#else
-                       Assert.AreEqual ("<table border=\"0\">\n", s, "tr");
-#endif
                }
 
                [Test]
index a50d339cfaf1563489bf5ce848db168a1ee2b947..88388e870fc1a952ea30419a2a9b59da2c0f9467 100644 (file)
@@ -105,11 +105,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        Poker t = new Poker ();
                        t.TextMode = TextBoxMode.MultiLine;
                        t.Text = "</textarea>";
-#if NET_4_0
                        string exp = "<textarea rows=\"2\" cols=\"20\">\r\n&lt;/textarea&gt;</textarea>";
-#else
-                       string exp = "<textarea rows=\"2\" cols=\"20\">&lt;/textarea&gt;</textarea>";
-#endif
 
                        HtmlDiff.AssertAreEqual(exp, t.Render (),"MultilineRenderEscape");
                }
@@ -164,11 +160,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        t.ValidationGroup = "VG";
                        t.CausesValidation = true;
                        t.TextMode = TextBoxMode.MultiLine;
-#if NET_4_0
                        string exp = "<textarea rows=\"2\" cols=\"20\">\r\n</textarea>";
-#else
-                       string exp = "<textarea rows=\"2\" cols=\"20\"></textarea>";
-#endif
                        HtmlDiff.AssertAreEqual (exp, t.Render (),"ValidationRender");
                }
 
index 2cf00c0f6f06cd9fc3f1f0da56ac0c11cacf3f5d..6fae07cfcd189566ece431a9f14062d88fad7857 100644 (file)
@@ -156,18 +156,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                [Category ("NunitWeb")]
                public void TreeNode_NavigateUrl () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNavigateUrl));
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"NavigateUrl\" id=\"treeview1t0\">TreeNode1</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget =
-@"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=kffkK8wYLPknq-W8AKNdNQ2&amp;t=632883840303269703"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><img src=""/NunitWeb/WebResource.axd?d=edXX1vkoy5lI0CekgaZ5zZhMbc1ZCZv4nlS9J-l53l41&amp;t=632883840303269703"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""NavigateUrl"" id=""treeview1t0"">TreeNode1</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "PostbackNavigate");
                }
@@ -194,23 +183,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                [Category ("NunitWeb")]
                public void TreeNode_Render () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadRender));
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tvalue&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse text\" style=\"border-width:0;\" /></a></td><td><a href=\"navigateUrl\" target=\"target\" title=\"ToolTip\" id=\"treeview1t0i\" tabindex=\"-1\"><img src=\"imageUrl\" alt=\"ImageToolTip\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><input type=\"checkbox\" name=\"treeview1n0CheckBox\" id=\"treeview1n0CheckBox\" checked=\"checked\" title=\"ToolTip\" /><a class=\"treeview1_0\" href=\"navigateUrl\" target=\"target\" title=\"ToolTip\" id=\"treeview1t0\">text</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;svalue\\\\childenode&#39;)\" id=\"treeview1t1\">childenode</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget =
-@"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=kffkK8wYLPknq-W8AKNdNQ2&amp;t=632883840303269703"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a id=""treeview1n0"" href=""javascript:TreeView_ToggleNode(treeview1_Data,0,treeview1n0,' ',treeview1n0Nodes)""><img src=""/NunitWeb/WebResource.axd?d=edXX1vkoy5lI0CekgaZ5zW7-1Af97Wq_r6fRK7PDqP81&amp;t=632883840303269703"" alt=""Collapse text"" style=""border-width:0;"" /></a></td><td><a href=""navigateUrl"" target=""target"" onclick=""javascript:TreeView_SelectNode(treeview1_Data, this,'treeview1t0');javascript:TreeView_ToggleNode(treeview1_Data,0,treeview1n0,' ',treeview1n0Nodes)"" title=""ToolTip"" id=""treeview1t0i""><img src=""imageUrl"" alt=""ImageToolTip"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><input type=""checkbox"" name=""treeview1n0CheckBox"" id=""treeview1n0CheckBox"" checked=""checked"" title=""text"" /><a class=""treeview1_0"" href=""navigateUrl"" target=""target"" onclick=""javascript:TreeView_SelectNode(treeview1_Data, this,'treeview1t0');javascript:TreeView_ToggleNode(treeview1_Data,0,treeview1n0,' ',treeview1n0Nodes)"" title=""ToolTip"" id=""treeview1t0"">text</a></td>
-               </tr>
-       </table>
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=edXX1vkoy5lI0CekgaZ5zZhMbc1ZCZv4nlS9J-l53l41&amp;t=632883840303269703"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','svalue\\childenode')"" onclick=""TreeView_SelectNode(treeview1_Data, this,'treeview1t1');"" id=""treeview1t1"">childenode</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "Render");
                }
index c67c20264c7d0a6d74e50c2f11556b0f52f71846..26c5088ccf80d21e12be7aaaee864949746300b3 100644 (file)
@@ -686,37 +686,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Render_Defaults () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadRenderDefaults));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Book\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1t0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t1\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t2\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t3\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t4\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t5\">Section</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t2"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t3"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t5"">Section</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "RenderDefaults");
@@ -743,69 +713,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadRenderLevelStyleCssClass));
 #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Book\" style=\"border-width:0;\" /></a></td><td class=\"TestCssClass1 treeview1_2\" style=\"white-space:nowrap;\"><a class=\"treeview1_0 TestCssClass1 treeview1_1\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1t0\" style=\"border-style:none;font-size:1em;\">Book</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td class=\"TestCssClass2 treeview1_4\" style=\"white-space:nowrap;\"><a class=\"treeview1_0 TestCssClass2 treeview1_3\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t1\" style=\"border-style:none;font-size:1em;\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t2\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t3\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td class=\"TestCssClass2 treeview1_4\" style=\"white-space:nowrap;\"><a class=\"treeview1_0 TestCssClass2 treeview1_3\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t4\" style=\"border-style:none;font-size:1em;\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t5\">Section</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img height=""0"" width=""0"" src=""/WebResource.axd?d=0d4cddf62c21b386a0c479d4b29c5a4c0a78811622d960d7&amp;t=634020843490000000"" alt=""Skip Navigation Links."" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','ec|0')""><img alt=""Collapse Book"" src=""/WebResource.axd?d=2ffadef8bb28bb33bd311b2cae0874942ed83fb6bc74f1d5&amp;t=634020843490000000"" style=""border-width:0;"" /></a></td><td class=""TestCssClass1 treeview1_2"" style=""white-space:nowrap;""><a class=""treeview1_0 TestCssClass1 treeview1_1"" href=""javascript:__doPostBack('treeview1','sel|0')"">Book</a></td>
-               </tr><tr style=""height:0px;"">
-                       <td></td>
-
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr style=""height:0px;"">
-                       <td></td>
-               </tr><tr>
-                       <td><div style=""width:20px;height:1px;"">
-
-                       </div></td><td><a href=""javascript:__doPostBack('treeview1','ec|0_0')""><img alt=""Collapse Chapter"" src=""/WebResource.axd?d=2ffadef8bb28bb33bd311b2cae0874942ed83fb6bc74f1d5&amp;t=634020843490000000"" style=""border-width:0;"" /></a></td><td class=""TestCssClass2 treeview1_4"" style=""white-space:nowrap;""><a class=""treeview1_0 TestCssClass2 treeview1_3"" href=""javascript:__doPostBack('treeview1','sel|0_0')"">Chapter</a></td>
-               </tr><tr style=""height:0px;"">
-
-                       <td></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px;"">
-
-                       </div></td><td><div style=""width:20px;height:1px;"">
-
-                       </div></td><td><img alt="""" src=""/WebResource.axd?d=2ffadef8bb28bb335d56d5a83863fb8971aa8a175d1537f9&amp;t=634020843490000000"" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sel|0_0_0')"">Section</a></td>
-
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px;"">
-
-                       </div></td><td><div style=""width:20px;height:1px;"">
-
-                       </div></td><td><img alt="""" src=""/WebResource.axd?d=2ffadef8bb28bb335d56d5a83863fb8971aa8a175d1537f9&amp;t=634020843490000000"" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sel|0_0_1')"">Section</a></td>
-               </tr>
-
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr style=""height:0px;"">
-                       <td></td>
-               </tr><tr>
-                       <td><div style=""width:20px;height:1px;"">
-
-                       </div></td><td><a href=""javascript:__doPostBack('treeview1','ec|0_1')""><img alt=""Collapse Chapter"" src=""/WebResource.axd?d=2ffadef8bb28bb33bd311b2cae0874942ed83fb6bc74f1d5&amp;t=634020843490000000"" style=""border-width:0;"" /></a></td><td class=""TestCssClass2 treeview1_4"" style=""white-space:nowrap;""><a class=""treeview1_0 TestCssClass2 treeview1_3"" href=""javascript:__doPostBack('treeview1','sel|0_1')"">Chapter</a></td>
-               </tr><tr style=""height:0px;"">
-                       <td></td>
-
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px;"">
-
-                       </div></td><td><div style=""width:20px;height:1px;"">
-
-                       </div></td><td><img alt="""" src=""/WebResource.axd?d=2ffadef8bb28bb335d56d5a83863fb8971aa8a175d1537f9&amp;t=634020843490000000"" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sel|0_1_0')"">Section</a></td>
-               </tr>
-
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
 #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "Render_LevelStyle_CssClass");
@@ -850,11 +758,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        tv.RenderBeginTag (tw);
                        tv.RenderEndTag (tw);
                        string str = sw.ToString ();
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=kffkK8wYLPknq-W8AKNdNQ2&amp;t=632883840303269703\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#endif
                        HtmlDiff.AssertAreEqual (strTarget, str, "RenderTags");
                }
 
@@ -863,37 +767,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Method_ExpandAll () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadExpandAll));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Book\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1t0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t1\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t2\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t3\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t4\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t5\">Section</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t2"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t3"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t5"">Section</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "ExpandAll");
@@ -920,25 +794,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Method_NodeExpand () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeExpand));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Book\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1t0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qsyBHMcxXXKbUwruYE_9Mo1&amp;t=634067491135766272\" alt=\"Expand Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t1\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qsyBHMcxXXKbUwruYE_9Mo1&amp;t=634067491135766272\" alt=\"Expand Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t4\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "NodeExpand");
@@ -966,17 +822,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Method_NodeExpandAll () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeExpandAll));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qsyBHMcxXXKbUwruYE_9Mo1&amp;t=634067491135766272\" alt=\"Expand Book\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1t0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "NodeExpandAll");
@@ -1004,17 +850,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Method_CollapseAll () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadCollapseAll));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qsyBHMcxXXKbUwruYE_9Mo1&amp;t=634067491135766272\" alt=\"Expand Book\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1t0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "CollapseAll");
@@ -1041,17 +877,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Method_NodeCollapse () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeCollapse));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qsyBHMcxXXKbUwruYE_9Mo1&amp;t=634067491135766272\" alt=\"Expand Book\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1t0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "NodeCollapse");
@@ -1078,29 +904,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Method_NodeCollapseAll () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeCollapseAll));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Book\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1t0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qsyBHMcxXXKbUwruYE_9Mo1&amp;t=634067491135766272\" alt=\"Expand Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t1\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t4\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t5\">Section</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t5"">Section</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "NodeCollapseAll");
@@ -1127,33 +931,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Method_NodeToggleExpandState1 () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeToggleExpandState1));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Book\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1t0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t1\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t2\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t3\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qsyBHMcxXXKbUwruYE_9Mo1&amp;t=634067491135766272\" alt=\"Expand Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t4\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t2"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t3"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "NodeToggleExpandState1");
@@ -1180,17 +958,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Method_NodeToggleExpandState2 () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeToggleExpandState2));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qsyBHMcxXXKbUwruYE_9Mo1&amp;t=634067491135766272\" alt=\"Expand Book\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1t0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "NodeToggleExpandState2");
@@ -1304,25 +1072,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                        PageInvoker invoker = new PageInvoker (delegates);
                        WebTest t = new WebTest (invoker);
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Book\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1t0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qsyBHMcxXXKbUwruYE_9Mo1&amp;t=634067491135766272\" alt=\"Expand Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t1\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qsyBHMcxXXKbUwruYE_9Mo1&amp;t=634067491135766272\" alt=\"Expand Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t4\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "NodeToggleExpandState2");
@@ -1380,25 +1130,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Render_Bindings () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadBindings));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook Title&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=9M_pBQelEbwLdXyZk6p9TZbZQJ7rAlJ-YkXM8P7PpIM1&amp;t=634067491135766272\" alt=\"Collapse Book Title\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook Title&#39;)\" id=\"treeview1t0\">Book Title</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=9M_pBQelEbwLdXyZk6p9TaTo2-lEuHkqGL9mwa70sVQ1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook Title\\\\Chapter 1&#39;)\" id=\"treeview1t1\">Chapter 1</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=9M_pBQelEbwLdXyZk6p9TaTo2-lEuHkqGL9mwa70sVQ1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook Title\\\\Chapter 2&#39;)\" id=\"treeview1t2\">Chapter 2</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook Title')""><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvPWfVVXMf-ioilxt_CauIRc1&amp;t=632900536532114160"" alt=""Collapse Book Title"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook Title')"" id=""treeview1t0"">Book Title</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvNJinrRt8LmxJBdwpNumnBQ1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook Title\\Chapter 1')"" id=""treeview1t1"">Chapter 1</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvNJinrRt8LmxJBdwpNumnBQ1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook Title\\Chapter 2')"" id=""treeview1t2"">Chapter 2</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "RenderBindings");
@@ -1437,25 +1169,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Render_Navigate () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNavigate));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tmyNode0&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse myNode0\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"myUrl0\" target=\"myTarget\" id=\"treeview1t0\">myNode0</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"myUrl00\" target=\"myTarget\" id=\"treeview1t1\">myNode00</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"myUrl1\" target=\"myTarget\" id=\"treeview1t2\">myNode1</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tmyNode0')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse myNode0"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""myUrl0"" target=""myTarget"" id=""treeview1t0"">myNode0</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""myUrl00"" target=""myTarget"" id=""treeview1t1"">myNode00</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""myUrl1"" target=""myTarget"" id=""treeview1t2"">myNode1</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "RenderNavigate");
@@ -1487,37 +1201,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Render_Checkboxes () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadCheckboxes));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Book\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><input type=\"checkbox\" name=\"treeview1n0CheckBox\" id=\"treeview1n0CheckBox\" /><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1t0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><input type=\"checkbox\" name=\"treeview1n1CheckBox\" id=\"treeview1n1CheckBox\" /><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t1\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><input type=\"checkbox\" name=\"treeview1n2CheckBox\" id=\"treeview1n2CheckBox\" /><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t2\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><input type=\"checkbox\" name=\"treeview1n3CheckBox\" id=\"treeview1n3CheckBox\" /><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t3\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><input type=\"checkbox\" name=\"treeview1n4CheckBox\" id=\"treeview1n4CheckBox\" /><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t4\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><input type=\"checkbox\" name=\"treeview1n5CheckBox\" id=\"treeview1n5CheckBox\" /><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t5\">Section</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><input type=""checkbox"" name=""treeview1n0CheckBox"" id=""treeview1n0CheckBox"" title=""Book"" /><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><input type=""checkbox"" name=""treeview1n1CheckBox"" id=""treeview1n1CheckBox"" title=""Chapter"" /><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><input type=""checkbox"" name=""treeview1n2CheckBox"" id=""treeview1n2CheckBox"" title=""Section"" /><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t2"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><input type=""checkbox"" name=""treeview1n3CheckBox"" id=""treeview1n3CheckBox"" title=""Section"" /><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t3"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><input type=""checkbox"" name=""treeview1n4CheckBox"" id=""treeview1n4CheckBox"" title=""Chapter"" /><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><input type=""checkbox"" name=""treeview1n5CheckBox"" id=""treeview1n5CheckBox"" title=""Section"" /><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t5"">Section</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "RenderCheckboxes");
@@ -1545,37 +1229,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Render_Values () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadValues));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"mySkipLinkText\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=9M_pBQelEbwLdXyZk6p9TZbZQJ7rAlJ-YkXM8P7PpIM1&amp;t=634067491135766272\" alt=\"Collapse Book\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1t0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:30px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=9M_pBQelEbwLdXyZk6p9TZbZQJ7rAlJ-YkXM8P7PpIM1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t1\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:30px;height:1px\"></div></td><td><div style=\"width:30px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=9M_pBQelEbwLdXyZk6p9TaTo2-lEuHkqGL9mwa70sVQ1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t2\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:30px;height:1px\"></div></td><td><div style=\"width:30px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=9M_pBQelEbwLdXyZk6p9TaTo2-lEuHkqGL9mwa70sVQ1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t3\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:30px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=9M_pBQelEbwLdXyZk6p9TZbZQJ7rAlJ-YkXM8P7PpIM1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t4\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:30px;height:1px\"></div></td><td><div style=\"width:30px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=9M_pBQelEbwLdXyZk6p9TaTo2-lEuHkqGL9mwa70sVQ1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t5\">Section</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""mySkipLinkText"" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvPWfVVXMf-ioilxt_CauIRc1&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:30px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvPWfVVXMf-ioilxt_CauIRc1&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:30px;height:1px""></div></td><td><div style=""width:30px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvNJinrRt8LmxJBdwpNumnBQ1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t2"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:30px;height:1px""></div></td><td><div style=""width:30px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvNJinrRt8LmxJBdwpNumnBQ1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t3"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:30px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvPWfVVXMf-ioilxt_CauIRc1&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:30px;height:1px""></div></td><td><div style=""width:30px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvNJinrRt8LmxJBdwpNumnBQ1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t5"">Section</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "RenderValues");
@@ -1606,37 +1260,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Render_ImagesOn () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadImagesOn));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"Test666/dashminus.gif\" alt=\"Test111\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1t0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"Test666/tminus.gif\" alt=\"Test111\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t1\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"><img src=\"Test666/i.gif\" alt=\"\" /></div></td><td><img src=\"Test666/t.gif\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t2\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"><img src=\"Test666/i.gif\" alt=\"\" /></div></td><td><img src=\"Test666/l.gif\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t3\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"Test666/lminus.gif\" alt=\"Test111\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t4\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"Test666/l.gif\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t5\">Section</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""Test666/dashminus.gif"" alt=""Test111"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""Test666/tminus.gif"" alt=""Test111"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""><img src=""Test666/i.gif"" alt="""" /></div></td><td><img src=""Test666/t.gif"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t2"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""><img src=""Test666/i.gif"" alt="""" /></div></td><td><img src=""Test666/l.gif"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t3"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""Test666/lminus.gif"" alt=""Test111"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""Test666/l.gif"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t5"">Section</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "RenderImagesOn");
@@ -1646,37 +1270,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Render_ImagesOff () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadImagesOff));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1n0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1n1\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1n2\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1n3\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1n4\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1n5\">Section</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1n0"">Book</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1n1"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1n2"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1n3"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1n4"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1n5"">Section</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "RenderImagesOff");
@@ -1728,18 +1322,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                [Category ("NunitWeb")]
                public void TreeView_Render_WrapOn () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadWrapOn));
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sTreeNode1&#39;)\" onclick=\"TreeView_SelectNode(treeview1_Data, this,&#39;treeview1t0&#39;);\" id=\"treeview1t0\">TreeNode1</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget =
-@"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=kffkK8wYLPknq-W8AKNdNQ2&amp;t=632883840303269703"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><img src=""/NunitWeb/WebResource.axd?d=edXX1vkoy5lI0CekgaZ5zZhMbc1ZCZv4nlS9J-l53l41&amp;t=632883840303269703"" alt="""" /></td><td><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sTreeNode1')"" onclick=""TreeView_SelectNode(treeview1_Data, this,'treeview1t0');"" id=""treeview1t0"">TreeNode1</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "RenderWrapOn");
                }
@@ -1747,18 +1330,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                [Category ("NunitWeb")]
                public void TreeView_Render_WrapOff () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadWrapOff));
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sTreeNode1&#39;)\" onclick=\"TreeView_SelectNode(treeview1_Data, this,&#39;treeview1t0&#39;);\" id=\"treeview1t0\">TreeNode1</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget =
-@"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=kffkK8wYLPknq-W8AKNdNQ2&amp;t=632883840303269703"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><img src=""/NunitWeb/WebResource.axd?d=edXX1vkoy5lI0CekgaZ5zZhMbc1ZCZv4nlS9J-l53l41&amp;t=632883840303269703"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sTreeNode1')"" onclick=""TreeView_SelectNode(treeview1_Data, this,'treeview1t0');"" id=""treeview1t0"">TreeNode1</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "RenderWrapOff");
                }
@@ -1792,11 +1364,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                [Category ("NunitWeb")]
                public void TreeView_Render_Client () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadClient));
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=kffkK8wYLPknq-W8AKNdNQ2&amp;t=632883840303269703\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#endif
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "RenderClient");
                }
@@ -1843,37 +1411,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Render_NodeStrings () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeStrings));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Book\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" title=\"string1\" id=\"treeview1t0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td><a href=\"string4\" id=\"treeview1t1i\" tabindex=\"-1\"><img src=\"string3\" alt=\"\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"string4\" id=\"treeview1t1\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t2\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\string6&#39;)\" id=\"treeview1t3\">string6</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\string7&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\string7&#39;)\" id=\"treeview1t4\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\string7\\\\Section&#39;)\" id=\"treeview1t5\">Section</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" title=""string1"" id=""treeview1t0"">Book</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td><a href=""string4"" id=""treeview1t1i""><img src=""string3"" alt="""" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""string4"" id=""treeview1t1"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t2"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\string6')"" id=""treeview1t3"">string6</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\string7')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\string7')"" id=""treeview1t4"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\string7\\Section')"" id=""treeview1t5"">Section</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "RenderNodeStrings");
@@ -1907,37 +1445,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Render_NodeStates1 () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeStates1));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Book\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1t0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t1\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t2\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><input type=\"checkbox\" name=\"treeview1n3CheckBox\" id=\"treeview1n3CheckBox\" /><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t3\">Section</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t4\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t5\">Section</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t2"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><input type=""checkbox"" name=""treeview1n3CheckBox"" id=""treeview1n3CheckBox"" title=""Section"" /><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t3"">Section</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t5"">Section</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "RenderNodeStates1");
@@ -1969,29 +1477,7 @@ namespace MonoTests.System.Web.UI.WebControls {
                public void TreeView_Render_NodeStates2 () {
                        WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeStates2));
                        #region HTML
-#if NET_4_0
                        string strTarget = "<a href=\"#treeview1_SkipLink\"><img alt=\"Skip Navigation Links.\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" width=\"0\" height=\"0\" style=\"border-width:0px;\" /></a><div id=\"treeview1\">\r\n\t<table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Book\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook&#39;)\" id=\"treeview1t0\">Book</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qsyBHMcxXXKbUwruYE_9Mo1&amp;t=634067491135766272\" alt=\"Expand Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t1\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><a href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;tBook\\\\Chapter&#39;)\"><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2qLe7WfoYyDfWfVSkV5Suzs1&amp;t=634067491135766272\" alt=\"Collapse Chapter\" style=\"border-width:0;\" /></a></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter&#39;)\" id=\"treeview1t4\">Chapter</a></td>\r\n\t\t</tr>\r\n\t</table><table cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0;\">\r\n\t\t<tr>\r\n\t\t\t<td><div style=\"width:20px;height:1px\"></div></td><td><div style=\"width:20px;height:1px\"></div></td><td><img src=\"/NunitWeb/WebResource.axd?d=Me-CdxEHiTTT3lXTDd0I2ilpe6vhhhJjssENmbNkrSY1&amp;t=634067491135766272\" alt=\"\" /></td><td style=\"white-space:nowrap;\"><a class=\"treeview1_0\" href=\"javascript:__doPostBack(&#39;treeview1&#39;,&#39;sBook\\\\Chapter\\\\Section&#39;)\" id=\"treeview1t5\">Section</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"treeview1_SkipLink\"></a>";
-#else
-                       string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
-       <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
-               </tr>
-       </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
-               <tr>
-                       <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t5"">Section</a></td>
-               </tr>
-       </table>
-</div><a id=""treeview1_SkipLink""></a>";
-#endif
                        #endregion
                        string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
                        HtmlDiff.AssertAreEqual (strTarget, str, "RenderNodeStates2");
index 7c5e7530fa2ebbba8cf8f9f07943a459c7c2dfa4..4f43e8e142105e8399d805cf45901bc64ae2e486 100644 (file)
@@ -270,7 +270,6 @@ namespace MonoTests.System.Web.UI.WebControls
 
                        StopValidationTest();
                }
-#if NET_4_0
                [Test]
                public void SupportsDisabledAttribute ()
                {
@@ -284,6 +283,5 @@ namespace MonoTests.System.Web.UI.WebControls
                        Assert.AreEqual (ver35, p.RenderingCompatibility, "#A2-1");
                        Assert.IsTrue (p.SupportsDisabledAttribute, "#A2-2");
                }
-#endif
        }
 }
index ceb2dad584d0af94b253cc96b8f8951c939d6f26..03f41d9dbbcd1fe97a89f46d05a66dc16e53ce3a 100644 (file)
@@ -215,11 +215,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        // This render test include Title property test 
                        string html = new WebTest (PageInvoker.CreateOnLoad (
                                new PageDelegate (Render_Test))).Run ();
-#if NET_4_0
                        string origin = "<table cellspacing=\"0\" cellpadding=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td style=\"height:100%;\"><a href=\"#ctl01_SkipLink\"><img alt=\"Skip Navigation Links.\" height=\"0\" width=\"0\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" style=\"border-width:0px;\" /></a><table id=\"ctl01_SideBarContainer_SideBarList\" cellspacing=\"0\" style=\"border-collapse:collapse;\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td style=\"font-weight:bold;\"><a id=\"ctl01_SideBarContainer_SideBarList_SideBarButton_0\" href=\"javascript:__doPostBack(&#39;ctl01$SideBarContainer$SideBarList$ctl00$SideBarButton&#39;,&#39;&#39;)\">my_title</a></td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td><a id=\"ctl01_SideBarContainer_SideBarList_SideBarButton_1\" href=\"javascript:__doPostBack(&#39;ctl01$SideBarContainer$SideBarList$ctl01$SideBarButton&#39;,&#39;&#39;)\">my_title_2</a></td>\r\n\t\t\t</tr>\r\n\t\t</table><a id=\"ctl01_SkipLink\"></a></td><td style=\"height:100%;\"><table cellspacing=\"0\" cellpadding=\"0\" style=\"height:100%;width:100%;border-collapse:collapse;\">\r\n\t\t\t<tr style=\"height:100%;\">\r\n\t\t\t\t<td>123</td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td align=\"right\"><table cellspacing=\"5\" cellpadding=\"5\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl01$StartNavigationTemplateContainerID$StartNextButton\" value=\"Next\" id=\"ctl01_StartNavigationTemplateContainerID_StartNextButton\" /></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origin = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td style=\"height:100%;\"><a href=\"#ctl01_SkipLink\"><img alt=\"Skip Navigation Links.\" height=\"0\" width=\"0\" src=\"/NunitWeb/WebResource.axd?d=4RHYfeNnynkXiM59uthjZg2&amp;t=633802729995006876\" style=\"border-width:0px;\" /></a><table id=\"ctl01_SideBarContainer_SideBarList\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td style=\"font-weight:bold;\"><a id=\"ctl01_SideBarContainer_SideBarList_ctl00_SideBarButton\" href=\"javascript:__doPostBack('ctl01$SideBarContainer$SideBarList$ctl00$SideBarButton','')\">my_title</a></td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td><a id=\"ctl01_SideBarContainer_SideBarList_ctl01_SideBarButton\" href=\"javascript:__doPostBack('ctl01$SideBarContainer$SideBarList$ctl01$SideBarButton','')\">my_title_2</a></td>\r\n\t\t\t</tr>\r\n\t\t</table><a id=\"ctl01_SkipLink\"></a></td><td style=\"height:100%;\"><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"height:100%;width:100%;border-collapse:collapse;\">\r\n\t\t\t<tr style=\"height:100%;\">\r\n\t\t\t\t<td>123</td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td align=\"right\"><table cellspacing=\"5\" cellpadding=\"5\" border=\"0\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl01$StartNavigationTemplateContainerID$StartNextButton\" value=\"Next\" id=\"ctl01_StartNavigationTemplateContainerID_StartNextButton\" /></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#endif
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (html);
                        HtmlDiff.AssertAreEqual (origin, renderedHtml, "BaseRender");
                        if (html.IndexOf ("my_title") < 0)
index 03a3921653f9278630c5eea8a1416fa633a7b61f..f81a3a88c417780c6dde98e78fdd905df141cdb8 100644 (file)
@@ -300,7 +300,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        base.EnsureChildControls ();
                }
        }
-#if NET_4_0
        class TestHeaderSpan : WebControl
        {
                public TestHeaderSpan ()
@@ -360,7 +359,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        return ctl;
                }
        }
-#endif
        [TestFixture]
        public class WizardTest
        {
@@ -374,12 +372,10 @@ namespace MonoTests.System.Web.UI.WebControls
                        Assert.AreEqual ("MoveNext", Wizard.MoveNextCommandName, "MoveNextCommandName");
                        Assert.AreEqual ("MovePrevious", Wizard.MovePreviousCommandName, "MovePreviousCommandName");
                        Assert.AreEqual ("Move", Wizard.MoveToCommandName, "MoveToCommandName");
-#if NET_4_0
                        Assert.AreEqual ("headerPlaceholder", Wizard.HeaderPlaceholderId, "HeaderPlaceHolderId");
                        Assert.AreEqual ("navigationPlaceholder", Wizard.NavigationPlaceholderId, "NavigationPlaceHolderId");
                        Assert.AreEqual ("sideBarPlaceholder", Wizard.SideBarPlaceholderId, "SidePlaceholderId");
                        Assert.AreEqual ("wizardStepPlaceholder", Wizard.WizardStepPlaceholderId, "WizardStepPlaceholderId");
-#endif
                        // Protected Fields 
                        Assert.AreEqual ("CancelButton", PokerWizard.PokerCancelButtonID, "CancelButtonID");
                        Assert.AreEqual ("CustomFinishButton", PokerWizard.PokerCustomFinishButtonID, "CustomFinishButtonID");
@@ -539,11 +535,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        WebTest t = new WebTest (PageInvoker.CreateOnPreInit (_CancelButtonPropertyRendering));
                        string html = t.Run ();
-#if NET_4_0
                        string origin = "<table cellspacing=\"0\" cellpadding=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr style=\"height:100%;\">\r\n\t\t<td>Start</td>\r\n\t</tr><tr>\r\n\t\t<td align=\"right\"><table cellspacing=\"5\" cellpadding=\"5\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl00$StartNavigationTemplateContainerID$StartNextButton\" value=\"Next\" id=\"ctl00_StartNavigationTemplateContainerID_StartNextButton\" /></td><td align=\"right\"><input type=\"submit\" name=\"ctl00$StartNavigationTemplateContainerID$CancelButton\" value=\"CancelButtonText\" id=\"ctl00_StartNavigationTemplateContainerID_CancelButton\" style=\"border-color:Red;\" /></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origin = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr style=\"height:100%;\">\r\n\t\t<td>Start</td>\r\n\t</tr><tr>\r\n\t\t<td align=\"right\"><table cellspacing=\"5\" cellpadding=\"5\" border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl00$StartNavigationTemplateContainerID$StartNextButton\" value=\"Next\" id=\"ctl00_StartNavigationTemplateContainerID_StartNextButton\" /></td><td align=\"right\"><input type=\"submit\" name=\"ctl00$StartNavigationTemplateContainerID$CancelButton\" value=\"CancelButtonText\" id=\"ctl00_StartNavigationTemplateContainerID_CancelButton\" style=\"border-color:Red;\" /></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#endif
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (html);
                        HtmlDiff.AssertAreEqual (origin, renderedHtml, "CancelButtonPropertyRendering");
                }
@@ -585,11 +577,7 @@ namespace MonoTests.System.Web.UI.WebControls
 
                        WebTest t = new WebTest (PageInvoker.CreateOnPreInit (_FinishButtonPropertyRendering));
                        string html = t.Run ();
-#if NET_4_0
                        string origin = "<table cellspacing=\"0\" cellpadding=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr style=\"height:100%;\">\r\n\t\t<td>Finish</td>\r\n\t</tr><tr>\r\n\t\t<td align=\"right\"><table cellspacing=\"5\" cellpadding=\"5\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td align=\"right\"><input type=\"image\" name=\"ctl00$FinishNavigationTemplateContainerID$FinishPreviousImageButton\" id=\"ctl00_FinishNavigationTemplateContainerID_FinishPreviousImageButton\" src=\"http://FinishPreviousButtonImageUrl\" alt=\"FinishPreviousButtonText\" style=\"background-color:Red;\" /></td><td align=\"right\"><a id=\"ctl00_FinishNavigationTemplateContainerID_FinishLinkButton\" href=\"javascript:__doPostBack(&#39;ctl00$FinishNavigationTemplateContainerID$FinishLinkButton&#39;,&#39;&#39;)\" style=\"border-color:Red;\">FinishCompleteButtonText</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else                  
-                       string origin = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr style=\"height:100%;\">\r\n\t\t<td>Finish</td>\r\n\t</tr><tr>\r\n\t\t<td align=\"right\"><table cellspacing=\"5\" cellpadding=\"5\" border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td align=\"right\"><input type=\"image\" name=\"ctl00$FinishNavigationTemplateContainerID$FinishPreviousImageButton\" id=\"ctl00_FinishNavigationTemplateContainerID_FinishPreviousImageButton\" src=\"http://FinishPreviousButtonImageUrl\" alt=\"FinishPreviousButtonText\" style=\"background-color:Red;border-width:0px;\" /></td><td align=\"right\"><a id=\"ctl00_FinishNavigationTemplateContainerID_FinishLinkButton\" href=\"javascript:__doPostBack('ctl00$FinishNavigationTemplateContainerID$FinishLinkButton','')\" style=\"border-color:Red;\">FinishCompleteButtonText</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#endif
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (html);
                        HtmlDiff.AssertAreEqual (origin, renderedHtml, "CancelButtonPropertyRendering");
                }
@@ -634,11 +622,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        WebTest t = new WebTest (PageInvoker.CreateOnPreInit (_HeaderRendering));
                        string html = t.Run ();
-#if NET_4_0
                        string origin = "<table cellspacing=\"0\" cellpadding=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td style=\"background-color:Red;\"><input name=\"ctl00$HeaderContainer$TextBox1\" type=\"text\" id=\"ctl00_HeaderContainer_TextBox1\" /></td>\r\n\t</tr><tr style=\"height:100%;\">\r\n\t\t<td>Finish</td>\r\n\t</tr><tr>\r\n\t\t<td align=\"right\"><table cellspacing=\"5\" cellpadding=\"5\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl00$FinishNavigationTemplateContainerID$FinishPreviousButton\" value=\"Previous\" id=\"ctl00_FinishNavigationTemplateContainerID_FinishPreviousButton\" /></td><td align=\"right\"><input type=\"submit\" name=\"ctl00$FinishNavigationTemplateContainerID$FinishButton\" value=\"Finish\" id=\"ctl00_FinishNavigationTemplateContainerID_FinishButton\" /></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origin = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td style=\"background-color:Red;\"><input name=\"ctl00$HeaderContainer$TextBox1\" type=\"text\" id=\"ctl00_HeaderContainer_TextBox1\" /></td>\r\n\t</tr><tr style=\"height:100%;\">\r\n\t\t<td>Finish</td>\r\n\t</tr><tr>\r\n\t\t<td align=\"right\"><table cellspacing=\"5\" cellpadding=\"5\" border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl00$FinishNavigationTemplateContainerID$FinishPreviousButton\" value=\"Previous\" id=\"ctl00_FinishNavigationTemplateContainerID_FinishPreviousButton\" /></td><td align=\"right\"><input type=\"submit\" name=\"ctl00$FinishNavigationTemplateContainerID$FinishButton\" value=\"Finish\" id=\"ctl00_FinishNavigationTemplateContainerID_FinishButton\" /></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#endif
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (html);
                        HtmlDiff.AssertAreEqual (origin, renderedHtml, "HeaderRendering");
                }
@@ -685,11 +669,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        WebTest t = new WebTest (PageInvoker.CreateOnPreInit (_SideBarRendering));
                        string html = t.Run ();
-#if NET_4_0
                        string origin = "<table cellspacing=\"0\" cellpadding=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td style=\"background-color:Red;height:100%;\"><a href=\"#ctl00_SkipLink\"><img alt=\"Skip Navigation Links.\" height=\"0\" width=\"0\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" style=\"border-width:0px;\" /></a><table id=\"ctl00_SideBarContainer_SideBarList\" cellspacing=\"0\" style=\"border-collapse:collapse;\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td><input type=\"button\" name=\"ctl00$SideBarContainer$SideBarList$ctl00$SideBarButton\" value=\"step1\" onclick=\"javascript:__doPostBack(&#39;ctl00$SideBarContainer$SideBarList$ctl00$SideBarButton&#39;,&#39;&#39;)\" id=\"ctl00_SideBarContainer_SideBarList_SideBarButton_0\" /></td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td><input type=\"button\" name=\"ctl00$SideBarContainer$SideBarList$ctl01$SideBarButton\" value=\"step2\" onclick=\"javascript:__doPostBack(&#39;ctl00$SideBarContainer$SideBarList$ctl01$SideBarButton&#39;,&#39;&#39;)\" id=\"ctl00_SideBarContainer_SideBarList_SideBarButton_1\" /></td>\r\n\t\t\t</tr>\r\n\t\t</table><a id=\"ctl00_SkipLink\"></a></td><td style=\"height:100%;\"><table cellspacing=\"0\" cellpadding=\"0\" style=\"height:100%;width:100%;border-collapse:collapse;\">\r\n\t\t\t<tr style=\"height:100%;\">\r\n\t\t\t\t<td>Step 1</td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td align=\"right\"><table cellspacing=\"5\" cellpadding=\"5\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl00$StartNavigationTemplateContainerID$StartNextButton\" value=\"Next\" id=\"ctl00_StartNavigationTemplateContainerID_StartNextButton\" /></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origin = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td style=\"background-color:Red;height:100%;\"><a href=\"#ctl00_SkipLink\"><img alt=\"Skip Navigation Links.\" height=\"0\" width=\"0\" src=\"/NunitWeb/WebResource.axd?d=4RHYfeNnynkXiM59uthjZg2&amp;t=633802729995006876\" style=\"border-width:0px;\" /></a><table id=\"ctl00_SideBarContainer_SideBarList\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td><input type=\"button\" name=\"ctl00$SideBarContainer$SideBarList$ctl00$SideBarButton\" value=\"step1\" onclick=\"javascript:__doPostBack('ctl00$SideBarContainer$SideBarList$ctl00$SideBarButton','')\" id=\"ctl00_SideBarContainer_SideBarList_ctl00_SideBarButton\" /></td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td><input type=\"button\" name=\"ctl00$SideBarContainer$SideBarList$ctl01$SideBarButton\" value=\"step2\" onclick=\"javascript:__doPostBack('ctl00$SideBarContainer$SideBarList$ctl01$SideBarButton','')\" id=\"ctl00_SideBarContainer_SideBarList_ctl01_SideBarButton\" /></td>\r\n\t\t\t</tr>\r\n\t\t</table><a id=\"ctl00_SkipLink\"></a></td><td style=\"height:100%;\"><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"height:100%;width:100%;border-collapse:collapse;\">\r\n\t\t\t<tr style=\"height:100%;\">\r\n\t\t\t\t<td>Step 1</td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td align=\"right\"><table cellspacing=\"5\" cellpadding=\"5\" border=\"0\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl00$StartNavigationTemplateContainerID$StartNextButton\" value=\"Next\" id=\"ctl00_StartNavigationTemplateContainerID_StartNextButton\" /></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#endif
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (html);
                        HtmlDiff.AssertAreEqual (origin, renderedHtml, "SideBarRendering");
                }
@@ -742,11 +722,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        WebTest t = new WebTest (PageInvoker.CreateOnPreInit (_NavigationRendering));
                        string html = t.Run ();
-#if NET_4_0
                        string origin = "<table cellspacing=\"0\" cellpadding=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td style=\"height:100%;\"><a href=\"#ctl00_SkipLink\"><img alt=\"Skip Navigation Links.\" height=\"0\" width=\"0\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" style=\"border-width:0px;\" /></a><table id=\"ctl00_SideBarContainer_SideBarList\" cellspacing=\"0\" style=\"border-collapse:collapse;\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td style=\"font-weight:bold;\"><a id=\"ctl00_SideBarContainer_SideBarList_SideBarButton_0\" href=\"javascript:__doPostBack(&#39;ctl00$SideBarContainer$SideBarList$ctl00$SideBarButton&#39;,&#39;&#39;)\">step1</a></td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td><a id=\"ctl00_SideBarContainer_SideBarList_SideBarButton_1\" href=\"javascript:__doPostBack(&#39;ctl00$SideBarContainer$SideBarList$ctl01$SideBarButton&#39;,&#39;&#39;)\">step2</a></td>\r\n\t\t\t</tr>\r\n\t\t</table><a id=\"ctl00_SkipLink\"></a></td><td style=\"height:100%;\"><table cellspacing=\"0\" cellpadding=\"0\" style=\"height:100%;width:100%;border-collapse:collapse;\">\r\n\t\t\t<tr style=\"height:100%;\">\r\n\t\t\t\t<td>Start</td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td align=\"right\" style=\"background-color:Yellow;\"><table cellspacing=\"5\" cellpadding=\"5\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl00$StartNavigationTemplateContainerID$StartNextButton\" value=\"Next\" id=\"ctl00_StartNavigationTemplateContainerID_StartNextButton\" style=\"background-color:Red;\" /></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origin = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td style=\"height:100%;\"><a href=\"#ctl00_SkipLink\"><img alt=\"Skip Navigation Links.\" height=\"0\" width=\"0\" src=\"/NunitWeb/WebResource.axd?d=4RHYfeNnynkXiM59uthjZg2&amp;t=633802729995006876\" style=\"border-width:0px;\" /></a><table id=\"ctl00_SideBarContainer_SideBarList\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td style=\"font-weight:bold;\"><a id=\"ctl00_SideBarContainer_SideBarList_ctl00_SideBarButton\" href=\"javascript:__doPostBack('ctl00$SideBarContainer$SideBarList$ctl00$SideBarButton','')\">step1</a></td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td><a id=\"ctl00_SideBarContainer_SideBarList_ctl01_SideBarButton\" href=\"javascript:__doPostBack('ctl00$SideBarContainer$SideBarList$ctl01$SideBarButton','')\">step2</a></td>\r\n\t\t\t</tr>\r\n\t\t</table><a id=\"ctl00_SkipLink\"></a></td><td style=\"height:100%;\"><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"height:100%;width:100%;border-collapse:collapse;\">\r\n\t\t\t<tr style=\"height:100%;\">\r\n\t\t\t\t<td>Start</td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td align=\"right\" style=\"background-color:Yellow;\"><table cellspacing=\"5\" cellpadding=\"5\" border=\"0\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl00$StartNavigationTemplateContainerID$StartNextButton\" value=\"Next\" id=\"ctl00_StartNavigationTemplateContainerID_StartNextButton\" style=\"background-color:Red;\" /></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#endif
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (html);
                        HtmlDiff.AssertAreEqual (origin, renderedHtml, "NavigationRendering");
                }
@@ -783,11 +759,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        WebTest t = new WebTest (PageInvoker.CreateOnPreInit (_StartTypeRendering));
                        string html = t.Run ();
-#if NET_4_0
                        string origin = "<table cellspacing=\"0\" cellpadding=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td style=\"height:100%;\"><a href=\"#ctl00_SkipLink\"><img alt=\"Skip Navigation Links.\" height=\"0\" width=\"0\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" style=\"border-width:0px;\" /></a><table id=\"ctl00_SideBarContainer_SideBarList\" cellspacing=\"0\" style=\"border-collapse:collapse;\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td style=\"font-weight:bold;\"><a id=\"ctl00_SideBarContainer_SideBarList_SideBarButton_0\" href=\"javascript:__doPostBack(&#39;ctl00$SideBarContainer$SideBarList$ctl00$SideBarButton&#39;,&#39;&#39;)\">step1</a></td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td><a id=\"ctl00_SideBarContainer_SideBarList_SideBarButton_1\" href=\"javascript:__doPostBack(&#39;ctl00$SideBarContainer$SideBarList$ctl01$SideBarButton&#39;,&#39;&#39;)\">step2</a></td>\r\n\t\t\t</tr>\r\n\t\t</table><a id=\"ctl00_SkipLink\"></a></td><td style=\"height:100%;\"><table cellspacing=\"0\" cellpadding=\"0\" style=\"height:100%;width:100%;border-collapse:collapse;\">\r\n\t\t\t<tr style=\"height:100%;\">\r\n\t\t\t\t<td>Start</td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td align=\"right\"><table cellspacing=\"5\" cellpadding=\"5\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl00$StartNavigationTemplateContainerID$StartNextButton\" value=\"StartNextButtonText\" id=\"ctl00_StartNavigationTemplateContainerID_StartNextButton\" style=\"background-color:Red;\" /></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origin = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td style=\"height:100%;\"><a href=\"#ctl00_SkipLink\"><img alt=\"Skip Navigation Links.\" height=\"0\" width=\"0\" src=\"/NunitWeb/WebResource.axd?d=4RHYfeNnynkXiM59uthjZg2&amp;t=633802729995006876\" style=\"border-width:0px;\" /></a><table id=\"ctl00_SideBarContainer_SideBarList\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td style=\"font-weight:bold;\"><a id=\"ctl00_SideBarContainer_SideBarList_ctl00_SideBarButton\" href=\"javascript:__doPostBack('ctl00$SideBarContainer$SideBarList$ctl00$SideBarButton','')\">step1</a></td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td><a id=\"ctl00_SideBarContainer_SideBarList_ctl01_SideBarButton\" href=\"javascript:__doPostBack('ctl00$SideBarContainer$SideBarList$ctl01$SideBarButton','')\">step2</a></td>\r\n\t\t\t</tr>\r\n\t\t</table><a id=\"ctl00_SkipLink\"></a></td><td style=\"height:100%;\"><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"height:100%;width:100%;border-collapse:collapse;\">\r\n\t\t\t<tr style=\"height:100%;\">\r\n\t\t\t\t<td>Start</td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td align=\"right\"><table cellspacing=\"5\" cellpadding=\"5\" border=\"0\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl00$StartNavigationTemplateContainerID$StartNextButton\" value=\"StartNextButtonText\" id=\"ctl00_StartNavigationTemplateContainerID_StartNextButton\" style=\"background-color:Red;\" /></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#endif
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (html);
                        HtmlDiff.AssertAreEqual (origin, renderedHtml, "StartTypeRendering");
                }
@@ -826,11 +798,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        WebTest t = new WebTest (PageInvoker.CreateOnPreInit (_StartTemplateRendering));
                        string html = t.Run ();
-#if NET_4_0
                        string origin = "<table cellspacing=\"0\" cellpadding=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td style=\"height:100%;\"><a href=\"#ctl00_SkipLink\"><img alt=\"Skip Navigation Links.\" height=\"0\" width=\"0\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" style=\"border-width:0px;\" /></a><table id=\"ctl00_SideBarContainer_SideBarList\" cellspacing=\"0\" style=\"border-collapse:collapse;\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td style=\"font-weight:bold;\"><a id=\"ctl00_SideBarContainer_SideBarList_SideBarButton_0\" href=\"javascript:__doPostBack(&#39;ctl00$SideBarContainer$SideBarList$ctl00$SideBarButton&#39;,&#39;&#39;)\">step1</a></td>\r\n\t\t\t</tr>\r\n\t\t</table><a id=\"ctl00_SkipLink\"></a></td><td style=\"height:100%;\"><table cellspacing=\"0\" cellpadding=\"0\" style=\"height:100%;width:100%;border-collapse:collapse;\">\r\n\t\t\t<tr style=\"height:100%;\">\r\n\t\t\t\t<td>Start</td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl00$StartNavigationTemplateContainerID$SideBarButton\" value=\"\" id=\"ctl00_StartNavigationTemplateContainerID_SideBarButton\" style=\"background-color:Red;\" /></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origin = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td style=\"height:100%;\"><a href=\"#ctl00_SkipLink\"><img alt=\"Skip Navigation Links.\" height=\"0\" width=\"0\" src=\"/NunitWeb/WebResource.axd?d=4RHYfeNnynkXiM59uthjZg2&amp;t=633802729995006876\" style=\"border-width:0px;\" /></a><table id=\"ctl00_SideBarContainer_SideBarList\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td style=\"font-weight:bold;\"><a id=\"ctl00_SideBarContainer_SideBarList_ctl00_SideBarButton\" href=\"javascript:__doPostBack('ctl00$SideBarContainer$SideBarList$ctl00$SideBarButton','')\">step1</a></td>\r\n\t\t\t</tr>\r\n\t\t</table><a id=\"ctl00_SkipLink\"></a></td><td style=\"height:100%;\"><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"height:100%;width:100%;border-collapse:collapse;\">\r\n\t\t\t<tr style=\"height:100%;\">\r\n\t\t\t\t<td>Start</td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl00$StartNavigationTemplateContainerID$SideBarButton\" value=\"\" id=\"ctl00_StartNavigationTemplateContainerID_SideBarButton\" style=\"background-color:Red;\" /></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#endif
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (html);
                        HtmlDiff.AssertAreEqual (origin, renderedHtml, "StartTemplateRendering");
                }
@@ -868,11 +836,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        WebTest t = new WebTest (PageInvoker.CreateOnPreInit (_StepTypeRendering));
                        string html = t.Run ();
-#if NET_4_0
                        string origin = "<table cellspacing=\"0\" cellpadding=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td style=\"height:100%;\"><a href=\"#ctl00_SkipLink\"><img alt=\"Skip Navigation Links.\" height=\"0\" width=\"0\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" style=\"border-width:0px;\" /></a><table id=\"ctl00_SideBarContainer_SideBarList\" cellspacing=\"0\" style=\"border-collapse:collapse;\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td><a id=\"ctl00_SideBarContainer_SideBarList_SideBarButton_0\" href=\"javascript:__doPostBack(&#39;ctl00$SideBarContainer$SideBarList$ctl00$SideBarButton&#39;,&#39;&#39;)\">step1</a></td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td style=\"font-weight:bold;\"><a id=\"ctl00_SideBarContainer_SideBarList_SideBarButton_1\" href=\"javascript:__doPostBack(&#39;ctl00$SideBarContainer$SideBarList$ctl01$SideBarButton&#39;,&#39;&#39;)\">step2</a></td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td><a id=\"ctl00_SideBarContainer_SideBarList_SideBarButton_2\" href=\"javascript:__doPostBack(&#39;ctl00$SideBarContainer$SideBarList$ctl02$SideBarButton&#39;,&#39;&#39;)\">step3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table><a id=\"ctl00_SkipLink\"></a></td><td style=\"height:100%;\"><table cellspacing=\"0\" cellpadding=\"0\" style=\"height:100%;width:100%;border-collapse:collapse;\">\r\n\t\t\t<tr style=\"height:100%;\">\r\n\t\t\t\t<td style=\"background-color:Red;\">Step2</td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td align=\"right\"><table cellspacing=\"5\" cellpadding=\"5\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td align=\"right\"><a id=\"ctl00_StepNavigationTemplateContainerID_StepPreviousLinkButton\" href=\"javascript:__doPostBack(&#39;ctl00$StepNavigationTemplateContainerID$StepPreviousLinkButton&#39;,&#39;&#39;)\" style=\"background-color:Red;\">StepPreviousButtonText</a></td><td align=\"right\"><input type=\"image\" name=\"ctl00$StepNavigationTemplateContainerID$StepNextImageButton\" id=\"ctl00_StepNavigationTemplateContainerID_StepNextImageButton\" src=\"http://StepNextButtonImageUrl\" alt=\"StepNextButtonText\" style=\"background-color:Red;\" /></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origin = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td style=\"height:100%;\"><a href=\"#ctl00_SkipLink\"><img alt=\"Skip Navigation Links.\" height=\"0\" width=\"0\" src=\"/NunitWeb/WebResource.axd?d=4RHYfeNnynkXiM59uthjZg2&amp;t=633802729995006876\" style=\"border-width:0px;\" /></a><table id=\"ctl00_SideBarContainer_SideBarList\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td><a id=\"ctl00_SideBarContainer_SideBarList_ctl00_SideBarButton\" href=\"javascript:__doPostBack('ctl00$SideBarContainer$SideBarList$ctl00$SideBarButton','')\">step1</a></td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td style=\"font-weight:bold;\"><a id=\"ctl00_SideBarContainer_SideBarList_ctl01_SideBarButton\" href=\"javascript:__doPostBack('ctl00$SideBarContainer$SideBarList$ctl01$SideBarButton','')\">step2</a></td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td><a id=\"ctl00_SideBarContainer_SideBarList_ctl02_SideBarButton\" href=\"javascript:__doPostBack('ctl00$SideBarContainer$SideBarList$ctl02$SideBarButton','')\">step3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table><a id=\"ctl00_SkipLink\"></a></td><td style=\"height:100%;\"><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"height:100%;width:100%;border-collapse:collapse;\">\r\n\t\t\t<tr style=\"height:100%;\">\r\n\t\t\t\t<td style=\"background-color:Red;\">Step2</td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td align=\"right\"><table cellspacing=\"5\" cellpadding=\"5\" border=\"0\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td align=\"right\"><a id=\"ctl00_StepNavigationTemplateContainerID_StepPreviousLinkButton\" href=\"javascript:__doPostBack('ctl00$StepNavigationTemplateContainerID$StepPreviousLinkButton','')\" style=\"background-color:Red;\">StepPreviousButtonText</a></td><td align=\"right\"><input type=\"image\" name=\"ctl00$StepNavigationTemplateContainerID$StepNextImageButton\" id=\"ctl00_StepNavigationTemplateContainerID_StepNextImageButton\" src=\"http://StepNextButtonImageUrl\" alt=\"StepNextButtonText\" style=\"background-color:Red;border-width:0px;\" /></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#endif
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (html);
                        HtmlDiff.AssertAreEqual (origin, renderedHtml, "StepRendering");
                }
@@ -924,11 +888,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        WebTest t = new WebTest (PageInvoker.CreateOnPreInit (_StepNavigationTemplate));
                        string html = t.Run ();
-#if NET_4_0
                        string origin = "<table cellspacing=\"0\" cellpadding=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td style=\"height:100%;\"><a href=\"#ctl00_SkipLink\"><img alt=\"Skip Navigation Links.\" height=\"0\" width=\"0\" src=\"/NunitWeb/WebResource.axd?d=8VpphgAbakKUC_J8R6hR0Q2&amp;t=634067491135766272\" style=\"border-width:0px;\" /></a><table id=\"ctl00_SideBarContainer_SideBarList\" cellspacing=\"0\" style=\"border-collapse:collapse;\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td style=\"font-weight:bold;\"><a id=\"ctl00_SideBarContainer_SideBarList_SideBarButton_0\" href=\"javascript:__doPostBack(&#39;ctl00$SideBarContainer$SideBarList$ctl00$SideBarButton&#39;,&#39;&#39;)\">step1</a></td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td><a id=\"ctl00_SideBarContainer_SideBarList_SideBarButton_1\" href=\"javascript:__doPostBack(&#39;ctl00$SideBarContainer$SideBarList$ctl01$SideBarButton&#39;,&#39;&#39;)\">step2</a></td>\r\n\t\t\t</tr>\r\n\t\t</table><a id=\"ctl00_SkipLink\"></a></td><td style=\"height:100%;\"><table cellspacing=\"0\" cellpadding=\"0\" style=\"height:100%;width:100%;border-collapse:collapse;\">\r\n\t\t\t<tr style=\"height:100%;\">\r\n\t\t\t\t<td>Step1</td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl00$StepNavigationTemplateContainerID$SideBarButton\" value=\"\" id=\"ctl00_StepNavigationTemplateContainerID_SideBarButton\" style=\"background-color:Red;\" />Test text</td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origin = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td style=\"height:100%;\"><a href=\"#ctl00_SkipLink\"><img alt=\"Skip Navigation Links.\" height=\"0\" width=\"0\" src=\"/NunitWeb/WebResource.axd?d=4RHYfeNnynkXiM59uthjZg2&amp;t=633802729995006876\" style=\"border-width:0px;\" /></a><table id=\"ctl00_SideBarContainer_SideBarList\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td style=\"font-weight:bold;\"><a id=\"ctl00_SideBarContainer_SideBarList_ctl00_SideBarButton\" href=\"javascript:__doPostBack('ctl00$SideBarContainer$SideBarList$ctl00$SideBarButton','')\">step1</a></td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td><a id=\"ctl00_SideBarContainer_SideBarList_ctl01_SideBarButton\" href=\"javascript:__doPostBack('ctl00$SideBarContainer$SideBarList$ctl01$SideBarButton','')\">step2</a></td>\r\n\t\t\t</tr>\r\n\t\t</table><a id=\"ctl00_SkipLink\"></a></td><td style=\"height:100%;\"><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"height:100%;width:100%;border-collapse:collapse;\">\r\n\t\t\t<tr style=\"height:100%;\">\r\n\t\t\t\t<td>Step1</td>\r\n\t\t\t</tr><tr>\r\n\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl00$StepNavigationTemplateContainerID$SideBarButton\" value=\"\" id=\"ctl00_StepNavigationTemplateContainerID_SideBarButton\" style=\"background-color:Red;\" />Test text</td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#endif
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (html);
                        HtmlDiff.AssertAreEqual (origin, renderedHtml, "StepNavigationTemplateRendering");
                }
@@ -1443,11 +1403,7 @@ namespace MonoTests.System.Web.UI.WebControls
                {
                        string html = new WebTest (PageInvoker.CreateOnPreInit (
                                new PageDelegate (WizardPreInit))).Run ();
-#if NET_4_0
                        string origHtml = "<table cellspacing=\"0\" cellpadding=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr style=\"height:100%;\">\r\n\t\t<td>123</td>\r\n\t</tr><tr>\r\n\t\t<td align=\"right\"><table cellspacing=\"5\" cellpadding=\"5\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl00$FinishNavigationTemplateContainerID$FinishButton\" value=\"Finish\" id=\"ctl00_FinishNavigationTemplateContainerID_FinishButton\" /></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#else
-                       string origHtml = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border-collapse:collapse;\">\r\n\t<tr style=\"height:100%;\">\r\n\t\t<td>123</td>\r\n\t</tr><tr>\r\n\t\t<td align=\"right\"><table cellspacing=\"5\" cellpadding=\"5\" border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td align=\"right\"><input type=\"submit\" name=\"ctl00$FinishNavigationTemplateContainerID$FinishButton\" value=\"Finish\" id=\"ctl00_FinishNavigationTemplateContainerID_FinishButton\" /></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
-#endif
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (html);
                        HtmlDiff.AssertAreEqual (origHtml, renderedHtml, "BaseRender");
                }
@@ -1530,7 +1486,6 @@ namespace MonoTests.System.Web.UI.WebControls
                                Assert.Fail ("FinishButtonNotCreated");
                        Assert.AreEqual (-1, result.IndexOf ("Next"), "NextButtonCreatedOnLastPage");
                }
-#if NET_4_0
                [Test]
                public void Wizard_LayoutTemplate ()
                {
@@ -1752,7 +1707,6 @@ namespace MonoTests.System.Web.UI.WebControls
 
                        w.WizardSteps.Add (ws);
                }
-#endif
                [Test]
                [Category ("NunitWeb")]
                public void Wizard_RenderTestCompleteItem ()
index d5dfbac45807fb3c076bb08f921e9e45cc25e16a..2d845ac32df76bd0b0482e0fd5f9dbfd4c34934b 100644 (file)
@@ -462,7 +462,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        DSPoker p = new DSPoker ();
                        p.GetXmlDocument ();
                }
-#if NET_4_0
                [Test]
                public void CacheKeyContext ()
                {
@@ -474,7 +473,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        xds.CacheKeyContext = "MyKey";
                        Assert.AreEqual ("MyKey", xds.CacheKeyContext, "#A1");
                }
-#endif
                [TestFixtureTearDown]
                public void TearDown ()
                {
index 5b1f33ff1ee063afa1ed0936ec7496c1e48a05b4..604365e428eb16789756eb7da47c8558c1bce1ea 100644 (file)
@@ -44,9 +44,7 @@ using MonoTests.Common;
 
 using System.Web.UI.Adapters;
 
-#if NET_4_0
 using System.Web.Routing;
-#endif
 
 namespace MonoTests.System.Web.UI
 {
@@ -973,11 +971,7 @@ namespace MonoTests.System.Web.UI
                        fr.Controls ["__EVENTTARGET"].Value = "container$children$lb";
                        fr.Controls ["__EVENTARGUMENT"].Value = String.Empty;
                        t.Request = fr;
-#if NET_4_0
                        string originalHtml = "<span id=\"container\"><a id=\"container_children_lb\" href=\"javascript:__doPostBack(&#39;container$children$lb&#39;,&#39;&#39;)\">Woot! I got clicked!</a></span><hr/>";
-#else
-                       string originalHtml = @"<span id=""container""><a href=""javascript:__doPostBack('container$children$lb','')"" id=""container_children_lb"">Woot! I got clicked!</a></span><hr/>";
-#endif
                        string pageHtml = t.Run ();
                        string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHtml);
 
@@ -998,7 +992,6 @@ namespace MonoTests.System.Web.UI
                        WebTest.CopyResource (GetType (), "OverridenControlsPropertyAndPostBack_Bug594238.aspx", "OverridenControlsPropertyAndPostBack_Bug594238.aspx");
                }
 
-#if NET_4_0
                [Test]
                public void GetRouteUrl_Object ()
                {
@@ -1116,7 +1109,6 @@ namespace MonoTests.System.Web.UI
                        path = ctl.GetRouteUrl (String.Empty, (RouteValueDictionary) null);
                        Assert.IsNull (path, "#A3-3");
                }
-#endif
                #region helpcalsses
                class ControlWithState : Control
                {
index 6017b1261807b384245de071fc7d3700e7cda2f3..73fc20a8b602f5a177de5d7f7da904bfd9545970 100644 (file)
@@ -23,7 +23,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Web.UI;
 
@@ -60,4 +59,3 @@ namespace MonoTests.System.Web.UI
                }
        }
 }
-#endif
\ No newline at end of file
index 03e03728e187b9bb32fdae1bd223e8a7b9a8431b..359096352cf5429e5860ca515ecbaa4252416c15 100644 (file)
@@ -81,13 +81,8 @@ namespace MonoTests.System.Web.UI
                        byte [] data = Convert.FromBase64String (expected);
                        byte [] signed_data = Convert.FromBase64String (signed);
                        Assert.IsTrue (BitConverter.ToString (signed_data).StartsWith (BitConverter.ToString (data)), "4 / same data");
-#if NET_4_0
                        // 32 bytes == 256 bits -> match HMACSHA256 as default
                        Assert.AreEqual (32, signed_data.Length - data.Length, "signature length");
-#else
-                       // 20 bytes == 160 bits -> match HMACSHA1 as default
-                       Assert.AreEqual (20, signed_data.Length - data.Length, "signature length");
-#endif
                }
 
                [Test]
@@ -114,13 +109,8 @@ namespace MonoTests.System.Web.UI
                        byte [] data = Convert.FromBase64String (expected);
                        byte [] signed_data = Convert.FromBase64String (signed);
                        Assert.IsTrue (BitConverter.ToString (signed_data).StartsWith (BitConverter.ToString (data)), "5 / same data");
-#if NET_4_0
                        // 32 bytes == 256 bits -> match HMACSHA256 as default
                        Assert.AreEqual (32, signed_data.Length - data.Length, "signature length");
-#else
-                       // 20 bytes == 160 bits -> match HMACSHA1 as default
-                       Assert.AreEqual (20, signed_data.Length - data.Length, "signature length");
-#endif
                        LosFormatter lf6 = new LosFormatter (true, "string"); // bug #649551
                        signed = NoKeyRoundTrip (lf6, "true, plain");
                        Assert.AreNotEqual (expected, signed, "6");
@@ -171,7 +161,6 @@ namespace MonoTests.System.Web.UI
                        Assert.AreNotEqual (r4, r5, "r4-r5");
                }
 
-#if NET_4_0
                [Test]
                [ExpectedException (typeof (NotSupportedException))]
                public void Deserialize_Stream_NonSeekable ()
@@ -181,19 +170,6 @@ namespace MonoTests.System.Web.UI
                        LosFormatter lf = new LosFormatter ();
                        lf.Serialize (ns, s1);
                }
-#else
-               [Test] // bug #411115
-               public void Deserialize_Stream_NonSeekable ()
-               {
-                       string s1 = "Hello world";
-                       NonSeekableStream ns = new NonSeekableStream ();
-                       LosFormatter lf = new LosFormatter ();
-                       lf.Serialize (ns, s1);
-                       ns.Reset ();
-                       string s2 = lf.Deserialize (ns) as string;
-                       Assert.AreEqual (s1, s2);
-               }
-#endif
                [Test] // bug #324526
                public void Serialize ()
                {
index 4975b430ee79b4b57f406cc3d5bbe0371b376eec..4ea7ad9ab5a97920d94f96c346ac5562e71719b8 100644 (file)
@@ -23,7 +23,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -75,11 +74,7 @@ namespace MonoTests.System.Web.Util
        [TestFixture]
        public class HttpEncoderTest
        {
-#if NET_4_0
                const string notEncoded = "!()*-._";
-#else
-               const string notEncoded = "!'()*-._";
-#endif
                static char [] hexChars = "0123456789abcdef".ToCharArray ();
 
                [Test]
@@ -412,4 +407,3 @@ namespace MonoTests.System.Web.Util
                #endregion
        }
 }
-#endif
\ No newline at end of file
index b92554ec98aaad28d2464d75ed0e31a9b8b22ae0..8a1a4ed67374c4ea1fd20a35e7b0f0c6f525db1b 100644 (file)
@@ -107,7 +107,6 @@ namespace MonoTests.System.Web.Util {
                        section.Validation = MachineKeyValidation.SHA1;
                        Encrypt_RoundTrip (section);
                }
-#if NET_4_0
                [Test]
                public void Encrypt_RoundTrip_HMACSHA256 ()
                {
@@ -139,7 +138,6 @@ namespace MonoTests.System.Web.Util {
                        section.ValidationAlgorithm = "alg:HMACRIPEMD160";
                        EncryptSign_RoundTrip (section);
                }
-#endif
                public void EncryptSign_RoundTrip (MachineKeySection section)
                {
                        byte [] data = new byte [14];
@@ -196,7 +194,6 @@ namespace MonoTests.System.Web.Util {
                        section.Validation = MachineKeyValidation.SHA1;
                        EncryptSign_RoundTrip (section);
                }
-#if NET_4_0
                [Test]
                public void EncryptSign_RoundTrip_HMACSHA256 ()
                {
@@ -228,7 +225,6 @@ namespace MonoTests.System.Web.Util {
                        section.ValidationAlgorithm = "alg:HMACRIPEMD160";
                        EncryptSign_RoundTrip (section);
                }
-#endif
                public void Validation_RoundTrip (MachineKeySection section)
                {
                        byte [] data = new byte [] { 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0 };
@@ -282,7 +278,6 @@ namespace MonoTests.System.Web.Util {
                        Validation_RoundTrip (section);
                }
 
-#if NET_4_0
                [Test]
                public void Validation_RoundTrip_HMACSHA256 ()
                {
@@ -314,7 +309,6 @@ namespace MonoTests.System.Web.Util {
                        section.ValidationAlgorithm = "alg:HMACRIPEMD160";
                        Validation_RoundTrip (section);
                }
-#endif
                [Test]
                public void GetHexString ()
                {
index cbb24fab1dc6a1e217b9381881617c3ae537f126..b185d1290fd54a9db7eff10571a38a030a6f6bdf 100644 (file)
@@ -24,7 +24,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.Diagnostics;
@@ -97,4 +96,3 @@ namespace MonoTests.System.Web.Util
                }
        }
 }
-#endif
index 64d8773abbdd5d6f7c4073d2579f2294278222cb..7d572081fcd0fe0c3fcaa531f9e07dbe04d7c52a 100644 (file)
@@ -37,7 +37,6 @@ namespace MonoTests.System.Web
        [TestFixture]
        public class HttpApplicationTest
        {
-#if NET_4_0
                [Test]
                public void GetOutputCacheProviderName ()
                {
@@ -45,6 +44,5 @@ namespace MonoTests.System.Web
 
                        Assert.AreEqual ("AspNetInternalProvider", app.GetOutputCacheProviderName (null), "#A1");
                }
-#endif
        }
 }
index f6eafc6d767312e356c7ef29b1e5ce24baaf4f02..387406dcbd9a03964fe7b8d1767532c97e6f98da 100644 (file)
@@ -357,40 +357,22 @@ namespace MonoTests.System.Web {
                        Assert.AreEqual ("`~!@#$%^", cookie.Values.Get (0), "#G5");
                        Assert.AreEqual ("*()_+-", cookie.Values.GetKey (1), "#G6");
                        Assert.AreEqual ("\\][{}|'\";:,<.>/?", cookie.Values.Get (1), "#G7");
-#if NET_4_0
                        Assert.AreEqual ("%60%7e!%40%23%24%25%5e&*()_%2b-=%5c%5d%5b%7b%7d"
                                + "%7c%27%22%3b%3a%2c%3c.%3e%2f%3f", cookie.Values.ToString (), "#G8");
-#else
-                       Assert.AreEqual ("%60%7e!%40%23%24%25%5e&*()_%2b-=%5c%5d%5b%7b%7d"
-                               + "%7c'%22%3b%3a%2c%3c.%3e%2f%3f", cookie.Values.ToString (), "#G8");
-#endif
 
                        cookie = new HttpCookie ("funkycookie11", cookie.Values.ToString ());
                        Assert.AreEqual ("System.Web.HttpCookie", cookie.ToString (), "#H1");
-#if NET_4_0
                        Assert.AreEqual ("%60%7e!%40%23%24%25%5e&*()_%2b-=%5c%5d%5b%7b%7d"
                                + "%7c%27%22%3b%3a%2c%3c.%3e%2f%3f", cookie.Value, "#H2");
-#else
-                       Assert.AreEqual ("%60%7e!%40%23%24%25%5e&*()_%2b-=%5c%5d%5b%7b%7d"
-                               + "%7c'%22%3b%3a%2c%3c.%3e%2f%3f", cookie.Value, "#H2");
-#endif
                        Assert.AreEqual (2, cookie.Values.Count, "#H3");
                        Assert.IsNull (cookie.Values.GetKey (0), "#H4");
                        Assert.AreEqual ("%60%7e!%40%23%24%25%5e", cookie.Values.Get (0), "#H5");
                        Assert.AreEqual ("*()_%2b-", cookie.Values.GetKey (1), "#H6");
-#if NET_4_0
                        Assert.AreEqual ("%5c%5d%5b%7b%7d%7c%27%22%3b%3a%2c%3c.%3e%2f%3f",
                                cookie.Values.Get (1), "#H7");
                        Assert.AreEqual ("%2560%257e!%2540%2523%2524%2525%255e&*()_%252b-="
                                + "%255c%255d%255b%257b%257d%257c%2527%2522%253b%253a%252c%253c.%2"
                                + "53e%252f%253f", cookie.Values.ToString (), "#H8");
-#else
-                       Assert.AreEqual ("%5c%5d%5b%7b%7d%7c'%22%3b%3a%2c%3c.%3e%2f%3f",
-                               cookie.Values.Get (1), "#H7");
-                       Assert.AreEqual ("%2560%257e!%2540%2523%2524%2525%255e&*()_%252b-="
-                               + "%255c%255d%255b%257b%257d%257c'%2522%253b%253a%252c%253c.%2"
-                               + "53e%252f%253f", cookie.Values.ToString (), "#H8");
-#endif
 
                        cookie = new HttpCookie ("basic");
                        cookie.Values ["one"] = "hello world";
index 69a21a3bca1c6bb88cdc0b69d68f3f8980f6add5..1d33f02fa87db208ebe76b51695fbfa205a1a35c 100644 (file)
@@ -11,13 +11,11 @@ namespace MonoTests.System.Web
        [TestFixture]
        public class HttpExceptionTest
        {
-#if NET_4_0
                [Test]
                public void WebEventCode ()
                {
                        var ex = new HttpException ();
                        Assert.AreEqual (WebEventCodes.UndefinedEventCode, ex.WebEventCode);
                }
-#endif
        }
 }
index 4dd13d12b4f5cec817a0b773b1664d342f465fb8..2ce8621aec4781a1245a02df3114d4f7c8d3b030 100644 (file)
@@ -33,10 +33,8 @@ using System.Configuration.Provider;
 using System.IO;
 using System.Text;
 using System.Web;
-#if NET_4_0
 using System.Web.Routing;
 using System.Web.Caching;
-#endif
 
 using NUnit.Framework;
 
@@ -634,7 +632,6 @@ namespace MonoTests.System.Web {
                        var resp = new HttpResponse (null);
                        Assert.IsNull (resp.Output, "#A1");
                }
-#if NET_4_0
                [Test]
                public void RedirectPermanent ()
                {
@@ -733,7 +730,6 @@ namespace MonoTests.System.Web {
                                context.Response.Write ((object) null);
                        }, "#A3-5");
                }
-#endif
        }
 
        [TestFixture]
index 3882f2e779e958022f20ded55ba72198f56a85e7..d320a54f1f04b4837f93ebb9d2775bb5a8629653 100644 (file)
@@ -48,26 +48,16 @@ namespace MonoTests.System.Web {
                        Assert.AreEqual (String.Empty, HttpUtility.HtmlAttributeEncode (String.Empty), "#A2");
                        Assert.AreEqual ("&lt;script>", HttpUtility.HtmlAttributeEncode ("<script>"), "#A3");
                        Assert.AreEqual ("&quot;a&amp;b&quot;", HttpUtility.HtmlAttributeEncode ("\"a&b\""), "#A4");
-#if NET_4_0
                        Assert.AreEqual ("&#39;string&#39;", HttpUtility.HtmlAttributeEncode ("'string'"), "#A5");
-#else
-                       Assert.AreEqual ("'string'", HttpUtility.HtmlAttributeEncode ("'string'"), "#A5");
-#endif
                }
 
                [Test]
                public void HtmlAttributeEncode_String_TextWriter ()
                {
                        var sw = new StringWriter ();
-#if NET_4_0
                        AssertExtensions.Throws<ArgumentNullException> (() => {
                                HttpUtility.HtmlAttributeEncode ("string", null);
                        }, "#A1");
-#else
-                       AssertExtensions.Throws<NullReferenceException> (() => {
-                               HttpUtility.HtmlAttributeEncode ("string", null);
-                       }, "#A1");
-#endif
 
                        HttpUtility.HtmlAttributeEncode ("<script>", sw);
                        Assert.AreEqual ("&lt;script>", sw.ToString (), "#A2");
@@ -78,11 +68,7 @@ namespace MonoTests.System.Web {
 
                        sw = new StringWriter ();
                        HttpUtility.HtmlAttributeEncode ("'string'", sw);
-#if NET_4_0
                        Assert.AreEqual ("&#39;string&#39;", sw.ToString (), "#A4");
-#else
-                       Assert.AreEqual ("'string'", sw.ToString (), "#A4");
-#endif
                        sw = new StringWriter ();
                        HttpUtility.HtmlAttributeEncode ("\\string\\", sw);
                        Assert.AreEqual ("\\string\\", sw.ToString (), "#A5");
@@ -110,15 +96,9 @@ namespace MonoTests.System.Web {
                public void HtmlDecode_String_TextWriter ()
                {
                        StringWriter sw;
-#if NET_4_0
                        AssertExtensions.Throws<ArgumentNullException> (() => {
                                HttpUtility.HtmlDecode ("string", null);
                        }, "#A1");
-#else
-                       AssertExtensions.Throws<NullReferenceException> (() => {
-                               HttpUtility.HtmlDecode ("string", null);
-                       }, "#A1");
-#endif
 
                        sw = new StringWriter ();
                        HttpUtility.HtmlDecode (null, sw);
@@ -167,7 +147,6 @@ namespace MonoTests.System.Web {
                        windata = Encoding.Convert (Encoding.UTF8, win1251, utf8data);
                        Assert.AreEqual ("&#65308;script&#65310;", Encoding.ASCII.GetString (windata), "ok");
                }
-#if NET_4_0
                [Test]
                public void JavaScriptStringEncode ()
                {
@@ -254,20 +233,13 @@ namespace MonoTests.System.Web {
 
                        return sb.ToString ();
                }
-#endif
                [Test]
                public void HtmlEncode_2 ()
                {
                        StringWriter sw;
-#if NET_4_0
                        AssertExtensions.Throws<ArgumentNullException> (() => {
                                HttpUtility.HtmlEncode ("string", null);
                        }, "#A1");
-#else
-                       AssertExtensions.Throws<NullReferenceException> (() => {
-                               HttpUtility.HtmlEncode ("string", null);
-                       }, "#A1");
-#endif
 
                        sw = new StringWriter ();
                        HttpUtility.HtmlEncode (null, sw);
@@ -293,7 +265,6 @@ namespace MonoTests.System.Web {
                        for (int i = 0; i < encoding_pairs.Length; i += 2)
                                Assert.AreEqual (encoding_pairs [i + 1], HttpUtility.HtmlEncode (encoding_pairs [i]), "#B" + (i / 2).ToString ());
                }
-#if NET_4_0
                [Test]
                public void HtmlEncode_IHtmlString ()
                {
@@ -301,7 +272,6 @@ namespace MonoTests.System.Web {
                        var hs = new HtmlString (origString);
                        Assert.AreEqual (origString, HttpUtility.HtmlEncode (hs), "#A1");
                }
-#endif
                [Test]
                [Category ("NotWorking")]
                public void HtmlEncode ()
@@ -322,9 +292,7 @@ namespace MonoTests.System.Web {
                        for (int i = 0; i < s.Length; i++) {
                                char c = s [i];
                                if (c == '&' || c == '"' || c == '<' || c == '>' || c > 159
-#if NET_4_0
  || c == '\''
-#endif
 ) {
                                        needEncode = true;
                                        break;
@@ -351,11 +319,9 @@ namespace MonoTests.System.Web {
                                        case '"':
                                                output.Append ("&quot;");
                                                break;
-#if NET_4_0
                                        case '\'':
                                                output.Append ("&#39;");
                                                break;
-#endif
                                        default:
                                                // MS starts encoding with &# from 160 and stops at 255.
                                                // We don't do that. One reason is the 65308/65310 unicode
@@ -539,9 +505,7 @@ namespace MonoTests.System.Web {
                                string str = new string ((char) i, 1);
                                string encoded = HttpUtility.HtmlEncode (str);
                                if ((i > 159 && i < 256) || i == '&' || i == '<' || i == '>' || i == '"'
-#if NET_4_0
  || i == '\''
-#endif
 ) {
                                        if (encoded [0] != '&' || encoded [encoded.Length - 1] != ';')
                                                Assert.Fail ("Failed for i = " + i);
@@ -623,11 +587,7 @@ namespace MonoTests.System.Web {
 
                static char [] hexChars = "0123456789abcdef".ToCharArray ();
 
-#if NET_4_0
                const string notEncoded = "!()*-._";
-#else
-               const string notEncoded = "!'()*-._";
-#endif
 
                static void UrlPathEncodeChar (char c, Stream result)
                {
@@ -822,17 +782,9 @@ namespace MonoTests.System.Web {
        @"&#160;&#161;&#162;&#163;&#164;&#165;&#166;&#167;&#168;&#169;&#170;&#171;&#172;&#173;&#174;&#175;&#176;&#177;&#178;&#179;&#180;&#181;&#182;&#183;&#184;&#185;&#186;&#187;&#188;&#189;&#190;&#191;&#192;&#193;&#194;&#195;&#196;&#197;&#198;&#199;&#200;&#201;&#202;&#203;&#204;&#205;&#206;&#207;&#208;&#209;&#210;&#211;&#212;&#213;&#214;&#215;&#216;&#217;&#218;&#219;&#220;&#221;&#222;&#223;&#224;&#225;&#226;&#227;&#228;&#229;&#230;&#231;&#232;&#233;&#234;&#235;&#236;&#237;&#238;&#239;&#240;&#241;&#242;&#243;&#244;&#245;&#246;&#247;&#248;&#249;&#250;&#251;&#252;&#253;&#254;&#255;",
        @" ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ",
        @"&#000;&#001;&#002;&#003;&#004;&#005;&#006;&#007;&#008;&#009;&#010;&#011;&#012;&#013;&#014;&#015;&#016;&#017;&#018;&#019;&#020;&#021;&#022;&#023;&#024;&#025;&#026;&#027;&#028;&#029;&#030;&#031;&#032;",
-#if NET_4_0
        "&#000;\x1\x2\x3\x4\x5\x6\x7\x8\x9\xa\xb\xc\xd\xe\xf\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f ",
-#else
-       "\x0\x1\x2\x3\x4\x5\x6\x7\x8\x9\xa\xb\xc\xd\xe\xf\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f ",
-#endif
        @"&#x00;&#x01;&#x02;&#x03;&#x04;&#x05;&#x06;&#x07;&#x08;&#x09;&#x0A;&#x0B;&#x0C;&#x0D;&#x0E;&#x0F;&#x10;&#x11;&#x12;&#x13;&#x14;&#x15;&#x16;&#x17;&#x18;&#x19;&#x1A;&#x1B;&#x1C;&#x1D;&#x1E;&#x1F;&#x20;",
-#if NET_4_0    
        "&#x00;\x1\x2\x3\x4\x5\x6\x7\x8\x9\xa\xb\xc\xd\xe\xf\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f ",
-#else
-       "\x0\x1\x2\x3\x4\x5\x6\x7\x8\x9\xa\xb\xc\xd\xe\xf\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f ",
-#endif
 @"&#xA0;&#xA1;&#xA2;&#xA3;&#xA4;&#xA5;&#xA6;&#xA7;&#xA8;&#xA9;&#xAA;&#xAB;&#xAC;&#xAD;&#xAE;&#xAF;&#xB0;&#xB1;&#xB2;&#xB3;&#xB4;&#xB5;&#xB6;&#xB7;&#xB8;&#xB9;&#xBA;&#xBB;&#xBC;&#xBD;&#xBE;&#xBF;&#xC0;&#xC1;&#xC2;&#xC3;&#xC4;&#xC5;&#xC6;&#xC7;&#xC8;&#xC9;&#xCA;&#xCB;&#xCC;&#xCD;&#xCE;&#xCF;&#xD0;&#xD1;&#xD2;&#xD3;&#xD4;&#xD5;&#xD6;&#xD7;&#xD8;&#xD9;&#xDA;&#xDB;&#xDC;&#xDD;&#xDE;&#xDF;&#xE0;&#xE1;&#xE2;&#xE3;&#xE4;&#xE5;&#xE6;&#xE7;&#xE8;&#xE9;&#xEA;&#xEB;&#xEC;&#xED;&#xEE;&#xEF;&#xF0;&#xF1;&#xF2;&#xF3;&#xF4;&#xF5;&#xF6;&#xF7;&#xF8;&#xF9;&#xFA;&#xFB;&#xFC;&#xFD;&#xFE;&#xFF;",
        " ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ",
 };
@@ -840,11 +792,7 @@ namespace MonoTests.System.Web {
        @"áÁâ´æÆàÀℵαΑ&∧∠åÅ≈ãÃäÄ„βΒ¦•∩çǸ¢χΧˆ♣≅©↵∪¤†‡↓⇓°δΔ♦÷éÉêÊèÈ∅  εΕ≡ηΗðÐëË€∃ƒ∀½¼¾⁄γΓ≥>↔⇔♥…íÍîΡìÌℑ∞∫ιΙ¿∈ïÏκΚλΛ〈«←⇐⌈“≤⌊∗◊‎‹‘<¯—µ·−μΜ∇ –≠∋¬∉⊄ñÑνΝóÓôÔœŒòÒ‾ωΩοΟ⊕∨ªºøØõÕ⊗öÖ¶∂‰⊥φΦπΠϖ±£′″∏∝ψΨ""√〉»→⇒⌉”ℜ®⌋ρΡ‏›’‚šŠ⋅§­σΣς∼♠⊂⊆∑⊃¹²³⊇ßτΤ∴θΘϑ þޘיúÚ↑⇑ûÛùÙ¨ϒυΥüÜ℘ξΞýÝ¥ÿŸζΖ‍‌",
        @"&#225;&#193;&#226;&#194;&#180;&#230;&#198;&#224;&#192;ℵαΑ&amp;∧∠&#229;&#197;≈&#227;&#195;&#228;&#196;„βΒ&#166;•∩&#231;&#199;&#184;&#162;χΧˆ♣≅&#169;↵∪&#164;†‡↓⇓&#176;δΔ♦&#247;&#233;&#201;&#234;&#202;&#232;&#200;∅  εΕ≡ηΗ&#240;&#208;&#235;&#203;€∃ƒ∀&#189;&#188;&#190;⁄γΓ≥&gt;↔⇔♥…&#237;&#205;&#238;&#206;&#161;&#236;&#204;ℑ∞∫ιΙ&#191;∈&#239;&#207;κΚλΛ〈&#171;←⇐⌈“≤⌊∗◊‎‹‘&lt;&#175;—&#181;&#183;−μΜ∇&#160;–≠∋&#172;∉⊄&#241;&#209;νΝ&#243;&#211;&#244;&#212;œŒ&#242;&#210;‾ωΩοΟ⊕∨&#170;&#186;&#248;&#216;&#245;&#213;⊗&#246;&#214;&#182;∂‰⊥φΦπΠϖ&#177;&#163;′″∏∝ψΨ&quot;√〉&#187;→⇒⌉”ℜ&#174;⌋ρΡ‏›’‚šŠ⋅&#167;&#173;σΣς∼♠⊂⊆∑⊃&#185;&#178;&#179;⊇&#223;τΤ∴θΘϑ &#254;&#222;˜&#215;™&#250;&#218;↑⇑&#251;&#219;&#249;&#217;&#168;ϒυΥ&#252;&#220;℘ξΞ&#253;&#221;&#165;&#255;ŸζΖ‍‌",
        @"á9cP!qdO#hU@mg1ÁK%0<}*âÂ5[Y;lfMQ$4`´uim7E`%_1zVDkæ[cM{Æt9y:E8Hb;;$;Y'àUa6wÀ<$@W9$4NL*h#'ℵk\zαG}{}hC-Α|=QhyLT%`&wB!@#x51R 4C∧]Z3n∠y>:{JZ'v|c0;N""åzcWM'z""gÅo-JX!r.e≈Z+BT{wF8+ãQ 6P1o?x""ef}vUÃ+</Nt)TI]sä0Eg_'mn&6WY[8Äay+ u[3kqoZ„i6rβUX\:_y1A^x.p>+Β`uf3/HI¦7bCRv%o$X3:•∩ç|(fgiA|MBLf=y@Ǹ¢R,qDW;F9<mχU]$)Q`w^KF^(hΧ?ukX+O!UOftˆZE♣@MLR(vcH]k8≅CU;r#(©7DZ`1>r~.↵4B&R∪+x2T`q[M-lq'¤~3rp%~-Gd†;35wU+II1tQJ‡`NGh[↓Lr>74~yHB=&EI⇓,u@Jx°δcC`2,Δo2B]6PP8♦|{!wZa&,*N'$6÷-{nVSgO]%(Ié6Éêosx-2xDI!Ê_]7Ub%èYG4`Gx{ÈH>vwMPJ∅ :Z-u#ph l,s*8(AεΕOnj|Gy|]iYLPR≡5Wi:(vZUUK.YlηDΗ6TðT!Z:Nq_0797;!Ð4]QNë9+>x9>nm-s8YËwZ}vY€:HHf∃;=0,?ƒIr`I:i5'∀z_$Q<½_sCF;=$43DpDz]¼.aMTIEwx\ogn7A¾CuJD[Hke#⁄E]M%γE:IEk}Γ{qXfzeUS≥kqW yxV>↔AzJ:$fJ⇔3IMDqU\myWjsL♥…Okíjt$NKbGrÍ""+alp<îRÎ%¡yìz2 AÌ-%;jyMK{Umdℑi|}+Za8jyWDS#I∞]NyqN*v:m-∫03Aιf9m.:+z0@OfVoΙ_gfPilLZ¿6qqb0|BQ$H%p+d∈.Wa=YBfS'd-EOïISG+=W;GHÏ3||b-icT""qAκ*/ΚλN>j}""WrqΛt]dm-Xe/v〈\«$F< X←]=8H8⇐c⌈|“JgZ)+(7,}≤s8[""3%C4JvN⌊H55TAKEZ*%Z)d.∗R9z//!q◊D`643eO‎&-L>DsUej‹C[n]Q<%UoyO‘?zUgpr+62sY<T{7n*^¯4CH]6^e/x/—uT->mQh\""µZSTN!F(U%5·17:Cu<−)*c2μTΜ%:6-e&L[ Xos/4∇]Xr 1c=qyv4HSw~HL~–{+qG?/}≠6`S"",+pL∋>¬B9∉G;6P]xc 0Bs⊄7,j0Sj2/&ñFsÑ=νKs*?[54bV1ΝQ%p6P0.Lrc`yóA/*`6sBH?67Ó&ôÔI""Hœ~e9Œ>oò5eZI}iy?}KÒS‾anD1nXωIΩu""ο:Mz$(""joU^[mΟ7M1f$j>N|Q/@(⊕de6(∨WXb<~;tI?bt#ªU:º+wb(*cA=øjb c%*?Uj6<T02Ø/A}j'MõjlfYlR~er7D@3WÕe:XTLF?|""yd7x⊗eV6Mmw2{K<lö%B%/o~r9Öc1Q TJnd^¶;∂|‰_.⊥E_bim;gvA{wqφeΦ^-!Dcπ8LB6k4PΠ(5D |Y3ϖptuh)3Mv±TAvFo+;JE,2?£""'6F9fRp′,0″<∏N∝C%}JC7qY(7))UWψ 7=rmQaΨeD!G5e>S~kO""'4""/i4\>!]H;T^0o√8_G`*8&An\rhc)〉&UEk»-(YtC→(zerUTMTe,'@{⇒mlzVhU<S,5}9DM⌉/%R=10*[{'=:”C0ℜ4HoT?-#+l[SnPs®0 bV⌋TρΡjb1}OJ:,0z6‏oTxP""""FOT[;›'’-:Ll)I0^$p.‚S_šNBr9)K[Š1⋅$-S4/G&u§= _CqlY1O'­qNf|&σGp}ΣP3:8ς∼[ItI♠8⊂BQn~!KO:+~ma⊆FV.u 4wD∑lE+kQ|gZ];Y⊃DK69EEM$D¹KVO²%:~Iq?IUcHr4y³QP@R't!⊇vßYnI@FXxT<τvL[4H95mfΤF0JzQsrxNZry∴Bn#t(θ*OΘw=Z%ϑ+*l^3C)5HCNmR  %`g|*8DECþ_[Þ'8,?˜}gnaz_U×-F^™9ZDO86ú]y\ecHQSÚk-07/AT|0Ce↑F⇑*}e|r$6ln!V`ûA!*8H,mÛ~6G6w&GùsPL6ÙQ¨}J^NO}=._Mnϒ{&υ=ΥWD+f>fy|nNyP*Jüo8,lh\ÜN`'g℘(sJ8h3P]cF ξcdQ_OC]U#ΞBby=Sý9tI_Ý}p(D51=X¥cH8L)$*]~=IÿdbŸf>J^1Dnζ@(drH;91?{6`xJΖ4N4[u+5‍9.W\v‌]GGtKvCC0`A",
-#if NET_4_0    
        @"&#225;9cP!qdO#hU@mg1&#193;K%0&lt;}*&#226;&#194;5[Y;lfMQ$4`&#180;uim7E`%_1zVDk&#230;[cM{&#198;t9y:E8Hb;;$;Y&#39;&#224;Ua6w&#192;&lt;$@W9$4NL*h#&#39;ℵk\zαG}{}hC-Α|=QhyLT%`&amp;wB!@#x51R 4C∧]Z3n∠y&gt;:{JZ&#39;v|c0;N&quot;&#229;zcWM&#39;z&quot;g&#197;o-JX!r.e≈Z+BT{wF8+&#227;Q 6P1o?x&quot;ef}vU&#195;+&lt;/Nt)TI]s&#228;0Eg_&#39;mn&amp;6WY[8&#196;ay+ u[3kqoZ„i6rβUX\:_y1A^x.p&gt;+Β`uf3/HI&#166;7bCRv%o$X3:•∩&#231;|(fgiA|MBLf=y@&#199;&#184;&#162;R,qDW;F9&lt;mχU]$)Q`w^KF^(hΧ?ukX+O!UOftˆZE♣@MLR(vcH]k8≅CU;r#(&#169;7DZ`1&gt;r~.↵4B&amp;R∪+x2T`q[M-lq&#39;&#164;~3rp%~-Gd†;35wU+II1tQJ‡`NGh[↓Lr&gt;74~yHB=&amp;EI⇓,u@Jx&#176;δcC`2,Δo2B]6PP8♦|{!wZa&amp;,*N&#39;$6&#247;-{nVSgO]%(I&#233;6&#201;&#234;osx-2xDI!&#202;_]7Ub%&#232;YG4`Gx{&#200;H&gt;vwMPJ∅ :Z-u#ph l,s*8(AεΕOnj|Gy|]iYLPR≡5Wi:(vZUUK.YlηDΗ6T&#240;T!Z:Nq_0797;!&#208;4]QN&#235;9+&gt;x9&gt;nm-s8Y&#203;wZ}vY€:HHf∃;=0,?ƒIr`I:i5&#39;∀z_$Q&lt;&#189;_sCF;=$43DpDz]&#188;.aMTIEwx\ogn7A&#190;CuJD[Hke#⁄E]M%γE:IEk}Γ{qXfzeUS≥kqW yxV&gt;↔AzJ:$fJ⇔3IMDqU\myWjsL♥…Ok&#237;jt$NKbGr&#205;&quot;+alp&lt;&#238;R&#206;%&#161;y&#236;z2 A&#204;-%;jyMK{Umdℑi|}+Za8jyWDS#I∞]NyqN*v:m-∫03Aιf9m.:+z0@OfVoΙ_gfPilLZ&#191;6qqb0|BQ$H%p+d∈.Wa=YBfS&#39;d-EO&#239;ISG+=W;GH&#207;3||b-icT&quot;qAκ*/ΚλN&gt;j}&quot;WrqΛt]dm-Xe/v〈\&#171;$F&lt; X←]=8H8⇐c⌈|“JgZ)+(7,}≤s8[&quot;3%C4JvN⌊H55TAKEZ*%Z)d.∗R9z//!q◊D`643eO‎&amp;-L&gt;DsUej‹C[n]Q&lt;%UoyO‘?zUgpr+62sY&lt;T{7n*^&#175;4CH]6^e/x/—uT-&gt;mQh\&quot;&#181;ZSTN!F(U%5&#183;17:Cu&lt;−)*c2μTΜ%:6-e&amp;L[ Xos/4∇]Xr&#160;1c=qyv4HSw~HL~–{+qG?/}≠6`S&quot;,+pL∋&gt;&#172;B9∉G;6P]xc 0Bs⊄7,j0Sj2/&amp;&#241;Fs&#209;=νKs*?[54bV1ΝQ%p6P0.Lrc`y&#243;A/*`6sBH?67&#211;&amp;&#244;&#212;I&quot;Hœ~e9Œ&gt;o&#242;5eZI}iy?}K&#210;S‾anD1nXωIΩu&quot;ο:Mz$(&quot;joU^[mΟ7M1f$j&gt;N|Q/@(⊕de6(∨WXb&lt;~;tI?bt#&#170;U:&#186;+wb(*cA=&#248;jb c%*?Uj6&lt;T02&#216;/A}j&#39;M&#245;jlfYlR~er7D@3W&#213;e:XTLF?|&quot;yd7x⊗eV6Mmw2{K&lt;l&#246;%B%/o~r9&#214;c1Q TJnd^&#182;;∂|‰_.⊥E_bim;gvA{wqφeΦ^-!Dcπ8LB6k4PΠ(5D |Y3ϖptuh)3Mv&#177;TAvFo+;JE,2?&#163;&quot;&#39;6F9fRp′,0″&lt;∏N∝C%}JC7qY(7))UWψ 7=rmQaΨeD!G5e&gt;S~kO&quot;&#39;4&quot;/i4\&gt;!]H;T^0o√8_G`*8&amp;An\rhc)〉&amp;UEk&#187;-(YtC→(zerUTMTe,&#39;@{⇒mlzVhU&lt;S,5}9DM⌉/%R=10*[{&#39;=:”C0ℜ4HoT?-#+l[SnPs&#174;0 bV⌋TρΡjb1}OJ:,0z6‏oTxP&quot;&quot;FOT[;›&#39;’-:Ll)I0^$p.‚S_šNBr9)K[Š1⋅$-S4/G&amp;u&#167;= _CqlY1O&#39;&#173;qNf|&amp;σGp}ΣP3:8ς∼[ItI♠8⊂BQn~!KO:+~ma⊆FV.u 4wD∑lE+kQ|gZ];Y⊃DK69EEM$D&#185;KVO&#178;%:~Iq?IUcHr4y&#179;QP@R&#39;t!⊇v&#223;YnI@FXxT&lt;τvL[4H95mfΤF0JzQsrxNZry∴Bn#t(θ*OΘw=Z%ϑ+*l^3C)5HCNmR  %`g|*8DEC&#254;_[&#222;&#39;8,?˜}gnaz_U&#215;-F^™9ZDO86&#250;]y\ecHQS&#218;k-07/AT|0Ce↑F⇑*}e|r$6ln!V`&#251;A!*8H,m&#219;~6G6w&amp;G&#249;sPL6&#217;Q&#168;}J^NO}=._Mnϒ{&amp;υ=ΥWD+f&gt;fy|nNyP*J&#252;o8,lh\&#220;N`&#39;g℘(sJ8h3P]cF ξcdQ_OC]U#ΞBby=S&#253;9tI_&#221;}p(D51=X&#165;cH8L)$*]~=I&#255;dbŸf&gt;J^1Dnζ@(drH;91?{6`xJΖ4N4[u+5‍9.W\v‌]GGtKvCC0`A",
-#else
-       @"&#225;9cP!qdO#hU@mg1&#193;K%0&lt;}*&#226;&#194;5[Y;lfMQ$4`&#180;uim7E`%_1zVDk&#230;[cM{&#198;t9y:E8Hb;;$;Y'&#224;Ua6w&#192;&lt;$@W9$4NL*h#'ℵk\zαG}{}hC-Α|=QhyLT%`&amp;wB!@#x51R 4C∧]Z3n∠y&gt;:{JZ'v|c0;N&quot;&#229;zcWM'z&quot;g&#197;o-JX!r.e≈Z+BT{wF8+&#227;Q 6P1o?x&quot;ef}vU&#195;+&lt;/Nt)TI]s&#228;0Eg_'mn&amp;6WY[8&#196;ay+ u[3kqoZ„i6rβUX\:_y1A^x.p&gt;+Β`uf3/HI&#166;7bCRv%o$X3:•∩&#231;|(fgiA|MBLf=y@&#199;&#184;&#162;R,qDW;F9&lt;mχU]$)Q`w^KF^(hΧ?ukX+O!UOftˆZE♣@MLR(vcH]k8≅CU;r#(&#169;7DZ`1&gt;r~.↵4B&amp;R∪+x2T`q[M-lq'&#164;~3rp%~-Gd†;35wU+II1tQJ‡`NGh[↓Lr&gt;74~yHB=&amp;EI⇓,u@Jx&#176;δcC`2,Δo2B]6PP8♦|{!wZa&amp;,*N'$6&#247;-{nVSgO]%(I&#233;6&#201;&#234;osx-2xDI!&#202;_]7Ub%&#232;YG4`Gx{&#200;H&gt;vwMPJ∅ :Z-u#ph l,s*8(AεΕOnj|Gy|]iYLPR≡5Wi:(vZUUK.YlηDΗ6T&#240;T!Z:Nq_0797;!&#208;4]QN&#235;9+&gt;x9&gt;nm-s8Y&#203;wZ}vY€:HHf∃;=0,?ƒIr`I:i5'∀z_$Q&lt;&#189;_sCF;=$43DpDz]&#188;.aMTIEwx\ogn7A&#190;CuJD[Hke#⁄E]M%γE:IEk}Γ{qXfzeUS≥kqW yxV&gt;↔AzJ:$fJ⇔3IMDqU\myWjsL♥…Ok&#237;jt$NKbGr&#205;&quot;+alp&lt;&#238;R&#206;%&#161;y&#236;z2 A&#204;-%;jyMK{Umdℑi|}+Za8jyWDS#I∞]NyqN*v:m-∫03Aιf9m.:+z0@OfVoΙ_gfPilLZ&#191;6qqb0|BQ$H%p+d∈.Wa=YBfS'd-EO&#239;ISG+=W;GH&#207;3||b-icT&quot;qAκ*/ΚλN&gt;j}&quot;WrqΛt]dm-Xe/v〈\&#171;$F&lt; X←]=8H8⇐c⌈|“JgZ)+(7,}≤s8[&quot;3%C4JvN⌊H55TAKEZ*%Z)d.∗R9z//!q◊D`643eO‎&amp;-L&gt;DsUej‹C[n]Q&lt;%UoyO‘?zUgpr+62sY&lt;T{7n*^&#175;4CH]6^e/x/—uT-&gt;mQh\&quot;&#181;ZSTN!F(U%5&#183;17:Cu&lt;−)*c2μTΜ%:6-e&amp;L[ Xos/4∇]Xr&#160;1c=qyv4HSw~HL~–{+qG?/}≠6`S&quot;,+pL∋&gt;&#172;B9∉G;6P]xc 0Bs⊄7,j0Sj2/&amp;&#241;Fs&#209;=νKs*?[54bV1ΝQ%p6P0.Lrc`y&#243;A/*`6sBH?67&#211;&amp;&#244;&#212;I&quot;Hœ~e9Œ&gt;o&#242;5eZI}iy?}K&#210;S‾anD1nXωIΩu&quot;ο:Mz$(&quot;joU^[mΟ7M1f$j&gt;N|Q/@(⊕de6(∨WXb&lt;~;tI?bt#&#170;U:&#186;+wb(*cA=&#248;jb c%*?Uj6&lt;T02&#216;/A}j'M&#245;jlfYlR~er7D@3W&#213;e:XTLF?|&quot;yd7x⊗eV6Mmw2{K&lt;l&#246;%B%/o~r9&#214;c1Q TJnd^&#182;;∂|‰_.⊥E_bim;gvA{wqφeΦ^-!Dcπ8LB6k4PΠ(5D |Y3ϖptuh)3Mv&#177;TAvFo+;JE,2?&#163;&quot;'6F9fRp′,0″&lt;∏N∝C%}JC7qY(7))UWψ 7=rmQaΨeD!G5e&gt;S~kO&quot;'4&quot;/i4\&gt;!]H;T^0o√8_G`*8&amp;An\rhc)〉&amp;UEk&#187;-(YtC→(zerUTMTe,'@{⇒mlzVhU&lt;S,5}9DM⌉/%R=10*[{'=:”C0ℜ4HoT?-#+l[SnPs&#174;0 bV⌋TρΡjb1}OJ:,0z6‏oTxP&quot;&quot;FOT[;›'’-:Ll)I0^$p.‚S_šNBr9)K[Š1⋅$-S4/G&amp;u&#167;= _CqlY1O'&#173;qNf|&amp;σGp}ΣP3:8ς∼[ItI♠8⊂BQn~!KO:+~ma⊆FV.u 4wD∑lE+kQ|gZ];Y⊃DK69EEM$D&#185;KVO&#178;%:~Iq?IUcHr4y&#179;QP@R't!⊇v&#223;YnI@FXxT&lt;τvL[4H95mfΤF0JzQsrxNZry∴Bn#t(θ*OΘw=Z%ϑ+*l^3C)5HCNmR  %`g|*8DEC&#254;_[&#222;'8,?˜}gnaz_U&#215;-F^™9ZDO86&#250;]y\ecHQS&#218;k-07/AT|0Ce↑F⇑*}e|r$6ln!V`&#251;A!*8H,m&#219;~6G6w&amp;G&#249;sPL6&#217;Q&#168;}J^NO}=._Mnϒ{&amp;υ=ΥWD+f&gt;fy|nNyP*J&#252;o8,lh\&#220;N`'g℘(sJ8h3P]cF ξcdQ_OC]U#ΞBby=S&#253;9tI_&#221;}p(D51=X&#165;cH8L)$*]~=I&#255;dbŸf&gt;J^1Dnζ@(drH;91?{6`xJΖ4N4[u+5‍9.W\v‌]GGtKvCC0`A",
-#endif
        @"&aacute&Aacute&acirc&Acirc&acute&aelig&AElig&agrave&Agrave&alefsym&alpha&Alpha&amp&and&ang&aring&Aring&asymp&atilde&Atilde&auml&Auml&bdquo&beta&Beta&brvbar&bull&cap&ccedil&Ccedil&cedil&cent&chi&Chi&circ&clubs&cong&copy&crarr&cup&curren&dagger&Dagger&darr&dArr&deg&delta&Delta&diams&divide&eacute&Eacute&ecirc&Ecirc&egrave&Egrave&empty&emsp&ensp&epsilon&Epsilon&equiv&eta&Eta&eth&ETH&euml&Euml&euro&exist&fnof&forall&frac12&frac14&frac34&frasl&gamma&Gamma&ge&gt&harr&hArr&hearts&hellip&iacute&Iacute&icirc&Icirc&iexcl&igrave&Igrave&image&infin&int&iota&Iota&iquest&isin&iuml&Iuml&kappa&Kappa&lambda&Lambda&lang&laquo&larr&lArr&lceil&ldquo&le&lfloor&lowast&loz&lrm&lsaquo&lsquo&lt&macr&mdash&micro&middot&minus&mu&Mu&nabla&nbsp&ndash&ne&ni&not&notin&nsub&ntilde&Ntilde&nu&Nu&oacute&Oacute&ocirc&Ocirc&oelig&OElig&ograve&Ograve&oline&omega&Omega&omicron&Omicron&oplus&or&ordf&ordm&oslash&Oslash&otilde&Otilde&otimes&ouml&Ouml&para&part&permil&perp&phi&Phi&pi&Pi&piv&plusmn&pound&prime&Prime&prod&prop&psi&Psi&quot&radic&rang&raquo&rarr&rArr&rceil&rdquo&real&reg&rfloor&rho&Rho&rlm&rsaquo&rsquo&sbquo&scaron&Scaron&sdot&sect&shy&sigma&Sigma&sigmaf&sim&spades&sub&sube&sum&sup&sup1&sup2&sup3&supe&szlig&tau&Tau&there4&theta&Theta&thetasym&thinsp&thorn&THORN&tilde&times&trade&uacute&Uacute&uarr&uArr&ucirc&Ucirc&ugrave&Ugrave&uml&upsih&upsilon&Upsilon&uuml&Uuml&weierp&xi&Xi&yacute&Yacute&yen&yuml&Yuml&zeta&Zeta&zwj&zwnj",
        @"&amp;aacute&amp;Aacute&amp;acirc&amp;Acirc&amp;acute&amp;aelig&amp;AElig&amp;agrave&amp;Agrave&amp;alefsym&amp;alpha&amp;Alpha&amp;amp&amp;and&amp;ang&amp;aring&amp;Aring&amp;asymp&amp;atilde&amp;Atilde&amp;auml&amp;Auml&amp;bdquo&amp;beta&amp;Beta&amp;brvbar&amp;bull&amp;cap&amp;ccedil&amp;Ccedil&amp;cedil&amp;cent&amp;chi&amp;Chi&amp;circ&amp;clubs&amp;cong&amp;copy&amp;crarr&amp;cup&amp;curren&amp;dagger&amp;Dagger&amp;darr&amp;dArr&amp;deg&amp;delta&amp;Delta&amp;diams&amp;divide&amp;eacute&amp;Eacute&amp;ecirc&amp;Ecirc&amp;egrave&amp;Egrave&amp;empty&amp;emsp&amp;ensp&amp;epsilon&amp;Epsilon&amp;equiv&amp;eta&amp;Eta&amp;eth&amp;ETH&amp;euml&amp;Euml&amp;euro&amp;exist&amp;fnof&amp;forall&amp;frac12&amp;frac14&amp;frac34&amp;frasl&amp;gamma&amp;Gamma&amp;ge&amp;gt&amp;harr&amp;hArr&amp;hearts&amp;hellip&amp;iacute&amp;Iacute&amp;icirc&amp;Icirc&amp;iexcl&amp;igrave&amp;Igrave&amp;image&amp;infin&amp;int&amp;iota&amp;Iota&amp;iquest&amp;isin&amp;iuml&amp;Iuml&amp;kappa&amp;Kappa&amp;lambda&amp;Lambda&amp;lang&amp;laquo&amp;larr&amp;lArr&amp;lceil&amp;ldquo&amp;le&amp;lfloor&amp;lowast&amp;loz&amp;lrm&amp;lsaquo&amp;lsquo&amp;lt&amp;macr&amp;mdash&amp;micro&amp;middot&amp;minus&amp;mu&amp;Mu&amp;nabla&amp;nbsp&amp;ndash&amp;ne&amp;ni&amp;not&amp;notin&amp;nsub&amp;ntilde&amp;Ntilde&amp;nu&amp;Nu&amp;oacute&amp;Oacute&amp;ocirc&amp;Ocirc&amp;oelig&amp;OElig&amp;ograve&amp;Ograve&amp;oline&amp;omega&amp;Omega&amp;omicron&amp;Omicron&amp;oplus&amp;or&amp;ordf&amp;ordm&amp;oslash&amp;Oslash&amp;otilde&amp;Otilde&amp;otimes&amp;ouml&amp;Ouml&amp;para&amp;part&amp;permil&amp;perp&amp;phi&amp;Phi&amp;pi&amp;Pi&amp;piv&amp;plusmn&amp;pound&amp;prime&amp;Prime&amp;prod&amp;prop&amp;psi&amp;Psi&amp;quot&amp;radic&amp;rang&amp;raquo&amp;rarr&amp;rArr&amp;rceil&amp;rdquo&amp;real&amp;reg&amp;rfloor&amp;rho&amp;Rho&amp;rlm&amp;rsaquo&amp;rsquo&amp;sbquo&amp;scaron&amp;Scaron&amp;sdot&amp;sect&amp;shy&amp;sigma&amp;Sigma&amp;sigmaf&amp;sim&amp;spades&amp;sub&amp;sube&amp;sum&amp;sup&amp;sup1&amp;sup2&amp;sup3&amp;supe&amp;szlig&amp;tau&amp;Tau&amp;there4&amp;theta&amp;Theta&amp;thetasym&amp;thinsp&amp;thorn&amp;THORN&amp;tilde&amp;times&amp;trade&amp;uacute&amp;Uacute&amp;uarr&amp;uArr&amp;ucirc&amp;Ucirc&amp;ugrave&amp;Ugrave&amp;uml&amp;upsih&amp;upsilon&amp;Upsilon&amp;uuml&amp;Uuml&amp;weierp&amp;xi&amp;Xi&amp;yacute&amp;Yacute&amp;yen&amp;yuml&amp;Yuml&amp;zeta&amp;Zeta&amp;zwj&amp;zwnj",
        @" ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ",
index 0e24b442bea8bbcbc7665ac5b79e5b99cf057e23..d4ec58cc12a4f4e9ae59dca593e47716571a2b38 100644 (file)
@@ -8,7 +8,7 @@
 
 RUNTIME = mono
 
-nunit_MONO_PATH="../../../../../class/lib/net_4_5"
+nunit_MONO_PATH="../../../../../class/lib/net_4_x"
 CSCOMPILE=mcs
 XSPSERVER=xsp4
 
index a0b42fd484b3d08532fd2c13148a66053c3c9ca6..b6029e3d3dddf0cc75422b4c9e1863985bb5e4fc 100644 (file)
@@ -5,7 +5,7 @@ run-test-ondotnet: Test1.dll
        nunit-console Test1.dll -out:res.log
 
 Test1.dll: NunitWeb.dll Test1/Class1.cs Makefile
-       mcs -r:../../../../lib/net_4_5/nunit.framework -r:System.Web -r:NunitWeb -target:library -r:System.Drawing -out:Test1.dll Test1/Class1.cs
+       mcs -r:../../../../lib/net_4_x/nunit.framework -r:System.Web -r:NunitWeb -target:library -r:System.Drawing -out:Test1.dll Test1/Class1.cs
 
 
 NunitWeb.dll: NunitWeb/Helper.cs NunitWeb/MyHandler.cs NunitWeb/MyHost.cs NunitWeb/Resources/My.master NunitWeb/Resources/MyPage.aspx NunitWeb/Resources/MyPage.aspx.cs NunitWeb/Resources/MyPageWithMaster.aspx NunitWeb/Resources/MyPageWithMaster.aspx.cs NunitWeb/Resources/Web.config NunitWeb/Resources/MyPageWithMasterInvalidPlaceHolder.aspx Makefile
index 9f2dcaf4b224a065297d177a98504ed5e786b41b..7fdb6ed6c157e655f39a9f659568b69758f7d98c 100644 (file)
@@ -12,11 +12,7 @@ namespace MonoTests.SystemWeb.Framework
 #if DOTNET
                        CopyResource (myself, "Web.config", "Web.config");
 #else
-#if NET_4_0
                        CopyResource (myself, "Web.mono.config.4.0", "Web.config");
-#else
-                       CopyResource (myself, "Web.mono.config", "Web.config");
-#endif
 #endif
                }
        }
index 57b92434e3b6d743084212ed5f4d5529a449b730..80da7625724e2f304a44575e826e3e294d656be7 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.Configuration;
@@ -292,4 +291,3 @@ ExternalAssembly1 added
                }
        }
 }
-#endif
\ No newline at end of file
index 104908218d0466c5cb8e8f05693907e00c445167..e51c9c603b420aaa278351e92794e5485811381f 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.Configuration;
@@ -157,4 +156,3 @@ namespace StandAloneTests.BuildManagerCacheFiles
                }
        }
 }
-#endif
\ No newline at end of file
index 6bdfe01aef5ca8134acd3d8e6e87b2d3ffc22fe1..9093ef97d78bdbece658ed61eee559c4532699c6 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -75,4 +74,3 @@ namespace StandAloneTests.ControlRenderingCompatibilityVersion
                }
        }
 }
-#endif
\ No newline at end of file
index 5de2f85fc5c7c8bf20b73b475282cb947be43a67..26e39395d6250edf46272b6e2dce0ae94ca3f14b 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -113,4 +112,3 @@ Item: 2; Relative to: __Page; Result: exception System.InvalidOperationException
        }
 }
 
-#endif
index 3d7b9e3143ceb3ba53c2b853f3215b647a662413..2f68077216881a6c6e4b28fa088f92666dbf428a 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -100,4 +99,3 @@ namespace StandAloneTests.DisabledAttributeRendering
                }
        }
 }
-#endif
\ No newline at end of file
index ed62e888f60f7412f6a448c03c2a501901b6b8df..94dbd05843865da8fe8fe3ac4aeb866d1bcbf4cb 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.Configuration;
@@ -320,4 +319,3 @@ namespace StandAloneTests.EnableFormsAuthentication
                }
        }
 }
-#endif
\ No newline at end of file
index 886a5da5d6db7c39327913e1f2bcf48d55f03a6c..59f35580363c5f9289868d959f14954aa9cd92eb 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -84,4 +83,3 @@ namespace StandAloneTests.GridViewShowHeaderWhenEmpty
                }
        }
 }
-#endif
\ No newline at end of file
index 4ccdf70d7ebf35b1e33ca594692bae1aa89cbcf1..568d1f381f1d1e516f0172aebaa77e906abccc6f 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -118,4 +117,3 @@ namespace StandAloneTests.GridViewSortingStyles
                }
        }
 }
-#endif
\ No newline at end of file
index cd0ef6a9ade3bc4ea3911949b55c177f645c38ce..f5f4791da2b8185ccc14d42df2d62767f2ce8a44 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -62,4 +61,3 @@ namespace StandAloneTests.Menu_40_List
                }
        }
 }
-#endif
index 88527518a5598055048cbc5800987b00a1569e7c..ccc85f1189d2773a393dc220e29e2f508bd73485 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.Configuration;
@@ -163,4 +162,3 @@ Default context: TestAnotherInMemoryProvider
                }
        }
 }
-#endif
index 18f799026e8e6c7bc7167b2108e878c190cce3de..dc745da2aa25860f4a2ab9a99f476aa1dfa452e8 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -64,4 +63,3 @@ namespace StandAloneTests.PageMetaAttributes
                }
        }
 }
-#endif
\ No newline at end of file
index ff26c312acab56b4ff0cbd8985052d5f68406507..f6674a205438f250be5145d6e878bb809a69a82d 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.Configuration;
@@ -124,4 +123,3 @@ namespace StandAloneTests.PageParserDefaultTypeProperties
                }
        }
 }
-#endif
\ No newline at end of file
index bc150d8aae7b5570ba3f2a4bd23fc64b4d66aadb..6e9f5f685c43fc0175d5ec8581788c0264449098 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.Configuration;
@@ -84,4 +83,3 @@ namespace StandAloneTests.RegisterBuildProvider
                }
        }
 }
-#endif
\ No newline at end of file
index e1d1a540c323056855555b4207deaf1691101df7..4990fb6057b16602725f7396909abaea3bd75bad 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -207,4 +206,3 @@ Request validation source: {3}
        }
 }
 
-#endif
index b97112d40fa10e38893b79a4b320119447f7d9de..c37a20cd6f488bca9bee2c954c8d78971b993f04 100644 (file)
@@ -1,4 +1,4 @@
-#if NET_4_0
+
 using System;
 using System.Collections.Generic;
 
@@ -258,4 +258,3 @@ namespace StandAloneTests.RequestValidator.Generated
                }
        }
 }
-#endif
index 96ac8cdc576e419815ab5a2c07ad70dae0bb9f19..74f7794f165347943b082cbb33ae7026873da21d 100644 (file)
@@ -65,11 +65,7 @@ namespace StandAloneTests.Unhandled_Exception_Global_Asax
 
                void Default_Aspx (string result, TestRunItem runItem)
                {
-#if NET_4_0
                        string originalHtml1 = @"[System.Web.HttpUnhandledException]: Exception of type &#39;System.Web.HttpUnhandledException&#39; was thrown.";
-#else
-                       string originalHtml1 = @"[System.Web.HttpUnhandledException]: Exception of type 'System.Web.HttpUnhandledException' was thrown.";
-#endif
                        string originalHtml2 = @"[System.InvalidOperationException]: test";
                        
                        Assert.IsTrue (result.IndexOf (originalHtml1) != -1, "#A1");
index 7632d2ae1c137b427c17e56fbdd34cb3eb96708b..6dc87ed8fe80b3ba3ad240bf9b9a68d254f70818 100644 (file)
@@ -58,11 +58,7 @@ namespace StandAloneTests.WebControlsMustUseIsEnabled_Bug571715
 
                void Default_Aspx (string result, TestRunItem runItem)
                {
-#if NET_4_0
                        string originalHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"GridView1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">ID</th><th scope=\"col\">FULLNAME</th><th scope=\"col\">&nbsp;</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td>1</td><td>Sheryl Hunter</td><td align=\"left\" style=\"width:60px;\"><input type=\"submit\" name=\"GridView1$ctl02$DeleteBtn\" value=\"Delete\" id=\"GridView1_DeleteBtn_0\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>2</td><td>Dean Straight</td><td class=\"aspNetDisabled\" align=\"left\" style=\"width:60px;\"><input type=\"submit\" name=\"GridView1$ctl03$DeleteBtn\" value=\"Delete\" disabled=\"disabled\" id=\"GridView1_DeleteBtn_1\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>3</td><td>Marjorie Green</td><td align=\"left\" style=\"width:60px;\"><input type=\"submit\" name=\"GridView1$ctl04$DeleteBtn\" value=\"Delete\" id=\"GridView1_DeleteBtn_2\" /></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#else
-                       string originalHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"GridView1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">ID</th><th scope=\"col\">FULLNAME</th><th scope=\"col\">&nbsp;</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td>1</td><td>Sheryl Hunter</td><td align=\"left\" style=\"width:60px;\"><input type=\"submit\" name=\"GridView1$ctl02$DeleteBtn\" value=\"Delete\" id=\"GridView1_ctl02_DeleteBtn\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>2</td><td>Dean Straight</td><td disabled=\"disabled\" align=\"left\" style=\"width:60px;\"><input type=\"submit\" name=\"GridView1$ctl03$DeleteBtn\" value=\"Delete\" disabled=\"disabled\" id=\"GridView1_ctl03_DeleteBtn\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>3</td><td>Marjorie Green</td><td align=\"left\" style=\"width:60px;\"><input type=\"submit\" name=\"GridView1$ctl04$DeleteBtn\" value=\"Delete\" id=\"GridView1_ctl04_DeleteBtn\" /></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
-#endif
                        Helpers.ExtractAndCompareCodeFromHtml (result, originalHtml, "#A1");
                }
        }
index f6c7f594ff445b773042bc12413363cfea4aaf85..3136a760618f5bf2bcc29889ea06334933d72b91 100644 (file)
@@ -25,7 +25,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0
 using System;
 using System.Collections.Generic;
 using System.Configuration;
@@ -171,4 +170,3 @@ namespace StandAloneTests.WebFormsRouting
                }
        }
 }
-#endif
\ No newline at end of file
diff --git a/mcs/class/System.Web/monotouch_runtime_System.Web.dll.sources b/mcs/class/System.Web/monotouch_runtime_System.Web.dll.sources
deleted file mode 100644 (file)
index 40190ef..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include net_4_0_System.Web.dll.sources
diff --git a/mcs/class/System.Web/net_4_0_System.Web.dll.sources b/mcs/class/System.Web/net_4_0_System.Web.dll.sources
deleted file mode 100644 (file)
index 7957828..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-#include System.Web.dll.sources
-
-System.Web/IHtmlString.cs
-System.Web/HtmlString.cs
-System.Web/PreApplicationStartMethodAttribute.cs
-
-System.Web.Caching/FileResponseElement.cs
-System.Web.Caching/HeaderElement.cs
-System.Web.Caching/IOutputCacheEntry.cs
-System.Web.Caching/MemoryResponseElement.cs
-System.Web.Caching/OutputCache.cs
-System.Web.Caching/OutputCacheProviderCollection.cs
-System.Web.Caching/ResponseElement.cs
-System.Web.Caching/SubstitutionResponseElement.cs
-System.Web.Configuration_2.0/VersionConverter.cs
-System.Web.Configuration_2.0/MachineKeyCompatibilityMode.cs
-System.Web.Configuration_2.0/HttpCapabilitiesProvider.cs
-System.Web.Configuration_2.0/HttpCapabilitiesDefaultProvider.cs
-System.Web.Compilation/FolderLevelBuildProviderAppliesTo.cs
-System.Web.Compilation/FolderLevelBuildProviderAppliesToAttribute.cs
-System.Web.Compilation/RouteUrlExpressionBuilder.cs
-System.Web.Compilation/RouteValueExpressionBuilder.cs
-System.Web.Security/MachineKey.cs
-System.Web.Security/MachineKeyProtection.cs
-System.Web.SessionState_2.0/SessionStateBehavior.cs
-System.Web.Routing/PageRouteHandler.cs
-System.Web.UI/ClientIDMode.cs
-System.Web.UI/DataKeyPropertyAttribute.cs
-System.Web.UI/FileLevelMasterPageControlBuilder.cs
-System.Web.UI/IDataKeysControl.cs
-System.Web.UI/ViewStateMode.cs
-System.Web.UI.WebControls/IDataBoundControl.cs
-System.Web.UI.WebControls/IDataBoundItemControl.cs
-System.Web.UI.WebControls/IDataBoundListControl.cs
-System.Web.UI.WebControls/IFieldControl.cs
-System.Web.UI.WebControls/IRenderOuterTable.cs
-System.Web.UI.WebControls/MenuListRenderer.cs
-System.Web.UI.WebControls/MenuRenderingMode.cs
-System.Web.UI.WebControls/NamedCssStyleCollection.cs
-System.Web.UI.WebControls/RouteParameter.cs
-System.Web.UI.WebControls/StyleBlock.cs
-System.Web.UI.WebControls/WizardLayoutContainer.cs
-System.Web.UI.WebControls/WizardLayoutNavigationContainer.cs
-System.Web.Util/SimpleWebObjectFactory.cs
-System.Web.Util/RequestValidationSource.cs
-System.Web.Util/RequestValidator.cs
-
-../System.Web.Routing/System.Web.Routing/HttpMethodConstraint.cs
-../System.Web.Routing/System.Web.Routing/IRouteConstraint.cs
-../System.Web.Routing/System.Web.Routing/IRouteHandler.cs
-../System.Web.Routing/System.Web.Routing/PatternParser.cs
-../System.Web.Routing/System.Web.Routing/PatternToken.cs
-../System.Web.Routing/System.Web.Routing/PatternTokenType.cs
-../System.Web.Routing/System.Web.Routing/RequestContext.cs
-../System.Web.Routing/System.Web.Routing/Route.cs
-../System.Web.Routing/System.Web.Routing/RouteBase.cs
-../System.Web.Routing/System.Web.Routing/RouteCollection.cs
-../System.Web.Routing/System.Web.Routing/RouteData.cs
-../System.Web.Routing/System.Web.Routing/RouteDirection.cs
-../System.Web.Routing/System.Web.Routing/RouteTable.cs
-../System.Web.Routing/System.Web.Routing/RouteValueDictionary.cs
-../System.Web.Routing/System.Web.Routing/RouteValueDictionaryExtensions.cs
-../System.Web.Routing/System.Web.Routing/StopRoutingHandler.cs
-../System.Web.Routing/System.Web.Routing/UrlRoutingHandler.cs
-../System.Web.Routing/System.Web.Routing/UrlRoutingModule.cs
-../System.Web.Routing/System.Web.Routing/VirtualPathData.cs
-
-../System.Web.Abstractions/System.Web/HttpApplicationStateBase.cs
-../System.Web.Abstractions/System.Web/HttpApplicationStateWrapper.cs
-../System.Web.Abstractions/System.Web/HttpBrowserCapabilitiesBase.cs
-../System.Web.Abstractions/System.Web/HttpBrowserCapabilitiesWrapper.cs
-../System.Web.Abstractions/System.Web/HttpCachePolicyBase.cs
-../System.Web.Abstractions/System.Web/HttpCachePolicyWrapper.cs
-../System.Web.Abstractions/System.Web/HttpContextBase.cs
-../System.Web.Abstractions/System.Web/HttpContextWrapper.cs
-../System.Web.Abstractions/System.Web/HttpFileCollectionBase.cs
-../System.Web.Abstractions/System.Web/HttpFileCollectionWrapper.cs
-../System.Web.Abstractions/System.Web/HttpPostedFileBase.cs
-../System.Web.Abstractions/System.Web/HttpPostedFileWrapper.cs
-../System.Web.Abstractions/System.Web/HttpRequestBase.cs
-../System.Web.Abstractions/System.Web/HttpRequestWrapper.cs
-../System.Web.Abstractions/System.Web/HttpResponseBase.cs
-../System.Web.Abstractions/System.Web/HttpResponseWrapper.cs
-../System.Web.Abstractions/System.Web/HttpServerUtilityBase.cs
-../System.Web.Abstractions/System.Web/HttpServerUtilityWrapper.cs
-../System.Web.Abstractions/System.Web/HttpSessionStateBase.cs
-../System.Web.Abstractions/System.Web/HttpSessionStateWrapper.cs
-../System.Web.Abstractions/System.Web/HttpStaticObjectsCollectionBase.cs
-../System.Web.Abstractions/System.Web/HttpStaticObjectsCollectionWrapper.cs
diff --git a/mcs/class/System.Web/net_4_5_System.Web.dll.sources b/mcs/class/System.Web/net_4_5_System.Web.dll.sources
deleted file mode 100644 (file)
index b074ec8..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#include net_4_0_System.Web.dll.sources
-
-System.Web/EventHandlerTaskAsyncHelper.cs
-System.Web/HttpTaskAsyncHandler.cs
-System.Web/MimeMapping.cs
-System.Web/ReadEntityBodyMode.cs
-System.Web/UnvalidatedRequestValues.cs
-System.Web/UnvalidatedRequestValuesBase.cs
-System.Web/UnvalidatedRequestValuesWrapper.cs
-System.Web/TaskAsyncResult.cs
-System.Web/TaskEventHandler.cs
-System.Web.Security/MembershipPasswordAttribute.cs
-System.Web/DynamicModuleManager.cs
index 1d5298bcd3a26184b2a31c125da98c9c6b790a33..4e1d65c8e8d6808b9fe1832838f05f6c0d4acedc 100644 (file)
@@ -17,7 +17,7 @@ RESOURCE_STRINGS = \
        ../../../external/referencesource/System.Xml/System.Xml.txt \
        ../../../external/referencesource/System.Data.SqlXml/System.Xml.Utils.txt
 
-PROFILE_ANY_MOBILE := $(filter monotouch monotouch_runtime monodroid xammac mobile mobile_static, $(PROFILE))
+PROFILE_ANY_MOBILE := $(filter monotouch monotouch_runtime monotouch_watch monodroid xammac mobile mobile_static, $(PROFILE))
 
 LIB_REFS = System
 LIB_MCS_FLAGS = -r:$(corlib)  -nowarn:219,414,649,1717 -unsafe -d:ASYNC
index baeb9d504923183e56e0bf7e7fc3e8435e753909..9c973ed2f4c0761d8f7eabe01beaf3b38f99bd3a 100644 (file)
@@ -1,4 +1,4 @@
-PROFILE = net_4_5
+PROFILE = net_4_x
 RUNTIME = MONO_PATH=../../../../lib/$(PROFILE) mono --debug
 MCS = mcs
 TESTS = xsd-test-suite/suntest/SunTestsAll/xsiType1.xsd
index b0ebe6bbce18fa761ba39077e7c3abefd9c72ed8..7e47f83403429fa71de3498183478c4447f96c92 100644 (file)
@@ -12,8 +12,8 @@
 
 RUNTIME = mono
 
-nunit_MONO_PATH="../../../../../class/lib/net_4_5"
-CSCOMPILE=MONO_PATH=../../../../../class/lib/net_4_5 ../../../../../../runtime/mono-wrapper ../../../../../class/lib/build/mcs.exe
+nunit_MONO_PATH="../../../../../class/lib/net_4_x"
+CSCOMPILE=MONO_PATH=../../../../../class/lib/net_4_x ../../../../../../runtime/mono-wrapper ../../../../../class/lib/build/mcs.exe
 
 TEST_ARCHIVE = xslt-testsuite-03.ZIP
 CATALOG = testsuite/TESTS/catalog.xml
index 89174f2a72aaa7c9434e3f88ec189abeef3f9444..455661d7a5464355fca0193661e8f59fd9e1fd9d 100644 (file)
@@ -3,7 +3,7 @@
 RUNTIME=mono
 XMLCONF_OPTIONS=
 
-nunit_MONO_PATH="../../../../../class/lib/net_4_5"
+nunit_MONO_PATH="../../../../../class/lib/net_4_x"
 CSCOMPILE=mcs
 
 REFERENCES=-d:NUNIT_SUPPORT -r:nunit.core -r:nunit.framework
diff --git a/mcs/class/System.XML/monotouch_watch_System.Xml.dll.sources b/mcs/class/System.XML/monotouch_watch_System.Xml.dll.sources
new file mode 100644 (file)
index 0000000..b663093
--- /dev/null
@@ -0,0 +1 @@
+#include mobile_System.Xml.dll.sources
index 884452d6ed9f9d119d43d71dc9e945486c107e4a..4b87a21275bbb351acb4ee92e3008c6b5e4456a3 100644 (file)
@@ -15,7 +15,7 @@ TEST_EXTRA_DISTFILES = \
        Test/XmlFiles/*.xml \
        Test/XmlFiles/*.xaml
 
-VALID_PROFILE := $(filter 4 monodroid monotouch mobile mobile_static, $(FRAMEWORK_VERSION_MAJOR))
+VALID_PROFILE := $(filter 4 monodroid monotouch monotouch_watch mobile mobile_static, $(FRAMEWORK_VERSION_MAJOR))
 ifndef VALID_PROFILE
 LIBRARY_NAME = dummy-System.Xaml.dll
 NO_INSTALL = yes
index 35f5c7347ba8247e1e25dcc899d4debd6811ebef..73dcf6f927db8d5c092f4800077a84133f3e0bcb 100755 (executable)
@@ -709,11 +709,7 @@ namespace MonoTests.System.Xaml
                [Test]
                public void OnSetValueAndHandledFalse () // part of bug #3003
                {
-#if NET_4_5
-                       string ver = "net_4_5";
-#else
-                       string ver = "net_4_0";
-#endif
+                       const string ver = "net_4_x";
 
                        /*
                        var obj = new TestClass3 ();
@@ -838,11 +834,7 @@ namespace MonoTests.System.Xaml
 
                XamlReader GetReader (string filename)
                {
-#if NET_4_5
-                       string ver = "net_4_5";
-#else
-                       string ver = "net_4_0";
-#endif
+                       const string ver = "net_4_x";
                        string xml = File.ReadAllText (Path.Combine ("Test/XmlFiles", filename)).Replace ("net_4_0", ver);
                        return new XamlXmlReader (XmlReader.Create (new StringReader (xml)));
                }
index b8dd211e648598d080ae7eea686705894f2ff507..70b26b87c5ab2dd6d95b4089e92b3016183f0656 100755 (executable)
@@ -45,11 +45,7 @@ namespace MonoTests.System.Xaml
 
                XamlReader GetReader (string filename)
                {
-#if NET_4_5
-                       string ver = "net_4_5";
-#else
-                       string ver = "net_4_0";
-#endif
+                       const string ver = "net_4_x";
                        string xml = File.ReadAllText (Path.Combine ("Test/XmlFiles", filename)).Replace ("net_4_0", ver);
                        return new XamlXmlReader (XmlReader.Create (new StringReader (xml)));
                }
index d57ae5af27a760e5798dbe8fff60d445400d9387..eaf0f28c257650e70df94804dd149d45c4bc43d4 100755 (executable)
@@ -636,11 +636,7 @@ namespace MonoTests.System.Xaml
 
                string ReadXml (string name)
                {
-#if NET_4_5
-                       string ver = "net_4_5";
-#else
-                       string ver = "net_4_0";
-#endif
+                       string ver = "net_4_x";
                        return File.ReadAllText ("Test/XmlFiles/" + name).Trim ().Replace (">\n", ">\r\n").Replace ("net_4_0", ver).Replace ("\r\n", Environment.NewLine);
                }
 
index 9e072e80c17f0d0ff93b99151a5156a3c3aa7e67..8136bb048ae3b822acbfbd780cfbbdac9fe724cd 100644 (file)
@@ -25,7 +25,7 @@ TEST_MCS_FLAGS = -r:System.Drawing.dll -r:Mono.Security.dll -r:System.Data -r:Sy
 REFERENCE_SOURCES_FLAGS = -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX
 LIB_MCS_FLAGS = -nowarn:618 -d:CONFIGURATION_2_0 $(REFERENCE_SOURCES_FLAGS) -unsafe $(RESOURCE_FILES:%=-resource:%)
 TEST_MCS_FLAGS += -r:System.Configuration
-PROFILE_ANY_MOBILE := $(filter monotouch monotouch_runtime monodroid xammac mobile mobile_static, $(PROFILE))
+PROFILE_ANY_MOBILE := $(filter monotouch monotouch_runtime monotouch_watch monodroid xammac mobile mobile_static, $(PROFILE))
 
 RESOURCE_STRINGS = ../../../external/referencesource/System/System.txt
 
@@ -35,6 +35,9 @@ endif
 ifeq (monotouch, $(subst _runtime,,$(PROFILE)))
 LIB_MCS_FLAGS += -d:SECURITY_DEP
 endif
+ifeq (monotouch_watch, $(PROFILE))
+LIB_MCS_FLAGS += -d:SECURITY_DEP
+endif
 ifeq (monodroid, $(PROFILE))
 LIB_MCS_FLAGS += -d:SECURITY_DEP
 endif
index 48662a02e2e22f76cc19c1525cc18476ea81d20f..5c389a0ea7bbf77b007cd2f1ee498a5ac5f02958 100644 (file)
@@ -50,6 +50,7 @@ namespace Mono.CSharp
        {
                static string windowsMcsPath;
                static string windowsMonoPath;
+               static string unixMcsCommand;
 
                Mutex mcsOutMutex;
                StringCollection mcsOutput;
@@ -85,6 +86,13 @@ namespace Mono.CSharp
                                
                                if (!File.Exists (windowsMcsPath))
                                        throw new FileNotFoundException ("Windows mcs path not found: " + windowsMcsPath);
+                       } else {
+                               var mscorlibPath = new Uri (typeof (object).Assembly.CodeBase).LocalPath;
+                               var unixMcsPath = Path.GetFullPath (Path.Combine (mscorlibPath, "..", "..", "..", "..", "bin", "mcs"));
+                               if (File.Exists (unixMcsPath))
+                                       unixMcsCommand = unixMcsPath;
+                               else
+                                       unixMcsCommand = "mcs";
                        }
                }
 
@@ -173,7 +181,7 @@ namespace Mono.CSharp
                                mcs.StartInfo.Arguments = "\"" + windowsMcsPath + "\" " +
                                        BuildArgs (options, fileNames, ProviderOptions);
                        } else {
-                               mcs.StartInfo.FileName="mcs";
+                               mcs.StartInfo.FileName=unixMcsCommand;
                                mcs.StartInfo.Arguments=BuildArgs(options, fileNames, ProviderOptions);
                        }
 
index 0b278a99fef10d8285349ad83953352bec52742a..bdb08db595adb849f3cea1b849b7b8a12fb9917a 100644 (file)
@@ -50,6 +50,7 @@ namespace Microsoft.VisualBasic
        {
                static string windowsMonoPath;
                static string windowsvbncPath;
+               static string unixVbncCommand;
 
                static VBCodeCompiler ()
                {
@@ -69,6 +70,13 @@ namespace Microsoft.VisualBasic
                                                "bin\\mono.exe");
                                windowsvbncPath =
                                        Path.Combine (p, "2.0\\vbnc.exe");
+                       } else {
+                               var mscorlibPath = new Uri (typeof (object).Assembly.CodeBase).LocalPath;
+                               var unixMcsPath = Path.GetFullPath (Path.Combine (mscorlibPath, "..", "..", "..", "..", "bin", "vbnc"));
+                               if (File.Exists (unixMcsPath))
+                                       unixVbncCommand = unixMcsPath;
+                               else
+                                       unixVbncCommand = "vbnc";
                        }
                }
 
index 5d82088e5309b94a3b8b47475bdf458950a47608..58f07d40c8aa50707a5e4dea7b001a45459b57d7 100644 (file)
     <Compile Include="ReferenceSources\AssertWrapper.cs" />\r
     <Compile Include="ReferenceSources\BinaryCompatibility.cs" />\r
     <Compile Include="ReferenceSources\ConfigurationManagerInternalFactory.cs" />\r
+    <Compile Include="ReferenceSources\HttpSysSettings.cs" />\r
     <Compile Include="ReferenceSources\Logging.cs" />\r
     <Compile Include="ReferenceSources\NativeMethods.cs" />\r
     <Compile Include="ReferenceSources\SettingsSectionInternal.cs" />\r
index 10451c474152c1db2e91542b434eb0fb8bcea71f..731ae63b8793f031d1da059761fc3238c3632e9d 100644 (file)
     <Compile Include="ReferenceSources\AssertWrapper.cs" />\r
     <Compile Include="ReferenceSources\BinaryCompatibility.cs" />\r
     <Compile Include="ReferenceSources\ConfigurationManagerInternalFactory.cs" />\r
+    <Compile Include="ReferenceSources\HttpSysSettings.cs" />\r
     <Compile Include="ReferenceSources\Logging.cs" />\r
     <Compile Include="ReferenceSources\NativeMethods.cs" />\r
     <Compile Include="ReferenceSources\SettingsSectionInternal.cs" />\r
index d4c8d3e15237ea4b7d2103ad5b1f738b59c7e77c..c17518029fbb9eca45498ab8daa61e06206f8562 100644 (file)
     <Compile Include="ReferenceSources\AssertWrapper.cs" />\r
     <Compile Include="ReferenceSources\BinaryCompatibility.cs" />\r
     <Compile Include="ReferenceSources\ConfigurationManagerInternalFactory.cs" />\r
+    <Compile Include="ReferenceSources\HttpSysSettings.cs" />\r
     <Compile Include="ReferenceSources\Logging.cs" />\r
     <Compile Include="ReferenceSources\NativeMethods.cs" />\r
     <Compile Include="ReferenceSources\SettingsSectionInternal.cs" />\r
index b3b5cbf3da3d86e1e3c869bab36dcda77c385453..a7c793bedbfc678d40db6f923a06a29f850939b6 100644 (file)
@@ -616,7 +616,8 @@ namespace System.Diagnostics {
                }
 
                private StreamReader error_stream=null;
-               
+               bool error_stream_exposed;
+
                [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden), Browsable (false)]
                [MonitoringDescription ("The standard error stream of this process.")]
                public StreamReader StandardError {
@@ -629,11 +630,13 @@ namespace System.Diagnostics {
 
                                async_mode |= AsyncModes.SyncError;
 
+                               error_stream_exposed = true;
                                return(error_stream);
                        }
                }
 
                private StreamWriter input_stream=null;
+               bool input_stream_exposed;
                
                [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden), Browsable (false)]
                [MonitoringDescription ("The standard input stream of this process.")]
@@ -642,11 +645,13 @@ namespace System.Diagnostics {
                                if (input_stream == null)
                                        throw new InvalidOperationException("Standard input has not been redirected");
 
+                               input_stream_exposed = true;
                                return(input_stream);
                        }
                }
 
                private StreamReader output_stream=null;
+               bool output_stream_exposed;
                
                [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden), Browsable (false)]
                [MonitoringDescription ("The standard output stream of this process.")]
@@ -660,6 +665,7 @@ namespace System.Diagnostics {
 
                                async_mode |= AsyncModes.SyncOutput;
 
+                               output_stream_exposed = true;
                                return(output_stream);
                        }
                }
@@ -1481,9 +1487,13 @@ namespace System.Diagnostics {
                        }
 
                        public void Close () {
+                               RemoveFromIOThreadPool (handle);
                                stream.Close ();
                        }
 
+                       [MethodImplAttribute(MethodImplOptions.InternalCall)]
+                       extern static void RemoveFromIOThreadPool (IntPtr handle);
+
                        void IThreadPoolWorkItem.ExecuteWorkItem()
                        {
                                async_result.Invoke ();
@@ -1603,9 +1613,21 @@ namespace System.Diagnostics {
                                                if (async_error != null)
                                                        async_error.Close ();
 
-                                               input_stream = null;
-                                               output_stream = null;
-                                               error_stream = null;
+                                               if (input_stream != null) {
+                                                       if (!input_stream_exposed)
+                                                               input_stream.Close ();
+                                                       input_stream = null;
+                                               }
+                                               if (output_stream != null) {
+                                                       if (!output_stream_exposed)
+                                                               output_stream.Close ();
+                                                       output_stream = null;
+                                               }
+                                               if (error_stream != null) {
+                                                       if (!error_stream_exposed)
+                                                               error_stream.Close ();
+                                                       error_stream = null;
+                                               }
                                        }
                                }
                                
index 27f61b35d0ea775478f504f0b288e67620fa7559..0d2e39ee02baddcd7c5f4743b3c8087a6af1cdc6 100644 (file)
@@ -355,7 +355,21 @@ namespace System.IO {
                        while (!requestStop) {
                                var changes = CreateChangeList (ref newFds);
 
-                               int numEvents = kevent_notimeout (conn, changes, changes.Length, eventBuffer, eventBuffer.Length, IntPtr.Zero);
+                               // We are calling an icall, so have to marshal manually
+                               // Marshal in
+                               int ksize = Marshal.SizeOf<kevent> ();
+                               var changesNative = Marshal.AllocHGlobal (ksize * changes.Length);
+                               for (int i = 0; i < changes.Length; ++i)
+                                       Marshal.StructureToPtr (changes [i], changesNative + (i * ksize), false);
+                               var eventBufferNative = Marshal.AllocHGlobal (ksize * eventBuffer.Length);
+
+                               int numEvents = kevent_notimeout (ref conn, changesNative, changes.Length, eventBufferNative, eventBuffer.Length);
+
+                               // Marshal out
+                               Marshal.FreeHGlobal (changesNative);
+                               for (int i = 0; i < numEvents; ++i)
+                                       eventBuffer [i] = Marshal.PtrToStructure<kevent> (eventBufferNative + (i * ksize));
+                               Marshal.FreeHGlobal (eventBufferNative);
 
                                if (numEvents == -1) {
                                        // Stop () signals us to stop by closing the connection
@@ -367,7 +381,6 @@ namespace System.IO {
 
                                        continue;
                                }
-
                                retries = 0;
 
                                for (var i = 0; i < numEvents; i++) {
@@ -658,8 +671,8 @@ namespace System.IO {
                [DllImport ("libc")]
                extern static int kevent (int kq, [In]kevent[] ev, int nchanges, [Out]kevent[] evtlist, int nevents, [In] ref timespec time);
 
-               [DllImport ("libc", EntryPoint="kevent")]
-               extern static int kevent_notimeout (int kq, [In]kevent[] ev, int nchanges, [Out]kevent[] evtlist, int nevents, IntPtr ptr);
+               [MethodImplAttribute(MethodImplOptions.InternalCall)]
+               extern static int kevent_notimeout (ref int kq, IntPtr ev, int nchanges, IntPtr evtlist, int nevents);
        }
 
        class KeventWatcher : IFileWatcher
diff --git a/mcs/class/System/System.Net.Mail/SmtpDeliveryFormat.cs b/mcs/class/System/System.Net.Mail/SmtpDeliveryFormat.cs
new file mode 100644 (file)
index 0000000..8222f6a
--- /dev/null
@@ -0,0 +1,36 @@
+//
+// SmtpDeliveryFormat.cs:
+//
+// Authors:
+//     Marek Safar (marek.safar@gmail.com)
+//
+// (C) 2015 Xamarin, Inc. (http://www.xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+namespace System.Net.Mail {
+
+       public enum SmtpDeliveryFormat
+       {
+               SevenBit = 0,
+               International = 1
+       }
+}
index 13bcbe12504a421b2f43094ddfd09106f3b02b9b..8dd8743c85ffbcc070cc2fda0f5a766df00a786a 100644 (file)
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 namespace System.Net.NetworkInformation {
-       public abstract class IPv4InterfaceStatistics {
-               protected IPv4InterfaceStatistics ()
-               {
-               }
-               
-               public abstract long BytesReceived { get; }
-               public abstract long BytesSent { get; }
-               public abstract long IncomingPacketsDiscarded { get; }
-               public abstract long IncomingPacketsWithErrors { get; }
-               public abstract long IncomingUnknownProtocolPackets { get; }
-               public abstract long NonUnicastPacketsReceived { get; }
-               public abstract long NonUnicastPacketsSent { get; }
-               public abstract long OutgoingPacketsDiscarded { get; }
-               public abstract long OutgoingPacketsWithErrors { get; }
-
-               [MonoTODO("Not implemented for Linux")]
-               public abstract long OutputQueueLength { get; }
-               public abstract long UnicastPacketsReceived { get; }
-               public abstract long UnicastPacketsSent { get; }
-       }
-
        class Win32IPv4InterfaceStatistics : IPv4InterfaceStatistics
        {
                Win32_MIB_IFROW info;
index ae17c5e03432e4defd25246eba8c8296a88c0281..3b06a4e79da6baccdc69864570818889f784868a 100644 (file)
@@ -404,13 +404,15 @@ namespace System.Net.NetworkInformation {
                void OnAvailabilityChanged (object unused)
                {
                        NetworkAvailabilityChangedEventHandler d = AvailabilityChanged;
-                       d (null, new NetworkAvailabilityEventArgs (GetAvailability ()));
+                       if (d != null)
+                               d (null, new NetworkAvailabilityEventArgs (GetAvailability ()));
                }
 
                void OnAddressChanged (object unused)
                {
                        NetworkAddressChangedEventHandler d = AddressChanged;
-                       d (null, EventArgs.Empty);
+                       if (d != null)
+                               d (null, EventArgs.Empty);
                }
 
                void OnEventDue (object unused)
index f25525711d6450919e8323f98ea7a43af080c187..62748e573f693e4a8344a822c9eec687f543b2fe 100644 (file)
@@ -70,6 +70,11 @@ namespace System.Net.NetworkInformation {
                        }
                }
 
+               public static IPAddress GetNetMask (IPAddress address)
+               {
+                       return nif.GetNetMask (address);
+               }
+
                public abstract IPInterfaceProperties GetIPProperties ();
                public abstract IPv4InterfaceStatistics GetIPv4Statistics ();
                public abstract PhysicalAddress GetPhysicalAddress ();
@@ -101,12 +106,12 @@ namespace System.Net.NetworkInformation {
 
                class MacOsNetworkInterfaceAPI : UnixNetworkInterfaceAPI
                {
+                       const int AF_INET  = 2;
+                       const int AF_INET6 = 30;
+                       const int AF_LINK  = 18;
+
                        public override NetworkInterface [] GetAllNetworkInterfaces ()
                        {
-                               const int AF_INET  = 2;
-                               const int AF_INET6 = 30;
-                               const int AF_LINK  = 18;
-
                                var interfaces = new Dictionary <string, MacOsNetworkInterface> ();
                                IntPtr ifap;
                                if (getifaddrs (out ifap) != 0)
@@ -210,6 +215,37 @@ namespace System.Net.NetworkInformation {
                        {
                                return if_nametoindex ("lo0");
                        }
+
+                       public override IPAddress GetNetMask (IPAddress address)
+                       {
+                               IntPtr ifap;
+                               if (getifaddrs (out ifap) != 0)
+                                       throw new SystemException ("getifaddrs() failed");
+
+                               try {
+                                       IntPtr next = ifap;
+                                       while (next != IntPtr.Zero) {
+                                               MacOsStructs.ifaddrs addr = (MacOsStructs.ifaddrs) Marshal.PtrToStructure (next, typeof (MacOsStructs.ifaddrs));
+
+                                               if (addr.ifa_addr != IntPtr.Zero) {
+                                                       // optain IPAddress
+                                                       MacOsStructs.sockaddr sockaddr = (MacOsStructs.sockaddr) Marshal.PtrToStructure (addr.ifa_addr, typeof (MacOsStructs.sockaddr));
+
+                                                       if (sockaddr.sa_family == AF_INET) {
+                                                               MacOsStructs.sockaddr_in sockaddrin = (MacOsStructs.sockaddr_in) Marshal.PtrToStructure (addr.ifa_addr, typeof (MacOsStructs.sockaddr_in));
+                                                               var saddress = new IPAddress (sockaddrin.sin_addr);
+                                                               if (address.Equals (saddress))
+                                                                       return new IPAddress(((sockaddr_in)Marshal.PtrToStructure(addr.ifa_netmask, typeof(sockaddr_in))).sin_addr);
+                                                       }
+                                               }
+                                               next = addr.ifa_next;
+                                       }
+                               } finally {
+                                       freeifaddrs (ifap);
+                               }
+
+                               return null;
+                       }
                }
 
                class LinuxNetworkInterfaceAPI : UnixNetworkInterfaceAPI
@@ -367,6 +403,11 @@ namespace System.Net.NetworkInformation {
                        {
                                return if_nametoindex ("lo");
                        }
+
+                       public override IPAddress GetNetMask (IPAddress address)
+                       {
+                               throw new NotImplementedException ();
+                       }
                }
 
                class Win32NetworkInterfaceAPI : NetworkInterfaceFactory
@@ -410,10 +451,16 @@ namespace System.Net.NetworkInformation {
                        {
                                throw new NotImplementedException ();
                        }
+
+                       public override IPAddress GetNetMask (IPAddress address)
+                       {
+                               throw new NotImplementedException ();
+                       }
                }
 
                public abstract NetworkInterface [] GetAllNetworkInterfaces ();
                public abstract int GetLoopbackInterfaceIndex ();
+               public abstract IPAddress GetNetMask (IPAddress address);
 
                public static NetworkInterfaceFactory Create ()
                {
index 571bbad7f178b98cb55746f1b72634adc1510d47..e8c254a2a378e1ce0d9b33a1637cda3ff8d2764a 100644 (file)
 //
 using System;
 using System.Runtime.InteropServices;
+using System.Net.Sockets;
 
 namespace System.Net.NetworkInformation {
-       public abstract class UnicastIPAddressInformation : IPAddressInformation {
-               protected UnicastIPAddressInformation ()
-               {
-               }
-               
-               public abstract long AddressPreferredLifetime { get; }
-               public abstract long AddressValidLifetime { get; }
-               public abstract long DhcpLeaseLifetime { get; }
-               public abstract DuplicateAddressDetectionState DuplicateAddressDetectionState { get; }
-               public abstract IPAddress IPv4Mask { get; }
-               public abstract PrefixOrigin PrefixOrigin { get; }
-               public abstract SuffixOrigin SuffixOrigin { get; }
-       }
-
        class Win32UnicastIPAddressInformation : UnicastIPAddressInformation 
        {
                int if_index;
@@ -122,6 +109,7 @@ namespace System.Net.NetworkInformation {
        class LinuxUnicastIPAddressInformation : UnicastIPAddressInformation
        {
                IPAddress address;
+               IPAddress ipv4Mask;
 
                public LinuxUnicastIPAddressInformation (IPAddress address)
                {
@@ -163,7 +151,16 @@ namespace System.Net.NetworkInformation {
                }
 
                public override IPAddress IPv4Mask {
-                       get { throw new NotImplementedException (); }
+                       get {
+                               // The IPv6 equivilant (for .net compatibility)
+                               if (Address.AddressFamily != AddressFamily.InterNetwork)
+                                       return IPAddress.Any;
+
+                               if (ipv4Mask == null)
+                                       ipv4Mask = NetworkInterface.GetNetMask (address);
+
+                               return ipv4Mask;
+                       }
                }
 
                public override PrefixOrigin PrefixOrigin {
diff --git a/mcs/class/System/System.Net.Security/EncryptionPolicy.cs b/mcs/class/System/System.Net.Security/EncryptionPolicy.cs
new file mode 100644 (file)
index 0000000..66236ad
--- /dev/null
@@ -0,0 +1,37 @@
+//
+// EncryptionPolicy.cs:
+//
+// Authors:
+//     Marek Safar  <marek.safar@gmail.com>
+//
+// Copyright (C) 2015 Xamarin Inc (http://www.xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+namespace System.Net.Security
+{
+       public enum EncryptionPolicy
+       {
+               RequireEncryption = 0,  
+               AllowNoEncryption,
+               NoEncryption
+       }
+}
diff --git a/mcs/class/System/System.Net/HttpListenerTimeoutManager.cs b/mcs/class/System/System.Net/HttpListenerTimeoutManager.cs
new file mode 100644 (file)
index 0000000..d7e008b
--- /dev/null
@@ -0,0 +1,35 @@
+//
+// HttpListenerTimeoutManager.cs
+//
+// Authors:
+//     Marek Safar  <marek.safar@gmail.com>
+//
+// Copyright (C) 2015 Xamarin Inc (http://www.xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+namespace System.Net
+{
+       public class HttpListenerTimeoutManager
+       {
+
+       }
+}
\ No newline at end of file
index bb47c65c48faa262a6dedeeafc554390e796d4cd..d3a3dd507be8c35b0f252f25ea9ad0e1c9cd89a6 100644 (file)
@@ -312,7 +312,7 @@ namespace System.Net
                        lock (this) {
                                idleSince = outIdleSince;
 
-                               if (removeList != null) {
+                               if (removeList != null && groups != null) {
                                        foreach (var group in removeList)
                                                if (groups.ContainsKey (group.Name))
                                                        RemoveConnectionGroup (group);
index 52a88f7e2df45aff89a7cd1a20255e52c1a44ca8..fcee594ebcf50331e59976fa1645c32d1ca9c602 100644 (file)
@@ -1067,6 +1067,8 @@ namespace System.Net
 
                        Stream s = null;
                        lock (this) {
+                               if (status == WebExceptionStatus.RequestCanceled)
+                                       return true;
                                if (Data.request != request)
                                        throw new ObjectDisposedException (typeof (NetworkStream).FullName);
                                if (nstream == null)
index 87f60363da8a4306b543420ccf085a142b764d2e..3862b3e4eff56284f11f2d1f768ce139c75e2c02 100644 (file)
@@ -654,7 +654,8 @@ namespace System.Net
                        if (setInternalLength && !no_writestream && writeBuffer != null)
                                request.InternalContentLength = writeBuffer.Length;
 
-                       if (!(sendChunked || request.ContentLength > -1 || no_writestream || webdav))
+                       bool has_content = !no_writestream && (writeBuffer == null || request.ContentLength > -1);
+                       if (!(sendChunked || has_content || no_writestream || webdav))
                                return false;
 
                        headersSent = true;
index 2adfad58ad0b47ac8c37eeef6413daea1d961f74..71eb71e31062c3b5704713a2573ef4caf2fda9c3 100644 (file)
@@ -25,7 +25,7 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0 && CONFIGURATION_DEP
+#if CONFIGURATION_DEP
 
 extern alias PrebuiltSystem;
 
index 6fa5e8c456631e19346298d211119affc21b5b57..b6a272e93152e8eacdbe66c8c9c43bdcf3a3ef0e 100644 (file)
@@ -25,7 +25,7 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0 && CONFIGURATION_DEP
+#if CONFIGURATION_DEP
 
 using System;
 using System.Collections;
index eb143e9ff80790d40048870c3bcab02d43b3abf8..2e439fea512ef396c4f3f39e70292f05ab3b6063 100644 (file)
@@ -25,7 +25,7 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0 && CONFIGURATION_DEP
+#if CONFIGURATION_DEP
 
 using System;
 using System.Collections;
index 900bdc5c60af58b044a5aa8cf80f7f9632e2f41c..15a4218ca1939fa8efec066f02431fe2dede8f1b 100644 (file)
@@ -25,7 +25,7 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_4_0 && CONFIGURATION_DEP
+#if CONFIGURATION_DEP
 
 using System;
 using System.Collections;
diff --git a/mcs/class/System/System.Security.Cryptography/OidGroup.cs b/mcs/class/System/System.Security.Cryptography/OidGroup.cs
new file mode 100644 (file)
index 0000000..55045d9
--- /dev/null
@@ -0,0 +1,44 @@
+//
+// OidGroup.cs:
+//
+// Authors:
+//     Marek Safar  <marek.safar@gmail.com>
+//
+// Copyright (C) 2015 Xamarin Inc (http://www.xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+namespace System.Security.Cryptography
+{
+       public enum OidGroup {
+               All                     = 0,
+               HashAlgorithm           = 1,
+               EncryptionAlgorithm     = 2,
+               PublicKeyAlgorithm      = 3,
+               SignatureAlgorithm      = 4,
+               Attribute               = 5,
+               ExtensionOrAttribute    = 6,
+               EnhancedKeyUsage        = 7,
+               Policy                  = 8,
+               Template                = 9,
+               KeyDerivationFunction   = 10
+       }
+}
index 046d0a475446c9ce9dab0ddcbefde09b9e3727a8..9c4f6cfe4ea87886d10c5c423b6f358964f9230d 100644 (file)
@@ -296,6 +296,7 @@ System.Net/HttpListenerException.cs
 System.Net/HttpListenerPrefixCollection.cs
 System.Net/HttpListenerRequest.cs
 System.Net/HttpListenerResponse.cs
+System.Net/HttpListenerTimeoutManager.cs
 System.Net/HttpRequestCreator.cs
 System.Net/HttpRequestHeader.cs
 System.Net/HttpResponseHeader.cs
@@ -335,6 +336,7 @@ System.Net.Mail/MailPriority.cs
 System.Net.Mail/SendCompletedEventHandler.cs
 System.Net.Mail/SmtpAccess.cs
 System.Net.Mail/SmtpClient.cs
+System.Net.Mail/SmtpDeliveryFormat.cs
 System.Net.Mail/SmtpDeliveryMethod.cs
 System.Net.Mail/SmtpException.cs
 System.Net.Mail/SmtpFailedRecipientException.cs
@@ -407,6 +409,7 @@ System.Net/RequestStream.cs
 System.Net/ResponseStream.cs
 System.Net.Security/AuthenticatedStream.cs
 System.Net.Security/AuthenticationLevel.cs
+System.Net.Security/EncryptionPolicy.cs
 System.Net.Security/LocalCertificateSelectionCallback.cs
 System.Net.Security/NegotiateStream.cs
 System.Net.Security/ProtectionLevel.cs
@@ -509,6 +512,7 @@ System.Security.Cryptography/AsnEncodedDataEnumerator.cs
 System.Security.Cryptography/OidCollection.cs
 System.Security.Cryptography/Oid.cs
 System.Security.Cryptography/OidEnumerator.cs
+System.Security.Cryptography/OidGroup.cs
 System.Security.Cryptography.X509Certificates/OpenFlags.cs
 System.Security.Cryptography.X509Certificates/OSX509Certificates.cs
 System.Security.Cryptography.X509Certificates/PublicKey.cs
@@ -1008,6 +1012,12 @@ ReferenceSources/Win32Exception.cs
 ../../../external/referencesource/System/net/System/Net/WebPermission.cs
 ../../../external/referencesource/System/net/System/Net/WriteStreamClosedEventArgs.cs
 
+../../../external/referencesource/System/net/System/Net/NetworkInformation/IPInterfaceStatistics.cs
+../../../external/referencesource/System/net/System/Net/NetworkInformation/ScopeLevel.cs
+../../../external/referencesource/System/net/System/Net/NetworkInformation/UnicastIPAddressInformation.cs
+
+../../../external/referencesource/System/net/System/Net/Sockets/IPProtectionLevel.cs
+
 ../../../external/referencesource/System/sys/system/runtime/versioning/FrameworkName.cs
 
 ../../../external/referencesource/System/sys/system/threading/Barrier.cs
index 3464e0a971a9938dd0fd661294c3678855255e70..6d878731991f60945ebc74a77981c868acf44215 100644 (file)
@@ -263,7 +263,12 @@ namespace System
 
                        builder.Append (scheme);
                        // note: mailto and news use ':', not "://", as their delimiter
-                       builder.Append (Uri.GetSchemeDelimiter (scheme));
+                       if (UriParser.IsKnownScheme(scheme)) {
+                               builder.Append (Uri.GetSchemeDelimiter (scheme));
+                       }
+                       else {
+                               builder.Append (host.Length > 0 ? Uri.SchemeDelimiter : ":");
+                       }
 
                        if (username != String.Empty) {
                                builder.Append (username);
@@ -280,7 +285,8 @@ namespace System
 
                        if (path != String.Empty &&
                            builder [builder.Length - 1] != '/' &&
-                           path.Length > 0 && path [0] != '/')
+                           path.Length > 0 && path [0] != '/' &&
+                               host.Length > 0)
                                builder.Append ('/');
                        builder.Append (path);
                        builder.Append (query);
index bf41aeee21af96b1c098b5bb30e596f11cdebb69..6db78941d42aced60c5629666fc5aa3560f68f9b 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // BlockingCollectionTests.cs
 //
 // Copyright (c) 2008 Jérémie "Garuma" Laval
@@ -283,4 +282,3 @@ namespace MonoTests.System.Collections.Concurrent
                }
        }
 }
-#endif
index c613fc1eece4b251b05f755dde600a24bbc4d430..8dfb779b15e5f1995b8e3b5ce65a33851170bc5c 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // 
 // CollectionStressTestHelper.cs
 //  
@@ -131,4 +130,3 @@ namespace MonoTests.System.Collections.Concurrent
                }
        }
 }
-#endif
index f947442627f51d74f5837d06248c97241cf60edd..7f7c9ece2aff9c3613a09595473b60e9c68585bd 100644 (file)
@@ -24,7 +24,6 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
-#if NET_4_0
 
 using System;
 using System.Collections;
@@ -265,4 +264,3 @@ namespace MonoTests.System.Collections.Concurrent
                }
        }
 }
-#endif
index fbc438626e7265b81e84a26bf6be01255d48e198..4f02f90e976ad3d333a8eac245fac80cb8ea42d5 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // TestHelper.cs
 //
 // Copyright (c) 2008 Jérémie "Garuma" Laval
@@ -86,4 +85,3 @@ namespace MonoTests.System.Collections.Concurrent
                }
        }
 }
-#endif
index f287da56cf00379b47c17d3fa748cfe8b6a167f3..60a34d36c4390d76c3ba7aa00c1cfb3f829f4f43 100644 (file)
@@ -26,7 +26,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0
 
 using System;
 using System.Collections;
@@ -540,4 +539,3 @@ namespace MonoTests.System.Collections.Generic
        }
 }
 
-#endif
index ff723d197f82b79a7eef37947c996573cd00d599..6ff371256e87776deff8b50e43f352eaa70d7bff 100644 (file)
@@ -21,7 +21,6 @@
 //     Brian O'Keefe (zer0keefie@gmail.com)
 //
 
-#if NET_4_0
 
 using System.Collections;
 using NUnit.Framework;
@@ -102,4 +101,3 @@ namespace MonoTests.System.Collections.Specialized {
        }
 }
 
-#endif
\ No newline at end of file
index 3f66d3edadbc390962aacc39fea29f19b756c579..1c2978942834ee9953f11abb56059c6c3bc5ede4 100644 (file)
@@ -26,7 +26,6 @@
 //     Marek Safar (marek.safar@gmail.com)
 //
 
-#if NET_4_0
 
 using System.Collections.ObjectModel;
 using System.Collections.Specialized;
@@ -349,4 +348,3 @@ namespace MonoTests.System.Collections.ObjectModel {
        }
 }
 
-#endif
\ No newline at end of file
index 213c10baaf5fae7042abc4164e05c343e04e6113..665c984bcf74d8e12e058e2f4956dc006fb8aa8b 100644 (file)
@@ -21,7 +21,6 @@
 //     Brian O'Keefe (zer0keefie@gmail.com)
 //
 
-#if NET_4_0
 
 using System.Collections.Generic;
 using System.Collections.ObjectModel;
@@ -93,4 +92,3 @@ namespace MonoTests.System.Collections.ObjectModel {
        }
 }
 
-#endif
\ No newline at end of file
index 0c91937e575e475e444914e46683264ebe514a7b..fe3e4818775c1994a6be44baee9ae26dba7d4174 100644 (file)
@@ -26,7 +26,7 @@ namespace MonoTests.System.ComponentModel
                        SynchronizationContext sc1 = new SynchronizationContext ();\r
                        SynchronizationContext sc2 = new SynchronizationContext ();\r
 \r
-#if MOBILE\r
+#if MOBILE && !MONODROID\r
                        Assert.IsNotNull (SynchronizationContext.Current, "A1");\r
 #else\r
                        Assert.IsNull (SynchronizationContext.Current, "A1");\r
index 9badf4312e856762e7166b63e0378901201750e6..5a524bdf6baaa5a2a8743ad1940e3ca6e053db52 100644 (file)
@@ -35,7 +35,6 @@ namespace MonoTests.System.ComponentModel {
        [TestFixture]
        public class AttributeCollectionTest {
 
-#if NET_4_0
                [Test]
                public void Ctor_4_0 ()
                {
@@ -76,7 +75,6 @@ namespace MonoTests.System.ComponentModel {
                                return Attributes;
                        }
                }
-#endif
        }
 }
 
index c00738da1b0a236c46f660690484389228c78b21..ca40ccbf41cae6b425d634bca51523a6008ae328 100644 (file)
@@ -197,7 +197,6 @@ namespace MonoTests.System.ComponentModel
                        }
                }
 
-#if NET_4_0
                [Test]
                public void GetCultureName ()
                {
@@ -217,6 +216,5 @@ namespace MonoTests.System.ComponentModel
                                return base.GetCultureName (culture);
                        }
                }
-#endif
        }
 }
index 3d1c3af947d17e4518c3a226b1ababe1dd7ee13f..e869c8d3263c48207317b55115f36c9968d124c1 100644 (file)
@@ -26,7 +26,7 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0 && !MOBILE
+#if !MOBILE
 
 using System;
 using System.ComponentModel;
index 53dbd7bb9e5ab4f76fccf39a426223a1bb83480d..f81baa6a984c5408debfe0a6da673e2dc2191bce 100644 (file)
@@ -400,10 +400,8 @@ namespace MonoTests.System.ComponentModel
 
 #if MOBILE
                        [TypeConverter("System.ComponentModel.CharConverter, System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
-#elif NET_4_0
-                       [TypeConverter("System.ComponentModel.CharConverter, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
 #else
-                       [TypeConverter("System.ComponentModel.CharConverter, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
+                       [TypeConverter("System.ComponentModel.CharConverter, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
 #endif
                        public virtual Version WithConverterNamedAssmQuald {
                                get { return null; }
index 1c2a1e5067a2c97c8037494a28b01ce0bfb38c9e..815f7914ab3207e189cdcb4d7a3a9cefa8f3d3d6 100644 (file)
@@ -37,7 +37,6 @@ namespace MonoTests.System.ComponentModel
        [TestFixture]
        public class TypeDescriptionProviderTest
        {
-#if NET_4_0
                [Test]
                public void IsSupportedType ()
                {
@@ -71,7 +70,6 @@ namespace MonoTests.System.ComponentModel
                                return base.GetExtenderProviders (instance);
                        }
                }
-#endif
        }
 }
 
index e0861fb9b5d6cfe8a02e4794177e1f37d38a2181..7842d5c3fe8e036472a1b7f5d573be17d348e46a 100644 (file)
@@ -284,16 +284,7 @@ namespace MonoTests.System.Configuration {
                [Test]
                public void TestSettings2_Properties ()
                {
-                       // This test will fail when there are newer versions
-                       // of the test assemblies - so conditionalize it in
-                       // such cases.
-#if   NET_4_5
-                       string expected = "MonoTests.System.Configuration.ProviderPoker, System_test_net_4_5, Version=0.0.0.0";
-#elif NET_4_0
-                       string expected = "MonoTests.System.Configuration.ProviderPoker, System_test_net_4_0, Version=0.0.0.0";
-#else
-                       string expected = "MonoTests.System.Configuration.ProviderPoker, System_test_net_2_0, Version=0.0.0.0";
-#endif
+                       string expected = "MonoTests.System.Configuration.ProviderPoker, System_test_net_4_x, Version=0.0.0.0";
                        Assert.AreEqual (expected, new SettingsProviderAttribute (typeof (ProviderPoker)).ProviderTypeName.Substring (0, expected.Length), "#1");
                        TestSettings2 settings = new TestSettings2 ();
 
index 23019e0332a9f9ca4354efe935287306aa73b54b..1c9dc2484a67f7f06b5485489469f8b0f57a1925 100644 (file)
@@ -791,9 +791,11 @@ namespace MonoTests.System.Diagnostics
                        p.StartInfo.RedirectStandardError = true;
 
                        var exitedCalledCounter = 0;
+                       var exited = new ManualResetEventSlim ();
                        p.Exited += (object sender, EventArgs e) => {
                                exitedCalledCounter++;
                                Assert.IsTrue (p.HasExited);
+                               exited.Set ();
                        };
 
                        p.EnableRaisingEvents = true;
@@ -803,6 +805,7 @@ namespace MonoTests.System.Diagnostics
                        p.BeginOutputReadLine ();
                        p.WaitForExit ();
 
+                       exited.Wait (10000);
                        Assert.AreEqual (1, exitedCalledCounter);
                        Thread.Sleep (50);
                        Assert.AreEqual (1, exitedCalledCounter);
@@ -822,9 +825,11 @@ namespace MonoTests.System.Diagnostics
                        p.EnableRaisingEvents = true;
 
                        var exitedCalledCounter = 0;
+                       var exited = new ManualResetEventSlim ();
                        p.Exited += (object sender, EventArgs e) => {
                                exitedCalledCounter++;
                                Assert.IsTrue (p.HasExited);
+                               exited.Set ();
                        };
 
                        p.Start ();
@@ -832,15 +837,25 @@ namespace MonoTests.System.Diagnostics
                        p.BeginOutputReadLine ();
                        p.WaitForExit ();
 
+                       exited.Wait (10000);
                        Assert.AreEqual (1, exitedCalledCounter);
                        Thread.Sleep (50);
                        Assert.AreEqual (1, exitedCalledCounter);
                }
 
                
-               private ProcessStartInfo GetCrossPlatformStartInfo ()
+               ProcessStartInfo GetCrossPlatformStartInfo ()
                {
-                       return RunningOnUnix ? new ProcessStartInfo ("/bin/ls", "/") : new ProcessStartInfo ("help", "");
+                       if (RunningOnUnix) {
+                               string path;
+#if MONODROID
+                               path = "/system/bin/ls";
+#else
+                               path = "/bin/ls";
+#endif
+                               return new ProcessStartInfo (path, "/");
+                       } else
+                               return new ProcessStartInfo ("help", "");
                }
 
                [Test]
@@ -911,6 +926,7 @@ namespace MonoTests.System.Diagnostics
                }
 
                [Test]
+               [NUnit.Framework.Category ("MobileNotWorking")]
                public void DisposeWithDisposedStreams ()
                {
                        var psi = GetCrossPlatformStartInfo ();
@@ -923,5 +939,40 @@ namespace MonoTests.System.Diagnostics
                        p.StandardOutput.BaseStream.Dispose ();
                        p.Dispose ();
                }
+
+               [Test]
+               public void Modules () {
+                       var modules = Process.GetCurrentProcess ().Modules;
+                       foreach (var a in AppDomain.CurrentDomain.GetAssemblies ()) {
+                               var found = false;
+                               var name = a.GetName ();
+
+                               StringBuilder sb = new StringBuilder ();
+                               sb.AppendFormat ("Could not found: {0} {1}\n", name.Name, name.Version);
+                               sb.AppendLine ("Looked in assemblies:");
+
+                               foreach (var o in modules) {
+                                       var m = (ProcessModule) o;
+
+                                       sb.AppendFormat ("   {0} {1}.{2}.{3}\n", m.FileName.ToString (),
+                                                       m.FileVersionInfo.FileMajorPart,
+                                                       m.FileVersionInfo.FileMinorPart,
+                                                       m.FileVersionInfo.FileBuildPart);
+
+                                       if (!m.FileName.StartsWith ("[In Memory] " + name.Name))
+                                               continue;
+
+                                       var fv = m.FileVersionInfo;
+                                       if (fv.FileBuildPart != name.Version.Build ||
+                                               fv.FileMinorPart != name.Version.Minor ||
+                                               fv.FileMajorPart != name.Version.Major)
+                                               continue;
+
+                                       found = true;
+                               }
+
+                               Assert.IsTrue (found, sb.ToString ());
+                       }
+               }
        }
 }
index f3cefe8c1513aebc1e7095aad330388f7d960011..bea0044180e42e01685eb23062de455d8c8d586c 100644 (file)
@@ -376,6 +376,7 @@ namespace MonoTests.System.IO.Compression
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // system zlib returns Z_STREAM_ERROR
                public void Bug28777_EmptyFlush ()
                {
                        MemoryStream backing = new MemoryStream ();
@@ -386,6 +387,7 @@ namespace MonoTests.System.IO.Compression
                }
                
                [Test]
+               [Category ("AndroidNotWorking")] // system zlib returns Z_BUF_ERROR
                public void Bug28777_DoubleFlush ()
                {
                        byte[] buffer = new byte [4096];
index 6cc8ba3582acdf55106cce91e5e593fa18793dfa..7fe74638571ee72021ae1421ccbd981111299a5d 100644 (file)
@@ -7,6 +7,8 @@
 
 using NUnit.Framework;
 using System;
+using System.Globalization;
+using System.IO;
 using System.Net;
 using System.Net.NetworkInformation;
 
@@ -29,18 +31,82 @@ namespace MonoTests.System.Net.NetworkInformation
                        }
                        Assert.IsTrue (numUnicastAddresses > 0);
                }
+
+               // Borrowed from IPInterfaceProperties.cs
+               bool HasOnlyDefaultGateway (string iface)
+               {
+                       int gwCount = 0;
+                       int defaultGwCount = 0;
+#if MONODROID
+                       if (!File.Exists ("/proc/net/route"))
+                               return false;
+                       try {
+                               using (StreamReader reader = new StreamReader ("/proc/net/route")) {
+                                       string line;
+                                       reader.ReadLine (); // Ignore first line
+                                       while ((line = reader.ReadLine ()) != null) {
+                                               line = line.Trim ();
+                                               if (line.Length == 0)
+                                                       continue;
+
+                                               string [] parts = line.Split ('\t');
+                                               if (parts.Length < 3)
+                                                       continue;
+                                               string gw_address = parts [2].Trim ();
+                                               byte [] ipbytes = new byte [4];
+                                               if (gw_address.Length == 8 && iface.Equals (parts [0], StringComparison.OrdinalIgnoreCase)) {
+                                                       for (int i = 0; i < 4; i++) {
+                                                               if (!Byte.TryParse (gw_address.Substring (i * 2, 2), NumberStyles.HexNumber, null, out ipbytes [3 - i]))
+                                                                       continue;
+                                                       }
+                                                       IPAddress ip = new IPAddress (ipbytes);
+                                                       if (ip.Equals (IPAddress.Any))
+                                                               defaultGwCount++;
+                                                       else
+                                                               gwCount++;
+                                               }
+                                       }
+                               }
+                       } catch {
+                       }
+#endif
+                       return gwCount == 0 && defaultGwCount > 0;
+               }
        
                [Test]
                public void AtLeastOneGatewayAddress ()
                {
                        int numGatewayAddresses = 0;
                        NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces ();
+                       
+                       // On Android (possibly on other systems too) it is possible that no gateway address is available and its lack is NOT an error
+                       // Here is a sample of /proc/net/route from Nexus 9 running Android 5.1.1 (IPInterfaceProperties parses that file on Linux)
+                       //
+                       //  Iface       Destination     Gateway         Flags   RefCnt  Use     Metric  Mask            MTU     Window  IRTT
+                       //  wlan0       0001A8C0        00000000        0001    0       0       0       00FFFFFF        0       0       0
+                       //
+                       // Gateway is set to any address and it is explicitly ignored by the route information parser
+                       //
+                       // For comparison, here's route contents from an Android 4.4.4 device:
+                       //
+                       //  Iface       Destination     Gateway         Flags   RefCnt  Use     Metric  Mask            MTU     Window  IRTT
+                       //  wlan0       00000000        0101A8C0        0003    0       0       0       00000000        0       0       0
+                       //  wlan0       00000000        0101A8C0        0003    0       0       203     00000000        0       0       0
+                       //  wlan0       0001A8C0        00000000        0001    0       0       0       00FFFFFF        0       0       0
+                       //  wlan0       0001A8C0        00000000        0001    0       0       0       00FFFFFF        0       0       0
+                       //  wlan0       0001A8C0        00000000        0001    0       0       203     00FFFFFF        0       0       0
+                       //  wlan0       0101A8C0        00000000        0005    0       0       0       FFFFFFFF        0       0       0
+                       //
+                       // Obviously, this test fails on the first device and succeeds on the second. For this reason the test is modified to succeed
+                       // in case of devices like the first one since it's not a real failure but a shortcoming of the .NET API
+                       //
                        foreach (NetworkInterface adapter in adapters)
                        {
                                IPInterfaceProperties adapterProperties = adapter.GetIPProperties ();
                                GatewayIPAddressInformationCollection gatewayAddresses = adapterProperties.GatewayAddresses;
-                               numGatewayAddresses += gatewayAddresses.Count;
+                               numGatewayAddresses += HasOnlyDefaultGateway (adapter.Name) ? 1 : gatewayAddresses.Count;
                        }
+                       
                        Assert.IsTrue (numGatewayAddresses > 0);
                }
        
@@ -56,6 +122,9 @@ namespace MonoTests.System.Net.NetworkInformation
                }
        
                [Test]
+               // The code works as expected when part of a regular app. It fails when executed from within an NUnit test
+               // Might be a problem with the test suite. To investigate.
+               [Category("AndroidNotWorking")]
                public void AtLeastOneDnsAddress ()
                {
                        int numDnsAddresses = 0;
@@ -66,6 +135,7 @@ namespace MonoTests.System.Net.NetworkInformation
                                IPAddressCollection dnsAddresses = adapterProperties.DnsAddresses;
                                numDnsAddresses += dnsAddresses.Count;
                        }
+                       Console.WriteLine ("numDnsAddresses == {0}", numDnsAddresses);
                        // reading /etc/resolve.conf does not work on iOS devices (but works on simulator)
                        // ref: https://bugzilla.xamarin.com/show_bug.cgi?id=27707
 #if !MONOTOUCH
index 3f3cf1a5ddbae5c2480959728273167dc5c85f25..2dd0d0674632ab82bd8a73d99724e3f1cc9c43b3 100644 (file)
@@ -77,9 +77,9 @@ public class SslStreamTest {
                        serverThread.Start ();
                        Thread clientThread = new Thread (() => StartClientAndAuthenticate (state, endPoint));
                        clientThread.Start ();
-                       Assert.AreEqual (server, state.ServerAuthenticated.WaitOne (TimeSpan.FromSeconds (2)), 
+                       Assert.AreEqual (server, state.ServerAuthenticated.WaitOne (TimeSpan.FromSeconds (5)), 
                                "server not authenticated");
-                       Assert.AreEqual (client, state.ClientAuthenticated.WaitOne (TimeSpan.FromSeconds (2)), 
+                       Assert.AreEqual (client, state.ClientAuthenticated.WaitOne (TimeSpan.FromSeconds (5)), 
                                "client not authenticated");
                } finally {
                        if (state.ClientStream != null)
index 6561998e146a63c1f81c45ff9b3ce9b5b33017b2..7422a1f2695dc2e345220d5736974c5223a40a4e 100644 (file)
@@ -48,6 +48,7 @@ namespace MonoTests.System.Net.WebSockets
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void ServerHandshakeReturnCrapStatusCodeTest ()
                {
                        // On purpose, 
@@ -64,6 +65,7 @@ namespace MonoTests.System.Net.WebSockets
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void ServerHandshakeReturnWrongUpgradeHeader ()
                {
                        #pragma warning disable 4014
@@ -82,6 +84,7 @@ namespace MonoTests.System.Net.WebSockets
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void ServerHandshakeReturnWrongConnectionHeader ()
                {
                        #pragma warning disable 4014
@@ -102,6 +105,7 @@ namespace MonoTests.System.Net.WebSockets
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // The test hangs when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void EchoTest ()
                {
                        const string Payload = "This is a websocket test";
@@ -126,6 +130,7 @@ namespace MonoTests.System.Net.WebSockets
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void CloseOutputAsyncTest ()
                {
                        Assert.IsTrue (socket.ConnectAsync (new Uri (EchoServerUrl), CancellationToken.None).Wait (5000));
@@ -142,6 +147,7 @@ namespace MonoTests.System.Net.WebSockets
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void CloseAsyncTest ()
                {
                        Assert.IsTrue (socket.ConnectAsync (new Uri (EchoServerUrl), CancellationToken.None).Wait (5000));
@@ -158,6 +164,7 @@ namespace MonoTests.System.Net.WebSockets
                }
 
                [Test, ExpectedException (typeof (ArgumentNullException))]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void SendAsyncArgTest_NoArray ()
                {
                        Assert.IsTrue (socket.ConnectAsync (new Uri (EchoServerUrl), CancellationToken.None).Wait (5000));
@@ -171,6 +178,7 @@ namespace MonoTests.System.Net.WebSockets
                }
 
                [Test, ExpectedException (typeof (ArgumentNullException))]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void ReceiveAsyncArgTest_NoArray ()
                {
                        Assert.IsTrue (socket.ConnectAsync (new Uri (EchoServerUrl), CancellationToken.None).Wait (5000));
@@ -178,6 +186,7 @@ namespace MonoTests.System.Net.WebSockets
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void ReceiveAsyncWrongState_Closed ()
                {
                        try {
@@ -192,6 +201,7 @@ namespace MonoTests.System.Net.WebSockets
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void SendAsyncWrongState_Closed ()
                {
                        try {
@@ -206,6 +216,7 @@ namespace MonoTests.System.Net.WebSockets
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void SendAsyncWrongState_CloseSent ()
                {
                        try {
index b316d109390b4ae5a5d5cac84766b2682582d996..5e9103a1038a1a5155d6e92294fc6539bb02008b 100644 (file)
@@ -493,7 +493,11 @@ namespace MonoTests.System.Net {
                public IPEndPoint CreateListenerRequest (HttpListener listener, string uri)
                {
                        IPEndPoint ipEndPoint = null;
-                       listener.BeginGetContext ((result) => ipEndPoint = ListenerCallback (result), listener);
+                       var mre = new ManualResetEventSlim ();
+                       listener.BeginGetContext (result => {
+                               ipEndPoint = ListenerCallback (result);
+                               mre.Set ();
+                       }, listener);
 
                        var request = (HttpWebRequest) WebRequest.Create (uri);
                        request.Method = "POST";
@@ -508,6 +512,8 @@ namespace MonoTests.System.Net {
                        // Close response so socket can be reused.
                        response.Close ();
 
+                       mre.Wait ();
+
                        return ipEndPoint;
                }
 
index 326ff298024580ff7205d0cafe3cd61ce9165310..c4296c39e2755329f64c12f3444e9b82699d3dd3 100644 (file)
@@ -29,6 +29,8 @@ using Mono.Security.Authenticode;
 using Mono.Security.Protocol.Tls;
 #endif
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.Net
 {
        [TestFixture]
@@ -68,7 +70,7 @@ namespace MonoTests.System.Net
                        Assert.AreEqual ("OK", res.StatusCode.ToString (), "#B1");
                        Assert.AreEqual ("OK", res.StatusDescription, "#B2");
 
-                       Assert.AreEqual ("text/html; charset=ISO-8859-1", res.Headers.Get ("Content-Type"), "#C1");
+                       Assert.IsTrue (res.Headers.Get ("Content-Type").StartsWith ("text/html; charset=", StringComparison.OrdinalIgnoreCase), "#C1");
                        Assert.IsNotNull (res.LastModified, "#C2");
                        Assert.AreEqual (0, res.Cookies.Count, "#C3");
 
@@ -93,7 +95,7 @@ namespace MonoTests.System.Net
                [Test] // bug #471782
                public void CloseRequestStreamAfterReadingResponse ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9152);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
@@ -121,14 +123,15 @@ namespace MonoTests.System.Net
                }
 
                [Test]
-               [Category("InetAccess")]
+               //[Category("InetAccess")]
+               [Category ("NotWorking")] // Disabled until a server that meets requirements is found
                public void Cookies1 ()
                {
                        // The purpose of this test is to ensure that the cookies we get from a request
                        // are stored in both, the CookieCollection in HttpWebResponse and the CookieContainer
                        // in HttpWebRequest.
                        // If this URL stops sending *one* and only one cookie, replace it.
-                       string url = "http://www.elmundo.es";
+                       string url = "http://xamarin.com";
                        CookieContainer cookies = new CookieContainer ();
                        HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
                        req.KeepAlive = false;
@@ -241,7 +244,7 @@ namespace MonoTests.System.Net
                        methods.Add ("whatever", "whatever");
                        methods.Add ("PUT", "PUT");
 
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9153);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        foreach (DictionaryEntry de in methods) {
@@ -271,7 +274,7 @@ namespace MonoTests.System.Net
                [Test]
                public void BeginGetRequestStream_Body_NotAllowed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9154);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
@@ -310,7 +313,7 @@ namespace MonoTests.System.Net
                [Test] // bug #465613
                public void BeginGetRequestStream_NoBuffering ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 11001);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
@@ -366,7 +369,7 @@ namespace MonoTests.System.Net
                [Category ("NotWorking")] // #5842
                public void BeginGetResponse ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8001);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
@@ -463,7 +466,7 @@ namespace MonoTests.System.Net
                [Test] // bug #511851
                public void BeginGetRequestStream_Request_Aborted ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8002);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
@@ -490,7 +493,7 @@ namespace MonoTests.System.Net
                [Test] // bug #511851
                public void BeginGetResponse_Request_Aborted ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9155);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
@@ -517,7 +520,7 @@ namespace MonoTests.System.Net
                [Test]
                public void EndGetRequestStream_AsyncResult_Null ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9156);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
@@ -545,7 +548,7 @@ namespace MonoTests.System.Net
                [Category ("NotWorking")] // do not get consistent result on MS
                public void EndGetRequestStream_Request_Aborted ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8003);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
@@ -575,7 +578,7 @@ namespace MonoTests.System.Net
                [Category ("NotWorking")]
                public void EndGetResponse_AsyncResult_Invalid ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9157);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
@@ -601,7 +604,7 @@ namespace MonoTests.System.Net
                [Test]
                public void EndGetResponse_AsyncResult_Null ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9158);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
@@ -634,7 +637,7 @@ namespace MonoTests.System.Net
                [Test] // bug #429200
                public void GetRequestStream ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 10000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
@@ -658,7 +661,7 @@ namespace MonoTests.System.Net
                [Test] // bug #511851
                public void GetRequestStream_Request_Aborted ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 10001);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
@@ -686,7 +689,7 @@ namespace MonoTests.System.Net
                [Category ("NotWorking")] // #5842
                public void GetRequestStream_Close_NotAllBytesWritten ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 10002);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
@@ -754,7 +757,7 @@ namespace MonoTests.System.Net
                [Category ("NotWorking")] // #5842
                public void GetRequestStream_Write_Overflow ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8010);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        // buffered, non-chunked
@@ -965,7 +968,7 @@ namespace MonoTests.System.Net
                [Test] // bug #511851
                public void GetResponse_Request_Aborted ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 10100);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
@@ -1320,7 +1323,7 @@ namespace MonoTests.System.Net
                [Test] // bug #513087
                public void NonStandardVerb ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8123);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/moved/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (VerbEchoHandler))) {
@@ -1355,7 +1358,7 @@ namespace MonoTests.System.Net
                [Category ("NotWorking")] // Assert #2 fails
                public void NotModifiedSince ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9123);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (NotModifiedSinceHandler))) {
@@ -2301,7 +2304,7 @@ namespace MonoTests.System.Net
 
                void DoRequest (Action<HttpWebRequest, EventWaitHandle> request)
                {
-                       int port = 30158;
+                       int port = NetworkHelpers.FindFreePort ();
 
                        ManualResetEvent completed = new ManualResetEvent (false);
                        Uri address = new Uri (string.Format ("http://localhost:{0}", port));
@@ -2315,7 +2318,7 @@ namespace MonoTests.System.Net
 
                void DoRequest (Action<HttpWebRequest, EventWaitHandle> request, Action<HttpListenerContext> processor)
                {
-                       int port = 30158;
+                       int port = NetworkHelpers.FindFreePort ();
 
                        ManualResetEvent [] completed = new ManualResetEvent [2];
                        completed [0] = new ManualResetEvent (false);
@@ -2333,7 +2336,6 @@ namespace MonoTests.System.Net
                        }
                }
 
-#if NET_4_0
                [Test]
                [ExpectedException (typeof (ArgumentNullException))]
                public void NullHost ()
@@ -2493,7 +2495,6 @@ namespace MonoTests.System.Net
                                ;
                        }
                }
-#endif
 
 #if NET_4_5
                [Test]
@@ -2697,7 +2698,7 @@ namespace MonoTests.System.Net
                [Test]
                public void CookieContainerTest ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 11002);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString ();
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (CookieRequestHandler))) {
@@ -2785,7 +2786,7 @@ namespace MonoTests.System.Net
                [Test]
                public void BeginRead ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9124);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -2812,9 +2813,10 @@ namespace MonoTests.System.Net
                }
 
                [Test]
+               [Category("MobileNotWorking")]
                public void BeginWrite_Request_Aborted ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9125);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -2843,7 +2845,7 @@ namespace MonoTests.System.Net
                [Test]
                public void CanRead ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9126);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -2867,7 +2869,7 @@ namespace MonoTests.System.Net
                [Test]
                public void CanSeek ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9127);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -2891,7 +2893,7 @@ namespace MonoTests.System.Net
                [Test] // bug #324182
                public void CanTimeout ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9128);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -2915,7 +2917,7 @@ namespace MonoTests.System.Net
                [Test]
                public void CanWrite ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9129);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -2939,7 +2941,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Read ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9130);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -2968,7 +2970,7 @@ namespace MonoTests.System.Net
                [Test]
                public void ReadByte ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9140);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -2996,7 +2998,7 @@ namespace MonoTests.System.Net
                [Test]
                public void ReadTimeout ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9141);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -3020,7 +3022,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Seek ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9142);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -3048,7 +3050,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Write_Buffer_Null ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9143);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -3076,7 +3078,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Write_Count_Negative ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9144);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -3106,7 +3108,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Write_Count_Overflow ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9145);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -3136,7 +3138,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Write_Offset_Negative ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9146);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -3166,7 +3168,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Write_Offset_Overflow ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9147);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -3196,7 +3198,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Write_Request_Aborted ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9148);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -3226,7 +3228,7 @@ namespace MonoTests.System.Net
                [Category ("NotWorking")]
                public void Write_Stream_Closed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9149);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -3255,7 +3257,7 @@ namespace MonoTests.System.Net
                [Test]
                public void WriteByte_Request_Aborted ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9150);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -3284,7 +3286,7 @@ namespace MonoTests.System.Net
                [Test]
                public void WriteTimeout ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 9151);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
@@ -3305,7 +3307,6 @@ namespace MonoTests.System.Net
                        }
                }
 
-#if NET_4_0
                [Test]
                // Bug6737
                // This test is supposed to fail prior to .NET 4.0
@@ -3318,7 +3319,6 @@ namespace MonoTests.System.Net
                        var gr = wr.BeginGetResponse (delegate { }, null);
                        Assert.AreEqual (true, gr.AsyncWaitHandle.WaitOne (5000), "#1");
                }
-#endif
        }
 
        static class StreamExtensions {
index c62c888f24bd17afd2c5c70124789fb17bd7f812..b76bd8b9a540c78d07220da3c91f55ec72c3bd2c 100644 (file)
@@ -14,6 +14,8 @@ using System.Net;
 using System.Net.Sockets;
 using System.Text;
 
+using MonoTests.Helpers;
+
 using NUnit.Framework;
 
 namespace MonoTests.System.Net
@@ -24,7 +26,7 @@ namespace MonoTests.System.Net
                [Test]
                public void CharacterSet_Disposed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
@@ -54,7 +56,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Close_Disposed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
@@ -75,7 +77,7 @@ namespace MonoTests.System.Net
                [Test]
                public void ContentEncoding_Disposed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
@@ -105,7 +107,7 @@ namespace MonoTests.System.Net
                [Test]
                public void ContentLength_Disposed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
@@ -127,7 +129,7 @@ namespace MonoTests.System.Net
                [Test]
                public void ContentType_Disposed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
@@ -157,7 +159,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Cookies_Disposed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
@@ -197,7 +199,7 @@ namespace MonoTests.System.Net
                [Test]
                public void GetResponseHeader_Disposed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
@@ -227,7 +229,7 @@ namespace MonoTests.System.Net
                [Test]
                public void GetResponseStream_Disposed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
@@ -257,7 +259,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Headers_Disposed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
@@ -286,7 +288,7 @@ namespace MonoTests.System.Net
                [Test]
                public void LastModified_Disposed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
@@ -316,7 +318,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Method_Disposed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
@@ -346,7 +348,7 @@ namespace MonoTests.System.Net
                [Test]
                public void ProtocolVersion_Disposed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
@@ -376,7 +378,7 @@ namespace MonoTests.System.Net
                [Test]
                public void ResponseUri_Disposed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
@@ -406,7 +408,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Server_Disposed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
@@ -436,7 +438,7 @@ namespace MonoTests.System.Net
                [Test]
                public void StatusCode_Disposed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
@@ -458,7 +460,7 @@ namespace MonoTests.System.Net
                [Test]
                public void StatusDescription_Disposed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
@@ -511,7 +513,7 @@ namespace MonoTests.System.Net
                [Test]
                public void BeginRead_Buffer_Null ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
@@ -562,7 +564,7 @@ namespace MonoTests.System.Net
                [Test]
                public void BeginWrite ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
@@ -597,7 +599,7 @@ namespace MonoTests.System.Net
                [Category ("NotWorking")]
                public void CanRead ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
@@ -626,7 +628,7 @@ namespace MonoTests.System.Net
                [Test]
                public void CanSeek ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
@@ -655,7 +657,7 @@ namespace MonoTests.System.Net
                [Test] // bug #324182
                public void CanTimeout ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
@@ -684,7 +686,7 @@ namespace MonoTests.System.Net
                [Test]
                public void CanWrite ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
@@ -713,7 +715,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Read ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
@@ -752,7 +754,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Read_Buffer_Null ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
@@ -803,7 +805,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Read_Count_Negative ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
@@ -855,7 +857,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Read_Count_Overflow ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
@@ -907,7 +909,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Read_Offset_Negative ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
@@ -959,7 +961,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Read_Offset_Overflow ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
@@ -1012,7 +1014,7 @@ namespace MonoTests.System.Net
                [Category ("NotWorking")]
                public void Read_Stream_Closed ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
@@ -1077,7 +1079,7 @@ namespace MonoTests.System.Net
                [Test]
                public void ReadTimeout ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
@@ -1106,7 +1108,7 @@ namespace MonoTests.System.Net
                [Test]
                public void Write ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
@@ -1140,7 +1142,7 @@ namespace MonoTests.System.Net
                [Test]
                public void WriteTimeout ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
                        string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
index a133684a8c63712ac2cde3c88724628287ca0bfc..39866f384b6993f4f824505b373a9980f32936c5 100644 (file)
@@ -613,7 +613,6 @@ public class IPAddressTest
                Assert.IsFalse (IPAddress.Parse ("FE00::1").IsIPv6Multicast, "#3");
        }
 
-#if NET_4_0
        [Test]
        public void IsIPv6Teredo ()
        {
@@ -640,7 +639,6 @@ public class IPAddressTest
                        }
                }
        }
-#endif
 }
 }
 
index f0c3272f721ef14a3340283fc4c102accd8cf1b3..6f763923cbfd927440b42f597b707778c5809f0a 100644 (file)
@@ -87,7 +87,7 @@ public class ServicePointManagerTest
                ServicePointManager.MaxServicePoints = 0;\r
                ServicePoint sp = ServicePointManager.FindServicePoint (googleUri, new WebProxy (apacheUri));\r
                Assert.AreEqual (apacheUri, sp.Address, "#1");\r
-#if NET_2_1\r
+#if NET_2_1 && !MONODROID\r
                Assert.AreEqual (10, sp.ConnectionLimit, "#2");\r
 #else\r
                Assert.AreEqual (2, sp.ConnectionLimit, "#2");\r
index bb12a4c28f3eb93112b9ac5e1952a68b9c80fa4a..8c564e246582ecea8532b770916867d45698898b 100644 (file)
@@ -53,10 +53,13 @@ public class ServicePointTest
                HttpWebRequest req = (HttpWebRequest) WebRequest.Create ("http://www.google.com");\r
                HttpWebResponse res = (HttpWebResponse) req.GetResponse ();                     \r
                \r
+#if FOUND_SOME_OTHER_URL
+               // URL is no longer found, disabled the test until a more reliable URL is found :P
                //WriteServicePoint ("google after getting a response", google);\r
                ServicePoint google2 = ServicePointManager.FindServicePoint (new Uri ("http://www.google.com/dilbert.html"));\r
                Assert.AreEqual (google, google2, "#equals");\r
                res.Close ();\r
+#endif
                \r
                // in both instances property CurrentConnections is 0 according to ms.net.\r
                // let's see what it says when we do async operations...\r
@@ -83,10 +86,11 @@ public class ServicePointTest
                //Console.WriteLine ("ContentLength: " + res2.ContentLength);\r
                res2.Close ();\r
                \r
-               \r
+               ServicePoint sp2;
+#if FOUND_SOME_OTHER_URL
                // unless of course some buffering is taking place.. let's check\r
                Uri uri2 = new Uri ("http://freedesktop.org/Software/pkgconfig/releases/pkgconfig-0.15.0.tar.gz");\r
-               ServicePoint sp2 = ServicePointManager.FindServicePoint (uri2);\r
+               sp2 = ServicePointManager.FindServicePoint (uri2);\r
                req2 = (HttpWebRequest) WebRequest.Create (uri2);\r
                async = req2.BeginGetResponse (null, null);\r
                //WriteServicePoint ("Large file: after async BeginGetResponse", sp2);\r
@@ -97,6 +101,7 @@ public class ServicePointTest
                // and so it shows\r
                //Console.WriteLine ("ContentLength: " + res2.ContentLength);\r
                res2.Close ();\r
+#endif
                \r
                \r
                // what's the limit of the cache?\r
@@ -148,6 +153,7 @@ public class ServicePointTest
 \r
        [Test]\r
        [Category ("InetAccess")]\r
+       [Category ("AndroidNotWorking")] // #A1 fails
        public void EndPointBind ()\r
        {\r
                Uri uri = new Uri ("http://www.go-mono.com/");\r
@@ -163,7 +169,7 @@ public class ServicePointTest
                };\r
                req.GetResponse ().Close ();\r
 \r
-               Assert.IsTrue (called);\r
+               Assert.IsTrue (called, "#A1");\r
 \r
                req = (HttpWebRequest) WebRequest.Create (uri);\r
                called = false;\r
@@ -174,7 +180,7 @@ public class ServicePointTest
                };\r
                req.GetResponse ().Close ();\r
 \r
-               Assert.IsTrue (called);\r
+               Assert.IsTrue (called, "#A2");\r
        }\r
 \r
        public static void GetRequestStreamCallback (IAsyncResult asynchronousResult)\r
index 6ee086f60746c2bca7cfa70d505e0aed404edd62..1e027b79f9343dc4f76fddb1e5ea1749c87573f5 100644 (file)
@@ -119,6 +119,14 @@ namespace MonoTests.System.Net
                                        // ignore interruption of blocking call
                                        if (ex.ErrorCode != SOCKET_CLOSED && ex.ErrorCode != SOCKET_INVALID_ARGS)
                                                throw;
+#if MOBILE
+                               } catch (InvalidOperationException ex) {
+                                       // This breaks some tests running on Android. The problem is that the stack trace
+                                       // doesn't point to where the exception is actually thrown from but the entire process
+                                       // is aborted because of unhandled exception.
+                                       Console.WriteLine ("SocketResponder.Listen failed:");
+                                       Console.WriteLine (ex);
+#endif
                                } finally {
                                        Thread.Sleep (500);
                                        if (socket != null)
index f3105b0ca162ce4d9beb3dd23b4811f92dcc8dae..4b42be97f22f5ab5fc052097ed1a42e5a61da720 100644 (file)
@@ -16,6 +16,8 @@ using System.Text;
 using System.Threading;
 using NUnit.Framework;
 
+using MonoTests.Helpers;
+
 namespace MonoTests.System.Net
 {
        [TestFixture]
@@ -1415,10 +1417,11 @@ namespace MonoTests.System.Net
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void UploadValues1 ()
                {
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
-                       string url = "http://" + IPAddress.Loopback.ToString () + ":8000/test/";
+                       IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
+                       string url = "http://" + ep.ToString () + "/test/";
 
                        using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
                                responder.Start ();
@@ -1781,9 +1784,10 @@ namespace MonoTests.System.Net
                 
 #if NET_4_5
                [Test]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void UploadStringAsyncCancelEvent ()
                {
-                       UploadAsyncCancelEventTest ((webClient, uri, cancelEvent) =>
+                       UploadAsyncCancelEventTest (9301, (webClient, uri, cancelEvent) =>
                        {
 
                                webClient.UploadStringCompleted += (sender, args) =>
@@ -1797,9 +1801,10 @@ namespace MonoTests.System.Net
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void UploadDataAsyncCancelEvent ()
                {
-                       UploadAsyncCancelEventTest ((webClient, uri, cancelEvent) =>
+                       UploadAsyncCancelEventTest (9302, (webClient, uri, cancelEvent) =>
                        {
                                webClient.UploadDataCompleted += (sender, args) =>
                                {
@@ -1812,9 +1817,10 @@ namespace MonoTests.System.Net
                }
                
                [Test]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void UploadValuesAsyncCancelEvent ()
                {
-                       UploadAsyncCancelEventTest ((webClient, uri, cancelEvent) =>
+                       UploadAsyncCancelEventTest (9303, (webClient, uri, cancelEvent) =>
                        {
                                webClient.UploadValuesCompleted += (sender, args) =>
                                {
@@ -1827,9 +1833,10 @@ namespace MonoTests.System.Net
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void UploadFileAsyncCancelEvent ()
                {
-                       UploadAsyncCancelEventTest ((webClient, uri, cancelEvent) =>
+                       UploadAsyncCancelEventTest (9304,(webClient, uri, cancelEvent) =>
                        {
                                string tempFile = Path.Combine (_tempFolder, "upload.tmp");
                                File.Create (tempFile).Close ();
@@ -1845,6 +1852,7 @@ namespace MonoTests.System.Net
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Test suite hangs if the tests runs as part of the entire BCL suite. Works when only this fixture is ran
                public void UploadFileAsyncContentType ()
                {
                        var serverUri = "http://localhost:13370/";
@@ -1867,11 +1875,10 @@ namespace MonoTests.System.Net
                }
 #endif
 
-#if NET_4_0
-               public void UploadAsyncCancelEventTest (Action<WebClient, Uri, EventWaitHandle> uploadAction)
+               public void UploadAsyncCancelEventTest (int port, Action<WebClient, Uri, EventWaitHandle> uploadAction)
                {
-                       var ep = new IPEndPoint (IPAddress.Loopback, 8000);
-                       string url = "http://" + IPAddress.Loopback + ":8000/test/";
+                       var ep = NetworkHelpers.LocalEphemeralEndPoint ();
+                       string url = "http://" + ep.ToString() + "/test/";
 
                        using (var responder = new SocketResponder (ep, EchoRequestHandler))
                        {
@@ -1891,6 +1898,5 @@ namespace MonoTests.System.Net
                                Assert.IsTrue (cancelEvent.WaitOne (1000));
                        }
                }
-#endif
        }
 }
index b23bb098217a6290775e0fe948805ca33d8d0999..aabaceb9f4a73cd4ce970c74d02e27f938686035 100644 (file)
@@ -43,6 +43,7 @@ namespace MonoTests.System.Net
        {
                [Test]
                [Category("Async")]
+               [Category("AndroidNotWorking")] // Attempts to access the test dll which won't work on Android
                public void DownloadData ()
                {
                        WebClient wc;
@@ -94,6 +95,7 @@ namespace MonoTests.System.Net
 
                [Test]
                [Category("InetAccess")]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void Cancellation ()
                {
                        WebClient wc = new WebClient ();
@@ -121,6 +123,7 @@ namespace MonoTests.System.Net
 
                [Test]
                [Category("InetAccess")]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void DownloadMultiple ()
                {
                        WebClient wc = new WebClient ();
@@ -139,6 +142,7 @@ namespace MonoTests.System.Net
 
                [Test]
                [Category("InetAccess")]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void DownloadMultiple2 ()
                {
                        WebClient wc = new WebClient ();
@@ -151,6 +155,7 @@ namespace MonoTests.System.Net
 
                [Test]
                [Category("InetAccess")]
+               [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
                public void DownloadMultiple3 ()
                {
                        WebClient wc = new WebClient ();
index 9e4792acb94d12ae859687586c5b0a328e8ad967..2e46d997aa7fad962ecdf219a5e0230d9691f789 100644 (file)
@@ -373,10 +373,8 @@ namespace MonoTests.System.Net
                        0x49, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2c, 0x20, 0x56, 0x65,
 #if MOBILE
                        0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x32, 0x2e, 0x30, 0x2e, 0x35,
-#elif NET_4_0
-                       0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x34, 0x2e, 0x30, 0x2e, 0x30,
 #else
-                       0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x32, 0x2e, 0x30, 0x2e, 0x30,
+                       0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x34, 0x2e, 0x30, 0x2e, 0x30,
 #endif
                        0x2e, 0x30, 0x2c, 0x20, 0x43, 0x75, 0x6c, 0x74, 0x75, 0x72, 0x65,
                        0x3d, 0x6e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x2c, 0x20, 0x50,
index 39d7045ca0dd6bf57dc9e9c6cc21666f9692d950..e7d8f20000dd4a7fffa5906d75e1f9daa0777b7a 100644 (file)
@@ -45,7 +45,6 @@ namespace MonoTests.System.Net {
                [Test]
                public void Serialization ()
                {
-#if NET_4_0
                        string result1 = "<IPermission class=\"System.Net.WebPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\"\n" + 
 "version=\"1\">\n" + 
 "<ConnectAccess>\n" + 
@@ -59,21 +58,6 @@ namespace MonoTests.System.Net {
 "<URI uri=\"Hello\"/>\n" + 
 "</AcceptAccess>\n" + 
 "</IPermission>\n";
-#else
-                       string result1 = "<IPermission class=\"System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\"\n" + 
-"version=\"1\">\n" + 
-"<ConnectAccess>\n" + 
-"<URI uri=\"Hello\"/>\n" + 
-"</ConnectAccess>\n" + 
-"</IPermission>\n";
-
-                       string result2 = "<IPermission class=\"System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\"\n" + 
-"version=\"1\">\n" + 
-"<AcceptAccess>\n" + 
-"<URI uri=\"Hello\"/>\n" + 
-"</AcceptAccess>\n" + 
-"</IPermission>\n";
-#endif   
                        WebPermission pp = new WebPermission (NetworkAccess.Connect, "Hello");
                        Assert.AreEqual (result1, pp.ToXml ().ToString ().Replace ("\r", ""));
                        
index 8dbdde051bc9318009c96de9fb34ff5d3ebc9960..908dadb35c2cac90143898e69a39dc5440019d7b 100644 (file)
@@ -316,6 +316,9 @@ namespace MonoTests.System.Net {
        }\r
 \r
        [Test] //BNC#323452\r
+       // Throws exception with Status == Timeout. The same code behaves as the test expects when run from a regular app.
+       // Might be an issue with the test suite. To investigate.
+       [Category("AndroidNotWorking")] 
        public void TestFailedConnection ()\r
        {\r
                try {\r
@@ -326,7 +329,7 @@ namespace MonoTests.System.Net {
                        //#if NET_2_0 e.Message == "Unable to connect to the remote server"\r
                        //#if NET_1_1 e.Message == "The underlying connection was closed: Unable to connect to the remote server."\r
 \r
-                       Assert.AreEqual (((WebException)e).Status, WebExceptionStatus.ConnectFailure);\r
+                       Assert.AreEqual (WebExceptionStatus.ConnectFailure, ((WebException)e).Status);\r
 \r
                        //#if !NET_1_1 (this is not true in .NET 1.x)\r
                        Assert.IsNotNull (e.InnerException);\r
@@ -337,6 +340,7 @@ namespace MonoTests.System.Net {
        }\r
 \r
        [Test] //BNC#323452\r
+       [Category ("AndroidNotWorking")] // Fails when ran as part of the entire BCL test suite. Works when only this fixture is ran
        public void TestFailedResolution ()\r
        {\r
                try {\r
index eb5c5c5fd711ff7007b59574cc844e70fd31d905..5c97cb2fced677f58b670ecf966a07620169f597 100644 (file)
@@ -29,7 +29,7 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0 && !MOBILE
+#if !MOBILE
 
 using System;
 using System.Text;
index cb138dec00388e5716201dd56bb53ad37e429b5c..2ce9cfef8f3740dbe50bcb224251c1aa9650cb8d 100644 (file)
@@ -26,7 +26,7 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0 && !MOBILE
+#if !MOBILE
 
 using System;
 using System.Runtime.Versioning;
index 4a41e9ea8408829c6796a34028961553c00a57ed..9ad60070196ee98e96ddf141c8648b84ea903761 100644 (file)
@@ -23,7 +23,6 @@
 //
 
 
-#if NET_4_0
 
 using NUnit.Framework;
 
@@ -97,4 +96,3 @@ namespace MonoTests.System.Threading {
        }
 }
 
-#endif
index 976620ce2c0845550afb291b407ea826145e89bc..a01e0accc2fb580acd4c5e279ea39f8b7b7625c3 100644 (file)
@@ -88,11 +88,7 @@ namespace MonoTests.System
                }
 
                [Test] // ctor (Uri)
-#if NET_4_0
                [ExpectedException (typeof (ArgumentNullException))]
-#else
-               [ExpectedException (typeof (NullReferenceException))]
-#endif
                public void Constructor2_Uri_Null ()
                {
                        new UriBuilder ((Uri) null);
@@ -387,6 +383,13 @@ namespace MonoTests.System
                        // this is what ASP.NET really means (the ?)
                        Assert.AreEqual ("http://192.168.0.21/error404.aspx?aspxerrorpath=/WebResource.axd", ub.Uri.ToString ());
                }
+
+               [Test]
+               public void NoHostname ()
+               {
+                       UriBuilder ub = new UriBuilder ("about", null, -1, "config");
+                       Assert.AreEqual ("about:config", ub.ToString ());
+               }
        }
 }
 
index 1010b6e5c1a370d71cee41730c04d7b528ac36ad..7d9d24052f3c985d4df6f82244ac578051a3e92b 100644 (file)
@@ -64,10 +64,8 @@ namespace MonoTests.System {
                        StringTester.CreateMode = createMode;
 #if NET_4_5
                        StringTester.Location = location + "NET_4_5";
-#elif NET_4_0
-                       StringTester.Location = location + "NET_4_0";
 #else
-                       StringTester.Location = location + "NET_2_0";
+                       StringTester.Location = location + "NET_4_0";
 #endif
                }
 
index e9a92244f63c27b1eb745d3c792d8fdb6cbae586..1a261938e9c27227948d0bc9d15cb95daf461bbb 100644 (file)
@@ -176,10 +176,6 @@ namespace MonoTests.System
 
                        uri = new Uri (new Uri("http://www.xxx.com"), "?x=0");
                        Assert.AreEqual ("http://www.xxx.com/?x=0", uri.ToString(), "#rel30");
-#if !NET_4_0
-                       uri = new Uri (new Uri("http://www.xxx.com/index.htm"), "?x=0");
-                       Assert.AreEqual ("http://www.xxx.com/?x=0", uri.ToString(), "#rel31");
-#endif
                        uri = new Uri (new Uri("http://www.xxx.com/index.htm"), "#here");
                        Assert.AreEqual ("http://www.xxx.com/index.htm#here", uri.ToString(), "#rel32");
 
@@ -243,9 +239,6 @@ namespace MonoTests.System
                        Uri b = new Uri ("http://a/b/c/d;p?q");
                        Assert.AreEqual ("http://a/g", new Uri (b, "/g").ToString (), "#1");
                        Assert.AreEqual ("http://g/", new Uri (b, "//g").ToString (), "#2");
-#if !NET_4_0
-                       Assert.AreEqual ("http://a/b/c/?y", new Uri (b, "?y").ToString (), "#3");
-#endif
                        Assert.IsTrue (new Uri (b, "#s").ToString ().EndsWith ("#s"), "#4");
 
                        Uri u = new Uri (b, "/g?q=r");
@@ -702,13 +695,8 @@ namespace MonoTests.System
                        Assert.AreEqual ("c#", UriEx.UnescapeString ("file://localhost/c#", "c%23"), "#2");
                        Assert.AreEqual ("#", UriEx.UnescapeString ("http://localhost/c#", "%23"), "#1");
                        Assert.AreEqual ("c#", UriEx.UnescapeString ("http://localhost/c#", "c%23"), "#2");
-#if NET_4_0
                        Assert.AreEqual ("%A9", UriEx.UnescapeString ("file://localhost/c#", "%A9"), "#3");
                        Assert.AreEqual ("%A9", UriEx.UnescapeString ("http://localhost/c#", "%A9"), "#3");
-#else
-                       Assert.AreEqual ("\xA9", UriEx.UnescapeString ("file://localhost/c#", "%A9"), "#3");
-                       Assert.AreEqual ("\xA9", UriEx.UnescapeString ("http://localhost/c#", "%A9"), "#3");
-#endif
                }
 
                [Test]
@@ -784,13 +772,7 @@ namespace MonoTests.System
                        // 2-byte escape sequence, 2 individual characters
                        uri = new Uri ("file:///foo/a%C2%F8b", true);
                        path = uri.LocalPath;
-#if NET_4_0
                        Assert.AreEqual ("/foo/a%C2%F8b", path, "#7");
-#else
-                       Assert.AreEqual (9, path.Length, "#7");
-                       Assert.AreEqual (0xC2, path [6], "#8");
-                       Assert.AreEqual (0xF8, path [7], "#9");
-#endif
                }
 
                [Test]
@@ -1527,10 +1509,6 @@ namespace MonoTests.System
                        Assert.AreEqual (
                                "%00%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F%40ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D~%7F",
                                Uri.EscapeDataString (sb.ToString ()));
-#elif NET_4_0
-                       Assert.AreEqual (
-                               "%00%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20!%22%23%24%25%26'()*%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F%40ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D~%7F",
-                               Uri.EscapeDataString (sb.ToString ()));
 #else
                        Assert.AreEqual (
                                "%00%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20!%22%23%24%25%26'()*%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F%40ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D~%7F",
@@ -1550,10 +1528,6 @@ namespace MonoTests.System
                        Assert.AreEqual (
                                "%00%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20!%22#$%25&'()*+,-./0123456789:;%3C=%3E?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[%5C]%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D~%7F",
                                Uri.EscapeUriString (sb.ToString ()));
-#elif NET_4_0
-                       Assert.AreEqual (
-                               "%00%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20!%22#$%25&'()*+,-./0123456789:;%3C=%3E?@ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D~%7F",
-                               Uri.EscapeUriString (sb.ToString ()));
 #else
                        Assert.AreEqual (
                                "%00%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20!%22#$%25&'()*+,-./0123456789:;%3C=%3E?@ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D~%7F",
index e3a4530e0c653230592e85ac46a8ef6a7c354ce3..cbec7b2fc52d5ddbd7b4ca485d6e9e2685196828 100644 (file)
@@ -577,11 +577,7 @@ TextWriter sw = Console.Out;
 
                        Uri merged = new Uri (absolute, "?moon");
                        Assert.AreEqual ("?moon", merged.Query, "merged.Query");
-#if NET_4_0
                        Assert.AreEqual ("http://host/dir/subdir/weird;name?moon", merged.ToString (), "merged.ToString");
-#else
-                       Assert.AreEqual ("http://host/dir/subdir/?moon", merged.ToString (), "merged.ToString");
-#endif
                }
 
                [Test]
index 7ff8924d0daaed4c9091dbdcbba456fa6b3a0323..9b2e93b730cdb572d1d230c1da5f8566e66c9087 100644 (file)
@@ -297,16 +297,10 @@ namespace MonoTests.System
                        Uri baseUri = new Uri (absolute);
                        try {
                                Uri.TryCreate (baseUri, (Uri) null, out uri);
-#if NET_4_0
                                Assert.IsNull (uri);
-#else
-                               Assert.Fail ("throw NRE under FX 2.0");
-#endif
                        }
                        catch (NullReferenceException) {
-#if NET_4_0
                                Assert.Fail ("does not throw NRE under FX 4.0");
-#endif
                        }
                }
 
@@ -549,7 +543,6 @@ namespace MonoTests.System
                                uri.MakeRelativeUri ((Uri) null);
                                Assert.Fail ("#1");
                        }
-#if NET_4_0
                        catch (ArgumentNullException ex) {
                                Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
                                Assert.IsNull (ex.InnerException, "#3");
@@ -557,11 +550,6 @@ namespace MonoTests.System
                                Assert.IsNotNull (ex.ParamName, "#5");
                                Assert.AreEqual ("uri", ex.ParamName, "#6");
                        }
-#else
-                       catch (NullReferenceException) {
-                               // https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=299942
-                       }
-#endif
                }
 
                [Test] // LAMESPEC: see bug #321113
index c4e3e4a1ad424e6daf365c25f68b717b0b17af3a..f5ec7ca294b3d8550ff50036deccb8bf8e20572c 100644 (file)
@@ -49,6 +49,7 @@ System.Net.Mail/MailPriority.cs
 System.Net.Mail/SendCompletedEventHandler.cs
 System.Net.Mail/SmtpAccess.cs
 System.Net.Mail/SmtpClient.cs
+System.Net.Mail/SmtpDeliveryFormat.cs
 System.Net.Mail/SmtpDeliveryMethod.cs
 System.Net.Mail/SmtpException.cs
 System.Net.Mail/SmtpFailedRecipientException.cs
@@ -107,6 +108,7 @@ System.Net.NetworkInformation/UnicastIPAddressInformationCollection.cs
 System.Net.NetworkInformation/Win32NetworkInterfaceMarshal.cs
 System.Net.Security/AuthenticatedStream.cs
 System.Net.Security/AuthenticationLevel.cs
+System.Net.Security/EncryptionPolicy.cs
 System.Net.Security/LocalCertificateSelectionCallback.cs
 System.Net.Security/NegotiateStream.cs
 System.Net.Security/ProtectionLevel.cs
@@ -187,6 +189,7 @@ System.Net/HttpListenerException.cs
 System.Net/HttpListenerPrefixCollection.cs
 System.Net/HttpListenerRequest.cs
 System.Net/HttpListenerResponse.cs
+System.Net/HttpListenerTimeoutManager.cs
 System.Net/HttpRequestCreator.cs
 System.Net/HttpRequestHeader.cs
 System.Net/HttpResponseHeader.cs
@@ -316,6 +319,7 @@ System.Security.Cryptography/AsnEncodedDataEnumerator.cs
 System.Security.Cryptography/Oid.cs
 System.Security.Cryptography/OidCollection.cs
 System.Security.Cryptography/OidEnumerator.cs
+System.Security.Cryptography/OidGroup.cs
 System.Threading/Semaphore.cs
 System.Threading/ThreadExceptionEventArgs.cs
 System.Threading/ThreadExceptionEventHandler.cs
@@ -691,8 +695,11 @@ ReferenceSources/Win32Exception.cs
 ../../../external/referencesource/System/compmod/system/diagnostics/BooleanSwitch.cs
 ../../../external/referencesource/System/compmod/system/diagnostics/CorrelationManager.cs
 ../../../external/referencesource/System/compmod/system/diagnostics/Debug.cs
+../../../external/referencesource/System/compmod/system/diagnostics/DelimitedListTraceListener.cs
 ../../../external/referencesource/System/compmod/system/diagnostics/DiagnosticsConfiguration.cs
 ../../../external/referencesource/System/compmod/system/diagnostics/ListenerElementsCollection.cs
+../../../external/referencesource/System/compmod/system/diagnostics/SeverityFilter.cs
+../../../external/referencesource/System/compmod/system/diagnostics/SourceFilter.cs
 ../../../external/referencesource/System/compmod/system/diagnostics/SourceLevels.cs
 ../../../external/referencesource/System/compmod/system/diagnostics/SourceSwitch.cs
 ../../../external/referencesource/System/compmod/system/diagnostics/SwitchAttribute.cs
@@ -725,6 +732,14 @@ ReferenceSources/Win32Exception.cs
 ../../../external/referencesource/System/net/System/Net/WebPermission.cs
 ../../../external/referencesource/System/net/System/Net/WriteStreamClosedEventArgs.cs
 
+../../../external/referencesource/System/net/System/Net/NetworkInformation/IPInterfaceStatistics.cs
+../../../external/referencesource/System/net/System/Net/NetworkInformation/ScopeLevel.cs
+../../../external/referencesource/System/net/System/Net/NetworkInformation/UnicastIPAddressInformation.cs
+
+../../../external/referencesource/System/net/System/Net/Sockets/IPProtectionLevel.cs
+
+../../../external/referencesource/System/sys/system/runtime/versioning/FrameworkName.cs
+
 ../../../external/referencesource/System/sys/system/threading/Barrier.cs
 
 ../../../external/referencesource/System/security/system/security/permissions/typedescriptorpermission.cs
@@ -737,3 +752,5 @@ ReferenceSources/Win32Exception.cs
 ../../../external/referencesource/System/misc/invariantcomparer.cs
 ../../../external/referencesource/System/misc/SecurityUtils.cs
 ../../../external/referencesource/System/misc/WeakHashtable.cs
+
+../../../external/referencesource/System/compmod/system/diagnostics/TextWriterTraceListener.cs
diff --git a/mcs/class/System/monotouch_watch_System.dll.sources b/mcs/class/System/monotouch_watch_System.dll.sources
new file mode 100644 (file)
index 0000000..7c0bd59
--- /dev/null
@@ -0,0 +1 @@
+#include monotouch_System.dll.sources
index 8c24401d206e946ba31511989d8b8ab61c9b14db..dd09b681c5abf5e4eaad99644bd893c69008094d 100644 (file)
@@ -24,7 +24,6 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
-#if NET_4_0
 
 using System;
 using System.Data.Common;
@@ -51,4 +50,3 @@ namespace MonoTests.WebMatrix.Data
                }
        }
 }
-#endif
\ No newline at end of file
index 135d4de8ca0b57d1806948520c1c978d4e0fe1f3..a034e7ea029faba59982a429c6564b980c9b2596 100644 (file)
@@ -24,7 +24,6 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
-#if NET_4_0
 
 using System;
 using System.IO;
@@ -114,4 +113,3 @@ namespace MonoTests.WebMatrix.Data
                }
        }
 }
-#endif
index c180ca2e24e5374db65ae7fd1e295a6e57d11fed..59996ce97becf31b63f65108be40fc48b7acfae2 100644 (file)
@@ -24,7 +24,6 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
-#if NET_4_0
 
 using System;
 using System.Collections.Generic;
@@ -96,4 +95,3 @@ namespace MonoTests.WebMatrix.Data
                }
        }
 }
-#endif
index 6a77804eb48f745a9d3a7814286457d1be515997..c859a9f207bd039e730d1caa2cd411563922ebb6 100644 (file)
@@ -88,13 +88,11 @@ namespace MonoTests.System.Windows.Markup {
                }
 
                [Test]
-#if NET_4_0
                [NUnit.Framework.CategoryAttribute ("NotWorking")]
                // Since ValueSerializer has moved to System.Xaml.dll while the type
                // this test expects is in WindowsBase, there should be some additional
                // support code in this assembly. Until someone does that job, this
                // test won't pass.
-#endif
                public void CanConvertFromString ()
                {
                        Context context = new Context ();
@@ -107,13 +105,11 @@ namespace MonoTests.System.Windows.Markup {
                        Assert.IsTrue (serializer.CanConvertFromString ("2008-01-.106426-08:00", context), "4");
                }
 
-#if NET_4_0
                [NUnit.Framework.CategoryAttribute ("NotWorking")]
                // Since ValueSerializer has moved to System.Xaml.dll while the type
                // this test expects is in WindowsBase, there should be some additional
                // support code in this assembly. Until someone does that job, this
                // test won't pass.
-#endif
                [Test]
                [ExpectedException (typeof (ArgumentException))] // Expected object of type 'DateTime'.
                public void CanConvertToString1 ()
index eda87c17d9f92fb2a8e408ad9cbcc6f56e3ec826..7c898702a95ce094a0b7b5828ae485e842c94e67 100644 (file)
@@ -76,13 +76,11 @@ namespace MonoTests.System.Windows.Markup {
                }
 
                [Test]
-#if NET_4_0
                [NUnit.Framework.CategoryAttribute ("NotWorking")]
                // Since ValueSerializer has moved to System.Xaml.dll while the type
                // this test expects is in WindowsBase, there should be some additional
                // support code in this assembly. Until someone does that job, this
                // test won't pass.
-#endif
                public void GetSerializerForType ()
                {
                        Assert.IsNull (ValueSerializer.GetSerializerFor (typeof (DependencyObject)));
index 47e277bdbfb05bbd356e31e95698256b54e15ca6..3b3c3dc5d87dcf92a442a238a6dd325c1de151fe 100644 (file)
@@ -68,8 +68,7 @@ namespace zipsharp
                public static long CurrentFileLength (UnzipHandle handle)
                {
                        UnzipFileInfo info;
-                       StringBuilder sbName = new StringBuilder (128);
-                       int result = unzGetCurrentFileInfo (handle, out info, sbName, new IntPtr (sbName.Capacity), IntPtr.Zero, IntPtr.Zero, null,  IntPtr.Zero);
+                       int result = unzGetCurrentFileInfo (handle, out info, null, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, null,  IntPtr.Zero);
                        
                        if (result != 0)
                                return -1;
@@ -80,8 +79,13 @@ namespace zipsharp
                static string GetCurrentFileName (UnzipHandle handle)
                {
                        UnzipFileInfo info;
-                       StringBuilder sbName = new StringBuilder (128);
-                       int result = unzGetCurrentFileInfo (handle, out info, sbName, new IntPtr (sbName.Capacity), IntPtr.Zero, new IntPtr (0), null,  IntPtr.Zero);
+                       int result = unzGetCurrentFileInfo (handle, out info, null, IntPtr.Zero, IntPtr.Zero, new IntPtr (0), null,  IntPtr.Zero);
+
+                       if (result != 0)
+                               return null;
+                       
+                       StringBuilder sbName = new StringBuilder ((int)info.SizeFilename+1); // +1 to account for extra \0 at the end
+                       result = unzGetCurrentFileInfo (handle, out info, sbName, new IntPtr (sbName.Capacity), IntPtr.Zero, new IntPtr (0), null,  IntPtr.Zero);
                        
                        if (result != 0)
                                return null;
index 2d43f635d0cf7e7f9396b8449d81796aedd1c882..2a80e069fa404d06b4bea8f0b80b948f85b30269 100755 (executable)
@@ -1,10 +1,10 @@
 #!/bin/sh
 
 SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-CSHARP=$SCRIPT_PATH/../lib/net_4_5/csharp.exe
+CSHARP=$SCRIPT_PATH/../lib/net_4_x/csharp.exe
 MONO=$SCRIPT_PATH/../../../mono/mini/mono
 
-export MONO_PATH=${MONO_PATH:-$SCRIPT_PATH/../lib/net_4_5}
+export MONO_PATH=${MONO_PATH:-$SCRIPT_PATH/../lib/net_4_x}
 
 TZ_FAILS=0
 TZ_COUNT=0
index 40586b76082002f02d8b54952681a89c926b30ae..ddd9cb43a3158f25dcfc7bd46ceb3aac9bffff53 100644 (file)
@@ -37,7 +37,7 @@ RESOURCE_FILES = \
 
 REFERENCE_SOURCES_FLAGS = -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT
 
-MOBILE_STATIC := $(filter mobile_static monotouch monotouch_runtime, $(PROFILE))
+MOBILE_STATIC := $(filter mobile_static monotouch monotouch_runtime monotouch_watch, $(PROFILE))
 
 ifndef MOBILE_STATIC
 REFERENCE_SOURCES_FLAGS += -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP,FEATURE_ROLE_BASED_SECURITY
index 92057e9b5c31c9fa7225878a8f301a8532706f45..9f193fc7b8572a34c9c14e1e7a1f208fe68f3d98 100644 (file)
@@ -34,6 +34,10 @@ namespace System
                        switch (codePage) {
                        case 1200: return GetResourceString ("Globalization.cp_1200");
                        case 1201: return GetResourceString ("Globalization.cp_1201");
+                       case 12000: return GetResourceString ("Globalization.cp_12000");
+                       case 12001: return GetResourceString ("Globalization.cp_12001");
+                       case 20127: return GetResourceString ("Globalization.cp_20127");
+                       case 65000: return GetResourceString ("Globalization.cp_65000");
                        case 65001: return GetResourceString ("Globalization.cp_65001");
                        default: return codePage.ToString (CultureInfo.InvariantCulture);
                        }
index 52bf3a1306a86eb7ba6091d2d30b4f85b447490f..5811cdc8337644fa162986abd2fef1e79988e376 100644 (file)
@@ -4,28 +4,6 @@ namespace System.Globalization
 {
        partial class TextInfo
        {
-               unsafe static ushort *to_lower_data_low;
-               unsafe static ushort *to_lower_data_high;
-               unsafe static ushort *to_upper_data_low;
-               unsafe static ushort *to_upper_data_high;
-
-               [MethodImplAttribute(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
-               unsafe static extern void GetDataTablePointersLite (out ushort *to_lower_data_low, out ushort *to_lower_data_high, out ushort *to_upper_data_low, out ushort *to_upper_data_high);
-
-               static readonly object cookie = new object ();
-
-               unsafe static void ReadDataTable ()
-               {
-                       if (to_lower_data_low == null) {
-                               lock (cookie) {
-                                       if (to_lower_data_low != null)
-                                               return;
-
-                                       GetDataTablePointersLite (out to_lower_data_low, out to_lower_data_high, out to_upper_data_low, out to_upper_data_high);
-                               }
-                       }
-               }
-
                unsafe string ToUpperInternal (string str)
                {
                        if (str.Length == 0)
@@ -68,103 +46,157 @@ namespace System.Globalization
 
                char ToUpperInternal (char c)
                {
+                       if (!m_cultureData.IsInvariantCulture) {
+                               switch (c) {
+                               case '\u00b5':
+                                       return '\u039c';
+                               case '\u0131':
+                                       return '\u0049';
+                               case '\u017f':
+                                       return '\u0053';
+                               case '\u01c5':
+                               case '\u01c8':
+                               case '\u01cb':
+                               case '\u01f2':
+                                       return (char) (c - 1);
+                               case '\u0345':
+                                       return '\u0399';
+                               case '\u03c2':
+                                       return '\u03a3';
+                               case '\u03d0':
+                                       return '\u0392';
+                               case '\u03d1':
+                                       return '\u0398';
+                               case '\u03d5':
+                                       return '\u03a6';
+                               case '\u03d6':
+                                       return '\u03a0';
+                               case '\u03f0':
+                                       return '\u039a';
+                               case '\u03f1':
+                                       return '\u03a1';
+                               case '\u03f5':
+                                       return '\u0395';
+                               case '\u1e9b':
+                                       return '\u1e60';
+                               case '\u1fbe':
+                                       return '\u0399';
+                               }
+
+                               if (!IsAsciiCasingSameAsInvariant) {
+                                       if (c == '\u0069')
+                                               return '\u0130';
+
+                                       if (IsAscii (c))
+                                               return ToUpperAsciiInvariant (c);
+                               }
+                       }
+
+                       if (c >= '\u00e0' && c <= '\u0586')
+                               return TextInfoToUpperData.range_00e0_0586 [c - '\u00e0'];
+                       if (c >= '\u1e01' && c <= '\u1ff3')
+                               return TextInfoToUpperData.range_1e01_1ff3 [c - '\u1e01'];
+                       if (c >= '\u2170' && c <= '\u2184')
+                               return TextInfoToUpperData.range_2170_2184 [c - '\u2170'];
+                       if (c >= '\u24d0' && c <= '\u24e9')
+                               return TextInfoToUpperData.range_24d0_24e9 [c - '\u24d0'];
+                       if (c >= '\u2c30' && c <= '\u2ce3')
+                               return TextInfoToUpperData.range_2c30_2ce3 [c - '\u2c30'];
+                       if (c >= '\u2d00' && c <= '\u2d25')
+                               return TextInfoToUpperData.range_2d00_2d25 [c - '\u2d00'];
+                       if (c >= '\ua641' && c <= '\ua697')
+                               return TextInfoToUpperData.range_a641_a697 [c - '\ua641'];
+                       if (c >= '\ua723' && c <= '\ua78c')
+                               return TextInfoToUpperData.range_a723_a78c [c - '\ua723'];
+
+                       // FF41 - FF5A range maps to FF21 - FF3A
+                       if ('\uff41' <= c && c <= '\uff5a')
+                               return (char) (c - '\u0020');
+
+                       // Individual ones not close enough to any range
                        switch (c) {
-                       case '\u0069': // Latin lowercase i
-                               if (!IsAsciiCasingSameAsInvariant)
-                                       return '\u0130'; // dotted capital I
-                               break;
-                       case '\u0131': // dotless i
-                               return '\u0049'; // I
-
-                       case '\u01c5': // see ToLower()
-                               return '\u01c4';
-                       case '\u01c8': // see ToLower()
-                               return '\u01c7';
-                       case '\u01cb': // see ToLower()
-                               return '\u01ca';
-                       case '\u01f2': // see ToLower()
-                               return '\u01f1';
-                       case '\u0390': // GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-                               return '\u03aa'; // it is not in ICU
-                       case '\u03b0': // GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-                               return '\u03ab'; // it is not in ICU
-                       case '\u03d0': // GREEK BETA
-                               return '\u0392';
-                       case '\u03d1': // GREEK THETA
-                               return '\u0398';
-                       case '\u03d5': // GREEK PHI
-                               return '\u03a6';
-                       case '\u03d6': // GREEK PI
-                               return '\u03a0';
-                       case '\u03f0': // GREEK KAPPA
-                               return '\u039a';
-                       case '\u03f1': // GREEK RHO
-                               return '\u03a1';
-                       // am not sure why miscellaneous GREEK symbols are 
-                       // not handled here.
+                       case '\u1d79':
+                               return '\ua77d';
+                       case '\u1d7d':
+                               return '\u2c63';
+                       case '\u214e':
+                               return '\u2132';
                        }
 
-                       return ToUpperInvariant (c);
+                       return c;
                }               
 
                char ToLowerInternal (char c)
                {
-                       switch (c) {
-                       case '\u0049': // Latin uppercase I
-                               if (!IsAsciiCasingSameAsInvariant)
-                                       return '\u0131'; // I becomes dotless i
-                               break;
-                       case '\u0130': // I-dotted
-                               return '\u0069'; // i
-
-                       case '\u01c5': // LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
-                               return '\u01c6';
-                       // \u01c7 -> \u01c9 (LJ) : invariant
-                       case '\u01c8': // LATIN CAPITAL LETTER L WITH SMALL LETTER J
-                               return '\u01c9';
-                       // \u01ca -> \u01cc (NJ) : invariant
-                       case '\u01cb': // LATIN CAPITAL LETTER N WITH SMALL LETTER J
-                               return '\u01cc';
-                       // WITH CARON : invariant
-                       // WITH DIAERESIS AND * : invariant
-
-                       case '\u01f2': // LATIN CAPITAL LETTER D WITH SMALL LETTER Z
-                               return '\u01f3';
-                       case '\u03d2':  // ? it is not in ICU
-                               return '\u03c5';
-                       case '\u03d3':  // ? it is not in ICU
-                               return '\u03cd';
-                       case '\u03d4':  // ? it is not in ICU
-                               return '\u03cb';
-                       }
-                       return ToLowerInvariant (c);                    
-               }
+                       if (!m_cultureData.IsInvariantCulture) {
+                               switch (c) {
+                               case '\u0130':
+                                       return '\u0069';
+                               case '\u01c5':
+                               case '\u01c8':
+                               case '\u01cb':
+                               case '\u01f2':
+                                       return (char) (c + 1);
+                               case '\u03d2':
+                                       return '\u03c5';
+                               case '\u03d3':
+                                       return '\u03cd';
+                               case '\u03d4':
+                                       return '\u03cb';
+                               case '\u03f4':
+                                       return '\u03b8';
+                               case '\u1e9e':
+                                       return '\u00df';
+                               case '\u2126':
+                                       return '\u03c9';
+                               case '\u212a':
+                                       return '\u006b';
+                               case '\u212b':
+                                       return '\u00e5';
+                               }
 
-               static char ToLowerInvariant (char c)
-               {
-                       ReadDataTable ();
+                               if (!IsAsciiCasingSameAsInvariant) {
+                                       if (c == '\u0049')
+                                               return '\u0131';
 
-                       unsafe {
-                               if (c <= ((char)0x24cf))
-                                       return (char) to_lower_data_low [c];
-                               if (c >= ((char)0xff21))
-                                       return (char) to_lower_data_high[c - 0xff21];
+                                       if (IsAscii (c))
+                                               return ToLowerAsciiInvariant (c);
+                               }
                        }
-                       return c;
-               }
 
-               static char ToUpperInvariant (char c)
-               {
-                       ReadDataTable ();
+                       if (c >= '\u00c0' && c <= '\u0556')
+                               return TextInfoToLowerData.range_00c0_0556 [c - '\u00c0'];
+                       if (c >= '\u10a0' && c <= '\u10c5')
+                               return TextInfoToLowerData.range_10a0_10c5 [c - '\u10a0'];
+                       if (c >= '\u1e00' && c <= '\u1ffc')
+                               return TextInfoToLowerData.range_1e00_1ffc [c - '\u1e00'];
+                       if (c >= '\u2160' && c <= '\u216f')
+                               return TextInfoToLowerData.range_2160_216f [c - '\u2160'];
+                       if (c >= '\u24b6' && c <= '\u24cf')
+                               return TextInfoToLowerData.range_24b6_24cf [c - '\u24b6'];
+                       if (c >= '\u2c00' && c <= '\u2c2e')
+                               return TextInfoToLowerData.range_2c00_2c2e [c - '\u2c00'];
+                       if (c >= '\u2c60' && c <= '\u2ce2')
+                               return TextInfoToLowerData.range_2c60_2ce2 [c - '\u2c60'];
+                       if (c >= '\ua640' && c <= '\ua696')
+                               return TextInfoToLowerData.range_a640_a696 [c - '\ua640'];
+                       if (c >= '\ua722' && c <= '\ua78b')
+                               return TextInfoToLowerData.range_a722_a78b [c - '\ua722'];
 
-                       unsafe {
-                               if (c <= ((char)0x24e9))
-                                       return (char) to_upper_data_low [c];
-                               if (c >= ((char)0xff21))
-                                       return (char) to_upper_data_high [c - 0xff21];
+                       // FF21 - FF3A range maps to FF41 - FF5A
+                       if ('\uff21' <= c && c <= '\uff3a')
+                               return (char) (c + '\u0020');
+
+                       // Individual ones not close enough to any range
+                       switch (c) {
+                       case '\u2132':
+                               return '\u214e';
+                       case '\u2183':
+                               return '\u2184';
                        }
+
                        return c;
-               }               
+               }
 
                static unsafe int InternalCompareStringOrdinalIgnoreCase (String strA, int indexA, String strB, int indexB, int lenA, int lenB)
                {
@@ -198,4 +230,29 @@ namespace System.Globalization
                        }
                }
        }
+
+       static class TextInfoToUpperData
+       {
+               public static readonly char[] range_00e0_0586 = new char [] { '\u00c0','\u00c1','\u00c2','\u00c3','\u00c4','\u00c5','\u00c6','\u00c7','\u00c8','\u00c9','\u00ca','\u00cb','\u00cc','\u00cd','\u00ce','\u00cf','\u00d0','\u00d1','\u00d2','\u00d3','\u00d4','\u00d5','\u00d6','\u00f7','\u00d8','\u00d9','\u00da','\u00db','\u00dc','\u00dd','\u00de','\u0178','\u0100','\u0100','\u0102','\u0102','\u0104','\u0104','\u0106','\u0106','\u0108','\u0108','\u010a','\u010a','\u010c','\u010c','\u010e','\u010e','\u0110','\u0110','\u0112','\u0112','\u0114','\u0114','\u0116','\u0116','\u0118','\u0118','\u011a','\u011a','\u011c','\u011c','\u011e','\u011e','\u0120','\u0120','\u0122','\u0122','\u0124','\u0124','\u0126','\u0126','\u0128','\u0128','\u012a','\u012a','\u012c','\u012c','\u012e','\u012e','\u0130','\u0131','\u0132','\u0132','\u0134','\u0134','\u0136','\u0136','\u0138','\u0139','\u0139','\u013b','\u013b','\u013d','\u013d','\u013f','\u013f','\u0141','\u0141','\u0143','\u0143','\u0145','\u0145','\u0147','\u0147','\u0149','\u014a','\u014a','\u014c','\u014c','\u014e','\u014e','\u0150','\u0150','\u0152','\u0152','\u0154','\u0154','\u0156','\u0156','\u0158','\u0158','\u015a','\u015a','\u015c','\u015c','\u015e','\u015e','\u0160','\u0160','\u0162','\u0162','\u0164','\u0164','\u0166','\u0166','\u0168','\u0168','\u016a','\u016a','\u016c','\u016c','\u016e','\u016e','\u0170','\u0170','\u0172','\u0172','\u0174','\u0174','\u0176','\u0176','\u0178','\u0179','\u0179','\u017b','\u017b','\u017d','\u017d','\u017f','\u0243','\u0181','\u0182','\u0182','\u0184','\u0184','\u0186','\u0187','\u0187','\u0189','\u018a','\u018b','\u018b','\u018d','\u018e','\u018f','\u0190','\u0191','\u0191','\u0193','\u0194','\u01f6','\u0196','\u0197','\u0198','\u0198','\u023d','\u019b','\u019c','\u019d','\u0220','\u019f','\u01a0','\u01a0','\u01a2','\u01a2','\u01a4','\u01a4','\u01a6','\u01a7','\u01a7','\u01a9','\u01aa','\u01ab','\u01ac','\u01ac','\u01ae','\u01af','\u01af','\u01b1','\u01b2','\u01b3','\u01b3','\u01b5','\u01b5','\u01b7','\u01b8','\u01b8','\u01ba','\u01bb','\u01bc','\u01bc','\u01be','\u01f7','\u01c0','\u01c1','\u01c2','\u01c3','\u01c4','\u01c5','\u01c4','\u01c7','\u01c8','\u01c7','\u01ca','\u01cb','\u01ca','\u01cd','\u01cd','\u01cf','\u01cf','\u01d1','\u01d1','\u01d3','\u01d3','\u01d5','\u01d5','\u01d7','\u01d7','\u01d9','\u01d9','\u01db','\u01db','\u018e','\u01de','\u01de','\u01e0','\u01e0','\u01e2','\u01e2','\u01e4','\u01e4','\u01e6','\u01e6','\u01e8','\u01e8','\u01ea','\u01ea','\u01ec','\u01ec','\u01ee','\u01ee','\u01f0','\u01f1','\u01f2','\u01f1','\u01f4','\u01f4','\u01f6','\u01f7','\u01f8','\u01f8','\u01fa','\u01fa','\u01fc','\u01fc','\u01fe','\u01fe','\u0200','\u0200','\u0202','\u0202','\u0204','\u0204','\u0206','\u0206','\u0208','\u0208','\u020a','\u020a','\u020c','\u020c','\u020e','\u020e','\u0210','\u0210','\u0212','\u0212','\u0214','\u0214','\u0216','\u0216','\u0218','\u0218','\u021a','\u021a','\u021c','\u021c','\u021e','\u021e','\u0220','\u0221','\u0222','\u0222','\u0224','\u0224','\u0226','\u0226','\u0228','\u0228','\u022a','\u022a','\u022c','\u022c','\u022e','\u022e','\u0230','\u0230','\u0232','\u0232','\u0234','\u0235','\u0236','\u0237','\u0238','\u0239','\u023a','\u023b','\u023b','\u023d','\u023e','\u023f','\u0240','\u0241','\u0241','\u0243','\u0244','\u0245','\u0246','\u0246','\u0248','\u0248','\u024a','\u024a','\u024c','\u024c','\u024e','\u024e','\u2c6f','\u2c6d','\u0252','\u0181','\u0186','\u0255','\u0189','\u018a','\u0258','\u018f','\u025a','\u0190','\u025c','\u025d','\u025e','\u025f','\u0193','\u0261','\u0262','\u0194','\u0264','\u0265','\u0266','\u0267','\u0197','\u0196','\u026a','\u2c62','\u026c','\u026d','\u026e','\u019c','\u0270','\u2c6e','\u019d','\u0273','\u0274','\u019f','\u0276','\u0277','\u0278','\u0279','\u027a','\u027b','\u027c','\u2c64','\u027e','\u027f','\u01a6','\u0281','\u0282','\u01a9','\u0284','\u0285','\u0286','\u0287','\u01ae','\u0244','\u01b1','\u01b2','\u0245','\u028d','\u028e','\u028f','\u0290','\u0291','\u01b7','\u0293','\u0294','\u0295','\u0296','\u0297','\u0298','\u0299','\u029a','\u029b','\u029c','\u029d','\u029e','\u029f','\u02a0','\u02a1','\u02a2','\u02a3','\u02a4','\u02a5','\u02a6','\u02a7','\u02a8','\u02a9','\u02aa','\u02ab','\u02ac','\u02ad','\u02ae','\u02af','\u02b0','\u02b1','\u02b2','\u02b3','\u02b4','\u02b5','\u02b6','\u02b7','\u02b8','\u02b9','\u02ba','\u02bb','\u02bc','\u02bd','\u02be','\u02bf','\u02c0','\u02c1','\u02c2','\u02c3','\u02c4','\u02c5','\u02c6','\u02c7','\u02c8','\u02c9','\u02ca','\u02cb','\u02cc','\u02cd','\u02ce','\u02cf','\u02d0','\u02d1','\u02d2','\u02d3','\u02d4','\u02d5','\u02d6','\u02d7','\u02d8','\u02d9','\u02da','\u02db','\u02dc','\u02dd','\u02de','\u02df','\u02e0','\u02e1','\u02e2','\u02e3','\u02e4','\u02e5','\u02e6','\u02e7','\u02e8','\u02e9','\u02ea','\u02eb','\u02ec','\u02ed','\u02ee','\u02ef','\u02f0','\u02f1','\u02f2','\u02f3','\u02f4','\u02f5','\u02f6','\u02f7','\u02f8','\u02f9','\u02fa','\u02fb','\u02fc','\u02fd','\u02fe','\u02ff','\u0300','\u0301','\u0302','\u0303','\u0304','\u0305','\u0306','\u0307','\u0308','\u0309','\u030a','\u030b','\u030c','\u030d','\u030e','\u030f','\u0310','\u0311','\u0312','\u0313','\u0314','\u0315','\u0316','\u0317','\u0318','\u0319','\u031a','\u031b','\u031c','\u031d','\u031e','\u031f','\u0320','\u0321','\u0322','\u0323','\u0324','\u0325','\u0326','\u0327','\u0328','\u0329','\u032a','\u032b','\u032c','\u032d','\u032e','\u032f','\u0330','\u0331','\u0332','\u0333','\u0334','\u0335','\u0336','\u0337','\u0338','\u0339','\u033a','\u033b','\u033c','\u033d','\u033e','\u033f','\u0340','\u0341','\u0342','\u0343','\u0344','\u0345','\u0346','\u0347','\u0348','\u0349','\u034a','\u034b','\u034c','\u034d','\u034e','\u034f','\u0350','\u0351','\u0352','\u0353','\u0354','\u0355','\u0356','\u0357','\u0358','\u0359','\u035a','\u035b','\u035c','\u035d','\u035e','\u035f','\u0360','\u0361','\u0362','\u0363','\u0364','\u0365','\u0366','\u0367','\u0368','\u0369','\u036a','\u036b','\u036c','\u036d','\u036e','\u036f','\u0370','\u0370','\u0372','\u0372','\u0374','\u0375','\u0376','\u0376','\u0378','\u0379','\u037a','\u03fd','\u03fe','\u03ff','\u037e','\u037f','\u0380','\u0381','\u0382','\u0383','\u0384','\u0385','\u0386','\u0387','\u0388','\u0389','\u038a','\u038b','\u038c','\u038d','\u038e','\u038f','\u0390','\u0391','\u0392','\u0393','\u0394','\u0395','\u0396','\u0397','\u0398','\u0399','\u039a','\u039b','\u039c','\u039d','\u039e','\u039f','\u03a0','\u03a1','\u03a2','\u03a3','\u03a4','\u03a5','\u03a6','\u03a7','\u03a8','\u03a9','\u03aa','\u03ab','\u0386','\u0388','\u0389','\u038a','\u03b0','\u0391','\u0392','\u0393','\u0394','\u0395','\u0396','\u0397','\u0398','\u0399','\u039a','\u039b','\u039c','\u039d','\u039e','\u039f','\u03a0','\u03a1','\u03c2','\u03a3','\u03a4','\u03a5','\u03a6','\u03a7','\u03a8','\u03a9','\u03aa','\u03ab','\u038c','\u038e','\u038f','\u03cf','\u03d0','\u03d1','\u03d2','\u03d3','\u03d4','\u03d5','\u03d6','\u03cf','\u03d8','\u03d8','\u03da','\u03da','\u03dc','\u03dc','\u03de','\u03de','\u03e0','\u03e0','\u03e2','\u03e2','\u03e4','\u03e4','\u03e6','\u03e6','\u03e8','\u03e8','\u03ea','\u03ea','\u03ec','\u03ec','\u03ee','\u03ee','\u03f0','\u03f1','\u03f9','\u03f3','\u03f4','\u03f5','\u03f6','\u03f7','\u03f7','\u03f9','\u03fa','\u03fa','\u03fc','\u03fd','\u03fe','\u03ff','\u0400','\u0401','\u0402','\u0403','\u0404','\u0405','\u0406','\u0407','\u0408','\u0409','\u040a','\u040b','\u040c','\u040d','\u040e','\u040f','\u0410','\u0411','\u0412','\u0413','\u0414','\u0415','\u0416','\u0417','\u0418','\u0419','\u041a','\u041b','\u041c','\u041d','\u041e','\u041f','\u0420','\u0421','\u0422','\u0423','\u0424','\u0425','\u0426','\u0427','\u0428','\u0429','\u042a','\u042b','\u042c','\u042d','\u042e','\u042f','\u0410','\u0411','\u0412','\u0413','\u0414','\u0415','\u0416','\u0417','\u0418','\u0419','\u041a','\u041b','\u041c','\u041d','\u041e','\u041f','\u0420','\u0421','\u0422','\u0423','\u0424','\u0425','\u0426','\u0427','\u0428','\u0429','\u042a','\u042b','\u042c','\u042d','\u042e','\u042f','\u0400','\u0401','\u0402','\u0403','\u0404','\u0405','\u0406','\u0407','\u0408','\u0409','\u040a','\u040b','\u040c','\u040d','\u040e','\u040f','\u0460','\u0460','\u0462','\u0462','\u0464','\u0464','\u0466','\u0466','\u0468','\u0468','\u046a','\u046a','\u046c','\u046c','\u046e','\u046e','\u0470','\u0470','\u0472','\u0472','\u0474','\u0474','\u0476','\u0476','\u0478','\u0478','\u047a','\u047a','\u047c','\u047c','\u047e','\u047e','\u0480','\u0480','\u0482','\u0483','\u0484','\u0485','\u0486','\u0487','\u0488','\u0489','\u048a','\u048a','\u048c','\u048c','\u048e','\u048e','\u0490','\u0490','\u0492','\u0492','\u0494','\u0494','\u0496','\u0496','\u0498','\u0498','\u049a','\u049a','\u049c','\u049c','\u049e','\u049e','\u04a0','\u04a0','\u04a2','\u04a2','\u04a4','\u04a4','\u04a6','\u04a6','\u04a8','\u04a8','\u04aa','\u04aa','\u04ac','\u04ac','\u04ae','\u04ae','\u04b0','\u04b0','\u04b2','\u04b2','\u04b4','\u04b4','\u04b6','\u04b6','\u04b8','\u04b8','\u04ba','\u04ba','\u04bc','\u04bc','\u04be','\u04be','\u04c0','\u04c1','\u04c1','\u04c3','\u04c3','\u04c5','\u04c5','\u04c7','\u04c7','\u04c9','\u04c9','\u04cb','\u04cb','\u04cd','\u04cd','\u04c0','\u04d0','\u04d0','\u04d2','\u04d2','\u04d4','\u04d4','\u04d6','\u04d6','\u04d8','\u04d8','\u04da','\u04da','\u04dc','\u04dc','\u04de','\u04de','\u04e0','\u04e0','\u04e2','\u04e2','\u04e4','\u04e4','\u04e6','\u04e6','\u04e8','\u04e8','\u04ea','\u04ea','\u04ec','\u04ec','\u04ee','\u04ee','\u04f0','\u04f0','\u04f2','\u04f2','\u04f4','\u04f4','\u04f6','\u04f6','\u04f8','\u04f8','\u04fa','\u04fa','\u04fc','\u04fc','\u04fe','\u04fe','\u0500','\u0500','\u0502','\u0502','\u0504','\u0504','\u0506','\u0506','\u0508','\u0508','\u050a','\u050a','\u050c','\u050c','\u050e','\u050e','\u0510','\u0510','\u0512','\u0512','\u0514','\u0514','\u0516','\u0516','\u0518','\u0518','\u051a','\u051a','\u051c','\u051c','\u051e','\u051e','\u0520','\u0520','\u0522','\u0522','\u0524','\u0525','\u0526','\u0527','\u0528','\u0529','\u052a','\u052b','\u052c','\u052d','\u052e','\u052f','\u0530','\u0531','\u0532','\u0533','\u0534','\u0535','\u0536','\u0537','\u0538','\u0539','\u053a','\u053b','\u053c','\u053d','\u053e','\u053f','\u0540','\u0541','\u0542','\u0543','\u0544','\u0545','\u0546','\u0547','\u0548','\u0549','\u054a','\u054b','\u054c','\u054d','\u054e','\u054f','\u0550','\u0551','\u0552','\u0553','\u0554','\u0555','\u0556','\u0557','\u0558','\u0559','\u055a','\u055b','\u055c','\u055d','\u055e','\u055f','\u0560','\u0531','\u0532','\u0533','\u0534','\u0535','\u0536','\u0537','\u0538','\u0539','\u053a','\u053b','\u053c','\u053d','\u053e','\u053f','\u0540','\u0541','\u0542','\u0543','\u0544','\u0545','\u0546','\u0547','\u0548','\u0549','\u054a','\u054b','\u054c','\u054d','\u054e','\u054f','\u0550','\u0551','\u0552','\u0553','\u0554','\u0555','\u0556' };
+               public static readonly char[] range_1e01_1ff3 = new char [] { '\u1e00','\u1e02','\u1e02','\u1e04','\u1e04','\u1e06','\u1e06','\u1e08','\u1e08','\u1e0a','\u1e0a','\u1e0c','\u1e0c','\u1e0e','\u1e0e','\u1e10','\u1e10','\u1e12','\u1e12','\u1e14','\u1e14','\u1e16','\u1e16','\u1e18','\u1e18','\u1e1a','\u1e1a','\u1e1c','\u1e1c','\u1e1e','\u1e1e','\u1e20','\u1e20','\u1e22','\u1e22','\u1e24','\u1e24','\u1e26','\u1e26','\u1e28','\u1e28','\u1e2a','\u1e2a','\u1e2c','\u1e2c','\u1e2e','\u1e2e','\u1e30','\u1e30','\u1e32','\u1e32','\u1e34','\u1e34','\u1e36','\u1e36','\u1e38','\u1e38','\u1e3a','\u1e3a','\u1e3c','\u1e3c','\u1e3e','\u1e3e','\u1e40','\u1e40','\u1e42','\u1e42','\u1e44','\u1e44','\u1e46','\u1e46','\u1e48','\u1e48','\u1e4a','\u1e4a','\u1e4c','\u1e4c','\u1e4e','\u1e4e','\u1e50','\u1e50','\u1e52','\u1e52','\u1e54','\u1e54','\u1e56','\u1e56','\u1e58','\u1e58','\u1e5a','\u1e5a','\u1e5c','\u1e5c','\u1e5e','\u1e5e','\u1e60','\u1e60','\u1e62','\u1e62','\u1e64','\u1e64','\u1e66','\u1e66','\u1e68','\u1e68','\u1e6a','\u1e6a','\u1e6c','\u1e6c','\u1e6e','\u1e6e','\u1e70','\u1e70','\u1e72','\u1e72','\u1e74','\u1e74','\u1e76','\u1e76','\u1e78','\u1e78','\u1e7a','\u1e7a','\u1e7c','\u1e7c','\u1e7e','\u1e7e','\u1e80','\u1e80','\u1e82','\u1e82','\u1e84','\u1e84','\u1e86','\u1e86','\u1e88','\u1e88','\u1e8a','\u1e8a','\u1e8c','\u1e8c','\u1e8e','\u1e8e','\u1e90','\u1e90','\u1e92','\u1e92','\u1e94','\u1e94','\u1e96','\u1e97','\u1e98','\u1e99','\u1e9a','\u1e9b','\u1e9c','\u1e9d','\u1e9e','\u1e9f','\u1ea0','\u1ea0','\u1ea2','\u1ea2','\u1ea4','\u1ea4','\u1ea6','\u1ea6','\u1ea8','\u1ea8','\u1eaa','\u1eaa','\u1eac','\u1eac','\u1eae','\u1eae','\u1eb0','\u1eb0','\u1eb2','\u1eb2','\u1eb4','\u1eb4','\u1eb6','\u1eb6','\u1eb8','\u1eb8','\u1eba','\u1eba','\u1ebc','\u1ebc','\u1ebe','\u1ebe','\u1ec0','\u1ec0','\u1ec2','\u1ec2','\u1ec4','\u1ec4','\u1ec6','\u1ec6','\u1ec8','\u1ec8','\u1eca','\u1eca','\u1ecc','\u1ecc','\u1ece','\u1ece','\u1ed0','\u1ed0','\u1ed2','\u1ed2','\u1ed4','\u1ed4','\u1ed6','\u1ed6','\u1ed8','\u1ed8','\u1eda','\u1eda','\u1edc','\u1edc','\u1ede','\u1ede','\u1ee0','\u1ee0','\u1ee2','\u1ee2','\u1ee4','\u1ee4','\u1ee6','\u1ee6','\u1ee8','\u1ee8','\u1eea','\u1eea','\u1eec','\u1eec','\u1eee','\u1eee','\u1ef0','\u1ef0','\u1ef2','\u1ef2','\u1ef4','\u1ef4','\u1ef6','\u1ef6','\u1ef8','\u1ef8','\u1efa','\u1efa','\u1efc','\u1efc','\u1efe','\u1efe','\u1f08','\u1f09','\u1f0a','\u1f0b','\u1f0c','\u1f0d','\u1f0e','\u1f0f','\u1f08','\u1f09','\u1f0a','\u1f0b','\u1f0c','\u1f0d','\u1f0e','\u1f0f','\u1f18','\u1f19','\u1f1a','\u1f1b','\u1f1c','\u1f1d','\u1f16','\u1f17','\u1f18','\u1f19','\u1f1a','\u1f1b','\u1f1c','\u1f1d','\u1f1e','\u1f1f','\u1f28','\u1f29','\u1f2a','\u1f2b','\u1f2c','\u1f2d','\u1f2e','\u1f2f','\u1f28','\u1f29','\u1f2a','\u1f2b','\u1f2c','\u1f2d','\u1f2e','\u1f2f','\u1f38','\u1f39','\u1f3a','\u1f3b','\u1f3c','\u1f3d','\u1f3e','\u1f3f','\u1f38','\u1f39','\u1f3a','\u1f3b','\u1f3c','\u1f3d','\u1f3e','\u1f3f','\u1f48','\u1f49','\u1f4a','\u1f4b','\u1f4c','\u1f4d','\u1f46','\u1f47','\u1f48','\u1f49','\u1f4a','\u1f4b','\u1f4c','\u1f4d','\u1f4e','\u1f4f','\u1f50','\u1f59','\u1f52','\u1f5b','\u1f54','\u1f5d','\u1f56','\u1f5f','\u1f58','\u1f59','\u1f5a','\u1f5b','\u1f5c','\u1f5d','\u1f5e','\u1f5f','\u1f68','\u1f69','\u1f6a','\u1f6b','\u1f6c','\u1f6d','\u1f6e','\u1f6f','\u1f68','\u1f69','\u1f6a','\u1f6b','\u1f6c','\u1f6d','\u1f6e','\u1f6f','\u1fba','\u1fbb','\u1fc8','\u1fc9','\u1fca','\u1fcb','\u1fda','\u1fdb','\u1ff8','\u1ff9','\u1fea','\u1feb','\u1ffa','\u1ffb','\u1f7e','\u1f7f','\u1f88','\u1f89','\u1f8a','\u1f8b','\u1f8c','\u1f8d','\u1f8e','\u1f8f','\u1f88','\u1f89','\u1f8a','\u1f8b','\u1f8c','\u1f8d','\u1f8e','\u1f8f','\u1f98','\u1f99','\u1f9a','\u1f9b','\u1f9c','\u1f9d','\u1f9e','\u1f9f','\u1f98','\u1f99','\u1f9a','\u1f9b','\u1f9c','\u1f9d','\u1f9e','\u1f9f','\u1fa8','\u1fa9','\u1faa','\u1fab','\u1fac','\u1fad','\u1fae','\u1faf','\u1fa8','\u1fa9','\u1faa','\u1fab','\u1fac','\u1fad','\u1fae','\u1faf','\u1fb8','\u1fb9','\u1fb2','\u1fbc','\u1fb4','\u1fb5','\u1fb6','\u1fb7','\u1fb8','\u1fb9','\u1fba','\u1fbb','\u1fbc','\u1fbd','\u1fbe','\u1fbf','\u1fc0','\u1fc1','\u1fc2','\u1fcc','\u1fc4','\u1fc5','\u1fc6','\u1fc7','\u1fc8','\u1fc9','\u1fca','\u1fcb','\u1fcc','\u1fcd','\u1fce','\u1fcf','\u1fd8','\u1fd9','\u1fd2','\u1fd3','\u1fd4','\u1fd5','\u1fd6','\u1fd7','\u1fd8','\u1fd9','\u1fda','\u1fdb','\u1fdc','\u1fdd','\u1fde','\u1fdf','\u1fe8','\u1fe9','\u1fe2','\u1fe3','\u1fe4','\u1fec','\u1fe6','\u1fe7','\u1fe8','\u1fe9','\u1fea','\u1feb','\u1fec','\u1fed','\u1fee','\u1fef','\u1ff0','\u1ff1','\u1ff2','\u1ffc' };
+               public static readonly char[] range_2170_2184 = new char [] { '\u2160','\u2161','\u2162','\u2163','\u2164','\u2165','\u2166','\u2167','\u2168','\u2169','\u216a','\u216b','\u216c','\u216d','\u216e','\u216f','\u2180','\u2181','\u2182','\u2183','\u2183' };
+               public static readonly char[] range_24d0_24e9 = new char [] { '\u24b6','\u24b7','\u24b8','\u24b9','\u24ba','\u24bb','\u24bc','\u24bd','\u24be','\u24bf','\u24c0','\u24c1','\u24c2','\u24c3','\u24c4','\u24c5','\u24c6','\u24c7','\u24c8','\u24c9','\u24ca','\u24cb','\u24cc','\u24cd','\u24ce','\u24cf' };
+               public static readonly char[] range_2c30_2ce3 = new char [] { '\u2c00','\u2c01','\u2c02','\u2c03','\u2c04','\u2c05','\u2c06','\u2c07','\u2c08','\u2c09','\u2c0a','\u2c0b','\u2c0c','\u2c0d','\u2c0e','\u2c0f','\u2c10','\u2c11','\u2c12','\u2c13','\u2c14','\u2c15','\u2c16','\u2c17','\u2c18','\u2c19','\u2c1a','\u2c1b','\u2c1c','\u2c1d','\u2c1e','\u2c1f','\u2c20','\u2c21','\u2c22','\u2c23','\u2c24','\u2c25','\u2c26','\u2c27','\u2c28','\u2c29','\u2c2a','\u2c2b','\u2c2c','\u2c2d','\u2c2e','\u2c5f','\u2c60','\u2c60','\u2c62','\u2c63','\u2c64','\u023a','\u023e','\u2c67','\u2c67','\u2c69','\u2c69','\u2c6b','\u2c6b','\u2c6d','\u2c6e','\u2c6f','\u2c70','\u2c71','\u2c72','\u2c72','\u2c74','\u2c75','\u2c75','\u2c77','\u2c78','\u2c79','\u2c7a','\u2c7b','\u2c7c','\u2c7d','\u2c7e','\u2c7f','\u2c80','\u2c80','\u2c82','\u2c82','\u2c84','\u2c84','\u2c86','\u2c86','\u2c88','\u2c88','\u2c8a','\u2c8a','\u2c8c','\u2c8c','\u2c8e','\u2c8e','\u2c90','\u2c90','\u2c92','\u2c92','\u2c94','\u2c94','\u2c96','\u2c96','\u2c98','\u2c98','\u2c9a','\u2c9a','\u2c9c','\u2c9c','\u2c9e','\u2c9e','\u2ca0','\u2ca0','\u2ca2','\u2ca2','\u2ca4','\u2ca4','\u2ca6','\u2ca6','\u2ca8','\u2ca8','\u2caa','\u2caa','\u2cac','\u2cac','\u2cae','\u2cae','\u2cb0','\u2cb0','\u2cb2','\u2cb2','\u2cb4','\u2cb4','\u2cb6','\u2cb6','\u2cb8','\u2cb8','\u2cba','\u2cba','\u2cbc','\u2cbc','\u2cbe','\u2cbe','\u2cc0','\u2cc0','\u2cc2','\u2cc2','\u2cc4','\u2cc4','\u2cc6','\u2cc6','\u2cc8','\u2cc8','\u2cca','\u2cca','\u2ccc','\u2ccc','\u2cce','\u2cce','\u2cd0','\u2cd0','\u2cd2','\u2cd2','\u2cd4','\u2cd4','\u2cd6','\u2cd6','\u2cd8','\u2cd8','\u2cda','\u2cda','\u2cdc','\u2cdc','\u2cde','\u2cde','\u2ce0','\u2ce0','\u2ce2','\u2ce2' };
+               public static readonly char[] range_2d00_2d25 = new char [] { '\u10a0','\u10a1','\u10a2','\u10a3','\u10a4','\u10a5','\u10a6','\u10a7','\u10a8','\u10a9','\u10aa','\u10ab','\u10ac','\u10ad','\u10ae','\u10af','\u10b0','\u10b1','\u10b2','\u10b3','\u10b4','\u10b5','\u10b6','\u10b7','\u10b8','\u10b9','\u10ba','\u10bb','\u10bc','\u10bd','\u10be','\u10bf','\u10c0','\u10c1','\u10c2','\u10c3','\u10c4','\u10c5' };
+               public static readonly char[] range_a641_a697 = new char [] { '\ua640','\ua642','\ua642','\ua644','\ua644','\ua646','\ua646','\ua648','\ua648','\ua64a','\ua64a','\ua64c','\ua64c','\ua64e','\ua64e','\ua650','\ua650','\ua652','\ua652','\ua654','\ua654','\ua656','\ua656','\ua658','\ua658','\ua65a','\ua65a','\ua65c','\ua65c','\ua65e','\ua65e','\ua660','\ua661','\ua662','\ua662','\ua664','\ua664','\ua666','\ua666','\ua668','\ua668','\ua66a','\ua66a','\ua66c','\ua66c','\ua66e','\ua66f','\ua670','\ua671','\ua672','\ua673','\ua674','\ua675','\ua676','\ua677','\ua678','\ua679','\ua67a','\ua67b','\ua67c','\ua67d','\ua67e','\ua67f','\ua680','\ua680','\ua682','\ua682','\ua684','\ua684','\ua686','\ua686','\ua688','\ua688','\ua68a','\ua68a','\ua68c','\ua68c','\ua68e','\ua68e','\ua690','\ua690','\ua692','\ua692','\ua694','\ua694','\ua696','\ua696' };
+               public static readonly char[] range_a723_a78c = new char [] { '\ua722','\ua724','\ua724','\ua726','\ua726','\ua728','\ua728','\ua72a','\ua72a','\ua72c','\ua72c','\ua72e','\ua72e','\ua730','\ua731','\ua732','\ua732','\ua734','\ua734','\ua736','\ua736','\ua738','\ua738','\ua73a','\ua73a','\ua73c','\ua73c','\ua73e','\ua73e','\ua740','\ua740','\ua742','\ua742','\ua744','\ua744','\ua746','\ua746','\ua748','\ua748','\ua74a','\ua74a','\ua74c','\ua74c','\ua74e','\ua74e','\ua750','\ua750','\ua752','\ua752','\ua754','\ua754','\ua756','\ua756','\ua758','\ua758','\ua75a','\ua75a','\ua75c','\ua75c','\ua75e','\ua75e','\ua760','\ua760','\ua762','\ua762','\ua764','\ua764','\ua766','\ua766','\ua768','\ua768','\ua76a','\ua76a','\ua76c','\ua76c','\ua76e','\ua76e','\ua770','\ua771','\ua772','\ua773','\ua774','\ua775','\ua776','\ua777','\ua778','\ua779','\ua779','\ua77b','\ua77b','\ua77d','\ua77e','\ua77e','\ua780','\ua780','\ua782','\ua782','\ua784','\ua784','\ua786','\ua786','\ua788','\ua789','\ua78a','\ua78b','\ua78b' };
+       }
+
+       static class TextInfoToLowerData
+       {
+               public static readonly char[] range_00c0_0556 = new char [] { '\u00e0','\u00e1','\u00e2','\u00e3','\u00e4','\u00e5','\u00e6','\u00e7','\u00e8','\u00e9','\u00ea','\u00eb','\u00ec','\u00ed','\u00ee','\u00ef','\u00f0','\u00f1','\u00f2','\u00f3','\u00f4','\u00f5','\u00f6','\u00d7','\u00f8','\u00f9','\u00fa','\u00fb','\u00fc','\u00fd','\u00fe','\u00df','\u00e0','\u00e1','\u00e2','\u00e3','\u00e4','\u00e5','\u00e6','\u00e7','\u00e8','\u00e9','\u00ea','\u00eb','\u00ec','\u00ed','\u00ee','\u00ef','\u00f0','\u00f1','\u00f2','\u00f3','\u00f4','\u00f5','\u00f6','\u00f7','\u00f8','\u00f9','\u00fa','\u00fb','\u00fc','\u00fd','\u00fe','\u00ff','\u0101','\u0101','\u0103','\u0103','\u0105','\u0105','\u0107','\u0107','\u0109','\u0109','\u010b','\u010b','\u010d','\u010d','\u010f','\u010f','\u0111','\u0111','\u0113','\u0113','\u0115','\u0115','\u0117','\u0117','\u0119','\u0119','\u011b','\u011b','\u011d','\u011d','\u011f','\u011f','\u0121','\u0121','\u0123','\u0123','\u0125','\u0125','\u0127','\u0127','\u0129','\u0129','\u012b','\u012b','\u012d','\u012d','\u012f','\u012f','\u0130','\u0131','\u0133','\u0133','\u0135','\u0135','\u0137','\u0137','\u0138','\u013a','\u013a','\u013c','\u013c','\u013e','\u013e','\u0140','\u0140','\u0142','\u0142','\u0144','\u0144','\u0146','\u0146','\u0148','\u0148','\u0149','\u014b','\u014b','\u014d','\u014d','\u014f','\u014f','\u0151','\u0151','\u0153','\u0153','\u0155','\u0155','\u0157','\u0157','\u0159','\u0159','\u015b','\u015b','\u015d','\u015d','\u015f','\u015f','\u0161','\u0161','\u0163','\u0163','\u0165','\u0165','\u0167','\u0167','\u0169','\u0169','\u016b','\u016b','\u016d','\u016d','\u016f','\u016f','\u0171','\u0171','\u0173','\u0173','\u0175','\u0175','\u0177','\u0177','\u00ff','\u017a','\u017a','\u017c','\u017c','\u017e','\u017e','\u017f','\u0180','\u0253','\u0183','\u0183','\u0185','\u0185','\u0254','\u0188','\u0188','\u0256','\u0257','\u018c','\u018c','\u018d','\u01dd','\u0259','\u025b','\u0192','\u0192','\u0260','\u0263','\u0195','\u0269','\u0268','\u0199','\u0199','\u019a','\u019b','\u026f','\u0272','\u019e','\u0275','\u01a1','\u01a1','\u01a3','\u01a3','\u01a5','\u01a5','\u0280','\u01a8','\u01a8','\u0283','\u01aa','\u01ab','\u01ad','\u01ad','\u0288','\u01b0','\u01b0','\u028a','\u028b','\u01b4','\u01b4','\u01b6','\u01b6','\u0292','\u01b9','\u01b9','\u01ba','\u01bb','\u01bd','\u01bd','\u01be','\u01bf','\u01c0','\u01c1','\u01c2','\u01c3','\u01c6','\u01c5','\u01c6','\u01c9','\u01c8','\u01c9','\u01cc','\u01cb','\u01cc','\u01ce','\u01ce','\u01d0','\u01d0','\u01d2','\u01d2','\u01d4','\u01d4','\u01d6','\u01d6','\u01d8','\u01d8','\u01da','\u01da','\u01dc','\u01dc','\u01dd','\u01df','\u01df','\u01e1','\u01e1','\u01e3','\u01e3','\u01e5','\u01e5','\u01e7','\u01e7','\u01e9','\u01e9','\u01eb','\u01eb','\u01ed','\u01ed','\u01ef','\u01ef','\u01f0','\u01f3','\u01f2','\u01f3','\u01f5','\u01f5','\u0195','\u01bf','\u01f9','\u01f9','\u01fb','\u01fb','\u01fd','\u01fd','\u01ff','\u01ff','\u0201','\u0201','\u0203','\u0203','\u0205','\u0205','\u0207','\u0207','\u0209','\u0209','\u020b','\u020b','\u020d','\u020d','\u020f','\u020f','\u0211','\u0211','\u0213','\u0213','\u0215','\u0215','\u0217','\u0217','\u0219','\u0219','\u021b','\u021b','\u021d','\u021d','\u021f','\u021f','\u019e','\u0221','\u0223','\u0223','\u0225','\u0225','\u0227','\u0227','\u0229','\u0229','\u022b','\u022b','\u022d','\u022d','\u022f','\u022f','\u0231','\u0231','\u0233','\u0233','\u0234','\u0235','\u0236','\u0237','\u0238','\u0239','\u2c65','\u023c','\u023c','\u019a','\u2c66','\u023f','\u0240','\u0242','\u0242','\u0180','\u0289','\u028c','\u0247','\u0247','\u0249','\u0249','\u024b','\u024b','\u024d','\u024d','\u024f','\u024f','\u0250','\u0251','\u0252','\u0253','\u0254','\u0255','\u0256','\u0257','\u0258','\u0259','\u025a','\u025b','\u025c','\u025d','\u025e','\u025f','\u0260','\u0261','\u0262','\u0263','\u0264','\u0265','\u0266','\u0267','\u0268','\u0269','\u026a','\u026b','\u026c','\u026d','\u026e','\u026f','\u0270','\u0271','\u0272','\u0273','\u0274','\u0275','\u0276','\u0277','\u0278','\u0279','\u027a','\u027b','\u027c','\u027d','\u027e','\u027f','\u0280','\u0281','\u0282','\u0283','\u0284','\u0285','\u0286','\u0287','\u0288','\u0289','\u028a','\u028b','\u028c','\u028d','\u028e','\u028f','\u0290','\u0291','\u0292','\u0293','\u0294','\u0295','\u0296','\u0297','\u0298','\u0299','\u029a','\u029b','\u029c','\u029d','\u029e','\u029f','\u02a0','\u02a1','\u02a2','\u02a3','\u02a4','\u02a5','\u02a6','\u02a7','\u02a8','\u02a9','\u02aa','\u02ab','\u02ac','\u02ad','\u02ae','\u02af','\u02b0','\u02b1','\u02b2','\u02b3','\u02b4','\u02b5','\u02b6','\u02b7','\u02b8','\u02b9','\u02ba','\u02bb','\u02bc','\u02bd','\u02be','\u02bf','\u02c0','\u02c1','\u02c2','\u02c3','\u02c4','\u02c5','\u02c6','\u02c7','\u02c8','\u02c9','\u02ca','\u02cb','\u02cc','\u02cd','\u02ce','\u02cf','\u02d0','\u02d1','\u02d2','\u02d3','\u02d4','\u02d5','\u02d6','\u02d7','\u02d8','\u02d9','\u02da','\u02db','\u02dc','\u02dd','\u02de','\u02df','\u02e0','\u02e1','\u02e2','\u02e3','\u02e4','\u02e5','\u02e6','\u02e7','\u02e8','\u02e9','\u02ea','\u02eb','\u02ec','\u02ed','\u02ee','\u02ef','\u02f0','\u02f1','\u02f2','\u02f3','\u02f4','\u02f5','\u02f6','\u02f7','\u02f8','\u02f9','\u02fa','\u02fb','\u02fc','\u02fd','\u02fe','\u02ff','\u0300','\u0301','\u0302','\u0303','\u0304','\u0305','\u0306','\u0307','\u0308','\u0309','\u030a','\u030b','\u030c','\u030d','\u030e','\u030f','\u0310','\u0311','\u0312','\u0313','\u0314','\u0315','\u0316','\u0317','\u0318','\u0319','\u031a','\u031b','\u031c','\u031d','\u031e','\u031f','\u0320','\u0321','\u0322','\u0323','\u0324','\u0325','\u0326','\u0327','\u0328','\u0329','\u032a','\u032b','\u032c','\u032d','\u032e','\u032f','\u0330','\u0331','\u0332','\u0333','\u0334','\u0335','\u0336','\u0337','\u0338','\u0339','\u033a','\u033b','\u033c','\u033d','\u033e','\u033f','\u0340','\u0341','\u0342','\u0343','\u0344','\u0345','\u0346','\u0347','\u0348','\u0349','\u034a','\u034b','\u034c','\u034d','\u034e','\u034f','\u0350','\u0351','\u0352','\u0353','\u0354','\u0355','\u0356','\u0357','\u0358','\u0359','\u035a','\u035b','\u035c','\u035d','\u035e','\u035f','\u0360','\u0361','\u0362','\u0363','\u0364','\u0365','\u0366','\u0367','\u0368','\u0369','\u036a','\u036b','\u036c','\u036d','\u036e','\u036f','\u0371','\u0371','\u0373','\u0373','\u0374','\u0375','\u0377','\u0377','\u0378','\u0379','\u037a','\u037b','\u037c','\u037d','\u037e','\u037f','\u0380','\u0381','\u0382','\u0383','\u0384','\u0385','\u03ac','\u0387','\u03ad','\u03ae','\u03af','\u038b','\u03cc','\u038d','\u03cd','\u03ce','\u0390','\u03b1','\u03b2','\u03b3','\u03b4','\u03b5','\u03b6','\u03b7','\u03b8','\u03b9','\u03ba','\u03bb','\u03bc','\u03bd','\u03be','\u03bf','\u03c0','\u03c1','\u03a2','\u03c3','\u03c4','\u03c5','\u03c6','\u03c7','\u03c8','\u03c9','\u03ca','\u03cb','\u03ac','\u03ad','\u03ae','\u03af','\u03b0','\u03b1','\u03b2','\u03b3','\u03b4','\u03b5','\u03b6','\u03b7','\u03b8','\u03b9','\u03ba','\u03bb','\u03bc','\u03bd','\u03be','\u03bf','\u03c0','\u03c1','\u03c2','\u03c3','\u03c4','\u03c5','\u03c6','\u03c7','\u03c8','\u03c9','\u03ca','\u03cb','\u03cc','\u03cd','\u03ce','\u03d7','\u03d0','\u03d1','\u03d2','\u03d3','\u03d4','\u03d5','\u03d6','\u03d7','\u03d9','\u03d9','\u03db','\u03db','\u03dd','\u03dd','\u03df','\u03df','\u03e1','\u03e1','\u03e3','\u03e3','\u03e5','\u03e5','\u03e7','\u03e7','\u03e9','\u03e9','\u03eb','\u03eb','\u03ed','\u03ed','\u03ef','\u03ef','\u03f0','\u03f1','\u03f2','\u03f3','\u03f4','\u03f5','\u03f6','\u03f8','\u03f8','\u03f2','\u03fb','\u03fb','\u03fc','\u037b','\u037c','\u037d','\u0450','\u0451','\u0452','\u0453','\u0454','\u0455','\u0456','\u0457','\u0458','\u0459','\u045a','\u045b','\u045c','\u045d','\u045e','\u045f','\u0430','\u0431','\u0432','\u0433','\u0434','\u0435','\u0436','\u0437','\u0438','\u0439','\u043a','\u043b','\u043c','\u043d','\u043e','\u043f','\u0440','\u0441','\u0442','\u0443','\u0444','\u0445','\u0446','\u0447','\u0448','\u0449','\u044a','\u044b','\u044c','\u044d','\u044e','\u044f','\u0430','\u0431','\u0432','\u0433','\u0434','\u0435','\u0436','\u0437','\u0438','\u0439','\u043a','\u043b','\u043c','\u043d','\u043e','\u043f','\u0440','\u0441','\u0442','\u0443','\u0444','\u0445','\u0446','\u0447','\u0448','\u0449','\u044a','\u044b','\u044c','\u044d','\u044e','\u044f','\u0450','\u0451','\u0452','\u0453','\u0454','\u0455','\u0456','\u0457','\u0458','\u0459','\u045a','\u045b','\u045c','\u045d','\u045e','\u045f','\u0461','\u0461','\u0463','\u0463','\u0465','\u0465','\u0467','\u0467','\u0469','\u0469','\u046b','\u046b','\u046d','\u046d','\u046f','\u046f','\u0471','\u0471','\u0473','\u0473','\u0475','\u0475','\u0477','\u0477','\u0479','\u0479','\u047b','\u047b','\u047d','\u047d','\u047f','\u047f','\u0481','\u0481','\u0482','\u0483','\u0484','\u0485','\u0486','\u0487','\u0488','\u0489','\u048b','\u048b','\u048d','\u048d','\u048f','\u048f','\u0491','\u0491','\u0493','\u0493','\u0495','\u0495','\u0497','\u0497','\u0499','\u0499','\u049b','\u049b','\u049d','\u049d','\u049f','\u049f','\u04a1','\u04a1','\u04a3','\u04a3','\u04a5','\u04a5','\u04a7','\u04a7','\u04a9','\u04a9','\u04ab','\u04ab','\u04ad','\u04ad','\u04af','\u04af','\u04b1','\u04b1','\u04b3','\u04b3','\u04b5','\u04b5','\u04b7','\u04b7','\u04b9','\u04b9','\u04bb','\u04bb','\u04bd','\u04bd','\u04bf','\u04bf','\u04cf','\u04c2','\u04c2','\u04c4','\u04c4','\u04c6','\u04c6','\u04c8','\u04c8','\u04ca','\u04ca','\u04cc','\u04cc','\u04ce','\u04ce','\u04cf','\u04d1','\u04d1','\u04d3','\u04d3','\u04d5','\u04d5','\u04d7','\u04d7','\u04d9','\u04d9','\u04db','\u04db','\u04dd','\u04dd','\u04df','\u04df','\u04e1','\u04e1','\u04e3','\u04e3','\u04e5','\u04e5','\u04e7','\u04e7','\u04e9','\u04e9','\u04eb','\u04eb','\u04ed','\u04ed','\u04ef','\u04ef','\u04f1','\u04f1','\u04f3','\u04f3','\u04f5','\u04f5','\u04f7','\u04f7','\u04f9','\u04f9','\u04fb','\u04fb','\u04fd','\u04fd','\u04ff','\u04ff','\u0501','\u0501','\u0503','\u0503','\u0505','\u0505','\u0507','\u0507','\u0509','\u0509','\u050b','\u050b','\u050d','\u050d','\u050f','\u050f','\u0511','\u0511','\u0513','\u0513','\u0515','\u0515','\u0517','\u0517','\u0519','\u0519','\u051b','\u051b','\u051d','\u051d','\u051f','\u051f','\u0521','\u0521','\u0523','\u0523','\u0524','\u0525','\u0526','\u0527','\u0528','\u0529','\u052a','\u052b','\u052c','\u052d','\u052e','\u052f','\u0530','\u0561','\u0562','\u0563','\u0564','\u0565','\u0566','\u0567','\u0568','\u0569','\u056a','\u056b','\u056c','\u056d','\u056e','\u056f','\u0570','\u0571','\u0572','\u0573','\u0574','\u0575','\u0576','\u0577','\u0578','\u0579','\u057a','\u057b','\u057c','\u057d','\u057e','\u057f','\u0580','\u0581','\u0582','\u0583','\u0584','\u0585','\u0586' };
+               public static readonly char[] range_10a0_10c5 = new char [] { '\u2d00','\u2d01','\u2d02','\u2d03','\u2d04','\u2d05','\u2d06','\u2d07','\u2d08','\u2d09','\u2d0a','\u2d0b','\u2d0c','\u2d0d','\u2d0e','\u2d0f','\u2d10','\u2d11','\u2d12','\u2d13','\u2d14','\u2d15','\u2d16','\u2d17','\u2d18','\u2d19','\u2d1a','\u2d1b','\u2d1c','\u2d1d','\u2d1e','\u2d1f','\u2d20','\u2d21','\u2d22','\u2d23','\u2d24','\u2d25' };
+               public static readonly char[] range_1e00_1ffc = new char [] { '\u1e01','\u1e01','\u1e03','\u1e03','\u1e05','\u1e05','\u1e07','\u1e07','\u1e09','\u1e09','\u1e0b','\u1e0b','\u1e0d','\u1e0d','\u1e0f','\u1e0f','\u1e11','\u1e11','\u1e13','\u1e13','\u1e15','\u1e15','\u1e17','\u1e17','\u1e19','\u1e19','\u1e1b','\u1e1b','\u1e1d','\u1e1d','\u1e1f','\u1e1f','\u1e21','\u1e21','\u1e23','\u1e23','\u1e25','\u1e25','\u1e27','\u1e27','\u1e29','\u1e29','\u1e2b','\u1e2b','\u1e2d','\u1e2d','\u1e2f','\u1e2f','\u1e31','\u1e31','\u1e33','\u1e33','\u1e35','\u1e35','\u1e37','\u1e37','\u1e39','\u1e39','\u1e3b','\u1e3b','\u1e3d','\u1e3d','\u1e3f','\u1e3f','\u1e41','\u1e41','\u1e43','\u1e43','\u1e45','\u1e45','\u1e47','\u1e47','\u1e49','\u1e49','\u1e4b','\u1e4b','\u1e4d','\u1e4d','\u1e4f','\u1e4f','\u1e51','\u1e51','\u1e53','\u1e53','\u1e55','\u1e55','\u1e57','\u1e57','\u1e59','\u1e59','\u1e5b','\u1e5b','\u1e5d','\u1e5d','\u1e5f','\u1e5f','\u1e61','\u1e61','\u1e63','\u1e63','\u1e65','\u1e65','\u1e67','\u1e67','\u1e69','\u1e69','\u1e6b','\u1e6b','\u1e6d','\u1e6d','\u1e6f','\u1e6f','\u1e71','\u1e71','\u1e73','\u1e73','\u1e75','\u1e75','\u1e77','\u1e77','\u1e79','\u1e79','\u1e7b','\u1e7b','\u1e7d','\u1e7d','\u1e7f','\u1e7f','\u1e81','\u1e81','\u1e83','\u1e83','\u1e85','\u1e85','\u1e87','\u1e87','\u1e89','\u1e89','\u1e8b','\u1e8b','\u1e8d','\u1e8d','\u1e8f','\u1e8f','\u1e91','\u1e91','\u1e93','\u1e93','\u1e95','\u1e95','\u1e96','\u1e97','\u1e98','\u1e99','\u1e9a','\u1e9b','\u1e9c','\u1e9d','\u1e9e','\u1e9f','\u1ea1','\u1ea1','\u1ea3','\u1ea3','\u1ea5','\u1ea5','\u1ea7','\u1ea7','\u1ea9','\u1ea9','\u1eab','\u1eab','\u1ead','\u1ead','\u1eaf','\u1eaf','\u1eb1','\u1eb1','\u1eb3','\u1eb3','\u1eb5','\u1eb5','\u1eb7','\u1eb7','\u1eb9','\u1eb9','\u1ebb','\u1ebb','\u1ebd','\u1ebd','\u1ebf','\u1ebf','\u1ec1','\u1ec1','\u1ec3','\u1ec3','\u1ec5','\u1ec5','\u1ec7','\u1ec7','\u1ec9','\u1ec9','\u1ecb','\u1ecb','\u1ecd','\u1ecd','\u1ecf','\u1ecf','\u1ed1','\u1ed1','\u1ed3','\u1ed3','\u1ed5','\u1ed5','\u1ed7','\u1ed7','\u1ed9','\u1ed9','\u1edb','\u1edb','\u1edd','\u1edd','\u1edf','\u1edf','\u1ee1','\u1ee1','\u1ee3','\u1ee3','\u1ee5','\u1ee5','\u1ee7','\u1ee7','\u1ee9','\u1ee9','\u1eeb','\u1eeb','\u1eed','\u1eed','\u1eef','\u1eef','\u1ef1','\u1ef1','\u1ef3','\u1ef3','\u1ef5','\u1ef5','\u1ef7','\u1ef7','\u1ef9','\u1ef9','\u1efb','\u1efb','\u1efd','\u1efd','\u1eff','\u1eff','\u1f00','\u1f01','\u1f02','\u1f03','\u1f04','\u1f05','\u1f06','\u1f07','\u1f00','\u1f01','\u1f02','\u1f03','\u1f04','\u1f05','\u1f06','\u1f07','\u1f10','\u1f11','\u1f12','\u1f13','\u1f14','\u1f15','\u1f16','\u1f17','\u1f10','\u1f11','\u1f12','\u1f13','\u1f14','\u1f15','\u1f1e','\u1f1f','\u1f20','\u1f21','\u1f22','\u1f23','\u1f24','\u1f25','\u1f26','\u1f27','\u1f20','\u1f21','\u1f22','\u1f23','\u1f24','\u1f25','\u1f26','\u1f27','\u1f30','\u1f31','\u1f32','\u1f33','\u1f34','\u1f35','\u1f36','\u1f37','\u1f30','\u1f31','\u1f32','\u1f33','\u1f34','\u1f35','\u1f36','\u1f37','\u1f40','\u1f41','\u1f42','\u1f43','\u1f44','\u1f45','\u1f46','\u1f47','\u1f40','\u1f41','\u1f42','\u1f43','\u1f44','\u1f45','\u1f4e','\u1f4f','\u1f50','\u1f51','\u1f52','\u1f53','\u1f54','\u1f55','\u1f56','\u1f57','\u1f58','\u1f51','\u1f5a','\u1f53','\u1f5c','\u1f55','\u1f5e','\u1f57','\u1f60','\u1f61','\u1f62','\u1f63','\u1f64','\u1f65','\u1f66','\u1f67','\u1f60','\u1f61','\u1f62','\u1f63','\u1f64','\u1f65','\u1f66','\u1f67','\u1f70','\u1f71','\u1f72','\u1f73','\u1f74','\u1f75','\u1f76','\u1f77','\u1f78','\u1f79','\u1f7a','\u1f7b','\u1f7c','\u1f7d','\u1f7e','\u1f7f','\u1f80','\u1f81','\u1f82','\u1f83','\u1f84','\u1f85','\u1f86','\u1f87','\u1f80','\u1f81','\u1f82','\u1f83','\u1f84','\u1f85','\u1f86','\u1f87','\u1f90','\u1f91','\u1f92','\u1f93','\u1f94','\u1f95','\u1f96','\u1f97','\u1f90','\u1f91','\u1f92','\u1f93','\u1f94','\u1f95','\u1f96','\u1f97','\u1fa0','\u1fa1','\u1fa2','\u1fa3','\u1fa4','\u1fa5','\u1fa6','\u1fa7','\u1fa0','\u1fa1','\u1fa2','\u1fa3','\u1fa4','\u1fa5','\u1fa6','\u1fa7','\u1fb0','\u1fb1','\u1fb2','\u1fb3','\u1fb4','\u1fb5','\u1fb6','\u1fb7','\u1fb0','\u1fb1','\u1f70','\u1f71','\u1fb3','\u1fbd','\u1fbe','\u1fbf','\u1fc0','\u1fc1','\u1fc2','\u1fc3','\u1fc4','\u1fc5','\u1fc6','\u1fc7','\u1f72','\u1f73','\u1f74','\u1f75','\u1fc3','\u1fcd','\u1fce','\u1fcf','\u1fd0','\u1fd1','\u1fd2','\u1fd3','\u1fd4','\u1fd5','\u1fd6','\u1fd7','\u1fd0','\u1fd1','\u1f76','\u1f77','\u1fdc','\u1fdd','\u1fde','\u1fdf','\u1fe0','\u1fe1','\u1fe2','\u1fe3','\u1fe4','\u1fe5','\u1fe6','\u1fe7','\u1fe0','\u1fe1','\u1f7a','\u1f7b','\u1fe5','\u1fed','\u1fee','\u1fef','\u1ff0','\u1ff1','\u1ff2','\u1ff3','\u1ff4','\u1ff5','\u1ff6','\u1ff7','\u1f78','\u1f79','\u1f7c','\u1f7d','\u1ff3' };
+               public static readonly char[] range_2160_216f = new char [] { '\u2170','\u2171','\u2172','\u2173','\u2174','\u2175','\u2176','\u2177','\u2178','\u2179','\u217a','\u217b','\u217c','\u217d','\u217e','\u217f' };
+               public static readonly char[] range_24b6_24cf = new char [] { '\u24d0','\u24d1','\u24d2','\u24d3','\u24d4','\u24d5','\u24d6','\u24d7','\u24d8','\u24d9','\u24da','\u24db','\u24dc','\u24dd','\u24de','\u24df','\u24e0','\u24e1','\u24e2','\u24e3','\u24e4','\u24e5','\u24e6','\u24e7','\u24e8','\u24e9' };
+               public static readonly char[] range_2c00_2c2e = new char [] { '\u2c30','\u2c31','\u2c32','\u2c33','\u2c34','\u2c35','\u2c36','\u2c37','\u2c38','\u2c39','\u2c3a','\u2c3b','\u2c3c','\u2c3d','\u2c3e','\u2c3f','\u2c40','\u2c41','\u2c42','\u2c43','\u2c44','\u2c45','\u2c46','\u2c47','\u2c48','\u2c49','\u2c4a','\u2c4b','\u2c4c','\u2c4d','\u2c4e','\u2c4f','\u2c50','\u2c51','\u2c52','\u2c53','\u2c54','\u2c55','\u2c56','\u2c57','\u2c58','\u2c59','\u2c5a','\u2c5b','\u2c5c','\u2c5d','\u2c5e' };
+               public static readonly char[] range_2c60_2ce2 = new char [] { '\u2c61','\u2c61','\u026b','\u1d7d','\u027d','\u2c65','\u2c66','\u2c68','\u2c68','\u2c6a','\u2c6a','\u2c6c','\u2c6c','\u0251','\u0271','\u0250','\u2c70','\u2c71','\u2c73','\u2c73','\u2c74','\u2c76','\u2c76','\u2c77','\u2c78','\u2c79','\u2c7a','\u2c7b','\u2c7c','\u2c7d','\u2c7e','\u2c7f','\u2c81','\u2c81','\u2c83','\u2c83','\u2c85','\u2c85','\u2c87','\u2c87','\u2c89','\u2c89','\u2c8b','\u2c8b','\u2c8d','\u2c8d','\u2c8f','\u2c8f','\u2c91','\u2c91','\u2c93','\u2c93','\u2c95','\u2c95','\u2c97','\u2c97','\u2c99','\u2c99','\u2c9b','\u2c9b','\u2c9d','\u2c9d','\u2c9f','\u2c9f','\u2ca1','\u2ca1','\u2ca3','\u2ca3','\u2ca5','\u2ca5','\u2ca7','\u2ca7','\u2ca9','\u2ca9','\u2cab','\u2cab','\u2cad','\u2cad','\u2caf','\u2caf','\u2cb1','\u2cb1','\u2cb3','\u2cb3','\u2cb5','\u2cb5','\u2cb7','\u2cb7','\u2cb9','\u2cb9','\u2cbb','\u2cbb','\u2cbd','\u2cbd','\u2cbf','\u2cbf','\u2cc1','\u2cc1','\u2cc3','\u2cc3','\u2cc5','\u2cc5','\u2cc7','\u2cc7','\u2cc9','\u2cc9','\u2ccb','\u2ccb','\u2ccd','\u2ccd','\u2ccf','\u2ccf','\u2cd1','\u2cd1','\u2cd3','\u2cd3','\u2cd5','\u2cd5','\u2cd7','\u2cd7','\u2cd9','\u2cd9','\u2cdb','\u2cdb','\u2cdd','\u2cdd','\u2cdf','\u2cdf','\u2ce1','\u2ce1','\u2ce3' };
+               public static readonly char[] range_a640_a696 = new char [] { '\ua641','\ua641','\ua643','\ua643','\ua645','\ua645','\ua647','\ua647','\ua649','\ua649','\ua64b','\ua64b','\ua64d','\ua64d','\ua64f','\ua64f','\ua651','\ua651','\ua653','\ua653','\ua655','\ua655','\ua657','\ua657','\ua659','\ua659','\ua65b','\ua65b','\ua65d','\ua65d','\ua65f','\ua65f','\ua660','\ua661','\ua663','\ua663','\ua665','\ua665','\ua667','\ua667','\ua669','\ua669','\ua66b','\ua66b','\ua66d','\ua66d','\ua66e','\ua66f','\ua670','\ua671','\ua672','\ua673','\ua674','\ua675','\ua676','\ua677','\ua678','\ua679','\ua67a','\ua67b','\ua67c','\ua67d','\ua67e','\ua67f','\ua681','\ua681','\ua683','\ua683','\ua685','\ua685','\ua687','\ua687','\ua689','\ua689','\ua68b','\ua68b','\ua68d','\ua68d','\ua68f','\ua68f','\ua691','\ua691','\ua693','\ua693','\ua695','\ua695','\ua697' };
+               public static readonly char[] range_a722_a78b = new char [] { '\ua723','\ua723','\ua725','\ua725','\ua727','\ua727','\ua729','\ua729','\ua72b','\ua72b','\ua72d','\ua72d','\ua72f','\ua72f','\ua730','\ua731','\ua733','\ua733','\ua735','\ua735','\ua737','\ua737','\ua739','\ua739','\ua73b','\ua73b','\ua73d','\ua73d','\ua73f','\ua73f','\ua741','\ua741','\ua743','\ua743','\ua745','\ua745','\ua747','\ua747','\ua749','\ua749','\ua74b','\ua74b','\ua74d','\ua74d','\ua74f','\ua74f','\ua751','\ua751','\ua753','\ua753','\ua755','\ua755','\ua757','\ua757','\ua759','\ua759','\ua75b','\ua75b','\ua75d','\ua75d','\ua75f','\ua75f','\ua761','\ua761','\ua763','\ua763','\ua765','\ua765','\ua767','\ua767','\ua769','\ua769','\ua76b','\ua76b','\ua76d','\ua76d','\ua76f','\ua76f','\ua770','\ua771','\ua772','\ua773','\ua774','\ua775','\ua776','\ua777','\ua778','\ua77a','\ua77a','\ua77c','\ua77c','\u1d79','\ua77f','\ua77f','\ua781','\ua781','\ua783','\ua783','\ua785','\ua785','\ua787','\ua787','\ua788','\ua789','\ua78a','\ua78c' };
+       }
 }
\ No newline at end of file
index c856267d8961598173a23cc91e4b85f5f6b352d1..a732d3eba0f5a602e660905a6b47db23f99ff5a8 100644 (file)
@@ -10,5 +10,10 @@ namespace Microsoft.Win32
                {
                        return "Error " + hr;
                }
+
+               public class SECURITY_ATTRIBUTES
+               {
+
+               }
        }
 }
\ No newline at end of file
index b806082b188853ad5e30e10dfbde8b3e9a9c01e3..c3fb0d2ccb73e953e46c11ecd0b86c286e13131c 100644 (file)
@@ -411,10 +411,7 @@ namespace System.Globalization
                public override bool Equals (object value)
                {
                        CultureInfo b = value as CultureInfo;
-                       
-                       if (b != null)
-                               return b.cultureID == cultureID;
-                       return false;
+                       return b != null && b.cultureID == cultureID && b.m_name == m_name;
                }
 
                public static CultureInfo[] GetCultures(CultureTypes types)
index 610247d2e088429f6ca9d36eda5bbea5c5516218..5690dac24ed8f814ff12c3471e1cc5bd3a9401f1 100644 (file)
@@ -411,10 +411,8 @@ namespace System.IO
                                return ret;
                        }
                        set {
-                               if(value < 0) {
-                                       throw new ArgumentOutOfRangeException("Attempt to set the position to a negative value");
-                               }
-                               
+                               if (value < 0) throw new ArgumentOutOfRangeException("value", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+
                                Seek (value, SeekOrigin.Begin);
                        }
                }
index 2c3a49eba2983286d4fbeffb5413dfce4fcc88cd..d74a09a1cede25bf4933c69f466f1cdf9a1b2c97 100644 (file)
@@ -32,6 +32,7 @@
 
 #if !FULL_AOT_RUNTIME
 using System;
+using System.Collections.Generic;
 using System.Reflection;
 using System.Reflection.Emit;
 using System.Globalization;
@@ -270,6 +271,14 @@ namespace System.Reflection.Emit {
                        return ilgen;
                }
 
+               public void SetMethodBody (byte[] il, int maxStack, byte[] localSignature,
+                       IEnumerable<ExceptionHandler> exceptionHandlers, IEnumerable<int> tokenFixups)
+               {
+                       var ilgen = GetILGenerator ();
+                       ilgen.Init (il, maxStack, localSignature, exceptionHandlers, tokenFixups);
+               }
+
+
                public void SetCustomAttribute (CustomAttributeBuilder customBuilder)
                {
                        if (customBuilder == null)
index 44fa9d56321bcb5793ef9e20f0346ad283c599f4..ac4fda04472f0572052c8433509685a8e063af93 100644 (file)
@@ -34,6 +34,7 @@
 #if !FULL_AOT_RUNTIME
 using System;
 using System.Collections;
+using System.Collections.Generic;
 using System.Diagnostics.SymbolStore;
 using System.Runtime.InteropServices;
 
@@ -65,9 +66,9 @@ namespace System.Reflection.Emit {
        internal struct ILExceptionInfo {
 #pragma warning disable 169
 #pragma warning disable 414
-               ILExceptionBlock[] handlers;
+               internal ILExceptionBlock[] handlers;
                internal int start;
-               int len;
+               internal int len;
                internal Label end;
 #pragma warning restore 169
 #pragma warning restore 414
@@ -1006,7 +1007,17 @@ namespace System.Reflection.Emit {
                        }
                }
 
-               // Used by DynamicILGenerator
+               // Used by MethodBuilder.SetMethodBody
+               internal void SetExceptionHandlers (ILExceptionInfo[] exHandlers) {
+                       this.ex_handlers = exHandlers;
+               }
+
+               // Used by MethodBuilder.SetMethodBody
+               internal void SetTokenFixups (ILTokenInfo[] tokenFixups) {
+                       this.token_fixups = tokenFixups;
+               }
+
+               // Used by DynamicILGenerator and MethodBuilder.SetMethodBody
                internal void SetCode (byte[] code, int max_stack) {
                        // Make a copy to avoid possible security problems
                        this.code = (byte[])code.Clone ();
@@ -1025,6 +1036,68 @@ namespace System.Reflection.Emit {
                        this.cur_stack = 0;
                }
 
+               internal void Init (byte[] il, int maxStack, byte[] localSignature,
+                       IEnumerable<ExceptionHandler> exceptionHandlers, IEnumerable<int> tokenFixups)
+               {
+                       SetCode (il, maxStack);
+
+                       // FIXME: Process local signature
+
+                       // Process exception handlers
+                       if (exceptionHandlers != null) {
+                               // Group exception handlers by try blocks
+                               var tryBlocks = new Dictionary <Tuple<int, int>, List<ExceptionHandler>> ();
+                               foreach (var h in exceptionHandlers) {
+                                       List<ExceptionHandler> list;
+                                       var key = new Tuple <int, int> (h.TryOffset, h.TryLength);
+                                       if (!tryBlocks.TryGetValue (key, out list)) {
+                                               list = new List<ExceptionHandler> ();
+                                               tryBlocks.Add (key, list);
+                                       }
+                                       list.Add (h);
+                               }
+
+                               // Generate ILExceptionInfo from tryBlocks
+                               var infos = new List<ILExceptionInfo> ();
+                               foreach (var kv in tryBlocks) {
+                                       var info = new ILExceptionInfo () {
+                                               start = kv.Key.Item1,
+                                               len = kv.Key.Item2,
+                                               handlers = new ILExceptionBlock [kv.Value.Count],
+                                       };
+                                       infos.Add (info);
+                                       var i = 0;
+                                       foreach (var b in kv.Value) {
+                                               info.handlers [i++] = new ILExceptionBlock () {
+                                                       start = b.HandlerOffset,
+                                                       len = b.HandlerLength,
+                                                       filter_offset = b.FilterOffset,
+                                                       type = (int) b.Kind,
+                                                       extype = module.ResolveType (b.ExceptionTypeToken),
+                                               };
+                                       }
+                               }
+
+                               SetExceptionHandlers (infos.ToArray ());
+                       }
+
+                       // Process token fixups
+                       if (tokenFixups != null) {
+                               var tokenInfos = new List<ILTokenInfo> ();
+                               foreach (var pos in tokenFixups) {
+                                       var token = (int) BitConverter.ToUInt32 (il, pos);
+                                       var tokenInfo = new ILTokenInfo () {
+                                               code_pos = pos,
+                                               member = ((ModuleBuilder) module).ResolveOrGetRegisteredToken (token, null, null)
+                                       };
+                                       tokenInfos.Add (tokenInfo);
+                               }
+
+                               SetTokenFixups (tokenInfos.ToArray ());
+                       }
+               }
+
+
                internal TokenGenerator TokenGenerator {
                        get {
                                return token_gen;
index 97e6fd81b93299261db7512e638eecac33600249..3772d98b82c90381dc2b8da1dba39a4308e8063e 100644 (file)
@@ -40,6 +40,7 @@ using System.Security.Permissions;
 using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 using System.Diagnostics.SymbolStore;
+using System.Collections.Generic;
 
 namespace System.Reflection.Emit
 {
@@ -268,6 +269,13 @@ namespace System.Reflection.Emit
                        }
                }
 
+               public void SetMethodBody (byte[] il, int maxStack, byte[] localSignature,
+                       IEnumerable<ExceptionHandler> exceptionHandlers, IEnumerable<int> tokenFixups)
+               {
+                       var ilgen = GetILGenerator ();
+                       ilgen.Init (il, maxStack, localSignature, exceptionHandlers, tokenFixups);
+               }
+
                public override Object Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
                {
                        throw NotSupported ();
index d137414ff5c2a036e880216e9ef2d7d332071155..26b89423c471ac27d7aacd55dcecd5067c0ce88e 100644 (file)
@@ -586,6 +586,14 @@ namespace System.Reflection.Emit {
 
                        return new MethodToken (GetToken (method));
                }
+               
+               public MethodToken GetMethodToken (MethodInfo method, IEnumerable<Type> optionalParameterTypes)
+               {
+                       if (method == null)
+                               throw new ArgumentNullException ("method");
+
+                       return new MethodToken (GetToken (method, optionalParameterTypes));
+               }
 
                public MethodToken GetArrayMethodToken (Type arrayClass, string methodName, CallingConventions callingConvention, Type returnType, Type[] parameterTypes)
                {
@@ -597,17 +605,23 @@ namespace System.Reflection.Emit {
                {
                        if (con == null)
                                throw new ArgumentNullException ("con");
-                       if (con.DeclaringType.Module != this)
-                               throw new InvalidOperationException ("The constructor is not in this module");
+
                        return new MethodToken (GetToken (con));
                }
+               
+               public MethodToken GetConstructorToken (ConstructorInfo constructor, IEnumerable<Type> optionalParameterTypes)
+               {
+                       if (constructor == null)
+                               throw new ArgumentNullException ("constructor");
+
+                       return new MethodToken (GetToken (constructor, optionalParameterTypes));
+               }
 
                public FieldToken GetFieldToken (FieldInfo field)
                {
                        if (field == null)
                                throw new ArgumentNullException ("field");
-                       if (field.DeclaringType.Module != this)
-                               throw new InvalidOperationException ("The method is not in this module");
+
                        return new FieldToken (GetToken (field));
                }
 
@@ -676,6 +690,14 @@ namespace System.Reflection.Emit {
                        return getToken (this, member, create_open_instance);
                }
 
+               internal int GetToken (MethodBase method, IEnumerable<Type> opt_param_types) {
+                       if (opt_param_types == null)
+                               return getToken (this, method, true);
+
+                       var optParamTypes = new List<Type> (opt_param_types);
+                       return  getMethodToken (this, method, optParamTypes.ToArray ());
+               }
+               
                internal int GetToken (MethodBase method, Type[] opt_param_types) {
                        return getMethodToken (this, method, opt_param_types);
                }
@@ -691,6 +713,12 @@ namespace System.Reflection.Emit {
                [MethodImplAttribute(MethodImplOptions.InternalCall)]
                internal extern void RegisterToken (object obj, int token);
 
+               /*
+                * Returns MemberInfo registered with the given token.
+                */
+               [MethodImplAttribute(MethodImplOptions.InternalCall)]
+               internal extern object GetRegisteredToken (int token);
+
                internal TokenGenerator GetTokenGenerator () {
                        if (token_gen == null)
                                token_gen = new ModuleBuilderTokenGenerator (this);
@@ -874,6 +902,20 @@ namespace System.Reflection.Emit {
                                return m;
                }
 
+               internal MemberInfo ResolveOrGetRegisteredToken (int metadataToken, Type [] genericTypeArguments, Type [] genericMethodArguments)
+               {
+                       ResolveTokenError error;
+                       MemberInfo m = ResolveMemberToken (_impl, metadataToken, ptrs_from_types (genericTypeArguments), ptrs_from_types (genericMethodArguments), out error);
+                       if (m != null)
+                               return m;
+
+                       m = GetRegisteredToken (metadataToken) as MemberInfo;
+                       if (m == null)
+                               throw resolve_token_exception (metadataToken, error, "MemberInfo");
+                       else
+                               return m;
+               }
+
                public override MethodBase ResolveMethod (int metadataToken, Type [] genericTypeArguments, Type [] genericMethodArguments) {
                        ResolveTokenError error;
 
index edf6d58852807e250a372202a96240db1ef8aa41..9eff8440e156e0f529df1291592e687f10bcd466 100644 (file)
@@ -448,6 +448,12 @@ namespace System.Reflection.Emit
                        return DefineNestedType (name, attr, parent, null, packSize, UnspecifiedTypeSize);
                }
 
+               public TypeBuilder DefineNestedType (string name, TypeAttributes attr, Type parent, PackingSize packSize,
+                                                    int typeSize)
+               {
+                       return DefineNestedType (name, attr, parent, null, packSize, typeSize);
+               }
+
                [ComVisible (true)]
                public ConstructorBuilder DefineConstructor (MethodAttributes attributes, CallingConventions callingConvention, Type[] parameterTypes)
                {
diff --git a/mcs/class/corlib/System.Reflection/ExceptionHandlingClauseOptions.cs b/mcs/class/corlib/System.Reflection/ExceptionHandlingClauseOptions.cs
deleted file mode 100644 (file)
index 13b5ded..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-//
-// System.Reflection/ExceptionHandlingClauseOptions.cs
-//
-// Author:
-//   Zoltan Varga (vargaz@gmail.com)
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-
-using System;
-using System.Runtime.InteropServices;
-
-namespace System.Reflection {
-
-       [ComVisible (true)]
-       [Flags]
-       public enum ExceptionHandlingClauseOptions {
-               Clause = 0x0,
-               Filter = 0x1,
-               Finally = 0x2,
-               Fault = 0x4
-       }
-
-}
index b87647cd80e69dc2ed2f3dbd3025b5238b12d8e2..876de83bff0a9c2a5758d2d4f3babd590c34e9b9 100644 (file)
@@ -69,12 +69,28 @@ namespace System.Reflection {
                        }
                }
 
+               public override Module Module {
+                       get {
+                               return GetRuntimeModule ();
+                       }
+               }
+
+               internal RuntimeType GetDeclaringTypeInternal ()
+               {
+                       return (RuntimeType) DeclaringType;
+               }
+
                RuntimeType ReflectedTypeInternal {
                        get {
                                return (RuntimeType) ReflectedType;
                        }
                }
 
+               internal RuntimeModule GetRuntimeModule ()
+               {
+                       return GetDeclaringTypeInternal ().GetRuntimeModule ();
+               }
+
         #region ISerializable
         public void GetObjectData(SerializationInfo info, StreamingContext context)
         {
index 0f28d20d5c7fac4cb79f68ba57c325e193aff128..87310b19e2fa8d22835a84f4e05b3d75e0d9b932 100644 (file)
@@ -82,12 +82,28 @@ namespace System.Reflection {
                        }
                }
 
+               public override Module Module {
+                       get {
+                               return GetRuntimeModule ();
+                       }
+               }
+
+               internal RuntimeType GetDeclaringTypeInternal ()
+               {
+                       return (RuntimeType) DeclaringType;
+               }
+
                RuntimeType ReflectedTypeInternal {
                        get {
                                return (RuntimeType) ReflectedType;
                        }
                }
 
+               internal RuntimeModule GetRuntimeModule ()
+               {
+                       return GetDeclaringTypeInternal ().GetRuntimeModule ();
+               }
+
         #region Object Overrides
         public override String ToString()
         {
index 4f52d1a49e29c505b0e8b93cd70fe7ac9e2fd74b..3507b2d46371500d8667a0920af9069da2ae9340 100644 (file)
@@ -231,7 +231,9 @@ namespace System.Runtime.CompilerServices
                                {
                                        for (int i = 0; i < data.Length; ++i)
                                        {
-                                               list.Add ((TKey) data [i].key);
+                                               TKey key = (TKey) data [i].key;
+                                               if (key != null)
+                                                       list.Add (key);
                                        }
                                }
                                return list;
index 35dd8f5858afce346da2aeeb03671031b0252509..d94abd59f38704967dabba3f322a2023726e38c9 100644 (file)
@@ -86,6 +86,9 @@ namespace System.Runtime.Remoting.Contexts {
 
                [MethodImpl (MethodImplOptions.InternalCall)]
                extern static void RegisterContext (Context ctx);
+
+               [MethodImpl (MethodImplOptions.InternalCall)]
+               extern static void ReleaseContext (Context ctx);
                
                public Context ()
                {
@@ -97,6 +100,7 @@ namespace System.Runtime.Remoting.Contexts {
 
                ~Context ()
                {
+                       ReleaseContext (this);
                }
 
                public static Context DefaultContext {
index 026f46c3797430f24db8ba3911b8a03bd84749fd..c5cda6920d2edc3729e325bd3228629350ef94ae 100644 (file)
@@ -192,9 +192,14 @@ namespace System.Threading
                [MethodImplAttribute(MethodImplOptions.InternalCall)]
                extern static void try_enter_with_atomic_var (object obj, int millisecondsTimeout, ref bool lockTaken);
 
+               [MethodImplAttribute(MethodImplOptions.InternalCall)]
+               extern static void enter_with_atomic_var (object obj, ref bool lockTaken);
+
+               // Can't make this an icall since it has the same name as the other Enter method
+               [MethodImpl(MethodImplOptions.AggressiveInlining)]
                public static void Enter (object obj, ref bool lockTaken)
                {
-                       TryEnter (obj, Timeout.Infinite, ref lockTaken);
+                       enter_with_atomic_var (obj, ref lockTaken);
                }
 
                public static void TryEnter (object obj, ref bool lockTaken)
index 0fa44e1eede7b09cc81520e8778473cefdb88552..44d0f8491ffa3307368ff57ad0abc73435c453af 100644 (file)
@@ -90,7 +90,6 @@ namespace System.Threading {
                private IntPtr interrupt_on_stop;
                private IntPtr flags;
                private IntPtr thread_pinning_ref;
-               private IntPtr async_invoke_method;
                /* 
                 * These fields are used to avoid having to increment corlib versions
                 * when a new field is added to the unmanaged MonoThread structure.
diff --git a/mcs/class/corlib/System.Threading/ThreadPool.cs b/mcs/class/corlib/System.Threading/ThreadPool.cs
deleted file mode 100644 (file)
index eb01abf..0000000
+++ /dev/null
@@ -1,356 +0,0 @@
-//
-// System.Threading.ThreadPool.cs
-//
-// Author:
-//   Patrik Torstensson
-//   Dick Porter (dick@ximian.com)
-//   Maurer Dietmar (dietmar@ximian.com)
-//
-// (C) Ximian, Inc.  http://www.ximian.com
-// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Collections;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Runtime.CompilerServices;
-using System.Runtime.Remoting.Messaging;
-using System.Runtime.InteropServices;
-using System.Security;
-using System.Security.Permissions;
-
-namespace System.Threading {
-
-       public static class ThreadPool {
-
-               [Obsolete("This method is obsolete, use BindHandle(SafeHandle) instead")]
-               public static bool BindHandle (IntPtr osHandle)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               return Microsoft.ThreadPool.BindHandle (osHandle);
-                       else
-                               return true;
-               }
-
-               public static bool BindHandle (SafeHandle osHandle)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool) {
-                               return Microsoft.ThreadPool.BindHandle (osHandle);
-                       } else {
-                               if (osHandle == null)
-                                       throw new ArgumentNullException ("osHandle");
-                       
-                               return true;
-                       }
-               }
-
-               public static void GetAvailableThreads (out int workerThreads, out int completionPortThreads)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               Microsoft.ThreadPool.GetAvailableThreads (out workerThreads, out completionPortThreads);
-                       else
-                               GetAvailableThreads_internal (out workerThreads, out completionPortThreads);
-               }
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               static extern void GetAvailableThreads_internal (out int workerThreads, out int completionPortThreads);
-
-               public static void GetMaxThreads (out int workerThreads, out int completionPortThreads)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               Microsoft.ThreadPool.GetMaxThreads (out workerThreads, out completionPortThreads);
-                       else
-                               GetMaxThreads_internal (out workerThreads, out completionPortThreads);
-               }
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               static extern void GetMaxThreads_internal (out int workerThreads, out int completionPortThreads);
-
-               public static void GetMinThreads (out int workerThreads, out int completionPortThreads)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               Microsoft.ThreadPool.GetMinThreads (out workerThreads, out completionPortThreads);
-                       else
-                               GetMinThreads_internal (out workerThreads, out completionPortThreads);
-               }
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               static extern void GetMinThreads_internal (out int workerThreads, out int completionPortThreads);
-
-               [MonoTODO("The min number of completion port threads is not evaluated.")]
-               [SecurityPermission (SecurityAction.Demand, ControlThread=true)]
-               public static bool SetMinThreads (int workerThreads, int completionPortThreads)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               return Microsoft.ThreadPool.SetMinThreads (workerThreads, completionPortThreads);
-                       else
-                               return SetMinThreads_internal (workerThreads, completionPortThreads);
-               }
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               static extern bool SetMinThreads_internal (int workerThreads, int completionPortThreads);
-
-               [SecurityPermission (SecurityAction.Demand, ControlThread=true)]
-               public static bool SetMaxThreads (int workerThreads, int completionPortThreads)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               return Microsoft.ThreadPool.SetMaxThreads (workerThreads, completionPortThreads);
-                       else
-                               return SetMaxThreads_internal (workerThreads, completionPortThreads);
-               }
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               static extern bool SetMaxThreads_internal (int workerThreads, int completionPortThreads);
-
-               public static bool QueueUserWorkItem (WaitCallback callBack)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               return Microsoft.ThreadPool.QueueUserWorkItem (callBack, null);
-                       else
-                               return QueueUserWorkItem (callBack, null);
-               }
-
-               public static bool QueueUserWorkItem (WaitCallback callBack, object state)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool) {
-                               return Microsoft.ThreadPool.QueueUserWorkItem (callBack, state);
-                       } else {
-                               if (callBack == null)
-                                       throw new ArgumentNullException ("callBack");
-
-                               if (callBack.IsTransparentProxy ()) {
-                                       IAsyncResult ar = callBack.BeginInvoke (state, null, null);
-                                       if (ar == null)
-                                               return false;
-                               } else {
-                                       AsyncResult ares = new AsyncResult (callBack, state, !ExecutionContext.IsFlowSuppressed());
-                                       pool_queue (ares);
-                               }
-                               return true;
-                       }
-               }
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               static extern void pool_queue (AsyncResult ares);
-
-               // TODO: It should be interface interface only to avoid extra allocation
-               internal static void QueueWorkItem (WaitCallback callBack, object state)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               Microsoft.ThreadPool.QueueUserWorkItem (callBack, state);
-                       else
-                               pool_queue (new AsyncResult (callBack, state, false));
-               }
-
-               public static RegisteredWaitHandle RegisterWaitForSingleObject (WaitHandle waitObject,
-                                                                               WaitOrTimerCallback callBack,
-                                                                               object state,
-                                                                               int millisecondsTimeOutInterval,
-                                                                               bool executeOnlyOnce)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               return Microsoft.ThreadPool.RegisterWaitForSingleObject (waitObject, callBack, state, millisecondsTimeOutInterval, executeOnlyOnce);
-                       else
-                               return RegisterWaitForSingleObject (waitObject, callBack, state, (long) millisecondsTimeOutInterval, executeOnlyOnce);
-               }
-
-               public static RegisteredWaitHandle RegisterWaitForSingleObject (WaitHandle waitObject,
-                                                                               WaitOrTimerCallback callBack,
-                                                                               object state,
-                                                                               long millisecondsTimeOutInterval,
-                                                                               bool executeOnlyOnce)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool) {
-                               return Microsoft.ThreadPool.RegisterWaitForSingleObject (waitObject, callBack, state, millisecondsTimeOutInterval, executeOnlyOnce);
-                       } else {
-                               if (waitObject == null)
-                                       throw new ArgumentNullException ("waitObject");
-
-                               if (callBack == null)
-                                       throw new ArgumentNullException ("callBack");
-                       
-                               if (millisecondsTimeOutInterval < -1)
-                                       throw new ArgumentOutOfRangeException ("timeout", "timeout < -1");
-
-                               if (millisecondsTimeOutInterval > Int32.MaxValue)
-                                       throw new NotSupportedException ("Timeout is too big. Maximum is Int32.MaxValue");
-
-                               TimeSpan timeout = new TimeSpan (0, 0, 0, 0, (int) millisecondsTimeOutInterval);
-                       
-                               RegisteredWaitHandle waiter = new RegisteredWaitHandle (waitObject, callBack, state,
-                                                                                       timeout, executeOnlyOnce);
-                               QueueUserWorkItem (new WaitCallback (waiter.Wait), null);
-                               return waiter;
-                       }
-               }
-
-               public static RegisteredWaitHandle RegisterWaitForSingleObject (WaitHandle waitObject,
-                                                                               WaitOrTimerCallback callBack,
-                                                                               object state,
-                                                                               TimeSpan timeout,
-                                                                               bool executeOnlyOnce)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               return Microsoft.ThreadPool.RegisterWaitForSingleObject (waitObject, callBack, state, timeout, executeOnlyOnce);
-                       else
-                               return RegisterWaitForSingleObject (waitObject, callBack, state, (long) timeout.TotalMilliseconds, executeOnlyOnce);
-
-               }
-
-               [CLSCompliant(false)]
-               public static RegisteredWaitHandle RegisterWaitForSingleObject (WaitHandle waitObject,
-                                                                               WaitOrTimerCallback callBack,
-                                                                               object state,
-                                                                               uint millisecondsTimeOutInterval,
-                                                                               bool executeOnlyOnce)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               return Microsoft.ThreadPool.RegisterWaitForSingleObject (waitObject, callBack, state, millisecondsTimeOutInterval, executeOnlyOnce);
-                       else
-                               return RegisterWaitForSingleObject (waitObject, callBack, state, (long) millisecondsTimeOutInterval, executeOnlyOnce);
-               }
-
-               [CLSCompliant (false)]
-               unsafe public static bool UnsafeQueueNativeOverlapped (NativeOverlapped *overlapped)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               return Microsoft.ThreadPool.UnsafeQueueNativeOverlapped (overlapped);
-                       else
-                               throw new NotImplementedException ();
-               }
-
-#if !NET_2_1 || MOBILE
-
-               [SecurityPermission (SecurityAction.Demand, ControlEvidence=true, ControlPolicy=true)]
-               public static bool UnsafeQueueUserWorkItem (WaitCallback callBack, object state)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool) {
-                               return Microsoft.ThreadPool.UnsafeQueueUserWorkItem (callBack, state);
-                       } else {
-                               if (callBack == null)
-                                       throw new ArgumentNullException ("callBack");
-
-                               // no stack propagation here (that's why it's unsafe and requires extra security permissions)
-                               if (!callBack.IsTransparentProxy ()) {
-                                       AsyncResult ares = new AsyncResult (callBack, state, false);
-                                       pool_queue (ares);
-                                       return true;
-                               }
-                               try {
-                                       if (!ExecutionContext.IsFlowSuppressed ())
-                                               ExecutionContext.SuppressFlow (); // on current thread only
-                                       IAsyncResult ar = callBack.BeginInvoke (state, null, null);
-                                       if (ar == null)
-                                               return false;
-                               } finally {
-                                       if (ExecutionContext.IsFlowSuppressed ())
-                                               ExecutionContext.RestoreFlow ();
-                               }
-                               return true;
-                       }
-               }
-               
-               [MonoTODO("Not implemented")]
-               [SecurityPermission (SecurityAction.Demand, ControlEvidence=true, ControlPolicy=true)]
-               public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (WaitHandle waitObject,
-                       WaitOrTimerCallback callBack, object state, int millisecondsTimeOutInterval,
-                       bool executeOnlyOnce) 
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               return Microsoft.ThreadPool.UnsafeRegisterWaitForSingleObject (waitObject, callBack, state, millisecondsTimeOutInterval, executeOnlyOnce);
-                       else
-                               throw new NotImplementedException ();
-               }
-               
-               [MonoTODO("Not implemented")]
-               [SecurityPermission (SecurityAction.Demand, ControlEvidence=true, ControlPolicy=true)]
-               public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (WaitHandle waitObject,
-                       WaitOrTimerCallback callBack, object state, long millisecondsTimeOutInterval,
-                       bool executeOnlyOnce) 
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               return Microsoft.ThreadPool.UnsafeRegisterWaitForSingleObject (waitObject, callBack, state, millisecondsTimeOutInterval, executeOnlyOnce);
-                       else
-                               throw new NotImplementedException ();
-               }
-
-               [MonoTODO("Not implemented")]
-               [SecurityPermission (SecurityAction.Demand, ControlEvidence=true, ControlPolicy=true)]
-               public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (WaitHandle waitObject,
-                       WaitOrTimerCallback callBack, object state, TimeSpan timeout,
-                       bool executeOnlyOnce) 
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               return Microsoft.ThreadPool.UnsafeRegisterWaitForSingleObject (waitObject, callBack, state, timeout, executeOnlyOnce);
-                       else
-                               throw new NotImplementedException ();
-               }
-
-               [MonoTODO("Not implemented")]
-               [CLSCompliant (false)]
-               [SecurityPermission (SecurityAction.Demand, ControlEvidence=true, ControlPolicy=true)]
-               public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (WaitHandle waitObject,
-                       WaitOrTimerCallback callBack, object state, uint millisecondsTimeOutInterval,
-                       bool executeOnlyOnce) 
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               return Microsoft.ThreadPool.UnsafeRegisterWaitForSingleObject (waitObject, callBack, state, millisecondsTimeOutInterval, executeOnlyOnce);
-                       else
-                               throw new NotImplementedException ();
-               }
-
-#endif
-
-#region ReferenceSources
-               // Extracted from ../../../../external/referencesource/mscorlib/system/threading/threadpool.cs
-               internal static void UnsafeQueueCustomWorkItem(IThreadPoolWorkItem workItem, bool forceGlobal)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               Microsoft.ThreadPool.UnsafeQueueCustomWorkItem (workItem, forceGlobal);
-                       else
-                               QueueWorkItem ((obj) => ((IThreadPoolWorkItem)obj).ExecuteWorkItem (), workItem);
-               }
-
-               internal static IEnumerable<IThreadPoolWorkItem> GetQueuedWorkItems()
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               return Microsoft.ThreadPool.GetQueuedWorkItems ();
-                       else
-                               return new IThreadPoolWorkItem [0];
-               }
-
-               internal static bool TryPopCustomWorkItem(IThreadPoolWorkItem workItem)
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               return Microsoft.ThreadPool.TryPopCustomWorkItem (workItem);
-                       else
-                               return false;
-               }
-
-               internal static void NotifyWorkItemProgress()
-               {
-                       if (Microsoft.ThreadPool.UseMicrosoftThreadPool)
-                               Microsoft.ThreadPool.NotifyWorkItemProgress ();
-               }
-#endregion
-       }
-}
index 780cb9a140db65a2fb62789214ea5229874e8aaf..9efb484e3d85b6ec614f57c271d15f35eb8e96ff 100644 (file)
@@ -347,7 +347,7 @@ namespace System.Threading
                                                        list.RemoveAt (i);
                                                        count--;
                                                        i--;
-                                                       ThreadPool.QueueWorkItem (TimerCB, timer);
+                                                       ThreadPool.UnsafeQueueUserWorkItem (TimerCB, timer);
                                                        long period = timer.period_ms;
                                                        long due_time = timer.due_time_ms;
                                                        bool no_more = (period == -1 || ((period == 0 || period == Timeout.Infinite) && due_time != Timeout.Infinite));
diff --git a/mcs/class/corlib/System/AppContext.cs b/mcs/class/corlib/System/AppContext.cs
new file mode 100644 (file)
index 0000000..43e888a
--- /dev/null
@@ -0,0 +1,34 @@
+//
+// AppContext.cs
+//
+// Authors:
+//     Marek Safar  <marek.safar@gmail.com>
+//
+// Copyright (C) 2015 Xamarin Inc (http://www.xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+namespace System
+{
+       public static class AppContext
+       {
+       }
+}
\ No newline at end of file
index 97642c44dedef3edaa2397b3eec0dc2c07315703..c6b01d789c92fb67ef1b4e0e4a7bcdd8d000caa1 100644 (file)
@@ -57,7 +57,7 @@ namespace System {
                 * of icalls, do not require an increment.
                 */
 #pragma warning disable 169
-               private const int mono_corlib_version = 134;
+               private const int mono_corlib_version = 135;
 #pragma warning restore 169
 
                [ComVisible (true)]
diff --git a/mcs/class/corlib/System/Math.cs b/mcs/class/corlib/System/Math.cs
deleted file mode 100644 (file)
index 3ba4b62..0000000
+++ /dev/null
@@ -1,504 +0,0 @@
-//
-// System.Math.cs
-//
-// Authors:
-//   Bob Smith (bob@thestuff.net)
-//   Dan Lewis (dihlewis@yahoo.co.uk)
-//   Pedro Martínez Juliá (yoros@wanadoo.es)
-//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-// (C) 2001 Bob Smith.  http://www.thestuff.net
-// Copyright (C) 2003 Pedro Martínez Juliá <yoros@wanadoo.es>
-// Copyright (C) 2004 Novell (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Runtime.CompilerServices;
-using System.Runtime.ConstrainedExecution;
-
-namespace System
-{
-       public static class Math
-       {
-               public const double E = 2.7182818284590452354;
-               public const double PI = 3.14159265358979323846;
-
-               public static decimal Abs (decimal value)
-               {
-                       return (value < 0)? -value: value;
-               }
-
-               public static double Abs (double value)
-               {
-                       return (value < 0)? -value: value;
-               }
-
-               public static float Abs (float value)
-               {
-                       return (value < 0)? -value: value;
-               }
-
-               public static int Abs (int value)
-               {
-                       if (value == Int32.MinValue)
-                               throw new OverflowException (Locale.GetText ("Value is too small."));
-                       return (value < 0)? -value: value;
-               }
-
-               public static long Abs (long value)
-               {
-                       if (value == Int64.MinValue)
-                               throw new OverflowException (Locale.GetText ("Value is too small."));
-                       return (value < 0)? -value: value;
-               }
-
-               [CLSCompliant (false)]
-               public static sbyte Abs (sbyte value)
-               {
-                       if (value == SByte.MinValue)
-                               throw new OverflowException (Locale.GetText ("Value is too small."));
-                       return (sbyte)((value < 0)? -value: value);
-               }
-
-               public static short Abs (short value)
-               {
-                       if (value == Int16.MinValue)
-                               throw new OverflowException (Locale.GetText ("Value is too small."));
-                       return (short)((value < 0)? -value: value);
-               }
-
-               public static decimal Ceiling (decimal d)
-               {
-                       decimal result = Floor(d);
-                       if (result != d) {
-                               result++;
-                       }
-                       return result;
-               }
-
-               public static double Ceiling (double a)
-               {
-                       double result = Floor(a);
-                       if (result != a) {
-                               result++;
-                       }
-                       return result;
-               }
-
-               // The following methods are defined in ECMA specs but they are
-               // not implemented in MS.NET. However, they are in MS.NET 1.1
-
-               public static long BigMul (int a, int b)
-               {
-                       return ((long)a * (long)b);
-               }
-
-               public static int DivRem (int a, int b, out int result)
-               {
-                       result = (a % b);
-                       return (int)(a / b);
-               }
-
-               public static long DivRem (long a, long b, out long result)
-               {
-                       result = (a % b);
-                       return (long)(a / b);
-               }
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static double Floor (double d);
-
-               public static double IEEERemainder (double x, double y)
-               {
-                       double r;
-                       if (y == 0)
-                               return Double.NaN;
-                       r = x - (y * Math.Round(x/y));
-                       if (r != 0)
-                               return r;
-                       /* Int64BitsToDouble is not endian-aware, but that is fine here */
-                       return (x > 0) ? 0: (BitConverter.Int64BitsToDouble (Int64.MinValue));
-               }
-
-               public static double Log (double a, double newBase)
-               {
-                       if (newBase == 1.0)
-                               return Double.NaN;
-                       double result = Log(a) / Log(newBase);
-                       return (result == -0)? 0: result;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               public static byte Max (byte val1, byte val2)
-               {
-                       return (val1 > val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               public static decimal Max (decimal val1, decimal val2)
-               {
-                       return (val1 > val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               public static double Max (double val1, double val2)
-               {
-                       if (Double.IsNaN (val1) || Double.IsNaN (val2)) {
-                               return Double.NaN;
-                       }
-                       return (val1 > val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               public static float Max (float val1, float val2)
-               {
-                       if (Single.IsNaN (val1) || Single.IsNaN (val2)) {
-                               return Single.NaN;
-                       }
-                       return (val1 > val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               public static int Max (int val1, int val2)
-               {
-                       return (val1 > val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               public static long Max (long val1, long val2)
-               {
-                       return (val1 > val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               [CLSCompliant (false)]
-               public static sbyte Max (sbyte val1, sbyte val2)
-               {
-                       return (val1 > val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               public static short Max (short val1, short val2)
-               {
-                       return (val1 > val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               [CLSCompliant (false)]
-               public static uint Max (uint val1, uint val2)
-               {
-                       return (val1 > val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               [CLSCompliant (false)]
-               public static ulong Max (ulong val1, ulong val2)
-               {
-                       return (val1 > val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               [CLSCompliant (false)]
-               public static ushort Max (ushort val1, ushort val2)
-               {
-                       return (val1 > val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               public static byte Min (byte val1, byte val2)
-               {
-                       return (val1 < val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               public static decimal Min (decimal val1, decimal val2)
-               {
-                       return (val1 < val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               public static double Min (double val1, double val2)
-               {
-                       if (Double.IsNaN (val1) || Double.IsNaN (val2)) {
-                               return Double.NaN;
-                       }
-                       return (val1 < val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               public static float Min (float val1, float val2)
-               {
-                       if (Single.IsNaN (val1) || Single.IsNaN (val2)) {
-                               return Single.NaN;
-                       }
-                       return (val1 < val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               public static int Min (int val1, int val2)
-               {
-                       return (val1 < val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               public static long Min (long val1, long val2)
-               {
-                       return (val1 < val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               [CLSCompliant (false)]
-               public static sbyte Min (sbyte val1, sbyte val2)
-               {
-                       return (val1 < val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               public static short Min (short val1, short val2)
-               {
-                       return (val1 < val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               [CLSCompliant (false)]
-               public static uint Min (uint val1, uint val2)
-               {
-                       return (val1 < val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               [CLSCompliant (false)]
-               public static ulong Min (ulong val1, ulong val2)
-               {
-                       return (val1 < val2)? val1: val2;
-               }
-
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               [CLSCompliant (false)]
-               public static ushort Min (ushort val1, ushort val2)
-               {
-                       return (val1 < val2)? val1: val2;
-               }
-
-               public static decimal Round (decimal d)
-               {
-                       // Just call Decimal.Round(d, 0); when it rounds well.
-                       decimal int_part = Decimal.Floor(d);
-                       decimal dec_part = d - int_part;
-                       if (((dec_part == 0.5M) &&
-                               ((2.0M * ((int_part / 2.0M) -
-                               Decimal.Floor(int_part / 2.0M))) != 0.0M)) ||
-                               (dec_part > 0.5M)) {
-                               int_part++;
-                       }
-                       return int_part;
-               }
-
-               public static decimal Round (decimal d, int decimals)
-               {
-                       return Decimal.Round (d, decimals);
-               }
-
-               public static decimal Round (decimal d, MidpointRounding mode)
-               {
-                       if ((mode != MidpointRounding.ToEven) && (mode != MidpointRounding.AwayFromZero))
-                               throw new ArgumentException ("The value '" + mode + "' is not valid for this usage of the type MidpointRounding.", "mode");
-
-                       if (mode == MidpointRounding.ToEven)
-                               return Round (d);
-                       else
-                               return RoundAwayFromZero (d);
-               }
-
-               static decimal RoundAwayFromZero (decimal d)
-               {
-                       decimal int_part = Decimal.Floor(d);
-                       decimal dec_part = d - int_part;
-                       if (int_part >= 0 && dec_part >= 0.5M)
-                               int_part++;
-                       else if (int_part < 0 && dec_part > 0.5M)
-                               int_part++;
-                       return int_part;
-               }
-
-               public static decimal Round (decimal d, int decimals, MidpointRounding mode)
-               {
-                       return Decimal.Round (d, decimals, mode);
-               }
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static double Round (double a);
-
-               public static double Round (double value, int digits)
-               {
-                       if (digits < 0 || digits > 15)
-                               throw new ArgumentOutOfRangeException (Locale.GetText ("Value is too small or too big."));
-                       if (digits == 0)
-                               return Round (value);
-
-                       return Round2(value, digits, false);
-               }
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               private extern static double Round2 (double value, int digits, bool away_from_zero);
-
-
-               public static double Round (double value, MidpointRounding mode)
-               {
-                       if ((mode != MidpointRounding.ToEven) && (mode != MidpointRounding.AwayFromZero))
-                               throw new ArgumentException ("The value '" + mode + "' is not valid for this usage of the type MidpointRounding.", "mode");
-
-                       if (mode == MidpointRounding.ToEven)
-                               return Round (value);
-                       if (value > 0)
-                               return Floor (value + 0.5);
-                       else
-                               return Ceiling (value - 0.5);
-               }
-
-               public static double Round (double value, int digits, MidpointRounding mode)
-               {
-                       if ((mode != MidpointRounding.ToEven) && (mode != MidpointRounding.AwayFromZero))
-                               throw new ArgumentException ("The value '" + mode + "' is not valid for this usage of the type MidpointRounding.", "mode");
-                       if (digits == 0)
-                               return Round (value, mode);
-
-                       if (mode == MidpointRounding.ToEven)
-                               return Round (value, digits);
-                       else
-                               return Round2 (value, digits, true);
-               }
-               
-               public static double Truncate (double d)
-               {
-                       if (d > 0D)
-                               return Floor (d);
-                       else if (d < 0D)
-                               return Ceiling (d);
-                       else
-                               return d;
-               }
-
-               public static decimal Truncate (decimal d)
-               {
-                       return Decimal.Truncate (d);
-               }
-
-               public static decimal Floor (Decimal d)
-               {
-                       return Decimal.Floor (d);
-               }
-
-               public static int Sign (decimal value)
-               {
-                       if (value > 0) return 1;
-                       return (value == 0)? 0: -1;
-               }
-
-               public static int Sign (double value)
-               {
-                       if (Double.IsNaN (value))
-                               throw new ArithmeticException ("NAN");
-                       if (value > 0) return 1;
-                       return (value == 0)? 0: -1;
-               }
-
-               public static int Sign (float value)
-               {
-                       if (Single.IsNaN (value))
-                               throw new ArithmeticException ("NAN");
-                       if (value > 0) return 1;
-                       return (value == 0)? 0: -1;
-               }
-
-               public static int Sign (int value)
-               {
-                       if (value > 0) return 1;
-                       return (value == 0)? 0: -1;
-               }
-
-               public static int Sign (long value)
-               {
-                       if (value > 0) return 1;
-                       return (value == 0)? 0: -1;
-               }
-
-               [CLSCompliant (false)]
-               public static int Sign (sbyte value)
-               {
-                       if (value > 0) return 1;
-                       return (value == 0)? 0: -1;
-               }
-
-               public static int Sign (short value)
-               {
-                       if (value > 0) return 1;
-                       return (value == 0)? 0: -1;
-               }
-
-               // internal calls
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static double Sin (double a);
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static double Cos (double d);
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static double Tan (double a);
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static double Sinh (double value);
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static double Cosh (double value);
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static double Tanh (double value);
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static double Acos (double d);
-               
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static double Asin (double d);
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static double Atan (double d);
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static double Atan2 (double y, double x);
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static double Exp (double d);
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static double Log (double d);
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static double Log10 (double d);
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static double Pow (double x, double y);
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
-               public extern static double Sqrt (double d);
-       }
-}
index 717bfa77c76f088a90578bb57be795b567fda494..3f0a069fa06f955fe23655bbd3e22ec0f21559b5 100644 (file)
@@ -116,11 +116,11 @@ namespace System
 
                        try {
                                return FindSystemTimeZoneByFileName ("Local", "/etc/localtime");        
-                       } catch {
+                       } catch (TimeZoneNotFoundException) {
                                try {
                                        return FindSystemTimeZoneByFileName ("Local", Path.Combine (TimeZoneDirectory, "localtime"));   
-                               } catch {
-                                       return null;
+                               } catch (TimeZoneNotFoundException) {
+                                       return Utc;
                                }
                        }
                }
@@ -150,7 +150,7 @@ namespace System
 #endif
 
 #if LIBC
-                       string[] continents = new string [] {"Africa", "America", "Antarctica", "Arctic", "Asia", "Atlantic", "Brazil", "Canada", "Chile", "Europe", "Indian", "Mexico", "Mideast", "Pacific", "US"};
+                       string[] continents = new string [] {"Africa", "America", "Antarctica", "Arctic", "Asia", "Atlantic", "Australia", "Brazil", "Canada", "Chile", "Europe", "Indian", "Mexico", "Mideast", "Pacific", "US"};
                        foreach (string continent in continents) {
                                try {
                                        foreach (string zonepath in Directory.GetFiles (Path.Combine (TimeZoneDirectory, continent))) {
index 7279f715f7b56052c864f30e9d57bc1123818ad0..7479bc775b28da65130781710df3ce18d64e9e33 100755 (executable)
@@ -657,7 +657,6 @@ namespace MonoTests.Microsoft.Win32
                        }
                }
 
-#if NET_4_0
                // Unfortunately we can't test that the scenario where a volatile
                // key is not alive after a reboot, but we can test other bits.
                [Test]
@@ -818,7 +817,6 @@ namespace MonoTests.Microsoft.Win32
                        }
 
                }
-#endif
 
                [Test]
                public void DeleteSubKey ()
@@ -1109,7 +1107,6 @@ namespace MonoTests.Microsoft.Win32
                        }
                }
 
-#if NET_4_0
                [Test]
                public void DeleteSubKeyTree_Key_DoesNotExist_Overload ()
                {
@@ -1128,7 +1125,6 @@ namespace MonoTests.Microsoft.Win32
                        // It's enough to know this line is not throwing an exception.
                        Registry.CurrentUser.DeleteSubKey (subKeyName, false);
                }
-#endif
 
                [Test]
                public void DeleteSubKeyTree_Key_ReadOnly ()
@@ -1658,7 +1654,6 @@ namespace MonoTests.Microsoft.Win32
                        }
                }
 
-#if NET_4_0
                [DllImport ("advapi32.dll", CharSet = CharSet.Unicode)]
                static extern int RegOpenKeyEx (IntPtr keyBase, string keyName, IntPtr reserved, int access, out IntPtr keyHandle);
         
@@ -1752,7 +1747,6 @@ namespace MonoTests.Microsoft.Win32
                                }
                        }
                }
-#endif
 
                [Test]
                public void GetValue ()
index 70ca28d1ed5b9211c8f40c083d1e2c3155120353..4a314e738fc68bdecafe860344a0245aedcd8645 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // 
 // CollectionStressTestHelper.cs
 //  
@@ -126,4 +125,3 @@ namespace MonoTests.System.Collections.Concurrent
                }
        }
 }
-#endif
index e38c904590094c4d205afd198fea736b31ea4bdd..70c250d015da682354eb25b303d108380f06759e 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // ConcurrentDictionaryTests.cs
 //
 // Copyright (c) 2008 Jérémie "Garuma" Laval
@@ -368,4 +367,3 @@ namespace MonoTests.System.Collections.Concurrent
                }
        }
 }
-#endif
index 91436a05b2127ccce3817228f27378facd793db7..a6351e511f3a440738dca3d39766f6aca7ca8a2a 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // ConcurrentQueueTest.cs
 //
 // Copyright (c) 2008 Jérémie "Garuma" Laval
@@ -270,4 +269,3 @@ namespace MonoTests.System.Collections.Concurrent
                }
        }
 }
-#endif
index ad22068717538591f3c024248ee7673940d6cac2..4086ede09d1b0941e7ce1887dd22da9eab99e6ac 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // ConcurrentStackTests.cs
 //
 // Copyright (c) 2008 Jérémie "Garuma" Laval
@@ -303,4 +302,3 @@ namespace MonoTests.System.Collections.Concurrent
                }
        }
 }
-#endif
index 32c6b483b99dfd642bac2b2ac02d3700231e6b9d..5f5abb60de01ba3664ec9fdac895960445fb8cd1 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // ParallelConcurrentQueueTests.cs
 //
 // Copyright (c) 2008 Jérémie "Garuma" Laval
@@ -56,4 +55,3 @@ namespace MonoTests.System.Collections.Concurrent
                }
        }
 }
-#endif
index 3d1918461f2b6337787b62b179ece4140f35f316..ef7758c244d8d04087b903bcf9f21f49a8a0b6b0 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // ParallelConcurrentStackTests.cs
 //
 // Copyright (c) 2008 Jérémie "Garuma" Laval
@@ -59,4 +58,3 @@ namespace MonoTests.System.Collections.Concurrent
                }
        }
 }
-#endif
index 99ada6548b2d5b75b496a6484d570dc958cb7e33..9cd2d1e11136e2e8cb6841595af01cb0ba7f71e9 100644 (file)
@@ -24,7 +24,6 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
-#if NET_4_0
 
 using System;
 using System.Collections.Generic;
@@ -93,4 +92,3 @@ namespace MonoTests.System.Collections.Concurrent
                }
        }
 }
-#endif
index 1aaad7d022c5f1967689d30d80d2df7f7757541b..b5d78b7571eb7790a9669ef86e28fd90d39d942e 100644 (file)
@@ -95,25 +95,6 @@ namespace MonoTests.System.Collections.Generic
                }
 
 
-#if !NET_4_0 // FIXME: the blob contains the 2.0 mscorlib version
-
-               [Test] // bug #80929
-               public void SerializeDefault ()
-               {
-                       Comparer<int> c = Comparer<int>.Default;
-
-                       BinaryFormatter bf = new BinaryFormatter ();
-                       MemoryStream ms = new MemoryStream ();
-                       bf.Serialize (ms, c);
-
-                       byte [] buffer = new byte [ms.Length];
-                       ms.Position = 0;
-                       ms.Read (buffer, 0, buffer.Length);
-
-                       Assert.AreEqual (_serializedDefault, buffer);
-               }
-
-#endif
 
                [Test]
                public void DeserializeDefault ()
index 836e72e493760457d76a421efce279fc1355cc5f..be1f8f92729705b768877e3376a82ebb6e1ae6f7 100644 (file)
@@ -342,28 +342,6 @@ namespace MonoTests.System.Collections.Generic {
                        Assert.AreEqual (- (l.Count + 1), l.BinarySearch (int.MaxValue));
                }
 
-#if !NET_4_0 // FIXME: the blob contains the 2.0 mscorlib version
-
-               [Test]
-               public void SerializeTest ()
-               {
-                       List <int> list = new List <int> ();
-                       list.Add (5);
-                       list.Add (0);
-                       list.Add (7);
-
-                       BinaryFormatter bf = new BinaryFormatter ();
-                       MemoryStream ms = new MemoryStream ();
-                       bf.Serialize (ms, list);
-
-                       byte [] buffer = new byte [ms.Length];
-                       ms.Position = 0;
-                       ms.Read (buffer, 0, buffer.Length);
-
-                       Assert.AreEqual (_serializedList, buffer);
-               }
-
-#endif
 
                [Test]
                public void DeserializeTest ()
index 38c9ace965b62331421b5211571084f071fe878c..61b9064e5368fbff8ec41d6c2267b8a7cee82514 100644 (file)
@@ -26,7 +26,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0
 
 using System.Collections;
 using NUnit.Framework;
@@ -52,4 +51,3 @@ namespace MonoTests.System.Collections
        }
 }
 
-#endif
\ No newline at end of file
index f8f3236a7627044f8db852694639d4b14787aa1c..4c7417d53198ee07b7441a5eb1d3b5d5ab371e12 100755 (executable)
@@ -1,4 +1,3 @@
-#if NET_4_0
 
 #define CONTRACTS_FULL
 #define DEBUG
@@ -174,4 +173,3 @@ namespace MonoTests.System.Diagnostics.Contracts {
        }
 }
 
-#endif
index 0d650184f207e86e3315e8faeae8495feeb69a04..c5d5f6df64d64fc56142fb8fa798c93965bda544 100755 (executable)
@@ -1,4 +1,3 @@
-#if NET_4_0
 
 #define CONTRACTS_FULL
 #define DEBUG
@@ -45,4 +44,3 @@ namespace MonoTests.System.Diagnostics.Contracts {
 
 }
 
-#endif
index 81cb1b6387871bd7e8e73acff232014b679bfe0c..7fb3770a50f2e91567603571aaec986488095d95 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 
 #define CONTRACTS_FULL
 #define DEBUG
@@ -126,4 +125,3 @@ namespace MonoTests.System.Diagnostics.Contracts {
 
 }
 
-#endif
index 8e770c4682deb3bbdb38d8c74ee4ddb020f324b9..dd5143c24aff46562f5c85526525e9d540e91241 100755 (executable)
@@ -1,4 +1,3 @@
-#if NET_4_0
 
 #define CONTRACTS_FULL
 #define DEBUG
@@ -255,4 +254,3 @@ namespace MonoTests.System.Diagnostics.Contracts {
 
 }
 
-#endif
index 6ca2d1ab03c231f2494f47919796d4bee756857d..dc130d8fcdf874e3093e46574073cc60440e9d9e 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 
 #define CONTRACTS_FULL
 #define DEBUG
@@ -73,4 +72,3 @@ namespace MonoTests.System.Diagnostics.Contracts {
 
 }
 
-#endif
index 2988b231b7e2b554e8cb8217c2122e4a322de653..4df40ce5a38a2b7a1df100dd2cb67bc7b70c2954 100755 (executable)
@@ -1,4 +1,3 @@
-#if NET_4_0
 
 #define CONTRACTS_FULL
 #define DEBUG
@@ -123,4 +122,3 @@ namespace MonoTests.System.Diagnostics.Contracts {
 
 }
 
-#endif
index 1f6854b2a031e38d951433636d8f26ac5dca32fd..d007b5c5f4a77b4d152d5658aa08369a8e2a9a0b 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 
 using System;
 using System.Collections.Generic;
@@ -15,4 +14,3 @@ namespace MonoTests.System.Diagnostics.Contracts.Helpers {
 
 }
 
-#endif
index 230b7ad412ba837e9a8e02dd7da2805dd5dd8d65..e2df4713ee4d3bf94113585fb17d3338ec24ca5f 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 
 using System;
 using System.Collections.Generic;
@@ -41,4 +40,3 @@ namespace MonoTests.System.Diagnostics.Contracts.Helpers {
        }
 }
 
-#endif
index 560977735bb0aa73fba7a1b6847defbd0f39d029..54b049f343e9ba94159ef0873ee04dde9229039e 100644 (file)
@@ -74,7 +74,6 @@ namespace MonoCasTests.System.Diagnostics {
                        Check (sf, true);
                }
                
-#if !RUN_ONDOTNET || NET_4_0 // Disabled because .net 2 fails to load dll with "Failure decoding embedded permission set object" due to "/" path
                [Test]
                [FileIOPermission (SecurityAction.Deny, PathDiscovery = "/")]
                [ExpectedException (typeof (SecurityException))]
@@ -186,7 +185,6 @@ namespace MonoCasTests.System.Diagnostics {
                        StackFrame sf = new StackFrame ("mono.cs", 1, 1);
                        Check (sf, true);
                }               
-#endif         
 
                [Test]
                [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
index 48a8e76b63d2e9f318fa91ed934f417b125a3c75..32233f269db981b78c76b9dd72551f6667c63a71 100644 (file)
@@ -179,11 +179,7 @@ namespace MonoTests.System.Globalization
                        try {
                                CultureInfo.CreateSpecificCulture ("uy32");
                                Assert.Fail ("#1");
-#if NET_4_0
                        } catch (CultureNotFoundException) {
-#else
-                       } catch (ArgumentException) {
-#endif
                        }
 
                        try {
@@ -200,11 +196,7 @@ namespace MonoTests.System.Globalization
                        CultureInfo ci = new CultureInfo ("nl");
                        try {
                                DateTimeFormatInfo dfi = ci.DateTimeFormat;
-#if NET_4_0
                                Assert.IsNotNull (dfi, "#1");
-#else
-                               Assert.Fail ("#1:" + (dfi != null));
-#endif
                        } catch (NotSupportedException ex) {
                                Assert.AreEqual (typeof (NotSupportedException), ex.GetType (), "#2");
                                Assert.IsNull (ex.InnerException, "#3");
@@ -235,9 +227,6 @@ namespace MonoTests.System.Globalization
                }
 
                [Test]
-#if !NET_4_0
-               [ExpectedException (typeof (NotSupportedException))]
-#endif
                public void TrySetNeutralCultureNotInvariant ()
                {
                        Thread.CurrentThread.CurrentCulture = new CultureInfo ("ar");
@@ -400,11 +389,7 @@ namespace MonoTests.System.Globalization
                        CultureInfo ci = new CultureInfo ("nl");
                        try {
                                NumberFormatInfo nfi = ci.NumberFormat;
-#if NET_4_0
                                Assert.IsNotNull (nfi, "#1");
-#else
-                               Assert.Fail ("#1:" + (nfi != null));
-#endif
                        } catch (NotSupportedException ex) {
                                Assert.AreEqual (typeof (NotSupportedException), ex.GetType (), "#2");
                                Assert.IsNull (ex.InnerException, "#3");
@@ -449,11 +434,7 @@ namespace MonoTests.System.Globalization
                                CultureInfo.GetCultureInfo (666);
                                Assert.Fail ("#1");
                        } catch (ArgumentException ex) {
-#if NET_4_0
                                Assert.AreEqual (typeof (CultureNotFoundException), ex.GetType (), "#2");
-#else
-                               Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
-#endif
                                Assert.IsNull (ex.InnerException, "#3");
                                Assert.IsNotNull (ex.Message, "#4");
                                Assert.IsNotNull (ex.ParamName, "#5");
@@ -483,11 +464,7 @@ namespace MonoTests.System.Globalization
                                CultureInfo.GetCultureInfo ("666");
                                Assert.Fail ("#1");
                        } catch (ArgumentException ex) {
-#if NET_4_0
                                Assert.AreEqual (typeof (CultureNotFoundException), ex.GetType (), "#2");
-#else
-                               Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
-#endif
                                Assert.IsNull (ex.InnerException, "#3");
                                Assert.IsNotNull (ex.Message, "#4");
                                Assert.IsNotNull (ex.ParamName, "#5");
@@ -612,11 +589,7 @@ namespace MonoTests.System.Globalization
                }
                
                [Test]
-#if NET_4_0
                [ExpectedException (typeof (CultureNotFoundException))]
-#else
-               [ExpectedException (typeof (ArgumentException))]
-#endif
                public void CultureNotFound ()
                {
                        // that's how the 'locale' gets defined for a device with an English UI
@@ -625,6 +598,16 @@ namespace MonoTests.System.Globalization
                        new CultureInfo ("en-HK");
                }
 
+               [Test]
+               public void ChineseSimplifiedDontEqual ()
+               {
+                       CultureInfo zh1 = new CultureInfo ("zh-Hans");
+                       CultureInfo zh2 = new CultureInfo ("zh-CHS");
+
+                       Assert.IsFalse (zh1.Equals (zh2), "#1");
+                       Assert.IsFalse (zh2.Equals (zh1), "#2");
+               }
+
 #if NET_4_5
                CountdownEvent barrier = new CountdownEvent (3);
                AutoResetEvent[] evt = new AutoResetEvent [] { new AutoResetEvent (false), new AutoResetEvent (false), new AutoResetEvent (false)};
index 9629dacf4b9ed9dfc4c02243941c19a7a9a8ef84..ee77c153de2dac97953359172d171d988a7f4301 100644 (file)
@@ -77,7 +77,7 @@ public class TextInfoTest {
 
        private void Check (CultureInfo ci, string src, string expected)
        {
-               Assert.AreEqual (expected, ci.TextInfo.ToTitleCase (src), src + " at culture " + ci.LCID);
+               Assert.AreEqual (expected, ci.TextInfo.ToTitleCase (src), src + " at culture " + ci.Name);
        }
 
        private void CompareProperties (TextInfo t1, TextInfo t2, bool compareReadOnly)
index d0bbd5918d1c366a13953e4275032b43d345f665..3ec70c82c26faa1c54f5880b590887d24e4726ca 100644 (file)
@@ -116,7 +116,6 @@ namespace MonoTests.System.IO.IsolatedStorageTest {
                        new IsolatedStorageFileStream ("/rootpath", FileMode.Create);
                }
 
-#if NET_4_0
                [Test]
                public void Constructor_StorageInvalid ()
                {
@@ -143,6 +142,5 @@ namespace MonoTests.System.IO.IsolatedStorageTest {
                        } catch (InvalidOperationException) {
                        }
                }
-#endif
        }
 }
index 96208930b06da6842d29e7ed7889af13c5bdeb99..66eb27ed32407833e14b69f9fc6cb357b4f3d7ab 100644 (file)
@@ -224,7 +224,6 @@ namespace MonoTests.System.IO.IsolatedStorageTest {
                }
 #endif
 
-#if NET_4_0
                // This is supposed to be working only in SL.
                [Test]
                [ExpectedException (typeof (NotSupportedException))]
@@ -232,7 +231,6 @@ namespace MonoTests.System.IO.IsolatedStorageTest {
                {
                        IsolatedStorageFile.GetUserStoreForSite ();
                }
-#endif
 
                [Test]
                public void GetStore_Domain_Zone ()
@@ -457,19 +455,10 @@ namespace MonoTests.System.IO.IsolatedStorageTest {
                                try {
                                        isf.CreateDirectory (path);
                                }
-#if NET_4_0
                                catch (IsolatedStorageException ex) {
                                        Assert.IsFalse (ex.Message.IndexOf (path) >= 0, "Message");
                                        Assert.IsNull (ex.InnerException, "InnerException");
                                }
-#else
-                               catch (IOException ex) {
-                                       Assert.AreEqual (typeof (IOException), ex.GetType (), "Type");
-                                       // don't leak path information
-                                       Assert.IsFalse (ex.Message.IndexOf (path) >= 0, "Message");
-                                       Assert.IsNull (ex.InnerException, "InnerException");
-                               }
-#endif
                        }
                }
 
@@ -498,11 +487,7 @@ namespace MonoTests.System.IO.IsolatedStorageTest {
                }
 
                [Test]
-#if NET_4_0
                [ExpectedException (typeof (ArgumentException))]
-#else
-               [ExpectedException (typeof (SecurityException))]
-#endif
                public void GetFilesInSubdirs ()
                {
                        IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForAssembly ();
@@ -511,7 +496,6 @@ namespace MonoTests.System.IO.IsolatedStorageTest {
                }
 
         
-#if NET_4_0
                [Test]
                [ExpectedException (typeof (ArgumentException))]
                public void GetDirsInSubDirs ()
@@ -520,7 +504,6 @@ namespace MonoTests.System.IO.IsolatedStorageTest {
                        isf.CreateDirectory ("subdir");
                        string [] dir_names = isf.GetDirectoryNames ("subdir/../*");
                }
-#endif
 
                [Test] // https://bugzilla.novell.com/show_bug.cgi?id=376188
                public void CreateSubDirectory ()
@@ -555,7 +538,6 @@ namespace MonoTests.System.IO.IsolatedStorageTest {
                        } catch (ArgumentNullException) {
                        }
 
-#if NET_4_0
                        // We are getting an internal IndexOutOfRangeException in 2.0
                        // Not sure we want to mimic that one.
                        try {
@@ -563,7 +545,6 @@ namespace MonoTests.System.IO.IsolatedStorageTest {
                                Assert.Fail ("#Exc1");
                        } catch (IsolatedStorageException) {
                        }
-#endif
 
                        try {
                                isf.DeleteFile ("idontexist");
@@ -571,13 +552,11 @@ namespace MonoTests.System.IO.IsolatedStorageTest {
                        } catch (IsolatedStorageException) {
                        }
 
-#if NET_4_0
                        try {
                                isf.DeleteFile ("../../file");
                                Assert.Fail ("#Exc3");
                        } catch (IsolatedStorageException) {
                        }
-#endif
                
                        try {
                                isf.DeleteFile ("subdir/file");
@@ -618,7 +597,6 @@ namespace MonoTests.System.IO.IsolatedStorageTest {
                        }
                }
 
-#if NET_4_0
                [Test]
                public void Remove ()
                {
@@ -1056,7 +1034,6 @@ namespace MonoTests.System.IO.IsolatedStorageTest {
                                isf.MoveFile ("  ", "file-new-new");
                                Assert.Fail ("#Exc2");
                        } catch (ArgumentException e) {
-                               Console.WriteLine (e);
                        }
 
                        try {
@@ -1121,7 +1098,6 @@ namespace MonoTests.System.IO.IsolatedStorageTest {
                                isf.DeleteDirectory ("dir1");
                        }
                }
-#endif
                [Test]
                public void RootedDirectory ()
                {
index 6bc4b9f502755309d6aa9251dce08b5671d8b254..a5a0a1cb7d1544f7600a76f882c153f1db609e40 100644 (file)
@@ -245,7 +245,6 @@ namespace MonoTests.System.IO.IsolatedStorageTest {
                        }
                }
 
-#if NET_4_0
                [Test]
                [ExpectedException (typeof (InvalidOperationException))]
                public void IsolatedStorage_UsedSize ()
@@ -278,6 +277,5 @@ namespace MonoTests.System.IO.IsolatedStorageTest {
                        Assert.AreEqual (false, nais.IncreaseQuotaTo (0), "#A1");
                        Assert.AreEqual (false, nais.IncreaseQuotaTo (100), "#A2");
                }
-#endif
        }
 }
index b18345e2dd267efbce7e8b142c6bd1246ef3a775..d6aacac5dc8ba3815d2c0c3e72b7200bf3249b69 100644 (file)
@@ -1054,7 +1054,6 @@ namespace MonoTests.System.IO
                        Assert.AreEqual (TempFolder + DSC + "ToString.Test", info.ToString ());
                }
 
-#if NET_4_0
                [Test]
                public void EnumerateFileSystemInfosTest ()
                {
@@ -1069,7 +1068,6 @@ namespace MonoTests.System.IO
                        l.Sort ();
                        Assert.AreEqual ("1,2,a,b", string.Join (",", l), "#1");
                }
-#endif
 
 #if !MOBILE
                [Test]
index 78e7a96f4782bea52aac333658c0d4d662383439..64ee5872b8396c1ca7942ceb31fb33174ce00b10 100644 (file)
@@ -69,13 +69,11 @@ public class DirectoryTest
                Assert.AreEqual (afile, files0 [0], "#2");\r
                Assert.AreEqual (bfile, files0 [1], "#3");\r
 \r
-#if NET_4_0\r
                var files1 = new List<string> (Directory.EnumerateFiles (TempFolder, "*.src")).ToArray ();\r
                Array.Sort (files1);\r
                Assert.AreEqual (2, files1.Length, "#1.b");\r
                Assert.AreEqual (afile, files1 [0], "#2.b");\r
                Assert.AreEqual (bfile, files1 [1], "#3.b");\r
-#endif\r
 \r
                var files2 = Directory.GetFileSystemEntries (TempFolder, "*.src");\r
                Array.Sort (files2);\r
@@ -84,14 +82,12 @@ public class DirectoryTest
                Assert.AreEqual (bfile, files2 [1], "#3.c");\r
                Assert.AreEqual (cdir, files2 [2], "#4.c");\r
 \r
-#if NET_4_0\r
                var files3 = new List<string> (Directory.EnumerateFileSystemEntries (TempFolder, "*.src")).ToArray ();\r
                Array.Sort (files3);\r
                Assert.AreEqual (3, files3.Length, "#1.d");\r
                Assert.AreEqual (afile, files3 [0], "#2.d");\r
                Assert.AreEqual (bfile, files3 [1], "#3.d");\r
                Assert.AreEqual (cdir, files3 [2], "#4.d");\r
-#endif\r
        }\r
 #endif\r
        [Test]\r
index 92a3b0147ec80fe76c7f5d55969fa514889b8109..bdeae0ba3aa6a2db36a900e8832fc1c7854456e4 100644 (file)
@@ -87,12 +87,13 @@ namespace MonoTests.System.IO
                [Test]
                public void CtorFileNotFoundException_Mode_Open ()
                {
+                       const string file_name = "thisfileshouldnotexist.test";
                        // absolute path
-                       string path = TempFolder + DSC + "thisfileshouldnotexists.test";
+                       string path = TempFolder + DSC + file_name;
                        DeleteFile (path);
                        FileStream stream = null;
                        try {
-                               stream = new FileStream (TempFolder + DSC + "thisfileshouldnotexists.test", FileMode.Open);
+                               stream = new FileStream (TempFolder + DSC + file_name, FileMode.Open);
                                Assert.Fail ("#A1");
                        } catch (FileNotFoundException ex) {
                                Assert.AreEqual (typeof (FileNotFoundException), ex.GetType (), "#A2");
@@ -111,14 +112,18 @@ namespace MonoTests.System.IO
                        // relative path
                        string orignalCurrentDir = Directory.GetCurrentDirectory ();
                        Directory.SetCurrentDirectory (TempFolder);
+
+                       // If TempFolder is a symlink, Mono will follow it and ex.FileName below will contain
+                       // the real directory name, not that of the TempFolder symlink and the test will fail
+                       // (happens e.g. on Android M)
+                       string realTempDir = Directory.GetCurrentDirectory ();
+                       path = realTempDir + DSC + file_name;
+
                        try {
-                               stream = new FileStream ("thisfileshouldnotexists.test", FileMode.Open);
+                               stream = new FileStream (file_name, FileMode.Open);
                                Assert.Fail ("#B1");
                        } catch (FileNotFoundException ex) {
                                Assert.AreEqual (typeof (FileNotFoundException), ex.GetType (), "#B2");
-                               // under OSX 'var' is a symlink to 'private/var'
-                               if (MacOSX)
-                                       path = "/private" + path;
                                Assert.AreEqual (path, ex.FileName, "#B3");
                                Assert.IsNull (ex.InnerException, "#B4");
                                Assert.IsNotNull (ex.Message, "#B5");
@@ -135,8 +140,9 @@ namespace MonoTests.System.IO
                [Test]
                public void CtorFileNotFoundException_Mode_Truncate ()
                {
+                       const string file_name = "thisfileshouldNOTexist.test";
                        // absolute path
-                       string path = TempFolder + DSC + "thisfileshouldNOTexists.test";
+                       string path = TempFolder + DSC + file_name;
                        DeleteFile (path);
                        FileStream stream = null;
                        try {
@@ -159,14 +165,18 @@ namespace MonoTests.System.IO
                        // relative path
                        string orignalCurrentDir = Directory.GetCurrentDirectory ();
                        Directory.SetCurrentDirectory (TempFolder);
+
+                       // If TempFolder is a symlink, Mono will follow it and ex.FileName below will contain
+                       // the real directory name, not that of the TempFolder symlink and the test will fail
+                       // (happens e.g. on Android M)
+                       string realTempDir = Directory.GetCurrentDirectory ();
+                       path = realTempDir + DSC + file_name;
+
                        try {
-                               stream = new FileStream ("thisfileshouldNOTexists.test", FileMode.Truncate);
+                               stream = new FileStream (file_name, FileMode.Truncate);
                                Assert.Fail ("#B1");
                        } catch (FileNotFoundException ex) {
                                Assert.AreEqual (typeof (FileNotFoundException), ex.GetType (), "#B2");
-                               // under OSX 'var' is a symlink to 'private/var'
-                               if (MacOSX)
-                                       path = "/private" + path;
                                Assert.AreEqual (path, ex.FileName, "#B3");
                                Assert.IsNull (ex.InnerException, "#B4");
                                Assert.IsNotNull (ex.Message, "#B5");
@@ -183,8 +193,9 @@ namespace MonoTests.System.IO
                [Test]
                public void CtorIOException1 ()
                {
+                       const string file_name = "thisfileshouldexists.test";
                        // absolute path
-                       string path = TempFolder + DSC + "thisfileshouldexists.test";
+                       string path = TempFolder + DSC + file_name;
                        FileStream stream = null;
                        DeleteFile (path);
                        try {
@@ -209,11 +220,18 @@ namespace MonoTests.System.IO
                        // relative path
                        string orignalCurrentDir = Directory.GetCurrentDirectory ();
                        Directory.SetCurrentDirectory (TempFolder);
+
+                       // If TempFolder is a symlink, Mono will follow it and ex.FileName below will contain
+                       // the real directory name, not that of the TempFolder symlink and the test will fail
+                       // (happens e.g. on Android M)
+                       string realTempDir = Directory.GetCurrentDirectory ();
+                       path = realTempDir + DSC + file_name;
+
                        try {
-                               stream = new FileStream ("thisfileshouldexists.test", FileMode.CreateNew);
+                               stream = new FileStream (file_name, FileMode.CreateNew);
                                stream.Close ();
                                stream = null;
-                               stream = new FileStream ("thisfileshouldexists.test", FileMode.CreateNew);
+                               stream = new FileStream (file_name, FileMode.CreateNew);
                                Assert.Fail ("#B1");
                        } catch (IOException ex) {
                                Assert.AreEqual (typeof (IOException), ex.GetType (), "#B2");
@@ -327,8 +345,14 @@ namespace MonoTests.System.IO
                {
                        string orignalCurrentDir = Directory.GetCurrentDirectory ();
                        Directory.SetCurrentDirectory (TempFolder);
+
+                       // If TempFolder is a symlink, Mono will follow it and ex.FileName below will contain
+                       // the real directory name, not that of the TempFolder symlink and the test will fail
+                       // (happens e.g. on Android M)
+                       string realTempDir = Directory.GetCurrentDirectory ();
+                       
                        string relativePath = "DirectoryDoesNotExist" + Path.DirectorySeparatorChar + "file.txt";
-                       string fullPath = Path.Combine (TempFolder, relativePath);
+                       string fullPath = Path.Combine (realTempDir, relativePath);
                        try {
                                new FileStream (relativePath, FileMode.Open);
                                Assert.Fail ("#A1");
index b926c3c71e0ccb246fdf121dc15e24076e8f68e0..c1dc8b59ab40fcece1dbb88b47849f7b8c7b77c1 100644 (file)
@@ -2537,6 +2537,7 @@ namespace MonoTests.System.IO
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // locks with offsets bigger than Int32.Max don't work on Android
                public void Lock_Large ()
                {
                        // note: already worked without HAVE_LARGE_FILE_SUPPORT
index 8f5e4909b9f2b8005a5c2317b2be063f3419df48..897342eba7f20d6483be863287879c2b469029e1 100644 (file)
@@ -173,9 +173,10 @@ namespace MonoTests.System.IO
                        Assert.AreEqual ("one", testPath, "Combine #03");
 
                        string current = Directory.GetCurrentDirectory ();
+                       bool currentIsDSC = current.Length == 1 && current [0] == DSC;
                        testPath = Path.Combine (current, "one");
 
-                       string expected = current + DSC + "one";
+                       string expected = (currentIsDSC ? String.Empty : current) + DSC + "one";
                        Assert.AreEqual (expected, testPath, "Combine #04");
 
                        testPath = Path.Combine ("one", current);
@@ -200,9 +201,7 @@ namespace MonoTests.System.IO
                        expected = "one" + DSC + "two" + DSC;
                        Assert.AreEqual (expected, testPath, "Combine #07");
 
-#if NET_4_0
                        Assert.AreEqual ("a", Path.Combine (new [] { "a", "" }), "Combine #08");
-#endif
                }
 
                [Test]
@@ -484,9 +483,9 @@ namespace MonoTests.System.IO
                public void GetFullPath ()
                {
                        string current = Directory.GetCurrentDirectory ();
-
+                       bool currentIsDSC = current.Length == 1 && current [0] == DSC;
                        string testFullPath = Path.GetFullPath ("foo.txt");
-                       string expected = current + DSC + "foo.txt";
+                       string expected = (currentIsDSC ? String.Empty : current) + DSC + "foo.txt";
                        Assert.AreEqual (expected, testFullPath, "GetFullPath #01");
 
                        testFullPath = Path.GetFullPath ("a//./.././foo.txt");
@@ -1241,7 +1240,6 @@ namespace MonoTests.System.IO
                        }
                }
 
-#if NET_4_0
                string Concat (string sep, params string [] parms)
                {
                        return String.Join (sep, parms);
@@ -1381,7 +1379,6 @@ namespace MonoTests.System.IO
 
                        Assert.AreEqual ("", Path.Combine ("", "", "", "", ""), "#A4");
                }
-#endif
        }
 }
 
index b4886cbf99be2eaa13f6086f35d305cd3c7aff47..0a06a7e4231420b0ba2c62fc047fa93ace9770f8 100644 (file)
@@ -410,6 +410,7 @@ public class AssemblyBuilderTest
        }
 
        [Test]
+       [Category ("AndroidNotWorking")] // DefineResource doesn't allow path in its fileName parameter and the test attempts to write to / in effect
        public void TestDefineResource ()
        {
                ab.DefineResource ("foo", "FOO", "foo.txt", ResourceAttributes.Public);
@@ -586,6 +587,7 @@ public class AssemblyBuilderTest
        }
 
        [Test]
+       [Category ("AndroidNotWorking")] // Missing Mono.Compilerservices.SymbolWriter assembly
        public void TestDefineDynamicModule ()
        {
                ab.DefineDynamicModule ("foo", "foo.dll");
@@ -781,19 +783,8 @@ public class AssemblyBuilderTest
                try {
                        ab.Save ("lib.dll");
                        Assert.Fail ("#A1");
-#if NET_4_0
                } catch (CultureNotFoundException ex) {
                }
-#else
-               } catch (ArgumentException ex) {
-                       // Culture name doesnotexist is not supported
-                       Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
-                       Assert.IsNull (ex.InnerException, "#A3");
-                       Assert.IsNotNull (ex.Message, "#A4");
-                       Assert.IsTrue (ex.Message.IndexOf ("doesnotexist") != -1, "#A5");
-                       Assert.AreEqual ("name", ex.ParamName, "#A6");
-               }
-#endif
 
                ab = AppDomain.CurrentDomain.DefineDynamicAssembly (aname,
                        AssemblyBuilderAccess.RunAndSave, tempDir);
@@ -809,19 +800,8 @@ public class AssemblyBuilderTest
                try {
                        ab.Save ("lib.dll");
                        Assert.Fail ("#B1");
-#if NET_4_0
                } catch (CultureNotFoundException ex) {
                }
-#else
-               } catch (ArgumentException ex) {
-                       // Culture name neutral is not supported
-                       Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
-                       Assert.IsNull (ex.InnerException, "#B3");
-                       Assert.IsNotNull (ex.Message, "#B4");
-                       Assert.IsTrue (ex.Message.IndexOf ("neutral") != -1, "#B5");
-                       Assert.AreEqual ("name", ex.ParamName, "#B6");
-               }
-#endif
        }
 
        [Test] // DefineVersionInfoResource ()
@@ -903,19 +883,8 @@ public class AssemblyBuilderTest
                try {
                        ab.Save ("lib.dll");
                        Assert.Fail ("#A1");
-#if NET_4_0
                } catch (CultureNotFoundException ex) {
                }
-#else
-               } catch (ArgumentException ex) {
-                       // Culture name doesnotexist is not supported
-                       Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
-                       Assert.IsNull (ex.InnerException, "#A3");
-                       Assert.IsNotNull (ex.Message, "#A4");
-                       Assert.IsTrue (ex.Message.IndexOf ("doesnotexist") != -1, "#A5");
-                       Assert.AreEqual ("name", ex.ParamName, "#A6");
-               }
-#endif
 
                ab = AppDomain.CurrentDomain.DefineDynamicAssembly (aname,
                        AssemblyBuilderAccess.RunAndSave, tempDir);
@@ -931,19 +900,8 @@ public class AssemblyBuilderTest
                try {
                        ab.Save ("lib.dll");
                        Assert.Fail ("#B1");
-#if NET_4_0
                } catch (CultureNotFoundException ex) {
                }
-#else
-               } catch (ArgumentException ex) {
-                       // Culture name neutral is not supported
-                       Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
-                       Assert.IsNull (ex.InnerException, "#B3");
-                       Assert.IsNotNull (ex.Message, "#B4");
-                       Assert.IsTrue (ex.Message.IndexOf ("neutral") != -1, "#B5");
-                       Assert.AreEqual ("name", ex.ParamName, "#B6");
-               }
-#endif
        }
 
        [Test] // DefineVersionInfoResource (String, String, String, String, String)
@@ -1427,10 +1385,8 @@ public class AssemblyBuilderTest
                        string FxVersion;
 #if MOBILE
                        FxVersion = "2.0.5.0;";
-#elif NET_4_0
-                       FxVersion = "4.0.0.0;";
 #else
-                       FxVersion = "2.0.0.0;";
+                       FxVersion = "4.0.0.0;";
 #endif
                        Assert.AreEqual (new Version (FxVersion), refs [0].Version, "#D2:Version");
                        Assert.AreEqual (AssemblyVersionCompatibility.SameMachine,
@@ -1829,9 +1785,13 @@ public class AssemblyBuilderTest
                                fullName);
                        newDomain.DoCallBack (new CrossAppDomainDelegate (helper.Test));
                } finally {
+#if !MONODROID
+                       // RUNTIME: crash
+                       // AppDomain unloading crashes the runtime on Android
                        if (newDomain != null) {
                                AppDomain.Unload (newDomain);
                        }
+#endif
                }
        }
 
index 3a4c66188fd4315a9bedf61c2bc58e8e8912d828..faaa55af818011dc11a4366367aa83c9d24ef25a 100644 (file)
@@ -830,6 +830,7 @@ public class ConstructorBuilderTest
 
        // Same as in MethodBuilderTest
        [Test]
+       [Category ("MobileNotWorking")] // No declarative security in the mobile profile
        public void AddDeclarativeSecurity_Complete ()
        {
                ConstructorBuilder cb = genClass.DefineConstructor (
@@ -851,6 +852,7 @@ public class ConstructorBuilderTest
        }
 
        [Test]
+       [Category ("MobileNotWorking")] // No declarative security in the mobile profile
        public void AddDeclarativeSecurity_PSet_Null ()
        {
                ConstructorBuilder cb = genClass.DefineConstructor (
@@ -867,6 +869,7 @@ public class ConstructorBuilderTest
        }
 
        [Test]
+       [Category ("MobileNotWorking")] // No declarative security in the mobile profile
        public void AddDeclarativeSecurity_Action_Invalid ()
        {
                ConstructorBuilder cb = genClass.DefineConstructor (
@@ -892,6 +895,7 @@ public class ConstructorBuilderTest
        }
 
        [Test]
+       [Category ("MobileNotWorking")] // No declarative security in the mobile profile
        public void AddDeclarativeSecurity_Action_Duplicate ()
        {
                ConstructorBuilder cb = genClass.DefineConstructor (
index b9b6fbacca1651a6873b072f6938ea743dcb86ed..fa37466a77ad7083c62be10b91be468b6d5b5bd9 100644 (file)
@@ -523,14 +523,7 @@ namespace MonoTests.System.Reflection.Emit
                        Assert.IsFalse (ptr.IsGenericType, "#9");
                        Assert.IsFalse (ptr.IsGenericTypeDefinition, "#10");
 
-#if NET_4_0
                        Assert.AreEqual (TypeAttributes.Public, ptr.Attributes, "#11");
-#else
-                       try {
-                               var x = ptr.Attributes; //This is because GenericTypeParameterBuilder doesn't support Attributes 
-                               Assert.Fail ("#11");
-                       } catch (NotSupportedException) {}
-#endif
 
                        Assert.IsTrue (ptr.HasElementType, "#12");
                        Assert.IsTrue (ptr.IsPointer, "#13");
@@ -1034,14 +1027,7 @@ namespace MonoTests.System.Reflection.Emit
                        Assert.IsFalse (byref.IsGenericTypeDefinition, "#10");
 
 
-#if NET_4_0
                        Assert.AreEqual (TypeAttributes.Public, byref.Attributes, "#11");
-#else
-                       try {
-                               var x = byref.Attributes; //This is because GenericTypeParameterBuilder doesn't support Attributes 
-                               Assert.Fail ("#11");
-                       } catch (NotSupportedException) {}
-#endif
 
                        Assert.IsTrue (byref.HasElementType, "#12");
                        Assert.IsTrue (byref.IsByRef, "#13");
@@ -1663,14 +1649,7 @@ namespace MonoTests.System.Reflection.Emit
                        Assert.IsFalse (arr.IsGenericType, "#9");
                        Assert.IsFalse (arr.IsGenericTypeDefinition, "#10");
 
-#if NET_4_0
                        Assert.AreEqual (TypeAttributes.Public, arr.Attributes, "#11");
-#else
-                       try {
-                               var x = arr.Attributes; //This is because GenericTypeParameterBuilder doesn't support Attributes 
-                               Assert.Fail ("#11");
-                       } catch (NotSupportedException) {}
-#endif
 
                        Assert.IsTrue (arr.HasElementType, "#12");
                        Assert.IsTrue (arr.IsArray, "#13");
index e04744d824446415d1370a4e2cc3f839774cd6f8..949c7365b9a5e9084b4a57ecede9343db892ffe9 100644 (file)
@@ -477,6 +477,8 @@ namespace MonoTests.System.Reflection.Emit
                        public string Name;
                }
 
+#if !MONODROID
+               // RUNTIME: crash
                [Test]
                public void TypedRef ()
                {
@@ -508,6 +510,7 @@ namespace MonoTests.System.Reflection.Emit
                {
                        Assert.AreEqual (typeof (TypedRefTarget), TypedReference.GetTargetType (tr));
                }
+#endif
        }
 }
 
index 90dee03802fb7f776eacc42b73235c5d956d7591..128e68bd15d3f64edf023441ddc5812e143ce672 100644 (file)
@@ -199,7 +199,6 @@ namespace MonoTests.System.Reflection.Emit
                                _fieldName);
                }
 
-#if NET_4_0
                [Test]
                public void GetEnumUnderlyingType ()
                {
@@ -207,7 +206,6 @@ namespace MonoTests.System.Reflection.Emit
 
                        Assert.AreEqual (_enumType, @enum.GetEnumUnderlyingType ());
                }
-#endif
 
                [Test]
                public void TestFindMembersComplete ()
index 7f9db3b99fd0e53290e51e533cda40e407d2e53d..815c34c5cba9ec72421d19720eee89a0881da33c 100644 (file)
@@ -77,14 +77,7 @@ namespace MonoTests.System.Reflection.Emit
                                Assert.Fail ("#11");
                        } catch (NotSupportedException) {}
 
-#if NET_4_0
                        Assert.AreEqual (TypeAttributes.Public, gparam.Attributes, "#12");
-#else
-                       try {
-                                       var x = gparam.Attributes;
-                                       Assert.Fail ("#12");
-                       } catch (NotSupportedException) {}
-#endif
                        Assert.IsFalse (gparam.HasElementType, "#13");
                        Assert.IsFalse (gparam.IsArray, "#14");
                        Assert.IsFalse (gparam.IsByRef, "#15");
@@ -349,9 +342,6 @@ namespace MonoTests.System.Reflection.Emit
                        Assert.IsFalse (gparam.IsGenericTypeDefinition, "#10");
                }
 
-#if !NET_4_0
-               [Category ("NotDotNet")]
-#endif
                [Test]
                // CompilerContext no longer supported
                [Category ("NotWorking")]
diff --git a/mcs/class/corlib/Test/System.Reflection.Emit/MethodBuilderTestIL.cs b/mcs/class/corlib/Test/System.Reflection.Emit/MethodBuilderTestIL.cs
new file mode 100644 (file)
index 0000000..da8cd3e
--- /dev/null
@@ -0,0 +1,154 @@
+       //
+       // MethodBuilderTestIL.cs - NUnit Test Cases for MethodBuilder.CreateMethodBody and MethodBuilder.SetMethodBody
+       //
+       // Marcos Henrich (marcos.henrich@xamarin.com)
+       //
+       // (C) Xamarin, Inc.
+
+       using System;
+       using System.Linq;
+       using System.Reflection;
+       using System.Reflection.Emit;
+       using System.Threading;
+
+       using NUnit.Framework;
+       using System.IO;
+
+       namespace MonoTests.System.Reflection.Emit
+       {
+               public abstract class MethodBuilderTestIL
+               {
+                       protected abstract void SetIL (MethodBuilder methodBuilder, MemoryStream ilStream);
+
+                       public static ModuleBuilder CreateModuleBuilder ()
+                       {
+                               AppDomain currentDom = Thread.GetDomain ();
+
+                               AssemblyBuilder assemblyBuilder = currentDom.DefineDynamicAssembly (
+                                       new AssemblyName ("NewDynamicAssembly"),
+                                       AssemblyBuilderAccess.Run);
+
+                               return assemblyBuilder.DefineDynamicModule ("NewModule");
+                       }
+
+                       public static object Invoke (Type type, MethodBuilder methodBuilder, params object[] parameters)
+                       {
+                               var method = type.GetMethods ().First (m => {
+                                       if (m.Name != methodBuilder.Name)
+                                               return false;
+                                       var params1 = m.GetParameters ();
+                                       var params2 = methodBuilder.GetParameters ();
+                                       if (params1.Length != params2.Length)
+                                               return false;
+                                       for (var i = 0; i < params1.Length; i++)
+                                               if (params1 [i].ParameterType.FullName != params2 [i].ParameterType.FullName)
+                                                       return false;
+
+                                       return true;
+                               });
+
+                               object inst = Activator.CreateInstance (type, new object [0]);
+
+                               return method.Invoke (inst, parameters);
+                       }
+
+                       [Test]
+                       public void CallMethodRef ()
+                       {
+                               var expected = "value";
+
+                               var moduleBuilder = CreateModuleBuilder ();
+                               var typeBuilder = moduleBuilder.DefineType ("NewType");
+
+                               var methodBuilder1 = typeBuilder.DefineMethod ("NewMethod1",
+                                       MethodAttributes.Public | MethodAttributes.Static,
+                                       typeof (string),
+                                       Type.EmptyTypes);
+
+                               var gen1 = methodBuilder1.GetILGenerator ();
+                               gen1.Emit (OpCodes.Ldstr, expected);
+                               gen1.Emit (OpCodes.Ret);
+
+                               var methodBuilder2 = typeBuilder.DefineMethod ("NewMethod2",
+                               MethodAttributes.Public | MethodAttributes.Static,
+                                       typeof (string),
+                                       Type.EmptyTypes);
+
+                               var ilStream = new MemoryStream ();
+                               var ilWriter = new BinaryWriter (ilStream);
+                               ilWriter.Write ((byte) 0x28); // call
+                               ilWriter.Write ((int)  moduleBuilder.GetMethodToken (methodBuilder1).Token);
+                               ilWriter.Write ((byte) 0x2A); // ret
+
+                               SetIL (methodBuilder2, ilStream);
+
+                               var type = typeBuilder.CreateType ();
+
+                               Assert.AreEqual (expected, Invoke (type, methodBuilder2));
+                       }
+
+                       [Test]
+                       public void CallMethodDef ()
+                       {
+                               var expected = "value";
+
+                               var moduleBuilder1 = CreateModuleBuilder ();
+                               var typeBuilder1 = moduleBuilder1.DefineType ("NewType1", TypeAttributes.Public);
+
+                               var methodBuilder1 = typeBuilder1.DefineMethod ("NewMethod1",
+                                MethodAttributes.Public | MethodAttributes.Static,
+                                       typeof (string),
+                                       Type.EmptyTypes);
+
+                               var gen1 = methodBuilder1.GetILGenerator ();
+                               gen1.Emit (OpCodes.Ldstr, expected);
+                               gen1.Emit (OpCodes.Ret);
+
+                               typeBuilder1.CreateType ();
+
+                               var moduleBuilder2 = CreateModuleBuilder ();
+                               var typeBuilder2 = moduleBuilder2.DefineType ("NewType2");
+
+                               var methodBuilder2 = typeBuilder2.DefineMethod ("NewMethod2",
+                                       MethodAttributes.Public | MethodAttributes.Static,
+                                       typeof (string),
+                                       Type.EmptyTypes);
+
+                               var ilStream = new MemoryStream ();
+                               var ilWriter = new BinaryWriter (ilStream);
+                               ilWriter.Write ((byte) 0x28); // call
+                               ilWriter.Write ((int) moduleBuilder2.GetMethodToken (methodBuilder1).Token);
+                               ilWriter.Write ((byte) 0x2A); // ret
+
+                               SetIL (methodBuilder2, ilStream);
+
+                               var type = typeBuilder2.CreateType ();
+
+                               Assert.AreEqual (expected, Invoke (type, methodBuilder2));
+                       }
+               }
+
+               /*
+                * Tests MethodBuilder.CreateMethodBody
+                */
+               [TestFixture]
+               public class MethodBuilderTestIL_CreateMethodBody : MethodBuilderTestIL
+               {
+                       protected override void SetIL (MethodBuilder methodBuilder, MemoryStream ilStream)
+                       {
+                               methodBuilder.CreateMethodBody (ilStream.ToArray (), (int) ilStream.Length);
+                       }
+               }
+
+               /*
+                * Tests MethodBuilder.SetMethodBody
+                */
+               [TestFixture]
+               public class MethodBuilderTestIL_SetMethodBody : MethodBuilderTestIL
+               {
+                       protected override void SetIL (MethodBuilder methodBuilder, MemoryStream ilStream)
+                       {
+                               methodBuilder.SetMethodBody (ilStream.ToArray (), 999, null, null, null);
+                       }
+               }
+       }
index 96102b18920561ba0437d271641a8b650af65821..aa6f1ba35833bdb3b1c4bf28e54fedd5b0a83718 100644 (file)
@@ -136,6 +136,7 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
                public void DefineType_Name_Null ()
                {
                        AssemblyBuilder ab = genAssembly ();
@@ -152,6 +153,7 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
                public void DefineType_Name_Empty ()
                {
                        AssemblyBuilder ab = genAssembly ();
@@ -169,6 +171,7 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
                public void DefineType_Name_NullChar ()
                {
                        AssemblyBuilder ab = genAssembly ();
@@ -188,6 +191,7 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
                public void DefineType_InterfaceNotAbstract ()
                {
                        AssemblyBuilder ab = genAssembly ();
@@ -224,6 +228,7 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
                public void DefineType_Parent_Interface ()
                {
                        TypeBuilder tb;
@@ -241,6 +246,7 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
                public void DefineType_TypeSize ()
                {
                        AssemblyBuilder ab = genAssembly ();
@@ -252,6 +258,7 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
                [ExpectedException (typeof (ArgumentException))]
                public void DuplicateTypeName () {
                        AssemblyBuilder ab = genAssembly ();
@@ -267,6 +274,7 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
                public void DuplicateSymbolDocument ()
                {
                        AssemblyBuilder ab = genAssembly ();
@@ -720,5 +728,31 @@ namespace MonoTests.System.Reflection.Emit
                        catch (ArgumentException) {
                        }
                }
+
+               [Test]
+               public void GetMethodTokenNullParam ()
+               {
+                       AssemblyName an = genAssemblyName ();
+                       AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly (an, AssemblyBuilderAccess.Run);
+                       ModuleBuilder module = ab.DefineDynamicModule ("mod");
+
+                       var method = typeof (object).GetMethod ("GetType");
+
+                       // ArgumentNullException should not occur.
+                       module.GetMethodToken (method, null);
+               }
+
+               [Test]
+               public void GetConstructorTokenNullParam ()
+               {
+                       AssemblyName an = genAssemblyName ();
+                       AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly (an, AssemblyBuilderAccess.Run);
+                       ModuleBuilder module = ab.DefineDynamicModule ("mod");
+
+                       var method = typeof (object).GetConstructor (Type.EmptyTypes);
+
+                       // ArgumentNullException should not occur.
+                       module.GetConstructorToken (method, null);
+               }
        }
 }
index b52e42369260330e1b5e71a86c19ea5f4e604068..d3115c76913f1792f567eb5069b74d9e4fa77897 100644 (file)
@@ -1182,6 +1182,7 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Fails with System.MethodAccessException : Method `t17:.ctor ()' is inaccessible from method `t18:.ctor ()'
                public void DefineDefaultConstructor_Parent_DefaultCtorInaccessible ()
                {
                        TypeBuilder tb;
@@ -8434,6 +8435,7 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
+               [Category ("MobileNotWorking")] // Not available in the 2.1 profile
                public void TestAddDeclarativeSecurityAlreadyCreated ()
                {
                        TypeBuilder tb = module.DefineType (genTypeName ());
@@ -8452,6 +8454,7 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
+               [Category ("MobileNotWorking")] // Not available in the 2.1 profile
                public void TestAddDeclarativeSecurityNullPermissionSet ()
                {
                        TypeBuilder tb = module.DefineType (genTypeName ());
@@ -8468,6 +8471,7 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
+               [Category ("MobileNotWorking")] // Not available in the 2.1 profile
                public void TestAddDeclarativeSecurityInvalidAction ()
                {
                        TypeBuilder tb = module.DefineType (genTypeName ());
@@ -8488,6 +8492,7 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
+               [Category ("MobileNotWorking")] // Not available in the 2.1 profile
                public void TestAddDeclarativeSecurityDuplicateAction ()
                {
                        TypeBuilder tb = module.DefineType (genTypeName ());
@@ -10878,6 +10883,7 @@ namespace MonoTests.System.Reflection.Emit
 
                //Test for #572660
         [Test]
+        [Category ("MobileNotWorking")] // Mono.CompilerServices.SymbolWriter not available in XA
         public void CircularArrayType()
         {
                        var assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName("Test"), AssemblyBuilderAccess.RunAndSave);
@@ -11025,6 +11031,10 @@ namespace MonoTests.System.Reflection.Emit
                }
 
                [Test]
+               [Category ("AndroidNotWorking")]
+               // It's not possible to save the assembly in the current directory on Android and AssemblyBuilder.DefineDynamicModule will not
+               // allow a full path to the assembly to be passed to it. Trying to change the current directory before saving will not work either as
+               // FileStream will then prepend / to the file name (perhaps it's another bug) and write access to the filesystem root is, obviously, denied
                public void Ldfld_Encoding_10122 () {
                        Build2<Example<int>> ();
                }
index abf316c1a6995dbd92b0219082c3f4df0db4fff9..4d8f1bf0ddace880834887a756e0b5f4aea2b91a 100644 (file)
@@ -385,10 +385,8 @@ public class AssemblyNameTest {
                string AssemblyCorlib;
 #if MOBILE
                AssemblyCorlib = "mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e";
-#elif NET_4_0
-               AssemblyCorlib = "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
 #else
-               AssemblyCorlib = "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
+               AssemblyCorlib = "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
 #endif
                Assert.AreEqual (AssemblyCorlib, an.FullName, "#2");
        }
@@ -1112,6 +1110,7 @@ public class AssemblyNameTest {
        }
 
        [Test]
+       [Category ("AndroidNotWorking")] // Accessing assemblies by asm.Location is not supported
        public void GetAssemblyName_CodeBase ()
        {
                Assembly execAssembly = Assembly.GetExecutingAssembly ();
@@ -1293,19 +1292,8 @@ public class AssemblyNameTest {
                try {
                        new AssemblyName (assemblyName + ", Culture=aa-AA");
                        Assert.Fail ("#1");
-#if NET_4_0
                } catch (CultureNotFoundException ex) {
                }
-#else
-               } catch (ArgumentException ex) {
-                       // Culture name 'aa-aa' is not supported
-                       Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
-                       Assert.IsNull (ex.InnerException, "#3");
-                       Assert.IsNotNull (ex.Message, "#4");
-                       Assert.IsNotNull (ex.ParamName, "#5");
-                       Assert.AreEqual ("name", ex.ParamName, "#6");
-               }
-#endif
        }
 
        [Test] // ctor (String)
@@ -1819,6 +1807,28 @@ public class AssemblyNameTest {
                }
        }
 
+       [Test] // ctor (String)
+       public void Constructor1_Quoted ()
+       {
+               AssemblyName an;
+
+               an = new AssemblyName ("'System', Version=\"10.0.0.0\", Culture='Neutral', PublicKeyToken='b67a5c561934e089', Retargetable='Yes', ProcessorArchitecture='AMD64'");
+               Assert.AreEqual ("System, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b67a5c561934e089, Retargetable=Yes", an.ToString ());
+               Assert.AreEqual (ProcessorArchitecture.Amd64, an.ProcessorArchitecture, "Amd64");
+       }
+
+       [Test] // ctor (String)
+       public void Constructor1_Quoted_Invalid ()
+       {
+               AssemblyName an;
+
+               try {
+                       an = new AssemblyName ("System, Version=\"10.0.0.0'");
+                       Assert.Fail ("#1");
+               } catch (FileLoadException) {
+               }
+       }
+
        [Test (Description="Xamarin bug #99 - whitespaces in key=value")]
        public void WhiteSpaceInKeyValue ()
        {
index 6e957ec7b7d255a992bb063c99556fe116e1584e..fe18b8ee8db18209e2873aec02212b3bcb1c8f1d 100644 (file)
@@ -123,6 +123,7 @@ namespace MonoTests.System.Reflection
                        // note: only available in default appdomain
                        // http://weblogs.asp.net/asanto/archive/2003/09/08/26710.aspx
                        // Not sure we should emulate this behavior.
+#if !MONODROID
                        string fname = AppDomain.CurrentDomain.FriendlyName;
                        if (fname.EndsWith (".dll")) { // nunit-console
                                Assert.IsNull (Assembly.GetEntryAssembly (), "GetEntryAssembly");
@@ -131,10 +132,15 @@ namespace MonoTests.System.Reflection
                                Assert.IsNotNull (Assembly.GetEntryAssembly (), "GetEntryAssembly");
                                Assert.IsTrue (AppDomain.CurrentDomain.IsDefaultAppDomain (), "!default appdomain");
                        }
+#else
+                       Assert.IsNull (Assembly.GetEntryAssembly (), "GetEntryAssembly");
+                       Assert.IsTrue (AppDomain.CurrentDomain.IsDefaultAppDomain (), "!default appdomain");
+#endif
                }
 
 #if !MONOTOUCH // Reflection.Emit is not supported.
                [Test]
+               [Category("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter
                public void GetModules_MissingFile ()
                {
                        AssemblyName newName = new AssemblyName ();
@@ -184,7 +190,10 @@ namespace MonoTests.System.Reflection
                public void Corlib_test ()
                {
                        Assembly corlib_test = Assembly.GetExecutingAssembly ();
-#if MOBILE
+#if MONODROID
+                       Assert.IsNull (corlib_test.EntryPoint, "EntryPoint");
+                       Assert.IsNull (corlib_test.Evidence, "Evidence");
+#elif MOBILE
                        Assert.IsNotNull (corlib_test.EntryPoint, "EntryPoint");
                        Assert.IsNull (corlib_test.Evidence, "Evidence");
 #else
@@ -238,6 +247,7 @@ namespace MonoTests.System.Reflection
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Assemblies in Xamarin.Android cannot be accessed as FileStream
                public void GetFiles_False ()
                {
                        Assembly corlib = typeof (int).Assembly;
@@ -250,6 +260,7 @@ namespace MonoTests.System.Reflection
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Assemblies in Xamarin.Android cannot be accessed as FileStream
                public void GetFiles_True ()
                {
                        Assembly corlib = typeof (int).Assembly;
@@ -387,7 +398,7 @@ namespace MonoTests.System.Reflection
                [Test]
                public void LoadWithPartialName ()
                {
-                       string [] names = { "corlib_test_net_1_1", "corlib_test_net_2_0", "corlib_test_net_4_0", "corlib_test_net_4_5", "corlib_plattest", "mscorlibtests" };
+                       string [] names = { "corlib_test_net_1_1", "corlib_test_net_2_0", "corlib_test_net_4_0", "corlib_test_net_4_5", "corlib_test_net_4_x", "corlib_plattest", "mscorlibtests", "BclTests" };
 
                        foreach (string s in names)
                                if (Assembly.LoadWithPartialName (s) != null)
@@ -540,6 +551,7 @@ namespace MonoTests.System.Reflection
                }
 
                [Test]
+               [Category("MobileNotWorking")]
                public void bug78465 ()
                {
                        string assemblyFileName = Path.Combine (
@@ -577,6 +589,7 @@ namespace MonoTests.System.Reflection
                }
 
                [Test]
+               [Category("MobileNotWorking")]
                public void bug78468 ()
                {
                        string assemblyFileNameA = Path.Combine (Path.GetTempPath (),
@@ -659,6 +672,7 @@ namespace MonoTests.System.Reflection
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Assemblies in Xamarin.Android cannot be directly as files
                public void ReflectionOnlyLoadFrom ()
                {
                        string loc = typeof (AssemblyTest).Assembly.Location;
@@ -830,6 +844,7 @@ namespace MonoTests.System.Reflection
 
 
                [Test] // bug #79715
+               [Category("MobileNotWorking")]
                public void Load_PartialVersion ()
                {
                        string tempDir = Path.Combine (Path.GetTempPath (),
@@ -1099,11 +1114,7 @@ namespace MonoTests.System.Reflection
                        Module module = assembly.ManifestModule;
                        Assert.IsNotNull (module, "#1");
 
-#if NET_4_0
                        Assert.AreEqual ("MonoModule", module.GetType ().Name, "#2");
-#else
-                       Assert.AreEqual (typeof (Module), module.GetType (), "#2");
-#endif
 
 #if !MONOTOUCH
                        Assert.AreEqual ("mscorlib.dll", module.Name, "#3");
index 5a1223795b5bf382c0dbabfe8d13d003522e6466..cf4ed9a7eaa2011fe8e93e9409669f9670314a51 100644 (file)
@@ -140,5 +140,14 @@ namespace MonoTests.System.Reflection
                        var ctor = typeof (Gen<>).GetConstructor (Type.EmptyTypes);
                        Assert.IsTrue (ctor.ContainsGenericParameters);
                }
+
+               [Test]
+               public void ConstructorInfoModule ()
+               {
+                       Type type = typeof (Foo);
+                       ConstructorInfo co = type.GetConstructors ()[0];
+
+                       Assert.AreEqual (type.Module, co.Module);
+               }
        }
 }
index 8147e9fe839aebe39d35a3f9004b869c4a2e21a9..311bf0f56a760fa14ac02c97ff349f39eba94fc6 100644 (file)
@@ -114,6 +114,15 @@ namespace MonoTests.System.Reflection
                        } catch (InvalidOperationException) {}                  
                }
 
+               [Test]
+               public void EventInfoModule ()
+               {
+                       Type type = typeof (TestClass);
+                       EventInfo ev = type.GetEvent ("pub");
+
+                       Assert.AreEqual (type.Module, ev.Module);
+               }
+
 #pragma warning disable 67
                public class PrivateEvent
                {
index 0f2bc3eeaf481f0cc364e0d066c5a965e36f37b3..3650cadc47f3124e3e96f6489ea309d5d16b24ec 100644 (file)
@@ -400,6 +400,15 @@ namespace MonoTests.System.Reflection
                        //Assert.IsTrue (pi.IsRetval, "#3");
                }
 
+               [Test]
+               public void MethodInfoModule ()
+               {
+                       Type type = typeof (MethodInfoTest);
+                       MethodInfo me = type.GetMethod ("return_parameter_test");
+
+                       Assert.AreEqual (type.Module, me.Module);
+               }
+
                [Test]
                        public void InvokeOnRefOnlyAssembly ()
                {
@@ -729,7 +738,6 @@ namespace MonoTests.System.Reflection
                        {
                        }
                }
-#if NET_4_0
                interface IMethodInvoke<out T>
                {
                    T Test ();
@@ -753,7 +761,6 @@ namespace MonoTests.System.Reflection
                        Assert.AreEqual ("MethodInvoke", m0.Invoke (obj, new Object [0]));
                        Assert.AreEqual ("MethodInvoke", m1.Invoke (obj, new Object [0]));
                }
-#endif
 
 
                public int? Bug12856 ()
index 46edaece552724cc215f4a08c8d81efb11dab8f7..04c941a9526990a454ac899564955ff30a3ca82a 100644 (file)
@@ -193,19 +193,19 @@ public class ModuleTest
 
                try {
                        module.ResolveMethod (1234);
-                       Assert.Fail ();
+                       Assert.Fail ("1234");
                } catch (ArgumentException) {
                }
 
                try {
                        module.ResolveMethod (t.MetadataToken);
-                       Assert.Fail ();
+                       Assert.Fail ("MetadataToken");
                } catch (ArgumentException) {
                }
 
                try {
-                       module.ResolveMethod (t.GetMethod ("ResolveMethod").MetadataToken + 10000);
-                       Assert.Fail ();
+                       module.ResolveMethod (t.GetMethod ("ResolveMethod").MetadataToken + 100000);
+                       Assert.Fail ("GetMethod");
                } catch (ArgumentOutOfRangeException) {
                }
        }
@@ -330,6 +330,7 @@ public class ModuleTest
        }
 #if !MONOTOUCH
        [Test]
+       [Category ("AndroidNotWorking")] // Mono.CompilerServices.SymbolWriter not available for Xamarin.Android
        public void GetTypes ()
        {
                AssemblyName newName = new AssemblyName ();
index e47b5e1eb79fea692a19b050dcaa816515ee628e..74624d1ba14c39cf6e4d52fb62f5a556bd7a54c6 100644 (file)
@@ -68,17 +68,14 @@ namespace MonoTests.System.Reflection.Emit
 
                        Assert.AreEqual ("type", inst.Name, "#1");
                        Assert.AreEqual ("foo", inst.Namespace, "#2");
-#if NET_4_0
+#if !MOBILE
                        Assert.AreEqual ("foo.type[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]", inst.FullName, "#3");
                        Assert.AreEqual ("foo.type[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], MonoTests.System.Reflection.Emit.MonoGenericClassTest, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", inst.AssemblyQualifiedName, "#4");
-#elif NET_2_1
+#elif NET_2_1 || MOBILE
                        Assert.AreEqual ("foo.type[[System.Double, mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]", inst.FullName, "#3");
                        Assert.AreEqual ("foo.type[[System.Double, mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], MonoTests.System.Reflection.Emit.MonoGenericClassTest, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", inst.AssemblyQualifiedName, "#4");
-#else
-                       Assert.AreEqual ("foo.type[[System.Double, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]", inst.FullName, "#3");
-                       Assert.AreEqual ("foo.type[[System.Double, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], MonoTests.System.Reflection.Emit.MonoGenericClassTest, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", inst.AssemblyQualifiedName, "#4");
-#endif
                        Assert.AreEqual ("foo.type[System.Double,System.String]", inst.ToString (), "#5");
+#endif
                }
 
                static void CheckInst (string prefix, Type inst, int a, int b)
@@ -207,4 +204,4 @@ namespace MonoTests.System.Reflection.Emit
        }
 }
 
-#endif
\ No newline at end of file
+#endif
index c01c5e6da216b40e9a632fe9b2e296ab4626a932..8d5fc3a921211c34cea0968954eb6806540a495c 100644 (file)
@@ -243,7 +243,6 @@ namespace MonoTests.System.Reflection
                {
                }
 
-#if NET_4_0
                public static void TestC (decimal u = decimal.MaxValue) {
                }
 
@@ -451,6 +450,5 @@ namespace MonoTests.System.Reflection
                        Assert.AreEqual (p2.myList, p2.CustomAttributes, "#3");
 #endif
                }
-#endif
        }
 }
index 49af23097c821009566f39ac66b60b723b58fe1a..dd38e16b7e52e7588d05cdbb637b9ae47da88b5b 100644 (file)
@@ -48,6 +48,7 @@ namespace MonoTests.System.Reflection
                {
                        Type type = typeof (TestClass);
                        PropertyInfo property = type.GetProperty ("ReadOnlyProperty");
+                       Assert.IsNotNull (property.Module, "#0");
 
                        MethodInfo [] methods = property.GetAccessors (true);
                        Assert.AreEqual (1, methods.Length, "#A1");
@@ -497,8 +498,20 @@ namespace MonoTests.System.Reflection
                        Assert.AreEqual (typeof (ClassWithNullableDateTime), siblingProperty.DeclaringType, "#3");
                        Assert.AreEqual (typeof (InheritsFromClassWithNullableDateTime), siblingProperty.ReflectedType, "#4");
                }
-               
-       
+
+               class Super { public long A { get; private set; } }
+
+               class Sub : Super { }
+
+               [Test]
+               public void PrivateSetterFromDerivedType ()
+               {
+                       var prop = typeof (Sub).GetProperty ("A");
+                       Assert.AreEqual (1, prop.GetAccessors (true).Length, "#1");
+                       Assert.IsFalse (prop.CanWrite, "#2");
+                       Assert.IsNull (prop.GetSetMethod (true), "#3");
+               }
+
                public class ClassWithNullableDateTime
                {
                        public DateTime? Property1 { get; set; }
index b9ba73f113a9bbd253ddeff0d256cd9da6801e23..3ba64bcf1e1ce214062f1e9079205310bd34ab72 100644 (file)
@@ -344,7 +344,6 @@ namespace MonoTests.System.Resources
                        writer.Close ();
                }
 
-#if NET_4_0
                // We are using a FileStream instead of a MemoryStream
                // to test that we support all kind of Stream instances,
                // and not only MemoryStream, as it used to be before 4.0.
@@ -581,7 +580,6 @@ namespace MonoTests.System.Resources
                                throw new NotSupportedException ();
                        }
                }
-#endif
 
                [Test]
                [Category ("MobileNotWorking")]
index f6f4dabe2bad2eeee6dce0eeb2164a51b6645304..d4dcbcef6ec3a15b59370d05b2747cd6c868a993 100644 (file)
@@ -26,7 +26,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0
 
 using NUnit.Framework;
 using System;
@@ -496,4 +495,3 @@ namespace MonoTests.System.Runtime.CompilerServices {
        }
 }
 
-#endif
index 17fe0d9045df543807ec622c71fa8e48c1032cab..27c77f182c9c50c665a1784dd1675cb523ac4deb 100644 (file)
@@ -130,6 +130,7 @@ namespace MonoTests.System.Runtime.InteropServices
                }
 #if !MONOTOUCH
                [Test]
+               [Category("MobileNotWorking")] // SIGSEGV, probably on AppDomain.Unload
                public void WeakHandleWorksOnNonRootDomain ()
                {
                        //Console.WriteLine("current app domain: " + AppDomain.CurrentDomain.Id);
index 28c43e872e8b6be3c89c710e34d348817d0ad84e..660a556c18483017f7403ba25ed57b4aa0ab7a5a 100644 (file)
@@ -74,7 +74,11 @@ namespace MonoTests.System.Runtime.InteropServices {
                {
                        string dirname = RuntimeEnvironment.GetRuntimeDirectory ();
                        Assert.IsNotNull (dirname, "GetRuntimeDirectory");
+#if MONODROID
+                       Assert.IsTrue (dirname.Length == 0, "directory name empty");
+#else
                        Assert.IsTrue (Directory.Exists (dirname), "Exists");
+#endif
                }
 
                [Test]
index 4a26c93036ca41281d61e92d0af5a1dafa73235c..ed0132cc88b3f060d39bbbb6089554b71cb65ea1 100644 (file)
@@ -48,7 +48,10 @@ namespace MonoTests.System.Runtime.InteropServices
                        protected override void Dispose (bool manual)
                        {
                                disposed = true;
+#if !MONODROID
+                               // Bombs on Android (ObjectDisposedException)
                                base.Dispose (manual);
+#endif
                        }
                }
 
@@ -77,6 +80,7 @@ namespace MonoTests.System.Runtime.InteropServices
 
                [Test]
                [ExpectedException (typeof (ObjectDisposedException))]
+               [Category ("AndroidNotWorking")] // Because of the FakeSafeHandle.Dispose issue
                public void BadDispose2 ()
                {
                        FakeSafeHandle sf = new FakeSafeHandle ();
@@ -87,6 +91,7 @@ namespace MonoTests.System.Runtime.InteropServices
 
                [Test]
                [ExpectedException (typeof (ObjectDisposedException))]
+               [Category ("AndroidNotWorking")] // Because of the FakeSafeHandle.Dispose issue
                public void BadDispose3 ()
                {
                        FakeSafeHandle sf = new FakeSafeHandle ();
@@ -115,6 +120,7 @@ namespace MonoTests.System.Runtime.InteropServices
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Because of the FakeSafeHandle.Dispose issue
                public void GoodDispose ()
                {
                        int dummyHandle = 0xDEAD;
@@ -232,6 +238,7 @@ namespace MonoTests.System.Runtime.InteropServices
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Because of the FakeSafeHandle.Dispose issue
                public void ReleaseAfterDispose1 ()
                {
                        int dummyHandle = 0xDEAD;
@@ -260,6 +267,7 @@ namespace MonoTests.System.Runtime.InteropServices
 
                [Test]
                [ExpectedException (typeof (ObjectDisposedException))]
+               [Category ("AndroidNotWorking")] // Because of the FakeSafeHandle.Dispose issue
                public void ReleaseAfterDispose2 ()
                {
                        FakeSafeHandle sf = new FakeSafeHandle (true);
@@ -278,6 +286,7 @@ namespace MonoTests.System.Runtime.InteropServices
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Not until Dispose runtime crasher in FakeSafeHandle is fixed
                public void NoReleaseUnowned ()
                {
                        FakeSafeHandle sf = new FakeSafeHandle (false);
index 9bae6c6ae1feb00137dd4a1228b1d4bb81308092..acd1b755a3a86ca01c21df96e1643ce58e3e2202 100644 (file)
@@ -34,9 +34,7 @@ using System.Collections.Generic;
 using NUnit.Framework;
 using System.Runtime.Remoting.Messaging;
 using System.Threading;
-#if NET_4_0
 using System.Threading.Tasks;
-#endif
 
 namespace MonoTests.System.Runtime.Remoting.Messaging
 {
@@ -123,7 +121,6 @@ namespace MonoTests.System.Runtime.Remoting.Messaging
                        CallContext.FreeNamedDataSlot (SlotName);
                }
 
-#if NET_4_0
                [Test]
                public void CallContextPropagation_Task ()
                {
@@ -168,7 +165,6 @@ namespace MonoTests.System.Runtime.Remoting.Messaging
                        CallContext.FreeNamedDataSlot ("d1");
                        CallContext.FreeNamedDataSlot ("d2");
                }
-#endif
 
                [Test]
                public void FreeNamedDataSlot_ShouldClearLogicalData ()
index 6d4b997fb45317b67a5c928e23f97d46332aa4e8..46297ab28f48bedf58088168382405e8fb1f7dda 100644 (file)
@@ -508,7 +508,6 @@ namespace MonoTests.System.Runtime.Serialization.Formatters.Binary
                        Assert.AreEqual (a.Value, b.Value, "#3");
                }
 
-#if NET_4_0
                [Test]
                public void SerializationBindToName ()
                {
@@ -721,6 +720,5 @@ namespace MonoTests.System.Runtime.Serialization.Formatters.Binary
                                Assert.AreEqual (original.Other.GetType (), ((BaseClass)deserialized).Other.GetType ());
                        }
                }
-#endif
        }
 }
index 44c441b2f637ff335dd2ffc2b16bfb2abd975a5b..d39d7ae194cf183af8ac1184f15b91e3a4060b1d 100644 (file)
@@ -34,7 +34,6 @@ namespace MonoTests.System.Runtime.Serialization
        [TestFixture]
        public class SerializationBinderTest
        {
-#if NET_4_0
                [Test]
                public void BindToName ()
                {
@@ -46,7 +45,6 @@ namespace MonoTests.System.Runtime.Serialization
                        Assert.AreEqual (null, assembly_name, "#A0");
                        Assert.AreEqual (null, type_name, "#A1");
                }
-#endif
        }
 
        class TestSerializationBinder : SerializationBinder
index b9196c26bfca8e44050ab1f97b6d581a1b23dc56..39c76df28329a4f783fd093b5ce440b85666618b 100644 (file)
@@ -44,7 +44,6 @@ namespace MonoTests.System.Runtime.Serialization
                        sinfo.SetType (point_type);
                        Assert.AreEqual (point_type.FullName, sinfo.FullTypeName, "#A0");
                        Assert.AreEqual (point_type.Assembly.FullName, sinfo.AssemblyName, "#A1");
-#if NET_4_0
                        Assert.AreEqual (point_type, sinfo.ObjectType, "#A2");
                        Assert.AreEqual (false, sinfo.IsAssemblyNameSetExplicit, "#A3");
                        Assert.AreEqual (false, sinfo.IsFullTypeNameSetExplicit, "#A4");
@@ -59,10 +58,8 @@ namespace MonoTests.System.Runtime.Serialization
                        Assert.AreEqual (datetime_type, sinfo.ObjectType, "#B2");
                        Assert.AreEqual (false, sinfo.IsAssemblyNameSetExplicit, "#B3");
                        Assert.AreEqual (false, sinfo.IsFullTypeNameSetExplicit, "#B4");
-#endif
                }
 
-#if NET_4_0
                [Test]
                public void ObjectType ()
                {
@@ -101,7 +98,6 @@ namespace MonoTests.System.Runtime.Serialization
                        Assert.AreEqual (true, sinfo.IsFullTypeNameSetExplicit, "#C0");
                        Assert.AreEqual (original_name, sinfo.FullTypeName, "#C1");
                }
-#endif
        }
 }
 
index 487f98191cff4f07149afe97efc3827f4cb4ad7b..529ce2205b92c3e1cbcc7533f29f5f018b3a10c7 100644 (file)
@@ -31,7 +31,6 @@ using System.Text;
 
 using NUnit.Framework;
 
-#if NET_4_0
 namespace MonoTests.System.Runtime.Versioning
 {
        [TestFixture]
@@ -92,4 +91,3 @@ namespace MonoTests.System.Runtime.Versioning
                }
        }
 }
-#endif
\ No newline at end of file
index 74c05478daedd029e3e9437dbda8383c0a5cd873..305b5737f93b76da6b71e500d25301fdc0e1cc82 100644 (file)
@@ -3,7 +3,6 @@
 // Authors:
 //     James Bellinger (jfb@zer7.com)
 
-#if NET_4_0
 
 using System;
 using System.Security.AccessControl;
@@ -101,5 +100,4 @@ namespace MonoTests.System.Security.AccessControl
        }
 }
 
-#endif
 
index bfeda3a0b3f269b3adbc98d8d9909adc9b6beb10..8d20e6f091e3dab90f45c02cd7c8e3ade8013ca5 100644 (file)
@@ -43,11 +43,12 @@ namespace MonoTests.System.Security.Cryptography {
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Exception is thrown: CryptographicException : Bad PKCS7 padding. Invalid length 236.
                public void Roundtrip ()
                {
                        // that will return a AesCryptoServiceProvider
                        var aes = GetInstance ();
-#if MOBILE
+#if MONOTOUCH
                        Assert.AreEqual ("System.Security.Cryptography.AesManaged", aes.ToString (), "Default");
                        Assert.AreEqual (128, aes.FeedbackSize, "FeedbackSize");
 #else
index 11e81774310f6912bbf366272d4a7334cd2db67a..6cdc052f4fb97f8b2d630733e32e5a69a9b814bc 100644 (file)
@@ -39,7 +39,7 @@ namespace MonoTests.System.Security.Cryptography {
                public void Ctor () 
                {
                        var cp = new CspParameters ();
-                       Assert.AreEqual (24, cp.ProviderType);
+                       Assert.AreEqual (1, cp.ProviderType);
                }
        }
 }
index 538dfdb5d31d8b0b4cc8d660df57e9d97a9fddb2..e831c36a13dabfb5ee5e636c3d73ff9453707fe8 100644 (file)
@@ -209,7 +209,13 @@ namespace MonoTests.System.Security.Cryptography {
                        byte[] digest = { 0x6f, 0x63, 0x0f, 0xad, 0x67, 0xcd, 0xa0, 0xee, 0x1f, 0xb1, 0xf5, 0x62, 0xdb, 0x3a, 0xa5, 0x3e };
                        Check ("RFC2202-TC7", key, data, digest);
                }
-       }
 
+               [Test]
+               public void Create_Incorrect ()
+               {
+                       var x = HMACMD5.Create ();
+                       Assert.AreEqual ("SHA1", x.HashName, "https://connect.microsoft.com/VisualStudio/feedback/details/838731/all-hmac-create-methods-return-an-instance-of-hmacmd5");
+               }
+       }
 }
 
index f0b12b55af26c9d34b119708f27503f30f908e5c..648c5fc34a153d74423d7a4420cdf9919123c3c8 100644 (file)
@@ -297,23 +297,6 @@ namespace MonoTests.System.Security.Policy {
                        Assert.IsNotNull (e.SyncRoot, "SyncRoot");
                }
 
-#if !NET_4_0
-               [Test]
-               public void Equals_GetHashCode () 
-               {
-                       Evidence e1 = new Evidence ();
-                       Evidence e2 = new Evidence ();
-                       Assert.AreEqual (e1.GetHashCode (), e2.GetHashCode (), "GetHashCode-1");
-                       Assert.IsTrue (e1.Equals (e2), "e1.Equals(e2)");
-                       e1.AddAssembly (String.Empty);
-                       e2.AddAssembly (String.Empty);
-                       Assert.AreEqual (e1.GetHashCode (), e2.GetHashCode (), "GetHashCode-2");
-                       e1.AddHost (String.Empty);
-                       e2.AddHost (String.Empty);
-                       Assert.AreEqual (e1.GetHashCode (), e2.GetHashCode (), "GetHashCode-3");
-                       Assert.IsTrue (e2.Equals (e1), "e2.Equals(e1)");
-               }
-#endif
 
                [Test]
                public void Clear () 
index 09fa93974700fdeae6307bc123b4f41444522ee4..00aa374348db05be7dae57d541cf5275cc326c31 100644 (file)
@@ -184,7 +184,10 @@ namespace MonoTests.System.Security.Policy {
                // files are always rooted (Path.IsPathRooted) and exists (File.Exists)
                string[] myComputerUrls = {
                        Path.GetTempFileName (),
+#if !MONODROID
+                       // Assembly.Location doesn't work on Android
                        Assembly.GetExecutingAssembly ().Location,
+#endif
                };
 
                [Test]
index ce3ec40abc03b898346fa53435017c9f6c913515..f5b6a4e1ff6680ec693727977c6ac977fc93bbb4 100644 (file)
@@ -531,7 +531,6 @@ namespace MonoTests.System.Text {
        }
 
 
-#if NET_4_0
        [Test]
        public void ClearMethod () {
                StringBuilder sb = new StringBuilder ("Text");
@@ -539,7 +538,6 @@ namespace MonoTests.System.Text {
                Assert.AreEqual (0, sb.Length, "#1");
                Assert.AreEqual (String.Empty, sb.ToString (), "#2");
        }
-#endif
 
 }
 
index 976701aa3cdbe684d64b1cf5e4879161af1251fd..f65ca25649dba56b5af81cae8a4fae3d80a590e7 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // TestHelper.cs
 //
 // Copyright (c) 2008 Jérémie "Garuma" Laval
@@ -90,4 +89,3 @@ namespace MonoTests.System.Threading.Tasks
                }
        }
 }
-#endif
index 4f381c1c9e864e0abfc6590697aebdf3b9a93326..3d8ead709af579605df739545158e65b2a238923 100644 (file)
@@ -23,7 +23,6 @@
 //
 //
 
-#if NET_4_0
 
 using System;
 using System.Linq;
@@ -224,4 +223,3 @@ namespace MonoTests.System.Threading.Tasks
                }
        }
 }
-#endif
index 30c931e067c2949b2477588f8b3526f660d66224..903a6946a08163a08687381b77d54f21000ed0d7 100644 (file)
@@ -24,7 +24,6 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
-#if NET_4_0
 
 using System;
 using System.Threading;
@@ -239,4 +238,3 @@ namespace MonoTests.System.Threading.Tasks
                }
        }
 }
-#endif
index d3241be3857225ed94ea26529291c9243e866732..94d36a131e5ab550770551e7dc0f2d2cffd3163b 100644 (file)
@@ -28,7 +28,6 @@
 //
 //
 
-#if NET_4_0
 
 using System;
 using System.Threading;
@@ -626,4 +625,3 @@ namespace MonoTests.System.Threading.Tasks
                }
        }
 }
-#endif
index bfa5a50449c62be275dfbc428d70e76a80f08b55..0ca7f49f474c9c6fb8407df5eb41a663090a62c3 100644 (file)
@@ -26,7 +26,6 @@
 //
 //
 
-#if NET_4_0
 
 using System;
 using System.Threading;
@@ -277,4 +276,3 @@ namespace MonoTests.System.Threading.Tasks
        }
 }
 
-#endif
index da0327f7c4713cd22916bf5db01a6792c820311a..e8130bc06fd5cf8bac6fc0e3dd06b7d81e841f9e 100644 (file)
@@ -22,7 +22,6 @@
 //
 //
 
-#if NET_4_0
 
 using System;
 using System.Threading;
@@ -256,4 +255,3 @@ namespace MonoTests.System.Threading.Tasks
                }
        }
 }
-#endif
index d3ce52f88e831094a37d9307ead9bbe2f0f56625..e0b127a0bc708543bfa39f3f3f6d7aa59c6e93ac 100644 (file)
@@ -27,7 +27,6 @@
 //
 //
 
-#if NET_4_0
 
 using System;
 using System.Threading;
@@ -345,12 +344,12 @@ namespace MonoTests.System.Threading.Tasks
                        CountdownEvent cde = new CountdownEvent (2);
                        var mre = new ManualResetEvent (false);
                        var tasks = new[] {
-                               Task.Factory.StartNew (delegate { Assert.IsTrue (mre.WaitOne (1500), "#0"); }),
+                               Task.Factory.StartNew (delegate { Assert.IsTrue (mre.WaitOne (10000), "#0"); }),
                                Task.Factory.StartNew (delegate { try { throw new ApplicationException (); } finally { cde.Signal (); } }),
                                Task.Factory.StartNew (delegate { try { throw new ApplicationException (); } finally { cde.Signal (); } })
                        };
 
-                       Assert.IsTrue (cde.Wait (1000), "#1");
+                       Assert.IsTrue (cde.Wait (5000), "#1");
                        Assert.IsFalse (Task.WaitAll (tasks, 1000), "#2");
 
                        mre.Set ();
@@ -2118,4 +2117,3 @@ namespace MonoTests.System.Threading.Tasks
 #endif
        }
 }
-#endif
index d6bc2e774d933f7095626b68d5adf58be308b9c9..4c5428f828ef641735107cebe9500ad1461a2690 100644 (file)
@@ -22,7 +22,6 @@
 //
 //
 
-#if NET_4_0
 
 using System;
 using System.Threading;
@@ -118,4 +117,3 @@ namespace MonoTests.System.Threading.Tasks
                }
        }
 }
-#endif
index 5bf805aae0b6e0264998d15c63b8d01f5768c77a..bcde74394a9fa374b6b619edbd834d29e208e17b 100644 (file)
@@ -27,7 +27,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0
 
 using System;
 using System.Threading;
@@ -490,5 +489,4 @@ namespace MonoTests.System.Threading
        }
 }
 
-#endif
 
index cb6c129e3dae99e19e5ac10d60e0c26d52b1b49a..3adc7a2bc6ff4ed72130932d40528b13f2f562d2 100644 (file)
@@ -26,7 +26,6 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
-#if NET_4_0
 
 using System;
 using System.Threading;
@@ -105,4 +104,3 @@ namespace MonoTests.System.Threading
                }
        }
 }
-#endif
index 1f5ba0e03e557e10fd0df5651c82fb70d87ae0a5..b9d20c73abf2df6f911f288e24c7a9a5b5ca52ca 100644 (file)
@@ -26,7 +26,6 @@
 //
 //
 
-#if NET_4_0
 
 using System;
 using System.Threading;
@@ -396,4 +395,3 @@ namespace MonoTests.System.Threading
                }
        }
 }
-#endif
index 2b4ec92e074d653e9e78d842b0e30a387d3764d3..0c0ed7da829fd2c719ab08d71b98889829bce1ff 100644 (file)
@@ -26,7 +26,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0
 
 using System;
 using System.Threading;
@@ -92,5 +91,4 @@ namespace MonoTests.System.Threading
        }
 }
 
-#endif
 
index a0389f27a03881d86abb4976b61dc8091b948e9f..b1cb401ef47027c2614bf4205d7e78c2a43aa02b 100644 (file)
@@ -27,7 +27,6 @@
 //
 //
 
-#if NET_4_0
 
 using System;
 using System.Threading;
@@ -306,4 +305,3 @@ namespace MonoTests.System.Threading
                }
        }
 }
-#endif
index 2198316ab0548b960d02813eb446fb9b140c7e6f..1c4ae9408a0e936dcb9053181c91ca59f4ac5a29 100644 (file)
@@ -303,7 +303,6 @@ namespace MonoTests.System.Threading {
                                Assert.IsFalse (Monitor.Wait (o, SmallNegative), "Wait");
                        }
                }
-#if NET_4_0
                [Test]
                public void Enter_bool ()
                {
@@ -333,7 +332,6 @@ namespace MonoTests.System.Threading {
                        Monitor.Enter (o, ref taken);
                }
 
-#endif
 
        }
 }
index 80eb3ce263faaba06fc0a6245ef3fd7ee9f0970d..eb07f467fd0489663d3932041fa9397bfa759a50 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // SemaphoreSlimTests.cs
 //
 // Copyright (c) 2008 Jérémie "Garuma" Laval
@@ -92,4 +91,3 @@ namespace MonoTests.System.Threading
                }
        }
 }
-#endif
index 03fb7aaa3a16f7a44e0c8e831bd5dea616cead29..80865e5eb06703d64b16c251997ede8171127901 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 //
 // SpinLockTests.cs
 //
@@ -156,4 +155,3 @@ namespace MonoTests.System.Threading
                }
        }
 }
-#endif
index d892c5719176c332d1f8e9d05ba2a411924f0d40..aefa9ab41083fb036fef9d981c7007ec5993f1eb 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 // 
 // ThreadLazyTests.cs
 //  
@@ -215,4 +214,3 @@ namespace MonoTests.System.Threading
                }
        }
 }
-#endif
index 3f1d2950424d695d25f65e545650caabf698e08a..888b90c9b411eaf19fe7acd0492c09553940fbed 100644 (file)
@@ -79,7 +79,6 @@ namespace MonoTests.System.Threading
                        Assert.IsTrue (sum   == 0, "#2");
                }
 
-#if NET_4_0
                event WaitCallback e;
 
                [Test]
@@ -98,6 +97,5 @@ namespace MonoTests.System.Threading
                        ThreadPool.UnsafeQueueUserWorkItem (e, null);
                        Assert.IsTrue (ev.Wait (3000));
                }
-#endif
        }
 }
\ No newline at end of file
index 9bfc1c131eaa41121183797895077b5a4f308e8f..53921d2e13f30f80360c47ddd904bd3b26d20f8b 100644 (file)
@@ -800,15 +800,17 @@ namespace MonoTests.System.Threading
                [Test]
                public void Test_Interrupt ()
                {
+                       ManualResetEvent mre = new ManualResetEvent (false);
                        bool interruptedExceptionThrown = false;
+
                        ThreadPool.QueueUserWorkItem (Test_Interrupt_Worker, Thread.CurrentThread);
 
                        try {
                                try {
-                                       Thread.Sleep (3000);
+                                       mre.WaitOne (3000);
                                } finally {
                                        try {
-                                               Thread.Sleep (0);
+                                               mre.WaitOne (0);
                                        } catch (ThreadInterruptedException) {
                                                Assert.Fail ("ThreadInterruptedException thrown twice");
                                        }
@@ -838,11 +840,12 @@ namespace MonoTests.System.Threading
                [Category ("NotDotNet")] // it crashes nunit.
                public void Test_InterruptCurrentThread ()
                {
+                       ManualResetEvent mre = new ManualResetEvent (false);
                        bool interruptedExceptionThrown = false;
 
                        Thread.CurrentThread.Interrupt ();
                        try {
-                               Thread.Sleep (0);
+                               mre.WaitOne (0);
                                Assert.Fail ();
                        } catch (ThreadInterruptedException) {
                        }
index f06c2c1963287448307379a8bcc2f962d4c59cf9..a2bf6ab3d32472578860fe8f8d96cef00548d745 100644 (file)
@@ -422,6 +422,7 @@ namespace MonoTests.System {
                // TODO: Implemente the test methods for all the overriden function using activationAttribute
 
                [Test]
+               [Category ("AndroidNotWorking")] // Assemblies aren't accessible using filesystem paths (they're either in apk, embedded in native code or not there at all
                public void CreateInstanceFrom ()
                {
                        ObjectHandle objHandle = Activator.CreateInstanceFrom (testLocation, "MonoTests.System.ActivatorTestInternal.COMTest");
index 07161cbffbd320337a26130323e30eed0205be79..80a97395b6c12840b54c462e891760fb7e332029 100644 (file)
@@ -22,7 +22,6 @@
 //
 //
 
-#if NET_4_0
 
 using System;
 using System.Linq;
@@ -141,4 +140,3 @@ namespace MonoTests.System
                }
        }
 }
-#endif
index a1cc1a008cbec9353c146b199a7d85475a671282..6902f43be1e989a386ccaf9144a8dd7d1c881aa9 100644 (file)
@@ -3449,7 +3449,6 @@ public class ArrayTest
                Assert.AreEqual (input, expected);
        }
 
-#if NET_4_0
        [Test]
        [ExpectedException (typeof (ArgumentException))]
        public void CompareToWithJaggedArray () {
@@ -3616,7 +3615,6 @@ public class ArrayTest
                Assert.AreEqual (3, c.Counter);         
        }
 
-#endif
 
        [Test]
        public void JaggedArrayCtor ()
index 108bd16953a447444a6a43496ddb1a25d3e04561..f81f7acd42075c509042b7a75970c95c3a581d44 100644 (file)
@@ -108,7 +108,6 @@ namespace MonoTests.System
                        CompareWithDump (new ComparisonMethod (Char.IsWhiteSpace), whitespaceChars, true);
                }
 
-#if NET_4_0
                string controls = "0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 "
                + "13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 7f 80 81 82 83 84 "
                + "85 86 87 88 89 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 "
@@ -318,680 +317,6 @@ namespace MonoTests.System
 
                string whitespaceChars = "9 a b c d 20 85 a0 1680 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 200a 2028 2029 202f 205f 3000 found 25 chars.";
 
-#elif !NET_4_0
-
-               string controls = "0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 "
-               + "13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 7f 80 81 82 83 84 "
-               + "85 86 87 88 89 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 "
-               + "98 99 9a 9b 9c 9d 9e 9f found 65 chars.";
-
-               string digits = "30 31 32 33 34 35 36 37 38 39 660 661 662 "
-               + "663 664 665 666 667 668 669 6f0 6f1 6f2 6f3 6f4 6f5 6f6 "
-               + "6f7 6f8 6f9 7c0 7c1 7c2 7c3 7c4 7c5 7c6 7c7 7c8 7c9 966 "
-               + "967 968 969 96a 96b 96c 96d 96e 96f 9e6 9e7 9e8 9e9 9ea "
-               + "9eb 9ec 9ed 9ee 9ef a66 a67 a68 a69 a6a a6b a6c a6d a6e "
-               + "a6f ae6 ae7 ae8 ae9 aea aeb aec aed aee aef b66 b67 b68 "
-               + "b69 b6a b6b b6c b6d b6e b6f be6 be7 be8 be9 bea beb bec "
-               + "bed bee bef c66 c67 c68 c69 c6a c6b c6c c6d c6e c6f ce6 "
-               + "ce7 ce8 ce9 cea ceb cec ced cee cef d66 d67 d68 d69 d6a "
-               + "d6b d6c d6d d6e d6f e50 e51 e52 e53 e54 e55 e56 e57 e58 "
-               + "e59 ed0 ed1 ed2 ed3 ed4 ed5 ed6 ed7 ed8 ed9 f20 f21 f22 "
-               + "f23 f24 f25 f26 f27 f28 f29 1040 1041 1042 1043 1044 1045 "
-               + "1046 1047 1048 1049 17e0 17e1 17e2 17e3 17e4 17e5 17e6 "
-               + "17e7 17e8 17e9 1810 1811 1812 1813 1814 1815 1816 1817 "
-               + "1818 1819 1946 1947 1948 1949 194a 194b 194c 194d 194e "
-               + "194f 19d0 19d1 19d2 19d3 19d4 19d5 19d6 19d7 19d8 19d9 "
-               + "1b50 1b51 1b52 1b53 1b54 1b55 1b56 1b57 1b58 1b59 ff10 "
-               + "ff11 ff12 ff13 ff14 ff15 ff16 ff17 ff18 ff19 found 230 "
-               + "chars.";
-
-               string lowerChars = "80 e51 e52 e53 e54 e55 e56 e57 e58 e59 "
-               + "ed0 ed1 ed2 ed3 ed4 ed5 ed6 ed7 ed8 ed9 f20 f21 f22 f23 "
-               + "f24 f25 f26 f27 f28 f29 f2a f2b f2c f2d f2e f2f f30 f31 "
-               + "f32 f33 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 "
-               + "1369 136a 136b 136c 136d 136e 136f 1370 1371 1372 1373 "
-               + "1374 1375 1376 1377 1378 1379 137a 137b 137c 16ee 16ef "
-               + "16f0 17e0 17e1 17e2 17e3 17e4 17e5 17e6 17e7 17e8 17e9 "
-               + "17f0 17f1 17f2 17f3 17f4 17f5 17f6 17f7 17f8 17f9 1810 "
-               + "1811 1812 1813 1814 1815 1816 1817 1818 1819 1946 1947 "
-               + "1948 1949 194a 194b 194c 194d 194e 194f 19d0 19d1 19d2 "
-               + "19d3 19d4 19d5 19d6 19d7 19d8 19d9 1b50 1b51 1b52 1b53 "
-               + "1b54 1b55 1b56 1b57 1b58 1b59 2070 2074 2075 2076 2077 "
-               + "2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 "
-               + "2089 2153 2154 2155 2156 2157 2158 2159 215a 215b 215c "
-               + "215d 215e 215f 2160 2161 2162 2163 2164 2165 2166 2167 "
-               + "2168 2169 216a 216b 216c 216d 216e 216f 2170 2171 2172 "
-               + "2173 2174 2175 2176 2177 2178 2179 217a 217b 217c 217d "
-               + "217e 217f 2180 2181 2182 2460 2461 2462 2463 2464 2465 "
-               + "2466 2467 2468 2469 246a 246b 246c 246d 246e 246f 2470 "
-               + "2471 2472 2473 2474 2475 2476 2477 2478 2479 247a 247b "
-               + "247c 247d 247e 247f 2480 2481 2482 2483 2484 2485 2486 "
-               + "2487 2488 2489 248a 248b 248c 248d 248e 248f 2490 2491 "
-               + "2492 2493 2494 2495 2496 2497 2498 2499 249a 249b 24ea "
-               + "24eb 24ec 24ed 24ee 24ef 24f0 24f1 24f2 24f3 24f4 24f5 "
-               + "24f6 24f7 24f8 24f9 24fa 24fb 24fc 24fd 24fe 24ff 2776 "
-               + "2777 2778 2779 277a 277b 277c 277d 277e 277f 2780 2781 "
-               + "2782 2783 2784 2785 2786 2787 2788 2789 278a 278b 278c "
-               + "278d 278e 278f 2790 2791 2792 2793 2cfd 3007 3021 3022 "
-               + "3023 3024 3025 3026 3027 3028 3029 3038 3039 303a 3192 "
-               + "3193 3194 3195 3220 3221 3222 3223 3224 3225 3226 3227 "
-               + "3228 3229 3251 3252 3253 3254 3255 3256 3257 3258 3259 "
-               + "325a 325b 325c 325d 325e 325f 3280 3281 3282 3283 3284 "
-               + "3285 3286 3287 3288 3289 32b1 32b2 32b3 32b4 32b5 32b6 "
-               + "32b7 32b8 32b9 32ba 32bb 32bc 32bd 32be 32bf ff10 ff11 "
-               + "ff12 ff13 ff14 ff15 ff16 ff17 ff18 ff19 found 533 chars.";
-
-               string puncts = "21 22 23 25 26 27 28 29 2a 2c 2d 2e 2f 3a 3b "
-               + "3f 40 5b 5c 5d 5f 7b 7d a1 ab ad b7 bb bf 37e 387 55a 55b "
-               + "55c 55d 55e 55f 589 58a 5be 5c0 5c3 5c6 5f3 5f4 60c 60d "
-               + "61b 61e 61f 66a 66b 66c 66d 6d4 700 701 702 703 704 705 "
-               + "706 707 708 709 70a 70b 70c 70d 7f7 7f8 7f9 964 965 970 "
-               + "df4 e4f e5a e5b f04 f05 f06 f07 f08 f09 f0a f0b f0c f0d "
-               + "f0e f0f f10 f11 f12 f3a f3b f3c f3d f85 fd0 fd1 104a 104b "
-               + "104c 104d 104e 104f 10fb 1361 1362 1363 1364 1365 1366 "
-               + "1367 1368 166d 166e 169b 169c 16eb 16ec 16ed 1735 1736 "
-               + "17d4 17d5 17d6 17d8 17d9 17da 1800 1801 1802 1803 1804 "
-               + "1805 1806 1807 1808 1809 180a 1944 1945 19de 19df 1a1e "
-               + "1a1f 1b5a 1b5b 1b5c 1b5d 1b5e 1b5f 1b60 2010 2011 2012 "
-               + "2013 2014 2015 2016 2017 2018 2019 201a 201b 201c 201d "
-               + "201e 201f 2020 2021 2022 2023 2024 2025 2026 2027 2030 "
-               + "2031 2032 2033 2034 2035 2036 2037 2038 2039 203a 203b "
-               + "203c 203d 203e 203f 2040 2041 2042 2043 2045 2046 2047 "
-               + "2048 2049 204a 204b 204c 204d 204e 204f 2050 2051 2053 "
-               + "2054 2055 2056 2057 2058 2059 205a 205b 205c 205d 205e "
-               + "207d 207e 208d 208e 2329 232a 2768 2769 276a 276b 276c "
-               + "276d 276e 276f 2770 2771 2772 2773 2774 2775 27c5 27c6 "
-               + "27e6 27e7 27e8 27e9 27ea 27eb 2983 2984 2985 2986 2987 "
-               + "2988 2989 298a 298b 298c 298d 298e 298f 2990 2991 2992 "
-               + "2993 2994 2995 2996 2997 2998 29d8 29d9 29da 29db 29fc "
-               + "29fd 2cf9 2cfa 2cfb 2cfc 2cfe 2cff 2e00 2e01 2e02 2e03 "
-               + "2e04 2e05 2e06 2e07 2e08 2e09 2e0a 2e0b 2e0c 2e0d 2e0e "
-               + "2e0f 2e10 2e11 2e12 2e13 2e14 2e15 2e16 2e17 2e1c 2e1d "
-               + "3001 3002 3003 3008 3009 300a 300b 300c 300d 300e 300f "
-               + "3010 3011 3014 3015 3016 3017 3018 3019 301a 301b 301c "
-               + "301d 301e 301f 3030 303d 30a0 30fb a874 a875 a876 a877 "
-               + "fd3e fd3f fe10 fe11 fe12 fe13 fe14 fe15 fe16 fe17 fe18 "
-               + "fe19 fe30 fe31 fe32 fe33 fe34 fe35 fe36 fe37 fe38 fe39 "
-               + "fe3a fe3b fe3c fe3d fe3e fe3f fe40 fe41 fe42 fe43 fe44 "
-               + "fe45 fe46 fe47 fe48 fe49 fe4a fe4b fe4c fe4d fe4e fe4f "
-               + "fe50 fe51 fe52 fe54 fe55 fe56 fe57 fe58 fe59 fe5a fe5b "
-               + "fe5c fe5d fe5e fe5f fe60 fe61 fe63 fe68 fe6a fe6b ff01 "
-               + "ff02 ff03 ff05 ff06 ff07 ff08 ff09 ff0a ff0c ff0d ff0e "
-               + "ff0f ff1a ff1b ff1f ff20 ff3b ff3c ff3d ff3f ff5b ff5d "
-               + "ff5f ff60 ff61 ff62 ff63 ff64 ff65 found 440 chars.";
-
-               string separators = "20 a0 1680 180e 2000 2001 2002 2003 2004 "
-               + "2005 2006 2007 2008 2009 200a 2028 2029 202f 205f 3000 "
-               + "found 20 chars.";
-
-               string surrogateChars = "d800 d801 d802 d803 d804 d805 d806 "
-               + "d807 d808 d809 d80a d80b d80c d80d d80e d80f d810 d811 "
-               + "d812 d813 d814 d815 d816 d817 d818 d819 d81a d81b d81c "
-               + "d81d d81e d81f d820 d821 d822 d823 d824 d825 d826 d827 "
-               + "d828 d829 d82a d82b d82c d82d d82e d82f d830 d831 d832 "
-               + "d833 d834 d835 d836 d837 d838 d839 d83a d83b d83c d83d "
-               + "d83e d83f d840 d841 d842 d843 d844 d845 d846 d847 d848 "
-               + "d849 d84a d84b d84c d84d d84e d84f d850 d851 d852 d853 "
-               + "d854 d855 d856 d857 d858 d859 d85a d85b d85c d85d d85e "
-               + "d85f d860 d861 d862 d863 d864 d865 d866 d867 d868 d869 "
-               + "d86a d86b d86c d86d d86e d86f d870 d871 d872 d873 d874 "
-               + "d875 d876 d877 d878 d879 d87a d87b d87c d87d d87e d87f "
-               + "d880 d881 d882 d883 d884 d885 d886 d887 d888 d889 d88a "
-               + "d88b d88c d88d d88e d88f d890 d891 d892 d893 d894 d895 "
-               + "d896 d897 d898 d899 d89a d89b d89c d89d d89e d89f d8a0 "
-               + "d8a1 d8a2 d8a3 d8a4 d8a5 d8a6 d8a7 d8a8 d8a9 d8aa d8ab "
-               + "d8ac d8ad d8ae d8af d8b0 d8b1 d8b2 d8b3 d8b4 d8b5 d8b6 "
-               + "d8b7 d8b8 d8b9 d8ba d8bb d8bc d8bd d8be d8bf d8c0 d8c1 "
-               + "d8c2 d8c3 d8c4 d8c5 d8c6 d8c7 d8c8 d8c9 d8ca d8cb d8cc "
-               + "d8cd d8ce d8cf d8d0 d8d1 d8d2 d8d3 d8d4 d8d5 d8d6 d8d7 "
-               + "d8d8 d8d9 d8da d8db d8dc d8dd d8de d8df d8e0 d8e1 d8e2 "
-               + "d8e3 d8e4 d8e5 d8e6 d8e7 d8e8 d8e9 d8ea d8eb d8ec d8ed "
-               + "d8ee d8ef d8f0 d8f1 d8f2 d8f3 d8f4 d8f5 d8f6 d8f7 d8f8 "
-               + "d8f9 d8fa d8fb d8fc d8fd d8fe d8ff d900 d901 d902 d903 "
-               + "d904 d905 d906 d907 d908 d909 d90a d90b d90c d90d d90e "
-               + "d90f d910 d911 d912 d913 d914 d915 d916 d917 d918 d919 "
-               + "d91a d91b d91c d91d d91e d91f d920 d921 d922 d923 d924 "
-               + "d925 d926 d927 d928 d929 d92a d92b d92c d92d d92e d92f "
-               + "d930 d931 d932 d933 d934 d935 d936 d937 d938 d939 d93a "
-               + "d93b d93c d93d d93e d93f d940 d941 d942 d943 d944 d945 "
-               + "d946 d947 d948 d949 d94a d94b d94c d94d d94e d94f d950 "
-               + "d951 d952 d953 d954 d955 d956 d957 d958 d959 d95a d95b "
-               + "d95c d95d d95e d95f d960 d961 d962 d963 d964 d965 d966 "
-               + "d967 d968 d969 d96a d96b d96c d96d d96e d96f d970 d971 "
-               + "d972 d973 d974 d975 d976 d977 d978 d979 d97a d97b d97c "
-               + "d97d d97e d97f d980 d981 d982 d983 d984 d985 d986 d987 "
-               + "d988 d989 d98a d98b d98c d98d d98e d98f d990 d991 d992 "
-               + "d993 d994 d995 d996 d997 d998 d999 d99a d99b d99c d99d "
-               + "d99e d99f d9a0 d9a1 d9a2 d9a3 d9a4 d9a5 d9a6 d9a7 d9a8 "
-               + "d9a9 d9aa d9ab d9ac d9ad d9ae d9af d9b0 d9b1 d9b2 d9b3 "
-               + "d9b4 d9b5 d9b6 d9b7 d9b8 d9b9 d9ba d9bb d9bc d9bd d9be "
-               + "d9bf d9c0 d9c1 d9c2 d9c3 d9c4 d9c5 d9c6 d9c7 d9c8 d9c9 "
-               + "d9ca d9cb d9cc d9cd d9ce d9cf d9d0 d9d1 d9d2 d9d3 d9d4 "
-               + "d9d5 d9d6 d9d7 d9d8 d9d9 d9da d9db d9dc d9dd d9de d9df "
-               + "d9e0 d9e1 d9e2 d9e3 d9e4 d9e5 d9e6 d9e7 d9e8 d9e9 d9ea "
-               + "d9eb d9ec d9ed d9ee d9ef d9f0 d9f1 d9f2 d9f3 d9f4 d9f5 "
-               + "d9f6 d9f7 d9f8 d9f9 d9fa d9fb d9fc d9fd d9fe d9ff da00 "
-               + "da01 da02 da03 da04 da05 da06 da07 da08 da09 da0a da0b "
-               + "da0c da0d da0e da0f da10 da11 da12 da13 da14 da15 da16 "
-               + "da17 da18 da19 da1a da1b da1c da1d da1e da1f da20 da21 "
-               + "da22 da23 da24 da25 da26 da27 da28 da29 da2a da2b da2c "
-               + "da2d da2e da2f da30 da31 da32 da33 da34 da35 da36 da37 "
-               + "da38 da39 da3a da3b da3c da3d da3e da3f da40 da41 da42 "
-               + "da43 da44 da45 da46 da47 da48 da49 da4a da4b da4c da4d "
-               + "da4e da4f da50 da51 da52 da53 da54 da55 da56 da57 da58 "
-               + "da59 da5a da5b da5c da5d da5e da5f da60 da61 da62 da63 "
-               + "da64 da65 da66 da67 da68 da69 da6a da6b da6c da6d da6e "
-               + "da6f da70 da71 da72 da73 da74 da75 da76 da77 da78 da79 "
-               + "da7a da7b da7c da7d da7e da7f da80 da81 da82 da83 da84 "
-               + "da85 da86 da87 da88 da89 da8a da8b da8c da8d da8e da8f "
-               + "da90 da91 da92 da93 da94 da95 da96 da97 da98 da99 da9a "
-               + "da9b da9c da9d da9e da9f daa0 daa1 daa2 daa3 daa4 daa5 "
-               + "daa6 daa7 daa8 daa9 daaa daab daac daad daae daaf dab0 "
-               + "dab1 dab2 dab3 dab4 dab5 dab6 dab7 dab8 dab9 daba dabb "
-               + "dabc dabd dabe dabf dac0 dac1 dac2 dac3 dac4 dac5 dac6 "
-               + "dac7 dac8 dac9 daca dacb dacc dacd dace dacf dad0 dad1 "
-               + "dad2 dad3 dad4 dad5 dad6 dad7 dad8 dad9 dada dadb dadc "
-               + "dadd dade dadf dae0 dae1 dae2 dae3 dae4 dae5 dae6 dae7 "
-               + "dae8 dae9 daea daeb daec daed daee daef daf0 daf1 daf2 "
-               + "daf3 daf4 daf5 daf6 daf7 daf8 daf9 dafa dafb dafc dafd "
-               + "dafe daff db00 db01 db02 db03 db04 db05 db06 db07 db08 "
-               + "db09 db0a db0b db0c db0d db0e db0f db10 db11 db12 db13 "
-               + "db14 db15 db16 db17 db18 db19 db1a db1b db1c db1d db1e "
-               + "db1f db20 db21 db22 db23 db24 db25 db26 db27 db28 db29 "
-               + "db2a db2b db2c db2d db2e db2f db30 db31 db32 db33 db34 "
-               + "db35 db36 db37 db38 db39 db3a db3b db3c db3d db3e db3f "
-               + "db40 db41 db42 db43 db44 db45 db46 db47 db48 db49 db4a "
-               + "db4b db4c db4d db4e db4f db50 db51 db52 db53 db54 db55 "
-               + "db56 db57 db58 db59 db5a db5b db5c db5d db5e db5f db60 "
-               + "db61 db62 db63 db64 db65 db66 db67 db68 db69 db6a db6b "
-               + "db6c db6d db6e db6f db70 db71 db72 db73 db74 db75 db76 "
-               + "db77 db78 db79 db7a db7b db7c db7d db7e db7f db80 db81 "
-               + "db82 db83 db84 db85 db86 db87 db88 db89 db8a db8b db8c "
-               + "db8d db8e db8f db90 db91 db92 db93 db94 db95 db96 db97 "
-               + "db98 db99 db9a db9b db9c db9d db9e db9f dba0 dba1 dba2 "
-               + "dba3 dba4 dba5 dba6 dba7 dba8 dba9 dbaa dbab dbac dbad "
-               + "dbae dbaf dbb0 dbb1 dbb2 dbb3 dbb4 dbb5 dbb6 dbb7 dbb8 "
-               + "dbb9 dbba dbbb dbbc dbbd dbbe dbbf dbc0 dbc1 dbc2 dbc3 "
-               + "dbc4 dbc5 dbc6 dbc7 dbc8 dbc9 dbca dbcb dbcc dbcd dbce "
-               + "dbcf dbd0 dbd1 dbd2 dbd3 dbd4 dbd5 dbd6 dbd7 dbd8 dbd9 "
-               + "dbda dbdb dbdc dbdd dbde dbdf dbe0 dbe1 dbe2 dbe3 dbe4 "
-               + "dbe5 dbe6 dbe7 dbe8 dbe9 dbea dbeb dbec dbed dbee dbef "
-               + "dbf0 dbf1 dbf2 dbf3 dbf4 dbf5 dbf6 dbf7 dbf8 dbf9 dbfa "
-               + "dbfb dbfc dbfd dbfe dbff dc00 dc01 dc02 dc03 dc04 dc05 "
-               + "dc06 dc07 dc08 dc09 dc0a dc0b dc0c dc0d dc0e dc0f dc10 "
-               + "dc11 dc12 dc13 dc14 dc15 dc16 dc17 dc18 dc19 dc1a dc1b "
-               + "dc1c dc1d dc1e dc1f dc20 dc21 dc22 dc23 dc24 dc25 dc26 "
-               + "dc27 dc28 dc29 dc2a dc2b dc2c dc2d dc2e dc2f dc30 dc31 "
-               + "dc32 dc33 dc34 dc35 dc36 dc37 dc38 dc39 dc3a dc3b dc3c "
-               + "dc3d dc3e dc3f dc40 dc41 dc42 dc43 dc44 dc45 dc46 dc47 "
-               + "dc48 dc49 dc4a dc4b dc4c dc4d dc4e dc4f dc50 dc51 dc52 "
-               + "dc53 dc54 dc55 dc56 dc57 dc58 dc59 dc5a dc5b dc5c dc5d "
-               + "dc5e dc5f dc60 dc61 dc62 dc63 dc64 dc65 dc66 dc67 dc68 "
-               + "dc69 dc6a dc6b dc6c dc6d dc6e dc6f dc70 dc71 dc72 dc73 "
-               + "dc74 dc75 dc76 dc77 dc78 dc79 dc7a dc7b dc7c dc7d dc7e "
-               + "dc7f dc80 dc81 dc82 dc83 dc84 dc85 dc86 dc87 dc88 dc89 "
-               + "dc8a dc8b dc8c dc8d dc8e dc8f dc90 dc91 dc92 dc93 dc94 "
-               + "dc95 dc96 dc97 dc98 dc99 dc9a dc9b dc9c dc9d dc9e dc9f "
-               + "dca0 dca1 dca2 dca3 dca4 dca5 dca6 dca7 dca8 dca9 dcaa "
-               + "dcab dcac dcad dcae dcaf dcb0 dcb1 dcb2 dcb3 dcb4 dcb5 "
-               + "dcb6 dcb7 dcb8 dcb9 dcba dcbb dcbc dcbd dcbe dcbf dcc0 "
-               + "dcc1 dcc2 dcc3 dcc4 dcc5 dcc6 dcc7 dcc8 dcc9 dcca dccb "
-               + "dccc dccd dcce dccf dcd0 dcd1 dcd2 dcd3 dcd4 dcd5 dcd6 "
-               + "dcd7 dcd8 dcd9 dcda dcdb dcdc dcdd dcde dcdf dce0 dce1 "
-               + "dce2 dce3 dce4 dce5 dce6 dce7 dce8 dce9 dcea dceb dcec "
-               + "dced dcee dcef dcf0 dcf1 dcf2 dcf3 dcf4 dcf5 dcf6 dcf7 "
-               + "dcf8 dcf9 dcfa dcfb dcfc dcfd dcfe dcff dd00 dd01 dd02 "
-               + "dd03 dd04 dd05 dd06 dd07 dd08 dd09 dd0a dd0b dd0c dd0d "
-               + "dd0e dd0f dd10 dd11 dd12 dd13 dd14 dd15 dd16 dd17 dd18 "
-               + "dd19 dd1a dd1b dd1c dd1d dd1e dd1f dd20 dd21 dd22 dd23 "
-               + "dd24 dd25 dd26 dd27 dd28 dd29 dd2a dd2b dd2c dd2d dd2e "
-               + "dd2f dd30 dd31 dd32 dd33 dd34 dd35 dd36 dd37 dd38 dd39 "
-               + "dd3a dd3b dd3c dd3d dd3e dd3f dd40 dd41 dd42 dd43 dd44 "
-               + "dd45 dd46 dd47 dd48 dd49 dd4a dd4b dd4c dd4d dd4e dd4f "
-               + "dd50 dd51 dd52 dd53 dd54 dd55 dd56 dd57 dd58 dd59 dd5a "
-               + "dd5b dd5c dd5d dd5e dd5f dd60 dd61 dd62 dd63 dd64 dd65 "
-               + "dd66 dd67 dd68 dd69 dd6a dd6b dd6c dd6d dd6e dd6f dd70 "
-               + "dd71 dd72 dd73 dd74 dd75 dd76 dd77 dd78 dd79 dd7a dd7b "
-               + "dd7c dd7d dd7e dd7f dd80 dd81 dd82 dd83 dd84 dd85 dd86 "
-               + "dd87 dd88 dd89 dd8a dd8b dd8c dd8d dd8e dd8f dd90 dd91 "
-               + "dd92 dd93 dd94 dd95 dd96 dd97 dd98 dd99 dd9a dd9b dd9c "
-               + "dd9d dd9e dd9f dda0 dda1 dda2 dda3 dda4 dda5 dda6 dda7 "
-               + "dda8 dda9 ddaa ddab ddac ddad ddae ddaf ddb0 ddb1 ddb2 "
-               + "ddb3 ddb4 ddb5 ddb6 ddb7 ddb8 ddb9 ddba ddbb ddbc ddbd "
-               + "ddbe ddbf ddc0 ddc1 ddc2 ddc3 ddc4 ddc5 ddc6 ddc7 ddc8 "
-               + "ddc9 ddca ddcb ddcc ddcd ddce ddcf ddd0 ddd1 ddd2 ddd3 "
-               + "ddd4 ddd5 ddd6 ddd7 ddd8 ddd9 ddda dddb dddc dddd ddde "
-               + "dddf dde0 dde1 dde2 dde3 dde4 dde5 dde6 dde7 dde8 dde9 "
-               + "ddea ddeb ddec dded ddee ddef ddf0 ddf1 ddf2 ddf3 ddf4 "
-               + "ddf5 ddf6 ddf7 ddf8 ddf9 ddfa ddfb ddfc ddfd ddfe ddff "
-               + "de00 de01 de02 de03 de04 de05 de06 de07 de08 de09 de0a "
-               + "de0b de0c de0d de0e de0f de10 de11 de12 de13 de14 de15 "
-               + "de16 de17 de18 de19 de1a de1b de1c de1d de1e de1f de20 "
-               + "de21 de22 de23 de24 de25 de26 de27 de28 de29 de2a de2b "
-               + "de2c de2d de2e de2f de30 de31 de32 de33 de34 de35 de36 "
-               + "de37 de38 de39 de3a de3b de3c de3d de3e de3f de40 de41 "
-               + "de42 de43 de44 de45 de46 de47 de48 de49 de4a de4b de4c "
-               + "de4d de4e de4f de50 de51 de52 de53 de54 de55 de56 de57 "
-               + "de58 de59 de5a de5b de5c de5d de5e de5f de60 de61 de62 "
-               + "de63 de64 de65 de66 de67 de68 de69 de6a de6b de6c de6d "
-               + "de6e de6f de70 de71 de72 de73 de74 de75 de76 de77 de78 "
-               + "de79 de7a de7b de7c de7d de7e de7f de80 de81 de82 de83 "
-               + "de84 de85 de86 de87 de88 de89 de8a de8b de8c de8d de8e "
-               + "de8f de90 de91 de92 de93 de94 de95 de96 de97 de98 de99 "
-               + "de9a de9b de9c de9d de9e de9f dea0 dea1 dea2 dea3 dea4 "
-               + "dea5 dea6 dea7 dea8 dea9 deaa deab deac dead deae deaf "
-               + "deb0 deb1 deb2 deb3 deb4 deb5 deb6 deb7 deb8 deb9 deba "
-               + "debb debc debd debe debf dec0 dec1 dec2 dec3 dec4 dec5 "
-               + "dec6 dec7 dec8 dec9 deca decb decc decd dece decf ded0 "
-               + "ded1 ded2 ded3 ded4 ded5 ded6 ded7 ded8 ded9 deda dedb "
-               + "dedc dedd dede dedf dee0 dee1 dee2 dee3 dee4 dee5 dee6 "
-               + "dee7 dee8 dee9 deea deeb deec deed deee deef def0 def1 "
-               + "def2 def3 def4 def5 def6 def7 def8 def9 defa defb defc "
-               + "defd defe deff df00 df01 df02 df03 df04 df05 df06 df07 "
-               + "df08 df09 df0a df0b df0c df0d df0e df0f df10 df11 df12 "
-               + "df13 df14 df15 df16 df17 df18 df19 df1a df1b df1c df1d "
-               + "df1e df1f df20 df21 df22 df23 df24 df25 df26 df27 df28 "
-               + "df29 df2a df2b df2c df2d df2e df2f df30 df31 df32 df33 "
-               + "df34 df35 df36 df37 df38 df39 df3a df3b df3c df3d df3e "
-               + "df3f df40 df41 df42 df43 df44 df45 df46 df47 df48 df49 "
-               + "df4a df4b df4c df4d df4e df4f df50 df51 df52 df53 df54 "
-               + "df55 df56 df57 df58 df59 df5a df5b df5c df5d df5e df5f "
-               + "df60 df61 df62 df63 df64 df65 df66 df67 df68 df69 df6a "
-               + "df6b df6c df6d df6e df6f df70 df71 df72 df73 df74 df75 "
-               + "df76 df77 df78 df79 df7a df7b df7c df7d df7e df7f df80 "
-               + "df81 df82 df83 df84 df85 df86 df87 df88 df89 df8a df8b "
-               + "df8c df8d df8e df8f df90 df91 df92 df93 df94 df95 df96 "
-               + "df97 df98 df99 df9a df9b df9c df9d df9e df9f dfa0 dfa1 "
-               + "dfa2 dfa3 dfa4 dfa5 dfa6 dfa7 dfa8 dfa9 dfaa dfab dfac "
-               + "dfad dfae dfaf dfb0 dfb1 dfb2 dfb3 dfb4 dfb5 dfb6 dfb7 "
-               + "dfb8 dfb9 dfba dfbb dfbc dfbd dfbe dfbf dfc0 dfc1 dfc2 "
-               + "dfc3 dfc4 dfc5 dfc6 dfc7 dfc8 dfc9 dfca dfcb dfcc dfcd "
-               + "dfce dfcf dfd0 dfd1 dfd2 dfd3 dfd4 dfd5 dfd6 dfd7 dfd8 "
-               + "dfd9 dfda dfdb dfdc dfdd dfde dfdf dfe0 dfe1 dfe2 dfe3 "
-               + "dfe4 dfe5 dfe6 dfe7 dfe8 dfe9 dfea dfeb dfec dfed dfee "
-               + "dfef dff0 dff1 dff2 dff3 dff4 dff5 dff6 dff7 dff8 dff9 "
-               + "dffa dffb dffc dffd dffe dfff found 2048 chars.";
-
-               string symbolChars = "24 2b 3c 3d 3e 5e 60 7c 7e a2 a3 a4 a5 "
-               + "a6 a7 a8 a9 ac ae af b0 b1 b4 b6 b8 d7 f7 2c2 2c3 2c4 2c5 "
-               + "2d2 2d3 2d4 2d5 2d6 2d7 2d8 2d9 2da 2db 2dc 2dd 2de 2df "
-               + "2e5 2e6 2e7 2e8 2e9 2ea 2eb 2ec 2ed 2ef 2f0 2f1 2f2 2f3 "
-               + "2f4 2f5 2f6 2f7 2f8 2f9 2fa 2fb 2fc 2fd 2fe 2ff 374 375 "
-               + "384 385 3f6 482 60b 60e 60f 6e9 6fd 6fe 7f6 9f2 9f3 9fa "
-               + "af1 b70 bf3 bf4 bf5 bf6 bf7 bf8 bf9 bfa cf1 cf2 e3f f01 "
-               + "f02 f03 f13 f14 f15 f16 f17 f1a f1b f1c f1d f1e f1f f34 "
-               + "f36 f38 fbe fbf fc0 fc1 fc2 fc3 fc4 fc5 fc7 fc8 fc9 fca "
-               + "fcb fcc fcf 1360 1390 1391 1392 1393 1394 1395 1396 1397 "
-               + "1398 1399 17db 1940 19e0 19e1 19e2 19e3 19e4 19e5 19e6 "
-               + "19e7 19e8 19e9 19ea 19eb 19ec 19ed 19ee 19ef 19f0 19f1 "
-               + "19f2 19f3 19f4 19f5 19f6 19f7 19f8 19f9 19fa 19fb 19fc "
-               + "19fd 19fe 19ff 1b61 1b62 1b63 1b64 1b65 1b66 1b67 1b68 "
-               + "1b69 1b6a 1b74 1b75 1b76 1b77 1b78 1b79 1b7a 1b7b 1b7c "
-               + "1fbd 1fbf 1fc0 1fc1 1fcd 1fce 1fcf 1fdd 1fde 1fdf 1fed "
-               + "1fee 1fef 1ffd 1ffe 2044 2052 207a 207b 207c 208a 208b "
-               + "208c 20a0 20a1 20a2 20a3 20a4 20a5 20a6 20a7 20a8 20a9 "
-               + "20aa 20ab 20ac 20ad 20ae 20af 20b0 20b1 20b2 20b3 20b4 "
-               + "20b5 2100 2101 2103 2104 2105 2106 2108 2109 2114 2116 "
-               + "2117 2118 211e 211f 2120 2121 2122 2123 2125 2127 2129 "
-               + "212e 213a 213b 2140 2141 2142 2143 2144 214a 214b 214c "
-               + "214d 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 "
-               + "219a 219b 219c 219d 219e 219f 21a0 21a1 21a2 21a3 21a4 "
-               + "21a5 21a6 21a7 21a8 21a9 21aa 21ab 21ac 21ad 21ae 21af "
-               + "21b0 21b1 21b2 21b3 21b4 21b5 21b6 21b7 21b8 21b9 21ba "
-               + "21bb 21bc 21bd 21be 21bf 21c0 21c1 21c2 21c3 21c4 21c5 "
-               + "21c6 21c7 21c8 21c9 21ca 21cb 21cc 21cd 21ce 21cf 21d0 "
-               + "21d1 21d2 21d3 21d4 21d5 21d6 21d7 21d8 21d9 21da 21db "
-               + "21dc 21dd 21de 21df 21e0 21e1 21e2 21e3 21e4 21e5 21e6 "
-               + "21e7 21e8 21e9 21ea 21eb 21ec 21ed 21ee 21ef 21f0 21f1 "
-               + "21f2 21f3 21f4 21f5 21f6 21f7 21f8 21f9 21fa 21fb 21fc "
-               + "21fd 21fe 21ff 2200 2201 2202 2203 2204 2205 2206 2207 "
-               + "2208 2209 220a 220b 220c 220d 220e 220f 2210 2211 2212 "
-               + "2213 2214 2215 2216 2217 2218 2219 221a 221b 221c 221d "
-               + "221e 221f 2220 2221 2222 2223 2224 2225 2226 2227 2228 "
-               + "2229 222a 222b 222c 222d 222e 222f 2230 2231 2232 2233 "
-               + "2234 2235 2236 2237 2238 2239 223a 223b 223c 223d 223e "
-               + "223f 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 "
-               + "224a 224b 224c 224d 224e 224f 2250 2251 2252 2253 2254 "
-               + "2255 2256 2257 2258 2259 225a 225b 225c 225d 225e 225f "
-               + "2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 226a "
-               + "226b 226c 226d 226e 226f 2270 2271 2272 2273 2274 2275 "
-               + "2276 2277 2278 2279 227a 227b 227c 227d 227e 227f 2280 "
-               + "2281 2282 2283 2284 2285 2286 2287 2288 2289 228a 228b "
-               + "228c 228d 228e 228f 2290 2291 2292 2293 2294 2295 2296 "
-               + "2297 2298 2299 229a 229b 229c 229d 229e 229f 22a0 22a1 "
-               + "22a2 22a3 22a4 22a5 22a6 22a7 22a8 22a9 22aa 22ab 22ac "
-               + "22ad 22ae 22af 22b0 22b1 22b2 22b3 22b4 22b5 22b6 22b7 "
-               + "22b8 22b9 22ba 22bb 22bc 22bd 22be 22bf 22c0 22c1 22c2 "
-               + "22c3 22c4 22c5 22c6 22c7 22c8 22c9 22ca 22cb 22cc 22cd "
-               + "22ce 22cf 22d0 22d1 22d2 22d3 22d4 22d5 22d6 22d7 22d8 "
-               + "22d9 22da 22db 22dc 22dd 22de 22df 22e0 22e1 22e2 22e3 "
-               + "22e4 22e5 22e6 22e7 22e8 22e9 22ea 22eb 22ec 22ed 22ee "
-               + "22ef 22f0 22f1 22f2 22f3 22f4 22f5 22f6 22f7 22f8 22f9 "
-               + "22fa 22fb 22fc 22fd 22fe 22ff 2300 2301 2302 2303 2304 "
-               + "2305 2306 2307 2308 2309 230a 230b 230c 230d 230e 230f "
-               + "2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 231a "
-               + "231b 231c 231d 231e 231f 2320 2321 2322 2323 2324 2325 "
-               + "2326 2327 2328 232b 232c 232d 232e 232f 2330 2331 2332 "
-               + "2333 2334 2335 2336 2337 2338 2339 233a 233b 233c 233d "
-               + "233e 233f 2340 2341 2342 2343 2344 2345 2346 2347 2348 "
-               + "2349 234a 234b 234c 234d 234e 234f 2350 2351 2352 2353 "
-               + "2354 2355 2356 2357 2358 2359 235a 235b 235c 235d 235e "
-               + "235f 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 "
-               + "236a 236b 236c 236d 236e 236f 2370 2371 2372 2373 2374 "
-               + "2375 2376 2377 2378 2379 237a 237b 237c 237d 237e 237f "
-               + "2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 238a "
-               + "238b 238c 238d 238e 238f 2390 2391 2392 2393 2394 2395 "
-               + "2396 2397 2398 2399 239a 239b 239c 239d 239e 239f 23a0 "
-               + "23a1 23a2 23a3 23a4 23a5 23a6 23a7 23a8 23a9 23aa 23ab "
-               + "23ac 23ad 23ae 23af 23b0 23b1 23b2 23b3 23b4 23b5 23b6 "
-               + "23b7 23b8 23b9 23ba 23bb 23bc 23bd 23be 23bf 23c0 23c1 "
-               + "23c2 23c3 23c4 23c5 23c6 23c7 23c8 23c9 23ca 23cb 23cc "
-               + "23cd 23ce 23cf 23d0 23d1 23d2 23d3 23d4 23d5 23d6 23d7 "
-               + "23d8 23d9 23da 23db 23dc 23dd 23de 23df 23e0 23e1 23e2 "
-               + "23e3 23e4 23e5 23e6 23e7 2400 2401 2402 2403 2404 2405 "
-               + "2406 2407 2408 2409 240a 240b 240c 240d 240e 240f 2410 "
-               + "2411 2412 2413 2414 2415 2416 2417 2418 2419 241a 241b "
-               + "241c 241d 241e 241f 2420 2421 2422 2423 2424 2425 2426 "
-               + "2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 244a "
-               + "249c 249d 249e 249f 24a0 24a1 24a2 24a3 24a4 24a5 24a6 "
-               + "24a7 24a8 24a9 24aa 24ab 24ac 24ad 24ae 24af 24b0 24b1 "
-               + "24b2 24b3 24b4 24b5 24b6 24b7 24b8 24b9 24ba 24bb 24bc "
-               + "24bd 24be 24bf 24c0 24c1 24c2 24c3 24c4 24c5 24c6 24c7 "
-               + "24c8 24c9 24ca 24cb 24cc 24cd 24ce 24cf 24d0 24d1 24d2 "
-               + "24d3 24d4 24d5 24d6 24d7 24d8 24d9 24da 24db 24dc 24dd "
-               + "24de 24df 24e0 24e1 24e2 24e3 24e4 24e5 24e6 24e7 24e8 "
-               + "24e9 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 "
-               + "250a 250b 250c 250d 250e 250f 2510 2511 2512 2513 2514 "
-               + "2515 2516 2517 2518 2519 251a 251b 251c 251d 251e 251f "
-               + "2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 252a "
-               + "252b 252c 252d 252e 252f 2530 2531 2532 2533 2534 2535 "
-               + "2536 2537 2538 2539 253a 253b 253c 253d 253e 253f 2540 "
-               + "2541 2542 2543 2544 2545 2546 2547 2548 2549 254a 254b "
-               + "254c 254d 254e 254f 2550 2551 2552 2553 2554 2555 2556 "
-               + "2557 2558 2559 255a 255b 255c 255d 255e 255f 2560 2561 "
-               + "2562 2563 2564 2565 2566 2567 2568 2569 256a 256b 256c "
-               + "256d 256e 256f 2570 2571 2572 2573 2574 2575 2576 2577 "
-               + "2578 2579 257a 257b 257c 257d 257e 257f 2580 2581 2582 "
-               + "2583 2584 2585 2586 2587 2588 2589 258a 258b 258c 258d "
-               + "258e 258f 2590 2591 2592 2593 2594 2595 2596 2597 2598 "
-               + "2599 259a 259b 259c 259d 259e 259f 25a0 25a1 25a2 25a3 "
-               + "25a4 25a5 25a6 25a7 25a8 25a9 25aa 25ab 25ac 25ad 25ae "
-               + "25af 25b0 25b1 25b2 25b3 25b4 25b5 25b6 25b7 25b8 25b9 "
-               + "25ba 25bb 25bc 25bd 25be 25bf 25c0 25c1 25c2 25c3 25c4 "
-               + "25c5 25c6 25c7 25c8 25c9 25ca 25cb 25cc 25cd 25ce 25cf "
-               + "25d0 25d1 25d2 25d3 25d4 25d5 25d6 25d7 25d8 25d9 25da "
-               + "25db 25dc 25dd 25de 25df 25e0 25e1 25e2 25e3 25e4 25e5 "
-               + "25e6 25e7 25e8 25e9 25ea 25eb 25ec 25ed 25ee 25ef 25f0 "
-               + "25f1 25f2 25f3 25f4 25f5 25f6 25f7 25f8 25f9 25fa 25fb "
-               + "25fc 25fd 25fe 25ff 2600 2601 2602 2603 2604 2605 2606 "
-               + "2607 2608 2609 260a 260b 260c 260d 260e 260f 2610 2611 "
-               + "2612 2613 2614 2615 2616 2617 2618 2619 261a 261b 261c "
-               + "261d 261e 261f 2620 2621 2622 2623 2624 2625 2626 2627 "
-               + "2628 2629 262a 262b 262c 262d 262e 262f 2630 2631 2632 "
-               + "2633 2634 2635 2636 2637 2638 2639 263a 263b 263c 263d "
-               + "263e 263f 2640 2641 2642 2643 2644 2645 2646 2647 2648 "
-               + "2649 264a 264b 264c 264d 264e 264f 2650 2651 2652 2653 "
-               + "2654 2655 2656 2657 2658 2659 265a 265b 265c 265d 265e "
-               + "265f 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 "
-               + "266a 266b 266c 266d 266e 266f 2670 2671 2672 2673 2674 "
-               + "2675 2676 2677 2678 2679 267a 267b 267c 267d 267e 267f "
-               + "2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 268a "
-               + "268b 268c 268d 268e 268f 2690 2691 2692 2693 2694 2695 "
-               + "2696 2697 2698 2699 269a 269b 269c 26a0 26a1 26a2 26a3 "
-               + "26a4 26a5 26a6 26a7 26a8 26a9 26aa 26ab 26ac 26ad 26ae "
-               + "26af 26b0 26b1 26b2 2701 2702 2703 2704 2706 2707 2708 "
-               + "2709 270c 270d 270e 270f 2710 2711 2712 2713 2714 2715 "
-               + "2716 2717 2718 2719 271a 271b 271c 271d 271e 271f 2720 "
-               + "2721 2722 2723 2724 2725 2726 2727 2729 272a 272b 272c "
-               + "272d 272e 272f 2730 2731 2732 2733 2734 2735 2736 2737 "
-               + "2738 2739 273a 273b 273c 273d 273e 273f 2740 2741 2742 "
-               + "2743 2744 2745 2746 2747 2748 2749 274a 274b 274d 274f "
-               + "2750 2751 2752 2756 2758 2759 275a 275b 275c 275d 275e "
-               + "2761 2762 2763 2764 2765 2766 2767 2794 2798 2799 279a "
-               + "279b 279c 279d 279e 279f 27a0 27a1 27a2 27a3 27a4 27a5 "
-               + "27a6 27a7 27a8 27a9 27aa 27ab 27ac 27ad 27ae 27af 27b1 "
-               + "27b2 27b3 27b4 27b5 27b6 27b7 27b8 27b9 27ba 27bb 27bc "
-               + "27bd 27be 27c0 27c1 27c2 27c3 27c4 27c7 27c8 27c9 27ca "
-               + "27d0 27d1 27d2 27d3 27d4 27d5 27d6 27d7 27d8 27d9 27da "
-               + "27db 27dc 27dd 27de 27df 27e0 27e1 27e2 27e3 27e4 27e5 "
-               + "27f0 27f1 27f2 27f3 27f4 27f5 27f6 27f7 27f8 27f9 27fa "
-               + "27fb 27fc 27fd 27fe 27ff 2800 2801 2802 2803 2804 2805 "
-               + "2806 2807 2808 2809 280a 280b 280c 280d 280e 280f 2810 "
-               + "2811 2812 2813 2814 2815 2816 2817 2818 2819 281a 281b "
-               + "281c 281d 281e 281f 2820 2821 2822 2823 2824 2825 2826 "
-               + "2827 2828 2829 282a 282b 282c 282d 282e 282f 2830 2831 "
-               + "2832 2833 2834 2835 2836 2837 2838 2839 283a 283b 283c "
-               + "283d 283e 283f 2840 2841 2842 2843 2844 2845 2846 2847 "
-               + "2848 2849 284a 284b 284c 284d 284e 284f 2850 2851 2852 "
-               + "2853 2854 2855 2856 2857 2858 2859 285a 285b 285c 285d "
-               + "285e 285f 2860 2861 2862 2863 2864 2865 2866 2867 2868 "
-               + "2869 286a 286b 286c 286d 286e 286f 2870 2871 2872 2873 "
-               + "2874 2875 2876 2877 2878 2879 287a 287b 287c 287d 287e "
-               + "287f 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 "
-               + "288a 288b 288c 288d 288e 288f 2890 2891 2892 2893 2894 "
-               + "2895 2896 2897 2898 2899 289a 289b 289c 289d 289e 289f "
-               + "28a0 28a1 28a2 28a3 28a4 28a5 28a6 28a7 28a8 28a9 28aa "
-               + "28ab 28ac 28ad 28ae 28af 28b0 28b1 28b2 28b3 28b4 28b5 "
-               + "28b6 28b7 28b8 28b9 28ba 28bb 28bc 28bd 28be 28bf 28c0 "
-               + "28c1 28c2 28c3 28c4 28c5 28c6 28c7 28c8 28c9 28ca 28cb "
-               + "28cc 28cd 28ce 28cf 28d0 28d1 28d2 28d3 28d4 28d5 28d6 "
-               + "28d7 28d8 28d9 28da 28db 28dc 28dd 28de 28df 28e0 28e1 "
-               + "28e2 28e3 28e4 28e5 28e6 28e7 28e8 28e9 28ea 28eb 28ec "
-               + "28ed 28ee 28ef 28f0 28f1 28f2 28f3 28f4 28f5 28f6 28f7 "
-               + "28f8 28f9 28fa 28fb 28fc 28fd 28fe 28ff 2900 2901 2902 "
-               + "2903 2904 2905 2906 2907 2908 2909 290a 290b 290c 290d "
-               + "290e 290f 2910 2911 2912 2913 2914 2915 2916 2917 2918 "
-               + "2919 291a 291b 291c 291d 291e 291f 2920 2921 2922 2923 "
-               + "2924 2925 2926 2927 2928 2929 292a 292b 292c 292d 292e "
-               + "292f 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 "
-               + "293a 293b 293c 293d 293e 293f 2940 2941 2942 2943 2944 "
-               + "2945 2946 2947 2948 2949 294a 294b 294c 294d 294e 294f "
-               + "2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 295a "
-               + "295b 295c 295d 295e 295f 2960 2961 2962 2963 2964 2965 "
-               + "2966 2967 2968 2969 296a 296b 296c 296d 296e 296f 2970 "
-               + "2971 2972 2973 2974 2975 2976 2977 2978 2979 297a 297b "
-               + "297c 297d 297e 297f 2980 2981 2982 2999 299a 299b 299c "
-               + "299d 299e 299f 29a0 29a1 29a2 29a3 29a4 29a5 29a6 29a7 "
-               + "29a8 29a9 29aa 29ab 29ac 29ad 29ae 29af 29b0 29b1 29b2 "
-               + "29b3 29b4 29b5 29b6 29b7 29b8 29b9 29ba 29bb 29bc 29bd "
-               + "29be 29bf 29c0 29c1 29c2 29c3 29c4 29c5 29c6 29c7 29c8 "
-               + "29c9 29ca 29cb 29cc 29cd 29ce 29cf 29d0 29d1 29d2 29d3 "
-               + "29d4 29d5 29d6 29d7 29dc 29dd 29de 29df 29e0 29e1 29e2 "
-               + "29e3 29e4 29e5 29e6 29e7 29e8 29e9 29ea 29eb 29ec 29ed "
-               + "29ee 29ef 29f0 29f1 29f2 29f3 29f4 29f5 29f6 29f7 29f8 "
-               + "29f9 29fa 29fb 29fe 29ff 2a00 2a01 2a02 2a03 2a04 2a05 "
-               + "2a06 2a07 2a08 2a09 2a0a 2a0b 2a0c 2a0d 2a0e 2a0f 2a10 "
-               + "2a11 2a12 2a13 2a14 2a15 2a16 2a17 2a18 2a19 2a1a 2a1b "
-               + "2a1c 2a1d 2a1e 2a1f 2a20 2a21 2a22 2a23 2a24 2a25 2a26 "
-               + "2a27 2a28 2a29 2a2a 2a2b 2a2c 2a2d 2a2e 2a2f 2a30 2a31 "
-               + "2a32 2a33 2a34 2a35 2a36 2a37 2a38 2a39 2a3a 2a3b 2a3c "
-               + "2a3d 2a3e 2a3f 2a40 2a41 2a42 2a43 2a44 2a45 2a46 2a47 "
-               + "2a48 2a49 2a4a 2a4b 2a4c 2a4d 2a4e 2a4f 2a50 2a51 2a52 "
-               + "2a53 2a54 2a55 2a56 2a57 2a58 2a59 2a5a 2a5b 2a5c 2a5d "
-               + "2a5e 2a5f 2a60 2a61 2a62 2a63 2a64 2a65 2a66 2a67 2a68 "
-               + "2a69 2a6a 2a6b 2a6c 2a6d 2a6e 2a6f 2a70 2a71 2a72 2a73 "
-               + "2a74 2a75 2a76 2a77 2a78 2a79 2a7a 2a7b 2a7c 2a7d 2a7e "
-               + "2a7f 2a80 2a81 2a82 2a83 2a84 2a85 2a86 2a87 2a88 2a89 "
-               + "2a8a 2a8b 2a8c 2a8d 2a8e 2a8f 2a90 2a91 2a92 2a93 2a94 "
-               + "2a95 2a96 2a97 2a98 2a99 2a9a 2a9b 2a9c 2a9d 2a9e 2a9f "
-               + "2aa0 2aa1 2aa2 2aa3 2aa4 2aa5 2aa6 2aa7 2aa8 2aa9 2aaa "
-               + "2aab 2aac 2aad 2aae 2aaf 2ab0 2ab1 2ab2 2ab3 2ab4 2ab5 "
-               + "2ab6 2ab7 2ab8 2ab9 2aba 2abb 2abc 2abd 2abe 2abf 2ac0 "
-               + "2ac1 2ac2 2ac3 2ac4 2ac5 2ac6 2ac7 2ac8 2ac9 2aca 2acb "
-               + "2acc 2acd 2ace 2acf 2ad0 2ad1 2ad2 2ad3 2ad4 2ad5 2ad6 "
-               + "2ad7 2ad8 2ad9 2ada 2adb 2adc 2add 2ade 2adf 2ae0 2ae1 "
-               + "2ae2 2ae3 2ae4 2ae5 2ae6 2ae7 2ae8 2ae9 2aea 2aeb 2aec "
-               + "2aed 2aee 2aef 2af0 2af1 2af2 2af3 2af4 2af5 2af6 2af7 "
-               + "2af8 2af9 2afa 2afb 2afc 2afd 2afe 2aff 2b00 2b01 2b02 "
-               + "2b03 2b04 2b05 2b06 2b07 2b08 2b09 2b0a 2b0b 2b0c 2b0d "
-               + "2b0e 2b0f 2b10 2b11 2b12 2b13 2b14 2b15 2b16 2b17 2b18 "
-               + "2b19 2b1a 2b20 2b21 2b22 2b23 2ce5 2ce6 2ce7 2ce8 2ce9 "
-               + "2cea 2e80 2e81 2e82 2e83 2e84 2e85 2e86 2e87 2e88 2e89 "
-               + "2e8a 2e8b 2e8c 2e8d 2e8e 2e8f 2e90 2e91 2e92 2e93 2e94 "
-               + "2e95 2e96 2e97 2e98 2e99 2e9b 2e9c 2e9d 2e9e 2e9f 2ea0 "
-               + "2ea1 2ea2 2ea3 2ea4 2ea5 2ea6 2ea7 2ea8 2ea9 2eaa 2eab "
-               + "2eac 2ead 2eae 2eaf 2eb0 2eb1 2eb2 2eb3 2eb4 2eb5 2eb6 "
-               + "2eb7 2eb8 2eb9 2eba 2ebb 2ebc 2ebd 2ebe 2ebf 2ec0 2ec1 "
-               + "2ec2 2ec3 2ec4 2ec5 2ec6 2ec7 2ec8 2ec9 2eca 2ecb 2ecc "
-               + "2ecd 2ece 2ecf 2ed0 2ed1 2ed2 2ed3 2ed4 2ed5 2ed6 2ed7 "
-               + "2ed8 2ed9 2eda 2edb 2edc 2edd 2ede 2edf 2ee0 2ee1 2ee2 "
-               + "2ee3 2ee4 2ee5 2ee6 2ee7 2ee8 2ee9 2eea 2eeb 2eec 2eed "
-               + "2eee 2eef 2ef0 2ef1 2ef2 2ef3 2f00 2f01 2f02 2f03 2f04 "
-               + "2f05 2f06 2f07 2f08 2f09 2f0a 2f0b 2f0c 2f0d 2f0e 2f0f "
-               + "2f10 2f11 2f12 2f13 2f14 2f15 2f16 2f17 2f18 2f19 2f1a "
-               + "2f1b 2f1c 2f1d 2f1e 2f1f 2f20 2f21 2f22 2f23 2f24 2f25 "
-               + "2f26 2f27 2f28 2f29 2f2a 2f2b 2f2c 2f2d 2f2e 2f2f 2f30 "
-               + "2f31 2f32 2f33 2f34 2f35 2f36 2f37 2f38 2f39 2f3a 2f3b "
-               + "2f3c 2f3d 2f3e 2f3f 2f40 2f41 2f42 2f43 2f44 2f45 2f46 "
-               + "2f47 2f48 2f49 2f4a 2f4b 2f4c 2f4d 2f4e 2f4f 2f50 2f51 "
-               + "2f52 2f53 2f54 2f55 2f56 2f57 2f58 2f59 2f5a 2f5b 2f5c "
-               + "2f5d 2f5e 2f5f 2f60 2f61 2f62 2f63 2f64 2f65 2f66 2f67 "
-               + "2f68 2f69 2f6a 2f6b 2f6c 2f6d 2f6e 2f6f 2f70 2f71 2f72 "
-               + "2f73 2f74 2f75 2f76 2f77 2f78 2f79 2f7a 2f7b 2f7c 2f7d "
-               + "2f7e 2f7f 2f80 2f81 2f82 2f83 2f84 2f85 2f86 2f87 2f88 "
-               + "2f89 2f8a 2f8b 2f8c 2f8d 2f8e 2f8f 2f90 2f91 2f92 2f93 "
-               + "2f94 2f95 2f96 2f97 2f98 2f99 2f9a 2f9b 2f9c 2f9d 2f9e "
-               + "2f9f 2fa0 2fa1 2fa2 2fa3 2fa4 2fa5 2fa6 2fa7 2fa8 2fa9 "
-               + "2faa 2fab 2fac 2fad 2fae 2faf 2fb0 2fb1 2fb2 2fb3 2fb4 "
-               + "2fb5 2fb6 2fb7 2fb8 2fb9 2fba 2fbb 2fbc 2fbd 2fbe 2fbf "
-               + "2fc0 2fc1 2fc2 2fc3 2fc4 2fc5 2fc6 2fc7 2fc8 2fc9 2fca "
-               + "2fcb 2fcc 2fcd 2fce 2fcf 2fd0 2fd1 2fd2 2fd3 2fd4 2fd5 "
-               + "2ff0 2ff1 2ff2 2ff3 2ff4 2ff5 2ff6 2ff7 2ff8 2ff9 2ffa "
-               + "2ffb 3004 3012 3013 3020 3036 3037 303e 303f 309b 309c "
-               + "3190 3191 3196 3197 3198 3199 319a 319b 319c 319d 319e "
-               + "319f 31c0 31c1 31c2 31c3 31c4 31c5 31c6 31c7 31c8 31c9 "
-               + "31ca 31cb 31cc 31cd 31ce 31cf 3200 3201 3202 3203 3204 "
-               + "3205 3206 3207 3208 3209 320a 320b 320c 320d 320e 320f "
-               + "3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 321a "
-               + "321b 321c 321d 321e 322a 322b 322c 322d 322e 322f 3230 "
-               + "3231 3232 3233 3234 3235 3236 3237 3238 3239 323a 323b "
-               + "323c 323d 323e 323f 3240 3241 3242 3243 3250 3260 3261 "
-               + "3262 3263 3264 3265 3266 3267 3268 3269 326a 326b 326c "
-               + "326d 326e 326f 3270 3271 3272 3273 3274 3275 3276 3277 "
-               + "3278 3279 327a 327b 327c 327d 327e 327f 328a 328b 328c "
-               + "328d 328e 328f 3290 3291 3292 3293 3294 3295 3296 3297 "
-               + "3298 3299 329a 329b 329c 329d 329e 329f 32a0 32a1 32a2 "
-               + "32a3 32a4 32a5 32a6 32a7 32a8 32a9 32aa 32ab 32ac 32ad "
-               + "32ae 32af 32b0 32c0 32c1 32c2 32c3 32c4 32c5 32c6 32c7 "
-               + "32c8 32c9 32ca 32cb 32cc 32cd 32ce 32cf 32d0 32d1 32d2 "
-               + "32d3 32d4 32d5 32d6 32d7 32d8 32d9 32da 32db 32dc 32dd "
-               + "32de 32df 32e0 32e1 32e2 32e3 32e4 32e5 32e6 32e7 32e8 "
-               + "32e9 32ea 32eb 32ec 32ed 32ee 32ef 32f0 32f1 32f2 32f3 "
-               + "32f4 32f5 32f6 32f7 32f8 32f9 32fa 32fb 32fc 32fd 32fe "
-               + "3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 330a "
-               + "330b 330c 330d 330e 330f 3310 3311 3312 3313 3314 3315 "
-               + "3316 3317 3318 3319 331a 331b 331c 331d 331e 331f 3320 "
-               + "3321 3322 3323 3324 3325 3326 3327 3328 3329 332a 332b "
-               + "332c 332d 332e 332f 3330 3331 3332 3333 3334 3335 3336 "
-               + "3337 3338 3339 333a 333b 333c 333d 333e 333f 3340 3341 "
-               + "3342 3343 3344 3345 3346 3347 3348 3349 334a 334b 334c "
-               + "334d 334e 334f 3350 3351 3352 3353 3354 3355 3356 3357 "
-               + "3358 3359 335a 335b 335c 335d 335e 335f 3360 3361 3362 "
-               + "3363 3364 3365 3366 3367 3368 3369 336a 336b 336c 336d "
-               + "336e 336f 3370 3371 3372 3373 3374 3375 3376 3377 3378 "
-               + "3379 337a 337b 337c 337d 337e 337f 3380 3381 3382 3383 "
-               + "3384 3385 3386 3387 3388 3389 338a 338b 338c 338d 338e "
-               + "338f 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 "
-               + "339a 339b 339c 339d 339e 339f 33a0 33a1 33a2 33a3 33a4 "
-               + "33a5 33a6 33a7 33a8 33a9 33aa 33ab 33ac 33ad 33ae 33af "
-               + "33b0 33b1 33b2 33b3 33b4 33b5 33b6 33b7 33b8 33b9 33ba "
-               + "33bb 33bc 33bd 33be 33bf 33c0 33c1 33c2 33c3 33c4 33c5 "
-               + "33c6 33c7 33c8 33c9 33ca 33cb 33cc 33cd 33ce 33cf 33d0 "
-               + "33d1 33d2 33d3 33d4 33d5 33d6 33d7 33d8 33d9 33da 33db "
-               + "33dc 33dd 33de 33df 33e0 33e1 33e2 33e3 33e4 33e5 33e6 "
-               + "33e7 33e8 33e9 33ea 33eb 33ec 33ed 33ee 33ef 33f0 33f1 "
-               + "33f2 33f3 33f4 33f5 33f6 33f7 33f8 33f9 33fa 33fb 33fc "
-               + "33fd 33fe 33ff 4dc0 4dc1 4dc2 4dc3 4dc4 4dc5 4dc6 4dc7 "
-               + "4dc8 4dc9 4dca 4dcb 4dcc 4dcd 4dce 4dcf 4dd0 4dd1 4dd2 "
-               + "4dd3 4dd4 4dd5 4dd6 4dd7 4dd8 4dd9 4dda 4ddb 4ddc 4ddd "
-               + "4dde 4ddf 4de0 4de1 4de2 4de3 4de4 4de5 4de6 4de7 4de8 "
-               + "4de9 4dea 4deb 4dec 4ded 4dee 4def 4df0 4df1 4df2 4df3 "
-               + "4df4 4df5 4df6 4df7 4df8 4df9 4dfa 4dfb 4dfc 4dfd 4dfe "
-               + "4dff a490 a491 a492 a493 a494 a495 a496 a497 a498 a499 "
-               + "a49a a49b a49c a49d a49e a49f a4a0 a4a1 a4a2 a4a3 a4a4 "
-               + "a4a5 a4a6 a4a7 a4a8 a4a9 a4aa a4ab a4ac a4ad a4ae a4af "
-               + "a4b0 a4b1 a4b2 a4b3 a4b4 a4b5 a4b6 a4b7 a4b8 a4b9 a4ba "
-               + "a4bb a4bc a4bd a4be a4bf a4c0 a4c1 a4c2 a4c3 a4c4 a4c5 "
-               + "a4c6 a700 a701 a702 a703 a704 a705 a706 a707 a708 a709 "
-               + "a70a a70b a70c a70d a70e a70f a710 a711 a712 a713 a714 "
-               + "a715 a716 a720 a721 a828 a829 a82a a82b fb29 fdfc fdfd "
-               + "fe62 fe64 fe65 fe66 fe69 ff04 ff0b ff1c ff1d ff1e ff3e "
-               + "ff40 ff5c ff5e ffe0 ffe1 ffe2 ffe3 ffe4 ffe5 ffe6 ffe8 "
-               + "ffe9 ffea ffeb ffec ffed ffee fffc fffd found 3394 chars.";
-
-               string upperChars = "41 42 43 44 45 46 47 48 49 4a 4b 4c 4d "
-               + "4e 4f 50 51 52 53 54 55 56 57 58 59 5a c0 c1 c2 c3 c4 c5 "
-               + "c6 c7 c8 c9 ca cb cc cd ce cf d0 d1 d2 d3 d4 d5 d6 d8 d9 "
-               + "da db dc dd de 100 102 104 106 108 10a 10c 10e 110 112 114 "
-               + "116 118 11a 11c 11e 120 122 124 126 128 12a 12c 12e 130 "
-               + "132 134 136 139 13b 13d 13f 141 143 145 147 14a 14c 14e "
-               + "150 152 154 156 158 15a 15c 15e 160 162 164 166 168 16a "
-               + "16c 16e 170 172 174 176 178 179 17b 17d 181 182 184 186 "
-               + "187 189 18a 18b 18e 18f 190 191 193 194 196 197 198 19c "
-               + "19d 19f 1a0 1a2 1a4 1a6 1a7 1a9 1ac 1ae 1af 1b1 1b2 1b3 "
-               + "1b5 1b7 1b8 1bc 1c4 1c7 1ca 1cd 1cf 1d1 1d3 1d5 1d7 1d9 "
-               + "1db 1de 1e0 1e2 1e4 1e6 1e8 1ea 1ec 1ee 1f1 1f4 1f6 1f7 "
-               + "1f8 1fa 1fc 1fe 200 202 204 206 208 20a 20c 20e 210 212 "
-               + "214 216 218 21a 21c 21e 220 222 224 226 228 22a 22c 22e "
-               + "230 232 23a 23b 23d 23e 241 243 244 245 246 248 24a 24c "
-               + "24e 386 388 389 38a 38c 38e 38f 391 392 393 394 395 396 "
-               + "397 398 399 39a 39b 39c 39d 39e 39f 3a0 3a1 3a3 3a4 3a5 "
-               + "3a6 3a7 3a8 3a9 3aa 3ab 3d2 3d3 3d4 3d8 3da 3dc 3de 3e0 "
-               + "3e2 3e4 3e6 3e8 3ea 3ec 3ee 3f4 3f7 3f9 3fa 3fd 3fe 3ff "
-               + "400 401 402 403 404 405 406 407 408 409 40a 40b 40c 40d "
-               + "40e 40f 410 411 412 413 414 415 416 417 418 419 41a 41b "
-               + "41c 41d 41e 41f 420 421 422 423 424 425 426 427 428 429 "
-               + "42a 42b 42c 42d 42e 42f 460 462 464 466 468 46a 46c 46e "
-               + "470 472 474 476 478 47a 47c 47e 480 48a 48c 48e 490 492 "
-               + "494 496 498 49a 49c 49e 4a0 4a2 4a4 4a6 4a8 4aa 4ac 4ae "
-               + "4b0 4b2 4b4 4b6 4b8 4ba 4bc 4be 4c0 4c1 4c3 4c5 4c7 4c9 "
-               + "4cb 4cd 4d0 4d2 4d4 4d6 4d8 4da 4dc 4de 4e0 4e2 4e4 4e6 "
-               + "4e8 4ea 4ec 4ee 4f0 4f2 4f4 4f6 4f8 4fa 4fc 4fe 500 502 "
-               + "504 506 508 50a 50c 50e 510 512 531 532 533 534 535 536 "
-               + "537 538 539 53a 53b 53c 53d 53e 53f 540 541 542 543 544 "
-               + "545 546 547 548 549 54a 54b 54c 54d 54e 54f 550 551 552 "
-               + "553 554 555 556 10a0 10a1 10a2 10a3 10a4 10a5 10a6 10a7 "
-               + "10a8 10a9 10aa 10ab 10ac 10ad 10ae 10af 10b0 10b1 10b2 "
-               + "10b3 10b4 10b5 10b6 10b7 10b8 10b9 10ba 10bb 10bc 10bd "
-               + "10be 10bf 10c0 10c1 10c2 10c3 10c4 10c5 1e00 1e02 1e04 "
-               + "1e06 1e08 1e0a 1e0c 1e0e 1e10 1e12 1e14 1e16 1e18 1e1a "
-               + "1e1c 1e1e 1e20 1e22 1e24 1e26 1e28 1e2a 1e2c 1e2e 1e30 "
-               + "1e32 1e34 1e36 1e38 1e3a 1e3c 1e3e 1e40 1e42 1e44 1e46 "
-               + "1e48 1e4a 1e4c 1e4e 1e50 1e52 1e54 1e56 1e58 1e5a 1e5c "
-               + "1e5e 1e60 1e62 1e64 1e66 1e68 1e6a 1e6c 1e6e 1e70 1e72 "
-               + "1e74 1e76 1e78 1e7a 1e7c 1e7e 1e80 1e82 1e84 1e86 1e88 "
-               + "1e8a 1e8c 1e8e 1e90 1e92 1e94 1ea0 1ea2 1ea4 1ea6 1ea8 "
-               + "1eaa 1eac 1eae 1eb0 1eb2 1eb4 1eb6 1eb8 1eba 1ebc 1ebe "
-               + "1ec0 1ec2 1ec4 1ec6 1ec8 1eca 1ecc 1ece 1ed0 1ed2 1ed4 "
-               + "1ed6 1ed8 1eda 1edc 1ede 1ee0 1ee2 1ee4 1ee6 1ee8 1eea "
-               + "1eec 1eee 1ef0 1ef2 1ef4 1ef6 1ef8 1f08 1f09 1f0a 1f0b "
-               + "1f0c 1f0d 1f0e 1f0f 1f18 1f19 1f1a 1f1b 1f1c 1f1d 1f28 "
-               + "1f29 1f2a 1f2b 1f2c 1f2d 1f2e 1f2f 1f38 1f39 1f3a 1f3b "
-               + "1f3c 1f3d 1f3e 1f3f 1f48 1f49 1f4a 1f4b 1f4c 1f4d 1f59 "
-               + "1f5b 1f5d 1f5f 1f68 1f69 1f6a 1f6b 1f6c 1f6d 1f6e 1f6f "
-               + "1fb8 1fb9 1fba 1fbb 1fc8 1fc9 1fca 1fcb 1fd8 1fd9 1fda "
-               + "1fdb 1fe8 1fe9 1fea 1feb 1fec 1ff8 1ff9 1ffa 1ffb 2102 "
-               + "2107 210b 210c 210d 2110 2111 2112 2115 2119 211a 211b "
-               + "211c 211d 2124 2126 2128 212a 212b 212c 212d 2130 2131 "
-               + "2132 2133 213e 213f 2145 2183 2c00 2c01 2c02 2c03 2c04 "
-               + "2c05 2c06 2c07 2c08 2c09 2c0a 2c0b 2c0c 2c0d 2c0e 2c0f "
-               + "2c10 2c11 2c12 2c13 2c14 2c15 2c16 2c17 2c18 2c19 2c1a "
-               + "2c1b 2c1c 2c1d 2c1e 2c1f 2c20 2c21 2c22 2c23 2c24 2c25 "
-               + "2c26 2c27 2c28 2c29 2c2a 2c2b 2c2c 2c2d 2c2e 2c60 2c62 "
-               + "2c63 2c64 2c67 2c69 2c6b 2c75 2c80 2c82 2c84 2c86 2c88 "
-               + "2c8a 2c8c 2c8e 2c90 2c92 2c94 2c96 2c98 2c9a 2c9c 2c9e "
-               + "2ca0 2ca2 2ca4 2ca6 2ca8 2caa 2cac 2cae 2cb0 2cb2 2cb4 "
-               + "2cb6 2cb8 2cba 2cbc 2cbe 2cc0 2cc2 2cc4 2cc6 2cc8 2cca "
-               + "2ccc 2cce 2cd0 2cd2 2cd4 2cd6 2cd8 2cda 2cdc 2cde 2ce0 "
-               + "2ce2 ff21 ff22 ff23 ff24 ff25 ff26 ff27 ff28 ff29 ff2a "
-               + "ff2b ff2c ff2d ff2e ff2f ff30 ff31 ff32 ff33 ff34 ff35 "
-               + "ff36 ff37 ff38 ff39 ff3a found 836 chars.";
-
-               string whitespaceChars = "9 a b c d 20 85 a0 1680 180e 2000 "
-               + "2001 2002 2003 2004 2005 2006 2007 2008 2009 200a 2028 "
-               + "2029 202f 205f 3000 found 26 chars.";
-#endif
-
                string letters = "";
                string letterOrDigits = "";
        }
index 3005231aee2f28d303685292d4f7b71b650c2fe1..bf2c172df880ad081fec6f968cbe16e169a3067e 100644 (file)
@@ -569,6 +569,12 @@ public class CharTest
                Assert.AreEqual(b6, Char.ToUpper(a6), "char uppered");
        }
 
+       [Test]
+       public void TestToUpperInvariant ()
+       {
+               Assert.AreEqual ('\u01c5', char.ToUpperInvariant ('\u01c5'));
+       }
+
        [Test]
        public void TestToString()
        {
index 0e3076b1184f41ee557a224b7784f629e241d532..5a45d64493050b13161728a1daeeae89d3b3de51 100644 (file)
@@ -2528,9 +2528,7 @@ namespace MonoTests.System
                        DateTime expected2 = new DateTime (2011, 03, 22, 08, 32, 00, DateTimeKind.Utc);
 
                        string [] cultures = new string [] {"es-ES", "en-US", "en-GB", "de-DE", "fr-FR"
-#if NET_4_0
                                ,"es", "en", "de", "fr"
-#endif
                                };
                        
                        foreach (string culture in cultures) {
index c750ee11e3e70280f930dffdd2d4f94a7084748e..0a2173d49fd892f8fd3a5f096050a0be4ab5a351 100644 (file)
@@ -673,7 +673,6 @@ namespace MonoTests.System
                        Assert.AreEqual (TestingEnum3.Test, Enum.Parse (t1.GetType (), "18446744073709551615", false));
                }
 
-#if NET_4_0
                [Test]
                public void TryParseErrors ()
                {
@@ -736,7 +735,6 @@ namespace MonoTests.System
                        Assert.AreEqual (true, success, "#E1");
                        Assert.AreEqual (TestingEnum.Is, result, "#E2");
                }
-#endif
 
                [Test]
                public void ToObject_EnumType_Int32 ()
@@ -1139,7 +1137,6 @@ namespace MonoTests.System
                        negative = -1
                }
 
-#if NET_4_0
                // Our first implementation used to crash
                [Test]
                public void HasFlagTest ()
@@ -1147,7 +1144,6 @@ namespace MonoTests.System
                        Foo f = Foo.negative;
                        bool has = f.HasFlag (Foo.negative);
                }
-#endif
 
                [Test]
                [ExpectedException (typeof (ArgumentNullException))]
index 4409250fab98220bfdf7fbd4450c1c304675b167..1e730c8857d6f9b9f2fd394a7bbd9756420de4b4 100644 (file)
@@ -110,7 +110,6 @@ namespace MonoCasTests.System {
                        Environment.CurrentDirectory = cd;
                }
 
-#if !RUN_ONDOTNET || NET_4_0 // Disabled because .net 2 fails to load dll with "Failure decoding embedded permission set object" due to "/" path
 
                [Test]
                [FileIOPermission (SecurityAction.Deny, PathDiscovery = "/")]
@@ -129,7 +128,6 @@ namespace MonoCasTests.System {
                        // now that the stack is set, call the method
                        string s = Environment.GetFolderPath (Environment.SpecialFolder.Personal);
                }               
-#endif
 
                [Test]
                public void CurrentDirectory_Set_FileIOPermission ()
@@ -513,4 +511,4 @@ namespace MonoCasTests.System {
        }
 }
 
-#endif
\ No newline at end of file
+#endif
index f805e332563a72027dfdd2e170b499cdf3046c6e..82b7566f7003ac41f9c6c959b13764043fa16119 100644 (file)
@@ -127,7 +127,6 @@ namespace MonoCasTests.System {
                        }
                }
 
-#if !RUN_ONDOTNET || NET_4_0 // Disabled because .net 2 fails to load dll with "Failure decoding embedded permission set object" due to "/" path
 
                [Test]
                [FileIOPermission (SecurityAction.Deny, PathDiscovery = "/")]
@@ -157,6 +156,5 @@ namespace MonoCasTests.System {
                        }
                }
                
-#endif
        }
 }
index 463d54a9b5e65b398b76a83dba112c9a830d7f7c..697ebb79062e15c8400e2a0c2a6423b3aa36452f 100644 (file)
@@ -294,20 +294,10 @@ namespace MonoTests.System {
                        Assert.AreEqual ("00010203-0405-0607-0809-0a0b0c0d0e0f", g.ToString (""), "A6");
                        Assert.AreEqual ("00010203-0405-0607-0809-0a0b0c0d0e0f", g.ToString ((string)null), "A7");
                        Assert.AreEqual ("{00010203-0405-0607-0809-0a0b0c0d0e0f}", g.ToString ("B", null), "A10");
-#if NET_4_0
                        Assert.AreEqual ("{0x00010203,0x0405,0x0607,{0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f}}", g.ToString ("x"), "A11");
                        Assert.AreEqual ("{0x00010203,0x0405,0x0607,{0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f}}", g.ToString ("X"), "A11");
-#endif
                }
 
-#if !NET_4_0
-               [Test]
-               [ExpectedException (typeof (FormatException))]
-               public void ToString_UnsupportedFormat ()
-               {
-                       new Guid (0x00010203, 0x0405, 0x0607, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f).ToString ("X");
-               }
-#endif
 
                [Test]
                [ExpectedException (typeof (FormatException))]
@@ -351,7 +341,6 @@ namespace MonoTests.System {
                        new Guid ("{0x00010203,0x0405,0x0607,{0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f}}aaaa");
                }
 
-#if NET_4_0
 
                /*
                        N = new Guid ("000102030405060708090a0b0c0d0e0f"); 
@@ -445,6 +434,5 @@ namespace MonoTests.System {
                        Assert.IsFalse (Guid.TryParseExact("foobar", null, out guid), "A5");
                        Assert.AreEqual (Guid.Empty, guid, "A6");
                }
-#endif
        }
 }
index 04e33a90f7ca1ebff835250902a1dc1476a26e22..ba965817e0c746e43ee20bc0315c85a70fc0d3b9 100644 (file)
@@ -405,7 +405,7 @@ namespace MonoTests.System
                public void TestIEEERemainder ()
                {
                        double a = Math.IEEERemainder (y, x);
-                       double b = 0.0050000000000007816;
+                       double b = 0.0050000000000010592;
 
                        Assert.IsTrue ((Math.Abs (a - b) <= double_epsilon), a.ToString ("G99")
                                + " != " + b.ToString ("G99"));
@@ -456,7 +456,8 @@ namespace MonoTests.System
                        // MS docs say this should be PositiveInfinity
                        Assert.IsTrue (Math.Log (0, y) == double.NegativeInfinity);
                        Assert.IsTrue (Math.Log (double.PositiveInfinity, y) == double.PositiveInfinity);
-                       Assert.IsTrue (Math.Log (x, double.PositiveInfinity) == 0);
+
+                       Assert.IsTrue (Double.IsNaN (Math.Log (x, double.PositiveInfinity)));
                }
 
                [Test]
@@ -479,80 +480,118 @@ namespace MonoTests.System
                [Test]
                public void TestPow ()
                {
+                       double precision;
                        int iTest = 1;
-
-                       try {
-                               double a = Math.Pow (y, x);
-                               double b = 1.363609446060212;
-
-                               Assert.IsTrue ((Math.Abs (a - b) <= double_epsilon), a.ToString ("G99") + " != " + b.ToString ("G99"));
-                               iTest++;
-                               Assert.IsTrue (double.IsNaN (Math.Pow (y, double.NaN)));
-                               iTest++;
-                               Assert.IsTrue (double.IsNaN (Math.Pow (double.NaN, x)));
-                               iTest++;
-                               Assert.IsTrue (double.IsNegativeInfinity (Math.Pow (double.NegativeInfinity, 1)),
-                                       "Math.Pow(double.NegativeInfinity, 1) should be NegativeInfinity");
-                               iTest++;
-                               Assert.IsTrue (double.IsPositiveInfinity (Math.Pow (double.NegativeInfinity, 2)),
-                                       "Math.Pow(double.NegativeInfinity, 2) should be PositiveInfinity");
-
-                               // MS docs say this should be 0
-                               iTest++;
-                               Assert.IsTrue (double.IsNaN (Math.Pow (1, double.NegativeInfinity)));
-                               iTest++;
-                               Assert.AreEqual ((double) 0, Math.Pow (double.PositiveInfinity, double.NegativeInfinity),
-                                       "Math.Pow(double.PositiveInfinity, double.NegativeInfinity)");
-                               iTest++;
-                               Assert.IsTrue (double.IsPositiveInfinity (Math.Pow (double.PositiveInfinity, 1)),
-                                       "Math.Pow(double.PositiveInfinity, 1) should be PositiveInfinity");
-
-                               // MS docs say this should be PositiveInfinity
-                               iTest++;
-                               Assert.IsTrue (double.IsNaN (Math.Pow (1, double.PositiveInfinity)),
-                                       "Math.Pow(1, double.PositiveInfinity) should be NaN");
-
-                               iTest++;
-                               Assert.IsTrue (Double.IsNaN (Math.Pow (1, Double.NaN)),
-                                       "Math.Pow(1, NaN) should be NaN");
-                               iTest++;
-                               Assert.IsTrue (Double.IsNaN (Math.Pow (Double.NaN, 0)),
-                                       "Math.Pow(NaN, 0) should be NaN");
-                               iTest++;
-                               Assert.IsTrue (1.0 == Math.Pow (-1, Double.MaxValue),
-                                       "Math.Pow(-1, MaxValue) should be 1.0");
-
-                               iTest++;
-                               Assert.IsTrue (1.0 == Math.Pow (-1, Double.MinValue),
-                                       "Math.Pow(-1, MinValue) should be 1.0");
-
-                               iTest++;
-                               Assert.IsTrue (Double.IsPositiveInfinity (Math.Pow (Double.MinValue,
-                                       Double.MaxValue)), "Math.Pow(MinValue, MaxValue) should be +Infinity");
-
-                               iTest++;
-                               Assert.IsTrue (0.0 == Math.Pow (Double.MinValue, Double.MinValue),
-                                       "Math.Pow(MinValue, MinValue) should be 0.0");
-
-                               //
-                               // The following bugs were present because we tried to outsmart the C Pow:
-                               //
-                               double infinity = Double.PositiveInfinity;
-                               Assert.IsTrue (Math.Pow (0.5, infinity) == 0.0,
-                                       "Math.Pow(0.5, Infinity) == 0.0");
-                               Assert.IsTrue (Math.Pow (0.5, -infinity) == infinity,
-                                       "Math.Pow(0.5, -Infinity) == Infinity");
-                               Assert.IsTrue (Math.Pow (2, infinity) == infinity,
-                                       "Math.Pow(2, Infinity) == Infinity");
-                               Assert.IsTrue (Math.Pow (2, -infinity) == 0.0,
-                                       "Math.Pow(2, -Infinity) == 0");
-                               Assert.IsTrue (Math.Pow (infinity, 0) == 1.0,
-                                       "Math.Pow(Infinity, 0) == 1.0");
-                               Assert.IsTrue (Math.Pow (-infinity, 0) == 1.0,
-                                       "Math.Pow(-Infinity, 0) == 1.0");
-                       } catch (Exception e) {
-                               Assert.Fail ("Unexpected exception at iTest=" + iTest + ". e=" + e);
-                       }
+#if MONODROID
+                       // It fails on Nexus 9 with
+                       //
+                       //   1.3636094460602122 != 1.3636094460602119
+                       //
+                       // when using double_epsilon. Precision differs between different ARM CPUs, so we
+                       // will just use a more conservative value
+                       precision = double_epsilon * 10;
+#else
+                       precision = double_epsilon;
+#endif
+
+                       /* documentation cases : https://msdn.microsoft.com/en-us/library/system.math.pow%28v=vs.110%29.aspx */
+
+                       /* x or y = NaN -> NaN */
+                       Assert.IsNaN (Math.Pow (             double.NaN,              double.NaN), "#1");
+                       Assert.IsNaN (Math.Pow (             double.NaN, double.NegativeInfinity), "#2");
+                       Assert.IsNaN (Math.Pow (             double.NaN,                      -2), "#2");
+                       Assert.IsNaN (Math.Pow (             double.NaN,                      -1), "#3");
+                       Assert.IsNaN (Math.Pow (             double.NaN,                       0), "#4");
+                       Assert.IsNaN (Math.Pow (             double.NaN,                       1), "#5");
+                       Assert.IsNaN (Math.Pow (             double.NaN,                       2), "#6");
+                       Assert.IsNaN (Math.Pow (             double.NaN, double.PositiveInfinity), "#7");
+                       Assert.IsNaN (Math.Pow (double.NegativeInfinity,              double.NaN), "#8");
+                       Assert.IsNaN (Math.Pow (                     -2,              double.NaN), "#9");
+                       Assert.IsNaN (Math.Pow (                     -1,              double.NaN), "#10");
+                       Assert.IsNaN (Math.Pow (                      0,              double.NaN), "#11");
+                       Assert.IsNaN (Math.Pow (                      1,              double.NaN), "#12");
+                       Assert.IsNaN (Math.Pow (                      2,              double.NaN), "#13");
+                       Assert.IsNaN (Math.Pow (double.PositiveInfinity,              double.NaN), "#14");
+
+                       /* x = Any value except NaN; y = 0 -> 1 */
+                       Assert.AreEqual ((double) 1, Math.Pow (2, 0), "#15");
+
+                       /* x = NegativeInfinity; y < 0 -> 0 */
+                       Assert.AreEqual ((double) 0, Math.Pow (double.NegativeInfinity, -2), "#16");
+
+                       /* x = NegativeInfinity; y is a positive odd integer -> NegativeInfinity */
+                       Assert.AreEqual (double.NegativeInfinity, Math.Pow (double.NegativeInfinity, 3), "#17");
+
+                       /* x = NegativeInfinity; y is positive but not an odd integer -> PositiveInfinity */
+                       Assert.AreEqual (double.PositiveInfinity, Math.Pow (double.NegativeInfinity, 2), "#18");
+
+                       /* x < 0 but not NegativeInfinity; y is not an integer, NegativeInfinity, or PositiveInfinity -> NaN */
+                       Assert.IsNaN (Math.Pow (-1, 2.5), "#19");
+
+                       /* x = -1; y = NegativeInfinity or PositiveInfinity -> NaN */
+                       Assert.IsNaN (Math.Pow (-1, double.PositiveInfinity), "#20");
+                       Assert.IsNaN (Math.Pow (-1, double.NegativeInfinity), "#21");
+
+                       /* -1 < x < 1; y = NegativeInfinity -> PositiveInfinity */
+                       Assert.AreEqual (double.PositiveInfinity, Math.Pow (-0.5, double.NegativeInfinity), "#22");
+                       Assert.AreEqual (double.PositiveInfinity, Math.Pow (+0.5, double.NegativeInfinity), "#23");
+
+                       /* -1 < x < 1; y = PositiveInfinity -> 0 */
+                       Assert.AreEqual ((double) 0, Math.Pow (-0.5, double.PositiveInfinity), "#24");
+                       Assert.AreEqual ((double) 0, Math.Pow (+0.5, double.PositiveInfinity), "#25");
+
+                       /* x < -1 or x > 1; y = NegativeInfinity -> 0 */
+                       Assert.AreEqual ((double) 0, Math.Pow (-2, double.NegativeInfinity), "#26");
+                       Assert.AreEqual ((double) 0, Math.Pow (+2, double.NegativeInfinity), "#27");
+
+                       /* x < -1 or x > 1; y = PositiveInfinity -> PositiveInfinity */
+                       Assert.AreEqual (double.PositiveInfinity, Math.Pow (-2, double.PositiveInfinity), "#28");
+                       Assert.AreEqual (double.PositiveInfinity, Math.Pow (+2, double.PositiveInfinity), "#29");
+
+                       /* x = 0; y < 0 -> PositiveInfinity */
+                       Assert.AreEqual (double.PositiveInfinity, Math.Pow (0, -2), "#30");
+
+                       /* x = 0; y > 0 -> PositiveInfinity */
+                       Assert.AreEqual ((double) 0, Math.Pow (0, +2), "#31");
+
+                       /* x = 1; y is any value except NaN -> 1 */
+                       Assert.AreEqual ((double) 1, Math.Pow (1, double.NegativeInfinity), "#32");
+                       Assert.AreEqual ((double) 1, Math.Pow (1,                      -2), "#33");
+                       Assert.AreEqual ((double) 1, Math.Pow (1,                       0), "#34");
+                       Assert.AreEqual ((double) 1, Math.Pow (1,                      +2), "#35");
+                       Assert.AreEqual ((double) 1, Math.Pow (1, double.PositiveInfinity), "#36");
+
+                       /* x = PositiveInfinity; y < 0 -> 0 */
+                       Assert.AreEqual ((double) 0, Math.Pow (double.PositiveInfinity, -1), "#37");
+                       Assert.AreEqual ((double) 0, Math.Pow (double.PositiveInfinity, -2), "#38");
+
+                       /* x = PositiveInfinity; y > 0 -> PositiveInfinity */
+                       Assert.AreEqual (double.PositiveInfinity, Math.Pow (double.PositiveInfinity, 1), "#39");
+                       Assert.AreEqual (double.PositiveInfinity, Math.Pow (double.PositiveInfinity, 2), "#40");
+
+                       /* other cases */
+
+                       double a = Math.Pow (y, x);
+                       double b = 1.363609446060212;
+
+                       Assert.IsTrue (Math.Abs (a - b) <= precision, "#41 " + a.ToString ("G99") + " != " + b.ToString ("G99") + " +/- " + precision.ToString ("G99"));
+                       Assert.AreEqual (double.NegativeInfinity, Math.Pow (double.NegativeInfinity, 1), "#42");
+                       Assert.AreEqual (double.PositiveInfinity, Math.Pow (double.NegativeInfinity, 2), "#43");
+
+                       Assert.AreEqual (Math.Pow (double.PositiveInfinity, double.NegativeInfinity), (double) 0, "#44");
+
+                       Assert.AreEqual ((double) 1, Math.Pow (-1, Double.MaxValue), "#45");
+                       Assert.AreEqual ((double) 1, Math.Pow (-1, Double.MinValue), "#46");
+                       Assert.AreEqual ((double) 0, Math.Pow (Double.MinValue, Double.MinValue), "#47");
+                       Assert.AreEqual (double.PositiveInfinity, Math.Pow (Double.MinValue, Double.MaxValue), "#48");
+
+                       double infinity = double.PositiveInfinity;
+                       Assert.AreEqual ((double) 0, Math.Pow (      0.5,  infinity), "#49");
+                       Assert.AreEqual (  infinity, Math.Pow (      0.5, -infinity), "#50");
+                       Assert.AreEqual (  infinity, Math.Pow (        2,  infinity), "#51");
+                       Assert.AreEqual ((double) 0, Math.Pow (        2, -infinity), "#52");
+                       Assert.AreEqual ((double) 1, Math.Pow ( infinity,         0), "#53");
+                       Assert.AreEqual ((double) 1, Math.Pow (-infinity,         0), "#54");
                }
 
                [Test]
index 74570292985d0e3c02e90e5d03a21dd4521dbb03..293479eb851d41f9a6c6a9e89f083f3743b88257 100644 (file)
@@ -3769,9 +3769,7 @@ public class StringTest
                Assert.AreEqual ("original", "\u2028original\u2029".Trim (), "net_2_0 additional char#1");
                Assert.AreEqual ("original", "\u0085original\u1680".Trim (), "net_2_0 additional char#2");
 
-#if NET_4_0
                Assert.AreEqual ("", "\x9\xa\xb\xc\xd\x20\x85\xa0\x1680\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2009\x200a\x2028\x2029\x202f\x205f\x3000".Trim (), "net_4_0 changes #1");
-#endif
        }
 
        [Test]
@@ -3944,9 +3942,7 @@ public class StringTest
                chunks = s1.Split(c2, 0);
                Assert.AreEqual (0, chunks.Length, "Zero split");
 
-#if NET_4_0
                Assert.AreEqual (0, "\x9\xa\xb\xc\xd\x20\x85\xa0\x1680\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2009\x200a\x2028\x2029\x202f\x205f\x3000".Split ((char[]) null, StringSplitOptions.RemoveEmptyEntries).Length, "net_4_0 changes");
-#endif
        }
 
        [Test]
index bab1c5f36e988207cebe4eaf9702dd28f9155ceb..feb0224fbd70f90c8ff9d6ad0001406b3814d0f7 100644 (file)
@@ -638,14 +638,10 @@ public class TimeSpanTest {
                ParseHelper (" 13:45:15 ",false, false, "13:45:15");
                ParseHelper (" -1:2:3 ", false, false, "-01:02:03");
 
-#if NET_4_0
                // In 4.0 when the first part is out of range, it parses it as day.
                ParseHelper (" 25:11:12 ", false, false, "25.11:12:00");
                ParseHelper (" 24:11:12 ", false, false, "24.11:12:00");
                ParseHelper (" 23:11:12 ", false, false, "23:11:12");
-#else
-               ParseHelper (" 25:0:0 ",false, true, "dontcare");
-#endif
 
                ParseHelper ("-21.23:59:59.9999999", false, false, "-21.23:59:59.9999999");
                ParseHelper ("10:12  ", false, false, "10:12:00");
@@ -655,14 +651,9 @@ public class TimeSpanTest {
                ParseHelper ("24:60:60", false, true, "dontcare");
                ParseHelper ("0001:0002:0003.12     ", false, false, "01:02:03.1200000");
 
-#if NET_4_0
                // In 4.0 when a section has more than 7 digits an OverflowException is thrown.
                ParseHelper (" 1:2:3:12345678 ", false, true, "dontcare");
-#else
-               ParseHelper (" 1:2:3:12345678 ", true, false, "dontcare"); 
-#endif
 
-#if NET_4_0
                ParseHelper ("10:11:12:13", false, false, "10.11:12:13"); // Days using : instead of . as separator
                ParseHelper ("10.11", true, false, "dontcare"); // days+hours is invalid
 
@@ -679,7 +670,6 @@ public class TimeSpanTest {
                        // restore culture
                        Thread.CurrentThread.CurrentCulture = prev_culture;
                }
-#endif
 
                ParseHelper ("00:00:00", false, false, "00:00:00");
                ParseHelper ("00:10:00", false, false, "00:10:00");
@@ -740,19 +730,11 @@ public class TimeSpanTest {
        {
                // hours should be between 0 and 23 but format is also invalid (too many dots)
                // In 2.0 overflow as precedence over format, but not in 4.0
-#if NET_4_0
                try {
                        TimeSpan.Parse ("0.99.99.0");
                        Assert.Fail ("#A1");
                } catch (FormatException) {
                }
-#else
-               try {
-                       TimeSpan.Parse ("0.99.99.0");
-                       Assert.Fail ("#A1");
-               } catch (OverflowException) {
-               }
-#endif
                try {
                        TimeSpan.Parse ("0.999999999999.99.0");
                        Assert.Fail ("#A2");
@@ -820,12 +802,7 @@ public class TimeSpanTest {
                Assert.AreEqual (false, TimeSpan.TryParse ("100000000000000.1:1:1", out result), "#E1");
                Assert.AreEqual (false, TimeSpan.TryParse ("24:60:60", out result), "#E2");
 
-#if NET_4_0
-               Assert.AreEqual (true, TimeSpan.TryParse ("0001:0002:0003.12     ", out result), "#F1");
-#else
                Assert.AreEqual (true, TimeSpan.TryParse ("0001:0002:0003.12     ", out result), "#F1");
-               Assert.AreEqual ("01:02:03.1200000", result.ToString (), "#F2");
-#endif
 
                Assert.AreEqual (false, TimeSpan.TryParse (" 1:2:3:12345678 ", out result), "#G1");
 
@@ -835,7 +812,6 @@ public class TimeSpanTest {
                Assert.AreEqual (true, TimeSpan.TryParse ("-10675199.02:48:05.4775808", out result), "MinValue#1");
                Assert.AreEqual (TimeSpan.MinValue, result, "MinValue#2");
 
-#if NET_4_0
                // Force the use of french culture -which is using a non common NumberDecimalSeparator-
                // as current culture, to show that the Parse method is *actually* being culture sensitive
                CultureInfo french_culture = CultureInfo.GetCultureInfo ("fr-FR");
@@ -849,7 +825,6 @@ public class TimeSpanTest {
                        // restore culture
                        Thread.CurrentThread.CurrentCulture = prev_culture;
                }
-#endif
        }
 
        [Test]
@@ -862,7 +837,6 @@ public class TimeSpanTest {
                Assert.AreEqual (false, TimeSpan.TryParse ("-10675199.02:48:05.4775809", out result), "UnderMinValue");
        }
 
-#if NET_4_0
        [Test]
        public void TryParseOverloads ()
        { 
@@ -1341,7 +1315,6 @@ public class TimeSpanTest {
                {
                }
        }
-#endif
 }
 
 }
index 42f0a3ec4521dfa6e5bb9a21c5d330e17c4f1d3e..003cea8ddfe9d5348b3e2a36ebf1f543b3f6c2dc 100644 (file)
@@ -451,11 +451,7 @@ namespace MonoTests.System
                                DateTime utc = DateTime.UtcNow;
                                Assert.AreEqual(utc.Kind, DateTimeKind.Utc);
                                DateTime converted = TimeZoneInfo.ConvertTimeFromUtc(utc, TimeZoneInfo.Local);
-                       #if NET_4_0
                                Assert.AreEqual(DateTimeKind.Local, converted.Kind);
-                       #else
-                               Assert.AreEqual(DateTimeKind.Unspecified, converted.Kind);
-                       #endif
                                DateTime back = TimeZoneInfo.ConvertTimeToUtc(converted, TimeZoneInfo.Local);
                                Assert.AreEqual(back.Kind, DateTimeKind.Utc);
                                Assert.AreEqual(utc, back);
index cf410e785547f1f5f4b1bff593a903bf9e7df7b6..2372267a5c8f100cb5b88e892643a7d80d019715 100644 (file)
@@ -26,7 +26,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_4_0
 
 using System;
 using NUnit.Framework;
@@ -60,4 +59,3 @@ namespace MonoTests.System
        }
 }
 
-#endif
\ No newline at end of file
index 9f87bcd74d19a29f1b4e41b2d7171f2c1af2835c..0b550c046a0e30c7f5d5858c2be372a1c4e5dc4e 100644 (file)
@@ -3487,7 +3487,6 @@ namespace MonoTests.System
                        Assert.AreSame (typeof (Foo<>), type.DeclaringType, "#1");
                }
 
-#if NET_4_0
                interface IGetInterfaceMap<in T>
                {
                    string Bar (T t);
@@ -4044,7 +4043,6 @@ namespace MonoTests.System
                public void IsAssignableFromWithNullable () {
             Console.WriteLine(typeof(IEnumerable<int?>).IsAssignableFrom(typeof(IEnumerable<int>)));
                }
-#endif
 
                [Test]
                public void GetTypeParseGenericCorrectly () { //Bug #15124
index f435ff9a9f3e718f191d61110c4f15136716274a..e753883217b2baa813529670799f65e4e9fbc03a 100644 (file)
@@ -32,6 +32,7 @@ using NUnit.Framework;
 
 namespace MonoTests.System
 {
+#if !MONODROID // Type load segfaults the runtime on ARM64 (https://gist.github.com/grendello/334d06c45376602a9afc)
        [TestFixture]
        public class TypedReferenceTest
        {
@@ -65,4 +66,5 @@ namespace MonoTests.System
                        Assert.AreEqual ("5", TypedReference.ToObject (r));
                }
        }
+#endif
 }
index ff7b152e2b56153091428070b6b89174e7145907..f74822fdbf8b34cfaed76592e0f0ba5e2ead857d 100644 (file)
@@ -249,7 +249,6 @@ namespace MonoTests.System
                        Assert.AreEqual (1, v1235.CompareTo (v1234), "1235-1234");
                }
 
-#if NET_4_0
                [Test]
                public void Parse ()
                {
@@ -359,6 +358,5 @@ namespace MonoTests.System
                        Assert.AreEqual (null, result, "#L1");
                        Assert.AreEqual (false, success, "#L2");
                }
-#endif
        }
 }
diff --git a/mcs/class/corlib/coreclr/AsyncLocal.cs b/mcs/class/corlib/coreclr/AsyncLocal.cs
new file mode 100644 (file)
index 0000000..5b7b61f
--- /dev/null
@@ -0,0 +1,123 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.Contracts;
+using System.Security;
+
+namespace System.Threading
+{
+    //
+    // AsyncLocal<T> represents "ambient" data that is local to a given asynchronous control flow, such as an
+    // async method.  For example, say you want to associate a culture with a given async flow:
+    //
+    // static AsyncLocal<Culture> s_currentCulture = new AsyncLocal<Culture>();
+    //
+    // static async Task SomeOperationAsync(Culture culture)
+    // {
+    //    s_currentCulture.Value = culture;
+    //
+    //    await FooAsync();
+    // }
+    //
+    // static async Task FooAsync()
+    // {
+    //    PrintStringWithCulture(s_currentCulture.Value);
+    // }
+    //
+    // AsyncLocal<T> also provides optional notifications when the value associated with the current thread
+    // changes, either because it was explicitly changed by setting the Value property, or implicitly changed
+    // when the thread encountered an "await" or other context transition.  For example, we might want our
+    // current culture to be communicated to the OS as well:
+    //
+    // static AsyncLocal<Culture> s_currentCulture = new AsyncLocal<Culture>(
+    //   args =>
+    //   {
+    //      NativeMethods.SetThreadCulture(args.CurrentValue.LCID);
+    //   });
+    //
+    public sealed class AsyncLocal<T> : IAsyncLocal
+    {
+        [SecurityCritical] // critical because this action will terminate the process if it throws.
+        private readonly Action<AsyncLocalValueChangedArgs<T>> m_valueChangedHandler;
+
+        //
+        // Constructs an AsyncLocal<T> that does not receive change notifications.
+        //
+        public AsyncLocal() 
+        {
+        }
+
+        //
+        // Constructs an AsyncLocal<T> with a delegate that is called whenever the current value changes
+        // on any thread.
+        //
+        [SecurityCritical]
+        public AsyncLocal(Action<AsyncLocalValueChangedArgs<T>> valueChangedHandler) 
+        {
+            m_valueChangedHandler = valueChangedHandler;
+        }
+
+        public T Value
+        {
+            [SecuritySafeCritical]
+            get 
+            { 
+#if MONO
+                throw new NotImplementedException ();
+#else                
+                object obj = ExecutionContext.GetLocalValue(this);
+                return (obj == null) ? default(T) : (T)obj;
+#endif                
+            }
+            [SecuritySafeCritical]
+            set 
+            {
+#if MONO
+                throw new NotImplementedException ();
+#else                
+                ExecutionContext.SetLocalValue(this, value, m_valueChangedHandler != null); 
+#endif
+            }
+        }
+
+        [SecurityCritical]
+        void IAsyncLocal.OnValueChanged(object previousValueObj, object currentValueObj, bool contextChanged)
+        {
+            Contract.Assert(m_valueChangedHandler != null);
+            T previousValue = previousValueObj == null ? default(T) : (T)previousValueObj;
+            T currentValue = currentValueObj == null ? default(T) : (T)currentValueObj;
+            m_valueChangedHandler(new AsyncLocalValueChangedArgs<T>(previousValue, currentValue, contextChanged));
+        }
+    }
+
+    //
+    // Interface to allow non-generic code in ExecutionContext to call into the generic AsyncLocal<T> type.
+    //
+    internal interface IAsyncLocal
+    {
+        [SecurityCritical]
+        void OnValueChanged(object previousValue, object currentValue, bool contextChanged);
+    }
+
+    public struct AsyncLocalValueChangedArgs<T>
+    {
+        public T PreviousValue { get; private set; }
+        public T CurrentValue { get; private set; }
+        
+        //
+        // If the value changed because we changed to a different ExecutionContext, this is true.  If it changed
+        // because someone set the Value property, this is false.
+        //
+        public bool ThreadContextChanged { get; private set; }
+
+        internal AsyncLocalValueChangedArgs(T previousValue, T currentValue, bool contextChanged)
+            : this()
+        {
+            PreviousValue = previousValue;
+            CurrentValue = currentValue;
+            ThreadContextChanged = contextChanged;
+        }
+    }
+}
\ No newline at end of file
diff --git a/mcs/class/corlib/coreclr/DisablePrivateReflectionAttribute.cs b/mcs/class/corlib/coreclr/DisablePrivateReflectionAttribute.cs
new file mode 100644 (file)
index 0000000..c510478
--- /dev/null
@@ -0,0 +1,17 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+
+namespace System.Runtime.CompilerServices
+{
+    using System;
+
+    [AttributeUsage(AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)]
+    public sealed class DisablePrivateReflectionAttribute : Attribute
+    {
+        public DisablePrivateReflectionAttribute() {}
+    }
+}
+
diff --git a/mcs/class/corlib/coreclr/EncodingProvider.cs b/mcs/class/corlib/coreclr/EncodingProvider.cs
new file mode 100644 (file)
index 0000000..82024ce
--- /dev/null
@@ -0,0 +1,136 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+namespace System.Text
+{
+    using System;
+    using System.Collections;
+    using System.Collections.Generic;
+
+    [System.Runtime.InteropServices.ComVisible(true)]
+    public abstract class EncodingProvider
+    {
+        public EncodingProvider() { }
+        public abstract Encoding GetEncoding(string name);
+        public abstract Encoding GetEncoding(int codepage);
+
+        // GetEncoding should return either valid encoding or null. shouldn't throw any exception except on null name
+        public virtual Encoding GetEncoding(string name, EncoderFallback encoderFallback, DecoderFallback decoderFallback)
+        {
+            Encoding enc = GetEncoding(name);
+            if (enc != null)
+            {
+                enc = (Encoding)GetEncoding(name).Clone();
+                enc.EncoderFallback = encoderFallback;
+                enc.DecoderFallback = decoderFallback;
+            }
+
+            return enc;
+        }
+
+        public virtual Encoding GetEncoding(int codepage, EncoderFallback encoderFallback, DecoderFallback decoderFallback)
+        {
+            Encoding enc = GetEncoding(codepage);
+            if (enc != null)
+            {
+                enc = (Encoding)GetEncoding(codepage).Clone();
+                enc.EncoderFallback = encoderFallback;
+                enc.DecoderFallback = decoderFallback;
+            }
+
+            return enc;
+        }
+
+        internal static void AddProvider(EncodingProvider provider)
+        {
+            if (provider == null)
+                throw new ArgumentNullException("provider");
+
+            lock (s_InternalSyncObject)
+            {
+                if (s_providers == null)
+                {
+                    s_providers = new EncodingProvider[1] { provider };
+                    return;
+                }
+
+                if (Array.IndexOf(s_providers, provider) >= 0)
+                {
+                    return;
+                }
+
+                var providers = new EncodingProvider[s_providers.Length + 1];
+                Array.Copy(s_providers, providers, s_providers.Length);
+                providers[providers.Length - 1] = provider;
+                s_providers = providers;
+            }
+        }
+
+        internal static Encoding GetEncodingFromProvider(int codepage)
+        {
+            if (s_providers == null)
+                return null;
+
+            var providers = s_providers;
+            foreach (EncodingProvider provider in providers)
+            {
+                Encoding enc = provider.GetEncoding(codepage);
+                if (enc != null)
+                    return enc;
+            }
+
+            return null;
+        }
+
+        internal static Encoding GetEncodingFromProvider(string encodingName)
+        {
+            if (s_providers == null)
+                return null;
+
+            var providers = s_providers;
+            foreach (EncodingProvider provider in providers)
+            {
+                Encoding enc = provider.GetEncoding(encodingName);
+                if (enc != null)
+                    return enc;
+            }
+
+            return null;
+        }
+
+        internal static Encoding GetEncodingFromProvider(int codepage, EncoderFallback enc, DecoderFallback dec)
+        {
+            if (s_providers == null)
+                return null;
+
+            var providers = s_providers;
+            foreach (EncodingProvider provider in providers)
+            {
+                Encoding encing = provider.GetEncoding(codepage, enc, dec);
+                if (encing != null)
+                    return encing;
+            }
+
+            return null;
+        }
+
+        internal static Encoding GetEncodingFromProvider(string encodingName, EncoderFallback enc, DecoderFallback dec)
+        {
+            if (s_providers == null)
+                return null;
+
+            var providers = s_providers;
+            foreach (EncodingProvider provider in providers)
+            {
+                Encoding encoding = provider.GetEncoding(encodingName, enc, dec);
+                if (encoding != null)
+                    return encoding;
+            }
+
+            return null;
+        }
+
+        private static Object s_InternalSyncObject = new Object();
+        private static volatile EncodingProvider[] s_providers;
+    }
+}
diff --git a/mcs/class/corlib/coreclr/FormattableString.cs b/mcs/class/corlib/coreclr/FormattableString.cs
new file mode 100644 (file)
index 0000000..420421b
--- /dev/null
@@ -0,0 +1,80 @@
+// Copyright (c) Microsoft. All rights reserved. 
+// Licensed under the MIT license. See LICENSE file in the project root for full license information. 
+
+/*============================================================
+**
+** Class:  FormattableString
+**
+**
+** Purpose: implementation of the FormattableString
+** class.
+**
+===========================================================*/
+namespace System
+{
+    /// <summary>
+    /// A composite format string along with the arguments to be formatted. An instance of this
+    /// type may result from the use of the C# or VB language primitive "interpolated string".
+    /// </summary>
+    public abstract class FormattableString : IFormattable
+    {
+        /// <summary>
+        /// The composite format string.
+        /// </summary>
+        public abstract string Format { get; }
+
+        /// <summary>
+        /// Returns an object array that contains zero or more objects to format. Clients should not
+        /// mutate the contents of the array.
+        /// </summary>
+        public abstract object[] GetArguments();
+
+        /// <summary>
+        /// The number of arguments to be formatted.
+        /// </summary>
+        public abstract int ArgumentCount { get; }
+
+        /// <summary>
+        /// Returns one argument to be formatted from argument position <paramref name="index"/>.
+        /// </summary>
+        public abstract object GetArgument(int index);
+
+        /// <summary>
+        /// Format to a string using the given culture.
+        /// </summary>
+        public abstract string ToString(IFormatProvider formatProvider);
+
+        string IFormattable.ToString(string ignored, IFormatProvider formatProvider)
+        {
+            return ToString(formatProvider);
+        }
+
+        /// <summary>
+        /// Format the given object in the invariant culture. This static method may be
+        /// imported in C# by
+        /// <code>
+        /// using static System.FormattableString;
+        /// </code>.
+        /// Within the scope
+        /// of that import directive an interpolated string may be formatted in the
+        /// invariant culture by writing, for example,
+        /// <code>
+        /// Invariant($"{{ lat = {latitude}; lon = {longitude} }}")
+        /// </code>
+        /// </summary>
+        public static string Invariant(FormattableString formattable)
+        {
+            if (formattable == null)
+            {
+                throw new ArgumentNullException("formattable");
+            }
+
+            return formattable.ToString(Globalization.CultureInfo.InvariantCulture);
+        }
+
+        public override string ToString()
+        {
+            return ToString(Globalization.CultureInfo.CurrentCulture);
+        }
+    }
+}
diff --git a/mcs/class/corlib/coreclr/FormattableStringFactory.cs b/mcs/class/corlib/coreclr/FormattableStringFactory.cs
new file mode 100644 (file)
index 0000000..990204c
--- /dev/null
@@ -0,0 +1,57 @@
+// Copyright (c) Microsoft. All rights reserved. 
+// Licensed under the MIT license. See LICENSE file in the project root for full license information. 
+
+/*============================================================
+**
+** Class:  FormattableStringFactory
+**
+**
+** Purpose: implementation of the FormattableStringFactory
+** class.
+**
+===========================================================*/
+namespace System.Runtime.CompilerServices
+{
+    /// <summary>
+    /// A factory type used by compilers to create instances of the type <see cref="FormattableString"/>.
+    /// </summary>
+    public static class FormattableStringFactory
+    {
+        /// <summary>
+        /// Create a <see cref="FormattableString"/> from a composite format string and object
+        /// array containing zero or more objects to format.
+        /// </summary>
+        public static FormattableString Create(string format, params object[] arguments)
+        {
+            if (format == null)
+            {
+                throw new ArgumentNullException("format");
+            }
+
+            if (arguments == null)
+            {
+                throw new ArgumentNullException("arguments");
+            }
+
+            return new ConcreteFormattableString(format, arguments);
+        }
+
+        private sealed class ConcreteFormattableString : FormattableString
+        {
+            private readonly string _format;
+            private readonly object[] _arguments;
+
+            internal ConcreteFormattableString(string format, object[] arguments)
+            {
+                _format = format;
+                _arguments = arguments;
+            }
+
+            public override string Format { get { return _format; } }
+            public override object[] GetArguments() { return _arguments; }
+            public override int ArgumentCount { get { return _arguments.Length; } }
+            public override object GetArgument(int index) { return _arguments[index]; }
+            public override string ToString(IFormatProvider formatProvider) { return string.Format(formatProvider, _format, _arguments); }
+        }
+    }
+}
diff --git a/mcs/class/corlib/coreclr/WaitHandleExtensions.cs b/mcs/class/corlib/coreclr/WaitHandleExtensions.cs
new file mode 100644 (file)
index 0000000..93dbc6f
--- /dev/null
@@ -0,0 +1,45 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+//
+
+using Microsoft.Win32.SafeHandles;
+using System.Security;
+
+namespace System.Threading
+{
+    public static class WaitHandleExtensions
+    {
+        /// <summary>
+        /// Gets the native operating system handle.
+        /// </summary>
+        /// <param name="waitHandle">The <see cref="System.Threading.WaitHandle"/> to operate on.</param>
+        /// <returns>A <see cref="System.Runtime.InteropServices.SafeHandle"/> representing the native operating system handle.</returns>
+        [SecurityCritical]
+        public static SafeWaitHandle GetSafeWaitHandle(this WaitHandle waitHandle)
+        {
+            if (waitHandle == null)
+            {
+                throw new ArgumentNullException("waitHandle");
+            }
+
+            return waitHandle.SafeWaitHandle;
+        }
+
+        /// <summary>
+        /// Sets the native operating system handle
+        /// </summary>
+        /// <param name="waitHandle">The <see cref="System.Threading.WaitHandle"/> to operate on.</param>
+        /// <param name="value">A <see cref="System.Runtime.InteropServices.SafeHandle"/> representing the native operating system handle.</param>
+        [SecurityCritical]
+        public static void SetSafeWaitHandle(this WaitHandle waitHandle, SafeWaitHandle value)
+        {
+            if (waitHandle == null)
+            {
+                throw new ArgumentNullException("waitHandle");
+            }
+
+            waitHandle.SafeWaitHandle = value;
+        }
+    }
+}
\ No newline at end of file
index ad5d95213b513210f387c63513c24b8ca086c627..9d56645004ffa85fdcd9dc4ee0e3292b3d63d17a 100644 (file)
@@ -25,7 +25,7 @@
     <DebugType>full</DebugType>\r
     <NoWarn>612,618,1699</NoWarn>\r
     <Optimize>false</Optimize>\r
-    <DefineConstants>DEBUG;TRACE;INSIDE_CORLIB;MONO_CULTURE_DATA;LIBC;FEATURE_PAL;GENERICS_WORK;FEATURE_LIST_PREDICATES;FEATURE_SERIALIZATION;FEATURE_ASCII;FEATURE_LATIN1;FEATURE_UTF7;FEATURE_UTF32;MONO_HYBRID_ENCODING_SUPPORT;FEATURE_ASYNC_IO;NEW_EXPERIMENTAL_ASYNC_IO;FEATURE_UTF32;FEATURE_EXCEPTIONDISPATCHINFO;FEATURE_CORRUPTING_EXCEPTIONS;FEATURE_EXCEPTION_NOTIFICATIONS;FEATURE_STRONGNAME_MIGRATION;FEATURE_USE_LCID;FEATURE_FUSION;FEATURE_CRYPTO;FEATURE_X509_SECURESTRINGS;FEATURE_SYNCHRONIZATIONCONTEXT;FEATURE_SYNCHRONIZATIONCONTEXT_WAIT;FEATURE_REMOTING;MONO_COM;FEATURE_COMINTEROP;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;FEATURE_PAL;GENERICS_WORK;FEATURE_LIST_PREDICATES;FEATURE_SERIALIZATION;FEATURE_ASCII;FEATURE_LATIN1;FEATURE_UTF7;FEATURE_UTF32;MONO_HYBRID_ENCODING_SUPPORT;FEATURE_ASYNC_IO;NEW_EXPERIMENTAL_ASYNC_IO;FEATURE_UTF32;FEATURE_EXCEPTIONDISPATCHINFO;FEATURE_CORRUPTING_EXCEPTIONS;FEATURE_EXCEPTION_NOTIFICATIONS;FEATURE_STRONGNAME_MIGRATION;FEATURE_USE_LCID;FEATURE_FUSION;FEATURE_CRYPTO;FEATURE_X509_SECURESTRINGS;FEATURE_SYNCHRONIZATIONCONTEXT;FEATURE_SYNCHRONIZATIONCONTEXT_WAIT;FEATURE_REMOTING;MONO_COM;FEATURE_COMINTEROP</DefineConstants>\r
+    <DefineConstants>DEBUG;TRACE;INSIDE_CORLIB;MONO_CULTURE_DATA;LIBC;FEATURE_PAL;GENERICS_WORK;FEATURE_LIST_PREDICATES;FEATURE_SERIALIZATION;FEATURE_ASCII;FEATURE_LATIN1;FEATURE_UTF7;FEATURE_UTF32;MONO_HYBRID_ENCODING_SUPPORT;FEATURE_ASYNC_IO;NEW_EXPERIMENTAL_ASYNC_IO;FEATURE_UTF32;FEATURE_EXCEPTIONDISPATCHINFO;FEATURE_CORRUPTING_EXCEPTIONS;FEATURE_EXCEPTION_NOTIFICATIONS;FEATURE_STRONGNAME_MIGRATION;FEATURE_USE_LCID;FEATURE_FUSION;FEATURE_CRYPTO;FEATURE_X509_SECURESTRINGS;FEATURE_SYNCHRONIZATIONCONTEXT;FEATURE_SYNCHRONIZATIONCONTEXT_WAIT;FEATURE_REMOTING;MONO_COM;FEATURE_COMINTEROP;FEATURE_ROLE_BASED_SECURITY;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;FEATURE_PAL;GENERICS_WORK;FEATURE_LIST_PREDICATES;FEATURE_SERIALIZATION;FEATURE_ASCII;FEATURE_LATIN1;FEATURE_UTF7;FEATURE_UTF32;MONO_HYBRID_ENCODING_SUPPORT;FEATURE_ASYNC_IO;NEW_EXPERIMENTAL_ASYNC_IO;FEATURE_UTF32;FEATURE_EXCEPTIONDISPATCHINFO;FEATURE_CORRUPTING_EXCEPTIONS;FEATURE_EXCEPTION_NOTIFICATIONS;FEATURE_STRONGNAME_MIGRATION;FEATURE_USE_LCID;FEATURE_FUSION;FEATURE_CRYPTO;FEATURE_X509_SECURESTRINGS;FEATURE_SYNCHRONIZATIONCONTEXT;FEATURE_SYNCHRONIZATIONCONTEXT_WAIT;FEATURE_REMOTING;MONO_COM;FEATURE_COMINTEROP;FEATURE_ROLE_BASED_SECURITY</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
@@ -33,7 +33,7 @@
     <DebugType>pdbonly</DebugType>\r
     <NoWarn>612,618,1699</NoWarn>\r
     <Optimize>true</Optimize>\r
-    <DefineConstants>INSIDE_CORLIB;MONO_CULTURE_DATA;LIBC;FEATURE_PAL;GENERICS_WORK;FEATURE_LIST_PREDICATES;FEATURE_SERIALIZATION;FEATURE_ASCII;FEATURE_LATIN1;FEATURE_UTF7;FEATURE_UTF32;MONO_HYBRID_ENCODING_SUPPORT;FEATURE_ASYNC_IO;NEW_EXPERIMENTAL_ASYNC_IO;FEATURE_UTF32;FEATURE_EXCEPTIONDISPATCHINFO;FEATURE_CORRUPTING_EXCEPTIONS;FEATURE_EXCEPTION_NOTIFICATIONS;FEATURE_STRONGNAME_MIGRATION;FEATURE_USE_LCID;FEATURE_FUSION;FEATURE_CRYPTO;FEATURE_X509_SECURESTRINGS;FEATURE_SYNCHRONIZATIONCONTEXT;FEATURE_SYNCHRONIZATIONCONTEXT_WAIT;FEATURE_REMOTING;MONO_COM;FEATURE_COMINTEROP;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;FEATURE_PAL;GENERICS_WORK;FEATURE_LIST_PREDICATES;FEATURE_SERIALIZATION;FEATURE_ASCII;FEATURE_LATIN1;FEATURE_UTF7;FEATURE_UTF32;MONO_HYBRID_ENCODING_SUPPORT;FEATURE_ASYNC_IO;NEW_EXPERIMENTAL_ASYNC_IO;FEATURE_UTF32;FEATURE_EXCEPTIONDISPATCHINFO;FEATURE_CORRUPTING_EXCEPTIONS;FEATURE_EXCEPTION_NOTIFICATIONS;FEATURE_STRONGNAME_MIGRATION;FEATURE_USE_LCID;FEATURE_FUSION;FEATURE_CRYPTO;FEATURE_X509_SECURESTRINGS;FEATURE_SYNCHRONIZATIONCONTEXT;FEATURE_SYNCHRONIZATIONCONTEXT_WAIT;FEATURE_REMOTING;MONO_COM;FEATURE_COMINTEROP</DefineConstants>\r
+    <DefineConstants>INSIDE_CORLIB;MONO_CULTURE_DATA;LIBC;FEATURE_PAL;GENERICS_WORK;FEATURE_LIST_PREDICATES;FEATURE_SERIALIZATION;FEATURE_ASCII;FEATURE_LATIN1;FEATURE_UTF7;FEATURE_UTF32;MONO_HYBRID_ENCODING_SUPPORT;FEATURE_ASYNC_IO;NEW_EXPERIMENTAL_ASYNC_IO;FEATURE_UTF32;FEATURE_EXCEPTIONDISPATCHINFO;FEATURE_CORRUPTING_EXCEPTIONS;FEATURE_EXCEPTION_NOTIFICATIONS;FEATURE_STRONGNAME_MIGRATION;FEATURE_USE_LCID;FEATURE_FUSION;FEATURE_CRYPTO;FEATURE_X509_SECURESTRINGS;FEATURE_SYNCHRONIZATIONCONTEXT;FEATURE_SYNCHRONIZATIONCONTEXT_WAIT;FEATURE_REMOTING;MONO_COM;FEATURE_COMINTEROP;FEATURE_ROLE_BASED_SECURITY;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;FEATURE_PAL;GENERICS_WORK;FEATURE_LIST_PREDICATES;FEATURE_SERIALIZATION;FEATURE_ASCII;FEATURE_LATIN1;FEATURE_UTF7;FEATURE_UTF32;MONO_HYBRID_ENCODING_SUPPORT;FEATURE_ASYNC_IO;NEW_EXPERIMENTAL_ASYNC_IO;FEATURE_UTF32;FEATURE_EXCEPTIONDISPATCHINFO;FEATURE_CORRUPTING_EXCEPTIONS;FEATURE_EXCEPTION_NOTIFICATIONS;FEATURE_STRONGNAME_MIGRATION;FEATURE_USE_LCID;FEATURE_FUSION;FEATURE_CRYPTO;FEATURE_X509_SECURESTRINGS;FEATURE_SYNCHRONIZATIONCONTEXT;FEATURE_SYNCHRONIZATIONCONTEXT_WAIT;FEATURE_REMOTING;MONO_COM;FEATURE_COMINTEROP;FEATURE_ROLE_BASED_SECURITY</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\stringwriter.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\textreader.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\textwriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\unmanagedmemoryaccessor.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\unmanagedmemorystream.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\unmanagedmemorystreamwrapper.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\iobservable.cs" />\r
     <Compile Include="System.IO\SeekOrigin.cs" />\r
     <Compile Include="System.IO\UnexceptionalStreamReader.cs" />\r
     <Compile Include="System.IO\UnexceptionalStreamWriter.cs" />\r
-    <Compile Include="System.IO\UnmanagedMemoryAccessor.cs" />\r
     <Compile Include="System.Reflection.Emit\AssemblyBuilder.cs" />\r
     <Compile Include="System.Reflection.Emit\AssemblyBuilderAccess.cs" />\r
     <Compile Include="System.Reflection.Emit\ConstructorBuilder.cs" />\r
index 1b02a58884552a064a351aa33d386fc1fc65b195..7af21cc117bf581d15584d8654d68b906d2ce25c 100644 (file)
@@ -77,6 +77,7 @@ Mono.Xml/SmallXmlParser.cs
 Mono.Xml/SecurityParser.cs
 System/ActivationContext.cs
 System/AndroidPlatform.cs
+System/AppContext.cs
 System/AppDomain.cs
 System/AppDomainInitializer.cs
 System/AppDomainManager.cs
@@ -109,7 +110,6 @@ System/IConsoleDriver.cs
 System/IntPtr.cs
 System/KnownTerminals.cs
 System/MarshalByRefObject.cs
-System/Math.cs
 System/MonoAsyncCall.cs
 System/MonoCQItem.cs
 System/MonoCustomAttrs.cs
@@ -232,7 +232,6 @@ System.Reflection/CustomAttributeNamedArgument.cs
 System.Reflection/CustomAttributeTypedArgument.cs
 System.Reflection/EventInfo.cs
 System.Reflection/ExceptionHandlingClause.cs
-System.Reflection/ExceptionHandlingClauseOptions.cs
 System.Reflection/FieldInfo.cs
 System.Reflection/ImageFileMachine.cs
 System.Reflection/LocalVariableInfo.cs
@@ -874,7 +873,6 @@ System.Threading/Overlapped.cs
 System.Threading/ReaderWriterLock.cs
 System.Threading/RegisteredWaitHandle.cs
 System.Threading/Thread.cs
-System.Threading/ThreadPool.cs
 System.Threading/Timer.cs
 System.Threading/TimerCallback.cs
 System.Threading/Volatile.cs
@@ -1001,6 +999,7 @@ ReferenceSources/SecurityContext.cs
 ../../../external/referencesource/mscorlib/system/iserviceobjectprovider.cs
 ../../../external/referencesource/mscorlib/system/invalidtimezoneexception.cs
 ../../../external/referencesource/mscorlib/system/Lazy.cs
+../../../external/referencesource/mscorlib/system/math.cs
 ../../../external/referencesource/mscorlib/system/memberaccessexception.cs
 ../../../external/referencesource/mscorlib/system/methodaccessexception.cs
 ../../../external/referencesource/mscorlib/system/midpointrounding.cs
@@ -1224,6 +1223,7 @@ ReferenceSources/SecurityContext.cs
 ../../../external/referencesource/mscorlib/system/reflection/membertypes.cs
 ../../../external/referencesource/mscorlib/system/reflection/methodattributes.cs
 ../../../external/referencesource/mscorlib/system/reflection/methodbase.cs
+../../../external/referencesource/mscorlib/system/reflection/methodbody.cs
 ../../../external/referencesource/mscorlib/system/reflection/methodimplattributes.cs
 ../../../external/referencesource/mscorlib/system/reflection/missing.cs
 ../../../external/referencesource/mscorlib/system/reflection/obfuscateassemblyattribute.cs
@@ -1240,6 +1240,8 @@ ReferenceSources/SecurityContext.cs
 ../../../external/referencesource/mscorlib/system/reflection/typefilter.cs
 ../../../external/referencesource/mscorlib/system/reflection/typeinfo.cs
 
+../../../external/referencesource/mscorlib/system/reflection/emit/methodbuilder.cs
+
 ../../../external/referencesource/mscorlib/system/resources/__fastresourcecomparer.cs
 ../../../external/referencesource/mscorlib/system/resources/__hresults.cs
 ../../../external/referencesource/mscorlib/system/resources/filebasedresourcegroveler.cs
@@ -1576,3 +1578,10 @@ ReferenceSources/SecurityContext.cs
 
 ReferenceSources/String.cs
 ReferenceSources/Type.cs
+
+coreclr/AsyncLocal.cs
+coreclr/DisablePrivateReflectionAttribute.cs
+coreclr/EncodingProvider.cs
+coreclr/FormattableString.cs
+coreclr/FormattableStringFactory.cs
+coreclr/WaitHandleExtensions.cs
index 0efa920e17539a27f0f498e4b13893e485fb1bfc..baad693bffc1f7c5f147b72f4763e0d93ac817fc 100644 (file)
@@ -164,6 +164,7 @@ System.Reflection.Emit/FieldBuilderTest.cs
 System.Reflection.Emit/GenericTypeParameterBuilderTest.cs
 System.Reflection.Emit/ILGeneratorTest.cs
 System.Reflection.Emit/MethodBuilderTest.cs
+System.Reflection.Emit/MethodBuilderTestIL.cs
 System.Reflection.Emit/MethodOnTypeBuilderInstTest.cs
 System.Reflection.Emit/MethodRentalTest.cs
 System.Reflection.Emit/ModuleBuilderTest.cs
diff --git a/mcs/class/corlib/monotouch_watch_corlib.dll.sources b/mcs/class/corlib/monotouch_watch_corlib.dll.sources
new file mode 100644 (file)
index 0000000..9e173da
--- /dev/null
@@ -0,0 +1 @@
+#include corlib.dll.sources
\ No newline at end of file
diff --git a/mcs/class/corlib/net_4_5_corlib.dll.sources b/mcs/class/corlib/net_4_5_corlib.dll.sources
deleted file mode 100644 (file)
index 28c8adc..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#include corlib.dll.sources
-../../../external/referencesource/mscorlib/system/runtime/compilerservices/idispatchconstantattribute.cs
diff --git a/mcs/class/corlib/net_4_x_corlib.dll.sources b/mcs/class/corlib/net_4_x_corlib.dll.sources
new file mode 100644 (file)
index 0000000..28c8adc
--- /dev/null
@@ -0,0 +1,2 @@
+#include corlib.dll.sources
+../../../external/referencesource/mscorlib/system/runtime/compilerservices/idispatchconstantattribute.cs
index 1dee0470816b6e9667888db2c1382d4935c1d6d4..a4e89d0ed579665bebd6161dd9980f31cc5de9d6 100644 (file)
@@ -46,428 +46,428 @@ Monodoc.Ecma/EcmaUrlTokenizer.cs
 Monodoc.Ecma/EcmaDesc.cs
 Mono.Documentation/ManifestResourceResolver.cs
 Mono.Documentation/XmlDocUtils.cs
-../../../external/Lucene.Net/src/core/Analysis/Analyzer.cs
-../../../external/Lucene.Net/src/core/Analysis/ASCIIFoldingFilter.cs
-../../../external/Lucene.Net/src/core/Analysis/BaseCharFilter.cs
-../../../external/Lucene.Net/src/core/Analysis/CachingTokenFilter.cs
-../../../external/Lucene.Net/src/core/Analysis/CharArraySet.cs
-../../../external/Lucene.Net/src/core/Analysis/CharFilter.cs
-../../../external/Lucene.Net/src/core/Analysis/CharReader.cs
-../../../external/Lucene.Net/src/core/Analysis/CharStream.cs
-../../../external/Lucene.Net/src/core/Analysis/CharTokenizer.cs
-../../../external/Lucene.Net/src/core/Analysis/ISOLatin1AccentFilter.cs
-../../../external/Lucene.Net/src/core/Analysis/KeywordAnalyzer.cs
-../../../external/Lucene.Net/src/core/Analysis/KeywordTokenizer.cs
-../../../external/Lucene.Net/src/core/Analysis/LengthFilter.cs
-../../../external/Lucene.Net/src/core/Analysis/LetterTokenizer.cs
-../../../external/Lucene.Net/src/core/Analysis/LowerCaseFilter.cs
-../../../external/Lucene.Net/src/core/Analysis/LowerCaseTokenizer.cs
-../../../external/Lucene.Net/src/core/Analysis/MappingCharFilter.cs
-../../../external/Lucene.Net/src/core/Analysis/NormalizeCharMap.cs
-../../../external/Lucene.Net/src/core/Analysis/NumericTokenStream.cs
-../../../external/Lucene.Net/src/core/Analysis/PerFieldAnalyzerWrapper.cs
-../../../external/Lucene.Net/src/core/Analysis/PorterStemFilter.cs
-../../../external/Lucene.Net/src/core/Analysis/PorterStemmer.cs
-../../../external/Lucene.Net/src/core/Analysis/SimpleAnalyzer.cs
-../../../external/Lucene.Net/src/core/Analysis/Standard/StandardAnalyzer.cs
-../../../external/Lucene.Net/src/core/Analysis/Standard/StandardFilter.cs
-../../../external/Lucene.Net/src/core/Analysis/Standard/StandardTokenizer.cs
-../../../external/Lucene.Net/src/core/Analysis/Standard/StandardTokenizerImpl.cs
-../../../external/Lucene.Net/src/core/Analysis/StopAnalyzer.cs
-../../../external/Lucene.Net/src/core/Analysis/StopFilter.cs
-../../../external/Lucene.Net/src/core/Analysis/TeeSinkTokenFilter.cs
-../../../external/Lucene.Net/src/core/Analysis/Token.cs
-../../../external/Lucene.Net/src/core/Analysis/Tokenattributes/FlagsAttribute.cs
-../../../external/Lucene.Net/src/core/Analysis/Tokenattributes/IFlagsAttribute.cs
-../../../external/Lucene.Net/src/core/Analysis/Tokenattributes/IOffsetAttribute.cs
-../../../external/Lucene.Net/src/core/Analysis/Tokenattributes/IPayloadAttribute.cs
-../../../external/Lucene.Net/src/core/Analysis/Tokenattributes/IPositionIncrementAttribute.cs
-../../../external/Lucene.Net/src/core/Analysis/Tokenattributes/ITermAttribute.cs
-../../../external/Lucene.Net/src/core/Analysis/Tokenattributes/ITypeAttribute.cs
-../../../external/Lucene.Net/src/core/Analysis/Tokenattributes/OffsetAttribute.cs
-../../../external/Lucene.Net/src/core/Analysis/Tokenattributes/PayloadAttribute.cs
-../../../external/Lucene.Net/src/core/Analysis/Tokenattributes/PositionIncrementAttribute.cs
-../../../external/Lucene.Net/src/core/Analysis/Tokenattributes/TermAttribute.cs
-../../../external/Lucene.Net/src/core/Analysis/Tokenattributes/TypeAttribute.cs
-../../../external/Lucene.Net/src/core/Analysis/TokenFilter.cs
-../../../external/Lucene.Net/src/core/Analysis/Tokenizer.cs
-../../../external/Lucene.Net/src/core/Analysis/TokenStream.cs
-../../../external/Lucene.Net/src/core/Analysis/WhitespaceAnalyzer.cs
-../../../external/Lucene.Net/src/core/Analysis/WhitespaceTokenizer.cs
-../../../external/Lucene.Net/src/core/Analysis/WordlistLoader.cs
-../../../external/Lucene.Net/src/core/Document/AbstractField.cs
-../../../external/Lucene.Net/src/core/Document/CompressionTools.cs
-../../../external/Lucene.Net/src/core/Document/DateField.cs
-../../../external/Lucene.Net/src/core/Document/DateTools.cs
-../../../external/Lucene.Net/src/core/Document/Document.cs
-../../../external/Lucene.Net/src/core/Document/Field.cs
-../../../external/Lucene.Net/src/core/Document/Fieldable.cs
-../../../external/Lucene.Net/src/core/Document/FieldSelector.cs
-../../../external/Lucene.Net/src/core/Document/FieldSelectorResult.cs
-../../../external/Lucene.Net/src/core/Document/LoadFirstFieldSelector.cs
-../../../external/Lucene.Net/src/core/Document/MapFieldSelector.cs
-../../../external/Lucene.Net/src/core/Document/NumberTools.cs
-../../../external/Lucene.Net/src/core/Document/NumericField.cs
-../../../external/Lucene.Net/src/core/Document/SetBasedFieldSelector.cs
-../../../external/Lucene.Net/src/core/Index/AbstractAllTermDocs.cs
-../../../external/Lucene.Net/src/core/Index/AllTermDocs.cs
-../../../external/Lucene.Net/src/core/Index/BufferedDeletes.cs
-../../../external/Lucene.Net/src/core/Index/ByteBlockPool.cs
-../../../external/Lucene.Net/src/core/Index/ByteSliceReader.cs
-../../../external/Lucene.Net/src/core/Index/ByteSliceWriter.cs
-../../../external/Lucene.Net/src/core/Index/CharBlockPool.cs
-../../../external/Lucene.Net/src/core/Index/CheckIndex.cs
-../../../external/Lucene.Net/src/core/Index/CompoundFileReader.cs
-../../../external/Lucene.Net/src/core/Index/CompoundFileWriter.cs
-../../../external/Lucene.Net/src/core/Index/ConcurrentMergeScheduler.cs
-../../../external/Lucene.Net/src/core/Index/CorruptIndexException.cs
-../../../external/Lucene.Net/src/core/Index/DefaultSkipListReader.cs
-../../../external/Lucene.Net/src/core/Index/DefaultSkipListWriter.cs
-../../../external/Lucene.Net/src/core/Index/DirectoryReader.cs
-../../../external/Lucene.Net/src/core/Index/DocConsumer.cs
-../../../external/Lucene.Net/src/core/Index/DocConsumerPerThread.cs
-../../../external/Lucene.Net/src/core/Index/DocFieldConsumer.cs
-../../../external/Lucene.Net/src/core/Index/DocFieldConsumerPerField.cs
-../../../external/Lucene.Net/src/core/Index/DocFieldConsumerPerThread.cs
-../../../external/Lucene.Net/src/core/Index/DocFieldConsumers.cs
-../../../external/Lucene.Net/src/core/Index/DocFieldConsumersPerField.cs
-../../../external/Lucene.Net/src/core/Index/DocFieldConsumersPerThread.cs
-../../../external/Lucene.Net/src/core/Index/DocFieldProcessor.cs
-../../../external/Lucene.Net/src/core/Index/DocFieldProcessorPerField.cs
-../../../external/Lucene.Net/src/core/Index/DocFieldProcessorPerThread.cs
-../../../external/Lucene.Net/src/core/Index/DocInverter.cs
-../../../external/Lucene.Net/src/core/Index/DocInverterPerField.cs
-../../../external/Lucene.Net/src/core/Index/DocInverterPerThread.cs
-../../../external/Lucene.Net/src/core/Index/DocumentsWriter.cs
-../../../external/Lucene.Net/src/core/Index/DocumentsWriterThreadState.cs
-../../../external/Lucene.Net/src/core/Index/FieldInfo.cs
-../../../external/Lucene.Net/src/core/Index/FieldInfos.cs
-../../../external/Lucene.Net/src/core/Index/FieldInvertState.cs
-../../../external/Lucene.Net/src/core/Index/FieldReaderException.cs
-../../../external/Lucene.Net/src/core/Index/FieldSortedTermVectorMapper.cs
-../../../external/Lucene.Net/src/core/Index/FieldsReader.cs
-../../../external/Lucene.Net/src/core/Index/FieldsWriter.cs
-../../../external/Lucene.Net/src/core/Index/FilterIndexReader.cs
-../../../external/Lucene.Net/src/core/Index/FormatPostingsDocsConsumer.cs
-../../../external/Lucene.Net/src/core/Index/FormatPostingsDocsWriter.cs
-../../../external/Lucene.Net/src/core/Index/FormatPostingsFieldsConsumer.cs
-../../../external/Lucene.Net/src/core/Index/FormatPostingsFieldsWriter.cs
-../../../external/Lucene.Net/src/core/Index/FormatPostingsPositionsConsumer.cs
-../../../external/Lucene.Net/src/core/Index/FormatPostingsPositionsWriter.cs
-../../../external/Lucene.Net/src/core/Index/FormatPostingsTermsConsumer.cs
-../../../external/Lucene.Net/src/core/Index/FormatPostingsTermsWriter.cs
-../../../external/Lucene.Net/src/core/Index/FreqProxFieldMergeState.cs
-../../../external/Lucene.Net/src/core/Index/FreqProxTermsWriter.cs
-../../../external/Lucene.Net/src/core/Index/FreqProxTermsWriterPerField.cs
-../../../external/Lucene.Net/src/core/Index/FreqProxTermsWriterPerThread.cs
-../../../external/Lucene.Net/src/core/Index/IndexCommit.cs
-../../../external/Lucene.Net/src/core/Index/IndexDeletionPolicy.cs
-../../../external/Lucene.Net/src/core/Index/IndexFileDeleter.cs
-../../../external/Lucene.Net/src/core/Index/IndexFileNameFilter.cs
-../../../external/Lucene.Net/src/core/Index/IndexFileNames.cs
-../../../external/Lucene.Net/src/core/Index/IndexReader.cs
-../../../external/Lucene.Net/src/core/Index/IndexWriter.cs
-../../../external/Lucene.Net/src/core/Index/IntBlockPool.cs
-../../../external/Lucene.Net/src/core/Index/InvertedDocConsumer.cs
-../../../external/Lucene.Net/src/core/Index/InvertedDocConsumerPerField.cs
-../../../external/Lucene.Net/src/core/Index/InvertedDocConsumerPerThread.cs
-../../../external/Lucene.Net/src/core/Index/InvertedDocEndConsumer.cs
-../../../external/Lucene.Net/src/core/Index/InvertedDocEndConsumerPerField.cs
-../../../external/Lucene.Net/src/core/Index/InvertedDocEndConsumerPerThread.cs
-../../../external/Lucene.Net/src/core/Index/KeepOnlyLastCommitDeletionPolicy.cs
-../../../external/Lucene.Net/src/core/Index/LogByteSizeMergePolicy.cs
-../../../external/Lucene.Net/src/core/Index/LogDocMergePolicy.cs
-../../../external/Lucene.Net/src/core/Index/LogMergePolicy.cs
-../../../external/Lucene.Net/src/core/Index/MergeDocIDRemapper.cs
-../../../external/Lucene.Net/src/core/Index/MergePolicy.cs
-../../../external/Lucene.Net/src/core/Index/MergeScheduler.cs
-../../../external/Lucene.Net/src/core/Index/MultiLevelSkipListReader.cs
-../../../external/Lucene.Net/src/core/Index/MultiLevelSkipListWriter.cs
-../../../external/Lucene.Net/src/core/Index/MultipleTermPositions.cs
-../../../external/Lucene.Net/src/core/Index/MultiReader.cs
-../../../external/Lucene.Net/src/core/Index/NormsWriter.cs
-../../../external/Lucene.Net/src/core/Index/NormsWriterPerField.cs
-../../../external/Lucene.Net/src/core/Index/NormsWriterPerThread.cs
-../../../external/Lucene.Net/src/core/Index/ParallelReader.cs
-../../../external/Lucene.Net/src/core/Index/Payload.cs
-../../../external/Lucene.Net/src/core/Index/PositionBasedTermVectorMapper.cs
-../../../external/Lucene.Net/src/core/Index/RawPostingList.cs
-../../../external/Lucene.Net/src/core/Index/ReadOnlyDirectoryReader.cs
-../../../external/Lucene.Net/src/core/Index/ReadOnlySegmentReader.cs
-../../../external/Lucene.Net/src/core/Index/ReusableStringReader.cs
-../../../external/Lucene.Net/src/core/Index/SegmentInfo.cs
-../../../external/Lucene.Net/src/core/Index/SegmentInfos.cs
-../../../external/Lucene.Net/src/core/Index/SegmentMergeInfo.cs
-../../../external/Lucene.Net/src/core/Index/SegmentMergeQueue.cs
-../../../external/Lucene.Net/src/core/Index/SegmentMerger.cs
-../../../external/Lucene.Net/src/core/Index/SegmentReader.cs
-../../../external/Lucene.Net/src/core/Index/SegmentTermDocs.cs
-../../../external/Lucene.Net/src/core/Index/SegmentTermEnum.cs
-../../../external/Lucene.Net/src/core/Index/SegmentTermPositions.cs
-../../../external/Lucene.Net/src/core/Index/SegmentTermPositionVector.cs
-../../../external/Lucene.Net/src/core/Index/SegmentTermVector.cs
-../../../external/Lucene.Net/src/core/Index/SegmentWriteState.cs
-../../../external/Lucene.Net/src/core/Index/SerialMergeScheduler.cs
-../../../external/Lucene.Net/src/core/Index/SnapshotDeletionPolicy.cs
-../../../external/Lucene.Net/src/core/Index/SortedTermVectorMapper.cs
-../../../external/Lucene.Net/src/core/Index/StaleReaderException.cs
-../../../external/Lucene.Net/src/core/Index/StoredFieldsWriter.cs
-../../../external/Lucene.Net/src/core/Index/StoredFieldsWriterPerThread.cs
-../../../external/Lucene.Net/src/core/Index/Term.cs
-../../../external/Lucene.Net/src/core/Index/TermBuffer.cs
-../../../external/Lucene.Net/src/core/Index/TermDocs.cs
-../../../external/Lucene.Net/src/core/Index/TermEnum.cs
-../../../external/Lucene.Net/src/core/Index/TermFreqVector.cs
-../../../external/Lucene.Net/src/core/Index/TermInfo.cs
-../../../external/Lucene.Net/src/core/Index/TermInfosReader.cs
-../../../external/Lucene.Net/src/core/Index/TermInfosWriter.cs
-../../../external/Lucene.Net/src/core/Index/TermPositions.cs
-../../../external/Lucene.Net/src/core/Index/TermPositionVector.cs
-../../../external/Lucene.Net/src/core/Index/TermsHash.cs
-../../../external/Lucene.Net/src/core/Index/TermsHashConsumer.cs
-../../../external/Lucene.Net/src/core/Index/TermsHashConsumerPerField.cs
-../../../external/Lucene.Net/src/core/Index/TermsHashConsumerPerThread.cs
-../../../external/Lucene.Net/src/core/Index/TermsHashPerField.cs
-../../../external/Lucene.Net/src/core/Index/TermsHashPerThread.cs
-../../../external/Lucene.Net/src/core/Index/TermVectorEntry.cs
-../../../external/Lucene.Net/src/core/Index/TermVectorEntryFreqSortedComparator.cs
-../../../external/Lucene.Net/src/core/Index/TermVectorMapper.cs
-../../../external/Lucene.Net/src/core/Index/TermVectorOffsetInfo.cs
-../../../external/Lucene.Net/src/core/Index/TermVectorsReader.cs
-../../../external/Lucene.Net/src/core/Index/TermVectorsTermsWriter.cs
-../../../external/Lucene.Net/src/core/Index/TermVectorsTermsWriterPerField.cs
-../../../external/Lucene.Net/src/core/Index/TermVectorsTermsWriterPerThread.cs
-../../../external/Lucene.Net/src/core/Index/TermVectorsWriter.cs
-../../../external/Lucene.Net/src/core/LucenePackage.cs
-../../../external/Lucene.Net/src/core/LZOCompressor.cs
-../../../external/Lucene.Net/src/core/Messages/INLSException.cs
-../../../external/Lucene.Net/src/core/Messages/Message.cs
-../../../external/Lucene.Net/src/core/Messages/MessageImpl.cs
-../../../external/Lucene.Net/src/core/Messages/NLS.cs
-../../../external/Lucene.Net/src/core/QueryParser/CharStream.cs
-../../../external/Lucene.Net/src/core/QueryParser/FastCharStream.cs
-../../../external/Lucene.Net/src/core/QueryParser/MultiFieldQueryParser.cs
-../../../external/Lucene.Net/src/core/QueryParser/ParseException.cs
-../../../external/Lucene.Net/src/core/QueryParser/QueryParser.cs
-../../../external/Lucene.Net/src/core/QueryParser/QueryParserConstants.cs
-../../../external/Lucene.Net/src/core/QueryParser/QueryParserTokenManager.cs
-../../../external/Lucene.Net/src/core/QueryParser/Token.cs
-../../../external/Lucene.Net/src/core/QueryParser/TokenMgrError.cs
-../../../external/Lucene.Net/src/core/Search/BooleanClause.cs
-../../../external/Lucene.Net/src/core/Search/BooleanQuery.cs
-../../../external/Lucene.Net/src/core/Search/BooleanScorer.cs
-../../../external/Lucene.Net/src/core/Search/BooleanScorer2.cs
-../../../external/Lucene.Net/src/core/Search/CachingSpanFilter.cs
-../../../external/Lucene.Net/src/core/Search/CachingWrapperFilter.cs
-../../../external/Lucene.Net/src/core/Search/Collector.cs
-../../../external/Lucene.Net/src/core/Search/ComplexExplanation.cs
-../../../external/Lucene.Net/src/core/Search/ConjunctionScorer.cs
-../../../external/Lucene.Net/src/core/Search/ConstantScoreQuery.cs
-../../../external/Lucene.Net/src/core/Search/DefaultSimilarity.cs
-../../../external/Lucene.Net/src/core/Search/DisjunctionMaxQuery.cs
-../../../external/Lucene.Net/src/core/Search/DisjunctionMaxScorer.cs
-../../../external/Lucene.Net/src/core/Search/DisjunctionSumScorer.cs
-../../../external/Lucene.Net/src/core/Search/DocIdSet.cs
-../../../external/Lucene.Net/src/core/Search/DocIdSetIterator.cs
-../../../external/Lucene.Net/src/core/Search/ExactPhraseScorer.cs
-../../../external/Lucene.Net/src/core/Search/Explanation.cs
-../../../external/Lucene.Net/src/core/Search/FieldCache.cs
-../../../external/Lucene.Net/src/core/Search/FieldCacheImpl.cs
-../../../external/Lucene.Net/src/core/Search/FieldCacheRangeFilter.cs
-../../../external/Lucene.Net/src/core/Search/FieldCacheTermsFilter.cs
-../../../external/Lucene.Net/src/core/Search/FieldComparator.cs
-../../../external/Lucene.Net/src/core/Search/FieldComparatorSource.cs
-../../../external/Lucene.Net/src/core/Search/FieldDoc.cs
-../../../external/Lucene.Net/src/core/Search/FieldDocSortedHitQueue.cs
-../../../external/Lucene.Net/src/core/Search/FieldValueHitQueue.cs
-../../../external/Lucene.Net/src/core/Search/Filter.cs
-../../../external/Lucene.Net/src/core/Search/FilteredDocIdSet.cs
-../../../external/Lucene.Net/src/core/Search/FilteredDocIdSetIterator.cs
-../../../external/Lucene.Net/src/core/Search/FilteredQuery.cs
-../../../external/Lucene.Net/src/core/Search/FilteredTermEnum.cs
-../../../external/Lucene.Net/src/core/Search/FilterManager.cs
-../../../external/Lucene.Net/src/core/Search/Function/ByteFieldSource.cs
-../../../external/Lucene.Net/src/core/Search/Function/CustomScoreProvider.cs
-../../../external/Lucene.Net/src/core/Search/Function/CustomScoreQuery.cs
-../../../external/Lucene.Net/src/core/Search/Function/DocValues.cs
-../../../external/Lucene.Net/src/core/Search/Function/FieldCacheSource.cs
-../../../external/Lucene.Net/src/core/Search/Function/FieldScoreQuery.cs
-../../../external/Lucene.Net/src/core/Search/Function/FloatFieldSource.cs
-../../../external/Lucene.Net/src/core/Search/Function/IntFieldSource.cs
-../../../external/Lucene.Net/src/core/Search/Function/OrdFieldSource.cs
-../../../external/Lucene.Net/src/core/Search/Function/ReverseOrdFieldSource.cs
-../../../external/Lucene.Net/src/core/Search/Function/ShortFieldSource.cs
-../../../external/Lucene.Net/src/core/Search/Function/ValueSource.cs
-../../../external/Lucene.Net/src/core/Search/Function/ValueSourceQuery.cs
-../../../external/Lucene.Net/src/core/Search/FuzzyQuery.cs
-../../../external/Lucene.Net/src/core/Search/FuzzyTermEnum.cs
-../../../external/Lucene.Net/src/core/Search/HitQueue.cs
-../../../external/Lucene.Net/src/core/Search/IndexSearcher.cs
-../../../external/Lucene.Net/src/core/Search/MatchAllDocsQuery.cs
-../../../external/Lucene.Net/src/core/Search/MultiPhraseQuery.cs
-../../../external/Lucene.Net/src/core/Search/MultiSearcher.cs
-../../../external/Lucene.Net/src/core/Search/MultiTermQuery.cs
-../../../external/Lucene.Net/src/core/Search/MultiTermQueryWrapperFilter.cs
-../../../external/Lucene.Net/src/core/Search/NumericRangeFilter.cs
-../../../external/Lucene.Net/src/core/Search/NumericRangeQuery.cs
-../../../external/Lucene.Net/src/core/Search/ParallelMultiSearcher.cs
-../../../external/Lucene.Net/src/core/Search/Payloads/AveragePayloadFunction.cs
-../../../external/Lucene.Net/src/core/Search/Payloads/MaxPayloadFunction.cs
-../../../external/Lucene.Net/src/core/Search/Payloads/MinPayloadFunction.cs
-../../../external/Lucene.Net/src/core/Search/Payloads/PayloadFunction.cs
-../../../external/Lucene.Net/src/core/Search/Payloads/PayloadNearQuery.cs
-../../../external/Lucene.Net/src/core/Search/Payloads/PayloadSpanUtil.cs
-../../../external/Lucene.Net/src/core/Search/Payloads/PayloadTermQuery.cs
-../../../external/Lucene.Net/src/core/Search/PhrasePositions.cs
-../../../external/Lucene.Net/src/core/Search/PhraseQuery.cs
-../../../external/Lucene.Net/src/core/Search/PhraseQueue.cs
-../../../external/Lucene.Net/src/core/Search/PhraseScorer.cs
-../../../external/Lucene.Net/src/core/Search/PositiveScoresOnlyCollector.cs
-../../../external/Lucene.Net/src/core/Search/PrefixFilter.cs
-../../../external/Lucene.Net/src/core/Search/PrefixQuery.cs
-../../../external/Lucene.Net/src/core/Search/PrefixTermEnum.cs
-../../../external/Lucene.Net/src/core/Search/Query.cs
-../../../external/Lucene.Net/src/core/Search/QueryTermVector.cs
-../../../external/Lucene.Net/src/core/Search/QueryWrapperFilter.cs
-../../../external/Lucene.Net/src/core/Search/ReqExclScorer.cs
-../../../external/Lucene.Net/src/core/Search/ReqOptSumScorer.cs
-../../../external/Lucene.Net/src/core/Search/ScoreCachingWrappingScorer.cs
-../../../external/Lucene.Net/src/core/Search/ScoreDoc.cs
-../../../external/Lucene.Net/src/core/Search/Scorer.cs
-../../../external/Lucene.Net/src/core/Search/Searchable.cs
-../../../external/Lucene.Net/src/core/Search/Searcher.cs
-../../../external/Lucene.Net/src/core/Search/Similarity.cs
-../../../external/Lucene.Net/src/core/Search/SimilarityDelegator.cs
-../../../external/Lucene.Net/src/core/Search/SingleTermEnum.cs
-../../../external/Lucene.Net/src/core/Search/SloppyPhraseScorer.cs
-../../../external/Lucene.Net/src/core/Search/Sort.cs
-../../../external/Lucene.Net/src/core/Search/SortField.cs
-../../../external/Lucene.Net/src/core/Search/SpanFilter.cs
-../../../external/Lucene.Net/src/core/Search/SpanFilterResult.cs
-../../../external/Lucene.Net/src/core/Search/SpanQueryFilter.cs
-../../../external/Lucene.Net/src/core/Search/Spans/FieldMaskingSpanQuery.cs
-../../../external/Lucene.Net/src/core/Search/Spans/NearSpansOrdered.cs
-../../../external/Lucene.Net/src/core/Search/Spans/NearSpansUnordered.cs
-../../../external/Lucene.Net/src/core/Search/Spans/SpanFirstQuery.cs
-../../../external/Lucene.Net/src/core/Search/Spans/SpanNearQuery.cs
-../../../external/Lucene.Net/src/core/Search/Spans/SpanNotQuery.cs
-../../../external/Lucene.Net/src/core/Search/Spans/SpanOrQuery.cs
-../../../external/Lucene.Net/src/core/Search/Spans/SpanQuery.cs
-../../../external/Lucene.Net/src/core/Search/Spans/Spans.cs
-../../../external/Lucene.Net/src/core/Search/Spans/SpanScorer.cs
-../../../external/Lucene.Net/src/core/Search/Spans/SpanTermQuery.cs
-../../../external/Lucene.Net/src/core/Search/Spans/SpanWeight.cs
-../../../external/Lucene.Net/src/core/Search/Spans/TermSpans.cs
-../../../external/Lucene.Net/src/core/Search/TermQuery.cs
-../../../external/Lucene.Net/src/core/Search/TermRangeFilter.cs
-../../../external/Lucene.Net/src/core/Search/TermRangeQuery.cs
-../../../external/Lucene.Net/src/core/Search/TermRangeTermEnum.cs
-../../../external/Lucene.Net/src/core/Search/TermScorer.cs
-../../../external/Lucene.Net/src/core/Search/TimeLimitingCollector.cs
-../../../external/Lucene.Net/src/core/Search/TopDocs.cs
-../../../external/Lucene.Net/src/core/Search/TopDocsCollector.cs
-../../../external/Lucene.Net/src/core/Search/TopFieldCollector.cs
-../../../external/Lucene.Net/src/core/Search/TopFieldDocs.cs
-../../../external/Lucene.Net/src/core/Search/TopScoreDocCollector.cs
-../../../external/Lucene.Net/src/core/Search/Weight.cs
-../../../external/Lucene.Net/src/core/Search/WildcardQuery.cs
-../../../external/Lucene.Net/src/core/Search/WildcardTermEnum.cs
-../../../external/Lucene.Net/src/core/Store/AlreadyClosedException.cs
-../../../external/Lucene.Net/src/core/Store/BufferedIndexInput.cs
-../../../external/Lucene.Net/src/core/Store/BufferedIndexOutput.cs
-../../../external/Lucene.Net/src/core/Store/CheckSumIndexInput.cs
-../../../external/Lucene.Net/src/core/Store/CheckSumIndexOutput.cs
-../../../external/Lucene.Net/src/core/Store/Directory.cs
-../../../external/Lucene.Net/src/core/Store/FileSwitchDirectory.cs
-../../../external/Lucene.Net/src/core/Store/FSDirectory.cs
-../../../external/Lucene.Net/src/core/Store/FSLockFactory.cs
-../../../external/Lucene.Net/src/core/Store/IndexInput.cs
-../../../external/Lucene.Net/src/core/Store/IndexOutput.cs
-../../../external/Lucene.Net/src/core/Store/Lock.cs
-../../../external/Lucene.Net/src/core/Store/LockFactory.cs
-../../../external/Lucene.Net/src/core/Store/LockObtainFailedException.cs
-../../../external/Lucene.Net/src/core/Store/LockReleaseFailedException.cs
-../../../external/Lucene.Net/src/core/Store/LockStressTest.cs
-../../../external/Lucene.Net/src/core/Store/LockVerifyServer.cs
-../../../external/Lucene.Net/src/core/Store/MMapDirectory.cs
-../../../external/Lucene.Net/src/core/Store/NativeFSLockFactory.cs
-../../../external/Lucene.Net/src/core/Store/NIOFSDirectory.cs
-../../../external/Lucene.Net/src/core/Store/NoLockFactory.cs
-../../../external/Lucene.Net/src/core/Store/NoSuchDirectoryException.cs
-../../../external/Lucene.Net/src/core/Store/RAMDirectory.cs
-../../../external/Lucene.Net/src/core/Store/RAMFile.cs
-../../../external/Lucene.Net/src/core/Store/RAMInputStream.cs
-../../../external/Lucene.Net/src/core/Store/RAMOutputStream.cs
-../../../external/Lucene.Net/src/core/Store/SimpleFSDirectory.cs
-../../../external/Lucene.Net/src/core/Store/SimpleFSLockFactory.cs
-../../../external/Lucene.Net/src/core/Store/SingleInstanceLockFactory.cs
-../../../external/Lucene.Net/src/core/Store/VerifyingLockFactory.cs
-../../../external/Lucene.Net/src/core/Support/AppSettings.cs
-../../../external/Lucene.Net/src/core/Support/AttributeImplItem.cs
-../../../external/Lucene.Net/src/core/Support/BitSetSupport.cs
-../../../external/Lucene.Net/src/core/Support/BuildType.cs
-../../../external/Lucene.Net/src/core/Support/Character.cs
-../../../external/Lucene.Net/src/core/Support/CloseableThreadLocalProfiler.cs
-../../../external/Lucene.Net/src/core/Support/CollectionsHelper.cs
-../../../external/Lucene.Net/src/core/Support/Compare.cs
-../../../external/Lucene.Net/src/core/Support/Compatibility/ConcurrentDictionary.cs
-../../../external/Lucene.Net/src/core/Support/Compatibility/Func.cs
-../../../external/Lucene.Net/src/core/Support/Compatibility/ISet.cs
-../../../external/Lucene.Net/src/core/Support/Compatibility/SetFactory.cs
-../../../external/Lucene.Net/src/core/Support/Compatibility/SortedSet.cs
-../../../external/Lucene.Net/src/core/Support/Compatibility/ThreadLocal.cs
-../../../external/Lucene.Net/src/core/Support/Compatibility/WrappedHashSet.cs
-../../../external/Lucene.Net/src/core/Support/CRC32.cs
-../../../external/Lucene.Net/src/core/Support/Cryptography.cs
-../../../external/Lucene.Net/src/core/Support/Deflater.cs
-../../../external/Lucene.Net/src/core/Support/Double.cs
-../../../external/Lucene.Net/src/core/Support/EquatableList.cs
-../../../external/Lucene.Net/src/core/Support/FileSupport.cs
-../../../external/Lucene.Net/src/core/Support/GeneralKeyedCollection.cs
-../../../external/Lucene.Net/src/core/Support/HashMap.cs
-../../../external/Lucene.Net/src/core/Support/IChecksum.cs
-../../../external/Lucene.Net/src/core/Support/Inflater.cs
-../../../external/Lucene.Net/src/core/Support/IThreadRunnable.cs
-../../../external/Lucene.Net/src/core/Support/Number.cs
-../../../external/Lucene.Net/src/core/Support/OS.cs
-../../../external/Lucene.Net/src/core/Support/SharpZipLib.cs
-../../../external/Lucene.Net/src/core/Support/Single.cs
-../../../external/Lucene.Net/src/core/Support/TextSupport.cs
-../../../external/Lucene.Net/src/core/Support/ThreadClass.cs
-../../../external/Lucene.Net/src/core/Support/ThreadLock.cs
-../../../external/Lucene.Net/src/core/Support/WeakDictionary.cs
-../../../external/Lucene.Net/src/core/Util/ArrayUtil.cs
-../../../external/Lucene.Net/src/core/Util/Attribute.cs
-../../../external/Lucene.Net/src/core/Util/AttributeSource.cs
-../../../external/Lucene.Net/src/core/Util/AverageGuessMemoryModel.cs
-../../../external/Lucene.Net/src/core/Util/BitUtil.cs
-../../../external/Lucene.Net/src/core/Util/BitVector.cs
-../../../external/Lucene.Net/src/core/Util/Cache/Cache.cs
-../../../external/Lucene.Net/src/core/Util/Cache/SimpleLRUCache.cs
-../../../external/Lucene.Net/src/core/Util/Cache/SimpleMapCache.cs
-../../../external/Lucene.Net/src/core/Util/CloseableThreadLocal.cs
-../../../external/Lucene.Net/src/core/Util/Constants.cs
-../../../external/Lucene.Net/src/core/Util/DocIdBitSet.cs
-../../../external/Lucene.Net/src/core/Util/FieldCacheSanityChecker.cs
-../../../external/Lucene.Net/src/core/Util/IAttribute.cs
-../../../external/Lucene.Net/src/core/Util/IdentityDictionary.cs
-../../../external/Lucene.Net/src/core/Util/IndexableBinaryStringTools.cs
-../../../external/Lucene.Net/src/core/Util/MapOfSets.cs
-../../../external/Lucene.Net/src/core/Util/MemoryModel.cs
-../../../external/Lucene.Net/src/core/Util/NumericUtils.cs
-../../../external/Lucene.Net/src/core/Util/OpenBitSet.cs
-../../../external/Lucene.Net/src/core/Util/OpenBitSetDISI.cs
-../../../external/Lucene.Net/src/core/Util/OpenBitSetIterator.cs
-../../../external/Lucene.Net/src/core/Util/PriorityQueue.cs
-../../../external/Lucene.Net/src/core/Util/RamUsageEstimator.cs
-../../../external/Lucene.Net/src/core/Util/ReaderUtil.cs
-../../../external/Lucene.Net/src/core/Util/ScorerDocQueue.cs
-../../../external/Lucene.Net/src/core/Util/SimpleStringInterner.cs
-../../../external/Lucene.Net/src/core/Util/SmallFloat.cs
-../../../external/Lucene.Net/src/core/Util/SortedVIntList.cs
-../../../external/Lucene.Net/src/core/Util/SorterTemplate.cs
-../../../external/Lucene.Net/src/core/Util/StringHelper.cs
-../../../external/Lucene.Net/src/core/Util/StringInterner.cs
-../../../external/Lucene.Net/src/core/Util/ToStringUtils.cs
-../../../external/Lucene.Net/src/core/Util/UnicodeUtil.cs
-../../../external/Lucene.Net/src/core/Util/Version.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Analyzer.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/ASCIIFoldingFilter.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/BaseCharFilter.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/CachingTokenFilter.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/CharArraySet.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/CharFilter.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/CharReader.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/CharStream.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/CharTokenizer.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/ISOLatin1AccentFilter.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/KeywordAnalyzer.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/KeywordTokenizer.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/LengthFilter.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/LetterTokenizer.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/LowerCaseFilter.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/LowerCaseTokenizer.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/MappingCharFilter.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/NormalizeCharMap.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/NumericTokenStream.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/PerFieldAnalyzerWrapper.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/PorterStemFilter.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/PorterStemmer.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/SimpleAnalyzer.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Standard/StandardAnalyzer.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Standard/StandardFilter.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Standard/StandardTokenizer.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Standard/StandardTokenizerImpl.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/StopAnalyzer.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/StopFilter.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/TeeSinkTokenFilter.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Token.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Tokenattributes/FlagsAttribute.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Tokenattributes/IFlagsAttribute.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Tokenattributes/IOffsetAttribute.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Tokenattributes/IPayloadAttribute.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Tokenattributes/IPositionIncrementAttribute.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Tokenattributes/ITermAttribute.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Tokenattributes/ITypeAttribute.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Tokenattributes/OffsetAttribute.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Tokenattributes/PayloadAttribute.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Tokenattributes/PositionIncrementAttribute.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Tokenattributes/TermAttribute.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Tokenattributes/TypeAttribute.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/TokenFilter.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/Tokenizer.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/TokenStream.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/WhitespaceAnalyzer.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/WhitespaceTokenizer.cs
+../../../external/Lucene.Net.Light/src/core/Analysis/WordlistLoader.cs
+../../../external/Lucene.Net.Light/src/core/Document/AbstractField.cs
+../../../external/Lucene.Net.Light/src/core/Document/CompressionTools.cs
+../../../external/Lucene.Net.Light/src/core/Document/DateField.cs
+../../../external/Lucene.Net.Light/src/core/Document/DateTools.cs
+../../../external/Lucene.Net.Light/src/core/Document/Document.cs
+../../../external/Lucene.Net.Light/src/core/Document/Field.cs
+../../../external/Lucene.Net.Light/src/core/Document/Fieldable.cs
+../../../external/Lucene.Net.Light/src/core/Document/FieldSelector.cs
+../../../external/Lucene.Net.Light/src/core/Document/FieldSelectorResult.cs
+../../../external/Lucene.Net.Light/src/core/Document/LoadFirstFieldSelector.cs
+../../../external/Lucene.Net.Light/src/core/Document/MapFieldSelector.cs
+../../../external/Lucene.Net.Light/src/core/Document/NumberTools.cs
+../../../external/Lucene.Net.Light/src/core/Document/NumericField.cs
+../../../external/Lucene.Net.Light/src/core/Document/SetBasedFieldSelector.cs
+../../../external/Lucene.Net.Light/src/core/Index/AbstractAllTermDocs.cs
+../../../external/Lucene.Net.Light/src/core/Index/AllTermDocs.cs
+../../../external/Lucene.Net.Light/src/core/Index/BufferedDeletes.cs
+../../../external/Lucene.Net.Light/src/core/Index/ByteBlockPool.cs
+../../../external/Lucene.Net.Light/src/core/Index/ByteSliceReader.cs
+../../../external/Lucene.Net.Light/src/core/Index/ByteSliceWriter.cs
+../../../external/Lucene.Net.Light/src/core/Index/CharBlockPool.cs
+../../../external/Lucene.Net.Light/src/core/Index/CheckIndex.cs
+../../../external/Lucene.Net.Light/src/core/Index/CompoundFileReader.cs
+../../../external/Lucene.Net.Light/src/core/Index/CompoundFileWriter.cs
+../../../external/Lucene.Net.Light/src/core/Index/ConcurrentMergeScheduler.cs
+../../../external/Lucene.Net.Light/src/core/Index/CorruptIndexException.cs
+../../../external/Lucene.Net.Light/src/core/Index/DefaultSkipListReader.cs
+../../../external/Lucene.Net.Light/src/core/Index/DefaultSkipListWriter.cs
+../../../external/Lucene.Net.Light/src/core/Index/DirectoryReader.cs
+../../../external/Lucene.Net.Light/src/core/Index/DocConsumer.cs
+../../../external/Lucene.Net.Light/src/core/Index/DocConsumerPerThread.cs
+../../../external/Lucene.Net.Light/src/core/Index/DocFieldConsumer.cs
+../../../external/Lucene.Net.Light/src/core/Index/DocFieldConsumerPerField.cs
+../../../external/Lucene.Net.Light/src/core/Index/DocFieldConsumerPerThread.cs
+../../../external/Lucene.Net.Light/src/core/Index/DocFieldConsumers.cs
+../../../external/Lucene.Net.Light/src/core/Index/DocFieldConsumersPerField.cs
+../../../external/Lucene.Net.Light/src/core/Index/DocFieldConsumersPerThread.cs
+../../../external/Lucene.Net.Light/src/core/Index/DocFieldProcessor.cs
+../../../external/Lucene.Net.Light/src/core/Index/DocFieldProcessorPerField.cs
+../../../external/Lucene.Net.Light/src/core/Index/DocFieldProcessorPerThread.cs
+../../../external/Lucene.Net.Light/src/core/Index/DocInverter.cs
+../../../external/Lucene.Net.Light/src/core/Index/DocInverterPerField.cs
+../../../external/Lucene.Net.Light/src/core/Index/DocInverterPerThread.cs
+../../../external/Lucene.Net.Light/src/core/Index/DocumentsWriter.cs
+../../../external/Lucene.Net.Light/src/core/Index/DocumentsWriterThreadState.cs
+../../../external/Lucene.Net.Light/src/core/Index/FieldInfo.cs
+../../../external/Lucene.Net.Light/src/core/Index/FieldInfos.cs
+../../../external/Lucene.Net.Light/src/core/Index/FieldInvertState.cs
+../../../external/Lucene.Net.Light/src/core/Index/FieldReaderException.cs
+../../../external/Lucene.Net.Light/src/core/Index/FieldSortedTermVectorMapper.cs
+../../../external/Lucene.Net.Light/src/core/Index/FieldsReader.cs
+../../../external/Lucene.Net.Light/src/core/Index/FieldsWriter.cs
+../../../external/Lucene.Net.Light/src/core/Index/FilterIndexReader.cs
+../../../external/Lucene.Net.Light/src/core/Index/FormatPostingsDocsConsumer.cs
+../../../external/Lucene.Net.Light/src/core/Index/FormatPostingsDocsWriter.cs
+../../../external/Lucene.Net.Light/src/core/Index/FormatPostingsFieldsConsumer.cs
+../../../external/Lucene.Net.Light/src/core/Index/FormatPostingsFieldsWriter.cs
+../../../external/Lucene.Net.Light/src/core/Index/FormatPostingsPositionsConsumer.cs
+../../../external/Lucene.Net.Light/src/core/Index/FormatPostingsPositionsWriter.cs
+../../../external/Lucene.Net.Light/src/core/Index/FormatPostingsTermsConsumer.cs
+../../../external/Lucene.Net.Light/src/core/Index/FormatPostingsTermsWriter.cs
+../../../external/Lucene.Net.Light/src/core/Index/FreqProxFieldMergeState.cs
+../../../external/Lucene.Net.Light/src/core/Index/FreqProxTermsWriter.cs
+../../../external/Lucene.Net.Light/src/core/Index/FreqProxTermsWriterPerField.cs
+../../../external/Lucene.Net.Light/src/core/Index/FreqProxTermsWriterPerThread.cs
+../../../external/Lucene.Net.Light/src/core/Index/IndexCommit.cs
+../../../external/Lucene.Net.Light/src/core/Index/IndexDeletionPolicy.cs
+../../../external/Lucene.Net.Light/src/core/Index/IndexFileDeleter.cs
+../../../external/Lucene.Net.Light/src/core/Index/IndexFileNameFilter.cs
+../../../external/Lucene.Net.Light/src/core/Index/IndexFileNames.cs
+../../../external/Lucene.Net.Light/src/core/Index/IndexReader.cs
+../../../external/Lucene.Net.Light/src/core/Index/IndexWriter.cs
+../../../external/Lucene.Net.Light/src/core/Index/IntBlockPool.cs
+../../../external/Lucene.Net.Light/src/core/Index/InvertedDocConsumer.cs
+../../../external/Lucene.Net.Light/src/core/Index/InvertedDocConsumerPerField.cs
+../../../external/Lucene.Net.Light/src/core/Index/InvertedDocConsumerPerThread.cs
+../../../external/Lucene.Net.Light/src/core/Index/InvertedDocEndConsumer.cs
+../../../external/Lucene.Net.Light/src/core/Index/InvertedDocEndConsumerPerField.cs
+../../../external/Lucene.Net.Light/src/core/Index/InvertedDocEndConsumerPerThread.cs
+../../../external/Lucene.Net.Light/src/core/Index/KeepOnlyLastCommitDeletionPolicy.cs
+../../../external/Lucene.Net.Light/src/core/Index/LogByteSizeMergePolicy.cs
+../../../external/Lucene.Net.Light/src/core/Index/LogDocMergePolicy.cs
+../../../external/Lucene.Net.Light/src/core/Index/LogMergePolicy.cs
+../../../external/Lucene.Net.Light/src/core/Index/MergeDocIDRemapper.cs
+../../../external/Lucene.Net.Light/src/core/Index/MergePolicy.cs
+../../../external/Lucene.Net.Light/src/core/Index/MergeScheduler.cs
+../../../external/Lucene.Net.Light/src/core/Index/MultiLevelSkipListReader.cs
+../../../external/Lucene.Net.Light/src/core/Index/MultiLevelSkipListWriter.cs
+../../../external/Lucene.Net.Light/src/core/Index/MultipleTermPositions.cs
+../../../external/Lucene.Net.Light/src/core/Index/MultiReader.cs
+../../../external/Lucene.Net.Light/src/core/Index/NormsWriter.cs
+../../../external/Lucene.Net.Light/src/core/Index/NormsWriterPerField.cs
+../../../external/Lucene.Net.Light/src/core/Index/NormsWriterPerThread.cs
+../../../external/Lucene.Net.Light/src/core/Index/ParallelReader.cs
+../../../external/Lucene.Net.Light/src/core/Index/Payload.cs
+../../../external/Lucene.Net.Light/src/core/Index/PositionBasedTermVectorMapper.cs
+../../../external/Lucene.Net.Light/src/core/Index/RawPostingList.cs
+../../../external/Lucene.Net.Light/src/core/Index/ReadOnlyDirectoryReader.cs
+../../../external/Lucene.Net.Light/src/core/Index/ReadOnlySegmentReader.cs
+../../../external/Lucene.Net.Light/src/core/Index/ReusableStringReader.cs
+../../../external/Lucene.Net.Light/src/core/Index/SegmentInfo.cs
+../../../external/Lucene.Net.Light/src/core/Index/SegmentInfos.cs
+../../../external/Lucene.Net.Light/src/core/Index/SegmentMergeInfo.cs
+../../../external/Lucene.Net.Light/src/core/Index/SegmentMergeQueue.cs
+../../../external/Lucene.Net.Light/src/core/Index/SegmentMerger.cs
+../../../external/Lucene.Net.Light/src/core/Index/SegmentReader.cs
+../../../external/Lucene.Net.Light/src/core/Index/SegmentTermDocs.cs
+../../../external/Lucene.Net.Light/src/core/Index/SegmentTermEnum.cs
+../../../external/Lucene.Net.Light/src/core/Index/SegmentTermPositions.cs
+../../../external/Lucene.Net.Light/src/core/Index/SegmentTermPositionVector.cs
+../../../external/Lucene.Net.Light/src/core/Index/SegmentTermVector.cs
+../../../external/Lucene.Net.Light/src/core/Index/SegmentWriteState.cs
+../../../external/Lucene.Net.Light/src/core/Index/SerialMergeScheduler.cs
+../../../external/Lucene.Net.Light/src/core/Index/SnapshotDeletionPolicy.cs
+../../../external/Lucene.Net.Light/src/core/Index/SortedTermVectorMapper.cs
+../../../external/Lucene.Net.Light/src/core/Index/StaleReaderException.cs
+../../../external/Lucene.Net.Light/src/core/Index/StoredFieldsWriter.cs
+../../../external/Lucene.Net.Light/src/core/Index/StoredFieldsWriterPerThread.cs
+../../../external/Lucene.Net.Light/src/core/Index/Term.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermBuffer.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermDocs.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermEnum.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermFreqVector.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermInfo.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermInfosReader.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermInfosWriter.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermPositions.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermPositionVector.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermsHash.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermsHashConsumer.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermsHashConsumerPerField.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermsHashConsumerPerThread.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermsHashPerField.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermsHashPerThread.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermVectorEntry.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermVectorEntryFreqSortedComparator.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermVectorMapper.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermVectorOffsetInfo.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermVectorsReader.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermVectorsTermsWriter.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermVectorsTermsWriterPerField.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermVectorsTermsWriterPerThread.cs
+../../../external/Lucene.Net.Light/src/core/Index/TermVectorsWriter.cs
+../../../external/Lucene.Net.Light/src/core/LucenePackage.cs
+../../../external/Lucene.Net.Light/src/core/LZOCompressor.cs
+../../../external/Lucene.Net.Light/src/core/Messages/INLSException.cs
+../../../external/Lucene.Net.Light/src/core/Messages/Message.cs
+../../../external/Lucene.Net.Light/src/core/Messages/MessageImpl.cs
+../../../external/Lucene.Net.Light/src/core/Messages/NLS.cs
+../../../external/Lucene.Net.Light/src/core/QueryParser/CharStream.cs
+../../../external/Lucene.Net.Light/src/core/QueryParser/FastCharStream.cs
+../../../external/Lucene.Net.Light/src/core/QueryParser/MultiFieldQueryParser.cs
+../../../external/Lucene.Net.Light/src/core/QueryParser/ParseException.cs
+../../../external/Lucene.Net.Light/src/core/QueryParser/QueryParser.cs
+../../../external/Lucene.Net.Light/src/core/QueryParser/QueryParserConstants.cs
+../../../external/Lucene.Net.Light/src/core/QueryParser/QueryParserTokenManager.cs
+../../../external/Lucene.Net.Light/src/core/QueryParser/Token.cs
+../../../external/Lucene.Net.Light/src/core/QueryParser/TokenMgrError.cs
+../../../external/Lucene.Net.Light/src/core/Search/BooleanClause.cs
+../../../external/Lucene.Net.Light/src/core/Search/BooleanQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/BooleanScorer.cs
+../../../external/Lucene.Net.Light/src/core/Search/BooleanScorer2.cs
+../../../external/Lucene.Net.Light/src/core/Search/CachingSpanFilter.cs
+../../../external/Lucene.Net.Light/src/core/Search/CachingWrapperFilter.cs
+../../../external/Lucene.Net.Light/src/core/Search/Collector.cs
+../../../external/Lucene.Net.Light/src/core/Search/ComplexExplanation.cs
+../../../external/Lucene.Net.Light/src/core/Search/ConjunctionScorer.cs
+../../../external/Lucene.Net.Light/src/core/Search/ConstantScoreQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/DefaultSimilarity.cs
+../../../external/Lucene.Net.Light/src/core/Search/DisjunctionMaxQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/DisjunctionMaxScorer.cs
+../../../external/Lucene.Net.Light/src/core/Search/DisjunctionSumScorer.cs
+../../../external/Lucene.Net.Light/src/core/Search/DocIdSet.cs
+../../../external/Lucene.Net.Light/src/core/Search/DocIdSetIterator.cs
+../../../external/Lucene.Net.Light/src/core/Search/ExactPhraseScorer.cs
+../../../external/Lucene.Net.Light/src/core/Search/Explanation.cs
+../../../external/Lucene.Net.Light/src/core/Search/FieldCache.cs
+../../../external/Lucene.Net.Light/src/core/Search/FieldCacheImpl.cs
+../../../external/Lucene.Net.Light/src/core/Search/FieldCacheRangeFilter.cs
+../../../external/Lucene.Net.Light/src/core/Search/FieldCacheTermsFilter.cs
+../../../external/Lucene.Net.Light/src/core/Search/FieldComparator.cs
+../../../external/Lucene.Net.Light/src/core/Search/FieldComparatorSource.cs
+../../../external/Lucene.Net.Light/src/core/Search/FieldDoc.cs
+../../../external/Lucene.Net.Light/src/core/Search/FieldDocSortedHitQueue.cs
+../../../external/Lucene.Net.Light/src/core/Search/FieldValueHitQueue.cs
+../../../external/Lucene.Net.Light/src/core/Search/Filter.cs
+../../../external/Lucene.Net.Light/src/core/Search/FilteredDocIdSet.cs
+../../../external/Lucene.Net.Light/src/core/Search/FilteredDocIdSetIterator.cs
+../../../external/Lucene.Net.Light/src/core/Search/FilteredQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/FilteredTermEnum.cs
+../../../external/Lucene.Net.Light/src/core/Search/FilterManager.cs
+../../../external/Lucene.Net.Light/src/core/Search/Function/ByteFieldSource.cs
+../../../external/Lucene.Net.Light/src/core/Search/Function/CustomScoreProvider.cs
+../../../external/Lucene.Net.Light/src/core/Search/Function/CustomScoreQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/Function/DocValues.cs
+../../../external/Lucene.Net.Light/src/core/Search/Function/FieldCacheSource.cs
+../../../external/Lucene.Net.Light/src/core/Search/Function/FieldScoreQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/Function/FloatFieldSource.cs
+../../../external/Lucene.Net.Light/src/core/Search/Function/IntFieldSource.cs
+../../../external/Lucene.Net.Light/src/core/Search/Function/OrdFieldSource.cs
+../../../external/Lucene.Net.Light/src/core/Search/Function/ReverseOrdFieldSource.cs
+../../../external/Lucene.Net.Light/src/core/Search/Function/ShortFieldSource.cs
+../../../external/Lucene.Net.Light/src/core/Search/Function/ValueSource.cs
+../../../external/Lucene.Net.Light/src/core/Search/Function/ValueSourceQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/FuzzyQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/FuzzyTermEnum.cs
+../../../external/Lucene.Net.Light/src/core/Search/HitQueue.cs
+../../../external/Lucene.Net.Light/src/core/Search/IndexSearcher.cs
+../../../external/Lucene.Net.Light/src/core/Search/MatchAllDocsQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/MultiPhraseQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/MultiSearcher.cs
+../../../external/Lucene.Net.Light/src/core/Search/MultiTermQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/MultiTermQueryWrapperFilter.cs
+../../../external/Lucene.Net.Light/src/core/Search/NumericRangeFilter.cs
+../../../external/Lucene.Net.Light/src/core/Search/NumericRangeQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/ParallelMultiSearcher.cs
+../../../external/Lucene.Net.Light/src/core/Search/Payloads/AveragePayloadFunction.cs
+../../../external/Lucene.Net.Light/src/core/Search/Payloads/MaxPayloadFunction.cs
+../../../external/Lucene.Net.Light/src/core/Search/Payloads/MinPayloadFunction.cs
+../../../external/Lucene.Net.Light/src/core/Search/Payloads/PayloadFunction.cs
+../../../external/Lucene.Net.Light/src/core/Search/Payloads/PayloadNearQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/Payloads/PayloadSpanUtil.cs
+../../../external/Lucene.Net.Light/src/core/Search/Payloads/PayloadTermQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/PhrasePositions.cs
+../../../external/Lucene.Net.Light/src/core/Search/PhraseQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/PhraseQueue.cs
+../../../external/Lucene.Net.Light/src/core/Search/PhraseScorer.cs
+../../../external/Lucene.Net.Light/src/core/Search/PositiveScoresOnlyCollector.cs
+../../../external/Lucene.Net.Light/src/core/Search/PrefixFilter.cs
+../../../external/Lucene.Net.Light/src/core/Search/PrefixQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/PrefixTermEnum.cs
+../../../external/Lucene.Net.Light/src/core/Search/Query.cs
+../../../external/Lucene.Net.Light/src/core/Search/QueryTermVector.cs
+../../../external/Lucene.Net.Light/src/core/Search/QueryWrapperFilter.cs
+../../../external/Lucene.Net.Light/src/core/Search/ReqExclScorer.cs
+../../../external/Lucene.Net.Light/src/core/Search/ReqOptSumScorer.cs
+../../../external/Lucene.Net.Light/src/core/Search/ScoreCachingWrappingScorer.cs
+../../../external/Lucene.Net.Light/src/core/Search/ScoreDoc.cs
+../../../external/Lucene.Net.Light/src/core/Search/Scorer.cs
+../../../external/Lucene.Net.Light/src/core/Search/Searchable.cs
+../../../external/Lucene.Net.Light/src/core/Search/Searcher.cs
+../../../external/Lucene.Net.Light/src/core/Search/Similarity.cs
+../../../external/Lucene.Net.Light/src/core/Search/SimilarityDelegator.cs
+../../../external/Lucene.Net.Light/src/core/Search/SingleTermEnum.cs
+../../../external/Lucene.Net.Light/src/core/Search/SloppyPhraseScorer.cs
+../../../external/Lucene.Net.Light/src/core/Search/Sort.cs
+../../../external/Lucene.Net.Light/src/core/Search/SortField.cs
+../../../external/Lucene.Net.Light/src/core/Search/SpanFilter.cs
+../../../external/Lucene.Net.Light/src/core/Search/SpanFilterResult.cs
+../../../external/Lucene.Net.Light/src/core/Search/SpanQueryFilter.cs
+../../../external/Lucene.Net.Light/src/core/Search/Spans/FieldMaskingSpanQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/Spans/NearSpansOrdered.cs
+../../../external/Lucene.Net.Light/src/core/Search/Spans/NearSpansUnordered.cs
+../../../external/Lucene.Net.Light/src/core/Search/Spans/SpanFirstQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/Spans/SpanNearQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/Spans/SpanNotQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/Spans/SpanOrQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/Spans/SpanQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/Spans/Spans.cs
+../../../external/Lucene.Net.Light/src/core/Search/Spans/SpanScorer.cs
+../../../external/Lucene.Net.Light/src/core/Search/Spans/SpanTermQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/Spans/SpanWeight.cs
+../../../external/Lucene.Net.Light/src/core/Search/Spans/TermSpans.cs
+../../../external/Lucene.Net.Light/src/core/Search/TermQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/TermRangeFilter.cs
+../../../external/Lucene.Net.Light/src/core/Search/TermRangeQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/TermRangeTermEnum.cs
+../../../external/Lucene.Net.Light/src/core/Search/TermScorer.cs
+../../../external/Lucene.Net.Light/src/core/Search/TimeLimitingCollector.cs
+../../../external/Lucene.Net.Light/src/core/Search/TopDocs.cs
+../../../external/Lucene.Net.Light/src/core/Search/TopDocsCollector.cs
+../../../external/Lucene.Net.Light/src/core/Search/TopFieldCollector.cs
+../../../external/Lucene.Net.Light/src/core/Search/TopFieldDocs.cs
+../../../external/Lucene.Net.Light/src/core/Search/TopScoreDocCollector.cs
+../../../external/Lucene.Net.Light/src/core/Search/Weight.cs
+../../../external/Lucene.Net.Light/src/core/Search/WildcardQuery.cs
+../../../external/Lucene.Net.Light/src/core/Search/WildcardTermEnum.cs
+../../../external/Lucene.Net.Light/src/core/Store/AlreadyClosedException.cs
+../../../external/Lucene.Net.Light/src/core/Store/BufferedIndexInput.cs
+../../../external/Lucene.Net.Light/src/core/Store/BufferedIndexOutput.cs
+../../../external/Lucene.Net.Light/src/core/Store/CheckSumIndexInput.cs
+../../../external/Lucene.Net.Light/src/core/Store/CheckSumIndexOutput.cs
+../../../external/Lucene.Net.Light/src/core/Store/Directory.cs
+../../../external/Lucene.Net.Light/src/core/Store/FileSwitchDirectory.cs
+../../../external/Lucene.Net.Light/src/core/Store/FSDirectory.cs
+../../../external/Lucene.Net.Light/src/core/Store/FSLockFactory.cs
+../../../external/Lucene.Net.Light/src/core/Store/IndexInput.cs
+../../../external/Lucene.Net.Light/src/core/Store/IndexOutput.cs
+../../../external/Lucene.Net.Light/src/core/Store/Lock.cs
+../../../external/Lucene.Net.Light/src/core/Store/LockFactory.cs
+../../../external/Lucene.Net.Light/src/core/Store/LockObtainFailedException.cs
+../../../external/Lucene.Net.Light/src/core/Store/LockReleaseFailedException.cs
+../../../external/Lucene.Net.Light/src/core/Store/LockStressTest.cs
+../../../external/Lucene.Net.Light/src/core/Store/LockVerifyServer.cs
+../../../external/Lucene.Net.Light/src/core/Store/MMapDirectory.cs
+../../../external/Lucene.Net.Light/src/core/Store/NativeFSLockFactory.cs
+../../../external/Lucene.Net.Light/src/core/Store/NIOFSDirectory.cs
+../../../external/Lucene.Net.Light/src/core/Store/NoLockFactory.cs
+../../../external/Lucene.Net.Light/src/core/Store/NoSuchDirectoryException.cs
+../../../external/Lucene.Net.Light/src/core/Store/RAMDirectory.cs
+../../../external/Lucene.Net.Light/src/core/Store/RAMFile.cs
+../../../external/Lucene.Net.Light/src/core/Store/RAMInputStream.cs
+../../../external/Lucene.Net.Light/src/core/Store/RAMOutputStream.cs
+../../../external/Lucene.Net.Light/src/core/Store/SimpleFSDirectory.cs
+../../../external/Lucene.Net.Light/src/core/Store/SimpleFSLockFactory.cs
+../../../external/Lucene.Net.Light/src/core/Store/SingleInstanceLockFactory.cs
+../../../external/Lucene.Net.Light/src/core/Store/VerifyingLockFactory.cs
+../../../external/Lucene.Net.Light/src/core/Support/AppSettings.cs
+../../../external/Lucene.Net.Light/src/core/Support/AttributeImplItem.cs
+../../../external/Lucene.Net.Light/src/core/Support/BitSetSupport.cs
+../../../external/Lucene.Net.Light/src/core/Support/BuildType.cs
+../../../external/Lucene.Net.Light/src/core/Support/Character.cs
+../../../external/Lucene.Net.Light/src/core/Support/CloseableThreadLocalProfiler.cs
+../../../external/Lucene.Net.Light/src/core/Support/CollectionsHelper.cs
+../../../external/Lucene.Net.Light/src/core/Support/Compare.cs
+../../../external/Lucene.Net.Light/src/core/Support/Compatibility/ConcurrentDictionary.cs
+../../../external/Lucene.Net.Light/src/core/Support/Compatibility/Func.cs
+../../../external/Lucene.Net.Light/src/core/Support/Compatibility/ISet.cs
+../../../external/Lucene.Net.Light/src/core/Support/Compatibility/SetFactory.cs
+../../../external/Lucene.Net.Light/src/core/Support/Compatibility/SortedSet.cs
+../../../external/Lucene.Net.Light/src/core/Support/Compatibility/ThreadLocal.cs
+../../../external/Lucene.Net.Light/src/core/Support/Compatibility/WrappedHashSet.cs
+../../../external/Lucene.Net.Light/src/core/Support/CRC32.cs
+../../../external/Lucene.Net.Light/src/core/Support/Cryptography.cs
+../../../external/Lucene.Net.Light/src/core/Support/Deflater.cs
+../../../external/Lucene.Net.Light/src/core/Support/Double.cs
+../../../external/Lucene.Net.Light/src/core/Support/EquatableList.cs
+../../../external/Lucene.Net.Light/src/core/Support/FileSupport.cs
+../../../external/Lucene.Net.Light/src/core/Support/GeneralKeyedCollection.cs
+../../../external/Lucene.Net.Light/src/core/Support/HashMap.cs
+../../../external/Lucene.Net.Light/src/core/Support/IChecksum.cs
+../../../external/Lucene.Net.Light/src/core/Support/Inflater.cs
+../../../external/Lucene.Net.Light/src/core/Support/IThreadRunnable.cs
+../../../external/Lucene.Net.Light/src/core/Support/Number.cs
+../../../external/Lucene.Net.Light/src/core/Support/OS.cs
+../../../external/Lucene.Net.Light/src/core/Support/SharpZipLib.cs
+../../../external/Lucene.Net.Light/src/core/Support/Single.cs
+../../../external/Lucene.Net.Light/src/core/Support/TextSupport.cs
+../../../external/Lucene.Net.Light/src/core/Support/ThreadClass.cs
+../../../external/Lucene.Net.Light/src/core/Support/ThreadLock.cs
+../../../external/Lucene.Net.Light/src/core/Support/WeakDictionary.cs
+../../../external/Lucene.Net.Light/src/core/Util/ArrayUtil.cs
+../../../external/Lucene.Net.Light/src/core/Util/Attribute.cs
+../../../external/Lucene.Net.Light/src/core/Util/AttributeSource.cs
+../../../external/Lucene.Net.Light/src/core/Util/AverageGuessMemoryModel.cs
+../../../external/Lucene.Net.Light/src/core/Util/BitUtil.cs
+../../../external/Lucene.Net.Light/src/core/Util/BitVector.cs
+../../../external/Lucene.Net.Light/src/core/Util/Cache/Cache.cs
+../../../external/Lucene.Net.Light/src/core/Util/Cache/SimpleLRUCache.cs
+../../../external/Lucene.Net.Light/src/core/Util/Cache/SimpleMapCache.cs
+../../../external/Lucene.Net.Light/src/core/Util/CloseableThreadLocal.cs
+../../../external/Lucene.Net.Light/src/core/Util/Constants.cs
+../../../external/Lucene.Net.Light/src/core/Util/DocIdBitSet.cs
+../../../external/Lucene.Net.Light/src/core/Util/FieldCacheSanityChecker.cs
+../../../external/Lucene.Net.Light/src/core/Util/IAttribute.cs
+../../../external/Lucene.Net.Light/src/core/Util/IdentityDictionary.cs
+../../../external/Lucene.Net.Light/src/core/Util/IndexableBinaryStringTools.cs
+../../../external/Lucene.Net.Light/src/core/Util/MapOfSets.cs
+../../../external/Lucene.Net.Light/src/core/Util/MemoryModel.cs
+../../../external/Lucene.Net.Light/src/core/Util/NumericUtils.cs
+../../../external/Lucene.Net.Light/src/core/Util/OpenBitSet.cs
+../../../external/Lucene.Net.Light/src/core/Util/OpenBitSetDISI.cs
+../../../external/Lucene.Net.Light/src/core/Util/OpenBitSetIterator.cs
+../../../external/Lucene.Net.Light/src/core/Util/PriorityQueue.cs
+../../../external/Lucene.Net.Light/src/core/Util/RamUsageEstimator.cs
+../../../external/Lucene.Net.Light/src/core/Util/ReaderUtil.cs
+../../../external/Lucene.Net.Light/src/core/Util/ScorerDocQueue.cs
+../../../external/Lucene.Net.Light/src/core/Util/SimpleStringInterner.cs
+../../../external/Lucene.Net.Light/src/core/Util/SmallFloat.cs
+../../../external/Lucene.Net.Light/src/core/Util/SortedVIntList.cs
+../../../external/Lucene.Net.Light/src/core/Util/SorterTemplate.cs
+../../../external/Lucene.Net.Light/src/core/Util/StringHelper.cs
+../../../external/Lucene.Net.Light/src/core/Util/StringInterner.cs
+../../../external/Lucene.Net.Light/src/core/Util/ToStringUtils.cs
+../../../external/Lucene.Net.Light/src/core/Util/UnicodeUtil.cs
+../../../external/Lucene.Net.Light/src/core/Util/Version.cs
index 02709af2ba7bf6f541646aadf7f5ff95ad11482f..fcb63961d23eaa7a64e09ba4c7bc835ea05214ac 100644 (file)
@@ -14,5 +14,9 @@ namespace MonoTests.Helpers {
                        l.Stop();
                        return port;
                }
+               public static IPEndPoint LocalEphemeralEndPoint ()
+               {
+                       return new IPEndPoint (IPAddress.Loopback, FindFreePort());
+               }
        }
 }
diff --git a/mcs/errors/CS0101-9-2.cs b/mcs/errors/CS0101-9-2.cs
new file mode 100644 (file)
index 0000000..8b42750
--- /dev/null
@@ -0,0 +1,4 @@
+namespace N
+{
+       class Test<T> {}
+}
\ No newline at end of file
index ac117f61d8d5f54b088fcdc38128d01fbe720b3b..f30dae6f26941cec62d8d36d15dfb1bd1227974b 100644 (file)
@@ -41,10 +41,12 @@ TEST_SUPPORT_FILES = \
        dlls/first/CS1703-lib.dll dlls/first/CS1704-lib.dll \
        dlls/second/CS1703-lib.dll dlls/second/CS1704-lib.dll
 
+-include $(mcs_topdir)/build/config.make
+
 # mention all targets
 all-local $(STD_TARGETS:=-local):
 
-VALID_PROFILE := $(filter net_4_5, $(PROFILE))
+VALID_PROFILE := $(filter $(DEFAULT_PROFILE), $(PROFILE))
 ifdef VALID_PROFILE
 
 qcheck: run-mcs-tests 
diff --git a/mcs/errors/cs0101-9.cs b/mcs/errors/cs0101-9.cs
new file mode 100644 (file)
index 0000000..9ae3a3a
--- /dev/null
@@ -0,0 +1,8 @@
+// CS0101: The namespace `N' already contains a definition for `Test<T>'
+// Line: 7
+// Compiler options: CS0101-9-2.cs
+
+namespace N
+{
+       class Test<T> {}
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0516-3.cs b/mcs/errors/cs0516-3.cs
deleted file mode 100644 (file)
index 1ff6d06..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-// CS0516: Constructor `Sample.Sample()' cannot call itself
-// Line: 6
-
-struct Sample {
-       public Sample ()
-               : this ()
-       {
-       }
-}
diff --git a/mcs/errors/cs0568-2.cs b/mcs/errors/cs0568-2.cs
new file mode 100644 (file)
index 0000000..56538e7
--- /dev/null
@@ -0,0 +1,9 @@
+// CS0568: Structs cannot contain explicit parameterless constructors
+// Line: 5
+
+struct Sample {
+       public Sample ()
+               : this ()
+       {
+       }
+}
diff --git a/mcs/errors/cs0568.cs b/mcs/errors/cs0568.cs
new file mode 100644 (file)
index 0000000..3da6d66
--- /dev/null
@@ -0,0 +1,9 @@
+// CS0568: Structs cannot contain explicit parameterless constructors
+// Line: 6
+
+struct S
+{
+       public S ()
+       {
+       }
+}
\ No newline at end of file
diff --git a/mcs/errors/cs0619-41.cs b/mcs/errors/cs0619-41.cs
new file mode 100644 (file)
index 0000000..6836097
--- /dev/null
@@ -0,0 +1,18 @@
+// CS0619: `Y' is obsolete: `ooo'
+// Line: 6
+
+using System;
+
+class X : I<Y>
+{
+}
+
+interface I<T>
+{
+
+}
+
+[Obsolete("ooo", true)]
+class Y
+{
+}
index faf79c7dab8b49a996a8f61cddd7fc790170e334..ca274ff4554272f4aeb95881c6139cb3bbdf77fd 100644 (file)
@@ -1,20 +1,25 @@
-// CS0619: `S.S()' is obsolete: `ctor'
-// Line: 18
+// CS0619: `Program.TestEventArgs' is obsolete: `FooBar'
+// Line: 10
 
 using System;
 
-struct S
+namespace Program
 {
-       [Obsolete ("ctor", true)]
-       public S ()
+       public class TestClass
+       {
+               public EventHandler<TestEventArgs> Foo;
+       }
+
+       [Obsolete(Messages.Test, true)]
+       public sealed class TestEventArgs : EventArgs
        {
        }
 }
 
-class C
+namespace Program
 {
-       public static void Main ()
+       public static class Messages
        {
-               new S ();
+               public const string Test = "FooBar";
        }
-}
+}
\ No newline at end of file
diff --git a/mcs/errors/cs1644-45.cs b/mcs/errors/cs1644-45.cs
deleted file mode 100644 (file)
index 3aa2033..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-// CS1644: Feature `struct parameterless instance constructor' cannot be used because it is not part of the C# 5.0 language specification
-// Line: 12
-// Compiler options: -langversion:5
-
-struct S
-{
-       public S ()
-       {
-       }
-}
\ No newline at end of file
index 088fee88a36cc1b1dee64335b148499a70744caf..2e6182ecfee716de3cf34cd5be0afbbe8beb3560 100644 (file)
@@ -1,4 +1,4 @@
-// CS1705: Assembly `CS1705-lib, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' references `CS1705-lib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=36f3ae7e947792e3' which has a higher version number than imported assembly `CS1705-lib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=36f3ae7e947792e3'
+// CS1705: Assembly `CS1705-lib, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' depends on `CS1705-lib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=36f3ae7e947792e3' which has a higher version number than referenced assembly `CS1705-lib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=36f3ae7e947792e3'
 // Line: 0
 // Compiler options: -r:CS1705-lib.dll -r:dlls/second/CS1705-lib.dll -keyfile:key.snk
 
index d56229811f9ba6b0a1a27c1c8689da6360928c11..9b3b2fe80b9287dfe262d935bb0fbae197fe870b 100644 (file)
@@ -1,4 +1,4 @@
-// CS1705: Assembly `CS1705-lib, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' references `CS1705-lib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=36f3ae7e947792e3' which has a higher version number than imported assembly `CS1705-lib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=36f3ae7e947792e3'
+// CS1705: Assembly `CS1705-lib, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' depends on `CS1705-lib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=36f3ae7e947792e3' which has a higher version number than referenced assembly `CS1705-lib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=36f3ae7e947792e3'
 // Line: 0
 // Compiler options: -r:CS1705-lib.dll -r:dlls/second/CS1705-lib.dll
 
diff --git a/mcs/errors/cs1736-2.cs b/mcs/errors/cs1736-2.cs
deleted file mode 100644 (file)
index c9c9e84..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-// CS1736: The expression being assigned to optional parameter `s' must be a constant or default value
-// Line: 11
-
-struct S
-{
-       public S ()
-       {               
-       }
-}
-
-class X
-{
-       public void Foo (S s = new S ())
-       {
-       }
-}
\ No newline at end of file
diff --git a/mcs/errors/cs1940-2.cs b/mcs/errors/cs1940-2.cs
new file mode 100644 (file)
index 0000000..70db3b6
--- /dev/null
@@ -0,0 +1,29 @@
+// CS1940: Ambiguous implementation of the query pattern `Select' for source type `string[]'
+// Line: 11
+
+using System;
+using System.Collections.Generic;
+
+class Multiple
+{
+       public static void Main ()
+       {
+               var q = from x in new [] { "a", "b", "c" } select x;
+       }
+}
+
+static class Y
+{
+       public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector)
+       {
+               return null;
+       }
+}
+
+static class X
+{
+       public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector)
+       {
+               return null;
+       }
+}
\ No newline at end of file
diff --git a/mcs/errors/cs7064.cs b/mcs/errors/cs7064.cs
new file mode 100644 (file)
index 0000000..13425ef
--- /dev/null
@@ -0,0 +1,10 @@
+// CS7064: Error opening icon file `missing'. Could not find file "*PATH*/missing"
+// Line: 0
+// Compiler options: -win32icon:missing
+
+class C
+{
+       public static void Main ()
+       {
+       }
+}
\ No newline at end of file
index 93333f7187b68d88761f5eefd1405b3f94e25b09..86edc72db360a0bc2b04f393b83fab40d2600525 100644 (file)
@@ -1,9 +1,19 @@
-// CS8075: `A.A()': Structs parameterless instance constructor must be public
-// Line: 6
+// CS8075: An expression tree cannot contain a collection initializer with extension method
+// Line: 12
 
-struct A
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+
+class Program
 {
-       ()
+       static void Main()
        {
+               Expression<Func<Stack<int>>> e = () => new Stack<int> { 42 };           
        }
 }
+
+static class X
+{
+       public static void Add<T>(this Stack<T> s, T value) => s.Push (value);
+}
\ No newline at end of file
diff --git a/mcs/errors/cs8079.cs b/mcs/errors/cs8079.cs
deleted file mode 100644 (file)
index 18a7810..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-// CS8079: Use of possibly unassigned auto-implemented property `X'
-// Line: 11
-
-public struct S
-{
-       public int X { get; set; }
-       public int Y;
-
-       public S ()
-       {
-               Y = X;
-               X = 0;
-       }
-}
\ No newline at end of file
diff --git a/mcs/errors/known-issues-net_4_5 b/mcs/errors/known-issues-net_4_5
deleted file mode 100644 (file)
index 1e07f7c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# These files are give the wrong warning when compiled.
-# If you add a new test that should generate an error but generates the
-# wrong one, it should be added here.
-
-# If you fix the compiler so that it emits the correct error,
-# the file should be removed.
-
-# This file supports extended syntax
-# csXXXX.cs            : error test case reports wrong error
-# csXXXX.cs IGNORE     : adds test to ignore list (should ONLY be used if the runtime crashes)
-# csXXXX.cs NO ERROR   : error test case doesn't report any error. An exception is considered
-#                        as NO ERROR and CS5001 is automatically ignored.
-
-# Parser problems
-cs0080.cs 
-
-# Operators
-cs0457-2.cs
-cs0457.cs
diff --git a/mcs/errors/known-issues-net_4_x b/mcs/errors/known-issues-net_4_x
new file mode 100644 (file)
index 0000000..1e07f7c
--- /dev/null
@@ -0,0 +1,19 @@
+# These files are give the wrong warning when compiled.
+# If you add a new test that should generate an error but generates the
+# wrong one, it should be added here.
+
+# If you fix the compiler so that it emits the correct error,
+# the file should be removed.
+
+# This file supports extended syntax
+# csXXXX.cs            : error test case reports wrong error
+# csXXXX.cs IGNORE     : adds test to ignore list (should ONLY be used if the runtime crashes)
+# csXXXX.cs NO ERROR   : error test case doesn't report any error. An exception is considered
+#                        as NO ERROR and CS5001 is automatically ignored.
+
+# Parser problems
+cs0080.cs 
+
+# Operators
+cs0457-2.cs
+cs0457.cs
diff --git a/mcs/ilasm/codegen/AssemblyNameStore.cs b/mcs/ilasm/codegen/AssemblyNameStore.cs
deleted file mode 100644 (file)
index e138a63..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-//
-// Mono.ILASM.AssemblyNameStore
-//
-// Author(s):
-//  Jackson Harper (Jackson@LatitudeGeo.com)
-//
-// (C) 2003 Jackson Harper, All rights reserved
-//
-
-
-using System;
-using System.Reflection;
-using System.Collections;
-
-namespace Mono.ILASM {
-
-       public class AssemblyNameStore {
-       
-               private Hashtable name_store;
-
-               public AssemblyNameStore ()
-               {
-
-               }
-
-               public void Add (AssemblyName assembly_name) 
-               {
-                       if (name_store == null)
-                               name_store = new Hashtable ();
-                       name_store.Add (assembly_name.Name, assembly_name);
-               }
-
-               public Assembly Get (string name)
-               {
-                       AssemblyName assembly_name;
-
-                       assembly_name = (AssemblyName)name_store[name];
-
-                       if (assembly_name == null)
-                               return null;
-                               
-                       return Assembly.Load (assembly_name);
-               }
-       }
-
-}
-
diff --git a/mcs/ilasm/codegen/Class.cs b/mcs/ilasm/codegen/Class.cs
deleted file mode 100644 (file)
index 58a946c..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-// Class.cs\r
-// (C) Sergey Chaban (serge@wildwestsoftware.com)\r
-\r
-using System;\r
-using System.Collections;\r
-using System.Reflection;\r
-using System.Reflection.Emit;\r
-\r
-namespace Mono.ILASM {\r
-\r
-       /// <summary>\r
-       /// </summary>\r
-       public class ClassName {\r
-\r
-               private string name;\r
-               private string assembly;\r
-               private string module;\r
-\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               /// <param name="name"></param>\r
-               public ClassName (string name) {\r
-                       this.name = name;\r
-                       this.assembly = String.Empty;\r
-                       this.module = String.Empty;\r
-               }\r
-\r
-\r
-               public string Name {\r
-                       get {\r
-                               return name;\r
-                       }\r
-               }\r
-\r
-\r
-       }\r
-\r
-\r
-       /// <summary>\r
-       /// </summary>\r
-       public class Class {\r
-\r
-               private string name;\r
-\r
-               // extends clause\r
-               private ClassName baseClass;\r
-\r
-               // implements clause\r
-               private ArrayList interfaces;\r
-\r
-               private ArrayList methods;\r
-\r
-               private TypeBuilder tb;\r
-\r
-               private CodeGen codgen;\r
-\r
-               private TypeAttributes attrs;\r
-\r
-\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               /// <param name="name"></param>\r
-               public Class (string name)\r
-               {\r
-                       this.name = name;\r
-               }\r
-\r
-\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               /// <param name="m"></param>\r
-               public void AddMethod (Method m)\r
-               {\r
-                       if (methods == null) methods = new ArrayList ();\r
-                       methods.Add (m);\r
-               }\r
-\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               public CodeGen CodeGen {\r
-                       get {\r
-                               return codgen;\r
-                       }\r
-               }\r
-\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               public TypeAttributes Attrs {\r
-                       get {\r
-                               return attrs;\r
-                       }\r
-                       set {\r
-                               attrs = value;\r
-                       }\r
-               }\r
-\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               public TypeBuilder TypeBuilder {\r
-                       get {\r
-                               if (tb == null && codgen != null) {\r
-                                       tb = codgen.ModBuilder.DefineType (name, Attrs);\r
-                               }\r
-                               return tb;\r
-                       }\r
-               }\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               /// <param name="cg"></param>\r
-               public void Emit (CodeGen cg)\r
-               {\r
-                       codgen = cg;\r
-                       \r
-                       TypeBuilder.CreateType();\r
-                       cg.TypeManager[name] = TypeBuilder;\r
-\r
-                       if (methods != null) {\r
-                               foreach (Method m in methods) \r
-                                       m.Resolve (this);\r
-                       }\r
-\r
-                       if (methods != null) {\r
-                               foreach (Method m in methods) {\r
-                                       m.Emit (this);\r
-                                       if (m.IsEntryPoint)\r
-                                               cg.SetEntryPoint (m.Builder);\r
-                               }\r
-                       }       \r
-               }\r
-               \r
-               // This can be removed when System.Reflection.Emit.TypeBuilder.GetMethod is implemented\r
-               // TODO: This function needs allot of work\r
-               public MethodInfo GetMethod (string method_name, BindingFlags binding_flags,\r
-                       Type[] param_type_list)\r
-               {\r
-                       foreach (Method method in methods) {\r
-                               if (method.Name != method_name)\r
-                                       continue;\r
-                               ParameterInfo[] param_info = method.Builder.GetParameters ();\r
-                               if (param_info == null) {\r
-                                       if (param_type_list.Length == 0)\r
-                                               return method.Builder;\r
-                                       else\r
-                                               continue;\r
-                               }\r
-                               int size = param_info.Length;\r
-                               if (param_type_list.Length != size)\r
-                                       continue;\r
-                               for (int i=0; i<size; i++) {\r
-                                       if (param_type_list[i] != param_info[i].ParameterType)\r
-                                               goto end;       \r
-                               }\r
-\r
-                               return method.Builder;\r
-                               end: continue;\r
-                       }\r
-       \r
-                       return null;\r
-               }\r
-       }\r
-}\r
-\r
diff --git a/mcs/ilasm/codegen/ClassTable.cs b/mcs/ilasm/codegen/ClassTable.cs
deleted file mode 100644 (file)
index 0c2b5ad..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-//
-// Mono.ILASM.ClassTable.cs
-//
-// Author(s):
-//  Jackson Harper (Jackson@LatitudeGeo.com)
-//
-// (C) 2003 Jackson Harper, All rights reserved
-//
-
-using PEAPI;
-using System;
-using System.Collections;
-
-namespace Mono.ILASM {
-
-        public class ClassTable {
-
-                private class ClassTableItem {
-
-                        private static readonly int DefinedFlag = 2;
-
-                        private int flags;
-
-                        public ArrayList LocationList;
-                        public ClassDef Class;
-                        public MethodTable method_table;
-                        public FieldTable field_table;
-
-                        public ClassTableItem (ClassDef klass, Location location)
-                        {
-                                flags = 0;
-                                Class = klass;
-                                LocationList = new ArrayList ();
-                                LocationList.Add (location);
-                                method_table = new MethodTable (klass);
-                                field_table = new FieldTable (klass);
-                        }
-
-                        public bool Defined {
-                                get { return ((flags & DefinedFlag) != 0); }
-                                set {
-                                        if (value)
-                                                flags |= DefinedFlag;
-                                        else
-                                                flags ^= DefinedFlag;
-                                }
-                        }
-
-                        public bool CheckDefined ()
-                        {
-                                if (!Defined)
-                                        return false;
-
-                                if (!FieldTable.CheckDefined ())
-                                        return false;
-
-                                if (!MethodTable.CheckDefined ())
-                                        return false;
-
-                                return true;
-                        }
-
-                        public MethodTable MethodTable {
-                                get { return method_table; }
-                        }
-
-                        public FieldTable FieldTable {
-                                get { return field_table; }
-                        }
-
-                }
-
-                protected readonly TypeAttr DefaultAttr;
-                protected Hashtable table;
-                protected PEFile pefile;
-
-                public ClassTable (PEFile pefile)
-                {
-                        DefaultAttr = TypeAttr.Public;
-                        this.pefile = pefile;
-                        table = new Hashtable ();
-                }
-
-                public Class Get (string full_name)
-                {
-                        ClassTableItem item = table[full_name] as ClassTableItem;
-
-                        if (item == null)
-                                return null;
-
-                        return item.Class;
-                }
-
-                public Class GetReference (string full_name, Location location)
-                {
-                        ClassTableItem item = table[full_name] as ClassTableItem;
-
-                        if (item != null) {
-                                item.LocationList.Add (location);
-                                return item.Class;
-                        }
-
-                        string name_space, name;
-                        GetNameAndNamespace (full_name, out name_space, out name);
-                        ClassDef klass = pefile.AddClass (DefaultAttr, name_space, name);
-                        AddReference (full_name, klass, location);
-
-                        return klass;
-                }
-
-                public MethodTable GetMethodTable (string full_name, Location location)
-                {
-                        ClassTableItem item = table[full_name] as ClassTableItem;
-
-                        if (item == null) {
-                                GetReference (full_name, location);
-                                return GetMethodTable (full_name, location);
-                        }
-
-                        return item.MethodTable;
-                }
-
-                public FieldTable GetFieldTable (string full_name, Location location)
-                {
-                        ClassTableItem item = table[full_name] as ClassTableItem;
-
-                        if (item == null) {
-                                GetReference (full_name, location);
-                                return GetFieldTable (full_name, location);
-                        }
-
-                        return item.FieldTable;
-                }
-
-                public ClassDef AddDefinition (string name_space, string name,
-                        TypeAttr attr, Location location)
-                {
-                        string full_name;
-
-                        if (name_space != null)
-                                full_name = String.Format ("{0}.{1}", name_space, name);
-                        else
-                                full_name = name;
-
-                        ClassTableItem item = (ClassTableItem) table[full_name];
-
-                        if (item == null) {
-                                ClassDef klass = pefile.AddClass (attr, name_space, name);
-                                AddDefined (full_name, klass, location);
-                                return klass;
-                        }
-
-                        item.Class.AddAttribute (attr);
-                        item.Defined = true;
-
-                        return item.Class;
-                }
-
-                public ClassDef AddDefinition (string name_space, string name,
-                        TypeAttr attr, Class parent, Location location)
-                {
-                        string full_name;
-
-                        if (name_space != null)
-                                full_name = String.Format ("{0}.{1}", name_space, name);
-                        else
-                                full_name = name;
-
-                        ClassTableItem item = (ClassTableItem) table[full_name];
-
-                        if (item == null) {
-                                ClassDef klass = pefile.AddClass (attr, name_space, name, parent);
-                                AddDefined (full_name, klass, location);
-                                return klass;
-                        }
-
-                        /// TODO: Need to set parent, will need to modify PEAPI for this.
-                        item.Class.AddAttribute (attr);
-                        item.Defined = true;
-
-                        return item.Class;
-                }
-
-                /// <summary>
-                ///  When there is no code left to compile, check to make sure referenced types where defined
-                ///  TODO: Proper error reporting
-                /// </summary>
-                public void CheckForUndefined ()
-                {
-                        foreach (DictionaryEntry dic_entry in table) {
-                                ClassTableItem table_item = (ClassTableItem) dic_entry.Value;
-                                if (table_item.CheckDefined ())
-                                        continue;
-                                Report.Error (String.Format ("Type: {0} is not defined.", dic_entry.Key));
-                        }
-                }
-
-                /// <summary>
-                ///  If a type is allready defined throw an Error
-                /// </summary>
-                protected void CheckExists (string full_name)
-                {
-                        ClassTableItem item = table[full_name] as ClassTableItem;
-
-                        if ((item != null) && (item.Defined)) {
-                                Report.Error (String.Format ("Class: {0} defined in multiple locations.",
-                                        full_name));
-                        }
-                }
-
-                protected void AddDefined (string full_name, ClassDef klass, Location location)
-                {
-                        if (table.Contains (full_name))
-                                return;
-
-                        ClassTableItem item = new ClassTableItem (klass, location);
-                        item.Defined = true;
-
-                        table[full_name] = item;
-                }
-
-                protected void AddReference (string full_name, ClassDef klass, Location location)
-                {
-                        if (table.Contains (full_name))
-                                return;
-
-                        ClassTableItem item = new ClassTableItem (klass, location);
-
-                        table[full_name] = item;
-                }
-
-                public static void GetNameAndNamespace (string full_name,
-                        out string name_space, out string name) {
-
-                        int last_dot = full_name.LastIndexOf ('.');
-
-                        if (last_dot < 0) {
-                                name_space = String.Empty;
-                                name = full_name;
-                                return;
-                        }
-
-                        name_space = full_name.Substring (0, last_dot);
-                        name = full_name.Substring (last_dot + 1);
-                }
-
-        }
-
-}
-
diff --git a/mcs/ilasm/codegen/ExternTypeRefInst.cs b/mcs/ilasm/codegen/ExternTypeRefInst.cs
deleted file mode 100644 (file)
index 6d01117..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-//
-// Mono.ILASM.ExternTypeRefInst
-//
-// Author(s):
-//  Jackson Harper (Jackson@LatitudeGeo.com)
-//
-// (C) 2004 Novell, Inc (http://www.novell.com)
-//
-
-
-using System;
-using System.Collections;
-
-namespace Mono.ILASM {
-
-       public class ExternTypeRefInst : BaseTypeRef {
-
-               private ExternTypeRef type_ref;
-               private PEAPI.Type type;
-               private bool is_valuetypeinst;
-               private bool is_resolved;
-               private GenericArguments gen_args;
-               private static Hashtable method_table = new Hashtable ();
-
-               public ExternTypeRefInst (ExternTypeRef type_ref, GenericArguments gen_args, bool is_valuetypeinst)
-               {
-                       this.type_ref = type_ref;
-                       this.gen_args = gen_args;
-                       this.is_valuetypeinst = is_valuetypeinst;
-
-                       is_resolved = false;
-               }
-
-               public PEAPI.Type PeapiType {
-                       get { return type; }
-               }
-
-               public string FullName {
-                       get { return type_ref.FullName; }
-               }
-
-
-               public string SigMod {
-                       get { return type_ref.SigMod; }
-                       set { type_ref.SigMod = value; }
-               }
-
-               
-               public bool IsPinned {
-                       get { return type_ref.IsPinned; }
-               }
-
-               public bool IsRef {
-                       get { return type_ref.IsRef; }
-               }
-
-               public bool IsArray {
-                       get { return type_ref.IsArray; }
-               }
-
-               public bool UseTypeSpec {
-                       get { return type_ref.UseTypeSpec; }
-               }
-
-                public ExternTypeRefInst Clone ()
-               {
-                       return new ExternTypeRefInst (type_ref.Clone (), gen_args, is_valuetypeinst);
-               }
-
-               public void MakeArray ()
-               {
-                       is_valuetypeinst = false;
-                       type_ref.MakeArray ();
-               }
-
-               public void MakeBoundArray (ArrayList bounds)
-               {
-                       is_valuetypeinst = false;
-                       type_ref.MakeBoundArray (bounds);
-               }
-
-               public void MakeManagedPointer ()
-               {
-                       type_ref.MakeManagedPointer ();
-               }
-
-               public void MakeUnmanagedPointer ()
-               {
-                       type_ref.MakeUnmanagedPointer ();
-               }
-
-               public void MakeCustomModified (CodeGen code_gen,
-                               PEAPI.CustomModifier modifier, BaseClassRef klass)
-               {
-                       type_ref.MakeCustomModified (code_gen, modifier, klass);
-               }
-
-               public void MakePinned ()
-               {
-                       type_ref.MakePinned ();
-               }
-
-               public void MakeValueClass ()
-               {
-                       type_ref.MakeValueClass ();
-               }
-
-               public void Resolve (CodeGen code_gen)
-               {
-                       if (is_resolved)
-                               return;
-
-                       type_ref.Resolve (code_gen);
-
-                       type = new PEAPI.GenericTypeInst (type_ref.PeapiType, gen_args.Resolve (code_gen));
-
-                       is_resolved = true;
-               }
-
-               public BaseMethodRef GetMethodRef (BaseTypeRef ret_type, PEAPI.CallConv call_conv,
-                               string name, BaseTypeRef[] param, int gen_param_count)
-               {
-                       string key = type_ref.FullName + MethodDef.CreateSignature (ret_type, name, param, gen_param_count) + type_ref.SigMod;
-                       TypeSpecMethodRef mr = method_table [key] as TypeSpecMethodRef;
-                       if (mr == null) {        
-                               mr = new TypeSpecMethodRef (this, ret_type, call_conv, name, param, gen_param_count);
-                               method_table [key] = mr;
-                       }
-
-                       return mr;
-               }
-
-               public IFieldRef GetFieldRef (BaseTypeRef ret_type, string name)
-               {
-                       return new TypeSpecFieldRef (this, ret_type, name);
-               }
-       }
-}
-
diff --git a/mcs/ilasm/codegen/FieldTable.cs b/mcs/ilasm/codegen/FieldTable.cs
deleted file mode 100644 (file)
index 0a5aa46..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-//
-// Mono.ILASM.FieldTable.cs
-//
-// Author(s):
-//  Jackson Harper (Jackson@LatitudeGeo.com)
-//
-// (C) 2003 Jackson Harper, All rights reserved
-//
-
-using PEAPI;
-using System;
-using System.Text;
-using System.Collections;
-
-namespace Mono.ILASM {
-
-       public class FieldTable {
-
-               private class FieldTableItem {
-               
-                       private static readonly int DefinedFlag = 2;
-       
-                       private int flags;
-
-                       public ArrayList LocationList;
-                       public FieldDef Field;
-
-                       public FieldTableItem (FieldDef field, Location location)
-                       {
-                               flags = 0;
-                               Field = field;
-                               LocationList = new ArrayList ();
-                               LocationList.Add (location);
-                       }
-               
-                       public bool Defined {
-                               get { return ((flags & DefinedFlag) != 0); }
-                               set {
-                                       if (value)
-                                               flags |= DefinedFlag;
-                                       else
-                                               flags ^= DefinedFlag;
-                               }
-                       }
-               }
-
-               protected Hashtable table;
-               protected ClassDef parent_class;
-               
-               public FieldTable (ClassDef parent_class)
-               {
-                       this.parent_class = parent_class;
-                       table = new Hashtable ();
-               }
-
-               public Field GetReference (TypeRef type, string name, Location location)
-               {
-                       FieldTableItem item = table[name] as FieldTableItem;
-                       
-                       if (item != null) {
-                               item.LocationList.Add (location);
-                               return item.Field;
-                       }
-                       
-                       FieldDef field = parent_class.AddField (name, type.Type);
-                       AddReferenced (name, field, location);
-
-                       return field;
-               }
-       
-               public FieldDef AddDefinition (FieldAttr field_attr, string name, 
-                       TypeRef type, Location location) 
-               {
-                       FieldTableItem item = (FieldTableItem) table[name];
-                       
-                       if (item == null) {
-                               FieldDef field = parent_class.AddField (field_attr, name, type.Type);
-                               AddDefined (name, field, location);
-                               return field;
-                       }
-                       
-                       item.Field.AddFieldAttr (field_attr);
-                       item.Defined = true;
-                       
-                       return item.Field;
-               }
-
-               public bool CheckDefined ()
-               {
-                       foreach (DictionaryEntry dic_entry in table) {
-                               FieldTableItem table_item = (FieldTableItem) dic_entry.Value;
-                               if (table_item.Defined)
-                                       continue;
-                               Report.Error (String.Format ("Field: {0} is not defined.", dic_entry.Key));
-                       }
-                       return true;
-               }
-                       
-               protected void AddDefined (string signature, FieldDef field, Location location)
-               {
-                       if (table.Contains (signature))
-                               return; 
-
-                       FieldTableItem item = new FieldTableItem (field, location);
-                       item.Defined = true;
-
-                       table[signature] = item;
-               }
-
-               protected void AddReferenced (string signature, FieldDef field, Location location)
-               {
-                       FieldTableItem item = new FieldTableItem (field, location);
-                       
-                       table[signature] = item;
-               }
-
-               /// <summary>
-               ///  If a field is allready defined throw an Error
-               /// </summary>
-               protected void CheckExists (string signature) 
-               {
-                       FieldTableItem item = table[signature] as FieldTableItem;
-                       
-                       if ((item != null) && (item.Defined))
-                               Report.Error ("Field: " + signature + " defined in multiple locations.");
-               }
-       }
-
-}
-
diff --git a/mcs/ilasm/codegen/IClassRef.cs b/mcs/ilasm/codegen/IClassRef.cs
deleted file mode 100644 (file)
index 699edad..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-//
-// Mono.ILASM.IClassRef
-//
-// Author(s):
-//  Jackson Harper (Jackson@LatitudeGeo.com)
-//  Ankit Jain  (JAnkit@novell.com)
-//
-// (C) 2003 Jackson Harper, All rights reserved
-// (C) 2005 Novell, Inc (http://www.novell.com)
-//
-
-using System;
-
-namespace Mono.ILASM {
-
-        public interface BaseClassRef : BaseTypeRef {
-
-                PEAPI.Class PeapiClass { get; }
-
-                void MakeValueClass ();
-
-                IClassRef Clone ();
-                
-                /* Returns the Generic Instance for the BaseClassRef */
-                GenericTypeInst GetGenericTypeInst (GenericArguments gen_args);
-
-                /* Resolves the Generic instance and returns the 
-                   resolved type (typically, PEAPI.GenericTypeInst) */
-                PEAPI.Type ResolveInstance (CodeGen code_gen, GenericArguments gen_args);
-        }
-
-}
-
diff --git a/mcs/ilasm/codegen/ITypeRef.cs b/mcs/ilasm/codegen/ITypeRef.cs
deleted file mode 100644 (file)
index 80333ee..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Mono.ILASM.BaseTypeRef
-//
-// Interface that all Type references must implement
-//
-// Author(s):
-//  Jackson Harper (Jackson@LatitudeGeo.com)
-//
-// (C) 2003 Jackson Harper, All rights reserved
-//
-
-
-using System;
-using System.Collections;
-
-namespace Mono.ILASM {
-
-        public interface ITypeRef {
-
-                /// <summary>
-                ///  The full name of the type, <namespace>.<name>
-                /// ie System.Collections.ArrayList
-                /// </summary>
-                string FullName { get; }
-
-                bool IsPinned { get; }
-                bool IsRef { get; }
-                bool IsArray { get; }
-                bool UseTypeSpec { get; }
-
-                /// <summary>
-                ///  The PEAPI.Type of this typeref, this is not guaranteed
-                ///  to be correct untill after this is resolved.
-                /// </summary>
-                PEAPI.Type PeapiType { get; }
-
-                /// <summary>
-                ///  Convert this typeref into a zero based array
-                /// </summary>
-                void MakeArray ();
-
-                /// <summary>
-                ///  Convert this typeref into a bound array. The ArrayList
-                ///  should be in the format Entry (lower_bound, upper_bound) with
-                ///  null being used for unset bounds.
-                /// </summary>
-                void MakeBoundArray (ArrayList bounds);
-
-                /// <summary>
-                ///  Convert this typeref into a reference
-                /// </summary>
-                void MakeManagedPointer ();
-
-                /// <summary>
-                ///  Convert this typeref into an unmanaged pointer
-                /// </summary>
-                void MakeUnmanagedPointer ();
-
-                /// <summary>
-                ///  Convert this typeref into a CustomModifiedType
-                /// </summary>
-                void MakeCustomModified (CodeGen code_gen,
-                                PEAPI.CustomModifier modifier, IClassRef klass);
-
-                /// <summary>
-                ///  Make this typeref pinned.
-                /// </summary>
-                void MakePinned ();
-
-                void Resolve (CodeGen code_gen);
-
-                BaseMethodRef GetMethodRef (ITypeRef ret_type, PEAPI.CallConv call_conv,
-                                string name, ITypeRef[] param, int gen_param_count);
-
-                IFieldRef GetFieldRef (ITypeRef ret_type, string name);
-
-                /// <summary>
-                ///  Convert this typeref to a classref if not possible
-                ///  throw an exception
-                /// </summary>
-                // IClassRef AsClassRef (CodeGen code_gen);
-        }
-
-}
-
diff --git a/mcs/ilasm/codegen/Location.cs b/mcs/ilasm/codegen/Location.cs
deleted file mode 100644 (file)
index 2fc4637..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-//
-// Mono.ILASM.Location.cs
-//
-// Author(s):
-//  Jackson Harper (Jackson@LatitudeGeo.com)
-//
-// (C) 2003 Jackson Harper, All rights reserved
-//
-
-using System;
-
-namespace Mono.ILASM {
-
-        /// TODO: This class will eventually store il file location info,
-        /// like line and col
-        public class Location
-        {
-
-        }
-
-}
-
diff --git a/mcs/ilasm/codegen/Method.cs b/mcs/ilasm/codegen/Method.cs
deleted file mode 100644 (file)
index a52ce89..0000000
+++ /dev/null
@@ -1,280 +0,0 @@
-// Method.cs\r
-// (C) Sergey Chaban (serge@wildwestsoftware.com)\r
-\r
-using System;\r
-using System.Collections;\r
-using System.Reflection;\r
-using System.Reflection.Emit;\r
-\r
-namespace Mono.ILASM {\r
-\r
-\r
-       public class MethodName {\r
-               private static int methodCount = 0;\r
-\r
-               private bool isCtor;\r
-               private string name;\r
-               \r
-               /// <summary>\r
-               /// </summary>\r
-               public MethodName () : this ("M_" + (methodCount++))\r
-               {\r
-               }\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               /// <param name="name"></param>\r
-               public MethodName (string name) : this (name, false)\r
-               {\r
-               }\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               /// <param name="name"></param>\r
-               /// <param name="ctor"></param>\r
-               public MethodName (string name, bool ctor)\r
-               {\r
-                       this.name = name;\r
-                       this.isCtor = ctor;\r
-               }\r
-\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               public string Name {\r
-                       get {\r
-                               return name;\r
-                       }\r
-                       set {\r
-                               name = value;\r
-                       }\r
-               }\r
-\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               public bool IsCtor {\r
-                       get {\r
-                               return isCtor;\r
-                       }\r
-                       set {\r
-                               isCtor = value;\r
-                       }\r
-               }\r
-\r
-       }\r
-\r
-\r
-\r
-       /// <summary>\r
-       /// </summary>\r
-       public class Method {\r
-\r
-               private MethodName name;\r
-               private MethodAttributes attrs;\r
-               private CallingConventions callConv;\r
-               private string retType;\r
-               private MethodBuilder method_builder;\r
-               private bool entry_point = false;\r
-\r
-               private ArrayList param_list;\r
-               private ArrayList instructions;\r
-               private ArrayList local_list;\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               public Method ()\r
-               {\r
-                       name = new MethodName ();\r
-                       attrs = 0;\r
-               }\r
-\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               public string Name {\r
-                       get {\r
-                               return name.Name;\r
-                       }\r
-                       set {\r
-                               name.Name = value;\r
-                       }\r
-               }\r
-\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               /// <param name="name"></param>\r
-               public void SetMethodName (MethodName name)\r
-               {\r
-                       this.name = name;\r
-               }\r
-\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               public bool IsCtor {\r
-                       get {\r
-                               return name.IsCtor;\r
-                       }\r
-                       set {\r
-                               name.IsCtor = value;\r
-                       }\r
-               }\r
-\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               public string RetType {\r
-                       get {\r
-                               return retType;\r
-                       }\r
-                       set {\r
-                               retType = value;\r
-                       }\r
-               }\r
-\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               public MethodAttributes Attrs {\r
-                       get {\r
-                               return attrs;\r
-                       }\r
-                       set {\r
-                               attrs = value;\r
-                       }\r
-               }\r
-\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               public CallingConventions CallConv {\r
-                       get {\r
-                               return callConv;\r
-                       }\r
-                       set {\r
-                               callConv = value;\r
-                       }\r
-               }\r
-\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               public bool IsEntryPoint {\r
-                       get {\r
-                               return entry_point;\r
-                       }\r
-                       set {\r
-                               entry_point = value;\r
-                       }\r
-               }               \r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               /// <param name="instr"></param>\r
-               public void AddInstruction (InstrBase instr)\r
-               {\r
-                       if (instr == null) {\r
-                               throw new InternalErrorException ("<null> instruction");\r
-                       }\r
-\r
-                       if (instructions == null) {\r
-                               this.instructions = new ArrayList ();\r
-                       }\r
-\r
-                       instructions.Add (instr);\r
-               }\r
-\r
-               public void AddLocal (DictionaryEntry local)\r
-               {\r
-                       if (local_list == null)\r
-                               local_list = new ArrayList ();\r
-\r
-                       local_list.Add (local);\r
-       \r
-               }\r
-\r
-               public void SetParamList (ArrayList param_list)\r
-               {\r
-                       this.param_list = param_list;\r
-               }\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               public int InstrCount {\r
-                       get {\r
-                               return (instructions != null) ? instructions.Count : 0;\r
-                       }\r
-               }\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               /// <returns></returns>\r
-               public override string ToString ()\r
-               {\r
-                       return String.Format ("IL.Method [Name: {0}, Attrs: {1}, CallConv: {2}, RetType: {3}, Instr: {4}]",\r
-                                             Name, Attrs, CallConv, RetType, InstrCount);\r
-               }\r
-\r
-               public MethodBuilder Builder {\r
-                       get {\r
-                               return method_builder;\r
-                       }\r
-               }\r
-\r
-               public void Resolve (Class host)\r
-               {\r
-                       Type return_type = host.CodeGen.TypeManager[RetType];\r
-                       method_builder = host.TypeBuilder.DefineMethod (Name, Attrs, \r
-                               CallConv, return_type, CreateTypeList (host.CodeGen.TypeManager));\r
-               }\r
-\r
-               /// <summary>\r
-               /// </summary>\r
-               /// <param name="tb"></param>\r
-               public void Emit (Class host)\r
-               {\r
-                       TypeBuilder tb = host.TypeBuilder;\r
-\r
-                       if (IsCtor) {\r
-                       } else {\r
-                               ILGenerator ilgen = method_builder.GetILGenerator ();\r
-\r
-                               if (local_list != null) {\r
-                                       foreach (DictionaryEntry local in local_list) {\r
-                                               Type local_type = host.CodeGen.TypeManager[(string)local.Key];\r
-                                               if (local_type == null) {\r
-                                                       Console.WriteLine ("Could not find type: {0}", local.Key);\r
-                                                       return;\r
-                                               }\r
-                                               ilgen.DeclareLocal (local_type);\r
-                                       }\r
-                               }\r
-\r
-                               if (instructions != null) {\r
-                                       foreach (InstrBase instr in instructions)\r
-                                               instr.Emit (ilgen, host);\r
-                               }\r
-                       }\r
-               }\r
-\r
-               private Type[] CreateTypeList (TypeManager type_manager)\r
-               {\r
-                       if (param_list == null)\r
-                               return new Type[0];\r
-\r
-                       int count = param_list.Count;\r
-                       Type[] type_list = new Type[count];\r
-                       \r
-                       for (int i=0; i<count; i++) {\r
-                               type_list[i] = type_manager[(string) param_list[i]];\r
-                       }\r
-               \r
-                       return type_list;\r
-               }\r
-\r
-       }\r
-\r
-       \r
-}\r
index a13d9f1f9f2e2d803757ff38c7aec06e8cf6295f..7c5e5fc8a9f7acf2fc3c6f438fe58bf1406507ed 100644 (file)
@@ -707,13 +707,16 @@ namespace Mono.ILASM {
                         if (IsVararg)
                                 signature = CreateVarargSignature (RetType, name, param_list);
                         else
-                                signature = CreateSignature (RetType, name, param_list, GenParamCount);
+                                signature = CreateSignature (RetType, name, param_list, GenParamCount, Attributes);
                 }
 
-                static string CreateSignature (BaseTypeRef RetType, string name, IList param_list, int gen_param_count)
+                               static string CreateSignature (BaseTypeRef RetType, string name, IList param_list, int gen_param_count, PEAPI.MethAttr attrs)
                 {
                         StringBuilder builder = new StringBuilder ();
 
+                                               if ((attrs & PEAPI.MethAttr.Static) == 0)
+                                                       builder.Append ("instance ");
+
                        builder.Append (RetType.FullName);
                        builder.Append (" ");
                         builder.Append (name);
@@ -777,10 +780,10 @@ namespace Mono.ILASM {
                         if ((call_conv & PEAPI.CallConv.Vararg) != 0)
                                 return CreateVarargSignature (RetType, name, param_list, include_optional);
                         else
-                                return CreateSignature (RetType, name, param_list, gen_param_count, include_optional);
+                                return CreateSignature (RetType, name, param_list, gen_param_count, include_optional, call_conv);
                 }
 
-                static string CreateVarargSignature (BaseTypeRef RetType, string name, BaseTypeRef [] param_list, bool include_optional)
+                               static string CreateVarargSignature (BaseTypeRef RetType, string name, BaseTypeRef [] param_list, bool include_optional)
                 {
                         StringBuilder builder = new StringBuilder ();
                         BaseTypeRef last = null;
@@ -815,10 +818,14 @@ namespace Mono.ILASM {
                         return builder.ToString ();
                 }
 
-                static string CreateSignature (BaseTypeRef RetType, string name, BaseTypeRef[] param_list, int gen_param_count, bool include_optional)
+                               static string CreateSignature (BaseTypeRef RetType, string name, BaseTypeRef[] param_list, int gen_param_count, bool include_optional, PEAPI.CallConv call_conv)
                 {
                         StringBuilder builder = new StringBuilder ();
 
+                                               if ((call_conv & PEAPI.CallConv.Instance) != 0)
+                                                       builder.Append ("instance ");
+
+
                        builder.Append (RetType.FullName);
                        builder.Append (" ");
                         builder.Append (name);
index 5c0553febf0424ae80cc9d05006118c9840ab77c..698237c8d78c515524704be9f492c6b36c0b6c22 100644 (file)
@@ -32,13 +32,6 @@ namespace Mono.ILASM {
                        if (owner_def == null)
                                Report.Error ("Reference to undefined class '" + owner.FullName + "'");
 
-                        string write_name;
-
-                        if (name == "<init>")
-                                write_name = ".ctor";
-                        else
-                                write_name = name;
-
                         if ((call_conv & PEAPI.CallConv.Vararg) == 0) {
                                 peapi_method = owner_def.ResolveMethod (ret_type, call_conv, name, 
                                         param, gen_param_count, code_gen);
diff --git a/mcs/ilasm/codegen/MethodTable.cs b/mcs/ilasm/codegen/MethodTable.cs
deleted file mode 100644 (file)
index 2ac19d1..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-//
-// Mono.ILASM.MethodTable.cs
-//
-// Author(s):
-//  Jackson Harper (Jackson@LatitudeGeo.com)
-//
-// (C) 2003 Jackson Harper, All rights reserved
-//
-
-using PEAPI;
-using System;
-using System.Text;
-using System.Collections;
-
-namespace Mono.ILASM {
-
-
-       public delegate void MethodDefinedEvent (object sender, MethodDefinedEventArgs args);
-       public delegate void MethodReferencedEvent (object sender, MethodReferencedEventArgs args);
-
-       public class MethodEventArgs : EventArgs {
-               
-               public readonly string Signature;
-               public readonly string Name;
-               public readonly TypeRef ReturnType;
-               public readonly Param[] ParamList;
-               public readonly bool IsInTable;
-
-               public MethodEventArgs (string signature, string name,
-                       TypeRef return_type, Param[] param_list, bool is_in_table) 
-               {
-                       Signature = signature;
-                       Name = name;
-                       ReturnType = return_type;
-                       ParamList = param_list;
-                       IsInTable = is_in_table;
-               }
-       }
-
-       public class MethodDefinedEventArgs : MethodEventArgs {
-
-               public readonly MethAttr MethodAttributes;
-               public readonly ImplAttr ImplAttributes;
-               public readonly CallConv CallConv;
-               
-               public MethodDefinedEventArgs (string signature, string name, 
-                       TypeRef return_type, Param[] param_list, bool is_in_table, MethAttr method_attr, 
-                       ImplAttr impl_attr, CallConv call_conv) : base (signature, name, 
-                       return_type, param_list, is_in_table)
-               {
-                       MethodAttributes = method_attr;
-                       ImplAttributes = impl_attr;
-                       CallConv = call_conv;
-               }
-       }
-
-       public class MethodReferencedEventArgs : MethodEventArgs {
-               
-               public MethodReferencedEventArgs (string signature, string name, 
-                       TypeRef return_type, Param[] param_list, bool is_in_table) : base (signature, name, 
-                       return_type, param_list, is_in_table)
-               {
-
-               }
-       }
-
-
-       public class MethodTable {
-
-               private class MethodTableItem {
-               
-                       private static readonly int DefinedFlag = 2;
-       
-                       private int flags;
-
-                       public ArrayList LocationList;
-                       public MethodDef Method;
-
-                       public MethodTableItem (MethodDef method, Location location)
-                       {
-                               flags = 0;
-                               Method = method;
-                               LocationList = new ArrayList ();
-                               LocationList.Add (location);
-                       }
-               
-                       public bool Defined {
-                               get { return ((flags & DefinedFlag) != 0); }
-                               set {
-                                       if (value)
-                                               flags |= DefinedFlag;
-                                       else
-                                               flags ^= DefinedFlag;
-                               }
-                       }
-               }
-
-               protected Hashtable table;
-               protected ClassDef parent_class;
-               
-               public static event MethodReferencedEvent MethodReferencedEvent;
-               public static event MethodDefinedEvent MethodDefinedEvent;
-
-               public MethodTable (ClassDef parent_class)
-               {
-                       this.parent_class = parent_class;
-                       table = new Hashtable ();
-               }
-
-               public Method GetReference (string name, TypeRef return_type, 
-                       Param[] param_list, TypeRef[] param_type_list, Location location)
-               {
-                       string signature = GetSignature (name, return_type, param_type_list);
-
-                       if (MethodReferencedEvent != null)
-                               MethodReferencedEvent (this, new MethodReferencedEventArgs (signature, name,
-                                       return_type, param_list, table.Contains (signature)));
-
-                       MethodTableItem item = table[signature] as MethodTableItem;
-                       
-                       if (item != null) {
-                               item.LocationList.Add (location);
-                               return item.Method;
-                       }
-                       
-                       MethodDef method = parent_class.AddMethod (name, return_type.Type,
-                               param_list);
-                       
-                       AddReferenced (signature, method, location);
-
-                       return method;
-               }
-       
-               public MethodDef AddDefinition (MethAttr method_attr, ImplAttr impl_attr, CallConv call_conv, 
-                       string name, TypeRef return_type, Param[] param_list, 
-                       TypeRef[] param_type_list, Location location) 
-               {
-                       string signature = GetSignature (name, return_type, param_type_list);
-
-                       if (MethodDefinedEvent != null)
-                               MethodDefinedEvent (this, new MethodDefinedEventArgs (signature, name,
-                                       return_type, param_list, table.Contains (signature), method_attr, 
-                                       impl_attr, call_conv));
-
-                       MethodTableItem item = (MethodTableItem) table[signature];
-                       
-                       if (item == null) {
-                               MethodDef method = parent_class.AddMethod (method_attr, impl_attr, name, 
-                                       return_type.Type, param_list);
-                               method.AddCallConv (call_conv);
-                               AddDefined (signature, method, location);
-                               return method;
-                       }
-                       
-                       item.Method.AddMethAttribute (method_attr);
-                       item.Method.AddImplAttribute (impl_attr);
-                       item.Method.AddCallConv (call_conv);
-                       item.Defined = true;
-               
-                       return item.Method;
-               }
-
-               public bool CheckDefined ()
-               {
-                       foreach (DictionaryEntry dic_entry in table) {
-                               MethodTableItem table_item = (MethodTableItem) dic_entry.Value;
-                               if (table_item.Defined)
-                                       continue;
-                               Report.Error (String.Format ("Method: {0} is not defined.", dic_entry.Key));
-                       }
-                       return true;
-               }
-                                       
-               protected string GetSignature (string name, TypeRef return_type, 
-                       TypeRef[] param_list)
-               {
-                       StringBuilder builder = new StringBuilder ();
-                       
-                       builder.Append (return_type.FullName);
-                       builder.Append ('_');
-                       builder.Append (name);
-                       builder.Append ('(');
-                       
-                       bool first = true;
-                       foreach (TypeRef type_ref in param_list) {
-                               if (!first)
-                                       builder.Append (',');
-                               builder.Append (type_ref.FullName);
-                       }
-                       builder.Append (')');
-
-                       return builder.ToString ();
-               }
-
-               protected void AddDefined (string signature, MethodDef method, Location location)
-               {
-                       if (table.Contains (signature))
-                               return; 
-
-                       MethodTableItem item = new MethodTableItem (method, location);
-                       item.Defined = true;
-
-                       table[signature] = item;
-               }
-
-               protected void AddReferenced (string signature, MethodDef method, Location location)
-               {
-                       MethodTableItem item = new MethodTableItem (method, location);
-                       
-                       table[signature] = item;
-               }
-
-               /// <summary>
-               ///  If a method is allready defined throw an Error
-               /// </summary>
-               protected void CheckExists (string signature) 
-               {
-                       MethodTableItem item = table[signature] as MethodTableItem;
-                       
-                       if ((item != null) && (item.Defined)) {
-                               Report.Error (String.Format ("Method: {0} defined in multiple locations.", 
-                                       signature));
-                       }
-               }
-       }
-
-}
-
index 21fbd8ee575d780b483bf38d34a0bc318ab43d99..2fce6857033367125b6f515d07cd9cecdd3b4d3b 100644 (file)
@@ -13,8 +13,8 @@ using System.Collections;
 
 namespace Mono.ILASM {
         public class Pair {
-                private PEAPI.Type type;
-                private string sig;
+                protected PEAPI.Type type;
+                protected string sig;
 
                 public Pair (PEAPI.Type type, string sig)
                 {
@@ -38,6 +38,31 @@ namespace Mono.ILASM {
                 }
         }
 
+        class Triplet : Pair
+        {
+                string typeMod;
+
+                public Triplet (PEAPI.Type type, string sig, string typeMod)
+                        : base (type, sig)
+                {
+                        this.typeMod = typeMod;
+                }
+
+                public override int GetHashCode ()
+                {
+                        return base.GetHashCode () ^ typeMod.GetHashCode ();
+                }
+
+                public override bool Equals (object o)
+                {
+                        Triplet t = o as Triplet;
+                        if (t == null)
+                                return false;
+
+                        return t.type == type && t.sig == sig && t.typeMod == typeMod;
+                }
+        }
+
         public class PeapiTypeRef  {
 
                 private PEAPI.Type peapi_type;
@@ -202,7 +227,7 @@ namespace Mono.ILASM {
 
                         use_type_spec = true;
                         
-                        Pair p = new Pair (peapi_type, modifier.ToString ());
+                        Pair p = new Triplet (peapi_type, modifier.ToString (), klass.FullName);
                         type = type_table [p] as PEAPI.Type;
                         if (type == null) {
                                 type = GetType (code_gen, modifier, klass);
index 0f2525c5de0fed66eb9255e1664b6443b06f356e..793e47c8a2aeb8ea25919ae770aafa6bf61a66f9 100644 (file)
@@ -354,7 +354,6 @@ namespace Mono.ILASM {
                                 if (!IsValueType (name_space, name) && !IsEnumType (name_space, name) &&
                                         is_value_class && (attr & PEAPI.TypeAttr.Sealed) == 0) {
 
-                                        Report.Warning (location, "Non-sealed value class, made sealed.");
                                         attr |= PEAPI.TypeAttr.Sealed;
                                 }
 
@@ -416,6 +415,10 @@ namespace Mono.ILASM {
                 {
                         ArrayList fielddef_list = new ArrayList ();
                         foreach (FieldDef fielddef in field_list) {
+                                if (is_enum_class && fielddef.Name == "value__") {
+                                    fielddef.Attributes |= PEAPI.FieldAttr.SpecialName | PEAPI.FieldAttr.RTSpecialName;
+                                }
+
                                 fielddef.Define (code_gen, classdef);
                                 fielddef_list.Add (fielddef.PeapiFieldDef);
                         }
diff --git a/mcs/ilasm/ilasm.csproj b/mcs/ilasm/ilasm.csproj
new file mode 100644 (file)
index 0000000..4c2a6cf
--- /dev/null
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+    <ProjectGuid>{C02B3C37-DB98-40A5-84F0-F98633DA7EE4}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>ilasm</RootNamespace>
+    <AssemblyName>ilasm</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;NET_4_5</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <Externalconsole>true</Externalconsole>
+    <PlatformTarget>x86</PlatformTarget>
+    <Commandlineparameters></Commandlineparameters>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <DebugType>full</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <Externalconsole>true</Externalconsole>
+    <PlatformTarget>x86</PlatformTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="PEAPI">
+      <HintPath>..\class\lib\net_4_5\PEAPI.dll</HintPath>
+    </Reference>
+    <Reference Include="Mono.CompilerServices.SymbolWriter" />
+    <Reference Include="Mono.Security" />
+  </ItemGroup>
+  <ItemGroup>
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <ItemGroup>
+    <Folder Include="codegen\" />
+    <Folder Include="parser\" />
+    <Folder Include="scanner\" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="codegen\Assembly.cs" />
+    <Compile Include="codegen\BaseClassRef.cs" />
+    <Compile Include="codegen\BaseGenericTypeRef.cs" />
+    <Compile Include="codegen\BaseMethodRef.cs" />
+    <Compile Include="codegen\BaseTypeRef.cs" />
+    <Compile Include="codegen\BranchInstr.cs" />
+    <Compile Include="codegen\CalliInstr.cs" />
+    <Compile Include="codegen\CatchBlock.cs" />
+    <Compile Include="codegen\CodeGen.cs" />
+    <Compile Include="codegen\CustomAttr.cs" />
+    <Compile Include="codegen\DataDef.cs" />
+    <Compile Include="codegen\DebuggingInfo.cs" />
+    <Compile Include="codegen\DeclSecurity.cs" />
+    <Compile Include="codegen\EmitByteInstr.cs" />
+    <Compile Include="codegen\EventDef.cs" />
+    <Compile Include="codegen\ExternFieldRef.cs" />
+    <Compile Include="codegen\ExternMethodRef.cs" />
+    <Compile Include="codegen\ExternTable.cs" />
+    <Compile Include="codegen\ExternTypeRef.cs" />
+    <Compile Include="codegen\FaultBlock.cs" />
+    <Compile Include="codegen\FeatureAttr.cs" />
+    <Compile Include="codegen\FieldDef.cs" />
+    <Compile Include="codegen\FieldInstr.cs" />
+    <Compile Include="codegen\FieldRef.cs" />
+    <Compile Include="codegen\FileRef.cs" />
+    <Compile Include="codegen\FilterBlock.cs" />
+    <Compile Include="codegen\FinallyBlock.cs" />
+    <Compile Include="codegen\GenericArguments.cs" />
+    <Compile Include="codegen\GenericMethodRef.cs" />
+    <Compile Include="codegen\GenericMethodSig.cs" />
+    <Compile Include="codegen\GenericParamRef.cs" />
+    <Compile Include="codegen\GenericParameters.cs" />
+    <Compile Include="codegen\GenericTypeInst.cs" />
+    <Compile Include="codegen\GlobalFieldRef.cs" />
+    <Compile Include="codegen\GlobalMethodRef.cs" />
+    <Compile Include="codegen\HandlerBlock.cs" />
+    <Compile Include="codegen\IFieldRef.cs" />
+    <Compile Include="codegen\IInstr.cs" />
+    <Compile Include="codegen\IMethodRef.cs" />
+    <Compile Include="codegen\ISehClause.cs" />
+    <Compile Include="codegen\InstrTable.cs" />
+    <Compile Include="codegen\IntInstr.cs" />
+    <Compile Include="codegen\LabelInfo.cs" />
+    <Compile Include="codegen\LdcInstr.cs" />
+    <Compile Include="codegen\LdstrInstr.cs" />
+    <Compile Include="codegen\LdtokenInstr.cs" />
+    <Compile Include="codegen\Local.cs" />
+    <Compile Include="codegen\MethodDef.cs" />
+    <Compile Include="codegen\MethodInstr.cs" />
+    <Compile Include="codegen\MethodPointerTypeRef.cs" />
+    <Compile Include="codegen\MethodRef.cs" />
+    <Compile Include="codegen\MiscInstr.cs" />
+    <Compile Include="codegen\ModifiableType.cs" />
+    <Compile Include="codegen\Module.cs" />
+    <Compile Include="codegen\ParamDef.cs" />
+    <Compile Include="codegen\PeapiTypeRef.cs" />
+    <Compile Include="codegen\Permission.cs" />
+    <Compile Include="codegen\PermissionMember.cs" />
+    <Compile Include="codegen\PermissionSet.cs" />
+    <Compile Include="codegen\PrimitiveTypeRef.cs" />
+    <Compile Include="codegen\PropertyDef.cs" />
+    <Compile Include="codegen\Sentinel.cs" />
+    <Compile Include="codegen\SimpInstr.cs" />
+    <Compile Include="codegen\SwitchInstr.cs" />
+    <Compile Include="codegen\TryBlock.cs" />
+    <Compile Include="codegen\TypeDef.cs" />
+    <Compile Include="codegen\TypeInstr.cs" />
+    <Compile Include="codegen\TypeManager.cs" />
+    <Compile Include="codegen\TypeRef.cs" />
+    <Compile Include="codegen\TypeSpecFieldRef.cs" />
+    <Compile Include="codegen\TypeSpecMethodRef.cs" />
+    <Compile Include="codegen\Types.cs" />
+    <Compile Include="parser\ScannerAdapter.cs" />
+    <Compile Include="AssemblyInfo.cs" />
+    <Compile Include="Driver.cs" />
+    <Compile Include="Report.cs" />
+    <Compile Include="scanner\ILReader.cs" />
+    <Compile Include="scanner\ILTables.cs" />
+    <Compile Include="scanner\ILToken.cs" />
+    <Compile Include="scanner\ILTokenizer.cs" />
+    <Compile Include="scanner\ILTokenizingException.cs" />
+    <Compile Include="scanner\ITokenStream.cs" />
+    <Compile Include="scanner\InstrToken.cs" />
+    <Compile Include="scanner\Location.cs" />
+    <Compile Include="scanner\NumberHelper.cs" />
+    <Compile Include="scanner\StringHelper.cs" />
+    <Compile Include="scanner\StringHelperBase.cs" />
+    <Compile Include="ILParser.cs" />
+    <Compile Include="..\build\common\Consts.cs">
+      <Link>Consts.cs</Link>
+    </Compile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
index 4cd03495ef3ac0cb64037589e9e15f420d11fc92..63ddee82bfa286db0e183495ef80d6a93e4d5b90 100644 (file)
@@ -480,6 +480,9 @@ namespace Mono.ILASM {
 %token K_OFF\r
 %token K_FORWARDER\r
 %token K_CHARMAPERROR\r
+%token K_LEGACY\r
+%token K_LIBRARY\r
+%token K_AUTO\r
 \r
 /* end generated */\r
 \r
@@ -591,9 +594,6 @@ class_head          : D_CLASS class_attr comp_name formal_typars_clause extends_clause
                           }\r
                        ;\r
 \r
-class_attrs            : class_attrs class_attr\r
-                       ;\r
-\r
 class_attr             : /* EMPTY */                           \r
                          { \r
                                // Reset some flags\r
@@ -610,8 +610,7 @@ class_attr          : /* EMPTY */
                        | class_attr K_NESTED K_FAMANDASSEM     { $$ = (TypeAttr)$1 | TypeAttr.NestedFamAndAssem; }\r
                        | class_attr K_NESTED K_FAMORASSEM      { $$ = (TypeAttr)$1 | TypeAttr.NestedFamOrAssem; }\r
                        | class_attr K_VALUE                    { is_value_class = true; }\r
-                       | class_attr K_ENUM                     { is_enum_class = true; is_value_class = true;\r
-                         }\r
+                       | class_attr K_ENUM                     { is_enum_class = true; }\r
                        | class_attr K_INTERFACE                { $$ = (TypeAttr)$1 | TypeAttr.Interface; }\r
                        | class_attr K_SEALED                   { $$ = (TypeAttr)$1 | TypeAttr.Sealed; }\r
                        | class_attr K_ABSTRACT                 { $$ = (TypeAttr)$1 | TypeAttr.Abstract; }\r
@@ -689,13 +688,13 @@ constraints_clause        : /* EMTPY */
                        ;\r
 \r
 \r
-constraints            : generic_class_ref\r
+constraints            : type\r
                          {\r
                                 ArrayList al = new ArrayList ();\r
                                 al.Add ($1);\r
                                 $$ = al;\r
                            }\r
-                       | constraints COMMA generic_class_ref\r
+                       | constraints COMMA type\r
                           {\r
                                 ArrayList al = (ArrayList) $1;\r
                                 al.Add ($3);\r
@@ -707,6 +706,10 @@ generic_class_ref  : class_ref
                          {\r
                                 $$ = $1;\r
                          }\r
+                       | K_OBJECT\r
+                          {\r
+                                $$ = new PrimitiveTypeRef (PrimitiveType.Object, "System.Object");\r
+                          }\r
                        | K_CLASS class_ref typars_clause\r
                          {\r
                                 if ($3 != null)\r
@@ -921,17 +924,13 @@ class_decl                : method_all
 \r
 type                   : generic_class_ref\r
                           {\r
-                               $$ = $1;\r
-                          }\r
-                       | K_OBJECT\r
-                          {\r
-                                $$ = new PrimitiveTypeRef (PrimitiveType.Object, "System.Object");\r
+                               $$ = GetTypeRef ((BaseTypeRef) $1);\r
                           }\r
                        | K_VALUE K_CLASS class_ref\r
                           {\r
-                               BaseClassRef class_ref = (BaseClassRef) $3;\r
-                               class_ref.MakeValueClass ();\r
-                                $$ = class_ref;\r
+                                BaseClassRef class_ref = (BaseClassRef) $3;\r
+                                class_ref.MakeValueClass ();\r
+                                $$ = GetTypeRef (class_ref);\r
                           }\r
                        | K_VALUETYPE OPEN_BRACKET slashed_name CLOSE_BRACKET slashed_name typars_clause\r
                           {\r
@@ -939,7 +938,7 @@ type                        : generic_class_ref
                                 if ($6 != null)\r
                                         $$ = ext_ref.GetGenericTypeInst ((GenericArguments) $6);\r
                                 else\r
-                                        $$ = ext_ref;\r
+                                        $$ = GetTypeRef (ext_ref);\r
                           }\r
                         | K_VALUETYPE slashed_name typars_clause\r
                           {\r
@@ -948,42 +947,42 @@ type                      : generic_class_ref
                                 if ($3 != null)\r
                                         $$ = t_ref.GetGenericTypeInst ((GenericArguments) $3);\r
                                 else\r
-                                        $$ = t_ref;\r
+                                        $$ = GetTypeRef (t_ref);\r
                           }\r
                        | type OPEN_BRACKET CLOSE_BRACKET\r
                           {\r
-                                BaseTypeRef base_type = GetTypeRef ((BaseTypeRef) $1);\r
+                                BaseTypeRef base_type = (BaseTypeRef) $1;\r
                                 base_type.MakeArray ();\r
                                 $$ = base_type;\r
                           }\r
                        | type OPEN_BRACKET bounds CLOSE_BRACKET\r
                           {\r
-                                BaseTypeRef base_type = GetTypeRef ((BaseTypeRef) $1);\r
+                                BaseTypeRef base_type = (BaseTypeRef) $1;\r
                                 ArrayList bound_list = (ArrayList) $3;\r
                                 base_type.MakeBoundArray (bound_list);\r
                                 $$ = base_type;\r
                           }\r
                        | type AMPERSAND\r
                           {\r
-                                BaseTypeRef base_type = GetTypeRef ((BaseTypeRef) $1);\r
+                                BaseTypeRef base_type = (BaseTypeRef) $1;\r
                                 base_type.MakeManagedPointer ();\r
                                 $$ = base_type;\r
                           }\r
                        | type STAR\r
                           {\r
-                                BaseTypeRef base_type = GetTypeRef ((BaseTypeRef) $1);\r
+                                BaseTypeRef base_type = (BaseTypeRef) $1;\r
                                 base_type.MakeUnmanagedPointer ();\r
                                 $$ = base_type;\r
                           }\r
                        | type K_PINNED\r
                           {\r
-                                BaseTypeRef base_type = GetTypeRef ((BaseTypeRef) $1);\r
+                                BaseTypeRef base_type = (BaseTypeRef) $1;\r
                                 base_type.MakePinned ();\r
                                 $$ = base_type;\r
                           }\r
                        | type K_MODREQ OPEN_PARENS custom_modifier_type CLOSE_PARENS\r
                           {\r
-                                BaseTypeRef base_type = GetTypeRef ((BaseTypeRef) $1);\r
+                                BaseTypeRef base_type = (BaseTypeRef) $1;\r
                                 BaseTypeRef class_ref = (BaseTypeRef) $4;\r
                                 base_type.MakeCustomModified (codegen,\r
                                         CustomModifier.modreq, class_ref);\r
@@ -991,7 +990,7 @@ type                        : generic_class_ref
                           }\r
                        | type K_MODOPT OPEN_PARENS custom_modifier_type CLOSE_PARENS\r
                           {\r
-                                BaseTypeRef base_type = GetTypeRef ((BaseTypeRef) $1);\r
+                                BaseTypeRef base_type = (BaseTypeRef) $1;\r
                                 BaseTypeRef class_ref = (BaseTypeRef) $4;\r
                                 base_type.MakeCustomModified (codegen,\r
                                         CustomModifier.modopt, class_ref);\r
@@ -1004,8 +1003,6 @@ type                      : generic_class_ref
                        | primitive_type\r
                        ;\r
 \r
-                       ;\r
-\r
 primitive_type         : K_INT8\r
                           {\r
                                 $$ = new PrimitiveTypeRef (PrimitiveType.Int8, "System.SByte");\r
@@ -1490,7 +1487,7 @@ custom_modifier_type
                        | class_ref\r
                        ;\r
 \r
-field_decl             : D_FIELD repeat_opt field_attr type id at_opt init_opt\r
+field_decl             : D_FIELD repeat_opt field_attr type id at_opt init_opt semicolon_opt\r
                           {\r
                                 FieldDef field_def = new FieldDef((FieldAttr) $3, \r
                                        (string) $5, (BaseTypeRef) $4);\r
@@ -1683,6 +1680,23 @@ member_init : field_init_full
                          }\r
                        ;\r
 \r
+opt_truefalse_list\r
+                               : truefalse_list\r
+                               ;\r
+\r
+truefalse_list\r
+                               : truefalse\r
+                                 {\r
+                                       $$ = new List<BoolConst> () { new BoolConst ((bool) $1) };\r
+                                 }\r
+                               | truefalse_list truefalse\r
+                                 {\r
+                                       var l = (List<BoolConst>) $1;\r
+                                       l.Add (new BoolConst ((bool) $2));\r
+                                       $$ = l;\r
+                                 }\r
+                               ;\r
+\r
 data_decl              : data_head data_body\r
                           {\r
                                 DataDef datadef = (DataDef) $1;\r
@@ -2698,22 +2712,22 @@ event_decls             : /* EMPTY */
                        | event_decls event_decl\r
                        ;\r
 \r
-event_decl             : D_ADDON method_ref\r
+event_decl             : D_ADDON method_ref semicolon_opt\r
                           {\r
                                 codegen.CurrentTypeDef.CurrentEvent.AddAddon (\r
                                         (MethodRef) $2);                                \r
                           }\r
-                       | D_REMOVEON method_ref\r
+                       | D_REMOVEON method_ref semicolon_opt\r
                           {\r
                                 codegen.CurrentTypeDef.CurrentEvent.AddRemoveon (\r
                                         (MethodRef) $2);\r
                           }\r
-                       | D_FIRE method_ref\r
+                       | D_FIRE method_ref semicolon_opt\r
                           {\r
                                 codegen.CurrentTypeDef.CurrentEvent.AddFire (\r
                                         (MethodRef) $2);\r
                           }\r
-                       | D_OTHER method_ref\r
+                       | D_OTHER method_ref semicolon_opt\r
                           {\r
                                 codegen.CurrentTypeDef.CurrentEvent.AddOther (\r
                                         (MethodRef) $2);\r
@@ -2789,23 +2803,76 @@ prop_decl               : D_SET method_ref
                        | language_decl\r
                        ;\r
 \r
-customattr_decl                : D_CUSTOM custom_type\r
+customattr_decl\r
+                       : D_CUSTOM customattr_owner_type_opt custom_type\r
                           {\r
-                                $$ = new CustomAttr ((BaseMethodRef) $2, null);\r
+                                $$ = new CustomAttr ((BaseMethodRef) $3, null);\r
                           }\r
-                       | D_CUSTOM custom_type ASSIGN comp_qstring\r
-                       | D_CUSTOM custom_type ASSIGN bytes_list\r
+                       | D_CUSTOM customattr_owner_type_opt custom_type ASSIGN comp_qstring\r
+                       | D_CUSTOM customattr_owner_type_opt custom_type ASSIGN bytes_list\r
                           {\r
-                                $$ = new CustomAttr ((BaseMethodRef) $2, new ByteArrConst ((byte[]) $4));\r
+                                $$ = new CustomAttr ((BaseMethodRef) $3, new ByteArrConst ((byte[]) $5));\r
                           }\r
-            | D_CUSTOM custom_type ASSIGN OPEN_BRACE member_init CLOSE_BRACE\r
+            | D_CUSTOM customattr_owner_type_opt custom_type ASSIGN OPEN_BRACE customattr_values CLOSE_BRACE\r
               {\r
-               $$ = new CustomAttr ((BaseMethodRef) $2, null);\r
+               $$ = new CustomAttr ((BaseMethodRef) $3, (PEAPI.Constant) $6);\r
               }\r
-                       | D_CUSTOM OPEN_PARENS owner_type CLOSE_PARENS custom_type\r
-                       | D_CUSTOM OPEN_PARENS owner_type CLOSE_PARENS custom_type ASSIGN comp_qstring\r
-                       | D_CUSTOM OPEN_PARENS owner_type CLOSE_PARENS custom_type ASSIGN bytes_list\r
                        ;\r
+\r
+// TODO: unused for now\r
+customattr_owner_type_opt\r
+                       : /* empty */\r
+                       | OPEN_PARENS type CLOSE_PARENS\r
+                       ;\r
+\r
+customattr_values\r
+                               : /* empty */\r
+                               | K_BOOL OPEN_BRACKET int32 CLOSE_BRACKET OPEN_PARENS opt_truefalse_list CLOSE_PARENS\r
+                                 {\r
+                                       var l = (List<BoolConst>) $6;\r
+                                       $$ = new ArrayConstant (l?.ToArray ()) {\r
+                                               ExplicitSize = (int) $3\r
+                                       };\r
+                                 }\r
+                               | K_BYTEARRAY bytes_list\r
+                 {\r
+                               $$ = new ByteArrConst ((byte[]) $2);\r
+                 }\r
+                               | K_STRING OPEN_PARENS SQSTRING CLOSE_PARENS\r
+                                 {\r
+                                       $$ = new StringConst ((string) $3);\r
+                                 }\r
+                               | customattr_ctor_args\r
+                                 {\r
+                                       var c = $1 as Constant;\r
+                                       $$ = c ?? new ArrayConstant (((List<DataConstant>) $1).ToArray ());\r
+                                 }\r
+                               ;\r
+\r
+customattr_ctor_args\r
+                               : customattr_ctor_arg\r
+                               | customattr_ctor_args customattr_ctor_arg\r
+                                 {\r
+                                       var l = $1 as List<DataConstant>;\r
+                                       if (l == null) {\r
+                                               l = new List<DataConstant> () {\r
+                                                       (DataConstant) $1\r
+                                               };\r
+                                       }\r
+\r
+                                       l.Add ((DataConstant) $2);\r
+                                       $$ = l;\r
+                                 }\r
+                               ;\r
+\r
+customattr_ctor_arg\r
+                               : field_init_primitive\r
+                               | K_TYPE OPEN_PARENS type CLOSE_PARENS\r
+                                 {\r
+                                       $$ = new StringConst (((TypeRef) $3).FullName);\r
+                                 }\r
+                               ;\r
+\r
                        \r
 custom_type            : call_conv type type_spec DOUBLE_COLON method_name OPEN_PARENS type_list CLOSE_PARENS\r
                           {\r
@@ -3085,9 +3152,9 @@ assembly_all              : assembly_head OPEN_BRACE assembly_decls CLOSE_BRACE
                          }\r
                        ;\r
 \r
-assembly_head          : D_ASSEMBLY asm_attr slashed_name\r
+assembly_head          : D_ASSEMBLY legacylibrary_opt asm_attr slashed_name\r
                           {\r
-                                codegen.SetThisAssembly ((string) $3, (PEAPI.AssemAttr) $2);\r
+                                codegen.SetThisAssembly ((string) $4, (PEAPI.AssemAttr) $3);\r
                                 codegen.CurrentCustomAttrTarget = codegen.ThisAssembly;\r
                                codegen.CurrentDeclSecurityTarget = codegen.ThisAssembly;\r
                           }\r
@@ -3147,19 +3214,19 @@ asm_or_ref_decl         : D_PUBLICKEY ASSIGN bytes_list
 assemblyref_all                : assemblyref_head OPEN_BRACE assemblyref_decls CLOSE_BRACE\r
                        ;\r
 \r
-assemblyref_head       : D_ASSEMBLY K_EXTERN asm_attr slashed_name\r
+assemblyref_head       : D_ASSEMBLY K_EXTERN legacylibrary_opt asm_attr slashed_name\r
                           {\r
                                 System.Reflection.AssemblyName asmb_name = \r
                                        new System.Reflection.AssemblyName ();\r
-                               asmb_name.Name = (string) $4;\r
-                               codegen.BeginAssemblyRef ((string) $4, asmb_name, (PEAPI.AssemAttr) $3);\r
+                               asmb_name.Name = (string) $5;\r
+                               codegen.BeginAssemblyRef ((string) $5, asmb_name, (PEAPI.AssemAttr) $4);\r
                           }\r
-                       | D_ASSEMBLY K_EXTERN asm_attr slashed_name K_AS slashed_name\r
+                       | D_ASSEMBLY K_EXTERN legacylibrary_opt asm_attr slashed_name K_AS slashed_name\r
                           {\r
                                 System.Reflection.AssemblyName asmb_name = \r
                                        new System.Reflection.AssemblyName ();\r
-                               asmb_name.Name = (string) $4;\r
-                               codegen.BeginAssemblyRef ((string) $6, asmb_name, (PEAPI.AssemAttr) $3);\r
+                               asmb_name.Name = (string) $5;\r
+                               codegen.BeginAssemblyRef ((string) $7, asmb_name, (PEAPI.AssemAttr) $4);\r
                           }\r
                        ;\r
 \r
@@ -3194,6 +3261,7 @@ assemblyref_decl  : D_VER int32 COLON int32 COLON int32 COLON int32
                                 if (codegen.CurrentCustomAttrTarget != null)\r
                                         codegen.CurrentCustomAttrTarget.AddCustomAttribute ((CustomAttr) $1);\r
                           }\r
+            | K_AUTO  /* MS ilasm uses this keyword to lookup the specified assembly in the GAC and embeds its attributes, we just ignore it */\r
                        ;\r
 \r
 exptype_all            : exptype_head OPEN_BRACE exptype_decls CLOSE_BRACE\r
@@ -3355,6 +3423,15 @@ comp_name                : id
                         | COMP_NAME\r
                        ;\r
 \r
+semicolon_opt\r
+                       : /* empty */\r
+                       | SEMICOLON\r
+                       ;\r
+\r
+legacylibrary_opt      : /* empty */\r
+                                       | K_LEGACY K_LIBRARY  /* MS ilasm has these keywords for backwards compatibility, we just ignore them */\r
+                                       ;\r
+\r
 %%\r
 \r
 }\r
diff --git a/mcs/ilasm/scanner/ILSyntaxError.cs b/mcs/ilasm/scanner/ILSyntaxError.cs
deleted file mode 100644 (file)
index 9645746..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-// ILSyntaxError.cs\r
-// Author: Sergey Chaban (serge@wildwestsoftware.com)\r
-\r
-using System;\r
-\r
-namespace Mono.ILASM {\r
-\r
-       public class ILSyntaxError : Exception {\r
-               private Location loc = Location.Unknown;\r
-\r
-               public ILSyntaxError () : base ()\r
-               {\r
-               }\r
-\r
-               public ILSyntaxError (string msg) : base (msg)\r
-               {\r
-               }\r
-\r
-\r
-               public ILSyntaxError (string msg, Location loc) : base (msg)\r
-               {\r
-                       this.loc = loc.Clone () as Location;\r
-               }\r
-       }\r
-}\r
-\r
index 628c9b443670a138ee99946132ff20c06047e1a7..62ab383b6b41134fffc9c73a95d4d1ab29692fdf 100644 (file)
@@ -317,6 +317,9 @@ namespace Mono.ILASM {
                                 keywords ["off"] = new ILToken (Token.K_OFF, "off");\r
                                keywords ["strict"] = new ILToken (Token.K_STRICT, "strict");\r
                                keywords ["forwarder"] = new ILToken (Token.K_FORWARDER, "forwarder");\r
+                                keywords ["legacy"] = new ILToken (Token.K_LEGACY, "legacy");\r
+                                keywords ["library"] = new ILToken (Token.K_LIBRARY, "library");\r
+                                keywords ["auto"] = new ILToken (Token.K_AUTO, "auto");\r
 \r
                                 return keywords;\r
                         }\r
index 010418e470dc7d302d18501c3480ae023d4e12b7..fc3690c78f053d31d1d73869f8acd9414f41a50a 100644 (file)
@@ -526,7 +526,7 @@ namespace Mono.CSharp {
                                fexpr.EmitAssign (ec, source, false, false);
                                Instance = fexpr;
                        } else {
-                               var local = TemporaryVariableReference.Create (source.Type, block, Location);
+                               var local = TemporaryVariableReference.Create (source.Type, block, Location, writeToSymbolFile: true);
                                if (source.Type.IsStruct) {
                                        local.LocalInfo.CreateBuilder (ec);
                                } else {
index dd5af064062b446d686d94ec6e56e027e99df84e..558b0a6e07d58a45955705dae2bfb14803da8968 100644 (file)
@@ -396,34 +396,40 @@ namespace Mono.CSharp
                //
                void CheckReferencesPublicToken ()
                {
-                       // TODO: It should check only references assemblies but there is
-                       // no working SRE API
-                       foreach (var entry in Importer.Assemblies) {
-                               var a = entry as ImportedAssemblyDefinition;
-                               if (a == null || a.IsMissing)
-                                       continue;
-
-                               if (public_key != null && !a.HasStrongName) {
+                       foreach (var an in builder_extra.GetReferencedAssemblies ()) {
+                               if (public_key != null && an.GetPublicKey ().Length == 0) {
                                        Report.Error (1577, "Referenced assembly `{0}' does not have a strong name",
-                                               a.FullName);
+                                               an.FullName);
                                }
 
-                               var ci = a.Assembly.GetName ().CultureInfo;
+                               var ci = an.CultureInfo;
                                if (!ci.Equals (CultureInfo.InvariantCulture)) {
                                        Report.Warning (8009, 1, "Referenced assembly `{0}' has different culture setting of `{1}'",
-                                               a.Name, ci.Name);
+                                               an.Name, ci.Name);
                                }
 
-                               if (!a.IsFriendAssemblyTo (this))
+                               var ia = Importer.GetImportedAssemblyDefinition (an);
+                               if (ia == null)
                                        continue;
 
-                               var attr = a.GetAssemblyVisibleToName (this);
+                               var references = GetNotUnifiedReferences (an);
+                               if (references != null) {
+                                       foreach (var r in references) {
+                                               Report.SymbolRelatedToPreviousError ( r[0]);
+                                               Report.Error (1705, r [1]);
+                                       }
+                               }
+
+                               if (!ia.IsFriendAssemblyTo (this))
+                                       continue;
+                               
+                               var attr = ia.GetAssemblyVisibleToName (this);
                                var atoken = attr.GetPublicKeyToken ();
 
                                if (ArrayComparer.IsEqual (GetPublicKeyToken (), atoken))
                                        continue;
 
-                               Report.SymbolRelatedToPreviousError (a.Location);
+                               Report.SymbolRelatedToPreviousError (ia.Location);
                                Report.Error (281,
                                        "Friend access was granted to `{0}', but the output assembly is named `{1}'. Try adding a reference to `{0}' or change the output assembly name to match it",
                                        attr.FullName, FullName);
@@ -544,6 +550,11 @@ namespace Mono.CSharp
                        return public_key_token;
                }
 
+               protected virtual List<string[]> GetNotUnifiedReferences (AssemblyName assemblyName)
+               {
+                       return null;
+               }
+
                //
                // Either keyFile or keyContainer has to be non-null
                //
@@ -873,8 +884,10 @@ namespace Mono.CSharp
                                } else {
                                        Builder.Save (module.Builder.ScopeName, pekind, machine);
                                }
+                       } catch (ArgumentOutOfRangeException) {
+                               Report.Error (16, "Output file `{0}' exceeds the 4GB limit");
                        } catch (Exception e) {
-                               Report.Error (16, "Could not write to file `" + name + "', cause: " + e.Message);
+                               Report.Error (16, "Could not write to file `{0}'. {1}", name, e.Message);
                        }
                        Compiler.TimeReporter.Stop (TimeReporter.TimerType.OutputSave);
 
@@ -1090,7 +1103,7 @@ namespace Mono.CSharp
        //
        public class AssemblyBuilderExtension
        {
-               readonly CompilerContext ctx;
+               protected readonly CompilerContext ctx;
 
                public AssemblyBuilderExtension (CompilerContext ctx)
                {
@@ -1118,6 +1131,11 @@ namespace Mono.CSharp
                        ctx.Report.RuntimeMissingSupport (Location.Null, "-win32icon");
                }
 
+               public virtual AssemblyName[] GetReferencedAssemblies ()
+               {
+                       return null;
+               }
+
                public virtual void SetAlgorithmId (uint value, Location loc)
                {
                        ctx.Report.RuntimeMissingSupport (loc, "AssemblyAlgorithmIdAttribute");
index 5650d054c2be3607cc0ec91a1b40c9271f06c0fa..04cfe49f1f867158e76a486138ba87982f9a1762 100644 (file)
@@ -363,7 +363,6 @@ namespace Mono.CSharp {
                        return this;
                }
 
-#if NET_4_0 || MOBILE_DYNAMIC
                public override System.Linq.Expressions.Expression MakeExpression (BuilderContext ctx)
                {
                        var tassign = target as IDynamicAssign;
@@ -391,7 +390,6 @@ namespace Mono.CSharp {
 
                        return System.Linq.Expressions.Expression.Assign (target_object, source_object);
                }
-#endif
                protected virtual Expression ResolveConversions (ResolveContext ec)
                {
                        source = Convert.ImplicitConversionRequired (ec, source, target.Type, source.Location);
index 6c210605966226bef9e6ac57517ac6178f40b2ed..a145c37211fd58b2441b23dd32ec5b35a6a12a7a 100644 (file)
@@ -282,6 +282,11 @@ namespace Mono.CSharp {
                        }
                }
 
+               public void SetOwner (Attributable owner)
+               {
+                       targets [0] = owner;
+               }
+
                /// <summary>
                ///   Tries to resolve the type of the attribute. Flags an error if it can't, and complain is true.
                /// </summary>
@@ -477,10 +482,7 @@ namespace Mono.CSharp {
                                return null;
                        }
 
-                       ObsoleteAttribute obsolete_attr = Type.GetAttributeObsolete ();
-                       if (obsolete_attr != null) {
-                               AttributeTester.Report_ObsoleteMessage (obsolete_attr, Type.GetSignatureForError (), Location, Report);
-                       }
+                       Type.CheckObsoleteness (context, expression.StartLocation);
 
                        ResolveContext rc = null;
 
@@ -574,8 +576,6 @@ namespace Mono.CSharp {
                                        return false;
                                }
 
-                               ObsoleteAttribute obsolete_attr;
-
                                if (member is PropertyExpr) {
                                        var pi = ((PropertyExpr) member).PropertyInfo;
 
@@ -591,7 +591,9 @@ namespace Mono.CSharp {
                                                return false;
                                        }
 
-                                       obsolete_attr = pi.GetAttributeObsolete ();
+//                                     if (!context.IsObsolete)
+                                               pi.CheckObsoleteness (ec, member.StartLocation);
+                                       
                                        pi.MemberDefinition.SetIsAssigned ();
                                } else {
                                        var fi = ((FieldExpr) member).Spec;
@@ -607,13 +609,12 @@ namespace Mono.CSharp {
                                                return false;
                                        }
 
-                                       obsolete_attr = fi.GetAttributeObsolete ();
+//                                     if (!context.IsObsolete)
+                                               fi.CheckObsoleteness (ec, member.StartLocation);
+
                                        fi.MemberDefinition.SetIsAssigned ();
                                }
 
-                               if (obsolete_attr != null && !context.IsObsolete)
-                                       AttributeTester.Report_ObsoleteMessage (obsolete_attr, member.GetSignatureForError (), member.Location, Report);
-
                                if (a.Type != member.Type) {
                                        a.Expr = Convert.ImplicitConversionRequired (ec, a.Expr, member.Type, a.Expr.Location);
                                }
@@ -1223,6 +1224,19 @@ namespace Mono.CSharp {
                        Attrs.AddRange (attrs);
                }
 
+               public static void AttachFromPartial (Attributable target, Attributable partialSrc)
+               {
+                       if (target.OptAttributes == null) {
+                               target.OptAttributes = partialSrc.OptAttributes;
+                       } else {
+                               target.OptAttributes.Attrs.AddRange (partialSrc.OptAttributes.Attrs);
+                       }
+
+                       foreach (var attr in partialSrc.OptAttributes.Attrs) {
+                               attr.SetOwner (target);
+                       }
+               }
+
                public void AttachTo (Attributable attributable, IMemberContext context)
                {
                        foreach (Attribute a in Attrs)
index eaa12fa0ebeb5e3ef6cd1632e9d23c532f5446c4..787853a619af95c9efa300fa1d2019915707fa59 100644 (file)
@@ -1729,21 +1729,9 @@ namespace Mono.CSharp
                                return;
 
                        foreach (var member in members) {
-                               var pbm = member as PropertyBasedMember;
-                               if (pbm != null) {
+                               var pbm = member as MemberBase;
+                               if (pbm != null)
                                        pbm.PrepareEmit ();
-                                       continue;
-                               }
-
-                               var mc = member as MethodCore;
-                               if (mc != null) {
-                                       mc.PrepareEmit ();
-                                       continue;
-                               }
-
-                               var c = member as Const;
-                               if (c != null)
-                                       c.DefineValue ();
                        }
 
                        base.PrepareEmit ();
@@ -1913,9 +1901,7 @@ namespace Mono.CSharp
                                        if (compiled_iface != null)
                                                compiled_iface.Define ();
 
-                                       ObsoleteAttribute oa = iface_type.GetAttributeObsolete ();
-                                       if (oa != null && !IsObsolete)
-                                               AttributeTester.Report_ObsoleteMessage (oa, iface_type.GetSignatureForError (), Location, Report);
+                                       iface_type.CheckObsoleteness (this, Location);
 
                                        if (iface_type.Arity > 0) {
                                                // TODO: passing `this' is wrong, should be base type iface instead
@@ -1956,9 +1942,7 @@ namespace Mono.CSharp
                                // Run checks skipped during DefineType (e.g FullNamedExpression::ResolveAsType)
                                //
                                if (base_type_expr != null) {
-                                       ObsoleteAttribute obsolete_attr = base_type.GetAttributeObsolete ();
-                                       if (obsolete_attr != null && !IsObsolete)
-                                               AttributeTester.Report_ObsoleteMessage (obsolete_attr, base_type.GetSignatureForError (), base_type_expr.Location, Report);
+                                       base_type.CheckObsoleteness (this, base_type_expr.Location);
 
                                        if (IsGenericOrParentIsGeneric && base_type.IsAttribute) {
                                                Report.Error (698, base_type_expr.Location,
@@ -3773,6 +3757,9 @@ namespace Mono.CSharp
                        get {
                                return type_expr;
                        }
+                       set {
+                               type_expr = value;
+                       }
                }
 
                #endregion
@@ -3878,6 +3865,12 @@ namespace Mono.CSharp
                        return Parent.GetSignatureForDocumentation () + "." + MemberName.Basename;
                }
 
+               public virtual void PrepareEmit ()
+               {
+                       if (member_type != null && type_expr != null)
+                               member_type.CheckObsoleteness (this, type_expr.Location);
+               }
+
                protected virtual bool ResolveMemberType ()
                {
                        if (member_type != null)
index 6a12345e3ffae8bdf9e202092c80d7eb38147fd6..429c3b9d3b0d1f23db2fb66109e2d5ab93f6ca03 100644 (file)
@@ -262,9 +262,7 @@ namespace Mono.CSharp
                        if (sf.IsHiddenLocation (loc))
                                return false;
 
-#if NET_4_0
                        methodSymbols.MarkSequencePoint (ig.ILOffset, sf.SourceFileEntry, loc.Row, loc.Column, false);
-#endif
                        return true;
                }
 
@@ -324,9 +322,7 @@ namespace Mono.CSharp
                        if ((flags & Options.OmitDebugInfo) != 0)
                                return;
 
-#if NET_4_0
                        methodSymbols.StartBlock (CodeBlockEntry.Type.Lexical, ig.ILOffset);
-#endif
                }
 
                public void BeginCompilerScope ()
@@ -334,9 +330,7 @@ namespace Mono.CSharp
                        if ((flags & Options.OmitDebugInfo) != 0)
                                return;
 
-#if NET_4_0
                        methodSymbols.StartBlock (CodeBlockEntry.Type.CompilerGenerated, ig.ILOffset);
-#endif
                }
 
                public void EndExceptionBlock ()
@@ -349,9 +343,7 @@ namespace Mono.CSharp
                        if ((flags & Options.OmitDebugInfo) != 0)
                                return;
 
-#if NET_4_0
                        methodSymbols.EndBlock (ig.ILOffset);
-#endif
                }
 
                public void CloseConditionalAccess (TypeSpec type)
index eef90b34603c80175df19f75373cc6c0502e6b62..046aec24c1b18b8bb3619e23a5a899bbb074f27a 100644 (file)
@@ -111,6 +111,12 @@ namespace Mono.CSharp {
                {
                        visitor.Visit (this);
                }
+
+               public override void PrepareEmit ()
+               {
+                       base.PrepareEmit ();
+                       DefineValue ();
+               }
        }
 
        public class ConstSpec : FieldSpec
index 88e523700706480b073713dc308dcdc7b8a31625..fbb21d0096f48e8fa1165057ec3e7d3beab341f6 100644 (file)
@@ -497,7 +497,7 @@ namespace Mono.CSharp
                        }
 
                        foreach (var existing in das) {
-                               if (DefiniteAssignmentBitSet.AreEqual (existing, DefiniteAssignment))
+                               if (DefiniteAssignmentBitSet.IsIncluded (existing, DefiniteAssignment))
                                        return true;
                        }
 
index 1f44fc2d566f552bfa6d025befb483173c70b08a..6864b1150da3754d0aa97fb88c9fdfcf172fe0d3 100644 (file)
@@ -1858,6 +1858,9 @@ property_declaration
                if (type.Type != null && type.Type.Kind == MemberKind.Void)
                        report.Error (547, GetLocation ($3), "`{0}': property or indexer cannot have void type", property.GetSignatureForError ());
 
+               if (doc_support)
+                       property.DocComment = ConsumeStoredComment ();
+
                current_type.AddMember (property);
 
                current_local_parameters = null;
@@ -2403,12 +2406,7 @@ constructor_declarator
                        }
                } else {
                        if (current_type.Kind == MemberKind.Struct && current_local_parameters.IsEmpty) {
-                               if (lang_version < LanguageVersion.V_6)
-                                       FeatureIsNotAvailable (GetLocation ($3), "struct parameterless instance constructor");
-
-                               if ((mods & Modifiers.PUBLIC) == 0) {
-                                       report.Error (8075, c.Location, "`{0}': Structs parameterless instance constructor must be public", c.GetSignatureForError ());
-                               }
+                               report.Error (568, c.Location, "Structs cannot contain explicit parameterless constructors");
                        }
                }
 
index 3641c6460a69a768b9c0e848471fb757ba395e4a..02f6f3df77494ae11eec7fda3dd1b388fd94fc9b 100644 (file)
@@ -240,6 +240,8 @@ namespace Mono.CSharp
                public bool parsing_catch_when;
 
                int parsing_string_interpolation;
+               int string_interpolation_section;
+               Stack<bool> parsing_string_interpolation_quoted;
 
                public bool parsing_interpolation_format;
 
@@ -410,6 +412,8 @@ namespace Mono.CSharp
                        public int current_token;
                        public object val;
                        public int parsing_string_interpolation;
+                       public int string_interpolation_section;
+                       public Stack<bool> parsing_string_interpolation_quoted;
 
                        public Position (Tokenizer t)
                        {
@@ -428,9 +432,16 @@ namespace Mono.CSharp
                                        ifstack = new Stack<int> (clone);
                                }
                                parsing_generic_less_than = t.parsing_generic_less_than;
-                               parsing_string_interpolation = t.parsing_string_interpolation;
+                               string_interpolation_section = t.string_interpolation_section;
                                current_token = t.current_token;
                                val = t.val;
+                               parsing_string_interpolation = t.parsing_string_interpolation;
+                               string_interpolation_section = t.string_interpolation_section;
+                               if (t.parsing_string_interpolation_quoted != null && t.parsing_string_interpolation_quoted.Count != 0) {
+                                       var clone = t.parsing_string_interpolation_quoted.ToArray ();
+                                       Array.Reverse (clone);
+                                       parsing_string_interpolation_quoted = new Stack<bool> (clone);
+                               }
                        }
                }
 
@@ -474,6 +485,7 @@ namespace Mono.CSharp
                        ifstack = p.ifstack;
                        parsing_generic_less_than = p.parsing_generic_less_than;
                        parsing_string_interpolation = p.parsing_string_interpolation;
+                       parsing_string_interpolation_quoted = p.parsing_string_interpolation_quoted;
                        current_token = p.current_token;
                        val = p.val;
                }
@@ -3365,11 +3377,26 @@ namespace Mono.CSharp
 
                                case '{':
                                        val = ltb.Create (current_source, ref_line, col);
+
+                                       if (parsing_string_interpolation > 0)
+                                               ++string_interpolation_section;
+
                                        return Token.OPEN_BRACE;
                                case '}':
                                        if (parsing_string_interpolation > 0) {
-                                               --parsing_string_interpolation;
-                                               return TokenizeInterpolatedString ();
+                                               if (string_interpolation_section == 0) {
+                                                       --parsing_string_interpolation;
+                                                       bool quoted;
+                                                       if (parsing_string_interpolation_quoted != null && parsing_string_interpolation_quoted.Count > 0) {
+                                                               quoted = parsing_string_interpolation_quoted.Pop ();
+                                                       } else {
+                                                               quoted = false;
+                                                       }
+
+                                                       return TokenizeInterpolatedString (quoted);
+                                               }
+
+                                               --string_interpolation_section;
                                        }
 
                                        val = ltb.Create (current_source, ref_line, col);
@@ -3791,9 +3818,18 @@ namespace Mono.CSharp
                                        return Token.ERROR;
 
                                case '$':
-                                       if (peek_char () == '"') {
+                                       switch (peek_char ()) {
+                                       case '"':
                                                get_char ();
-                                               return TokenizeInterpolatedString ();
+                                               return TokenizeInterpolatedString (false);
+                                       case '@':
+                                               get_char ();
+                                               if (peek_char () == '"') {
+                                                       get_char ();
+                                                       return TokenizeInterpolatedString (true);
+                                               }
+
+                                               break;
                                        }
 
                                        break;
@@ -3922,7 +3958,7 @@ namespace Mono.CSharp
                        return Token.OP_LT;
                }
 
-               int TokenizeInterpolatedString ()
+               int TokenizeInterpolatedString (bool quoted)
                {
                        int pos = 0;
                        var start_location = Location;
@@ -3931,6 +3967,11 @@ namespace Mono.CSharp
                                var ch = get_char ();
                                switch (ch) {
                                case '"':
+                                       if (quoted && peek_char () == '"') {
+                                               get_char ();
+                                               break;
+                                       }
+
                                        val = new StringLiteral (context.BuiltinTypes, CreateStringFromBuilder (pos), start_location);
                                        return Token.INTERPOLATED_STRING_END;
                                case '{':
@@ -3941,9 +3982,21 @@ namespace Mono.CSharp
                                        }
 
                                        ++parsing_string_interpolation;
+                                       if (quoted) {
+                                               if (parsing_string_interpolation_quoted == null)
+                                                       parsing_string_interpolation_quoted = new Stack<bool> ();
+                                       }
+
+                                       if (parsing_string_interpolation_quoted != null) {
+                                               parsing_string_interpolation_quoted.Push (quoted);
+                                       }
+
                                        val = new StringLiteral (context.BuiltinTypes, CreateStringFromBuilder (pos), start_location);
                                        return Token.INTERPOLATED_STRING;
                                case '\\':
+                                       if (quoted)
+                                               break;
+                                       
                                        ++col;
                                        int surrogate;
                                        ch = escape (ch, out surrogate);
index d60e6ca0aece20e9b2e085ff78ab2c8146817449..a386ab18b3bab8e955d5d175fc99d843ff495d43 100644 (file)
@@ -508,16 +508,6 @@ namespace Mono.CSharp {
                        return obsolete;
                }
 
-               /// <summary>
-               /// Checks for ObsoleteAttribute presence. It's used for testing of all non-types elements
-               /// </summary>
-               public virtual void CheckObsoleteness (Location loc)
-               {
-                       ObsoleteAttribute oa = GetAttributeObsolete ();
-                       if (oa != null)
-                               AttributeTester.Report_ObsoleteMessage (oa, GetSignatureForError (), loc, Report);
-               }
-
                //
                // Checks whether the type P is as accessible as this member
                //
@@ -1071,6 +1061,16 @@ namespace Mono.CSharp {
 
                #endregion
 
+               public virtual void CheckObsoleteness (IMemberContext mc, Location loc)
+               {
+                       var oa = GetAttributeObsolete ();
+                       if (oa == null)
+                               return;
+
+                       if (!mc.IsObsolete)
+                               AttributeTester.Report_ObsoleteMessage (oa, GetSignatureForError (), loc, mc.Module.Compiler.Report);
+               }
+
                public virtual ObsoleteAttribute GetAttributeObsolete ()
                {
                        if ((state & (StateFlags.Obsolete | StateFlags.Obsolete_Undetected)) == 0)
index 56fb8d6d43cf8f7f936f162408d63f139d06c034..1abb9b5387f225667fd2a236b417dc2969c335e4 100644 (file)
@@ -308,6 +308,8 @@ namespace Mono.CSharp {
 
                        InvokeBuilder.PrepareEmit ();
                        if (BeginInvokeBuilder != null) {
+                               BeginInvokeBuilder.TypeExpression = null;
+                               EndInvokeBuilder.TypeExpression = null;
                                BeginInvokeBuilder.PrepareEmit ();
                                EndInvokeBuilder.PrepareEmit ();
                        }
index 33fb4555363aa6a795a0b2f0d45ba65d46b5170f..3b2a5b4b18d0e428c7cb476a25ea823569d39930 100644 (file)
 using System;
 using System.Linq;
 using SLE = System.Linq.Expressions;
-
-#if NET_4_0 || MOBILE_DYNAMIC
 using System.Dynamic;
-#endif
 
 namespace Mono.CSharp
 {
@@ -63,14 +60,6 @@ namespace Mono.CSharp
        //
        public class RuntimeValueExpression : Expression, IDynamicAssign, IMemoryLocation
        {
-#if !NET_4_0 && !MOBILE_DYNAMIC
-               public class DynamicMetaObject
-               {
-                       public TypeSpec RuntimeType;
-                       public TypeSpec LimitType;
-                       public SLE.Expression Expression;
-               }
-#endif
 
                readonly DynamicMetaObject obj;
 
@@ -146,7 +135,6 @@ namespace Mono.CSharp
                        return base.MakeExpression (ctx);
 #else
 
-#if NET_4_0 || MOBILE_DYNAMIC
                                if (type.IsStruct && !obj.Expression.Type.IsValueType)
                                        return SLE.Expression.Unbox (obj.Expression, type.GetMetaInfo ());
 
@@ -154,7 +142,6 @@ namespace Mono.CSharp
                                        if (((SLE.ParameterExpression) obj.Expression).IsByRef)
                                                return obj.Expression;
                                }
-       #endif
 
                                return SLE.Expression.Convert (obj.Expression, type.GetMetaInfo ());
 #endif
@@ -181,7 +168,6 @@ namespace Mono.CSharp
                        return this;
                }
 
-#if NET_4_0 || MOBILE_DYNAMIC
                public override SLE.Expression MakeExpression (BuilderContext ctx)
                {
 #if STATIC
@@ -190,7 +176,6 @@ namespace Mono.CSharp
                        return SLE.Expression.Block (expr.MakeExpression (ctx), SLE.Expression.Default (type.GetMetaInfo ()));
 #endif
                }
-#endif
        }
 
        #endregion
index 74501e89b1503db64ab68fca1a7a884ba1632867..ce055dcbc3139d9fc071da68dd444b936968d027 100644 (file)
@@ -1338,8 +1338,14 @@ namespace Mono.CSharp {
                                return null;
 
                        ExpressionStatement es = e as ExpressionStatement;
-                       if (es == null || e is AnonymousMethodBody)
+                       if (es == null || e is AnonymousMethodBody) {
+                               var reduced = e as IReducedExpressionStatement;
+                               if (reduced != null) {
+                                       return EmptyExpressionStatement.Instance;
+                               }
+
                                Error_InvalidExpressionStatement (ec);
+                       }
 
                        //
                        // This is quite expensive warning, try to limit the damage
@@ -1406,6 +1412,10 @@ namespace Mono.CSharp {
                }
        }
 
+       interface IReducedExpressionStatement
+       {
+       }
+
        /// <summary>
        ///   This kind of cast is used to encapsulate the child
        ///   whose type is child.Type into an expression that is
@@ -2213,7 +2223,7 @@ namespace Mono.CSharp {
        //
        public class ReducedExpression : Expression
        {
-               public sealed class ReducedConstantExpression : EmptyConstantCast
+               public class ReducedConstantExpression : EmptyConstantCast
                {
                        readonly Expression orig_expr;
 
@@ -2263,6 +2273,14 @@ namespace Mono.CSharp {
                        }
                }
 
+               sealed class ReducedConstantStatement : ReducedConstantExpression, IReducedExpressionStatement
+               {
+                       public ReducedConstantStatement (Constant expr, Expression origExpr)
+                               : base (expr, origExpr)
+                       {
+                       }
+               }
+
                sealed class ReducedExpressionStatement : ExpressionStatement
                {
                        readonly Expression orig_expr;
@@ -2344,12 +2362,15 @@ namespace Mono.CSharp {
                //
                // Creates fully resolved expression switcher
                //
-               public static Constant Create (Constant expr, Expression original_expr)
+               public static Constant Create (Constant expr, Expression originalExpr)
                {
                        if (expr.eclass == ExprClass.Unresolved)
                                throw new ArgumentException ("Unresolved expression");
 
-                       return new ReducedConstantExpression (expr, original_expr);
+                       if (originalExpr is ExpressionStatement)
+                               return new ReducedConstantStatement (expr, originalExpr);
+
+                       return new ReducedConstantExpression (expr, originalExpr);
                }
 
                public static ExpressionStatement Create (ExpressionStatement s, Expression orig)
@@ -3078,11 +3099,10 @@ namespace Mono.CSharp {
                        // Obsolete checks cannot be done when resolving base context as they
                        // require type dependencies to be set but we are in process of resolving them
                        //
-                       if (!(mc is TypeDefinition.BaseContext) && !(mc is UsingAliasNamespace.AliasContext)) {
-                               ObsoleteAttribute obsolete_attr = type.GetAttributeObsolete ();
-                               if (obsolete_attr != null && !mc.IsObsolete) {
-                                       AttributeTester.Report_ObsoleteMessage (obsolete_attr, te.GetSignatureForError (), Location, mc.Module.Compiler.Report);
-                               }
+                       if (mc is ResolveContext) {
+                               var oa = type.GetAttributeObsolete ();
+                               if (oa != null && !mc.IsObsolete)
+                                       AttributeTester.Report_ObsoleteMessage (oa, type.GetSignatureForError (), fne.Location, mc.Module.Compiler.Report);
                        }
 
                        return type;
@@ -3480,11 +3500,7 @@ namespace Mono.CSharp {
                                ImportedTypeDefinition.Error_MissingDependency (rc, dep, loc);
                        }
 
-                       if (!rc.IsObsolete) {
-                               ObsoleteAttribute oa = member.GetAttributeObsolete ();
-                               if (oa != null)
-                                       AttributeTester.Report_ObsoleteMessage (oa, member.GetSignatureForError (), loc, rc.Report);
-                       }
+                       member.CheckObsoleteness (rc, loc);
 
                        if (!(member is FieldSpec))
                                member.MemberDefinition.SetIsUsed ();
@@ -3583,10 +3599,7 @@ namespace Mono.CSharp {
                                        if (InstanceExpression is TypeExpr) {
                                                var t = InstanceExpression.Type;
                                                do {
-                                                       ObsoleteAttribute oa = t.GetAttributeObsolete ();
-                                                       if (oa != null && !rc.IsObsolete) {
-                                                               AttributeTester.Report_ObsoleteMessage (oa, t.GetSignatureForError (), loc, rc.Report);
-                                                       }
+                                                       t.CheckObsoleteness (rc, loc);
 
                                                        t = t.DeclaringType;
                                                } while (t != null);
@@ -5623,9 +5636,7 @@ namespace Mono.CSharp {
                                //
                                // Check ObsoleteAttribute on the best method
                                //
-                               ObsoleteAttribute oa = best_candidate.GetAttributeObsolete ();
-                               if (oa != null && !rc.IsObsolete)
-                                       AttributeTester.Report_ObsoleteMessage (oa, best_candidate.GetSignatureForError (), loc, rc.Report);
+                               best_candidate.CheckObsoleteness (rc, loc);
 
                                best_candidate.MemberDefinition.SetIsUsed ();
                        }
@@ -7036,6 +7047,14 @@ namespace Mono.CSharp {
                        if (!rc.HasSet (ResolveContext.Options.ConstructorScope))
                                return false;
 
+                       if (prop.Parent.PartialContainer != rc.CurrentMemberDefinition.Parent.PartialContainer) {
+                               var ps = MemberCache.FindMember (rc.CurrentType, MemberFilter.Property (prop.ShortName, prop.MemberType), BindingRestriction.DeclaredOnly) as PropertySpec;
+                               if (ps == null)
+                                       return false;
+
+                               prop = (Property) ps.MemberDefinition;
+                       }
+
                        var spec = prop.BackingField;
                        if (spec == null)
                                return false;
@@ -7352,11 +7371,7 @@ namespace Mono.CSharp {
 
                                        spec.MemberDefinition.SetIsUsed ();
 
-                                       if (!ec.IsObsolete) {
-                                               ObsoleteAttribute oa = spec.GetAttributeObsolete ();
-                                               if (oa != null)
-                                                       AttributeTester.Report_ObsoleteMessage (oa, spec.GetSignatureForError (), loc, ec.Report);
-                                       }
+                                       spec.CheckObsoleteness (ec, loc);
 
                                        if ((spec.Modifiers & (Modifiers.ABSTRACT | Modifiers.EXTERN)) != 0)
                                                Error_AssignmentEventOnly (ec);
@@ -7536,9 +7551,9 @@ namespace Mono.CSharp {
                    }
                }
 
-               public static TemporaryVariableReference Create (TypeSpec type, Block block, Location loc)
+               public static TemporaryVariableReference Create (TypeSpec type, Block block, Location loc, bool writeToSymbolFile = false)
                {
-                       var li = LocalVariable.CreateCompilerGenerated (type, block, loc);
+                       var li = LocalVariable.CreateCompilerGenerated (type, block, loc, writeToSymbolFile);
                        return new TemporaryVariableReference (li, loc);
                }
 
index 40eff050087444b211dd32538ec2b031f1eb526f..50f15489e3aa28e0678f420fd0aa15af0a9c37ae 100644 (file)
@@ -415,11 +415,7 @@ namespace Mono.CSharp
                                };
                                host.SetBaseTypes (baseclass_list);
 
-#if NET_4_0
                                var access = AssemblyBuilderAccess.RunAndCollect;
-#else
-                               var access = AssemblyBuilderAccess.Run;
-#endif
                                var a = new AssemblyDefinitionDynamic (module, "completions");
                                a.Create (AppDomain.CurrentDomain, access);
                                module.SetDeclaringAssembly (a);
@@ -694,11 +690,7 @@ namespace Mono.CSharp
                                assembly = new AssemblyDefinitionDynamic (module, current_debug_name, current_debug_name);
                                assembly.Importer = importer;
                        } else {
-#if NET_4_0
                                access = AssemblyBuilderAccess.RunAndCollect;
-#else
-                               access = AssemblyBuilderAccess.Run;
-#endif
                                assembly = new AssemblyDefinitionDynamic (module, current_debug_name);
                        }
 
index 5f6c0633727978265700c2e19e9e9df2f82b839e..09d5b8add989fed087217f1d288a45b87448a69a 100644 (file)
@@ -101,19 +101,41 @@ namespace Mono.CSharp
 
        public class ParenthesizedExpression : ShimExpression
        {
+               bool conditional_access_receiver;
+
                public ParenthesizedExpression (Expression expr, Location loc)
                        : base (expr)
                {
                        this.loc = loc;
                }
 
-               protected override Expression DoResolve (ResolveContext ec)
+               protected override Expression DoResolve (ResolveContext rc)
                {
-                       var res = expr.Resolve (ec);
+                       Expression res = null;
+
+                       if (!rc.HasSet (ResolveContext.Options.ConditionalAccessReceiver)) {
+                               if (expr.HasConditionalAccess ()) {
+                                       conditional_access_receiver = true;
+                                       using (rc.Set (ResolveContext.Options.ConditionalAccessReceiver)) {
+                                               res = expr.Resolve (rc);
+                                       }
+                               }
+                       }
+
+                       if (!conditional_access_receiver)
+                               res = expr.Resolve (rc);
+
                        var constant = res as Constant;
                        if (constant != null && constant.IsLiteral)
                                return Constant.CreateConstantFromValue (res.Type, constant.GetValue (), expr.Location);
 
+                       if (conditional_access_receiver) {
+                               expr = res;
+                               type = LiftMemberType (rc, res.Type);
+                               eclass = expr.eclass;
+                               return this;
+                       }
+
                        return res;
                }
 
@@ -127,9 +149,21 @@ namespace Mono.CSharp
                        return visitor.Visit (this);
                }
 
+               public override void Emit (EmitContext ec)
+               {
+                       if (!conditional_access_receiver)
+                               base.Emit (ec);
+
+                       var prev = ec.ConditionalAccess;
+                       ec.ConditionalAccess = new ConditionalAccessContext (type, ec.DefineLabel ());
+                       expr.Emit (ec);
+                       ec.CloseConditionalAccess (type.IsNullableType ? type : null);
+                       ec.ConditionalAccess = prev;
+               }
+
                public override bool HasConditionalAccess ()
                {
-                       return expr.HasConditionalAccess ();
+                       return false;
                }
        }
        
@@ -701,10 +735,8 @@ namespace Mono.CSharp
                                return is_checked ? SLE.Expression.NegateChecked (expr) : SLE.Expression.Negate (expr);
                        case Operator.LogicalNot:
                                return SLE.Expression.Not (expr);
-#if NET_4_0 || MOBILE_DYNAMIC
                        case Operator.OnesComplement:
                                return SLE.Expression.OnesComplement (expr);
-#endif
                        default:
                                throw new NotImplementedException (Oper.ToString ());
                        }
@@ -1384,14 +1416,12 @@ namespace Mono.CSharp
                }
 
 
-#if NET_4_0 || MOBILE_DYNAMIC
                public override SLE.Expression MakeExpression (BuilderContext ctx)
                {
                        var target = ((RuntimeValueExpression) expr).MetaObject.Expression;
                        var source = SLE.Expression.Convert (operation.MakeExpression (ctx), target.Type);
                        return SLE.Expression.Assign (target, source);
                }
-#endif
 
                public static string OperName (Mode oper)
                {
@@ -1485,6 +1515,11 @@ namespace Mono.CSharp
                        expr.FlowAnalysis (fc);
                }
 
+               public override bool HasConditionalAccess ()
+               {
+                       return expr.HasConditionalAccess ();
+               }
+
                protected abstract string OperatorName { get; }
 
                protected override void CloneTo (CloneContext clonectx, Expression t)
@@ -2662,7 +2697,7 @@ namespace Mono.CSharp
                        temp_storage.Release (ec);
                }
 
-#if (NET_4_0 || MOBILE_DYNAMIC) && !STATIC
+#if !STATIC
                public override SLE.Expression MakeExpression (BuilderContext ctx)
                {
                        return SLE.Expression.Default (type.GetMetaInfo ());
@@ -6876,12 +6911,7 @@ namespace Mono.CSharp
 
                        protected override MethodGroupExpr DoResolveOverload (ResolveContext rc)
                        {
-                               if (!rc.IsObsolete) {
-                                       var member = mg.BestCandidate;
-                                       ObsoleteAttribute oa = member.GetAttributeObsolete ();
-                                       if (oa != null)
-                                               AttributeTester.Report_ObsoleteMessage (oa, member.GetSignatureForError (), loc, rc.Report);
-                               }
+                               mg.BestCandidate.CheckObsoleteness (rc, loc);
 
                                return mg;
                        }
@@ -8262,7 +8292,6 @@ namespace Mono.CSharp
                        return data;
                }
 
-#if NET_4_0 || MOBILE_DYNAMIC
                public override SLE.Expression MakeExpression (BuilderContext ctx)
                {
 #if STATIC
@@ -8279,7 +8308,6 @@ namespace Mono.CSharp
                        return SLE.Expression.NewArrayInit (array_element_type.GetMetaInfo (), initializers);
 #endif
                }
-#endif
 #if STATIC
                //
                // Emits the initializers for the array
@@ -9665,9 +9693,18 @@ namespace Mono.CSharp
                                        expr = null;
                                }
                        } else {
-                               using (rc.Set (ResolveContext.Options.ConditionalAccessReceiver)) {
-                                       expr = expr.Resolve (rc, flags);
+                               bool resolved = false;
+                               if (!rc.HasSet (ResolveContext.Options.ConditionalAccessReceiver)) {
+                                       if (expr.HasConditionalAccess ()) {
+                                               resolved = true;
+                                               using (rc.Set (ResolveContext.Options.ConditionalAccessReceiver)) {
+                                                       expr = expr.Resolve (rc, flags);
+                                               }
+                                       }
                                }
+
+                               if (!resolved)
+                                       expr = expr.Resolve (rc, flags);
                        }
 
                        if (expr == null)
@@ -9712,7 +9749,7 @@ namespace Mono.CSharp
                                }
 
                                if (expr_type.IsNullableType) {
-                                       expr = Nullable.Unwrap.Create (expr, true).Resolve (rc);
+                                       expr = Nullable.Unwrap.Create (expr.Resolve (rc), true);
                                        expr_type = expr.Type;
                                }
                        }
@@ -10575,11 +10612,7 @@ namespace Mono.CSharp
 
                public SLE.Expression MakeAssignExpression (BuilderContext ctx, Expression source)
                {
-#if NET_4_0 || MOBILE_DYNAMIC
                        return SLE.Expression.ArrayAccess (ea.Expr.MakeExpression (ctx), MakeExpressionArguments (ctx));
-#else
-                       throw new NotImplementedException ();
-#endif
                }
 
                public override SLE.Expression MakeExpression (BuilderContext ctx)
@@ -10765,13 +10798,9 @@ namespace Mono.CSharp
 #else
                        var value = new[] { source.MakeExpression (ctx) };
                        var args = Arguments.MakeExpression (arguments, ctx).Concat (value);
-#if NET_4_0 || MOBILE_DYNAMIC
                        return SLE.Expression.Block (
                                        SLE.Expression.Call (InstanceExpression.MakeExpression (ctx), (MethodInfo) Setter.GetMetaInfo (), args),
                                        value [0]);
-#else
-                       return args.First ();
-#endif
 #endif
                }
 
@@ -11164,9 +11193,7 @@ namespace Mono.CSharp
                        
                protected override Expression DoResolve (ResolveContext ec)
                {
-                       ObsoleteAttribute oa = method.GetAttributeObsolete ();
-                       if (oa != null)
-                               AttributeTester.Report_ObsoleteMessage (oa, GetSignatureForError (), loc, ec.Report);
+                       method.CheckObsoleteness (ec, source.Location);
 
                        eclass = ExprClass.Value;
                        return this;
@@ -11725,8 +11752,13 @@ namespace Mono.CSharp
                        args.Add (new Argument (mg.CreateExpressionTree (ec)));
 
                        var expr_initializers = new ArrayInitializer (arguments.Count, loc);
-                       foreach (Argument a in arguments)
+                       foreach (Argument a in arguments) {
+                               if (a.ArgType == Argument.AType.ExtensionType) {
+                                       ec.Report.Error (8075, a.Expr.Location, "An expression tree cannot contain a collection initializer with extension method");
+                                       continue;
+                               }
                                expr_initializers.Add (a.CreateExpressionTree (ec));
+                       }
 
                        args.Add (new Argument (new ArrayCreation (
                                CreateExpressionTypeExpression (ec, loc), expr_initializers, loc)));
@@ -12539,6 +12571,7 @@ namespace Mono.CSharp
                protected override void CloneTo (CloneContext clonectx, Expression t)
                {
                        var target = (InterpolatedStringInsert)t;
+                       target.expr = expr.Clone (clonectx);
                        if (Alignment != null)
                                target.Alignment = Alignment.Clone (clonectx);
                }
index b9189c1f3d6d8aa31ef785065331a78c969c275b..267879c043b75ef8dc40f3df4f150503cd69317c 100644 (file)
@@ -552,7 +552,7 @@ namespace Mono.CSharp
 
                public static DefiniteAssignmentBitSet operator & (DefiniteAssignmentBitSet a, DefiniteAssignmentBitSet b)
                {
-                       if (AreEqual (a, b))
+                       if (IsEqual (a, b))
                                return a;
 
                        DefiniteAssignmentBitSet res;
@@ -575,7 +575,7 @@ namespace Mono.CSharp
 
                public static DefiniteAssignmentBitSet operator | (DefiniteAssignmentBitSet a, DefiniteAssignmentBitSet b)
                {
-                       if (AreEqual (a, b))
+                       if (IsEqual (a, b))
                                return a;
 
                        DefiniteAssignmentBitSet res;
@@ -678,7 +678,7 @@ namespace Mono.CSharp
                                large_bits[index >> 5] |= (1 << (index & 31));
                }
 
-               public static bool AreEqual (DefiniteAssignmentBitSet a, DefiniteAssignmentBitSet b)
+               static bool IsEqual (DefiniteAssignmentBitSet a, DefiniteAssignmentBitSet b)
                {
                        if (a.large_bits == null)
                                return (a.bits & ~copy_on_write_flag) == (b.bits & ~copy_on_write_flag);
@@ -690,5 +690,20 @@ namespace Mono.CSharp
 
                        return true;
                }
+
+               public static bool IsIncluded (DefiniteAssignmentBitSet set, DefiniteAssignmentBitSet test)
+               {
+                       var set_bits = set.large_bits;
+                       if (set_bits == null)
+                               return (set.bits & test.bits & ~copy_on_write_flag) == (set.bits & ~copy_on_write_flag);
+
+                       var test_bits = test.large_bits;
+                       for (int i = 0; i < set_bits.Length; ++i) {
+                               if ((set_bits[i] & test_bits[i]) != set_bits[i])
+                                       return false;
+                       }
+
+                       return true;
+               }
        }
 }
index fb7b6c79942278a404d2105f69c243ce1885d4e9..b4b98f067a8cc355606514cb2d042c2e99baf954 100644 (file)
@@ -195,9 +195,7 @@ namespace Mono.CSharp {
                                        continue;
 
                                if (obsoleteCheck) {
-                                       ObsoleteAttribute obsolete_attr = t.GetAttributeObsolete ();
-                                       if (obsolete_attr != null)
-                                               AttributeTester.Report_ObsoleteMessage (obsolete_attr, t.GetSignatureForError (), c.Location, context.Module.Compiler.Report);
+                                       t.CheckObsoleteness (context, c.Location);
                                }
 
                                ConstraintChecker.Check (context, t, c.Location);
@@ -1114,14 +1112,20 @@ namespace Mono.CSharp {
                        //
                        bool found;
                        if (!TypeSpecComparer.Override.IsEqual (BaseType, other.BaseType)) {
-                               if (other.targs == null)
-                                       return false;
-
                                found = false;
-                               foreach (var otarg in other.targs) {
-                                       if (TypeSpecComparer.Override.IsEqual (BaseType, otarg)) {
-                                               found = true;
-                                               break;
+                               if (other.targs != null) {
+                                       foreach (var otarg in other.targs) {
+                                               if (TypeSpecComparer.Override.IsEqual (BaseType, otarg)) {
+                                                       found = true;
+                                                       break;
+                                               }
+                                       }
+                               } else if (targs != null) {
+                                       foreach (var targ in targs) {
+                                               if (TypeSpecComparer.Override.IsEqual (targ, other.BaseType)) {
+                                                       found = true;
+                                                       break;
+                                               }
                                        }
                                }
 
@@ -1164,18 +1168,25 @@ namespace Mono.CSharp {
 
                        // Check interfaces implementation <- definition
                        if (other.InterfacesDefined != null) {
-                               if (InterfacesDefined == null)
-                                       return false;
-
                                //
                                // Iterate over inflated interfaces
                                //
                                foreach (var oiface in other.Interfaces) {
                                        found = false;
-                                       foreach (var iface in Interfaces) {
-                                               if (TypeSpecComparer.Override.IsEqual (iface, oiface)) {
-                                                       found = true;
-                                                       break;
+
+                                       if (InterfacesDefined != null) {
+                                               foreach (var iface in Interfaces) {
+                                                       if (TypeSpecComparer.Override.IsEqual (iface, oiface)) {
+                                                               found = true;
+                                                               break;
+                                                       }
+                                               }
+                                       } else if (targs != null) {
+                                               foreach (var targ in targs) {
+                                                       if (TypeSpecComparer.Override.IsEqual (targ, oiface)) {
+                                                               found = true;
+                                                               break;
+                                                       }
                                                }
                                        }
 
@@ -1186,18 +1197,30 @@ namespace Mono.CSharp {
 
                        // Check type parameters implementation -> definition
                        if (targs != null) {
-                               if (other.targs == null)
-                                       return false;
-
                                foreach (var targ in targs) {
                                        found = false;
-                                       foreach (var otarg in other.targs) {
-                                               if (TypeSpecComparer.Override.IsEqual (targ, otarg)) {
-                                                       found = true;
-                                                       break;
+
+                                       if (other.targs != null) {
+                                               foreach (var otarg in other.targs) {
+                                                       if (TypeSpecComparer.Override.IsEqual (targ, otarg)) {
+                                                               found = true;
+                                                               break;
+                                                       }
+                                               }
+                                       }
+
+                                       if (other.InterfacesDefined != null && !found) {
+                                               foreach (var iface in other.Interfaces) {
+                                                       if (TypeSpecComparer.Override.IsEqual (iface, targ)) {
+                                                               found = true;
+                                                               break;
+                                                       }
                                                }
                                        }
 
+                                       if (!found)
+                                               found = TypeSpecComparer.Override.IsEqual (targ, other.BaseType);
+
                                        if (!found)
                                                return false;
                                }
@@ -1915,6 +1938,14 @@ namespace Mono.CSharp {
                        return definition.GetMetaInfo ().MakeGenericType (all.ToArray ());
                }
 
+               public override void CheckObsoleteness (IMemberContext mc, Location loc)
+               {
+                       base.CheckObsoleteness (mc, loc);
+
+                       foreach (var ta in TypeArguments)
+                               ta.CheckObsoleteness (mc, loc);
+               }
+
                public override ObsoleteAttribute GetAttributeObsolete ()
                {
                        return open_type.GetAttributeObsolete ();
index da6b0c11ab56b9ab6eda6b3123dff78bbf71082a..4ed8cf62a4ecb7bc49e9684521b0fb0176b981b5 100644 (file)
@@ -220,6 +220,11 @@ namespace Mono.CSharp
                        return Builder.__AddModule (moduleFile);
                }
 
+               protected override List<string[]> GetNotUnifiedReferences (AssemblyName assemblyName)
+               {
+                       return loader.GetNotUnifiedReferences (assemblyName);
+               }
+
                protected override void SaveModule (PortableExecutableKinds pekind, ImageFileMachine machine)
                {
                        module.Builder.__Save (pekind, machine);
@@ -233,13 +238,14 @@ namespace Mono.CSharp
                Assembly corlib;
                readonly List<Tuple<AssemblyName, string, Assembly>> loaded_names;
                static readonly Dictionary<string, string[]> sdk_directory;
+               Dictionary<AssemblyName, List<string[]>> resolved_version_mismatches;
 
                static StaticLoader ()
                {
                        sdk_directory = new Dictionary<string, string[]> ();
                        sdk_directory.Add ("2", new string[] { "2.0", "net_2_0", "v2.0.50727" });
                        sdk_directory.Add ("4", new string[] { "4.0", "net_4_0", "v4.0.30319" });
-                       sdk_directory.Add ("4.5", new string[] { "4.5", "net_4_5", "v4.0.30319" });
+                       sdk_directory.Add ("4.5", new string[] { "4.5", "net_4_x", "v4.0.30319" });
                }
 
                public StaticLoader (StaticImporter importer, CompilerContext compiler)
@@ -353,11 +359,23 @@ namespace Mono.CSharp
                                var v2 = version_mismatch.GetName ().Version;
 
                                if (v1 > v2) {
-//                                     compiler.Report.SymbolRelatedToPreviousError (args.RequestingAssembly.Location);
-                                       compiler.Report.Error (1705, "Assembly `{0}' references `{1}' which has a higher version number than imported assembly `{2}'",
-                                               args.RequestingAssembly.FullName, refname, version_mismatch.GetName ().FullName);
+                                       if (resolved_version_mismatches == null)
+                                               resolved_version_mismatches = new Dictionary<AssemblyName, List<string[]>> ();
+
+                                       var an = args.RequestingAssembly.GetName ();
+                                       List<string[]> names;
+                                       if (!resolved_version_mismatches.TryGetValue (an, out names)) {
+                                               names = new List<string[]> ();
+                                               resolved_version_mismatches.Add (an, names);
+                                       }
+
+                                       names.Add (new[] {
+                                               args.RequestingAssembly.Location,
+                                               string.Format ("Assembly `{0}' depends on `{1}' which has a higher version number than referenced assembly `{2}'",
+                                                       args.RequestingAssembly.FullName, refname, version_mismatch.GetName ().FullName)
+                                       });
 
-                                       return domain.CreateMissingAssembly (args.Name);
+                                       return version_mismatch;
                                }
 
                                if (!is_fx_assembly) {
@@ -412,9 +430,22 @@ namespace Mono.CSharp
                        return default_references.ToArray ();
                }
 
+               public List<string[]> GetNotUnifiedReferences (AssemblyName assemblyName)
+               {
+                       List<string[]> list = null;
+                       if (resolved_version_mismatches != null)
+                               resolved_version_mismatches.TryGetValue (assemblyName, out list);
+
+                       return list;
+               }
+
                public override bool HasObjectType (Assembly assembly)
                {
-                       return assembly.GetType (compiler.BuiltinTypes.Object.FullName) != null;
+                       try {
+                               return assembly.GetType (compiler.BuiltinTypes.Object.FullName) != null;
+                       } catch (Exception e) {
+                               throw new InternalErrorException (e, "Failed to load assembly `{0}'", assembly.FullName);
+                       }
                }
 
                public override Assembly LoadAssemblyFile (string fileName, bool isImplicitReference)
@@ -586,7 +617,25 @@ namespace Mono.CSharp
 
                public override void DefineWin32IconResource (string fileName)
                {
-                       builder.__DefineIconResource (File.ReadAllBytes (fileName));
+                       byte[] bytes;
+                       try {
+                               bytes = File.ReadAllBytes (fileName);
+                       } catch (Exception e) {
+                               ctx.Report.Error (7064, Location.Null, "Error opening icon file `{0}'. {1}", fileName, e.Message);
+                               return;
+                       }
+
+                       builder.__DefineIconResource (bytes);
+               }
+
+               public override AssemblyName[] GetReferencedAssemblies ()
+               {
+                       foreach (var m in builder.Modules) {
+                               if (m is ModuleBuilder)
+                                       return m.__GetReferencedAssemblies ();
+                       }
+
+                       return new AssemblyName [0];
                }
 
                public override void SetAlgorithmId (uint value, Location loc)
index 42401de7ad90eec78a821ed1f23893d395529b19..78bd541791319165ebb9c0b9279148874a74bdcd 100644 (file)
@@ -980,6 +980,21 @@ namespace Mono.CSharp
                        return found;
                }
 
+               public ImportedAssemblyDefinition GetImportedAssemblyDefinition (AssemblyName assemblyName)
+               {
+                       foreach (var a in Assemblies) {
+                               var ia = a as ImportedAssemblyDefinition;
+                               if (ia == null)
+                                       continue;
+                               
+                               if (a.Name == assemblyName.Name)
+                                       return ia;
+                       }
+
+                       return null;
+               }
+
+
                public void ImportTypeBase (MetaType type)
                {
                        TypeSpec spec = import_cache[type];
index 7868c6a2c9d49b576a63cc69b088fd6e9c722a2d..9c804ceca575e6730e194e54a8bce5735a24cb81 100644 (file)
@@ -217,8 +217,14 @@ namespace Mono.CSharp {
                                        return false;
 
                                statement = Expr as ExpressionStatement;
-                               if (statement == null)
-                                       Expr.Error_InvalidExpressionStatement (ec);
+                               if (statement == null) {
+                                       var reduced = Expr as IReducedExpressionStatement;
+                                       if (reduced != null) {
+                                               statement = EmptyExpressionStatement.Instance;
+                                       } else {
+                                               Expr.Error_InvalidExpressionStatement (ec);
+                                       }
+                               }
 
                                return true;
                        }
index 7f19c2d89b35524f73e49b9b00c4029326fb4276..40c500d365ef131b253ca9fa3ae78b7c10b47a68 100644 (file)
@@ -96,10 +96,13 @@ namespace Mono.CSharp.Linq
 
                        bool OverloadResolver.IErrorHandler.AmbiguousCandidates (ResolveContext ec, MemberSpec best, MemberSpec ambiguous)
                        {
+                               var emg = mg as ExtensionMethodGroupExpr;
+                               var type = emg == null ? mg.InstanceExpression : emg.ExtensionExpression;
+
                                ec.Report.SymbolRelatedToPreviousError (best);
                                ec.Report.SymbolRelatedToPreviousError (ambiguous);
                                ec.Report.Error (1940, loc, "Ambiguous implementation of the query pattern `{0}' for source type `{1}'",
-                                       best.Name, mg.InstanceExpression.GetSignatureForError ());
+                                       best.Name, type.Type.GetSignatureForError ());
                                return true;
                        }
 
index e7daa53ce0bd98a5f86aeba6f18d632b7f65690f..79cee3cbf7db1dc87fb77e5acfa57ccfa3259f10 100644 (file)
@@ -222,11 +222,7 @@ namespace Mono.CSharp
                // </summary>
                static public void Initialize (List<SourceFile> files)
                {
-#if NET_4_0 || MOBILE_DYNAMIC
                        source_list.AddRange (files);
-#else
-                       source_list.AddRange (files.ToArray ());
-#endif
 
                        checkpoints = new Checkpoint [System.Math.Max (1, source_list.Count * 2)];
                        if (checkpoints.Length > 0)
index 6835ec32b061d3c35ffdbc90a85e1919c49ae7e7..d1e0b3e2b83027c080f3cd70b615ba25f28411b2 100644 (file)
@@ -165,8 +165,9 @@ namespace Mono.CSharp {
                        return s + parameters.GetSignatureForDocumentation ();
                }
 
-               public virtual void PrepareEmit ()
+               public override void PrepareEmit ()
                {
+                       base.PrepareEmit ();
                        parameters.ResolveDefaultValues (this);
                }
 
@@ -1090,19 +1091,12 @@ namespace Mono.CSharp {
                                        }
 
                                        if (base_override.IsGeneric) {
-                                               ObsoleteAttribute oa;
                                                foreach (var base_tp in base_tparams) {
-                                                       oa = base_tp.BaseType.GetAttributeObsolete ();
-                                                       if (oa != null) {
-                                                               AttributeTester.Report_ObsoleteMessage (oa, base_tp.BaseType.GetSignatureForError (), Location, Report);
-                                                       }
+                                                       base_tp.BaseType.CheckObsoleteness (this, Location);
 
                                                        if (base_tp.InterfacesDefined != null) {
                                                                foreach (var iface in base_tp.InterfacesDefined) {
-                                                                       oa = iface.GetAttributeObsolete ();
-                                                                       if (oa != null) {
-                                                                               AttributeTester.Report_ObsoleteMessage (oa, iface.GetSignatureForError (), Location, Report);
-                                                                       }
+                                                                       iface.CheckObsoleteness (this, Location);
                                                                }
                                                        }
                                                }
@@ -1411,11 +1405,7 @@ namespace Mono.CSharp {
                                p.Name = md_p.Name;
                                p.DefaultValue = md_p.DefaultValue;
                                if (md_p.OptAttributes != null) {
-                                       if (p.OptAttributes == null) {
-                                               p.OptAttributes = md_p.OptAttributes;
-                                       } else {
-                                               p.OptAttributes.Attrs.AddRange (md_p.OptAttributes.Attrs);
-                                       }
+                                       Attributes.AttachFromPartial (p, md_p);
                                }
                        }
 
index bed7f9e5e7164b027a3101870220ffc2ee03859a..541466770e7e2bc8f1e00f6831f7177614354137 100644 (file)
@@ -841,7 +841,7 @@ namespace Mono.CSharp {
                                        //
                                        // Same name conflict in different namespace containers
                                        //
-                                       var conflict = ns.GetAllTypes (name);
+                                       var conflict = ns.GetAllTypes (mn.Name);
                                        if (conflict != null) {
                                                foreach (var e in conflict) {
                                                        if (e.Arity == mn.Arity) {
index 20339cf7adb9a796a82660e0de7f4c7e05f0455b..275f1013e8b9dfb533215ddeaeb466e4d4a8faf9 100644 (file)
@@ -1336,6 +1336,9 @@ namespace Mono.CSharp {
                        for (int i = 0; i < parameters.Length; ++i) {
                                Parameter p = (Parameter) parameters [i];
 
+                               if (p.Type != null)
+                                       p.Type.CheckObsoleteness (m, p.Location);
+
                                //
                                // Try not to enter default values resolution if there are is not any default value possible
                                //
index 4b7b21e4887bfb9c5627b494cfbb489e03dededd..cdd1d15172598491583019f1d437a8d4d7d7517d 100644 (file)
@@ -82,8 +82,6 @@ namespace Mono.CSharp
                        }
                }
 
-               public abstract void PrepareEmit ();
-
                protected override bool VerifyClsCompliance ()
                {
                        if (!base.VerifyClsCompliance ())
@@ -619,8 +617,7 @@ namespace Mono.CSharp
                                                GetSignatureForError ());
                                }
                        } else if ((ModFlags & Modifiers.OVERRIDE) == 0 && 
-                               (Get == null && (Set.ModFlags & Modifiers.AccessibilityMask) != 0) ||
-                               (Set == null && (Get.ModFlags & Modifiers.AccessibilityMask) != 0)) {
+                               ((Get == null && (Set.ModFlags & Modifiers.AccessibilityMask) != 0) || (Set == null && (Get.ModFlags & Modifiers.AccessibilityMask) != 0))) {
                                Report.Error (276, Location, 
                                              "`{0}': accessibility modifiers on accessors may only be used if the property or indexer has both a get and a set accessor",
                                              GetSignatureForError ());
@@ -1452,6 +1449,8 @@ namespace Mono.CSharp
 
                public override void PrepareEmit ()
                {
+                       base.PrepareEmit ();
+
                        add.PrepareEmit ();
                        remove.PrepareEmit ();
 
@@ -1761,9 +1760,8 @@ namespace Mono.CSharp
 
                public override void PrepareEmit ()
                {
-                       parameters.ResolveDefaultValues (this);
-
                        base.PrepareEmit ();
+                       parameters.ResolveDefaultValues (this);
                }
 
                protected override bool VerifyClsCompliance ()
index babeb86a0c8b1f8e5e050a31c4a8e9dd5ad5ae97..75bd8b3dd3f4d86efc83ddba5fc179a76bd4082d 100644 (file)
@@ -1222,7 +1222,7 @@ namespace Mono.CSharp {
                                                //
                                                // The return type is actually Task<T> type argument
                                                //
-                                               if (expr.Type == async_type) {
+                                               if (expr.Type == async_type && async_type.TypeArguments [0] != ec.Module.PredefinedTypes.Task.TypeSpec) {
                                                        ec.Report.Error (4016, loc,
                                                                "`{0}': The return expression type of async method must be `{1}' rather than `Task<{1}>'",
                                                                ec.GetSignatureForError (), async_type.TypeArguments[0].GetSignatureForError ());
@@ -2346,6 +2346,7 @@ namespace Mono.CSharp {
                        FixedVariable = 1 << 6,
                        UsingVariable = 1 << 7,
                        IsLocked = 1 << 8,
+                       SymbolFileHidden = 1 << 9,
 
                        ReadonlyMask = ForeachVariable | FixedVariable | UsingVariable
                }
@@ -2521,13 +2522,16 @@ namespace Mono.CSharp {
                        // All fixed variabled are pinned, a slot has to be alocated
                        //
                        builder = ec.DeclareLocal (Type, IsFixed);
-                       if (!ec.HasSet (BuilderContext.Options.OmitDebugInfo) && (flags & Flags.CompilerGenerated) == 0)
+                       if ((flags & Flags.SymbolFileHidden) == 0)
                                ec.DefineLocalVariable (name, builder);
                }
 
-               public static LocalVariable CreateCompilerGenerated (TypeSpec type, Block block, Location loc)
+               public static LocalVariable CreateCompilerGenerated (TypeSpec type, Block block, Location loc, bool writeToSymbolFile = false)
                {
                        LocalVariable li = new LocalVariable (block, GetCompilerGeneratedName (block), Flags.CompilerGenerated | Flags.Used, loc);
+                       if (!writeToSymbolFile)
+                               li.flags |= Flags.SymbolFileHidden;
+                       
                        li.Type = type;
                        return li;
                }
index be2f6a48583cfee7c23627d640ad7d46d0f22024..ab3cc5c1492bc3f62be5b9c7e77600a4047d8104 100644 (file)
@@ -36,77 +36,6 @@ namespace Mono.CSharp {
                        return System.Runtime.CompilerServices.RuntimeHelpers.GetHashCode (obj);
                }
        }
-#if !NET_4_0 && !MOBILE_DYNAMIC
-       public class Tuple<T1, T2> : IEquatable<Tuple<T1, T2>>
-       {
-               public Tuple (T1 item1, T2 item2)
-               {
-                       Item1 = item1;
-                       Item2 = item2;
-               }
-
-               public T1 Item1 { get; private set; }
-               public T2 Item2 { get; private set; }
-
-               public override int GetHashCode ()
-               {
-                       return Item1.GetHashCode () ^ Item2.GetHashCode ();
-               }
-
-               #region IEquatable<Tuple<T1,T2>> Members
-
-               public bool Equals (Tuple<T1, T2> other)
-               {
-                       return EqualityComparer<T1>.Default.Equals (Item1, other.Item1) &&
-                               EqualityComparer<T2>.Default.Equals (Item2, other.Item2);
-               }
-
-               #endregion
-       }
-
-       public class Tuple<T1, T2, T3> : IEquatable<Tuple<T1, T2, T3>>
-       {
-               public Tuple (T1 item1, T2 item2, T3 item3)
-               {
-                       Item1 = item1;
-                       Item2 = item2;
-                       Item3 = item3;
-               }
-
-               public T1 Item1 { get; private set; }
-               public T2 Item2 { get; private set; }
-               public T3 Item3 { get; private set; }
-
-               public override int GetHashCode ()
-               {
-                       return Item1.GetHashCode () ^ Item2.GetHashCode () ^ Item3.GetHashCode ();
-               }
-
-               #region IEquatable<Tuple<T1,T2>> Members
-
-               public bool Equals (Tuple<T1, T2, T3> other)
-               {
-                       return EqualityComparer<T1>.Default.Equals (Item1, other.Item1) &&
-                               EqualityComparer<T2>.Default.Equals (Item2, other.Item2) &&
-                               EqualityComparer<T3>.Default.Equals (Item3, other.Item3);
-               }
-
-               #endregion
-       }
-
-       static class Tuple
-       {
-               public static Tuple<T1, T2> Create<T1, T2> (T1 item1, T2 item2)
-               {
-                       return new Tuple<T1, T2> (item1, item2);
-               }
-
-               public static Tuple<T1, T2, T3> Create<T1, T2, T3> (T1 item1, T2 item2, T3 item3)
-               {
-                       return new Tuple<T1, T2, T3> (item1, item2, item3);
-               }
-       }
-#endif
 
        static class ArrayComparer
        {
index aec01995e2f975870262b8212b6a003deb5468b7..81894f06c762ea1d6146e2e9d99905b2d3a7f4e1 100644 (file)
@@ -1627,6 +1627,11 @@ namespace Mono.CSharp
 
                #endregion
 
+               public override void CheckObsoleteness (IMemberContext mc, Location loc)
+               {
+                       Element.CheckObsoleteness (mc, loc);
+               }
+
                public override ObsoleteAttribute GetAttributeObsolete ()
                {
                        return Element.GetAttributeObsolete ();
index 78c861799e457b89a86b4bb72037340c539eacd5..1b1a16ca1848ba14db594af3408f0bce0531e37e 100644 (file)
@@ -14,12 +14,14 @@ with_mono_path = MONO_PATH="$(topdir)/class/lib/$(PROFILE)$(PLATFORM_PATH_SEPARA
 ilasm = $(topdir)/class/lib/$(PROFILE)/ilasm.exe
 ILASM = MONO_PATH="$(topdir)/class/lib/$(PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(ilasm)
 
+-include $(mcs_topdir)/build/config.make
+
 USE_MCS_FLAGS :=
 
 # mention all targets
 all-local $(STD_TARGETS:=-local):
 
-VALID_PROFILE := $(filter net_4_5, $(PROFILE))
+VALID_PROFILE := $(filter $(DEFAULT_PROFILE), $(PROFILE))
 ifdef VALID_PROFILE
 # casts
 bootstrap-cast.exe: gen-cast-test.cs
@@ -46,7 +48,7 @@ test-casts: boot-casts.out mcs-casts.out
 
 TEST_PATTERN = 'v2'
 
-ifeq (net_4_5, $(PROFILE))
+ifeq (net_4_x, $(PROFILE))
 TEST_PATTERN = 'v4'
 DEFINES = -compiler-options:"-d:NET_4_0;NET_4_5"
 endif
index fbab6410132587107ca8841ebb7ee4013f93ca60..b7583e37813a0e482413450bae0be5f30df488f9 100644 (file)
@@ -172,10 +172,8 @@ public static class InterfaceTester
                ifaces.Add (icollection_type, State.Missing);
                ifaces.Add (ienumerable_type, State.Missing);
                ifaces.Add (icloneable_type, State.Missing);
-#if NET_4_0
                ifaces.Add (typeof (IStructuralEquatable), State.Missing);
                ifaces.Add (typeof (IStructuralComparable), State.Missing);
-#endif
                Type array_type = t.MakeArrayType ();
 
                if (Debug) {
diff --git a/mcs/tests/gtest-631.cs b/mcs/tests/gtest-631.cs
new file mode 100644 (file)
index 0000000..32939c9
--- /dev/null
@@ -0,0 +1,22 @@
+public class BaseClass<TSource>
+{
+       public void DoStuff<TInput> (TInput stuff) where TInput: TSource 
+       {
+       }
+}
+
+public class MyClass: BaseClass<TInterface>, MyInterface
+{
+       public static void Main ()
+       {
+       }
+}
+
+public interface TInterface
+{
+}
+
+public interface MyInterface 
+{
+       void DoStuff<TInput> (TInput stuff) where TInput: TInterface;
+}
\ No newline at end of file
diff --git a/mcs/tests/gtest-632.cs b/mcs/tests/gtest-632.cs
new file mode 100644 (file)
index 0000000..59cbafb
--- /dev/null
@@ -0,0 +1,22 @@
+public class BaseClass<TSource>
+{
+       public void DoStuff<TInput> (TInput stuff) where TInput: TSource 
+       {
+       }
+}
+
+public class MyClass: BaseClass<TInterface>, MyInterface
+{
+       public static void Main ()
+       {
+       }
+}
+
+public class TInterface
+{
+}
+
+public interface MyInterface 
+{
+       void DoStuff<TInput> (TInput stuff) where TInput: TInterface;
+}
\ No newline at end of file
diff --git a/mcs/tests/gtest-633.cs b/mcs/tests/gtest-633.cs
new file mode 100644 (file)
index 0000000..32882ba
--- /dev/null
@@ -0,0 +1,18 @@
+using System;
+
+struct BB
+{}
+
+public class X
+{
+       public static void Main ()
+       {
+               // Reduced expression statements
+               
+               new BB? ();
+               new float();
+
+               Action a = () => new float();
+               a ();
+       }
+}
\ No newline at end of file
diff --git a/mcs/tests/gtest-autoproperty-13.cs b/mcs/tests/gtest-autoproperty-13.cs
deleted file mode 100644 (file)
index b6d84be..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-
-public struct S
-{
-       public int X { get; }
-       public int Y { get; }
-
-       public S ()
-       {
-               X = 4;
-               Y = X;
-       }
-
-       public static int Main()
-       {
-               var s = new S ();
-               if (s.Y != 4)
-                       return 1;
-
-               return 0;
-       }
-}
diff --git a/mcs/tests/gtest-autoproperty-19.cs b/mcs/tests/gtest-autoproperty-19.cs
new file mode 100644 (file)
index 0000000..58f9d0f
--- /dev/null
@@ -0,0 +1,23 @@
+abstract class Node
+{
+       public virtual int Next { get; }
+}
+
+class NodeLinked : Node
+{
+       public NodeLinked (int next)
+       {
+               this.Next = next;
+       }
+
+       public override int Next { get; }
+
+       public static int Main ()
+       {
+               var nl = new NodeLinked (5);
+               if (nl.Next != 5)
+                       return 1;
+
+               return 0;
+       }
+}
index 55cd1b0e55c0c1d4875f2a33309e88853d8f60f2..785407e3ac92e892ded9187ef2948a8caba13bfd 100644 (file)
@@ -210,14 +210,6 @@ struct MyTypeImplicitOnly
        }
 }
 
-struct StructWithUserConstructor
-{
-       public StructWithUserConstructor ()
-       {
-
-       }
-}
-
 class MemberAccessData
 {
        public bool BoolValue;
@@ -2210,10 +2202,6 @@ class Tester
                Expression<Func<DateTime>> e = () => new DateTime ();
                AssertNodeType (e, ExpressionType.New);
                Assert (null, ((NewExpression)e.Body).Constructor, "default ctor");
-
-               Expression<Func<StructWithUserConstructor>> e2 = () => new StructWithUserConstructor ();
-               AssertNodeType (e2, ExpressionType.New);
-               Assert ("Void .ctor()", ((NewExpression)e2.Body).Constructor.ToString (), "user ctor");
        }
 
        void NotTest ()
index 1bc927517ac375456791c1595c6dc60c3a76397a..936d89ee38702537e0dbf78508f00765976012ef 100644 (file)
@@ -1,4 +1,4 @@
-// Compiler options: -nostdlib -noconfig -r:mscorlib.dll -r:System.Core.dll -lib:../class/lib/net_4_5
+// Compiler options: -nostdlib -noconfig -r:mscorlib.dll -r:System.Core.dll -lib:../class/lib/net_4_x
 
 public static class T
 {
diff --git a/mcs/tests/known-issues-net_4_5 b/mcs/tests/known-issues-net_4_5
deleted file mode 100644 (file)
index 51d0b20..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file contains test files which cause any type of error.
-
-# This file supports extended syntax
-# csXXXX.cs            : test case causes error
-# csXXXX.cs IGNORE     : adds test to ignore list
-
-gtest-230.cs
diff --git a/mcs/tests/known-issues-net_4_x b/mcs/tests/known-issues-net_4_x
new file mode 100644 (file)
index 0000000..51d0b20
--- /dev/null
@@ -0,0 +1,7 @@
+# This file contains test files which cause any type of error.
+
+# This file supports extended syntax
+# csXXXX.cs            : test case causes error
+# csXXXX.cs IGNORE     : adds test to ignore list
+
+gtest-230.cs
index 7bb35531a16c65f54c6634e30e88bd2f79358549..fad71eb113b4f4fd3501f29603a6f3ef1fd7339a 100644 (file)
@@ -13,35 +13,35 @@ public class Test
                if (resourceNames.Length != 3)
                        return 1;
                if (resourceNames[0] != "test-513.cs")
-                       return 1;
+                       return 2;
                if (resourceNames[1] != "test-512.cs")
-                       return 1;
+                       return 3;
                if (resourceNames[2] != "test")
-                       return 1;
+                       return 4;
                FileStream f = a.GetFile ("test-513.cs");
                if (f == null)
-                       return 1;
+                       return 5;
                f = a.GetFile ("test-512.cs");
                if (f == null)
-                       return 1;
+                       return 6;
                f = a.GetFile ("test-511.cs");
                if (f == null)
-                       return 1;
+                       return 7;
                f = a.GetFile ("test");
                if (f != null)
-                       return 1;
+                       return 8;
                Stream s = a.GetManifestResourceStream ("test-513.cs");
                if (s == null)
-                       return 1;
+                       return 9;
                s = a.GetManifestResourceStream ("test-512.cs");
                if (s == null)
-                       return 1;
+                       return 10;
                s = a.GetManifestResourceStream ("test");
                if (s == null)
-                       return 1;
+                       return 11;
                s = a.GetManifestResourceStream ("test-511.cs");
                if (s != null)
-                       return 1;
+                       return 12;
                
                return 0;
        }
index 58f3f1c37bf3e40d1c5d30473c6ba6ac998c52ba..1db1225cf146de15cb48a8616d6c7a426630779c 100644 (file)
@@ -1,4 +1,4 @@
-// Compiler options: -r:../class/lib/net_4_5/Mono.Cecil.dll
+// Compiler options: -r:../class/lib/net_4_x/Mono.Cecil.dll
 
 using System;
 using System.IO;
index 495fec55c4849c571ba576e12184062e5a16911d..d6a9e76dea361459bb49d7551351bb21393e2d6a 100644 (file)
@@ -1,4 +1,4 @@
-// Compiler options: -r:../class/lib/net_4_5/Mono.Cecil.dll
+// Compiler options: -r:../class/lib/net_4_x/Mono.Cecil.dll
 
 using System;
 using Mono.Cecil;
diff --git a/mcs/tests/test-906.cs b/mcs/tests/test-906.cs
deleted file mode 100644 (file)
index 9a34e43..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-// Compiler options: -langversion:experimental
-using System;
-
-struct S1
-{
-       public readonly int Value;
-       
-       public S1 ()
-       {
-               Value = 17;
-       }
-}
-
-struct S2
-{
-       public readonly int Value = 23;
-}
-
-struct S3
-{
-       public readonly int Value = 11;
-       
-       public S3 ()
-       {
-               Value = 5;
-       }
-}
-
-struct S4
-{
-       public readonly int Value = 11;
-       
-       public S4 (int v)
-       {
-       }
-}
-
-struct S5
-{
-       public readonly int Value = 7;
-       
-       public S5 (int v)
-               : this ()
-       {
-               this.Value += v;
-       }
-}
-
-class C
-{
-       static int Main ()
-       {
-               var s = new S1 ();
-               if (s.Value != 17)
-                       return 1;
-
-               var s2 = new S2 ();
-               if (s2.Value != 23)
-                       return 2;
-
-               var s3 = new S3 ();
-               if (s3.Value != 5)
-                       return 3;
-
-               var s4 = new S4 (5);
-               if (s4.Value != 11)
-                       return 4;
-
-               var s5 = new S5 (2);
-               if (s5.Value != 9)
-                       return 5;
-
-               Console.WriteLine ("ok");
-               return 0;
-       }
-}
\ No newline at end of file
diff --git a/mcs/tests/test-926.cs b/mcs/tests/test-926.cs
new file mode 100644 (file)
index 0000000..dfb7b3b
--- /dev/null
@@ -0,0 +1,32 @@
+class Program
+{
+       public static void Main ()
+       {
+               System.Console.WriteLine("Hi");
+       }
+}
+
+public class MyClass
+{
+       protected internal virtual int this[int i]
+       {
+               protected get
+               {
+                       return 2;
+               }
+               set
+               {
+               }
+       }
+}
+
+public class Derived : MyClass
+{
+       protected internal override int this[int i]
+       {
+               protected get
+               {
+                       return 4;
+               }
+       }
+}
\ No newline at end of file
diff --git a/mcs/tests/test-async-68.cs b/mcs/tests/test-async-68.cs
new file mode 100644 (file)
index 0000000..f101c94
--- /dev/null
@@ -0,0 +1,22 @@
+using System.Threading.Tasks;
+
+class X
+{
+       public async Task ReturnsTaskAsync (Task task)
+       {
+               await task;
+       }
+
+       public async Task<Task> ReturnsTaskOfTaskAsync ()
+       {
+               var t1 = Task.FromResult (ReturnsTaskAsync (null));
+               await t1;
+               Task<Task> t2 = Task.FromResult (ReturnsTaskAsync (null));
+               return t2;
+       }
+
+       public static void Main ()
+       {
+               new X ().ReturnsTaskOfTaskAsync ().Wait ();
+       }
+}
\ No newline at end of file
index 7df14c47959d0b092018bf39acd303d2827c7d53..7012722bb9be5275fd532b4f5ba0de405d0cd0ce 100644 (file)
@@ -1,4 +1,4 @@
-// Compiler options: -r:../class/lib/net_4_5/Mono.Cecil.dll
+// Compiler options: -r:../class/lib/net_4_x/Mono.Cecil.dll
 
 using System;
 using System.Threading.Tasks;
index 9bae89796d0373e1f1a8574ec2b53c561712f9ee..3f379456c11826611acbae5a6dd27242ba99af5e 100644 (file)
@@ -58,6 +58,7 @@
         <entry il="0x1b" row="37" col="2" file_ref="1" hidden="false" />
       </sequencepoints>
       <locals>
+        <entry name="$locvar0" il_index="0" scope_ref="0" />
         <entry name="a" il_index="1" scope_ref="0" />
       </locals>
       <scopes />
index 4667ddd2b59608b8c2ac28302d3530933a6f9661..ac03cea49d6d27d8c7f23685eb825c54464d15c8 100644 (file)
@@ -1,43 +1,6 @@
 using System;
 using System.Linq.Expressions;
 
-namespace System
-{
-       public class FormattableString
-       {
-               public FormattableString (string str, object[] arguments)
-               {
-                       Value = str;
-                       Arguments = arguments;
-               }
-
-               public string Value { get; set; }
-               public object[] Arguments;
-       }
-}
-
-namespace System.Runtime.CompilerServices
-{
-       public static class FormattableStringFactory
-       {
-               public static object Create(string format, params object[] arguments)
-               {
-                       if (format.StartsWith ("format"))
-                               return new MyFormattable ();
-
-                       return new FormattableString (format, arguments);
-               }
-       }
-}
-
-class MyFormattable : IFormattable
-{
-       string IFormattable.ToString (string str, IFormatProvider provider)
-       {
-               return null;
-       }
-}
-
 class ConversionTest
 {
        static int Main ()
@@ -46,12 +9,12 @@ class ConversionTest
 
                FormattableString c1;
                c1 = $"{b}";
-               if (c1.Value != "{0}")
+               if (c1.Format != "{0}")
                        return 1;
 
                IFormattable c2;
                c2 = $"format { b }";
-               if (!(c2 is MyFormattable))
+               if (!(c2 is FormattableString))
                        return 2;
 
                return 0;
diff --git a/mcs/tests/test-interpolation-06.cs b/mcs/tests/test-interpolation-06.cs
new file mode 100644 (file)
index 0000000..3341f8d
--- /dev/null
@@ -0,0 +1,20 @@
+class X
+{
+       public static int Main ()
+       {
+               int foo = 4;
+               string s = $@"{foo}";
+               if (s != "4")
+                       return 1;
+
+               string s2 = $@"c:\{foo}\temp";
+               if (s2 != "c:\\4\\temp")
+                       return 2;
+
+               string s3 = $@"""{foo}"" ""foo""";
+               if (s3 != "\"4\" \"foo\"")
+                       return 3;
+
+               return 0;
+       }
+}
\ No newline at end of file
diff --git a/mcs/tests/test-interpolation-07.cs b/mcs/tests/test-interpolation-07.cs
new file mode 100644 (file)
index 0000000..81a8246
--- /dev/null
@@ -0,0 +1,25 @@
+using System;
+
+class CloningTests
+{
+       static Action a;
+
+       static void Do (Action cb)
+       {
+               cb ();
+       }
+
+       static void SetupBAD ()
+       {
+               int number = 0;
+               Do(() => {
+                       a = () => Console.WriteLine ($"Number: {++number}");
+               });
+       }
+
+       static void Main ()
+       {
+               SetupBAD ();
+               a ();
+       }
+}
\ No newline at end of file
diff --git a/mcs/tests/test-interpolation-08.cs b/mcs/tests/test-interpolation-08.cs
new file mode 100644 (file)
index 0000000..f617c52
--- /dev/null
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+
+public class Program
+{
+       public static int Main ()
+       {
+               var x = $@"({
+                               new Dictionary<int, object> {
+                                       { 1, "bbb" }
+                               }.Count
+                               });";
+
+               if (x != "(1);")
+                       return 1;
+
+               return 0;
+       }
+}
\ No newline at end of file
diff --git a/mcs/tests/test-null-operator-010.cs b/mcs/tests/test-null-operator-010.cs
deleted file mode 100644 (file)
index 2d72403..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-using System;
-
-class Test
-{
-       static void Main ()
-       {
-               Test_1 ("");
-               Test_1<object> (null);
-
-               Test_2<object> (null);
-               Test_2 ("z");
-               Test_2 (0);
-               Test_2 ((long?) -8);
-
-               Test_3 (new int[1]);
-               Test_3 (new int[] { 5 });
-       }
-
-       static void Test_1<T> (T x) where T : class
-       {
-               x?.Call ();
-       }
-
-       static void Test_2<T> (T x)
-       {
-               x?.Call ();
-       }
-
-       static void Test_3<T> (T[] x)
-       {
-               x[0]?.Call ();
-       }
-}
-
-static class Ext
-{
-       public static void Call<T> (this T t)
-       {
-               Console.WriteLine (typeof (T));
-       }
-}
diff --git a/mcs/tests/test-null-operator-011.cs b/mcs/tests/test-null-operator-011.cs
deleted file mode 100644 (file)
index 9c116a4..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-static class Crash
-{
-       static string GetFoo ()
-       {
-               return null;
-       }
-
-       static void Main ()
-       {
-               (GetFoo ()?.ToLower ()).ToUpper ();
-       }
-}
diff --git a/mcs/tests/test-null-operator-10.cs b/mcs/tests/test-null-operator-10.cs
new file mode 100644 (file)
index 0000000..1822fb7
--- /dev/null
@@ -0,0 +1,16 @@
+using System;
+
+class Event
+{
+       public string Name { get; set; }
+       public string Foo { get; set; }
+}
+
+class X
+{
+       public static void Main ()
+       {
+               var evt = new Event();
+               string str = (evt.Foo != null ? evt?.Name : "").Trim();
+       }
+}
\ No newline at end of file
diff --git a/mcs/tests/test-null-operator-11.cs b/mcs/tests/test-null-operator-11.cs
new file mode 100644 (file)
index 0000000..3f14ebe
--- /dev/null
@@ -0,0 +1,28 @@
+class X
+{
+       public static void Main ()
+       {
+               A a = new A ();
+               var x = (a.b?.c?.d as A)?.b;
+       }
+}
+
+class A
+{
+       public B b { get; set; }
+}
+
+class B
+{
+       public C c { get; set; }
+}
+
+class C
+{
+       public D d { get; set; }
+}
+
+class D : A
+{
+
+}
\ No newline at end of file
diff --git a/mcs/tests/test-null-operator-12.cs b/mcs/tests/test-null-operator-12.cs
new file mode 100644 (file)
index 0000000..71fa664
--- /dev/null
@@ -0,0 +1,14 @@
+class Test
+{
+       int? _state;
+       public bool Working () => _state?.ToString () != "";
+
+       public static int Main ()
+       {
+               var t = new Test ();
+               if (!t.Working ())
+                       return 1;
+
+               return 0;
+       }
+}
diff --git a/mcs/tests/test-null-operator-13.cs b/mcs/tests/test-null-operator-13.cs
new file mode 100644 (file)
index 0000000..4979113
--- /dev/null
@@ -0,0 +1,41 @@
+using System;
+
+static class Crash
+{
+       static X GetFoo ()
+       {
+               return null;
+       }
+
+       static int Main ()
+       {
+               int res = (GetFoo ()?.ToLower ()).ToUpper ();
+               if (res != 0)
+                       return 1;
+
+               return 0;
+       }
+}
+
+class X
+{
+       public Y ToLower ()
+       {
+               throw new ApplicationException ("should not be called");
+       }
+}
+
+class Y
+{
+}
+
+static class SS
+{
+       public static int ToUpper (this Y y)
+       {
+               if (y != null)
+                       return 1;
+
+               return 0;
+       }
+}
\ No newline at end of file
diff --git a/mcs/tests/test-null-operator-14.cs b/mcs/tests/test-null-operator-14.cs
new file mode 100644 (file)
index 0000000..2d72403
--- /dev/null
@@ -0,0 +1,41 @@
+using System;
+
+class Test
+{
+       static void Main ()
+       {
+               Test_1 ("");
+               Test_1<object> (null);
+
+               Test_2<object> (null);
+               Test_2 ("z");
+               Test_2 (0);
+               Test_2 ((long?) -8);
+
+               Test_3 (new int[1]);
+               Test_3 (new int[] { 5 });
+       }
+
+       static void Test_1<T> (T x) where T : class
+       {
+               x?.Call ();
+       }
+
+       static void Test_2<T> (T x)
+       {
+               x?.Call ();
+       }
+
+       static void Test_3<T> (T[] x)
+       {
+               x[0]?.Call ();
+       }
+}
+
+static class Ext
+{
+       public static void Call<T> (this T t)
+       {
+               Console.WriteLine (typeof (T));
+       }
+}
diff --git a/mcs/tests/test-null-operator-15.cs b/mcs/tests/test-null-operator-15.cs
new file mode 100644 (file)
index 0000000..35f16ae
--- /dev/null
@@ -0,0 +1,16 @@
+using System.Linq;
+using System.Collections.Generic;
+
+class MM
+{
+       public IEnumerable<int> myEnumerable { get; set; }
+}
+
+class Test
+{
+       public static void Main ()
+       {
+               MM myobject = null;
+               (myobject?.myEnumerable?.Any ()).GetValueOrDefault (false);      
+       }
+}
diff --git a/mcs/tests/test-partial-34.cs b/mcs/tests/test-partial-34.cs
new file mode 100644 (file)
index 0000000..75cff9e
--- /dev/null
@@ -0,0 +1,69 @@
+using System;
+using CustomAttributes;
+
+partial class A
+{
+       // Partial methods w/o attributes.
+       partial void PartialMethodWith_NoAttr_NoDefn(string s);
+       partial void PartialMethodWith_NoAttr_Decl(string s);
+
+       // Partial methods w/o a definition.
+       [AttributeA("ANoDef")]
+       partial void PartialMethodWith_AAttr_NoDefn(string s);
+       partial void PartialMethodWith_BAttr_NoDefn([AttributeB("BNoDef")]string s);
+
+       // Attributes only on declaration.
+       [AttributeA("ADecl")]
+       partial void PartialMethodWith_AAttr_Decl(string s);
+       partial void PartialMethodWith_BAttr_Decl([AttributeB("BDecl")]string s);
+
+       // Attributes only on definition.
+       partial void PartialMethodWith_AAttr_Defn(string s);
+       partial void PartialMethodWith_BAttr_Defn(string s);
+
+       // Different Attribute on definition.
+       [AttributeA("WithABAttr")]
+       partial void PartialMethodWith_ABAttr(string s);
+       partial void PartialMethodWith_BAAttr([AttributeB("WithBAAttr")]string s);
+}
+
+partial class A
+{
+       // Partial methods w/o attributes.
+       partial void PartialMethodWith_NoAttr_Decl(string s) { }
+
+       // Attributes only on declaration.
+       partial void PartialMethodWith_AAttr_Decl(string s) { }
+       partial void PartialMethodWith_BAttr_Decl(string s) { }
+
+       // Attributes only on definition.
+       [AttributeA("ADefn")]
+       partial void PartialMethodWith_AAttr_Defn(string s) { }
+       partial void PartialMethodWith_BAttr_Defn([AttributeB("BDefn")]string s)
+       {
+       }
+
+       // Different Attribute on definition.
+       [AttributeB("ABAttr")]
+       partial void PartialMethodWith_ABAttr(string s) { }
+       partial void PartialMethodWith_BAAttr([AttributeA("BAAttr")]string s) { }
+}
+
+namespace CustomAttributes {
+       [AttributeUsage(AttributeTargets.All, AllowMultiple=true)]
+       public class AttributeA : Attribute {
+               public AttributeA(String a) {}
+       }
+
+       [AttributeUsage(AttributeTargets.All, AllowMultiple=true)]
+       public class AttributeB : Attribute {
+               public AttributeB(String a) {}
+       }
+}
+
+class X
+{
+       public static void Main ()
+       {
+       }
+}
\ No newline at end of file
diff --git a/mcs/tests/test-xml-072-ref.xml b/mcs/tests/test-xml-072-ref.xml
new file mode 100644 (file)
index 0000000..85b8879
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>test-xml-072</name>
+    </assembly>
+    <members>
+        <member name="T:X.C">
+            <summary>
+            Top-class
+            </summary></member>
+        <member name="M:X.C.Main">
+            <summary>
+            foo
+            </summary></member>
+    </members>
+</doc>
diff --git a/mcs/tests/test-xml-072.cs b/mcs/tests/test-xml-072.cs
new file mode 100644 (file)
index 0000000..a160b23
--- /dev/null
@@ -0,0 +1,17 @@
+// Compiler options: -doc:xml-072.xml
+
+class X
+{
+       /// <summary>
+       /// Top-class
+       /// </summary>
+       public sealed class C
+       {
+               public string Severity => "foo";
+
+               /// <summary>
+               /// foo
+               /// </summary>
+               public static void Main() {}
+       }
+}
\ No newline at end of file
diff --git a/mcs/tests/ver-il-net_4_5.xml b/mcs/tests/ver-il-net_4_5.xml
deleted file mode 100644 (file)
index b306de4..0000000
+++ /dev/null
@@ -1,70545 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--This file contains expected IL and metadata produced by compiler for each test-->
-<tests>
-  <test name="dtest-001.cs">
-    <type name="C">
-      <method name="Void set_Prop(System.Object)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="System.Object get_Prop()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Prop2(System.Object)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void set_Item(System.Object, System.Object)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="System.Object get_Item(System.Object)" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="System.Object Method(System.Object)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor(Object)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Del">
-      <method name="System.Object Invoke(System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>1292</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Del">
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.Object EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-002.cs">
-    <type name="C">
-      <method name="System.Object D()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="System.Object D2()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AC">
-      <method name="Void Foo(System.Object[])" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BC">
-      <method name="Void Foo(System.Object[])" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-003.cs">
-    <type name="AssertDynamicObject">
-      <method name="System.Dynamic.DynamicMetaObject GetFakeMetaObject(System.Object)" attrs="129">
-        <size>130</size>
-      </method>
-      <method name="System.Dynamic.DynamicMetaObject BindBinaryOperation(System.Dynamic.BinaryOperationBinder, System.Dynamic.DynamicMetaObject)" attrs="198">
-        <size>70</size>
-      </method>
-      <method name="System.Dynamic.DynamicMetaObject BindConvert(System.Dynamic.ConvertBinder)" attrs="198">
-        <size>61</size>
-      </method>
-      <method name="System.Dynamic.DynamicMetaObject BindGetIndex(System.Dynamic.GetIndexBinder, System.Dynamic.DynamicMetaObject[])" attrs="198">
-        <size>104</size>
-      </method>
-      <method name="System.Dynamic.DynamicMetaObject BindGetMember(System.Dynamic.GetMemberBinder)" attrs="198">
-        <size>61</size>
-      </method>
-      <method name="System.Dynamic.DynamicMetaObject BindInvoke(System.Dynamic.InvokeBinder, System.Dynamic.DynamicMetaObject[])" attrs="198">
-        <size>104</size>
-      </method>
-      <method name="System.Dynamic.DynamicMetaObject BindInvokeMember(System.Dynamic.InvokeMemberBinder, System.Dynamic.DynamicMetaObject[])" attrs="198">
-        <size>104</size>
-      </method>
-      <method name="System.Dynamic.DynamicMetaObject BindSetIndex(System.Dynamic.SetIndexBinder, System.Dynamic.DynamicMetaObject[], System.Dynamic.DynamicMetaObject)" attrs="198">
-        <size>110</size>
-      </method>
-      <method name="System.Dynamic.DynamicMetaObject BindSetMember(System.Dynamic.SetMemberBinder, System.Dynamic.DynamicMetaObject)" attrs="198">
-        <size>70</size>
-      </method>
-      <method name="System.Dynamic.DynamicMetaObject BindUnaryOperation(System.Dynamic.UnaryOperationBinder)" attrs="198">
-        <size>61</size>
-      </method>
-      <method name="Void .ctor(DynamicObjectMock, Expression)" attrs="6278">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="DynamicObjectMock">
-      <method name="System.Dynamic.DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression)" attrs="198">
-        <size>30</size>
-      </method>
-      <method name="Void DMethod(Int32)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void DStaticMethod(System.Object)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Void Assert[T](T, T, System.String)" attrs="145">
-        <size>99</size>
-      </method>
-      <method name="Void AssertArgument(System.Runtime.CompilerServices.CallSiteBinder, Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo[], System.String)" attrs="145">
-        <size>172</size>
-      </method>
-      <method name="Void BinaryAdd_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>124</size>
-      </method>
-      <method name="Void BinaryAdd_2(System.Object, DynamicObjectMock)" attrs="129">
-        <size>134</size>
-      </method>
-      <method name="Void BinaryAdd_3(System.Object, DynamicObjectMock)" attrs="129">
-        <size>124</size>
-      </method>
-      <method name="Void BinaryAdd_4(System.Object, DynamicObjectMock)" attrs="129">
-        <size>128</size>
-      </method>
-      <method name="Void BinaryAddChecked_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>124</size>
-      </method>
-      <method name="Void BinaryAddChecked_2(System.Object, DynamicObjectMock)" attrs="129">
-        <size>72</size>
-      </method>
-      <method name="Void BinaryAddAssign_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryAddAssignChecked_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>127</size>
-      </method>
-      <method name="Void BinaryAnd_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>124</size>
-      </method>
-      <method name="Void BinaryAndAssign_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryDivide_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryDivideAssign_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryEqual_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryExclusiveOr_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryExclusiveOrAssign_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryGreaterThan_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryGreaterThanOrEqual_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryLeftShift_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryLeftShiftAssign_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryLessThan_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryLessThanOrEqual_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryLogicalAnd_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>117</size>
-      </method>
-      <method name="Void BinaryLogicalOr_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>118</size>
-      </method>
-      <method name="Void BinaryModulo_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryModuloAssign_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryMultiply_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryMultiplyAssign_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryNotEqual_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryOr_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryOrAssign_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryRightShift_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinaryRightShiftAssign_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinarySubtract_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void BinarySubtractAssign_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void Convert_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>111</size>
-      </method>
-      <method name="Void Convert_2(System.Object, DynamicObjectMock)" attrs="129">
-        <size>116</size>
-      </method>
-      <method name="Void Convert_3(System.Object, DynamicObjectMock)" attrs="129">
-        <size>111</size>
-      </method>
-      <method name="Void Convert_4(System.Object, DynamicObjectMock)" attrs="129">
-        <size>111</size>
-      </method>
-      <method name="Void Convert_5(System.Object, DynamicObjectMock)" attrs="129">
-        <size>230</size>
-      </method>
-      <method name="Void GetIndex_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>122</size>
-      </method>
-      <method name="Void GetIndex_2(System.Object, DynamicObjectMock)" attrs="129">
-        <size>140</size>
-      </method>
-      <method name="Void GetIndex_3(System.Object, DynamicObjectMock)" attrs="129">
-        <size>123</size>
-      </method>
-      <method name="Void GetMember_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>116</size>
-      </method>
-      <method name="Void Invoke_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>140</size>
-      </method>
-      <method name="Void Invoke_2(System.Object, DynamicObjectMock)" attrs="129">
-        <size>114</size>
-      </method>
-      <method name="Void Invoke_3(System.Object, DynamicObjectMock)" attrs="129">
-        <size>144</size>
-      </method>
-      <method name="Void Invoke_4(System.Object, DynamicObjectMock)" attrs="129">
-        <size>149</size>
-      </method>
-      <method name="Void Invoke_5(System.Object, DynamicObjectMock)" attrs="129">
-        <size>155</size>
-      </method>
-      <method name="Void Invoke_6(System.Object, DynamicObjectMock)" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void InvokeMember_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>132</size>
-      </method>
-      <method name="Void InvokeMember_2(System.Object, DynamicObjectMock)" attrs="129">
-        <size>137</size>
-      </method>
-      <method name="Void InvokeMember_3(System.Object, DynamicObjectMock)" attrs="129">
-        <size>136</size>
-      </method>
-      <method name="Void InvokeMember_4(System.Object, DynamicObjectMock)" attrs="129">
-        <size>133</size>
-      </method>
-      <method name="Void InvokeMember_5(System.Object, DynamicObjectMock)" attrs="129">
-        <size>106</size>
-      </method>
-      <method name="Void InvokeMember_6(System.Object, DynamicObjectMock)" attrs="129">
-        <size>143</size>
-      </method>
-      <method name="Void InvokeMember_7(System.Object, DynamicObjectMock)" attrs="129">
-        <size>138</size>
-      </method>
-      <method name="Void InvokeMember_8(System.Object, DynamicObjectMock)" attrs="129">
-        <size>141</size>
-      </method>
-      <method name="Void SetIndex_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>137</size>
-      </method>
-      <method name="Void SetIndex_2(System.Object, DynamicObjectMock)" attrs="129">
-        <size>151</size>
-      </method>
-      <method name="Void SetIndex_3(System.Object, DynamicObjectMock)" attrs="129">
-        <size>140</size>
-      </method>
-      <method name="Void SetMember_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>134</size>
-      </method>
-      <method name="Void SetMember_2(System.Object, DynamicObjectMock)" attrs="129">
-        <size>373</size>
-      </method>
-      <method name="Void UnaryPlus_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>114</size>
-      </method>
-      <method name="Void UnaryMinus_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>114</size>
-      </method>
-      <method name="Void UnaryNot_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>114</size>
-      </method>
-      <method name="Void UnaryOnesComplement_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>114</size>
-      </method>
-      <method name="Void UnaryDecrement_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>117</size>
-      </method>
-      <method name="Void UnaryDecrement_2(System.Object, DynamicObjectMock)" attrs="129">
-        <size>119</size>
-      </method>
-      <method name="Void UnaryIncrement_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>117</size>
-      </method>
-      <method name="Void UnaryIncrement_2(System.Object, DynamicObjectMock)" attrs="129">
-        <size>119</size>
-      </method>
-      <method name="Void UnaryIsFalse_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>159</size>
-      </method>
-      <method name="Void UnaryIsFalse_2(System.Object, DynamicObjectMock)" attrs="129">
-        <size>159</size>
-      </method>
-      <method name="Void UnaryIsFalse_3(System.Object, DynamicObjectMock)" attrs="129">
-        <size>246</size>
-      </method>
-      <method name="Void UnaryIsTrue_1(System.Object, DynamicObjectMock)" attrs="129">
-        <size>130</size>
-      </method>
-      <method name="Void UnaryIsTrue_2(System.Object, DynamicObjectMock)" attrs="129">
-        <size>247</size>
-      </method>
-      <method name="Void UnaryIsTrue_3(System.Object, DynamicObjectMock)" attrs="129">
-        <size>249</size>
-      </method>
-      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
-        <size>123</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>187</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Object)" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>34</size>
-      </method>
-    </type>
-    <type name="AssertDynamicObject+&lt;GetFakeMetaObject&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;InvokeMember_3&gt;c__DynamicSite32+Container0">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, Int32 ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;InvokeMember_4&gt;c__DynamicSite33+Container0">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, Int32 ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;InvokeMember_8&gt;c__DynamicSite37+Container0">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, System.Object ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Void Assert[T](System.Collections.Generic.IList`1[T], System.Collections.Generic.IList`1[T], System.String)" attrs="145">
-        <size>257</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;BinaryAddChecked_2&gt;c__AnonStorey0">
-      <method name="System.Object &lt;&gt;m__0()" attrs="131">
-        <size>98</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;GetIndex_3&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0(System.Dynamic.GetIndexBinder, System.Object[])" attrs="131">
-        <size>93</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;InvokeMember_2&gt;c__AnonStorey2">
-      <method name="Void &lt;&gt;m__0(System.Dynamic.InvokeMemberBinder, System.Object[])" attrs="131">
-        <size>110</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;InvokeMember_6&gt;c__AnonStorey3">
-      <method name="Void &lt;&gt;m__0(System.Dynamic.InvokeMemberBinder, System.Object[])" attrs="131">
-        <size>120</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;SetIndex_3&gt;c__AnonStorey4">
-      <method name="Void &lt;&gt;m__0(System.Dynamic.SetIndexBinder, System.Object[], System.Object)" attrs="131">
-        <size>120</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;SetMember_2&gt;c__AnonStorey5">
-      <method name="System.Object &lt;&gt;m__0(System.Dynamic.GetMemberBinder)" attrs="131">
-        <size>80</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AssertDynamicObject">
-      <method name="System.Object &lt;BindGetIndex&gt;m__0(System.Dynamic.DynamicMetaObject)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="System.Object &lt;BindInvoke&gt;m__1(System.Dynamic.DynamicMetaObject)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="System.Object &lt;BindInvokeMember&gt;m__2(System.Dynamic.DynamicMetaObject)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="System.Object &lt;BindSetIndex&gt;m__3(System.Dynamic.DynamicMetaObject)" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Void &lt;BinaryAdd_1&gt;m__0(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>73</size>
-      </method>
-      <method name="Void &lt;BinaryAdd_2&gt;m__1(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>68</size>
-      </method>
-      <method name="Void &lt;BinaryAdd_3&gt;m__2(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>73</size>
-      </method>
-      <method name="Void &lt;BinaryAdd_4&gt;m__3(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>73</size>
-      </method>
-      <method name="Void &lt;BinaryAddChecked_1&gt;m__4(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>73</size>
-      </method>
-      <method name="Void &lt;BinaryAddChecked_2&gt;m__5(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>73</size>
-      </method>
-      <method name="Void &lt;BinaryAddAssign_1&gt;m__6(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryAddAssignChecked_1&gt;m__7(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryAnd_1&gt;m__8(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>73</size>
-      </method>
-      <method name="Void &lt;BinaryAndAssign_1&gt;m__9(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryDivide_1&gt;m__A(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryDivideAssign_1&gt;m__B(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryEqual_1&gt;m__C(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryExclusiveOr_1&gt;m__D(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryExclusiveOrAssign_1&gt;m__E(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryGreaterThan_1&gt;m__F(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryGreaterThanOrEqual_1&gt;m__10(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryLeftShift_1&gt;m__11(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryLeftShiftAssign_1&gt;m__12(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryLessThan_1&gt;m__13(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryLessThanOrEqual_1&gt;m__14(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryModulo_1&gt;m__15(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryModuloAssign_1&gt;m__16(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryMultiply_1&gt;m__17(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryMultiplyAssign_1&gt;m__18(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryNotEqual_1&gt;m__19(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryOr_1&gt;m__1A(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryOrAssign_1&gt;m__1B(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryRightShift_1&gt;m__1C(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinaryRightShiftAssign_1&gt;m__1D(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinarySubtract_1&gt;m__1E(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;BinarySubtractAssign_1&gt;m__1F(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="System.Object &lt;Convert_1&gt;m__20(System.Dynamic.ConvertBinder)" attrs="145">
-        <size>58</size>
-      </method>
-      <method name="System.Object &lt;Convert_2&gt;m__21(System.Dynamic.ConvertBinder)" attrs="145">
-        <size>58</size>
-      </method>
-      <method name="System.Object &lt;Convert_3&gt;m__22(System.Dynamic.ConvertBinder)" attrs="145">
-        <size>58</size>
-      </method>
-      <method name="System.Object &lt;Convert_4&gt;m__23(System.Dynamic.ConvertBinder)" attrs="145">
-        <size>58</size>
-      </method>
-      <method name="System.Object &lt;Convert_5&gt;m__24(System.Dynamic.ConvertBinder)" attrs="145">
-        <size>67</size>
-      </method>
-      <method name="Void &lt;GetIndex_1&gt;m__25(System.Dynamic.GetIndexBinder, System.Object[])" attrs="145">
-        <size>93</size>
-      </method>
-      <method name="Void &lt;GetIndex_2&gt;m__26(System.Dynamic.GetIndexBinder, System.Object[])" attrs="145">
-        <size>112</size>
-      </method>
-      <method name="System.Object &lt;GetMember_1&gt;m__27(System.Dynamic.GetMemberBinder)" attrs="145">
-        <size>75</size>
-      </method>
-      <method name="Void &lt;Invoke_1&gt;m__28(System.Dynamic.InvokeBinder, System.Object[])" attrs="145">
-        <size>102</size>
-      </method>
-      <method name="Void &lt;Invoke_2&gt;m__29(System.Dynamic.InvokeBinder, System.Object[])" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void &lt;Invoke_4&gt;m__2A(System.Dynamic.InvokeBinder, System.Object[])" attrs="145">
-        <size>128</size>
-      </method>
-      <method name="Void &lt;Invoke_5&gt;m__2B(System.Dynamic.InvokeBinder, System.Object[])" attrs="145">
-        <size>92</size>
-      </method>
-      <method name="Void &lt;Invoke_5&gt;m__2C(System.Object)" attrs="145">
-        <size>94</size>
-      </method>
-      <method name="Void &lt;Invoke_6&gt;m__2D(System.Dynamic.InvokeBinder, System.Object[])" attrs="145">
-        <size>93</size>
-      </method>
-      <method name="Void &lt;InvokeMember_1&gt;m__2E(System.Dynamic.InvokeMemberBinder, System.Object[])" attrs="145">
-        <size>111</size>
-      </method>
-      <method name="Void &lt;InvokeMember_3&gt;m__2F(System.Dynamic.InvokeMemberBinder, System.Object[])" attrs="145">
-        <size>112</size>
-      </method>
-      <method name="Void &lt;InvokeMember_4&gt;m__30(System.Dynamic.InvokeMemberBinder, System.Object[])" attrs="145">
-        <size>111</size>
-      </method>
-      <method name="Void &lt;InvokeMember_7&gt;m__31(System.Dynamic.InvokeMemberBinder, System.Object[])" attrs="145">
-        <size>91</size>
-      </method>
-      <method name="Void &lt;InvokeMember_8&gt;m__32(System.Dynamic.InvokeMemberBinder, System.Object[])" attrs="145">
-        <size>112</size>
-      </method>
-      <method name="Void &lt;SetIndex_1&gt;m__33(System.Dynamic.SetIndexBinder, System.Object[], System.Object)" attrs="145">
-        <size>125</size>
-      </method>
-      <method name="Void &lt;SetIndex_2&gt;m__34(System.Dynamic.SetIndexBinder, System.Object[], System.Object)" attrs="145">
-        <size>140</size>
-      </method>
-      <method name="Void &lt;SetMember_1&gt;m__35(System.Dynamic.SetMemberBinder, System.Object)" attrs="145">
-        <size>102</size>
-      </method>
-      <method name="Void &lt;SetMember_2&gt;m__36(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>69</size>
-      </method>
-      <method name="Void &lt;SetMember_2&gt;m__37(System.Dynamic.SetMemberBinder, System.Object)" attrs="145">
-        <size>77</size>
-      </method>
-      <method name="System.Object &lt;UnaryPlus_1&gt;m__38(System.Dynamic.UnaryOperationBinder)" attrs="145">
-        <size>55</size>
-      </method>
-      <method name="System.Object &lt;UnaryMinus_1&gt;m__39(System.Dynamic.UnaryOperationBinder)" attrs="145">
-        <size>55</size>
-      </method>
-      <method name="System.Object &lt;UnaryNot_1&gt;m__3A(System.Dynamic.UnaryOperationBinder)" attrs="145">
-        <size>55</size>
-      </method>
-      <method name="System.Object &lt;UnaryOnesComplement_1&gt;m__3B(System.Dynamic.UnaryOperationBinder)" attrs="145">
-        <size>55</size>
-      </method>
-      <method name="System.Object &lt;UnaryDecrement_1&gt;m__3C(System.Dynamic.UnaryOperationBinder)" attrs="145">
-        <size>55</size>
-      </method>
-      <method name="System.Object &lt;UnaryDecrement_2&gt;m__3D(System.Dynamic.UnaryOperationBinder)" attrs="145">
-        <size>59</size>
-      </method>
-      <method name="System.Object &lt;UnaryIncrement_1&gt;m__3E(System.Dynamic.UnaryOperationBinder)" attrs="145">
-        <size>55</size>
-      </method>
-      <method name="System.Object &lt;UnaryIncrement_2&gt;m__3F(System.Dynamic.UnaryOperationBinder)" attrs="145">
-        <size>59</size>
-      </method>
-      <method name="System.Object &lt;UnaryIsFalse_1&gt;m__40(System.Dynamic.UnaryOperationBinder)" attrs="145">
-        <size>60</size>
-      </method>
-      <method name="Void &lt;UnaryIsFalse_1&gt;m__41(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>69</size>
-      </method>
-      <method name="System.Object &lt;UnaryIsFalse_2&gt;m__42(System.Dynamic.UnaryOperationBinder)" attrs="145">
-        <size>60</size>
-      </method>
-      <method name="Void &lt;UnaryIsFalse_2&gt;m__43(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>69</size>
-      </method>
-      <method name="System.Object &lt;UnaryIsFalse_3&gt;m__44(System.Dynamic.UnaryOperationBinder)" attrs="145">
-        <size>60</size>
-      </method>
-      <method name="Void &lt;UnaryIsFalse_3&gt;m__45(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>68</size>
-      </method>
-      <method name="System.Object &lt;UnaryIsTrue_1&gt;m__46(System.Dynamic.UnaryOperationBinder)" attrs="145">
-        <size>60</size>
-      </method>
-      <method name="System.Object &lt;UnaryIsTrue_2&gt;m__47(System.Dynamic.UnaryOperationBinder)" attrs="145">
-        <size>60</size>
-      </method>
-      <method name="Void &lt;UnaryIsTrue_2&gt;m__48(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>69</size>
-      </method>
-      <method name="System.Object &lt;UnaryIsTrue_3&gt;m__49(System.Dynamic.UnaryOperationBinder)" attrs="145">
-        <size>60</size>
-      </method>
-      <method name="Void &lt;UnaryIsTrue_3&gt;m__4A(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__4B(System.Reflection.MethodInfo)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__4C(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__4D(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__4E(Boolean)" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-004.cs">
-    <type name="G`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Object Create()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void M[T]()" attrs="145">
-        <size>19</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>121</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-005.cs">
-    <type name="MyObject">
-      <method name="Boolean TryGetMember(System.Dynamic.GetMemberBinder, System.Object ByRef)" attrs="198">
-        <size>35</size>
-      </method>
-      <method name="Boolean TryInvokeMember(System.Dynamic.InvokeMemberBinder, System.Object[], System.Object ByRef)" attrs="198">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tests">
-      <method name="Int32 Main()" attrs="150">
-        <size>260</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-006.cs">
-    <type name="InverseLogicalOperator">
-      <method name="Boolean op_True(InverseLogicalOperator)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Boolean op_False(InverseLogicalOperator)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor(Boolean)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="MyType">
-      <method name="Int16 get_ShortProp()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_ShortProp(Int16)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>7</size>
-      </method>
-      <method name="Boolean op_True(MyType)" attrs="2198">
-        <size>22</size>
-      </method>
-      <method name="Boolean op_False(MyType)" attrs="2198">
-        <size>19</size>
-      </method>
-      <method name="MyType op_Addition(MyType, MyType)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="MyType op_Subtraction(MyType, MyType)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="MyType op_Division(MyType, MyType)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="MyType op_Multiply(MyType, MyType)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="MyType op_Modulus(MyType, MyType)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="MyType op_BitwiseAnd(MyType, MyType)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="MyType op_BitwiseOr(MyType, MyType)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="MyType op_ExclusiveOr(MyType, MyType)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="Boolean op_Equality(MyType, MyType)" attrs="2198">
-        <size>25</size>
-      </method>
-      <method name="Boolean op_Inequality(MyType, MyType)" attrs="2198">
-        <size>28</size>
-      </method>
-      <method name="Boolean op_GreaterThan(MyType, MyType)" attrs="2198">
-        <size>25</size>
-      </method>
-      <method name="Boolean op_LessThan(MyType, MyType)" attrs="2198">
-        <size>25</size>
-      </method>
-      <method name="Boolean op_GreaterThanOrEqual(MyType, MyType)" attrs="2198">
-        <size>28</size>
-      </method>
-      <method name="Boolean op_LessThanOrEqual(MyType, MyType)" attrs="2198">
-        <size>28</size>
-      </method>
-      <method name="Boolean op_LogicalNot(MyType)" attrs="2198">
-        <size>19</size>
-      </method>
-      <method name="Int32 op_OnesComplement(MyType)" attrs="2198">
-        <size>17</size>
-      </method>
-      <method name="MyType op_Increment(MyType)" attrs="2198">
-        <size>23</size>
-      </method>
-      <method name="MyType op_Decrement(MyType)" attrs="2198">
-        <size>23</size>
-      </method>
-      <method name="Int32 op_RightShift(MyType, Int32)" attrs="2198">
-        <size>21</size>
-      </method>
-      <method name="Int32 op_LeftShift(MyType, Int32)" attrs="2198">
-        <size>21</size>
-      </method>
-      <method name="MyType op_UnaryNegation(MyType)" attrs="2198">
-        <size>22</size>
-      </method>
-      <method name="MyType op_UnaryPlus(MyType)" attrs="2198">
-        <size>19</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="MyTypeExplicit">
-      <method name="Int32 op_Explicit(MyTypeExplicit)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="MyTypeImplicitOnly">
-      <method name="Int16 op_Implicit(MyTypeImplicitOnly)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Boolean op_Implicit(MyTypeImplicitOnly)" attrs="2198">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor(Int16)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Void add_ev_assign(System.Action)" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void remove_ev_assign(System.Action)" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void Assert[T](T, T, System.String)" attrs="145">
-        <size>80</size>
-      </method>
-      <method name="Void AssertChecked[T](System.Func`1[T], T, System.String)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Void AssertChecked(System.Action, System.String)" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="Void AddTest()" attrs="129">
-        <size>1371</size>
-      </method>
-      <method name="Void AddNullableTest()" attrs="129">
-        <size>2279</size>
-      </method>
-      <method name="Void AddEnumTest()" attrs="129">
-        <size>875</size>
-      </method>
-      <method name="Void AddCheckedTest()" attrs="129">
-        <size>348</size>
-      </method>
-      <method name="Void AddStringTest()" attrs="129">
-        <size>1145</size>
-      </method>
-      <method name="Void AddAssignTest()" attrs="129">
-        <size>1155</size>
-      </method>
-      <method name="Void AddAssignNullableTest()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void AddAssignEnumTest()" attrs="129">
-        <size>444</size>
-      </method>
-      <method name="Void AddAssignCheckedTest()" attrs="129">
-        <size>322</size>
-      </method>
-      <method name="Void AddAssignStringTest()" attrs="129">
-        <size>877</size>
-      </method>
-      <method name="Void AddAssignEvent()" attrs="129">
-        <size>4</size>
-      </method>
-      <method name="Void AndTest()" attrs="129">
-        <size>1537</size>
-      </method>
-      <method name="Void AndTestEnum()" attrs="129">
-        <size>671</size>
-      </method>
-      <method name="Void AndTestNullable()" attrs="129">
-        <size>2255</size>
-      </method>
-      <method name="Void AndAssignedTest()" attrs="129">
-        <size>912</size>
-      </method>
-      <method name="Void AndAssignedTestEnum()" attrs="129">
-        <size>684</size>
-      </method>
-      <method name="Void AndAlsoTest()" attrs="129">
-        <size>1253</size>
-      </method>
-      <method name="Void DivideTest()" attrs="129">
-        <size>928</size>
-      </method>
-      <method name="Void DivideNullableTest()" attrs="129">
-        <size>2307</size>
-      </method>
-      <method name="Void DivideCheckedTest()" attrs="129">
-        <size>4</size>
-      </method>
-      <method name="Void DivideAssignTest()" attrs="129">
-        <size>1144</size>
-      </method>
-      <method name="Void DivideAssignCheckedTest()" attrs="129">
-        <size>4</size>
-      </method>
-      <method name="Void ConvertImplicitTest()" attrs="129">
-        <size>1266</size>
-      </method>
-      <method name="Int32 ConvertImplicitReturnTest()" attrs="129">
-        <size>83</size>
-      </method>
-      <method name="Void ConvertExplicitTest()" attrs="129">
-        <size>503</size>
-      </method>
-      <method name="Void ConvertExplicitCheckedTest()" attrs="129">
-        <size>90</size>
-      </method>
-      <method name="Void ConvertArray()" attrs="129">
-        <size>168</size>
-      </method>
-      <method name="Void EqualTest()" attrs="129">
-        <size>1942</size>
-      </method>
-      <method name="Void EqualNullableTest()" attrs="129">
-        <size>3034</size>
-      </method>
-      <method name="Void EqualEnumTest()" attrs="129">
-        <size>1048</size>
-      </method>
-      <method name="Void EqualStringTest()" attrs="129">
-        <size>631</size>
-      </method>
-      <method name="Void EqualDelegateTest()" attrs="129">
-        <size>19</size>
-      </method>
-      <method name="Void ExclusiveOrTest()" attrs="129">
-        <size>1547</size>
-      </method>
-      <method name="Void ExclusiveOrNullableTest()" attrs="129">
-        <size>1817</size>
-      </method>
-      <method name="Void ExclusiveOrTestEnum()" attrs="129">
-        <size>693</size>
-      </method>
-      <method name="Void ExclusiveOrAssignedTest()" attrs="129">
-        <size>894</size>
-      </method>
-      <method name="Void ExclusiveOrAssignedTestEnum()" attrs="129">
-        <size>686</size>
-      </method>
-      <method name="Void GreaterThanTest()" attrs="129">
-        <size>1984</size>
-      </method>
-      <method name="Void GreaterThanNullableTest()" attrs="129">
-        <size>2407</size>
-      </method>
-      <method name="Void GreaterThanEnumTest()" attrs="129">
-        <size>1048</size>
-      </method>
-      <method name="Void GreaterThanEqualTest()" attrs="129">
-        <size>1984</size>
-      </method>
-      <method name="Void GreaterThanEqualNullableTest()" attrs="129">
-        <size>2407</size>
-      </method>
-      <method name="Void GreaterThanEqualEnumTest()" attrs="129">
-        <size>1048</size>
-      </method>
-      <method name="Void LeftShiftTest()" attrs="129">
-        <size>1367</size>
-      </method>
-      <method name="Void LeftShiftNullableTest()" attrs="129">
-        <size>1363</size>
-      </method>
-      <method name="Void LeftShiftAssignTest()" attrs="129">
-        <size>650</size>
-      </method>
-      <method name="Void LeftShiftAssignNullableTest()" attrs="129">
-        <size>444</size>
-      </method>
-      <method name="Void LessThanTest()" attrs="129">
-        <size>1984</size>
-      </method>
-      <method name="Void LessThanNullableTest()" attrs="129">
-        <size>2421</size>
-      </method>
-      <method name="Void LessThanEnumTest()" attrs="129">
-        <size>1048</size>
-      </method>
-      <method name="Void LessThanOrEqualTest()" attrs="129">
-        <size>1984</size>
-      </method>
-      <method name="Void LessThanOrEqualNullableTest()" attrs="129">
-        <size>2407</size>
-      </method>
-      <method name="Void LessThanOrEqualEnumTest()" attrs="129">
-        <size>1048</size>
-      </method>
-      <method name="Void ModuloTest()" attrs="129">
-        <size>924</size>
-      </method>
-      <method name="Void ModuloNullableTest()" attrs="129">
-        <size>2295</size>
-      </method>
-      <method name="Void ModuloAssignTest()" attrs="129">
-        <size>1138</size>
-      </method>
-      <method name="Void MultiplyTest()" attrs="129">
-        <size>1168</size>
-      </method>
-      <method name="Void MultiplyNullableTest()" attrs="129">
-        <size>2295</size>
-      </method>
-      <method name="Void MultiplyCheckedTest()" attrs="129">
-        <size>346</size>
-      </method>
-      <method name="Void MultiplyAssignTest()" attrs="129">
-        <size>1328</size>
-      </method>
-      <method name="Void MultiplyAssignCheckedTest()" attrs="129">
-        <size>320</size>
-      </method>
-      <method name="Void Negate()" attrs="129">
-        <size>1312</size>
-      </method>
-      <method name="Void NegateNullable()" attrs="129">
-        <size>1118</size>
-      </method>
-      <method name="Void NegateChecked()" attrs="129">
-        <size>54</size>
-      </method>
-      <method name="Void Not()" attrs="129">
-        <size>405</size>
-      </method>
-      <method name="Void NotEqualTest()" attrs="129">
-        <size>1946</size>
-      </method>
-      <method name="Void NotEqualNullableTest()" attrs="129">
-        <size>3460</size>
-      </method>
-      <method name="Void NotEqualEnumTest()" attrs="129">
-        <size>1048</size>
-      </method>
-      <method name="Void NotEqualStringTest()" attrs="129">
-        <size>631</size>
-      </method>
-      <method name="Void OnesComplement()" attrs="129">
-        <size>819</size>
-      </method>
-      <method name="Void OnesComplementNullable()" attrs="129">
-        <size>419</size>
-      </method>
-      <method name="Void OrTest()" attrs="129">
-        <size>1547</size>
-      </method>
-      <method name="Void OrTestEnum()" attrs="129">
-        <size>675</size>
-      </method>
-      <method name="Void OrTestNullable()" attrs="129">
-        <size>1593</size>
-      </method>
-      <method name="Void OrAssignedTest()" attrs="129">
-        <size>912</size>
-      </method>
-      <method name="Void OrAssignedTestEnum()" attrs="129">
-        <size>686</size>
-      </method>
-      <method name="Void OrElseTest()" attrs="129">
-        <size>1258</size>
-      </method>
-      <method name="Void RightShiftTest()" attrs="129">
-        <size>1153</size>
-      </method>
-      <method name="Void RightShiftNullableTest()" attrs="129">
-        <size>1362</size>
-      </method>
-      <method name="Void RightShiftAssignTest()" attrs="129">
-        <size>650</size>
-      </method>
-      <method name="Void RightShiftAssignNullableTest()" attrs="129">
-        <size>443</size>
-      </method>
-      <method name="Void SubtractTest()" attrs="129">
-        <size>1133</size>
-      </method>
-      <method name="Void SubtractNullableTest()" attrs="129">
-        <size>2290</size>
-      </method>
-      <method name="Void SubtractEnumTest()" attrs="129">
-        <size>897</size>
-      </method>
-      <method name="Void SubtractCheckedTest()" attrs="129">
-        <size>349</size>
-      </method>
-      <method name="Void SubtractAssignTest()" attrs="129">
-        <size>1155</size>
-      </method>
-      <method name="Void SubtractAssignEnumTest()" attrs="129">
-        <size>455</size>
-      </method>
-      <method name="Void SubtractAssignCheckedTest()" attrs="129">
-        <size>322</size>
-      </method>
-      <method name="Void SubtractAssignEvent()" attrs="129">
-        <size>34</size>
-      </method>
-      <method name="Void UnaryDecrement()" attrs="129">
-        <size>992</size>
-      </method>
-      <method name="Void UnaryDecrementCheckedTest()" attrs="129">
-        <size>298</size>
-      </method>
-      <method name="Void UnaryIncrement()" attrs="129">
-        <size>993</size>
-      </method>
-      <method name="Void UnaryIncrementCheckedTest()" attrs="129">
-        <size>295</size>
-      </method>
-      <method name="Void UnaryIsTrue()" attrs="129">
-        <size>429</size>
-      </method>
-      <method name="Void UnaryPlus()" attrs="129">
-        <size>1115</size>
-      </method>
-      <method name="Void UnaryPlusNullable()" attrs="129">
-        <size>1120</size>
-      </method>
-      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
-        <size>80</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>187</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+EmptyDelegate">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;AddCheckedTest&gt;c__AnonStorey1">
-      <method name="System.Object &lt;&gt;m__0()" attrs="131">
-        <size>103</size>
-      </method>
-      <method name="System.Object &lt;&gt;m__1()" attrs="131">
-        <size>103</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;AddAssignCheckedTest&gt;c__AnonStorey2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ConvertImplicitReturnTest_2&gt;c__Iterator0">
-      <method name="System.String System.Collections.Generic.IEnumerator&lt;string&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>154</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ConvertExplicitCheckedTest&gt;c__AnonStorey3">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;MultiplyCheckedTest&gt;c__AnonStorey4">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;MultiplyAssignCheckedTest&gt;c__AnonStorey5">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NegateChecked&gt;c__AnonStorey6">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;SubtractCheckedTest&gt;c__AnonStorey7">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;SubtractAssignCheckedTest&gt;c__AnonStorey8">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;UnaryDecrementCheckedTest&gt;c__AnonStorey9">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;UnaryIncrementCheckedTest&gt;c__AnonStoreyA">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="System.Collections.Generic.IEnumerable`1[System.String] ConvertImplicitReturnTest_2()" attrs="129">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ConvertImplicitReturnTest_2&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.String] System.Collections.Generic.IEnumerable&lt;string&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;AddAssignCheckedTest&gt;c__AnonStorey2">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>234</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ConvertExplicitCheckedTest&gt;c__AnonStorey3">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>81</size>
-      </method>
-      <method name="System.Nullable`1[System.UInt32] &lt;&gt;m__1()" attrs="131">
-        <size>81</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;MultiplyCheckedTest&gt;c__AnonStorey4">
-      <method name="System.Object &lt;&gt;m__0()" attrs="131">
-        <size>104</size>
-      </method>
-      <method name="System.Object &lt;&gt;m__1()" attrs="131">
-        <size>104</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;MultiplyAssignCheckedTest&gt;c__AnonStorey5">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>234</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NegateChecked&gt;c__AnonStorey6">
-      <method name="System.Object &lt;&gt;m__0()" attrs="131">
-        <size>88</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;SubtractCheckedTest&gt;c__AnonStorey7">
-      <method name="System.Object &lt;&gt;m__0()" attrs="131">
-        <size>104</size>
-      </method>
-      <method name="System.Object &lt;&gt;m__1()" attrs="131">
-        <size>104</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;SubtractAssignCheckedTest&gt;c__AnonStorey8">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>234</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;UnaryDecrementCheckedTest&gt;c__AnonStorey9">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>224</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;UnaryIncrementCheckedTest&gt;c__AnonStoreyA">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>220</size>
-      </method>
-    </type>
-    <type name="Tester+EmptyDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ConvertImplicitReturnTest_2&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Void IsTest()" attrs="129">
-        <size>69</size>
-      </method>
-      <method name="Void &lt;SubtractAssignEvent&gt;m__0()" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__1(System.Reflection.MethodInfo)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__2(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__3(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__4(Boolean)" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-007.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="D2">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Class">
-      <method name="UInt32 get_Item(Byte)" attrs="2181">
-        <size>17</size>
-      </method>
-      <method name="Void set_Item(Byte, UInt32)" attrs="2181">
-        <size>9</size>
-      </method>
-      <method name="Byte get_Prop()" attrs="2179">
-        <size>15</size>
-      </method>
-      <method name="Void set_Prop(Byte)" attrs="2179">
-        <size>9</size>
-      </method>
-      <method name="Void set_FixedValue(Int32)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Int32 get_FixedValue()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="System.String Method(System.String)" attrs="131">
-        <size>10</size>
-      </method>
-      <method name="Int32 Method(Int32, Byte)" attrs="134">
-        <size>12</size>
-      </method>
-      <method name="Void MethodInOut(Int32 ByRef, System.String ByRef)" attrs="134">
-        <size>12</size>
-      </method>
-      <method name="Void GenericVoid[T](T)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void ArglistMethod(...)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>45</size>
-      </method>
-      <method name="Void .ctor(SByte)" attrs="6278">
-        <size>53</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="EventClass">
-      <method name="Void add_OutEvent(System.Func`1[System.Int32])" attrs="2179">
-        <size>42</size>
-      </method>
-      <method name="Void remove_OutEvent(System.Func`1[System.Int32])" attrs="2179">
-        <size>42</size>
-      </method>
-      <method name="Int32 CallEvent()" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Void Assert[T](T, T, System.String)" attrs="145">
-        <size>80</size>
-      </method>
-      <method name="Void AssertError(System.Action, System.String)" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="Void add_e(System.Func`1[System.Int32])" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void remove_e(System.Func`1[System.Int32])" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void GetIndexTest()" attrs="129">
-        <size>916</size>
-      </method>
-      <method name="Void GetIndexError_Null()" attrs="129">
-        <size>37</size>
-      </method>
-      <method name="Void InvokeTest()" attrs="129">
-        <size>476</size>
-      </method>
-      <method name="Void InvokeMember()" attrs="129">
-        <size>907</size>
-      </method>
-      <method name="Void InvokeMember_Error()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void InvokeConstructor()" attrs="129">
-        <size>232</size>
-      </method>
-      <method name="Void IsEvent()" attrs="129">
-        <size>2674</size>
-      </method>
-      <method name="Void MemberGetTest()" attrs="129">
-        <size>811</size>
-      </method>
-      <method name="Void MemberGetError_Null()" attrs="129">
-        <size>37</size>
-      </method>
-      <method name="Void MemberSetTest()" attrs="129">
-        <size>2965</size>
-      </method>
-      <method name="Void MemberSetError_Null()" attrs="129">
-        <size>37</size>
-      </method>
-      <method name="Void SetIndexTest()" attrs="129">
-        <size>2901</size>
-      </method>
-      <method name="Void SetIndexError_Null()" attrs="129">
-        <size>37</size>
-      </method>
-      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
-        <size>80</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>187</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;GetIndexError_Null&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>92</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;InvokeMember&gt;c__DynamicSite2+Container0">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, Int32 ByRef, System.String ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;MemberGetError_Null&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;MemberSetError_Null&gt;c__AnonStorey2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;SetIndexError_Null&gt;c__AnonStorey3">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;MemberGetError_Null&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>86</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;MemberSetError_Null&gt;c__AnonStorey2">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>96</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;SetIndexError_Null&gt;c__AnonStorey3">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>102</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="D2">
-      <method name="Void Invoke(System.Decimal)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(System.Decimal, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Class">
-      <method name="Int32 StaticMethod(Int32[])" attrs="150">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Int32 &lt;InvokeTest&gt;m__0(System.String)" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Void &lt;InvokeMember_Error&gt;m__1()" attrs="145">
-        <size>112</size>
-      </method>
-      <method name="Void &lt;InvokeConstructor&gt;m__2(System.Decimal)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 &lt;IsEvent&gt;m__3()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;IsEvent&gt;m__4()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__5(System.Reflection.MethodInfo)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__6(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__7(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__8(Boolean)" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-008.cs">
-    <type name="Disposable">
-      <method name="Void Dispose()" attrs="486">
-        <size>14</size>
-      </method>
-      <method name="Void Test()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Boolean ForEachTest()" attrs="129">
-        <size>419</size>
-      </method>
-      <method name="Boolean ForEachTest_2()" attrs="129">
-        <size>312</size>
-      </method>
-      <method name="Boolean ForEachTest_3()" attrs="129">
-        <size>235</size>
-      </method>
-      <method name="Boolean UsingTest()" attrs="129">
-        <size>619</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>99</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-009.cs">
-    <type name="B">
-      <method name="Void Test(Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>131</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-010.cs">
-    <type name="A">
-      <method name="T Test[T](T, T)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 TestCall()" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>761</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-011.cs">
-    <type name="C">
-      <method name="Void foo(Int32)" attrs="129">
-        <size>18</size>
-      </method>
-      <method name="Void foo(System.String)" attrs="129">
-        <size>7</size>
-      </method>
-      <method name="Void foo_static(Int64)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Int32 MethodBest(Int16)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 MethodBest(System.Object)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void test()" attrs="129">
-        <size>197</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-012.cs">
-    <type name="G`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="dynamic.C">
-      <method name="Int32 Main()" attrs="150">
-        <size>77</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-013.cs">
-    <type name="ndynamic.C`1[U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ndynamic.C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-014.cs">
-    <type name="A">
-      <method name="Int32 op_Inequality(A, System.Object)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int32 op_Equality(A, System.Object)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Boolean op_Equality(C, System.Object)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Boolean op_Inequality(C, System.Object)" attrs="2198">
-        <size>260</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Decimal op_Subtraction(System.Object, C)" attrs="2198">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-015.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-016.cs">
-    <type name="Foo">
-      <method name="Void Dyn(System.Object ByRef)" attrs="454">
-        <size>5</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="Void Dyn(System.Object ByRef)" attrs="198">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Method_A(Int32 ByRef)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Method_B(System.Object ByRef)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Int32 M(System.String, System.String)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 M(System.Object ByRef, System.Object ByRef)" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Int32 Foo(System.Object)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo(System.Object[])" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="Int32 Foo(Int32, System.Object)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo(Double, System.Object)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void DynOut(System.Object ByRef)" attrs="145">
-        <size>5</size>
-      </method>
-      <method name="Void DynRef(System.Object ByRef)" attrs="145">
-        <size>5</size>
-      </method>
-      <method name="Void TestErrorVersions()" attrs="129">
-        <size>198</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>996</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 DynParams(Int32, Int32, Int32[])" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-017.cs">
-    <type name="B`1[U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.Object Invoke(System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="DynamicAssignments">
-      <method name="Int32 Main()" attrs="150">
-        <size>192</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Foo(IA`1[System.Object])" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.Object EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="DynamicAssignments">
-      <method name="System.Object &lt;Main&gt;m__0(System.Object)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-018.cs">
-    <type name="XValue">
-      <method name="Int64 get_Y()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Y(Int64)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Int32 Main()" attrs="150">
-        <size>374</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-019.cs">
-    <type name="C">
-      <method name="Void Method(System.Object)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Method(System.Object, System.Object)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Method2(System.Object, Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Method2(System.Object ByRef)" attrs="145">
-        <size>5</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>62</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+D">
-      <method name="Void Invoke(System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+D2">
-      <method name="Void Invoke(System.Object ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+D">
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+D2">
-      <method name="System.IAsyncResult BeginInvoke(System.Object ByRef, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.Object ByRef, System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-020.cs">
-    <type name="Class1">
-      <method name="Int32 Method1()" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Class2`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Class3">
-      <method name="Void Method2()" attrs="134">
-        <size>90</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-021.cs">
-    <type name="T">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T+B">
-      <method name="Void set_Item(Int32, System.Object)" attrs="2182">
-        <size>70</size>
-      </method>
-      <method name="System.Object get_Item(Int32)" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T+Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-022.cs">
-    <type name="C">
-      <method name="Void M[T](T)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-023.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-024.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>542</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test+D">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 &lt;Main&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-025.cs">
-    <type name="S">
-      <method name="Void SetValue(Int32)" attrs="486">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Method[T](T ByRef)" attrs="145">
-        <size>105</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>368</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Method&gt;c__DynamicSite0`1+Container0[T]">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, T ByRef, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__DynamicSite1+Container0">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__DynamicSite1+Container1">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, S ByRef, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__DynamicSite1+Container0">
-      <method name="System.Object Invoke(System.Runtime.CompilerServices.CallSite, System.Nullable`1[System.Int32] ByRef, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-026.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>375</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-027.cs">
-    <type name="C">
-      <method name="Int32 M(System.Object, Int64)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 M(Int64, System.Object)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 M(System.Object, System.Object)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 M2(System.Object)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 M2(Byte)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>382</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-028.cs">
-    <type name="C">
-      <method name="Void MethodRef(Int32 ByRef)" attrs="134">
-        <size>9</size>
-      </method>
-      <method name="Void MethodOut(UInt16 ByRef)" attrs="134">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void M(System.Object[] ByRef, System.Object[] ByRef)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>255</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Main&gt;c__DynamicSite0+Container0">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, Int32 ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Main&gt;c__DynamicSite0+Container1">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, UInt16 ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-029.cs">
-    <type name="C">
-      <method name="Boolean Test[T,U](T, U)" attrs="145">
-        <size>431</size>
-      </method>
-      <method name="Boolean Test2(Int32)" attrs="145">
-        <size>168</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>115</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-030.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void M1[T](T)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void M2[T,U](T, U)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void M3[T,U](T, A`1[U])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>577</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void M4[T,U](T, System.IEquatable`1[U])" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-031.cs">
-    <type name="A`1[T]">
-      <method name="U CustomDelegate[U](U ByRef)" attrs="134">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void Foo[Z]()" attrs="145">
-        <size>104</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Foo&gt;c__DynamicSite0`1+Container0[Z]">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, Z ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-032.cs">
-    <type name="A">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Foo(Int32, A ByRef)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>153</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+&lt;Main&gt;c__DynamicSite0+Container0">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Type, System.Object, A ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-033.cs">
-    <type name="Test">
-      <method name="Byte get_Prop()" attrs="2177">
-        <size>10</size>
-      </method>
-      <method name="Void set_Prop(Byte)" attrs="2177">
-        <size>2</size>
-      </method>
-      <method name="Byte get_Item(Int32)" attrs="2177">
-        <size>10</size>
-      </method>
-      <method name="Void set_Item(Int32, Byte)" attrs="2177">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>3609</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>39</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-034.cs">
-    <type name="C">
-      <method name="Void M[U,V](U ByRef, V ByRef)" attrs="134">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>482</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Main&gt;c__DynamicSite0+Container0">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, System.Object ByRef, System.Object ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-035.cs">
-    <type name="Test">
-      <method name="System.Object get_Item(Int32)" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Item(Int32, System.Object)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="System.Object[] get_Prop()" attrs="2182">
-        <size>24</size>
-      </method>
-      <method name="Void set_Prop(System.Object[])" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Int32 get_Prop2()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Prop2(Int32)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="System.Object get_Prop3()" attrs="2182">
-        <size>20</size>
-      </method>
-      <method name="Void set_Prop3(System.Object)" attrs="2182">
-        <size>75</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>1142</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-036.cs">
-    <type name="C">
-      <method name="Void add_E(System.Func`2[System.Int32,System.Int32])" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void remove_E(System.Func`2[System.Int32,System.Int32])" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>349</size>
-      </method>
-      <method name="Int32 Foo(Int32)" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-037.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>1207</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-038.cs">
-    <type name="Test">
-      <method name="Void Foo()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>379</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-039.cs">
-    <type name="A">
-      <method name="System.Object Foo()" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="System.Object[] FooArray()" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="System.Object get_Prop()" attrs="2499">
-        <size>16</size>
-      </method>
-      <method name="Void set_Prop(System.Object)" attrs="2499">
-        <size>2</size>
-      </method>
-      <method name="System.Object[] get_PropArray()" attrs="2502">
-        <size>10</size>
-      </method>
-      <method name="System.Object get_Item(Int32)" attrs="2499">
-        <size>15</size>
-      </method>
-      <method name="Void set_Item(Int32, System.Object)" attrs="2499">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="System.Object Foo()" attrs="198">
-        <size>15</size>
-      </method>
-      <method name="System.Object[] FooArray()" attrs="198">
-        <size>45</size>
-      </method>
-      <method name="Void set_Prop(System.Object)" attrs="2243">
-        <size>2</size>
-      </method>
-      <method name="System.Object[] get_PropArray()" attrs="2246">
-        <size>35</size>
-      </method>
-      <method name="Void set_Item(Int32, System.Object)" attrs="2243">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Void Test()" attrs="129">
-        <size>224</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>545</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-040.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>406</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="S`2[U,System.Object] Foo[U](U)" attrs="454">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="S`2[T,System.Object] Foo[T](T)" attrs="198">
-        <size>38</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-041.cs">
-    <type name="A`1[AA]">
-      <method name="AA Foo[U](U)" attrs="454">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="System.Object Foo[T](T)" attrs="198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>90</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-042.cs">
-    <type name="A">
-      <method name="System.Object get_Prop()" attrs="2500">
-        <size>10</size>
-      </method>
-      <method name="Void set_Prop(System.Object)" attrs="2500">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Foo()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="System.Object get_Prop()" attrs="2244">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Test()" attrs="129">
-        <size>90</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-043.cs">
-    <type name="A">
-      <method name="Int32 Main()" attrs="150">
-        <size>347</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-044.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>868</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 Test[T,U](T, System.IComparable`1[U])" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_2[T](System.Collections.Generic.IList`1[T], T)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-045.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>249</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-046.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>1101</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+D">
-      <method name="Int32 Invoke(Int32 ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Main&gt;c__DynamicSite0+Container0">
-      <method name="System.Object Invoke(System.Runtime.CompilerServices.CallSite, System.Object, Int32 ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test+D">
-      <method name="System.IAsyncResult BeginInvoke(Int32 ByRef, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(Int32 ByRef, System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__1()" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__2(Int32 ByRef)" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-047.cs">
-    <type name="C`1[T]">
-      <method name="Void add_E(System.Func`2[System.Int32,System.Int32])" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_E(System.Func`2[System.Int32,System.Int32])" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Int32 Test(Int32)" attrs="150">
-        <size>171</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>42</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1[T]">
-      <method name="Int32 &lt;E&gt;m__0(Int32)" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-048.cs">
-    <type name="A">
-      <method name="Int32 M(System.String, System.Object)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 M(System.String, System.Object[])" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>342</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-049.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+N">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+N">
-      <method name="Void Test()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>91</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-050.cs">
-    <type name="S">
-      <method name="Boolean op_True(S)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Boolean op_False(S)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="System.String op_LogicalNot(S)" attrs="2198">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Boolean Throw()" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Boolean Return(Boolean)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>1195</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-051.cs">
-    <type name="C">
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32)" attrs="2182">
-        <size>11</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>491</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-052.cs">
-    <type name="A">
-      <method name="Void Method(DynamicReference)" attrs="134">
-        <size>192</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-053.cs">
-    <type name="TestAttribute">
-      <method name="Void .ctor(Object[])" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-054.cs">
-    <type name="C">
-      <method name="System.Action`1[T] Test[T](T)" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="System.Action Test2[T](T)" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="System.Action`1[T] Test3[T](T)" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="System.Action Test4[T](T)" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="Void Method(System.Object)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void MethodRef(C ByRef)" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>72</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test2&gt;c__AnonStorey0`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test4&gt;c__AnonStorey2`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test2&gt;c__AnonStorey0`1[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>46</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test4&gt;c__AnonStorey2`1[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>114</size>
-      </method>
-    </type>
-    <type name="C+&lt;&lt;Test3`1&gt;m__1&gt;c__DynamicSite1`1+Container0[T]">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, T ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test4&gt;c__AnonStorey2`1+&lt;&lt;&gt;m__0&gt;c__DynamicSite0+Container0[T]">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, T ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test2&gt;c__AnonStorey0`1+&lt;Test2&gt;c__AnonStorey1[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>118</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void &lt;Test`1&gt;m__0[T](T)" attrs="145">
-        <size>103</size>
-      </method>
-      <method name="Void &lt;Test3`1&gt;m__1[T](T)" attrs="145">
-        <size>105</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-055.cs">
-    <type name="B`2[T1,T2]">
-      <method name="Void Foo[U](U)" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Foo[U](U)" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>71</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-056.cs">
-    <type name="C">
-      <method name="D get_D()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_D(D)" attrs="2177">
-        <size>8</size>
-      </method>
-      <method name="System.String get_Value()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Value(System.String)" attrs="2177">
-        <size>8</size>
-      </method>
-      <method name="Int32 Test()" attrs="134">
-        <size>253</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>58</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Int32 Foo(System.String)" attrs="134">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Foo get_Foo()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Foo(Foo)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Int32 Test2(System.Object)" attrs="150">
-        <size>175</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Int32 Method(System.String)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-057.cs">
-    <type name="Program">
-      <method name="Int32 Test(System.Func`1[System.Object])" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Int32 Test(System.Func`1[System.String])" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>57</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Object &lt;Main&gt;m__0()" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-058.cs">
-    <type name="Test">
-      <method name="Test Foo(System.Object)" attrs="145">
-        <size>113</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>63</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6273">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-059.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1[T]">
-      <method name="Void Test()" attrs="134">
-        <size>238</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1+&lt;Test&gt;c__DynamicSite0+Container0[T]">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Type, System.Object, Int32 ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C`1+&lt;Test&gt;c__DynamicSite0+Container1[T]">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Type, System.Object, Int32 ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-060.cs">
-    <type name="Test.Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>201</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.C">
-      <method name="Int32 M[T](Int32)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 M[T](Int64)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-anontype-01.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>101</size>
-      </method>
-      <method name="Void Test()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="System.Object Factory()" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`1[&lt;Field&gt;__T]">
-      <method name="&lt;Field&gt;__T get_Field()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>39</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>63</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor(&lt;Field&gt;__T)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-cls-01.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void CLSCompliantMethod(System.Object[])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void CLSCompliantMethod(System.Collections.Generic.IEnumerable`1[System.Object])" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-collectioninit-01.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>488</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+Wrap">
-      <method name="System.Object get_Numbers()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-error-01.cs">
-    <type name="Helper">
-      <method name="Int32* Foo(Int32)" attrs="150">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Void NonInvocable()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void Using_1()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void Unsafe_1()" attrs="129">
-        <size>42</size>
-      </method>
-      <method name="Void NullableConversion()" attrs="129">
-        <size>48</size>
-      </method>
-      <method name="Void AssertError(System.Action, System.String)" attrs="145">
-        <size>72</size>
-      </method>
-      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
-        <size>85</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>187</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Unsafe_1&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>110</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Void &lt;NonInvocable&gt;m__0()" attrs="145">
-        <size>86</size>
-      </method>
-      <method name="Void &lt;Using_1&gt;m__1()" attrs="145">
-        <size>92</size>
-      </method>
-      <method name="Void &lt;NullableConversion&gt;m__2()" attrs="145">
-        <size>106</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__3(System.Reflection.MethodInfo)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__4(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__5(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__6(Boolean)" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-error-02.cs">
-    <type name="A">
-      <method name="System.Object Factory()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+N">
-      <method name="Void Foo()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>400</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+N">
-      <method name="Int32 get_Property()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Property(Int32)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="System.String get_Item(Int32)" attrs="2177">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-error-03.cs">
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>106</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-error-04.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>153</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-etree-01.cs">
-    <type name="C">
-      <method name="Void Conv1(System.Linq.Expressions.Expression`1[System.Func`2[System.Object,System.Object]])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Conv2(System.Linq.Expressions.Expression`1[System.Func`2[System.Object,System.Object]])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>383</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-etree-02.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>191</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-friend-01.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>91</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-implicitarray-01.cs">
-    <type name="C">
-      <method name="Void Method()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>112</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-iter-01.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Program+&lt;D1&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;dynamic&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;D2&gt;c__Iterator1">
-      <method name="System.Func`1[System.Object] System.Collections.Generic.IEnumerator&lt;System.Func&lt;dynamic&gt;&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Object] D1()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.Func`1[System.Object]] D2()" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Program+&lt;D1&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;dynamic&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="Program+&lt;D2&gt;c__Iterator1">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Func`1[System.Object]] System.Collections.Generic.IEnumerable&lt;System.Func&lt;dynamic&gt;&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="Program+&lt;D1&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Program+&lt;D2&gt;c__Iterator1">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-named-01.cs">
-    <type name="Test">
-      <method name="Void Foo(Int32 ByRef)" attrs="134">
-        <size>5</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>130</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Main&gt;c__DynamicSite0+Container0">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, Int32 ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-named-02.cs">
-    <type name="Test">
-      <method name="Int32 M1()" attrs="145">
-        <size>39</size>
-      </method>
-      <method name="Int32 M2()" attrs="145">
-        <size>39</size>
-      </method>
-      <method name="System.Object M3()" attrs="145">
-        <size>44</size>
-      </method>
-      <method name="Int32 Foo(Int32, Int32, Int32)" attrs="145">
-        <size>52</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>227</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-optional-01.cs">
-    <type name="G`1[T]">
-      <method name="System.Object M1(T)" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="System.Object M2(T)" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Object Test(System.Object)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void TestS(S)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="System.Object TestD(System.Object)" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>882</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="dtest-optional-02.cs">
-    <type name="Test">
-      <method name="System.Object Foo(System.Object)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-001.cs">
-    <type name="Stack`1[type]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Boot">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-002.cs">
-    <type name="Cell`1[X]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-003.cs">
-    <type name="Stack`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-004.cs">
-    <type name="Stack`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Void Foo(Stack`1[Test])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-005.cs">
-    <type name="Stack`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-006.cs">
-    <type name="Stack`1[T]">
-      <method name="Void Push(T)" attrs="134">
-        <size>31</size>
-      </method>
-      <method name="T Pop()" attrs="134">
-        <size>37</size>
-      </method>
-      <method name="Void Hello(T)" attrs="134">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-007.cs">
-    <type name="Stack`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-008.cs">
-    <type name="Stack`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-009.cs">
-    <type name="Stack`1[T]">
-      <method name="System.Object Test(T)" attrs="134">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-010.cs">
-    <type name="J">
-      <method name="Void Foo()" attrs="134">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Stack`1[T]">
-      <method name="Void Test(T)" attrs="134">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-011.cs">
-    <type name="Stack`1[S]">
-      <method name="Void Hello(S)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Test()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-012.cs">
-    <type name="Stack`1[S]">
-      <method name="Void Hello(S)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`1[T]">
-      <method name="Void Foo(T)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Test()" attrs="129">
-        <size>26</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-013.cs">
-    <type name="X">
-      <method name="Void Test()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-014.cs">
-    <type name="Stack`1[S]">
-      <method name="Void Push(S)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(S)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-015.cs">
-    <type name="Stack`1[S]">
-      <method name="Void Hello[T,U](S, T, U)" attrs="150">
-        <size>4</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-016.cs">
-    <type name="Stack`1[S]">
-      <method name="Void Hello[T](S, T)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-017.cs">
-    <type name="X">
-      <method name="Void Foo(Stack)" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-018.cs">
-    <type name="Stack">
-      <method name="Void Hello[T](T)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Foo(Stack)" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-019.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-020.cs">
-    <type name="Stack`1[S]">
-      <method name="Void Hello(S)" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Test()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-021.cs">
-    <type name="Foo`1[T]">
-      <method name="Void Test()" attrs="134">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>59</size>
-      </method>
-    </type>
-    <type name="Bar`1[T]">
-      <method name="Void Test()" attrs="134">
-        <size>46</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.String ToString()" attrs="198">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6273">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Print(System.Object)" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-022.cs">
-    <type name="Foo`1[T]">
-      <method name="Void Hello()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void World(T)" attrs="134">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="Void Test()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-023.cs">
-    <type name="Foo`1[T]">
-      <method name="Void Hello()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void World(T)" attrs="134">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="Void Test()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-024.cs">
-    <type name="Foo`1[T]">
-      <method name="Void Hello(T)" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void Whatever(System.Object)" attrs="134">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Test(Foo`1[System.Int32])" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-025.cs">
-    <type name="Foo">
-      <method name="Void Hello[T](T)" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void Whatever(System.Object)" attrs="134">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Test(Foo)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-026.cs">
-    <type name="Foo`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-027.cs">
-    <type name="TheBase">
-      <method name="Void BaseFunc()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Stack`1[S]">
-      <method name="Void Hello(S)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`1[T]">
-      <method name="Void Foo(T)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Test()" attrs="129">
-        <size>37</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-028.cs">
-    <type name="Stack`1[T]">
-      <method name="System.Object Test()" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Object Test(Stack`1[System.Int32])" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-029.cs">
-    <type name="Stack`1[T]">
-      <method name="System.Object Test()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-030.cs">
-    <type name="Foo`1[T]">
-      <method name="Void Hello(T)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Bar`2[T,U]">
-      <method name="Void Test(T, U)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Test(Bar`2[System.Int32,System.String])" attrs="145">
-        <size>25</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-031.cs">
-    <type name="X">
-      <method name="Void Test(Bar`2[System.Int32,System.String])" attrs="150">
-        <size>25</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-032.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Test(Bar`2[System.Int32,System.String])" attrs="145">
-        <size>25</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-033.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Test(Bar`3[System.Int64,System.Int32,System.String])" attrs="145">
-        <size>36</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-034.cs">
-    <type name="Foo`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Stack`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-035.cs">
-    <type name="Test`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-036.cs">
-    <type name="Stack`1[T]">
-      <method name="Void Hello(Stack`1[T])" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Test()" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-037.cs">
-    <type name="Foo`2[T,U]">
-      <method name="Void Hello(Foo`2[T,U])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test()" attrs="454">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar`1[T]">
-      <method name="Void Test(Foo`2[T,System.Int64])" attrs="134">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Baz`1[T]">
-      <method name="Void Test()" attrs="198">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-038.cs">
-    <type name="Queue`1[T]">
-      <method name="Void Test(T)" attrs="132">
-        <size>13</size>
-      </method>
-      <method name="Void Test()" attrs="134">
-        <size>75</size>
-      </method>
-      <method name="Void .ctor(T, T)" attrs="6278">
-        <size>39</size>
-      </method>
-    </type>
-    <type name="Queue`1+Node`1[T,U]">
-      <method name="Void .ctor(Node`1, U)" attrs="6278">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Queue`1[T]">
-      <method name="Node`1 get_Foo()" attrs="2180">
-        <size>15</size>
-      </method>
-      <method name="Node`1 GetFoo()" attrs="132">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-039.cs">
-    <type name="Zoo`1[T]">
-      <method name="T get_Name()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Zoo`1+Monkey`2[T,V,W]">
-      <method name="W Jump()" attrs="486">
-        <size>52</size>
-      </method>
-      <method name="Void .ctor(Zoo`1, W)" attrs="6278">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Zoo`1[T]">
-      <method name="IMonkey`1[U] GetTheMonkey[U](U)" attrs="134">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-040.cs">
-    <type name="Stack`1[T]">
-      <method name="Void Test()" attrs="134">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="Stack`1+Node[T]">
-      <method name="Void Hello(T)" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(Stack`1)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Stack`1+Foo`1[T,T]">
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Stack`1+Bar`1[T,U]">
-      <method name="Void .ctor(U)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Stack`1+Bar`1+Baz`1[T,U,V]">
-      <method name="Void .ctor(V)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="A`1[U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+Test`1[U,T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+Test`1+Nested`1[U,T,X]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>49</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Stack`1[T]">
-      <method name="INode`1[T] GetNode()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Foo`1 GetFoo(T)" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Bar`1 GetBar(T)" attrs="134">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Stack`1+Foo`1[T,T]">
-      <method name="Bar`1 GetBar()" attrs="134">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="Stack`1+Bar`1[T,U]">
-      <method name="Foo`1 GetFoo(Stack`1[T])" attrs="134">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Stack`1+Bar`1+Baz`1[T,U,V]">
-      <method name="Foo`1 GetFoo(Stack`1[T])" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Bar`1 GetBar()" attrs="134">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="A`1+Test`1[U,T]">
-      <method name="Nested`1 Foo()" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-041.cs">
-    <type name="Stack`1[T]">
-      <method name="Void Hello(Int32, T[])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-042.cs">
-    <type name="A.A`1[X]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.B`1[X]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.C`1[X]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.D`1[X]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.E`2[X,Y]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.F`1[X]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B.MyTest`2[K,V]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C.S`1[K]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C.C`1[K]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-043.cs">
-    <type name="Test`1[T]">
-      <method name="Void Foo()" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Int32 GetCount()" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 DoTheTest[T]()" attrs="145">
-        <size>145</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>177</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-044.cs">
-    <type name="X`1[T]">
-      <method name="X`1[T] op_Increment(X`1[T])" attrs="2198">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-045.cs">
-    <type name="Test`2[A,B]">
-      <method name="Void Foo[U](U)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Foo[V](V[], V)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Hello[V,W](V, W, Test`2[V,W])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void ArrayMethod[V](V[])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>87</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-046.cs">
-    <type name="Test`1[T]">
-      <method name="Void Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="Void add_MyEvent(Test`1[T])" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_MyEvent(Test`1[T])" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void Hello(T)" attrs="134">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void do_hello(System.String)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-047.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-048.cs">
-    <type name="Stack`1[T]">
-      <method name="Void Add(T)" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-049.cs">
-    <type name="X`1[T]">
-      <method name="Void A(T)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void A(T[])" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void A(T[,])" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void A(T[][])" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void B(T[])" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void B(Int32)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void C(T[])" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void C(T[,])" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void D(Int32, T)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void D(T, Int64)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X`1[T]">
-      <method name="Void C(Int32[,,])" attrs="129">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-050.cs">
-    <type name="D">
-      <method name="Int32 Invoke(System.String, Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="T F[T](System.String, T)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="T G[T]()" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.String, Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-051.cs">
-    <type name="Foo`1[T]">
-      <method name="Void Test(T)" attrs="134">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void Hello()" attrs="134">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-052.cs">
-    <type name="Foo`1[T]">
-      <method name="T Create()" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Hello()" attrs="129">
-        <size>12</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-053.cs">
-    <type name="ValueTypeCounters.SimpleCounter">
-      <method name="Void Increment()" attrs="486">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="ValueTypeCounters.PrintingCounter">
-      <method name="System.String ToString()" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Void Increment()" attrs="486">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="ValueTypeCounters.ExplicitCounter">
-      <method name="Void ICounter.Increment()" attrs="481">
-        <size>16</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="ValueTypeCounters.InterfaceCounter">
-      <method name="Void ICounter.Increment()" attrs="481">
-        <size>16</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Void Increment()" attrs="134">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="ReferenceTypeCounters.SimpleCounter">
-      <method name="Void Increment()" attrs="486">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ReferenceTypeCounters.PrintingCounter">
-      <method name="System.String ToString()" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Void Increment()" attrs="486">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ReferenceTypeCounters.ExplicitCounter">
-      <method name="Void ICounter.Increment()" attrs="481">
-        <size>16</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ReferenceTypeCounters.InterfaceCounter">
-      <method name="Void ICounter.Increment()" attrs="481">
-        <size>16</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Void Increment()" attrs="134">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Test`1[T]">
-      <method name="Void Foo(T)" attrs="150">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.X">
-      <method name="Void Main()" attrs="150">
-        <size>98</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-054.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Hello()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="C op_Implicit(B)" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="B op_Explicit(C)" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Simple[T](T)" attrs="145">
-        <size>37</size>
-      </method>
-      <method name="Void Interface[T](T)" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Void Class[T](T)" attrs="145">
-        <size>72</size>
-      </method>
-      <method name="Void Array[T](T[])" attrs="145">
-        <size>22</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-055.cs">
-    <type name="N1.A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N1.A`1+B[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N1.A`1+C`1[T,U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N1.C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N2.X">
-      <method name="Void Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-056.cs">
-    <type name="Log`1[T]">
-      <method name="Int32 get_InstanceCount()" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="Void Add(T)" attrs="134">
-        <size>33</size>
-      </method>
-      <method name="Int32 get_Count()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="T get_Last()" attrs="2182">
-        <size>55</size>
-      </method>
-      <method name="Void set_Last(T)" attrs="2182">
-        <size>69</size>
-      </method>
-      <method name="T[] get_All()" attrs="2182">
-        <size>78</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>39</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestLog">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>207</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-057.cs">
-    <type name="Hello`1[T]">
-      <method name="Void Print(T)" attrs="486">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>49</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Hello`1[T]">
-      <method name="IHello`1[U] Test[U]()" attrs="486">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-058.cs">
-    <type name="Foo">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="Foo`1[T] get_Blah()" attrs="2193">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-059.cs">
-    <type name="X`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-060.cs">
-    <type name="MyList`1[T]">
-      <method name="Void Hello(T)" attrs="134">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="MyList`1[T] Map[T]()" attrs="486">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-061.cs">
-    <type name="Test`2[A,B]">
-      <method name="B Invoke(A)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="U Method[U](Test`2[T,U])" attrs="134">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>84</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`2[A,B]">
-      <method name="System.IAsyncResult BeginInvoke(A, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="B EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.String &lt;Main&gt;m__0(Double)" attrs="145">
-        <size>25</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-062.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>95</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>116</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test(Int32, Int64)" attrs="134">
-        <size>44</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-063.cs">
-    <type name="Test">
-      <method name="Int32 IndexOf(System.Array, System.Object)" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Int32 IndexOf(System.Array, System.Object, Int32, Int32)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 IndexOf[T](T[], T, Int32, Int32)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>85</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-064.cs">
-    <type name="Foo`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1+Hello[T]">
-      <method name="Void .ctor(Foo`1)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="IHello`1[T] IFoo&lt;T&gt;.GetHello()" attrs="481">
-        <size>15</size>
-      </method>
-      <method name="Hello GetHello()" attrs="134">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-065.cs">
-    <type name="ComparablePair`2[T,U]">
-      <method name="System.String ToString()" attrs="198">
-        <size>72</size>
-      </method>
-      <method name="Void .ctor(T, U)" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="MyTest">
-      <method name="Void Test()" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>218</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ComparablePair`2[T,U]">
-      <method name="Int32 CompareTo(ComparablePair`2[T,U])" attrs="486">
-        <size>76</size>
-      </method>
-      <method name="Boolean Equals(ComparablePair`2[T,U])" attrs="134">
-        <size>81</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-066.cs">
-    <type name="Foo`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1+Bar`1[T,U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.FooEx`2[V,W]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>62</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-067.cs">
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+Foo`1[T]">
-      <method name="Int32 Invoke(T, T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Add(Int32, Int32)" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Hello[U](Foo`1, U)" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Test+Foo`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(T, T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-068.cs">
-    <type name="Martin.Foo`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Baulig.X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-069.cs">
-    <type name="Test`1[T]">
-      <method name="Int32 Foo(IFoo)" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`1[T]">
-      <method name="Int32 Foo(IFoo`1[T])" attrs="134">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-070.cs">
-    <type name="Martin.Test`1[T]">
-      <method name="Int32 Foo()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-071.cs">
-    <type name="Foo`1[T]">
-      <method name="T Test[U](U)" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-072.cs">
-    <type name="Log`1[T]">
-      <method name="Int32 get_InstanceCount()" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="Void Add(T)" attrs="134">
-        <size>33</size>
-      </method>
-      <method name="Int32 get_Count()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="T get_Last()" attrs="2182">
-        <size>55</size>
-      </method>
-      <method name="Void set_Last(T)" attrs="2182">
-        <size>69</size>
-      </method>
-      <method name="T[] get_All()" attrs="2182">
-        <size>78</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>39</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestLog">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Pair`2[T,U]">
-      <method name="Void .ctor(T, U)" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="TestLog">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>212</size>
-      </method>
-      <method name="Void TestPairLog()" attrs="150">
-        <size>186</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-073.cs">
-    <type name="MyList`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>57</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyList`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyList`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-074.cs">
-    <type name="Foo`1[T]">
-      <method name="Void .ctor(T, T)" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="Test`1[T]">
-      <method name="Void .ctor(T, T)" attrs="6278">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>113</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-075.cs">
-    <type name="ArrayList`1[T]">
-      <method name="Void IExtensible&lt;T&gt;.AddAll[U](U)" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-076.cs">
-    <type name="Foo`1[T]">
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Test`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`1[T]">
-      <method name="Foo`1[T] GetFoo(T)" attrs="134">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-078.cs">
-    <type name="S">
-      <method name="Void System.IDisposable.Dispose()" attrs="481">
-        <size>14</size>
-      </method>
-      <method name="Void Dispose()" attrs="134">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void System.IDisposable.Dispose()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void Dispose()" attrs="134">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>238</size>
-      </method>
-      <method name="Void GenMethod[T](T)" attrs="145">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-079.cs">
-    <type name="A.ArrayList`1[T]">
-      <method name="Void A.IExtensible&lt;T&gt;.AddAll[U](U)" attrs="481">
-        <size>19</size>
-      </method>
-      <method name="Void InsertAll(T)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B.ArrayList`2[X,Y]">
-      <method name="Void AddAll[Z](Z)" attrs="486">
-        <size>19</size>
-      </method>
-      <method name="Void InsertAll(Y)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C.Foo`1[U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C.ArrayList`1[X]">
-      <method name="Void AddAll[Y](Y)" attrs="486">
-        <size>14</size>
-      </method>
-      <method name="Void InsertAll(C.Foo`1[X])" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-080.cs">
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Hello[T](IFoo`1[T])" attrs="134">
-        <size>9</size>
-      </method>
-      <method name="Void InsertAll[U](IFoo`1[U])" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-081.cs">
-    <type name="ArrayList`1[T]">
-      <method name="Void AddAll[U](U)" attrs="129">
-        <size>19</size>
-      </method>
-      <method name="Void InsertAll(T)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-082.cs">
-    <type name="Queue`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Queue`1+Enumerator[T]">
-      <method name="Void .ctor(Queue`1)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-083.cs">
-    <type name="CollectionValueBase`1[T]">
-      <method name="T[] ToArray()" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CollectionBase`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="SequencedBase`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ArrayBase`1[T]">
-      <method name="T[] ToArray()" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-084.cs">
-    <type name="HasherBuilder.ByPrototype`1[S]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ArrayList`1[U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="HasherBuilder.ByPrototype`1[S]">
-      <method name="IHasher`1[S] Examine()" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="ArrayList`1[U]">
-      <method name="IHasher`1[U] GetHasher()" attrs="134">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-085.cs">
-    <type name="ArrayList`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ArrayList`1[T]">
-      <method name="Int32 InsertAll(IFoo`1[T])" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Int32 InsertAll[U](IFoo`1[U])" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Int32 AddAll(IFoo`1[T])" attrs="454">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-086.cs">
-    <type name="ArrayList`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ArrayList`1[T]">
-      <method name="Int32 InsertAll(IFoo`1[T])" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Int32 InsertAll[U](IFoo`1[U])" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Int32 AddAll(IFoo`1[T])" attrs="454">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-087.cs">
-    <type name="C5.HashedArrayList`1[T]">
-      <method name="Void Test()" attrs="134">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C5.HashSet`1[T]">
-      <method name="Void .ctor(IHasher`1)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C5.KeyValuePairHasher`2[K,V]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-088.cs">
-    <type name="KeyValuePair`2[K,V]">
-      <method name="Void .ctor(K, V)" attrs="6278">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(K)" attrs="6278">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-089.cs">
-    <type name="Test`1[T]">
-      <method name="Void Foo(T, Int32 ByRef)" attrs="134">
-        <size>5</size>
-      </method>
-      <method name="Void Hello(T)" attrs="134">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-090.cs">
-    <type name="Foo`1[T]">
-      <method name="T InsertAll[U](U)" attrs="454">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar`1[T]">
-      <method name="T InsertAll[U](U)" attrs="198">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-091.cs">
-    <type name="Foo`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1+Node[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="Node Test[V]()" attrs="134">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-092.cs">
-    <type name="Element`1[T]">
-      <method name="Void GetItem(T ByRef)" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="T GetItem(Int32, T ByRef)" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void SetItem(T)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1+Node[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="Node Test()" attrs="134">
-        <size>60</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-093.cs">
-    <type name="Foo`1[T]">
-      <method name="Void Hello[U]()" attrs="134">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Foo`1+Node[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="Void maketreer(Node ByRef)" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-094.cs">
-    <type name="LinkedList`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="LinkedList`1+Node[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="HashedLinkedList`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-095.cs">
-    <type name="GuardedCollectionValue`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="GuardedSequenced`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="GuardedCollectionValue`1[T]">
-      <method name="IDirectedEnumerable`1[T] IDirectedEnumerable&lt;T&gt;.Backwards()" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="IDirectedCollectionValue`1[T] Backwards()" attrs="486">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="GuardedSequenced`1[T]">
-      <method name="IDirectedCollectionValue`1[T] Test()" attrs="134">
-        <size>20</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-096.cs">
-    <type name="Foo`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Hello[T](Foo`1[T][], Int32)" attrs="145">
-        <size>28</size>
-      </method>
-      <method name="Void Quicksort[U](Foo`1[U][])" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-097.cs">
-    <type name="Foo">
-      <method name="Void IFoo.Test[X]()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void IFoo.Test[Y,Z]()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar`3[X,Y,Z]">
-      <method name="Void IBar&lt;X&gt;.Test()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void IBar&lt;Y,Z&gt;.Test()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-098.cs">
-    <type name="Foo">
-      <method name="Void IFoo.Test[X]()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void IFoo.Test[Y,Z]()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar`3[X,Y,Z]">
-      <method name="Void IBar&lt;X&gt;.Test()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void IBar&lt;Y,Z&gt;.Test()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-100.cs">
-    <type name="C5.ArrayBase`1[T]">
-      <method name="Void C5.ICollection&lt;T&gt;.Test[U]()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C5.ArrayList`1[V]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-101.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="SimpleStruct`1[T]">
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-102.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B`2[U,V]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Driver">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-103.cs">
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Hello">
-      <method name="Void Test(Foo)" attrs="134">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Hello">
-      <method name="Void World[U](U, IFoo`1[U])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void World[V](IFoo`1[V])" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-104.cs">
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+Gen`1[T]">
-      <method name="Void Test()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+Der">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-105.cs">
-    <type name="A.KeyValuePair`2[X,Y]">
-      <method name="Void .ctor(X, Y)" attrs="6278">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="A.KeyValuePairComparer`2[K,V]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.TreeBag`1[T]">
-      <method name="Int32 Find(T ByRef)" attrs="134">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor(IComparer`1)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="A.X">
-      <method name="Void Test()" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B.KeyValuePair`2[X,Y]">
-      <method name="Void .ctor(X, Y)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="B.KeyValuePairComparer`2[K,V]">
-      <method name="Int32 Compare(B.KeyValuePair`2[K,V])" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B.TreeBag`1[T]">
-      <method name="Int32 Find(T ByRef)" attrs="134">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor(IComparer`1)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="B.X">
-      <method name="Void Test()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.KeyValuePairComparer`2[K,V]">
-      <method name="Int32 Compare(A.KeyValuePair`2[K,V])" attrs="486">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-106.cs">
-    <type name="KeyValuePair`2[X,Y]">
-      <method name="Void .ctor(X, Y)" attrs="6278">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="KeyValuePairComparer`2[K,V]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TreeBag`1[T]">
-      <method name="Int32 Find()" attrs="134">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor(IComparer`1, T)" attrs="6278">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="KeyValuePairComparer`2[K,V]">
-      <method name="Int32 Compare(KeyValuePair`2[K,V])" attrs="486">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-107.cs">
-    <type name="Mapper`2[T,V]">
-      <method name="V Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Tree`1[T]">
-      <method name="Void Map[V](Mapper`2[T,V])" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.String themap(Int32)" attrs="129">
-        <size>25</size>
-      </method>
-      <method name="Void Test()" attrs="129">
-        <size>27</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Mapper`2[T,V]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="V EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-108.cs">
-    <type name="Test`1[T]">
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>58</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>82</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="134">
-        <size>22</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-109.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-110.cs">
-    <type name="List`1[T]">
-      <method name="Int32 Map[U](U)" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="SpecialList`1[V]">
-      <method name="Int32 Map[W](W)" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>76</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-111.cs">
-    <type name="KeyValuePair`2[K,V]">
-      <method name="Void .ctor(K, V)" attrs="6278">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor(K)" attrs="6278">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="Collection`1[T]">
-      <method name="Void Find(T ByRef)" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>86</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-112.cs">
-    <type name="IC">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[K]">
-      <method name="Void .ctor(K)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="List`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Sorting">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Sorting+Sorter`1[T]">
-      <method name="Void InsertionSort(Int32)" attrs="131">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor(IComparer`1, Int32, T)" attrs="6278">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="IC">
-      <method name="Void Compare(Foo`1[System.Int32])" attrs="486">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="List`1[T]">
-      <method name="Void Sort(IComparer`1[T], T)" attrs="454">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Sorting">
-      <method name="Void IntroSort[T](IComparer`1[T], T)" attrs="150">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-113.cs">
-    <type name="Mapper`2[T,V]">
-      <method name="V Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="List`1[T]">
-      <method name="Void Map[V](Mapper`2[T,V])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Mapper`2[T,V]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="V EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Double &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>21</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-114.cs">
-    <type name="NaturalComparer`1[T]">
-      <method name="Int32 Compare(T, T)" attrs="486">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 CompareTo(Test)" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Boolean Equals(Test)" attrs="134">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-115.cs">
-    <type name="Mapper`2[A,R]">
-      <method name="R Invoke(A)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="LinkedList`1[T]">
-      <method name="Int32 get_Count()" attrs="2534">
-        <size>15</size>
-      </method>
-      <method name="T get_Item(Int32)" attrs="2534">
-        <size>21</size>
-      </method>
-      <method name="Void set_Item(Int32, T)" attrs="2534">
-        <size>15</size>
-      </method>
-      <method name="Void Add(T)" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Insert(Int32, T)" attrs="486">
-        <size>266</size>
-      </method>
-      <method name="Void RemoveAt(Int32)" attrs="486">
-        <size>114</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>169</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>77</size>
-      </method>
-      <method name="LinkedList`1[T] op_Explicit(T[])" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="LinkedList`1[T] op_Addition(LinkedList`1[T], LinkedList`1[T])" attrs="2198">
-        <size>135</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor(T[])" attrs="6278">
-        <size>46</size>
-      </method>
-    </type>
-    <type name="LinkedList`1+Node[T]">
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(T, Node, Node)" attrs="6278">
-        <size>29</size>
-      </method>
-    </type>
-    <type name="LinkedList`1+LinkedListEnumerator[T]">
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>20</size>
-      </method>
-      <method name="T get_Current()" attrs="2534">
-        <size>32</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>81</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>7</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor(LinkedList`1)" attrs="6278">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="SortedList`1[T]">
-      <method name="Void Insert(T)" attrs="134">
-        <size>140</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="PrintableLinkedList`1[T]">
-      <method name="Void Print(System.IO.TextWriter)" attrs="486">
-        <size>93</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyString">
-      <method name="Int32 CompareTo(MyString)" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Boolean Equals(MyString)" attrs="134">
-        <size>26</size>
-      </method>
-      <method name="System.String get_Value()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="MyTest">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>472</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="LinkedList`1[T]">
-      <method name="IMyList`1[U] Map[U](Mapper`2[T,U])" attrs="486">
-        <size>78</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="486">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Mapper`2[A,R]">
-      <method name="System.IAsyncResult BeginInvoke(A, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="R EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="LinkedList`1[T]">
-      <method name="Node get(Int32)" attrs="129">
-        <size>133</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="MyTest">
-      <method name="System.String &lt;Main&gt;m__0(Double)" attrs="145">
-        <size>25</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-116.cs">
-    <type name="Slow.Test">
-      <method name="Void DoNothing[T]()" attrs="486">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Slow.Program">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>202</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-117.cs">
-    <type name="Foo`1[T]">
-      <method name="Boolean Test(T)" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Boolean Test()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Boolean TestB()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y`1[T]">
-      <method name="Boolean Foo()" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Boolean TestA(System.Object)" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Boolean TestB[T](T)" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Int32 TestC()" attrs="150">
-        <size>46</size>
-      </method>
-      <method name="Boolean Check2[T](E)" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>213</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Boolean Check1(System.Nullable`1[E])" attrs="145">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-118.cs">
-    <type name="Polynomial`1[E]">
-      <method name="Polynomial`1[E] Add(Polynomial`1[E])" attrs="486">
-        <size>315</size>
-      </method>
-      <method name="Polynomial`1[E] Add(E)" attrs="486">
-        <size>34</size>
-      </method>
-      <method name="Polynomial`1[E] Mul(E)" attrs="486">
-        <size>86</size>
-      </method>
-      <method name="Polynomial`1[E] Mul(Polynomial`1[E])" attrs="486">
-        <size>203</size>
-      </method>
-      <method name="E Eval(E)" attrs="134">
-        <size>84</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor(E[])" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Int">
-      <method name="Int Add(Int)" attrs="486">
-        <size>28</size>
-      </method>
-      <method name="Int Mul(Int)" attrs="486">
-        <size>28</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="TestPolynomial">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>149</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-119.cs">
-    <type name="Tests">
-      <method name="Void Main()" attrs="150">
-        <size>62</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-120.cs">
-    <type name="SequencedHasher`2[S,W]">
-      <method name="Boolean Equals(S, S)" attrs="134">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Sequenced`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Sequenced`1[T]">
-      <method name="Boolean Equals(ISequenced`1[T])" attrs="486">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-121.cs">
-    <type name="B`1[T]">
-      <method name="Int32 Add(T)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void AddRange(System.Object)" attrs="134">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-122.cs">
-    <type name="Test">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="Void D(Int32)" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1[T]">
-      <method name="Void Run()" attrs="134">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor(B, T)" attrs="6278">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="A`1+B[T]">
-      <method name="Void Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-123.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+Foo[T]">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="A`1+Bar`1[T,U]">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+Foo[T]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="A`1+Bar`1[T,U]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-124.cs">
-    <type name="FooCollection`1[T]">
-      <method name="T IFoo&lt;T&gt;.get_Item(Int32)" attrs="2529">
-        <size>18</size>
-      </method>
-      <method name="Void IFoo&lt;T&gt;.set_Item(Int32, T)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-125.cs">
-    <type name="B`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-126.cs">
-    <type name="B">
-      <method name="Boolean foo()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="K">
-      <method name="Boolean foo()" attrs="486">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="MyFilter">
-      <method name="K Is(IB)" attrs="486">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyBFilter">
-      <method name="B Is(IB)" attrs="486">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>46</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.List`1[T] foo1[T](Filter`1[T])" attrs="145">
-        <size>46</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-127.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+Changed[T]">
-      <method name="Void Invoke(A`1[T])" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void Del(A`1[System.Int32])" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1[T]">
-      <method name="Void add__changed(Changed)" attrs="2180">
-        <size>42</size>
-      </method>
-      <method name="Void remove__changed(Changed)" attrs="2180">
-        <size>42</size>
-      </method>
-      <method name="Void Register(Changed)" attrs="134">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="A`1+Changed[T]">
-      <method name="System.IAsyncResult BeginInvoke(A`1[T], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-128.cs">
-    <type name="FLMID.Bugs.ParametersOne.Class`1[T]">
-      <method name="Void Add(T)" attrs="134">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FLMID.Bugs.ParametersOne.Test">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>125</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-129.cs">
-    <type name="B.Test`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-130.cs">
-    <type name="MyTest">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>908</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-131.cs">
-    <type name="MyTest">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>1300</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-132.cs">
-    <type name="MyTest">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>64</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Nullable`1[System.Int32] Sqrt(System.Nullable`1[System.Int32])" attrs="150">
-        <size>68</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-133.cs">
-    <type name="S">
-      <method name="Int32 get_X()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_X(Int32)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void Set(Int32)" attrs="134">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="MyTest">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>202</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-134.cs">
-    <type name="MyTest">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>114</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="System.String Fmt()" attrs="134">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-135.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>117</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-136.cs">
-    <type name="Martin.A">
-      <method name="Void .ctor(Int64)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Martin.B">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Martin.X">
-      <method name="Void Main()" attrs="150">
-        <size>149</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Martin.A">
-      <method name="Martin.B op_Explicit(Martin.A)" attrs="2198">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="Martin.B">
-      <method name="Martin.A op_Implicit(Martin.B)" attrs="2198">
-        <size>22</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-137.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>240</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-138.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>102</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-139.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>78</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyStruct">
-      <method name="Int32 op_Inequality(System.Nullable`1[MyStruct], System.String)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int32 op_Equality(System.Nullable`1[MyStruct], System.String)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int32 op_Inequality(System.String, System.Nullable`1[MyStruct])" attrs="2198">
-        <size>11</size>
-      </method>
-      <method name="Int32 op_Equality(System.String, System.Nullable`1[MyStruct])" attrs="2198">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-140.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>134</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-141.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>92</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-142.cs">
-    <type name="Assert">
-      <method name="Int32 get_Errors()" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="Void Error(System.String, System.String)" attrs="145">
-        <size>26</size>
-      </method>
-      <method name="Void IsTrue(System.String, Boolean)" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void IsFalse(System.String, Boolean)" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>2163</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Assert">
-      <method name="Void IsNull[T](System.String, System.Nullable`1[T])" attrs="150">
-        <size>25</size>
-      </method>
-      <method name="Void IsNotNull[T](System.String, System.Nullable`1[T])" attrs="150">
-        <size>25</size>
-      </method>
-      <method name="Void IsTrue(System.String, System.Nullable`1[System.Boolean])" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void IsFalse(System.String, System.Nullable`1[System.Boolean])" attrs="150">
-        <size>37</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-143.cs">
-    <type name="X">
-      <method name="Int32 Index()" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="Int32 Test()" attrs="145">
-        <size>1276</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Nullable`1[System.Int32] get_Item(Int32)" attrs="2177">
-        <size>15</size>
-      </method>
-      <method name="Void set_Item(Int32, System.Nullable`1[System.Int32])" attrs="2177">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-144.cs">
-    <type name="Test.Application">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-145.cs">
-    <type name="Test`1[T]">
-      <method name="Void .ctor(T[,])" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-146.cs">
-    <type name="MyLinkedList`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyLinkedList`1+Node[T]">
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="SortedList`1[U]">
-      <method name="Void Insert(U)" attrs="134">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-147.cs">
-    <type name="B.Test`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B.Test`1[T]">
-      <method name="Void A.IFoo.Hello(A.IFoo)" attrs="481">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-148.cs">
-    <type name="Test1">
-      <method name="Void Foo[S,OP](UInt32)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Test1+IOp`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test2">
-      <method name="Void Foo[T,OP](UInt32)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Test2+IOp`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-149.cs">
-    <type name="Test1">
-      <method name="Void Foo[S,OP](UInt32)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Test1+IOp`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test2">
-      <method name="Void Foo[T,OP](UInt32)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Test2+IOp`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-150.cs">
-    <type name="Test1">
-      <method name="Void Foo[T,OP](UInt32)" attrs="145">
-        <size>36</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="Test1+Op">
-      <method name="UInt16 Test1.IOp&lt;ushort&gt;.Func(UInt32)" attrs="481">
-        <size>13</size>
-      </method>
-      <method name="UInt32 Test1.IOp&lt;uint&gt;.Func(UInt32)" attrs="481">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-151.cs">
-    <type name="Test`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-152.cs">
-    <type name="EnumerableBase`1[T]">
-      <method name="IFoo IFoo.Hello()" attrs="481">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CollectionBase`1[T]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="HashBag`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="EnumerableBase`1[T]">
-      <method name="IFoo`1[T] Hello()" attrs="1478">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="HashBag`1[T]">
-      <method name="IFoo`1[T] Hello()" attrs="198">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-153.cs">
-    <type name="MyClass`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-154.cs">
-    <type name="T`1[X]">
-      <method name="Int32 Invoke(X)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="T`1[X] M[X]()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="T`1[System.Int64] N()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T`1[X]">
-      <method name="System.IAsyncResult BeginInvoke(X, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 &lt;M`1&gt;m__0[X](X)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;N&gt;m__1(Int64)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-155.cs">
-    <type name="MyClass`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-156.cs">
-    <type name="FLMID.Bugs.Marshal15.D">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-157.cs">
-    <type name="kv`2[k,v]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="m`2[k,v]">
-      <method name="Void a&lt;kv&lt;k,v&gt;&gt;.x()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-158.cs">
-    <type name="Moo`1[C]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Moo`1+Foo[C]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-159.cs">
-    <type name="App">
-      <method name="Void Main()" attrs="150">
-        <size>102</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-160.cs">
-    <type name="Fun`2[A,B]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="List`1[T]">
-      <method name="List`1[T2] Map[T2](Fun`2[T,T2])" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void foo[T2]()" attrs="134">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-161.cs">
-    <type name="App">
-      <method name="Void Main()" attrs="150">
-        <size>74</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="U apply[T,U](T, Mapping`2)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>22</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-162.cs">
-    <type name="Generic`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Generic`1+Delegate[T]">
-      <method name="Void Invoke(Generic`1[T], T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Generic`1+Delegate[T]">
-      <method name="System.IAsyncResult BeginInvoke(Generic`1[T], T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-163.cs">
-    <type name="Foo`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1+&lt;getEnumerator&gt;c__Iterator0[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>80</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] getEnumerator(Int32)" attrs="134">
-        <size>22</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-164.cs">
-    <type name="Int2Int">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="FunEnumerable">
-      <method name="Void .ctor(Int32, Int2Int)" attrs="6278">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FunEnumerable+&lt;GetEnumerator&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>98</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FunEnumerable">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] GetEnumerator()" attrs="134">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="Int2Int">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-165.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-166.cs">
-    <type name="Foo">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-167.cs">
-    <type name="TestAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestNotAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestMultiAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Class1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Class2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Class3">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>109</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-168.cs">
-    <type name="lis`1[a]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="lis`1[a] Rev[a](lis`1[a])" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="lis`1[b] MapFromArray[a,b](a[])" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-169.cs">
-    <type name="list`1[A]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="list`1+Cons`1[A,T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="list`1+Nil`1[A,T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Rev[T](list`1[T])" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-170.cs">
-    <type name="C`1[A]">
-      <method name="Void foo[B](C`1[B])" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void append[A](C`1[A])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-171.cs">
-    <type name="list`1[a]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Nil`1[a]">
-      <method name="Void .cctor()" attrs="6289">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-172.cs">
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-173.cs">
-    <type name="List`1[t]">
-      <method name="Void foo[b](List`1[t])" attrs="134">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-174.cs">
-    <type name="B`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-175.cs">
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Foo Test(Foo, Foo)" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>46</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-176.cs">
-    <type name="lis`1[a]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="fn`3[a,b,r]">
-      <method name="r apply(a, b)" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="fn1`1[a]">
-      <method name="lis`1[a] apply(lis`1[a], lis`1[a])" attrs="198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="b FoldLeft[a,b](a, b, fn`3[a,b,b])" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="lis`1[a] RevAppend[a](lis`1[a], lis`1[a])" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="lis`1[lis`1[a]] Concat[a](lis`1[lis`1[a]])" attrs="150">
-        <size>25</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-177.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>119</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>25</size>
-      </method>
-    </type>
-    <type name="X`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[T] Y(System.Collections.Generic.IEnumerable`1[T])" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="T Z(System.Collections.Generic.IList`1[T], Int32)" attrs="150">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-178.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-179.cs">
-    <type name="X`1[T]">
-      <method name="Int32 get_i()" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void set_i(Int32)" attrs="2193">
-        <size>2</size>
-      </method>
-      <method name="Int32 myMain()" attrs="150">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Int32 Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-180.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+CC">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>289</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-181.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>211</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>149</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;&gt;c__Iterator1">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>168</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerator get_GetIt()" attrs="2193">
-        <size>15</size>
-      </method>
-      <method name="Void set_GetIt(System.Collections.IEnumerator)" attrs="2193">
-        <size>2</size>
-      </method>
-      <method name="System.Collections.IEnumerable get_Item(Int32)" attrs="2177">
-        <size>30</size>
-      </method>
-      <method name="Void set_Item(Int32, System.Collections.IEnumerable)" attrs="2177">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="X+&lt;&gt;c__Iterator1">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-182.cs">
-    <type name="C1">
-      <method name="Int32 GetId()" attrs="486">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void foo[a](a)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-183.cs">
-    <type name="test.Test`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="test.Program">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>75</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="test.Test`1+&lt;Lookup&gt;c__Iterator0[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>91</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="test.Test`1[T]">
-      <method name="System.Collections.Generic.IEnumerable`1[T] Lookup(T)" attrs="134">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="test.Test`1+&lt;Lookup&gt;c__Iterator0[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-184.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>69</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__0(System.String)" attrs="145">
-        <size>20</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-185.cs">
-    <type name="App">
-      <method name="Void Main()" attrs="150">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FP">
-      <method name="T[] appendArrays[T](T[][])" attrs="150">
-        <size>155</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-186.cs">
-    <type name="Tuple`2[a,b]">
-      <method name="Void .ctor(a, b)" attrs="6278">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>121</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestSimpleObject">
-      <method name="Void Print()" attrs="134">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>26</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-187.cs">
-    <type name="Foo`1[T]">
-      <method name="T next()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Goo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-188.cs">
-    <type name="Foo">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void add_DoSomething(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_DoSomething(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor(Object[])" attrs="6278">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor(Object[], Object)" attrs="6278">
-        <size>205</size>
-      </method>
-    </type>
-    <type name="Foo+&lt;Foo&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo+&lt;Foo&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
-        <size>47</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-189.cs">
-    <type name="Bar">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Cont`1[T]">
-      <method name="System.String ToString()" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-190.cs">
-    <type name="Foo`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1+Node[T]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1+ConcatNode[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="Node GetRoot()" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void Test(Node)" attrs="134">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-191.cs">
-    <type name="Test2.Test`1[S]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test3.Test`1[S]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test4.Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test5.Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test6.Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test7.Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test1.Test+&lt;Replace&gt;c__Iterator0`1[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test1.Test">
-      <method name="System.Collections.Generic.IEnumerable`1[T] Replace[T]()" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Test2.Test`1[S]">
-      <method name="System.Collections.Generic.IEnumerable`1[T] Replace[T]()" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Test3.Test`1[S]">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[S,T]] Replace[T](System.Collections.Generic.IEnumerable`1[T], System.Collections.Generic.IEnumerable`1[S])" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Test4.Test">
-      <method name="System.Collections.Generic.IEnumerable`1[T] Replace[T]()" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Test5.Test">
-      <method name="System.Collections.Generic.IEnumerable`1[T] Replace[T](T)" attrs="150">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="Test6.Test">
-      <method name="System.Collections.Generic.IEnumerable`1[T] Replace[T](T)" attrs="150">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="Test7.Test">
-      <method name="System.Collections.Generic.IEnumerable`1[T[]] Replace[T](T[])" attrs="150">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="Test1.Test+&lt;Replace&gt;c__Iterator0`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="Test2.Test`1+&lt;Replace&gt;c__Iterator0`1[S,T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test3.Test`1+&lt;Replace&gt;c__Iterator0`1[S,T]">
-      <method name="System.Collections.Generic.KeyValuePair`2[S,T] System.Collections.Generic.IEnumerator&lt;System.Collections.Generic.KeyValuePair&lt;S,T&gt;&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[S,T]] System.Collections.Generic.IEnumerable&lt;System.Collections.Generic.KeyValuePair&lt;S,T&gt;&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test4.Test+&lt;Replace&gt;c__Iterator0`1[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test5.Test+&lt;Replace&gt;c__Iterator0`1[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>77</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test6.Test+&lt;Replace&gt;c__Iterator0`1[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>89</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test7.Test+&lt;Replace&gt;c__Iterator0`1[T]">
-      <method name="T[] System.Collections.Generic.IEnumerator&lt;T[]&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>89</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[T[]] System.Collections.Generic.IEnumerable&lt;T[]&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test1.Test+&lt;Replace&gt;c__Iterator0`1[T]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Test2.Test`1+&lt;Replace&gt;c__Iterator0`1[S,T]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Test3.Test`1+&lt;Replace&gt;c__Iterator0`1[S,T]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Test4.Test+&lt;Replace&gt;c__Iterator0`1[T]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Test5.Test+&lt;Replace&gt;c__Iterator0`1[T]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Test6.Test+&lt;Replace&gt;c__Iterator0`1[T]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Test7.Test+&lt;Replace&gt;c__Iterator0`1[T]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-192.cs">
-    <type name="xX">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-193.cs">
-    <type name="OrderedMultiDictionary`2[T,U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="RedBlackTree`1[S]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="RedBlackTree`1+RangeTester[S]">
-      <method name="Int32 Invoke(S)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="OrderedMultiDictionary`2+&lt;EnumerateKeys&gt;c__Iterator0[T,U]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>49</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="RedBlackTree`1+&lt;EnumerateRange&gt;c__Iterator0[S]">
-      <method name="S System.Collections.Generic.IEnumerator&lt;S&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[S] System.Collections.Generic.IEnumerable&lt;S&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="OrderedMultiDictionary`2[T,U]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] EnumerateKeys(RangeTester)" attrs="129">
-        <size>29</size>
-      </method>
-    </type>
-    <type name="RedBlackTree`1[S]">
-      <method name="System.Collections.Generic.IEnumerable`1[S] EnumerateRange(RangeTester)" attrs="134">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="RedBlackTree`1+RangeTester[S]">
-      <method name="System.IAsyncResult BeginInvoke(S, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="RedBlackTree`1+&lt;EnumerateRange&gt;c__Iterator0[S]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-194.cs">
-    <type name="RedBlackTree`1[S]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="RedBlackTree`1+RangeTester[S]">
-      <method name="Int32 Invoke(S)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="OrderedMultiDictionary`2[T,U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="RedBlackTree`1+&lt;EnumerateRange&gt;c__Iterator0[S]">
-      <method name="S System.Collections.Generic.IEnumerator&lt;S&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[S] System.Collections.Generic.IEnumerable&lt;S&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="OrderedMultiDictionary`2+&lt;EnumerateKeys&gt;c__Iterator0[T,U]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>49</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="RedBlackTree`1[S]">
-      <method name="System.Collections.Generic.IEnumerable`1[S] EnumerateRange(RangeTester)" attrs="134">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="RedBlackTree`1+RangeTester[S]">
-      <method name="System.IAsyncResult BeginInvoke(S, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="OrderedMultiDictionary`2[T,U]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] EnumerateKeys(RangeTester)" attrs="129">
-        <size>29</size>
-      </method>
-    </type>
-    <type name="RedBlackTree`1+&lt;EnumerateRange&gt;c__Iterator0[S]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-195.cs">
-    <type name="OrderedMultiDictionary`2[T,U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="RedBlackTree`1[S]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="RedBlackTree`1+RangeTester[S]">
-      <method name="Int32 Invoke(S)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="OrderedMultiDictionary`2[T,U]">
-      <method name="Void EnumerateKeys(RangeTester)" attrs="129">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="RedBlackTree`1[S]">
-      <method name="Void EnumerateRange(RangeTester)" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="RedBlackTree`1+RangeTester[S]">
-      <method name="System.IAsyncResult BeginInvoke(S, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-196.cs">
-    <type name="Dict">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Int32 Main()" attrs="150">
-        <size>123</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-197.cs">
-    <type name="Martin.Collections.Generic.EqualityComparer`1[T]">
-      <method name="Int32 GetHashCode(T)" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Boolean Equals(T, T)" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Martin.Collections.Generic.EqualityComparer`1[T] get_Default()" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>96</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Martin.Collections.Generic.EqualityComparer`1+DefaultComparer[T]">
-      <method name="Int32 GetHashCode(T)" attrs="198">
-        <size>22</size>
-      </method>
-      <method name="Boolean Equals(T, T)" attrs="198">
-        <size>54</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Martin.Collections.Generic.IEquatableOfTEqualityComparer`1[T]">
-      <method name="Int32 GetHashCode(T)" attrs="198">
-        <size>22</size>
-      </method>
-      <method name="Boolean Equals(T, T)" attrs="198">
-        <size>49</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Martin.Collections.Generic.X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-198.cs">
-    <type name="ClassLibrary2.List1`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ClassLibrary2.List2`1[T]">
-      <method name="Void AddItem(T)" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="ClassLibrary2.Foo">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-199.cs">
-    <type name="Splay`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-200.cs">
-    <type name="Test">
-      <method name="T QueryInterface[T](System.Object)" attrs="150">
-        <size>63</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Driver">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-201.cs">
-    <type name="HashSet`1[T]">
-      <method name="Int64 Test()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Int64)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>92</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="HashSet`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
-      <method name="Int64 System.Collections.Generic.IEnumerator&lt;long&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>82</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="HashSet`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int64] GetEnumerator()" attrs="134">
-        <size>22</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-202.cs">
-    <type name="Generic`1[T]">
-      <method name="T get_Item(Int32, Int32)" attrs="2182">
-        <size>22</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32, T)" attrs="2182">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="Fault">
-      <method name="Void Main()" attrs="150">
-        <size>52</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-203.cs">
-    <type name="C`2[X,Y]">
-      <method name="Void foo[A,B]()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void bar[A,B]()" attrs="134">
-        <size>70</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`2+Q`2[X,Y,A,B]">
-      <method name="Void apply(C`2[X,Y])" attrs="134">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-204.cs">
-    <type name="Map`1[b]">
-      <method name="a Fold1[a](a)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="c Fold[c](c)" attrs="134">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="LocalContext">
-      <method name="a Fold[a](a)" attrs="134">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-205.cs">
-    <type name="Foo`1[S]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`1[U]">
-      <method name="Void Func(U)" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Test(System.Type, System.Object)" attrs="145">
-        <size>32</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>145</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-206.cs">
-    <type name="Continuation`2[R,A]">
-      <method name="Continuation`2[R,A] CallCC[B](System.Object)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Driver">
-      <method name="Continuation`2[B,A] myTry[A,B](B, A)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-207.cs">
-    <type name="M">
-      <method name="Void p(System.String)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-208.cs">
-    <type name="SomeClass">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="T Do(System.Object)" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Driver">
-      <method name="Void Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-209.cs">
-    <type name="ClassLibrary3.Dictionary1`2[TKey,TValue]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ClassLibrary3.Test">
-      <method name="Void Main()" attrs="150">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-210.cs">
-    <type name="Foo`1[T]">
-      <method name="T next()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Goo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-211.cs">
-    <type name="MyTest">
-      <method name="Void f(Boolean, Boolean)" attrs="145">
-        <size>60</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>448</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-212.cs">
-    <type name="SomeStruct">
-      <method name="Boolean get_Valid()" attrs="2534">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Fun[T](T)" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-213.cs">
-    <type name="SomeStruct">
-      <method name="Int32 get_Foo()" attrs="2534">
-        <size>15</size>
-      </method>
-      <method name="Void set_Foo(Int32)" attrs="2534">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Fun[T](T)" attrs="150">
-        <size>79</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-214.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>104</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-215.cs">
-    <type name="R">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-216.cs">
-    <type name="BaseClass">
-      <method name="Ret Foo()" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="DerivedClass">
-      <method name="Ret Foo()" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BaseClass">
-      <method name="Ret`1[T] Foo[T]()" attrs="454">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="DerivedClass">
-      <method name="Ret`1[T] Foo[T]()" attrs="198">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-218.cs">
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-219.cs">
-    <type name="Test">
-      <method name="Void Foo[T]()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>93</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-220.cs">
-    <type name="A`1[T1]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+B`1[T1,T2]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+B`1+C`1[T1,T2,T3]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="PopQuiz">
-      <method name="Int32 Main()" attrs="150">
-        <size>171</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-221.cs">
-    <type name="C1`1[IFoo]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C2">
-      <method name="C1`1[T] Hoge[T](C1`1[T])" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C3">
-      <method name="C1`1[T] Hoge[T](C1`1[T])" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-222.cs">
-    <type name="Mona`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Mona`1[K] GetMona[K]()" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-223.cs">
-    <type name="Foo`1[T]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Foo`1[K] Hoge[K]()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>74</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-224.cs">
-    <type name="Base">
-      <method name="Void Foo[T]()" attrs="454">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Derived">
-      <method name="Void Foo[T]()" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Driver">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-225.cs">
-    <type name="Set`1[Element]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Set`1+Locator[Element]">
-      <method name="Void .ctor(Replace)" attrs="6278">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Set`1+Locator+Replace[Element]">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Set`1+Node[Element]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="SetTest">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Set`1+&lt;locate&gt;c__AnonStorey0[Element]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Set`1[Element]">
-      <method name="Locator locate(Element)" attrs="132">
-        <size>39</size>
-      </method>
-    </type>
-    <type name="Set`1+Locator+Replace[Element]">
-      <method name="Void Invoke(Node)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Node, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Set`1+&lt;locate&gt;c__AnonStorey0[Element]">
-      <method name="Void &lt;&gt;m__0(Node)" attrs="131">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-226.cs">
-    <type name="Container`1[T]">
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>25</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Int32 Main()" attrs="150">
-        <size>103</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-227.cs">
-    <type name="Foo`1[G]">
-      <method name="Void Bar()" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-228.cs">
-    <type name="GenParAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="cons`2[A,B]">
-      <method name="Void abc[M]()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-229.cs">
-    <type name="B">
-      <method name="Int32 CompareTo(B)" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Int32 Main()" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-231.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-232.cs">
-    <type name="M">
-      <method name="Int32 Main()" attrs="150">
-        <size>76</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-233.cs">
-    <type name="Program">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void list_ListChanged(System.Object, System.ComponentModel.ListChangedEventArgs)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-234.cs">
-    <type name="Test">
-      <method name="IFoo GetFoo()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="IFoo`1[T] GetFooGeneric[T]()" attrs="134">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-235.cs">
-    <type name="GettingStarted">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-236.cs">
-    <type name="Foo`1[T]">
-      <method name="Int32 Test(Foo`1[T])" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test(Foo`1[System.Int32])" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>82</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-237.cs">
-    <type name="Foo`1[T]">
-      <method name="Int32 Test(T)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test(Int32)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>83</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-238.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>57</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-239.cs">
-    <type name="Foo`2[T,U]">
-      <method name="Int32 Test(T, U)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test(Int32, U)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test(T, Single)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test(Int32, Single)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>297</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-240.cs">
-    <type name="MyClass">
-      <method name="Void IMyInterface&lt;string&gt;.add_MyEvent(System.EventHandler)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Void IMyInterface&lt;string&gt;.remove_MyEvent(System.EventHandler)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Void IMyInterface&lt;int&gt;.add_MyEvent(System.EventHandler)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Void IMyInterface&lt;int&gt;.remove_MyEvent(System.EventHandler)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-241.cs">
-    <type name="a">
-      <method name="Void func[T](T ByRef)" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="b">
-      <method name="Void func[T](T ByRef)" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="main">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-242.cs">
-    <type name="Container`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ReferenceType">
-      <method name="Int32 CompareTo(ReferenceType)" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyValueType">
-      <method name="Int32 CompareTo(MyValueType)" attrs="486">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-243.cs">
-    <type name="Foo`1[T]">
-      <method name="Void Test(T)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tests">
-      <method name="Void foo[T]()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Int32 Test()" attrs="150">
-        <size>186</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-244.cs">
-    <type name="B">
-      <method name="T Get[T]()" attrs="454">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="T Get[T]()" attrs="198">
-        <size>38</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-245.cs">
-    <type name="DerivedGenericClass`1[T]">
-      <method name="Void Foo()" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void Baz()" attrs="134">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BaseClass">
-      <method name="Void Foo()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-246.cs">
-    <type name="TestCase.CTest">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Bar()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestCase.CGenericTest`2[T,V]">
-      <method name="V Foo()" attrs="134">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-247.cs">
-    <type name="EnumerableBase`1[T]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CollectionValueBase`1[T]">
-      <method name="Void raiseItemsAdded(T, Int32)" attrs="452">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CollectionValueBase`1+RaiseForRemoveAllHandler[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CircularQueue`1[T]">
-      <method name="Void Enqueue(T)" attrs="454">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="HashSet`1[T]">
-      <method name="Boolean searchoradd(T ByRef, Boolean, Boolean, Boolean)" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CircularQueue`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="EnumerableBase`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="1478">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="CollectionValueBase`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="1222">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="CircularQueue`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="198">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="HashSet`1[T]">
-      <method name="Void RemoveAll[U](System.Collections.Generic.IEnumerable`1[U])" attrs="454">
-        <size>8</size>
-      </method>
-      <method name="Void AddAll[U](System.Collections.Generic.IEnumerable`1[U])" attrs="454">
-        <size>65</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="198">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="HashSet`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="EnumerableBase`1[T]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-248.cs">
-    <type name="Foo`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Boolean Test(System.Object)" attrs="145">
-        <size>27</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-249.cs">
-    <type name="EnumerableBase`1[T]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ArrayBase`1[T]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="HashedArrayList`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ArrayBase`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="EnumerableBase`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="1478">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="ArrayBase`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="198">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="HashedArrayList`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="198">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="EnumerableBase`1[T]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-250.cs">
-    <type name="Fun`2[R,S]">
-      <method name="S Invoke(R)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="GuardedIndexedSorted`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="GuardedIndexedSorted`1[T]">
-      <method name="IIndexedSorted`1[V] Map[V](Fun`2[T,V])" attrs="486">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="Fun`2[R,S]">
-      <method name="System.IAsyncResult BeginInvoke(R, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="S EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-251.cs">
-    <type name="SortedIndexedTester`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="SortedIndexedTester`1[T]">
-      <method name="Void Test(ISorted`1[System.Int32])" attrs="134">
-        <size>25</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-252.cs">
-    <type name="EqualityComparer`1[T]">
-      <method name="Void Test()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="SequencedEqualityComparer`2[T,W]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-253.cs">
-    <type name="CollectionValueTester`2[R,S]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ExtensibleTester`1[U]">
-      <method name="Void Direct()" attrs="134">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor(U)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Extensible`1[V]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Extensible`1[V]">
-      <method name="Void AddAll[W](System.Collections.Generic.IEnumerable`1[W])" attrs="486">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-254.cs">
-    <type name="HashedLinkedList`1[T]">
-      <method name="HashedLinkedList`1[T] GetList()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void Test(Int32)" attrs="150">
-        <size>56</size>
-      </method>
-      <method name="Void Test(HashedLinkedList`1[T])" attrs="134">
-        <size>52</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-255.cs">
-    <type name="A">
-      <method name="T Foo[T]()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="T Foo[T]()" attrs="198">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-256.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void Run()" attrs="129">
-        <size>154</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
-      <method name="System.String System.Collections.Generic.IEnumerator&lt;string&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>142</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.Generic.IEnumerator`1[System.String] GetEnumerator()" attrs="134">
-        <size>22</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-257.cs">
-    <type name="Tests">
-      <method name="Void Main()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-258.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-259.cs">
-    <type name="Class1`1[T]">
-      <method name="Void MethodOfClass1(T, MyType)" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyType">
-      <method name="Void MethodOfMyBaseType()" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyBaseType">
-      <method name="Void MethodOfMyBaseType()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-260.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-261.cs">
-    <type name="Cons`2[T,U]">
-      <method name="System.String ToString()" attrs="198">
-        <size>76</size>
-      </method>
-      <method name="Void .ctor(T, U)" attrs="6278">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="List`1[A]">
-      <method name="Void zip[B](List`1[B])" attrs="134">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor(A)" attrs="6278">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor(A, List`1)" attrs="6278">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-262.cs">
-    <type name="Test">
-      <method name="Void f1(System.Object)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void f2(System.String)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void f3(Test)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void f4(Int32)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void f5(Int16)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void f6(ParamEnum)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>167</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-263.cs">
-    <type name="Foo`1[S]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ConvertHelper">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="ConvertHelper+&lt;Test&gt;c__Iterator0`2[S,T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>87</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ConvertHelper">
-      <method name="System.Collections.Generic.IEnumerator`1[T] Test[S,T](S)" attrs="150">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="Foo`1[S]">
-      <method name="System.ICloneable Test(S)" attrs="134">
-        <size>20</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-264.cs">
-    <type name="BaseList`1[SubType]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="XXX">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Crash">
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-265.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-266.cs">
-    <type name="Test`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`1+Inner`1[T,U]">
-      <method name="Void Foo()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-267.cs">
-    <type name="Handler`1[T]">
-      <method name="Void Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Void Foo[T](Handler`1[T])" attrs="134">
-        <size>35</size>
-      </method>
-      <method name="Void Response[T](Handler`1[T])" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T+&lt;Foo&gt;c__AnonStorey0`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Handler`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="T+&lt;Foo&gt;c__AnonStorey0`1[T]">
-      <method name="Void &lt;&gt;m__0(System.IAsyncResult)" attrs="131">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-268.cs">
-    <type name="Test">
-      <method name="Void Bar()" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+G`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-269.cs">
-    <type name="IrishPub">
-      <method name="Void .ctor(IrishBeer)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int64 PubToLong(IrishPub)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Int32 Test(Boolean)" attrs="145">
-        <size>72</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>247</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="IrishPub">
-      <method name="Int64 op_Implicit(System.Nullable`1[IrishPub])" attrs="2198">
-        <size>44</size>
-      </method>
-      <method name="System.Nullable`1[IrishPub] op_Implicit(Int64)" attrs="2198">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Beer(System.Nullable`1[IrishPub])" attrs="145">
-        <size>72</size>
-      </method>
-      <method name="Int32 Test(System.Nullable`1[System.Int32])" attrs="145">
-        <size>62</size>
-      </method>
-      <method name="Int32 TestWithNull(System.Nullable`1[System.Int32])" attrs="145">
-        <size>78</size>
-      </method>
-      <method name="System.Nullable`1[System.Int64] Foo(Boolean)" attrs="145">
-        <size>37</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-270.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>60</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 Test(System.Nullable`1[System.Int32])" attrs="145">
-        <size>62</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-271.cs">
-    <type name="Qux`2[X,V]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`2[X,V]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`1[T]">
-      <method name="Int32 CompareTo(Test`1[T])" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>57</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Qux`2+&lt;GetEnumerator&gt;c__Iterator1[X,V]">
-      <method name="V System.Collections.Generic.IEnumerator&lt;V&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Qux`2[X,V]">
-      <method name="System.Collections.Generic.IEnumerator`1[V] GetEnumerator()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Qux`2+&lt;System_Collections_IEnumerable_GetEnumerator&gt;c__Iterator0[X,V]">
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-272.cs">
-    <type name="Handler`1[T]">
-      <method name="Void Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Foo[T](Handler`1[T])" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void Response[T](Handler`1[T])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test[T](T)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>36</size>
-      </method>
-    </type>
-    <type name="X+&lt;Foo&gt;c__AnonStorey0`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Handler`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+&lt;Foo&gt;c__AnonStorey0`1[T]">
-      <method name="Void &lt;&gt;m__0(System.IAsyncResult)" attrs="131">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-273.cs">
-    <type name="ThisBaseClass`3[A,B,C]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ThatBaseClass`3[B,A,C]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ThisClass`3[A,B,C]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ThatClass`3[B,A,C]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ThisClass">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ThatClass">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-274.cs">
-    <type name="Foo">
-      <method name="Foo op_Implicit(Int64)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Int64)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="Bar op_Implicit(Foo)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Foo)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Baz">
-      <method name="Baz op_Explicit(Foo)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Foo)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.Nullable`1[System.Boolean] op_Implicit(S)" attrs="2198">
-        <size>12</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>612</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-275.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="Test+D`2[T,U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="Test+E`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-276.cs">
-    <type name="Tests">
-      <method name="Int32 Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tests+GenericClass`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="T Z(System.Collections.Generic.IList`1[T], Int32)" attrs="150">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-277.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-278.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-279.cs">
-    <type name="Foo">
-      <method name="Void Bar()" attrs="486">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BugReport">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.Collections.Generic.IList`1[T] Bar[T]()" attrs="486">
-        <size>20</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-280.cs">
-    <type name="Test">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>70</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+TestDel">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-281.cs">
-    <type name="List">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tests">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="List">
-      <method name="Void AddRange[T](System.Collections.Generic.ICollection`1[T])" attrs="131">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-282.cs">
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo+Bar">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-283.cs">
-    <type name="Point">
-      <method name="Void .ctor(Int32, Int32)" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="TestPoint">
-      <method name="Void Serialize(IFoo)" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-284.cs">
-    <type name="X">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CollectionTester">
-      <method name="Int32 Test()" attrs="150">
-        <size>628</size>
-      </method>
-    </type>
-    <type name="InterfaceTester">
-      <method name="Int32 Test(System.Type, System.Type[])" attrs="145">
-        <size>518</size>
-      </method>
-      <method name="Int32 Test()" attrs="150">
-        <size>595</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>107</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Int32 Test()" attrs="145">
-        <size>54</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CollectionTester">
-      <method name="Int32 Test[T](System.Collections.Generic.IList`1[T])" attrs="145">
-        <size>95</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-285.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tests">
-      <method name="Void Main()" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-286.cs">
-    <type name="TestAttribute">
-      <method name="Void .ctor(Type)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="C`1[T]">
-      <method name="Void Foo()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>89</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-287.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void D()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-288.cs">
-    <type name="A">
-      <method name="Boolean Test(Int32)" attrs="132">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Test()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+C">
-      <method name="Boolean Foo(Int32)" attrs="134">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-289.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void add_Ev1(D)" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Ev1(D)" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Consts">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>1</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>74</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-290.cs">
-    <type name="GenericEventHandler`2[U,V]">
-      <method name="Void Invoke(U, V)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="GenericEventNotUsedTest`1[T]">
-      <method name="Void add_TestEvent(GenericEventHandler`2[GenericEventNotUsedTest`1[T],T])" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void remove_TestEvent(GenericEventHandler`2[GenericEventNotUsedTest`1[T],T])" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void RaiseTestEvent(T)" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestEntry">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="GenericEventHandler`2[U,V]">
-      <method name="System.IAsyncResult BeginInvoke(U, V, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-291.cs">
-    <type name="Global">
-      <method name="Void Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.String Test2(System.Nullable`1[System.Decimal])" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-292.cs">
-    <type name="Test.Handler`1[TA]">
-      <method name="Void Invoke(TA)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test.A`1[TA]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Handler`1[TA]">
-      <method name="System.IAsyncResult BeginInvoke(TA, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-293.cs">
-    <type name="Test`1[T]">
-      <method name="Void Invalid(T)" attrs="134">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`1[T]">
-      <method name="Void Other(System.Collections.Generic.IEnumerable`1[T])" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-294.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="A Test(A, B)" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>101</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-295.cs">
-    <type name="Test.Cache`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Base">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.MyType`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Foo">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-296.cs">
-    <type name="MyCollection`1[T]">
-      <method name="Void Foo()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-297.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-298.cs">
-    <type name="TestFunc`1[T]">
-      <method name="Void Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void .ctor(TestFunc`1)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="TestClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>29</size>
-      </method>
-    </type>
-    <type name="TestFunc`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestClass">
-      <method name="Void &lt;a&gt;m__0(Int32)" attrs="145">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-299.cs">
-    <type name="N.A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-300.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-301.cs">
-    <type name="Test">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-302.cs">
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>63</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>15</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;System_Collections_Generic_IEnumerable&lt;int&gt;_GetEnumerator&gt;c__Iterator0">
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-303.cs">
-    <type name="test.BaseClass">
-      <method name="System.String get_Hello()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="test.Printer">
-      <method name="Void Print[T](T)" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="test.PrinterImpl">
-      <method name="Void Print[T](T)" attrs="198">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="test.Starter">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-304.cs">
-    <type name="test.BaseClass">
-      <method name="System.String get_Hello()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="test.Printer">
-      <method name="Void Print[T](System.Object)" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="test.PrinterImpl">
-      <method name="Void Print[T](System.Object)" attrs="198">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="test.Starter">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-305.cs">
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>82</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-306.cs">
-    <type name="FuParentClass`1[Trow]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="FuParentClass`1+FuChildClass[Trow]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-307.cs">
-    <type name="Foo`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1+F[T]">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="Int32 g()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>45</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1+F[T]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-308.cs">
-    <type name="Test">
-      <method name="System.Comparison`1[U] WrapComparison[U](System.Comparison`1[U])" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+MyComparison`1[V]">
-      <method name="Int32 Invoke(V, V)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Int32 compare(Int32, Int32)" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Int32 compare(System.String, System.String)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Void test(Int32)" attrs="145">
-        <size>30</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>210</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;WrapComparison&gt;c__AnonStorey0`1[U]">
-      <method name="Int32 &lt;&gt;m__0(U, U)" attrs="131">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;WrapMyComparison&gt;c__AnonStorey1`1[W]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__0(W, W)" attrs="131">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="MyComparison`1 WrapMyComparison[W](MyComparison`1)" attrs="150">
-        <size>34</size>
-      </method>
-    </type>
-    <type name="Test+MyComparison`1[V]">
-      <method name="System.IAsyncResult BeginInvoke(V, V, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-309.cs">
-    <type name="Test`2[A,B]">
-      <method name="Void Foo[V,W](Test`2[A,W], Test`2[V,B])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-310.cs">
-    <type name="MonoBugs.IncompleteGenericInference">
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void DoSomethingGeneric[T1,T2](System.Collections.Generic.IEnumerable`1[T1], System.Collections.Generic.IDictionary`2[T1,T2])" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-312.cs">
-    <type name="CantCastGenericListToArray">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-313.cs">
-    <type name="Foo`1[T]">
-      <method name="Void .ctor(TestEnum)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-314.cs">
-    <type name="test.App">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="test.ThisClass`2[T,O]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="test.OtherClass`2[O,T]">
-      <method name="Void Test(T)" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-315.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+B[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-316.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Base">
-      <method name="Void Method[R]()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Derived">
-      <method name="Void Method[S]()" attrs="198">
-        <size>8</size>
-      </method>
-      <method name="Void Method2[T]()" attrs="134">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-317.cs">
-    <type name="Foo`1[K]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar`1[Q]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar`1+Baz[Q]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-318.cs">
-    <type name="Foo`1[K]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar`1[Q]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar`1+Baz[Q]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Goo`1[Q]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-319.cs">
-    <type name="Temp`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Temp`1+Foo[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Temp`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>76</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Temp`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[Temp`1+Foo[T]] GetEnumerator()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Temp`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
-      <method name="Foo System.Collections.Generic.IEnumerator&lt;Temp&lt;T&gt;.Foo&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-320.cs">
-    <type name="Foo`1[K]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-321.cs">
-    <type name="App">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void Run()" attrs="134">
-        <size>50</size>
-      </method>
-      <method name="Void ADelegate[T](System.String)" attrs="129">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="App+TGenericDelegate`1[T]">
-      <method name="Void Invoke(System.String)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="App">
-      <method name="Void TestMethod[T](System.String, TGenericDelegate`1)" attrs="129">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="App+TGenericDelegate`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-322.cs">
-    <type name="MyBase`2[K,V]">
-      <method name="Void .ctor(Callback)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="MyBase`2+Callback[K,V]">
-      <method name="Void Invoke(K, V)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(Callback)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="MyBase`2+Callback[K,V]">
-      <method name="System.IAsyncResult BeginInvoke(K, V, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-323.cs">
-    <type name="MyBase`2[K,V]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyBase`2+Callback[K,V]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(Callback)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="MyBase`2[K,V]">
-      <method name="Void Hello(Callback)" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Test(Callback)" attrs="134">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-324.cs">
-    <type name="A">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void add_D(A)" attrs="2198">
-        <size>40</size>
-      </method>
-      <method name="Void remove_D(A)" attrs="2198">
-        <size>40</size>
-      </method>
-      <method name="Void C()" attrs="129">
-        <size>37</size>
-      </method>
-      <method name="Void F(Int64)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="B+&lt;C&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+&lt;C&gt;c__AnonStorey1+&lt;C&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>58</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-325.cs">
-    <type name="SomeClass`1[T]">
-      <method name="Void Foo()" attrs="134">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-326.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>59</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-327.cs">
-    <type name="Tester`1[T]">
-      <method name="Void Do()" attrs="134">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Reference">
-      <method name="Void Test()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Value">
-      <method name="Void Test()" attrs="486">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-328.cs">
-    <type name="App">
-      <method name="Void Main()" attrs="150">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="App+MyClass">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="App">
-      <method name="Void TestMethod(System.String, System.Collections.Generic.List`1[System.String], MyClass[])" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-329.cs">
-    <type name="NullableInt">
-      <method name="Int32 Main()" attrs="150">
-        <size>104</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-330.cs">
-    <type name="BaseCollection`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="BaseIntList`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="IntList">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>65</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BaseCollection`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
-        <size>25</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>25</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-331.cs">
-    <type name="Foo`1[T]">
-      <method name="Void Map[S](S)" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void Test(T)" attrs="452">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-332.cs">
-    <type name="C`1[T]">
-      <method name="System.Type Test()" attrs="134">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>78</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-333.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-334.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>179</size>
-      </method>
-      <method name="Void DelegateMethod(Boolean)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 DelegateMethod(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+DelegateA">
-      <method name="Void Invoke(Boolean)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test+DelegateB">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test+DelegateA">
-      <method name="System.IAsyncResult BeginInvoke(Boolean, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test+DelegateB">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-335.cs">
-    <type name="TestClass">
-      <method name="Boolean Test_1()" attrs="150">
-        <size>56</size>
-      </method>
-      <method name="Boolean Test_2()" attrs="150">
-        <size>66</size>
-      </method>
-      <method name="Boolean Test_3()" attrs="150">
-        <size>59</size>
-      </method>
-      <method name="Boolean Test_4()" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Boolean Test_5()" attrs="150">
-        <size>81</size>
-      </method>
-      <method name="Int32 Test_6()" attrs="145">
-        <size>71</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>123</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-336.cs">
-    <type name="TestAttribute">
-      <method name="System.Object get_Type()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Type(System.Object)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Type)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="N.C`1[T]">
-      <method name="Void Bar()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Bar2()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Bar3()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Bar4()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.CC">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-337.cs">
-    <type name="X">
-      <method name="Void SetValue[T](System.Object, T)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-338.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FooList`1[T]">
-      <method name="Int32 IndexOf(T)" attrs="486">
-        <size>7</size>
-      </method>
-      <method name="Void Insert(Int32, T)" attrs="486">
-        <size>7</size>
-      </method>
-      <method name="Void RemoveAt(Int32)" attrs="486">
-        <size>7</size>
-      </method>
-      <method name="T get_Item(Int32)" attrs="2534">
-        <size>7</size>
-      </method>
-      <method name="Void set_Item(Int32, T)" attrs="2534">
-        <size>7</size>
-      </method>
-      <method name="Void Add(T)" attrs="486">
-        <size>7</size>
-      </method>
-      <method name="Void Clear()" attrs="486">
-        <size>7</size>
-      </method>
-      <method name="Boolean Contains(T)" attrs="486">
-        <size>7</size>
-      </method>
-      <method name="Void CopyTo(T[], Int32)" attrs="486">
-        <size>7</size>
-      </method>
-      <method name="Boolean Remove(T)" attrs="486">
-        <size>7</size>
-      </method>
-      <method name="Int32 get_Count()" attrs="2534">
-        <size>7</size>
-      </method>
-      <method name="Boolean get_IsReadOnly()" attrs="2534">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Foo[T](System.Collections.Generic.IList`1[T])" attrs="145">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="FooList`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="486">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-339.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="SerializerLazyDictionary">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="LazyDictionary">
-      <method name="Void System.Collections.Generic.IDictionary&lt;string,object&gt;.Add(System.String, System.Object)" attrs="481">
-        <size>7</size>
-      </method>
-      <method name="Boolean System.Collections.Generic.IDictionary&lt;string,object&gt;.ContainsKey(System.String)" attrs="481">
-        <size>7</size>
-      </method>
-      <method name="Boolean System.Collections.Generic.IDictionary&lt;string,object&gt;.Remove(System.String)" attrs="481">
-        <size>7</size>
-      </method>
-      <method name="Boolean System.Collections.Generic.IDictionary&lt;string,object&gt;.TryGetValue(System.String, System.Object ByRef)" attrs="481">
-        <size>7</size>
-      </method>
-      <method name="System.Object System.Collections.Generic.IDictionary&lt;string,object&gt;.get_Item(System.String)" attrs="2529">
-        <size>7</size>
-      </method>
-      <method name="Void System.Collections.Generic.IDictionary&lt;string,object&gt;.set_Item(System.String, System.Object)" attrs="2529">
-        <size>7</size>
-      </method>
-      <method name="Void System.Collections.Generic.ICollection&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.Clear()" attrs="481">
-        <size>7</size>
-      </method>
-      <method name="Void System.Collections.Generic.ICollection&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.CopyTo(System.Collections.Generic.KeyValuePair`2[System.String,System.Object][], Int32)" attrs="481">
-        <size>7</size>
-      </method>
-      <method name="Int32 System.Collections.Generic.ICollection&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.get_Count()" attrs="2529">
-        <size>7</size>
-      </method>
-      <method name="Boolean System.Collections.Generic.ICollection&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.get_IsReadOnly()" attrs="2529">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void SerializeDictionary(System.Collections.Generic.IDictionary`2[System.String,System.Object])" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="SerializerLazyDictionary">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]] GetEnumerator()" attrs="196">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="LazyDictionary">
-      <method name="System.Collections.Generic.ICollection`1[System.String] System.Collections.Generic.IDictionary&lt;string,object&gt;.get_Keys()" attrs="2529">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.ICollection`1[System.Object] System.Collections.Generic.IDictionary&lt;string,object&gt;.get_Values()" attrs="2529">
-        <size>7</size>
-      </method>
-      <method name="Void System.Collections.Generic.ICollection&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.Add(System.Collections.Generic.KeyValuePair`2[System.String,System.Object])" attrs="481">
-        <size>7</size>
-      </method>
-      <method name="Boolean System.Collections.Generic.ICollection&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.Contains(System.Collections.Generic.KeyValuePair`2[System.String,System.Object])" attrs="481">
-        <size>7</size>
-      </method>
-      <method name="Boolean System.Collections.Generic.ICollection&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.Remove(System.Collections.Generic.KeyValuePair`2[System.String,System.Object])" attrs="481">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]] System.Collections.Generic.IEnumerable&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.GetEnumerator()" attrs="481">
-        <size>15</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]] GetEnumerator()" attrs="1476">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void SerializeDictionary(System.Collections.IDictionary)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="LazyDictionary">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-340.cs">
-    <type name="Tests">
-      <method name="T[] FindAll[T](T[], System.Predicate`1[T])" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Boolean ProtectedOnly(System.Reflection.MemberInfo)" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="System.Reflection.MemberInfo[] foo()" attrs="134">
-        <size>52</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-341.cs">
-    <type name="C">
-      <method name="Int32 GetLength()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tests">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-342.cs">
-    <type name="Base`1[T]">
-      <method name="T op_Implicit(Base`1[T])" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestMain">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-343.cs">
-    <type name="Implementer">
-      <method name="Void Combine[TOImplementer]()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-344.cs">
-    <type name="ConfigurationElement">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="CustomConfigurationElement">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CustomConfigurationElementCollection">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BaseCollection`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-345.cs">
-    <type name="ShiftReduceParser`2[TokenValueType,TokenLocationType]">
-      <method name="Void Dump(System.String)" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Parser">
-      <method name="Void NoCall[T](T)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-346.cs">
-    <type name="test">
-      <method name="Void CreateSimpleCallSite(Int32)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void CreateSimpleCallSite[A]()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void CreateSimpleCallSite[A](Int32)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-347.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[T] Enumerable[T](System.String)" attrs="134">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.IEnumerable Enumerable(Int32)" attrs="134">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.IEnumerable Enumerable(System.String)" attrs="134">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-348.cs">
-    <type name="Bar`1[U]">
-      <method name="Void OnWorldDestroyed()" attrs="131">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Baz`1[U]">
-      <method name="Void DestroyWorld(U)" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bling">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-349.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>121</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+Function`3[T1,T2,R]">
-      <method name="R Invoke(T1, T2)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 f2(System.Collections.IList, System.Collections.IList)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 f2(System.Collections.IList, System.Object)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="X+Function`3[T1,T2,R]">
-      <method name="System.IAsyncResult BeginInvoke(T1, T2, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="R EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-350.cs">
-    <type name="Foo`1[T]">
-      <method name="Boolean Equals(T)" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-351.cs">
-    <type name="TestThing">
-      <method name="Int32 SetEnum(System.String, System.Enum)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 SetEnum(Int32, System.Enum)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-352.cs">
-    <type name="D">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>12</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>125</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-353.cs">
-    <type name="A`3[D1,D2,D3]">
-      <method name="Void Foo[T]()" attrs="454">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B`1[DD2]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Foo[T]()" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-354.cs">
-    <type name="M">
-      <method name="System.String IA&lt;string&gt;.Method(Int32)" attrs="481">
-        <size>7</size>
-      </method>
-      <method name="Void IB.Method(Int32)" attrs="481">
-        <size>7</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void IC.Method(Int32[])" attrs="481">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-355.cs">
-    <type name="A">
-      <method name="Boolean Foo(System.String)" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="System.String Foo[T](System.String)" attrs="454">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Boolean Goo(System.String)" attrs="134">
-        <size>16</size>
-      </method>
-      <method name="Boolean Foo(System.String)" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="System.String Foo[T](System.String)" attrs="198">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-356.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B`1[U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+E">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1[T]">
-      <method name="Void Foo(E)" attrs="129">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-357.cs">
-    <type name="C`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D`1[U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-358.cs">
-    <type name="Foo">
-      <method name="Boolean op_Equality(Foo, Foo)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Boolean op_Inequality(Foo, Foo)" attrs="2198">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>122</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S2">
-      <method name="Boolean op_Equality(S2, System.Nullable`1[S2])" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Boolean op_Inequality(S2, System.Nullable`1[S2])" attrs="2198">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S3">
-      <method name="System.Decimal op_Inequality(S3, System.Object)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="System.Decimal op_Equality(S3, System.Object)" attrs="2198">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-359.cs">
-    <type name="BaseGeneric`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BaseGeneric`1+InnerDerived[T]">
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="BaseGeneric`1+GenericInnerDerived`1[T,U]">
-      <method name="Void .ctor(T, U)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="BaseConcrete">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Concrete_A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Concrete_B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BaseGeneric_2`2[T,U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BaseGeneric_2`2+InnerDerived[T,U]">
-      <method name="Void .ctor(T, U)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="BaseGeneric_1`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Concrete_2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-360.cs">
-    <type name="C">
-      <method name="Int32 Foo[T](T, System.Object[])" attrs="147">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo(System.String, System.Object[])" attrs="147">
-        <size>10</size>
-      </method>
-      <method name="Int32 InvokeMethod(System.String, System.Object[])" attrs="147">
-        <size>16</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-361.cs">
-    <type name="Thing">
-      <method name="Void Foo()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>189</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Thing+Handler">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Thing">
-      <method name="Void Method(Handler, System.String[])" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Thing+Handler">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Thing">
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__1()" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-362.cs">
-    <type name="C">
-      <method name="Void Assert[T](T)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Assert[T](T, T)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>91</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-363.cs">
-    <type name="Test">
-      <method name="Void InsertAt[T](T[], Int32, T[])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-364.cs">
-    <type name="BugReport.Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>380</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BugReport.A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Nullable`1[System.Int32] get_Counter()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Counter(System.Nullable`1[System.Int32])" attrs="2182">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-365.cs">
-    <type name="B.Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>69</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-366.cs">
-    <type name="MyType">
-      <method name="Int32 op_Implicit(MyType)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Void Assert[T](T, T)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-367.cs">
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Repro">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Bar[TFoo](TFoo)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Void Baz[T](T, System.Action`1[T])" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Void Gazonk(Repro)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-368.cs">
-    <type name="C`1[T]">
-      <method name="Void .ctor(D)" attrs="6273">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C`1+D[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-369.cs">
-    <type name="Db4objects.Db4o.Internal.ObjectContainerBase">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Db4objects.Db4o.Internal.ExternalObjectContainer">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Db4objects.Db4o.Internal.M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Db4objects.Db4o.Internal.ObjectContainerBase">
-      <method name="System.Collections.Generic.IList`1[Extent] Query[Extent](System.Collections.Generic.IList`1[Extent], System.Collections.Generic.IList`1[Extent])" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="System.Collections.IList Query()" attrs="486">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-370.cs">
-    <type name="N2.X`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N2.X`1+A`1[T,T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N2.X`1+A`1+B`1[T,T,T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N2.X`1+A`1+B`1+C`1[T,T,T,T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N2.C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-371.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>87</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-372.cs">
-    <type name="TestClass`1[T]">
-      <method name="Boolean Check(T, T)" attrs="134">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestClass2`1[T]">
-      <method name="Boolean Check(T, T)" attrs="134">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-373.cs">
-    <type name="MonoBug.MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoBug.GenericType`1[T]">
-      <method name="T op_Implicit(MonoBug.GenericType`1[T])" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-374.cs">
-    <type name="Z">
-      <method name="Z IGenericInterface&lt;Z&gt;.Start()" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="Void Stop()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`3[Y,Y2,W]">
-      <method name="Void SomeOperation(W)" attrs="134">
-        <size>29</size>
-      </method>
-      <method name="Void SomeOtherOperation(Y)" attrs="134">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Int32 Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-375.cs">
-    <type name="X">
-      <method name="Boolean Compute(Int32)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Boolean Compute2(Int32)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>46</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-376.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S`1[T]">
-      <method name="System.Object Box(System.Nullable`1[T])" attrs="145">
-        <size>43</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-377.cs">
-    <type name="D">
-      <method name="Void Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>26</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-378.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>76</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Object Foo(System.Nullable`1[System.Int32])" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="System.Object FooG[T](System.Nullable`1[T])" attrs="145">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-379.cs">
-    <type name="S">
-      <method name="Boolean op_Equality(S, S)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_Inequality(S, S)" attrs="2198">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 Print(System.Nullable`1[S])" attrs="145">
-        <size>29</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-380.cs">
-    <type name="GTest`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>213</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-382.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>69</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-383.cs">
-    <type name="MyTypeA">
-      <method name="MyTypeA op_Addition(MyTypeA, MyTypeA)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Boolean op_Equality(MyTypeA, MyTypeA)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_Inequality(MyTypeA, MyTypeA)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Boolean op_GreaterThan(MyTypeA, MyTypeA)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Boolean op_LessThan(MyTypeA, MyTypeA)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor(Int16)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="MyTypeB">
-      <method name="MyTypeB op_Addition(MyTypeB, MyTypeB)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_Equality(MyTypeB, MyTypeB)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_Inequality(MyTypeB, MyTypeB)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_GreaterThan(MyTypeB, MyTypeB)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_LessThan(MyTypeB, MyTypeB)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="MyTypeB op_BitwiseAnd(MyTypeB, MyTypeB)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor(Int16)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>298</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-384.cs">
-    <type name="N.TestG">
-      <method name="Void Foo[T]()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="NonGeneric">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Generic`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="m">
-      <method name="NonGeneric compiles_fine(NonGeneric, NonGeneric ByRef)" attrs="134">
-        <size>21</size>
-      </method>
-      <method name="Generic`1[System.Int32] does_not_compile(Generic`1[System.Int32], Generic`1[System.Int32] ByRef)" attrs="134">
-        <size>21</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-385.cs">
-    <type name="DocAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Func`2[TArg,TRet]">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>84</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Func`2[TArg,TRet]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-386.cs">
-    <type name="MyType">
-      <method name="MyType op_UnaryNegation(MyType)" attrs="2198">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>227</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-387.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>190</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-388.cs">
-    <type name="Data">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void f(Data)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-389.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>253</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-390.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-391.cs">
-    <type name="C">
-      <method name="Boolean Test_1()" attrs="129">
-        <size>44</size>
-      </method>
-      <method name="Void Test(System.Object, System.EventArgs)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>208</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-392.cs">
-    <type name="DieSubrangeType">
-      <method name="Void .ctor()" attrs="6278">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>71</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="DieSubrangeType">
-      <method name="System.Nullable`1[System.Int32] get_UpperBound()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_UpperBound(System.Nullable`1[System.Int32])" attrs="2177">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-393.cs">
-    <type name="B`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Int32 Main()" attrs="150">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor(Type)" attrs="6278">
-        <size>35</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-394.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+MemberFilter">
-      <method name="Boolean Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void FindMembers(MemberFilter)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void GetMethodGroup(MemberFilter)" attrs="150">
-        <size>44</size>
-      </method>
-    </type>
-    <type name="Test+MemberFilter">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Boolean EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Boolean &lt;GetMethodGroup&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-395.cs">
-    <type name="RuleBuilder`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="RubyMethod">
-      <method name="RuleBuilder`1[T] IDynamicObject.GetRule[T]()" attrs="481">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-396.cs">
-    <type name="Test">
-      <method name="Void Invoke[A,TR](System.Func`2[A,System.Func`1[TR]], A, TR)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="System.Func`1[System.Int32] Method(System.String)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-397.cs">
-    <type name="Foo">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Foo NegateFoo(Foo)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>168</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Foo op_UnaryNegation(System.Nullable`1[Foo])" attrs="2198">
-        <size>55</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="System.Nullable`1[Bar] op_UnaryNegation(System.Nullable`1[Bar])" attrs="2198">
-        <size>54</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Foo NegateFooNullable(System.Nullable`1[Foo])" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="System.Nullable`1[Bar] NegateBarNullable(System.Nullable`1[Bar])" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="System.Nullable`1[Bar] NegateBar(Bar)" attrs="145">
-        <size>20</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-398.cs">
-    <type name="ToStr">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="GenericClass`1[T]">
-      <method name="Void Method()" attrs="134">
-        <size>43</size>
-      </method>
-      <method name="Void Test(T)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ToStr">
-      <method name="System.String Invoke(System.String, System.IFormatProvider)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(System.String, System.IFormatProvider, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-399.cs">
-    <type name="TestIssue.Base">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestIssue.Derived">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestIssue.Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-400.cs">
-    <type name="Gen`1[T]">
-      <method name="Boolean Foo(T)" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Boolean Foo[T]()" attrs="145">
-        <size>25</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>94</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-401.cs">
-    <type name="ParserTest">
-      <method name="Void Main()" attrs="150">
-        <size>168</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-402.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-403.cs">
-    <type name="S`1[T]">
-      <method name="Void Foo()" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Void Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-404.cs">
-    <type name="Test.Program">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Test.Class1`1[T1]">
-      <method name="Void add_doSomething(System.EventHandler)" attrs="2180">
-        <size>42</size>
-      </method>
-      <method name="Void remove_doSomething(System.EventHandler)" attrs="2180">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Class2`1[T]">
-      <method name="Void add_DoSomething(System.EventHandler)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void remove_DoSomething(System.EventHandler)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-405.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-406.cs">
-    <type name="Test`1[T]">
-      <method name="Void Foo[TOutput](System.Func`2[T,TOutput])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`2[A,B]">
-      <method name="Void .ctor(IEnumerable`1)" attrs="6278">
-        <size>47</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`2[A,B]">
-      <method name="B &lt;C&gt;m__0(B)" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-407.cs">
-    <type name="MyColor">
-      <method name="Boolean op_Equality(MyColor, MyColor)" attrs="2198">
-        <size>25</size>
-      </method>
-      <method name="Boolean op_Inequality(MyColor, MyColor)" attrs="2198">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="NullableColorTests">
-      <method name="Int32 Main()" attrs="150">
-        <size>120</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-408.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>110</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-409.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ConditionalParsing">
-      <method name="Void Test_1(Boolean)" attrs="129">
-        <size>21</size>
-      </method>
-      <method name="Void Test_2()" attrs="129">
-        <size>32</size>
-      </method>
-      <method name="Void Test_4(Boolean, Boolean)" attrs="129">
-        <size>40</size>
-      </method>
-      <method name="Void Test_6(Boolean)" attrs="129">
-        <size>48</size>
-      </method>
-      <method name="Void Test_7(System.Object)" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void Test_9()" attrs="129">
-        <size>44</size>
-      </method>
-      <method name="Void Test_10()" attrs="129">
-        <size>22</size>
-      </method>
-      <method name="Void Test_11()" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ConditionalParsing+T">
-      <method name="Void .ctor(String, Boolean)" attrs="6278">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor(String, Boolean, Int32, Int32, Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="ConditionalParsing+Const">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ConditionalParsing">
-      <method name="Int32 Test_12(Boolean)" attrs="145">
-        <size>55</size>
-      </method>
-      <method name="Int32 Foo(System.Func`1[System.Int32])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void Test_13(System.Object)" attrs="129">
-        <size>53</size>
-      </method>
-      <method name="System.Action`1[System.Int32] Test_15(System.Action`1[System.Int32])" attrs="129">
-        <size>46</size>
-      </method>
-      <method name="Void Helper[T](T)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="System.Nullable`1[T] Test_3[T](System.Func`3[T,T,T], T)" attrs="129">
-        <size>22</size>
-      </method>
-      <method name="System.Nullable`1[System.Int32] Test_14()" attrs="129">
-        <size>68</size>
-      </method>
-      <method name="Void Test_5(Boolean, System.IDisposable)" attrs="129">
-        <size>46</size>
-      </method>
-      <method name="Void Test_8(System.DateTime)" attrs="129">
-        <size>39</size>
-      </method>
-      <method name="Void Test_16()" attrs="129">
-        <size>20</size>
-      </method>
-      <method name="Boolean Test(System.Object, Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void Test_17()" attrs="129">
-        <size>52</size>
-      </method>
-    </type>
-    <type name="ConditionalParsing+MyTestStruct">
-      <method name="Void Dispose()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="MyTestStruct op_Implicit(Int32)" attrs="2198">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="ConditionalParsing">
-      <method name="Void Test_18(Boolean, System.Action)" attrs="129">
-        <size>44</size>
-      </method>
-      <method name="Int32 &lt;Test_12&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void &lt;Test_18&gt;m__1()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test_19(Int32[,])" attrs="129">
-        <size>11</size>
-      </method>
-      <method name="Void Test_20()" attrs="129">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-410.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-411.cs">
-    <type name="Maybe">
-      <method name="Maybe`1[T] C[T](T)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Maybe`1[T]">
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Extensions">
-      <method name="R Match[T,R](T, System.Func`2[T,Maybe`1[R]][])" attrs="150">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>132</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Maybe`1[System.String] &lt;Main&gt;m__0(System.String)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="Maybe`1[System.String] &lt;Main&gt;m__1(System.String)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="Maybe`1[System.String] &lt;Main&gt;m__2(System.String)" attrs="145">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-412.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>261</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-413.cs">
-    <type name="S">
-      <method name="Int64 op_Addition(S, Int64)" attrs="2198">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>103</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-414.cs">
-    <type name="MonoTest.MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoTest.TestImpl">
-      <method name="Void MonoTest.ITest.Get[T](System.Object)" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void Get[T]()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Get[T](System.Object)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoTest.C">
-      <method name="Void MonoTest.IG&lt;int&gt;.M()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void MonoTest.IG&lt;string&gt;.M()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-415.cs">
-    <type name="Foo">
-      <method name="Int32 Main()" attrs="150">
-        <size>50</size>
-      </method>
-      <method name="Boolean Bar[T](T)" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-416.cs">
-    <type name="Z">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`2[X,Y]">
-      <method name="X Foo(Y)" attrs="134">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Int32 Main()" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-417.cs">
-    <type name="Indirect">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Base">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestCase">
-      <method name="Int32 Main()" attrs="150">
-        <size>141</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Base">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>20</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-418.cs">
-    <type name="N.Nested">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.Nested+C">
-      <method name="Int32 N.Nested.I&lt;int&gt;.get_P()" attrs="2529">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.M">
-      <method name="Int32 Main()" attrs="150">
-        <size>189</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-419.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>64</size>
-      </method>
-      <method name="System.Object Test(System.String)" attrs="145">
-        <size>50</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-420.cs">
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestClass">
-      <method name="Int32 Test(System.Object, System.Object, System.Object[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test(System.Object, System.Object[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-421.cs">
-    <type name="OneOff">
-      <method name="Int32 Main()" attrs="150">
-        <size>58</size>
-      </method>
-      <method name="T[] Clone[T](T[])" attrs="145">
-        <size>190</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-422.cs">
-    <type name="A">
-      <method name="Boolean op_GreaterThan(A, System.Object)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_LessThan(A, System.Object)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>31</size>
-      </method>
-      <method name="Boolean Test()" attrs="129">
-        <size>59</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Nullable`1[System.Int32] get_Id()" attrs="2177">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-423.cs">
-    <type name="MonoTest.A`1[TA]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoTest.A`1+B`1[TA,TB]">
-      <method name="Void foo()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoTest.A`1+B`1+C[TA,TB]">
-      <method name="Void bar()" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoTest.Program">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-424.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Block(A[])" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Block(System.Collections.Generic.IEnumerable`1[B], A[])" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-425.cs">
-    <type name="EventClass`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="EventClass`1+HookDelegate[T]">
-      <method name="Void Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="EventClass`1+HookDelegate[T]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-426.cs">
-    <type name="OverloadTest.MyClass`1[T]">
-      <method name="Boolean Method(System.Action`1[T])" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="OverloadTest.C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="OverloadTest.MyClass`1[T]">
-      <method name="Boolean Method(OverloadTest.MyInterface`1[T])" attrs="134">
-        <size>28</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-427.cs">
-    <type name="EventHandler">
-      <method name="Void Invoke(System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="EventHandler`1[T]">
-      <method name="Void Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Void Test()" attrs="129">
-        <size>20</size>
-      </method>
-      <method name="Void Attach(EventHandler)" attrs="129">
-        <size>3</size>
-      </method>
-      <method name="Void Attach(EventHandler`1[System.String])" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void OnClick(System.String)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="EventHandler">
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="EventHandler`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-428.cs">
-    <type name="CInt">
-      <method name="CInt op_Implicit(Int32)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Int32 op_Implicit(CInt)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Klass">
-      <method name="Void .ctor(Nullable`1)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>203</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Klass">
-      <method name="System.Nullable`1[CInt] get_Value()" attrs="2182">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-429.cs">
-    <type name="CInt">
-      <method name="CInt op_Implicit(Int32)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Int32 op_Implicit(CInt)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Klass">
-      <method name="Void .ctor(Nullable`1)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-430.cs">
-    <type name="Tmp">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Driver">
-      <method name="Int32 Main()" attrs="150">
-        <size>50</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Nullable`1[System.Int32] get_Prop()" attrs="2182">
-        <size>50</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-431.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-432.cs">
-    <type name="Test.Bar`2[T,U]">
-      <method name="Void DoSomething[V]()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Baz">
-      <method name="Void GetInTroubleHere()" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-433.cs">
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-434.cs">
-    <type name="testcase.Init">
-      <method name="Void testcase.IInitializationExpression.AddRegistry[T](Int32)" attrs="993">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="testcase.Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>88</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-435.cs">
-    <type name="testcase.Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>405</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-436.cs">
-    <type name="SomeClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-438.cs">
-    <type name="Tests">
-      <method name="ServiceType GetService[ServiceType](System.Object[])" attrs="454">
-        <size>25</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-439.cs">
-    <type name="MonoBug.Stuff">
-      <method name="MonoBug.GenericStuff`2[T1,T2] CreateThing[T1,T2](T1, T2)" attrs="150">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="MonoBug.GenericStuff`2[T1,T2]">
-      <method name="Void .ctor(T1, T2)" attrs="6278">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="MonoBug.Program">
-      <method name="Void Main()" attrs="150">
-        <size>36</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-440.cs">
-    <type name="AnyObjectId">
-      <method name="Int32 get_W1()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_W1(Int32)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ObjectId">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6273">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-441.cs">
-    <type name="Name.Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Name.Subclass">
-      <method name="System.Collections.Generic.List`1[System.Int32] get_List()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-442.cs">
-    <type name="NonGenericBase">
-      <method name="Int32 get_Item(Int32)" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="GenericBase`1[T]">
-      <method name="T get_Instance()" attrs="2177">
-        <size>15</size>
-      </method>
-      <method name="Void Foo()" attrs="134">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="EntryPoint">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-443.cs">
-    <type name="C">
-      <method name="Void M[T]()" attrs="145">
-        <size>27</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-444.cs">
-    <type name="MyClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>147</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-445.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Foo[T](T ByRef)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Foo[T](T[])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Foo[T](T[,])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Foo[T](T[,,])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Bar(Int32 ByRef)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Bar(Int32[])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Bar(Int32[,])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Bar(Int32[,,])" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-446.cs">
-    <type name="BugTest.Bug`1[T]">
-      <method name="Void CreateObject(T ByRef)" attrs="134">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BugTest.Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>24</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-447.cs">
-    <type name="B">
-      <method name="Int32 Main()" attrs="150">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-448.cs">
-    <type name="Impl`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1[K]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="Test`1[TT]">
-      <method name="Void Foo()" attrs="134">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Impl`1[T]">
-      <method name="Void Foo[U](System.Collections.Generic.IEnumerable`1[U])" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-449.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>82</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-450.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>82</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-451.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-452.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>64</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="Single op_Implicit(S)" attrs="2198">
-        <size>12</size>
-      </method>
-      <method name="System.Nullable`1[System.Single] op_Implicit(S)" attrs="2198">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-453.cs">
-    <type name="Test.CompilerTest">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Int32 DoSomething[T](System.String, T, T ByRef)" attrs="148">
-        <size>81</size>
-      </method>
-      <method name="Void ThisDoesNotWork()" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void ThisWorksFine()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-454.cs">
-    <type name="TestNS.TestCase">
-      <method name="Int32 Compare[T](T[], T[])" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void DoSomething[T](System.Func`3[T,T,System.Int32])" attrs="150">
-        <size>31</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-455.cs">
-    <type name="ConsoleApplication1.Program">
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ConsoleApplication1.Inner`1[T]">
-      <method name="Void Compare(System.Object, T)" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-456.cs">
-    <type name="G`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="G`1+S[T]">
-      <method name="System.String Test()" attrs="134">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>49</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-457.cs">
-    <type name="Program">
-      <method name="Void Foo[T]()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-458.cs">
-    <type name="MyList`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyList`1+Helper`2[T,U,V]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyList`1[T]">
-      <method name="Helper`2 GetHelper[U,V]()" attrs="134">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-459.cs">
-    <type name="GenericTest.OuterGeneric`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="GenericTest.OuterGeneric`1+InnerGeneric`1[T,U]">
-      <method name="System.String GetTypeNames()" attrs="150">
-        <size>49</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="GenericTest.Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-460.cs">
-    <type name="Foo`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1+Bar`1[T,V]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FooImpl">
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FooImpl+BarImpl">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-461.cs">
-    <type name="Test.BaseContext">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.MyDataContext">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Entity`1[T]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Person">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.TheBox`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Program">
-      <method name="Void Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.TheBox`1[T]">
-      <method name="U GetById[U](System.Guid)" attrs="134">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-462.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>97</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+Tester`1[T]">
-      <method name="T Get(System.Object)" attrs="134">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-463.cs">
-    <type name="STuple`1[Ta]">
-      <method name="Void .ctor(Ta)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-464.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-465.cs">
-    <type name="DerivedClass">
-      <method name="Void GenericMethod_1[T]()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void GenericMethod_2[T]()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void GenericMethod_3[T]()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-466.cs">
-    <type name="Program">
-      <method name="Boolean Test[T](T)" attrs="129">
-        <size>18</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>58</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-467.cs">
-    <type name="S">
-      <method name="Int32 Main()" attrs="150">
-        <size>89</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="A op_Implicit(S)" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-468.cs">
-    <type name="TS">
-      <method name="Int32 Main()" attrs="150">
-        <size>56</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Nullable`1[System.Int32] get_v()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="System.Nullable`1[System.Int32] op_Implicit(TS)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="TS op_Implicit(System.Nullable`1[System.Int32])" attrs="2198">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-469.cs">
-    <type name="Foo`2[T1,T2]">
-      <method name="Void .ctor(T2)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-470.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-471.cs">
-    <type name="Q">
-      <method name="Void bar[T](T ByRef)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-472.cs">
-    <type name="C`1[T]">
-      <method name="Boolean CopyUnsafe(T[], Int64)" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Void CopyUnsafe(T[])" attrs="454">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1[T]">
-      <method name="Void CopyUnsafe(T[], Int64[])" attrs="454">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-473.cs">
-    <type name="A`1[X]">
-      <method name="Void Foo[T]()" attrs="454">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Foo[T]()" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-474.cs">
-    <type name="A`1[X]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-475.cs">
-    <type name="Value`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`2[T,U]">
-      <method name="Value`1[T] get_Value()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`2+B[T,U]">
-      <method name="Void .ctor(Value`1)" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-476.cs">
-    <type name="Test`1[T]">
-      <method name="IFoo Second()" attrs="134">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`1[T]">
-      <method name="B First()" attrs="134">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-477.cs">
-    <type name="B`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B`1+BNested[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AA`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AA`1+ANested[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-478.cs">
-    <type name="M">
-      <method name="Void Foo()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void GenFoo()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-479.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Test[T](I`1[T])" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-480.cs">
-    <type name="C">
-      <method name="Void Foo()" attrs="129">
-        <size>59</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-481.cs">
-    <type name="TestClass`1[T]">
-      <method name="Void Add(T[][] ByRef)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-482.cs">
-    <type name="TestBug.BugClass`1[T]">
-      <method name="Void add_Evt(System.EventHandler)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void remove_Evt(System.EventHandler)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void Bug()" attrs="134">
-        <size>37</size>
-      </method>
-      <method name="Void Handler(System.Object, System.EventArgs)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestBug.MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-483.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>109</size>
-      </method>
-      <method name="Void ReplaceContentsWith[T](T, T)" attrs="145">
-        <size>97</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Int32Collection">
-      <method name="Int32 get_Count()" attrs="2182">
-        <size>20</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>21</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32)" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void Add(Int32)" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void Clear()" attrs="134">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>25</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-484.cs">
-    <type name="MainClass">
-      <method name="Void Foo(System.Action`1[MainClass][][])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="System.Action`1[MainClass][] Set(System.Action`1[MainClass][])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void Bar(MainClass)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>169</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-485.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-486.cs">
-    <type name="MyCollection`1[T]">
-      <method name="Int32 get_Count()" attrs="2534">
-        <size>10</size>
-      </method>
-      <method name="Boolean get_IsReadOnly()" attrs="2534">
-        <size>10</size>
-      </method>
-      <method name="Void Add(T)" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void Clear()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Boolean Contains(T)" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void CopyTo(T[], Int32)" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Boolean Remove(T)" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="P">
-      <method name="MyCollection`1[System.String] get_IgnoreTokens()" attrs="2198">
-        <size>44</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="MyCollection`1[T]">
-      <method name="Void AddRange(IMyCollection`1[T])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void AddRange(System.Collections.Generic.IEnumerable`1[T])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-487.cs">
-    <type name="Limada.MonoTests.Generics.MultiDictionary`3[K,V,TDictionary]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Limada.MonoTests.Generics.Test">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-488.cs">
-    <type name="Ref">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Def">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FooProcessor`1[T]">
-      <method name="Void Attach(T, Def)" attrs="134">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-489.cs">
-    <type name="sample">
-      <method name="TValue Value[TKey,TValue]()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="sample+nested`1[T]">
-      <method name="TValue Value[TKey,TValue]()" attrs="230">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-490.cs">
-    <type name="Foo">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[Foo] System.Collections.Generic.IEnumerable&lt;Foo&gt;.GetEnumerator()" attrs="481">
-        <size>25</size>
-      </method>
-      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="486">
-        <size>25</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-491.cs">
-    <type name="ArrayEqualityComparer`1[T]">
-      <method name="Boolean Equals(T[], T[])" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Int32 GetHashCode(T[])" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-492.cs">
-    <type name="B`1[T]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+C[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-493.cs">
-    <type name="MonoGenericIteratorTest.MyType">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoGenericIteratorTest.MyCollectionBase`1[T]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoGenericIteratorTest.MyCollection">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoGenericIteratorTest.MainClass">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>81</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoGenericIteratorTest.MyCollectionBase`1[T]">
-      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="454">
-        <size>25</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-494.cs">
-    <type name="Grid`1[CT]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Grid`1+GPD[CT]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="Grid`1+GPD+GC[CT]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="H">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="H+MyCT">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TheTest">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-495.cs">
-    <type name="Repro">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Repro+Outer">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Repro+Outer+Inner`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-496.cs">
-    <type name="Base">
-      <method name="T EndExecute[T](System.Object, System.String)" attrs="147">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Derived">
-      <method name="Derived EndExecute[TElement](System.Object)" attrs="147">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="a">
-      <method name="Int32 Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-497.cs">
-    <type name="Item">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ItemCollection`1[T]">
-      <method name="Void Bind[U](ItemCollection`1[U])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="a">
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-498.cs">
-    <type name="A">
-      <method name="Int32 Main()" attrs="150">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-499.cs">
-    <type name="C">
-      <method name="Int32 Test[T](T[])" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Int32 TestExtra[T](T[,])" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>118</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-500.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>101</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-501.cs">
-    <type name="UndoableDictionary`2[TKey,TValue]">
-      <method name="Void TestFunc()" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="UpdateableCollection`1[T]">
-      <method name="Void AddReferences()" attrs="131">
-        <size>2</size>
-      </method>
-      <method name="Void TestFunc()" attrs="454">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="UpdateableCollection`1+X[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-502.cs">
-    <type name="C`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>31</size>
-      </method>
-    </type>
-    <type name="C`1+Foo`1[T,U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1+Simple[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+N`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Int32 Main()" attrs="150">
-        <size>90</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D`1[U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-503.cs">
-    <type name="TestAttribute">
-      <method name="Void .ctor(Type)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1+N`1[T,U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Int32 Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-504.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-505.cs">
-    <type name="C">
-      <method name="Int32 Test(System.Collections.Generic.List`1[System.Int32])" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Int32 Test(System.String)" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Int32 Test(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>125</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="R Method[T,R](System.Collections.Generic.IEnumerable`1[T], System.Func`2[T,R])" attrs="145">
-        <size>24</size>
-      </method>
-      <method name="R Method2[T,R](System.Collections.Generic.IEnumerable`1[T], System.Func`2[System.Collections.Generic.List`1[T],R])" attrs="145">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-506.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-507.cs">
-    <type name="A">
-      <method name="Int32 Main()" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B`1[T]">
-      <method name="Int32 get_Item(T)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Int32 get_Item(System.Object)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-508.cs">
-    <type name="B">
-      <method name="Void Main()" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="A`1[T]">
-      <method name="Void .ctor(T)" attrs="6276">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-509.cs">
-    <type name="Test.Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.TestClass">
-      <method name="T Test.IBase.Get[T](System.Object)" attrs="481">
-        <size>18</size>
-      </method>
-      <method name="T Get[T](System.Object)" attrs="134">
-        <size>18</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-510.cs">
-    <type name="CA`2[U,V]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Map`2[K,T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-511.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Foo[T](A`1[T])" attrs="454">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void Foo[T](A`1[T])" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>99</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-512.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-513.cs">
-    <type name="S">
-      <method name="Void System.IDisposable.Dispose()" attrs="481">
-        <size>14</size>
-      </method>
-      <method name="Void Dispose()" attrs="134">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void System.IDisposable.Dispose()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void Dispose()" attrs="134">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>185</size>
-      </method>
-      <method name="Void GenMethod[T](T)" attrs="145">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-514.cs">
-    <type name="test2.Test`3[T,U,V]">
-      <method name="Void Method()" attrs="134">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="test2.MainClass">
-      <method name="Void Dispose()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-515.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AA">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Dispose()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="I`1[T] Foo[T]()" attrs="454">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="AA">
-      <method name="I`1[V] Foo[V]()" attrs="198">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="I`1[R] Foo[R]()" attrs="198">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-516.cs">
-    <type name="B">
-      <method name="Void Foo()" attrs="129">
-        <size>16</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-517.cs">
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="G`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`1[U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-518.cs">
-    <type name="Top`1[X]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Top`1+C[X]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-519.cs">
-    <type name="G`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void Foo[U]()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-520.cs">
-    <type name="A">
-      <method name="Void Method()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+GetEnumerator">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>134</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Collections.Generic.IEnumerator`1[A] System.Collections.Generic.IEnumerable&lt;A&gt;.GetEnumerator()" attrs="481">
-        <size>24</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-521.cs">
-    <type name="D">
-      <method name="Void Invoke(System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="E`1[T]">
-      <method name="Void Test()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void EH(System.Object)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="E`1+I[T]">
-      <method name="Void add_E(D)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_E(D)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-522.cs">
-    <type name="C`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Test[T](T)" attrs="129">
-        <size>13</size>
-      </method>
-      <method name="Void A[U]()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-523.cs">
-    <type name="Test.TestClass4`1[T]">
-      <method name="Boolean Equals(T)" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Test.C">
-      <method name="Void Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.TestClass4`1[T]">
-      <method name="Boolean Equals(Test.TestClass4`1[T])" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Boolean Equals(Test.TestClass4`1[T], Test.TestClass4`1[T])" attrs="486">
-        <size>17</size>
-      </method>
-      <method name="Int32 GetHashCode(Test.TestClass4`1[T])" attrs="486">
-        <size>22</size>
-      </method>
-      <method name="Boolean op_Equality(Test.TestClass4`1[T], Test.TestClass4`1[T])" attrs="2198">
-        <size>17</size>
-      </method>
-      <method name="Boolean op_Equality(T, Test.TestClass4`1[T])" attrs="2198">
-        <size>17</size>
-      </method>
-      <method name="Boolean op_Equality(Test.TestClass4`1[T], T)" attrs="2198">
-        <size>17</size>
-      </method>
-      <method name="Boolean op_Equality(System.Object, Test.TestClass4`1[T])" attrs="2198">
-        <size>23</size>
-      </method>
-      <method name="Boolean op_Equality(Test.TestClass4`1[T], System.Object)" attrs="2198">
-        <size>23</size>
-      </method>
-      <method name="Boolean op_Inequality(Test.TestClass4`1[T], Test.TestClass4`1[T])" attrs="2198">
-        <size>19</size>
-      </method>
-      <method name="Boolean op_Inequality(T, Test.TestClass4`1[T])" attrs="2198">
-        <size>19</size>
-      </method>
-      <method name="Boolean op_Inequality(Test.TestClass4`1[T], T)" attrs="2198">
-        <size>19</size>
-      </method>
-      <method name="Boolean op_Inequality(System.Object, Test.TestClass4`1[T])" attrs="2198">
-        <size>19</size>
-      </method>
-      <method name="Boolean op_Inequality(Test.TestClass4`1[T], System.Object)" attrs="2198">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-524.cs">
-    <type name="C">
-      <method name="T M[T]()" attrs="145">
-        <size>24</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-525.cs">
-    <type name="A">
-      <method name="Void MA[T](System.String)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void F()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+C">
-      <method name="Void Foo()" attrs="129">
-        <size>17</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-526.cs">
-    <type name="A`1[U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B`1+N[T]">
-      <method name="Void Test(C)" attrs="134">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-527.cs">
-    <type name="CoalescingWithGenericsBug">
-      <method name="T Provide[T]()" attrs="145">
-        <size>31</size>
-      </method>
-      <method name="T FindExisting[T]()" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="CoalescingWithGenericsBug+Service">
-      <method name="Void Foo()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-528.cs">
-    <type name="GenericType`1[U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Base">
-      <method name="T Test[T](GenericType`1[T])" attrs="454">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Override">
-      <method name="T Test[T](GenericType`1[T])" attrs="198">
-        <size>16</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-529.cs">
-    <type name="GenericType`2[U,V]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Base`1[V]">
-      <method name="T Test[T](GenericType`2[T,V])" attrs="454">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Override`1[W]">
-      <method name="T Test[T](GenericType`2[T,W])" attrs="198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Int32 Main()" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-530.cs">
-    <type name="B">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="G`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-531.cs">
-    <type name="ATop`1[T]">
-      <method name="T[] IB&lt;T&gt;.ToArray(T[])" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="Void IC.ToArray()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void Test()" attrs="134">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-532.cs">
-    <type name="DictionaryServicesContainer">
-      <method name="Void Register[I,T]()" attrs="486">
-        <size>7</size>
-      </method>
-      <method name="Void Register[I](System.Object)" attrs="486">
-        <size>7</size>
-      </method>
-      <method name="I Resolve[I]()" attrs="134">
-        <size>7</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-533.cs">
-    <type name="List`1[X]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="List`1+Comp`1[X,Y]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="List`1+Flip`1[X,Z]">
-      <method name="Void .ctor(Comp`1)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="List`1+Comp`1[X,Y]">
-      <method name="Comp`1 flip(Y, X)" attrs="134">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-534.cs">
-    <type name="A">
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Method(IG`1[System.Double[][]])" attrs="486">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-535.cs">
-    <type name="G`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Int32 Foo[T](T, G`1[T])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo[T](T, System.Object)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>52</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-536.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+Expression`1[TDelegate]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+Expression">
-      <method name="Void Test()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-537.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>108</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.String op_BitwiseOr(S, System.Nullable`1[S])" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="System.Nullable`1[System.Int32] op_Addition(S, System.Nullable`1[S])" attrs="2198">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-538.cs">
-    <type name="S">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Enumerator`1[T]">
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>7</size>
-      </method>
-      <method name="T get_Current()" attrs="2534">
-        <size>7</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>7</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="MySystem">
-      <method name="Int32 Main()" attrs="150">
-        <size>210</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] GetEnumerator()" attrs="486">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="S2">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] GetEnumerator()" attrs="134">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-539.cs">
-    <type name="S">
-      <method name="Int32 get_ID()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_ID(Int32)" attrs="2182">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="C op_Explicit(S)" attrs="2198">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6273">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>98</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="C op_Explicit(System.Nullable`1[S])" attrs="2198">
-        <size>47</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-540.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>762</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void BrokenLiftedNull()" attrs="129">
-        <size>82</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-541.cs">
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Top`1[S]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Top`1+Base`1[S,T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Top`1+Base`1+Derived`1[S,T,U]">
-      <method name="Void Test()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-542.cs">
-    <type name="A`1[T]">
-      <method name="T getT()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+B[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+B[T]">
-      <method name="B getT()" attrs="198">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-543.cs">
-    <type name="Blah`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Blah`1+WrapperWrapper`1[T,N]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor(Wrapper`1)" attrs="6276">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Wrapper`1[U]">
-      <method name="Void .ctor(U)" attrs="6273">
-        <size>8</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Blah`1+WrapperWrapper`1[T,N]">
-      <method name="WrapperWrapper`1 NewWrapperWrapper(Wrapper`1[N])" attrs="134">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-544.cs">
-    <type name="A`1[T]">
-      <method name="G Foo[G]()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="G Foo2[G]()" attrs="454">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="G Foo[G]()" attrs="198">
-        <size>14</size>
-      </method>
-      <method name="G Foo2[G]()" attrs="198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A2`1[T]">
-      <method name="Void Foo[U]()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B2">
-      <method name="Void Foo[Y]()" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>78</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A3`1[T]">
-      <method name="Void Foo[U]()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B3">
-      <method name="Void Foo[Y]()" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-545.cs">
-    <type name="ApplicationContext">
-      <method name="Boolean Foo()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>353</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-546.cs">
-    <type name="Factory">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Factory+S`2[G1,G2]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="TR Test[T1,T2,TR](T1, T2, System.Func`3[T1,T2,TR])" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>47</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Factory">
-      <method name="S`2 Create[F1,F2](F1, F2)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-547.cs">
-    <type name="Foo">
-      <method name="Void GenericLock[T](T)" attrs="145">
-        <size>36</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-548.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-549.cs">
-    <type name="C`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D+Impl">
-      <method name="Void MA(Int32)" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void MB(Int32)" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-550.cs">
-    <type name="Foo.Magic">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="Foo.Instance">
-      <method name="Int32 get_DestinationDimension()" attrs="2534">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo.Magic`1[T]">
-      <method name="Void Upsample(IUpDown)" attrs="150">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Foo.Instance">
-      <method name="System.Decimal get_Item(Int32)" attrs="2534">
-        <size>7</size>
-      </method>
-      <method name="Void set_Item(Int32, System.Decimal)" attrs="2534">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-551.cs">
-    <type name="Base`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="Derived`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>29</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Object Clone()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-552.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+MM">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-553.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-554.cs">
-    <type name="Mono.Test.Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>159</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Mono.Test.A">
-      <method name="Boolean get_Success()" attrs="2534">
-        <size>10</size>
-      </method>
-      <method name="Void Run()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void Gen[U]()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Mono.Test.B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-555.cs">
-    <type name="Program">
-      <method name="Int32 Test[T](T)" attrs="145">
-        <size>32</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>63</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-556.cs">
-    <type name="A2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A2+N`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A2+N`1[T]">
-      <method name="N`1 Method()" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-557.cs">
-    <type name="Test">
-      <method name="U[] Foo[T,U](T[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void TestByRef[T]()" attrs="145">
-        <size>22</size>
-      </method>
-      <method name="Void PassByRef[T](T ByRef)" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>62</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-558.cs">
-    <type name="A`1[T]">
-      <method name="Void Foo[U](U)" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Foo[U](U)" attrs="198">
-        <size>16</size>
-      </method>
-      <method name="Void Next[UU](UU)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-559.cs">
-    <type name="B`1[TContext]">
-      <method name="Void Test[U2]()" attrs="486">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-560.cs">
-    <type name="G`1[T]">
-      <method name="Void .ctor(Int32)" attrs="6273">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-561.cs">
-    <type name="C">
-      <method name="Void Foo[T](System.Collections.Generic.List`1[T])" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-562.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B`1[U]">
-      <method name="Void Test()" attrs="134">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1[U]">
-      <method name="Void Test()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1+N[U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D`1[U]">
-      <method name="Void Test()" attrs="134">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="E`1[U]">
-      <method name="Void Test(U)" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Application">
-      <method name="Int32 Main()" attrs="150">
-        <size>40</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-563.cs">
-    <type name="C`1[U]">
-      <method name="Void Foo[T](T)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1[U]">
-      <method name="Void Test(System.Nullable`1[S])" attrs="150">
-        <size>20</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-564.cs">
-    <type name="B1`2[T1,T2]">
-      <method name="Void Test[U](U)" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B2`2[T1,T2]">
-      <method name="Void Test[U](U)" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C1">
-      <method name="Void Test[U](U)" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C2">
-      <method name="Void Test[U](U)" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>122</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-565.cs">
-    <type name="B`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Test[T,I]()" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void Foo[T,I]()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-566.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+Context`1[T,U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+Context`1+D[T,U]">
-      <method name="Void Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="A`1+Context`1+D2`1[T,U,V]">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="A`1+Constructor[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+Constructor+Nested[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+Context`1+D[T,U]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="A`1+Context`1+D2`1[T,U,V]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="A`1+Constructor[T]">
-      <method name="Void Before[U](D)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Before[U,V](D2`1)" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="A`1+Constructor+Nested[T]">
-      <method name="Void Test[U](D)" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void Test[U,V](D2`1)" attrs="150">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-567.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="G`1[T]">
-      <method name="Void Foo()" attrs="150">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="G2`1[T]">
-      <method name="Void Foo()" attrs="150">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-568.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>111</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-569.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TreeMap`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TreeMap`1+Entry`1[T,U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-570.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1[T]">
-      <method name="C`1[T] op_Implicit(T)" attrs="2198">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-571.cs">
-    <type name="A`1[T]">
-      <method name="A`1[MM] For[MM]()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B`3[U,X,V]">
-      <method name="A`1[PP] For[PP]()" attrs="198">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor(A`1)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="A`1[QQ] For[QQ]()" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-572.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int16] GetEnumerator()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-573.cs">
-    <type name="CB`1[T]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CA`1[T]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CA`1[T]">
-      <method name="IA`1[T] Backwards()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="IB`1[T] IB&lt;T&gt;.Backwards()" attrs="481">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-574.cs">
-    <type name="TestClass`1[T1]">
-      <method name="Void Test()" attrs="129">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestClass`1+Nested[T1]">
-      <method name="System.Object Clone()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="SequencedBase`1[T2]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="DirectedCollectionBase`1[T3]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CollectionBase`1[T4]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CollectionValueBase`1[T5]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="EnumerableBase`1[T6]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestClass`1[T1]">
-      <method name="Void Foo[U](System.Collections.Generic.IEnumerable`1[U])" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="DirectedCollectionBase`1[T3]">
-      <method name="System.Collections.Generic.IEnumerator`1[T3] System.Collections.Generic.IEnumerable&lt;T3&gt;.GetEnumerator()" attrs="481">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="EnumerableBase`1[T6]">
-      <method name="System.Collections.Generic.IEnumerator`1[T6] System.Collections.Generic.IEnumerable&lt;T6&gt;.GetEnumerator()" attrs="481">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="DirectedCollectionBase`1[T3]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="EnumerableBase`1[T6]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-575.cs">
-    <type name="C`1[T1]">
-      <method name="Void Test()" attrs="134">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B`1[T2]">
-      <method name="Void System.IDisposable.Dispose()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-576.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void IA.f[T1](IParam`1[T1])" attrs="481">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-577.cs">
-    <type name="Program">
-      <method name="Void Generic[T](T)" attrs="145">
-        <size>32</size>
-      </method>
-      <method name="Void Main()" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-    <type name="Program+BaseClass">
-      <method name="Int32 get_Id()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+Derived">
-      <method name="System.String get_Id()" attrs="2534">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-578.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="I`1[TR] Test[T,TR](I`1[T], System.Func`2[I`1[T],TR])" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="U First[U](I`1[U])" attrs="150">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-579.cs">
-    <type name="G`2[U,V]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>80</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Boolean Test_2[T2](T2[])" attrs="145">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-580.cs">
-    <type name="WhereProblems.MyClass`1[where]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="WhereProblems.Classes">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="WhereProblems.Classes+where">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="WhereProblems.Classes+DER17">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-581.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="145">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-582.cs">
-    <type name="G1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="GC`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>89</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-583.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-584.cs">
-    <type name="S">
-      <method name="Boolean op_Equality(S, S)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Boolean op_Inequality(S, S)" attrs="2198">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>603</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.Nullable`1[System.Int32] op_Implicit(S)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="System.Nullable`1[E] op_Implicit(S)" attrs="2198">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-585.cs">
-    <type name="S">
-      <method name="Int32 op_Implicit(S)" attrs="2198">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S3">
-      <method name="System.String op_Implicit(S3)" attrs="2198">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>436</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S2">
-      <method name="System.Nullable`1[System.Int32] op_Implicit(S2)" attrs="2198">
-        <size>19</size>
-      </method>
-      <method name="System.Nullable`1[System.UInt32] op_Implicit(S2)" attrs="2198">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-586.cs">
-    <type name="S">
-      <method name="Boolean op_Equality(S, S)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Boolean op_Inequality(S, S)" attrs="2198">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S2">
-      <method name="Boolean op_Equality(S2, S2)" attrs="2198">
-        <size>22</size>
-      </method>
-      <method name="Boolean op_Inequality(S2, S2)" attrs="2198">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>661</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S3">
-      <method name="System.Nullable`1[System.Int32] op_Implicit(S3)" attrs="2198">
-        <size>30</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-587.cs">
-    <type name="S">
-      <method name="System.String op_Implicit(S)" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="E op_Implicit(S)" attrs="2198">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>139</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.Nullable`1[System.Int16] op_Implicit(S)" attrs="2198">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-588.cs">
-    <type name="S">
-      <method name="System.Nullable`1[System.Int16] op_Implicit(S)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Int16 op_Implicit(S)" attrs="2198">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>246</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-589.cs">
-    <type name="Z">
-      <method name="Z Start()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Z IGenericInterface&lt;Z&gt;.Start()" attrs="481">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1[T]">
-      <method name="Void SomeOperation(T)" attrs="134">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 IGenericInterface&lt;int&gt;.Start()" attrs="481">
-        <size>7</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-590.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>132</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-591.cs">
-    <type name="E">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-592.cs">
-    <type name="Tests">
-      <method name="Void A[T](System.Collections.Generic.IReadOnlyCollection`1[T])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void B[T](System.Collections.Generic.IReadOnlyList`1[T])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-593.cs">
-    <type name="Parser`2[D1,DR1]">
-      <method name="System.Tuple`2[D1,DR1] Invoke(D1)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Combinator">
-      <method name="Parser`2[L1,LR1] Lazy[L1,LR1](System.Func`1[Parser`2[L1,LR1]])" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Parser`2[C1,CR1] Choice[C1,CR1](Parser`2[C1,CR1])" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>37</size>
-      </method>
-    </type>
-    <type name="Combinator+&lt;Choice&gt;c__AnonStorey0`2[C1,CR1]">
-      <method name="Parser`2[C1,CR1] &lt;&gt;m__0()" attrs="131">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Parser`2[D1,DR1]">
-      <method name="System.IAsyncResult BeginInvoke(D1, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.Tuple`2[D1,DR1] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Combinator">
-      <method name="System.Tuple`2[System.Int32,System.Int32] &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-594.cs">
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void Foo[T]()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-595.cs">
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>66</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+TypeConverter`2[TIn,TOut]">
-      <method name="Boolean Convert(TIn)" attrs="150">
-        <size>34</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-596.cs">
-    <type name="X">
-      <method name="Artist get_Artist()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Artist(Artist)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void Test[T1,T2](System.Func`2[T1,T2])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test[T1,T2](System.Func`3[T1,System.Int32,T2])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Artist">
-      <method name="Artist FromToken(System.String)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-597.cs">
-    <type name="Test.MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>63</size>
-      </method>
-      <method name="Boolean Test_1[T](Test.Templated`1[T])" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Boolean Test_2[U](Test.IA`1[U])" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Templated`1[T]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Derived">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-598.cs">
-    <type name="A">
-      <method name="T Test[T](T)" attrs="454">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="T Test[T](T)" attrs="198">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="T Test[T](T)" attrs="198">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AG`1[U]">
-      <method name="T Test[T](T, U)" attrs="454">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B`1[UB]">
-      <method name="T Test[T](T, UB)" attrs="198">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1[UC]">
-      <method name="T Test[T](T, UC)" attrs="198">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-599.cs">
-    <type name="A`1[X]">
-      <method name="T Test[T](T, X)" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="T Test[T](T, Char)" attrs="198">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="T Test[T](T, Char)" attrs="198">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-600.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Delta">
-      <method name="Void Test[U](ICharlie`1[U], U)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void World[U](U, IFoo`1[U])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Foo)" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="145">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-601.cs">
-    <type name="TestProgram">
-      <method name="Void Main()" attrs="150">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-602.cs">
-    <type name="Factory`2[TKey,TBase]">
-      <method name="Void Register[T](TKey)" attrs="134">
-        <size>26</size>
-      </method>
-      <method name="TBase Produce(TKey)" attrs="134">
-        <size>26</size>
-      </method>
-      <method name="TBase Constructor[T]()" attrs="145">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="Factory`2+InstantiateMethod`1[TKey,TBase,T]">
-      <method name="T Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="BaseClass">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ChildClass1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ChildClass2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>108</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Factory`2+InstantiateMethod`1[TKey,TBase,T]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="T EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-603.cs">
-    <type name="A`1[T]">
-      <method name="T op_Explicit(A`1[T])" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Int32 N(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-604.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-605.cs">
-    <type name="NullableAnd">
-      <method name="System.Object Foo(System.Object, System.Object)" attrs="145">
-        <size>59</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>76</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-606.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-607.cs">
-    <type name="A">
-      <method name="System.Func`1[System.String] E(System.String ByRef)" attrs="134">
-        <size>26</size>
-      </method>
-      <method name="System.Func`1[System.String] F(System.String ByRef)" attrs="134">
-        <size>26</size>
-      </method>
-      <method name="Void Main()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void .ctor(String&amp;)" attrs="6278">
-        <size>15</size>
-      </method>
-      <method name="System.String D()" attrs="134">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-608.cs">
-    <type name="R`2[T,U]">
-      <method name="Void M(U)" attrs="134">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S`2[T,U]">
-      <method name="Void M(U)" attrs="134">
-        <size>25</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Dispose()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void Dispose()" attrs="486">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-609.cs">
-    <type name="X`2[T,TBase]">
-      <method name="Void X2[T2](T2)" attrs="150">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-610.cs">
-    <type name="G1`2[T1,T2]">
-      <method name="T2 Test1(B)" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="T2 Test2(A)" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="T2 Test3(System.Object)" attrs="150">
-        <size>77</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void Main()" attrs="145">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-611.cs">
-    <type name="X">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X2">
-      <method name="Void Main()" attrs="150">
-        <size>24</size>
-      </method>
-      <method name="Void Foo[T1,T2](T2[])" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Void Foo[T1,T2](T2[][])" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-612.cs">
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>132</size>
-      </method>
-      <method name="System.Nullable`1[System.Int32] Left()" attrs="145">
-        <size>28</size>
-      </method>
-      <method name="System.Nullable`1[System.Int32] Right()" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-613.cs">
-    <type name="X">
-      <method name="Void Foo(X)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`3[T1,T2,T3]">
-      <method name="Void Test(T3)" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 get_Prop()" attrs="2182">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-614.cs">
-    <type name="S">
-      <method name="System.Nullable`1[System.Int32] op_Explicit(System.Nullable`1[S])" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Int32 op_Implicit(System.Nullable`1[S])" attrs="2198">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>100</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-615.cs">
-    <type name="X">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+N`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-616.cs">
-    <type name="S">
-      <method name="Void Dispose()" attrs="486">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="A`1[T]">
-      <method name="Boolean Test[U](U)" attrs="454">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Boolean Test[U](U)" attrs="198">
-        <size>27</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-617.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="145">
-        <size>57</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="System.Collections.Generic.IEnumerator`1[System.String] GetEnumerator()" attrs="134">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] GetEnumerator(Int32[])" attrs="134">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-618.cs">
-    <type name="S1">
-      <method name="Int32 op_Implicit(System.Nullable`1[S1])" attrs="2198">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="S2">
-      <method name="System.Nullable`1[System.Int32] op_Implicit(System.Nullable`1[S2])" attrs="2198">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="S3">
-      <method name="System.Nullable`1[System.Int32] op_Implicit(System.Nullable`1[S3])" attrs="2198">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="S4">
-      <method name="System.Nullable`1[System.Int32] op_Implicit(S4)" attrs="2198">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>267</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-619.cs">
-    <type name="S+P">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S+C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Test[T](I`1[T])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test[T](IB`1[T])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-620.cs">
-    <type name="A`1[T]">
-      <method name="T M[U](U)" attrs="454">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B`1[W]">
-      <method name="I`1[W] M[U](U)" attrs="198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bug">
-      <method name="Void Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-621.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="145">
-        <size>267</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-622.cs">
-    <type name="CY">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void M[TO]()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-623.cs">
-    <type name="C">
-      <method name="Boolean Test[T]()" attrs="145">
-        <size>42</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-624.cs">
-    <type name="Model">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C1`1[T1]">
-      <method name="Void Add(System.Func`2[T1,System.Int32])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C2`1[TModel]">
-      <method name="Void ApplyImpl[U](C1`1[U])" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C3">
-      <method name="Void ApplyImpl[Foo](C1`1[Foo])" attrs="198">
-        <size>20</size>
-      </method>
-      <method name="Int32 &lt;ApplyImpl`1&gt;m__0[Foo](Foo)" attrs="145">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main()" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-625.cs">
-    <type name="S">
-      <method name="Boolean op_True(System.Nullable`1[S])" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_False(System.Nullable`1[S])" attrs="2198">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="P">
-      <method name="Void Main()" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-626.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="145">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+Foo">
-      <method name="Boolean MG(Foo)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+Bar`1[T]">
-      <method name="Bar`1 Create(System.Func`2[T,System.Boolean])" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Bar`1 Create(System.Func`2[T,System.Double], System.Func`2[T,System.Boolean])" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-627.cs">
-    <type name="X">
-      <method name="U Foo[U](System.Nullable`1[System.Double], System.Func`2[System.Nullable`1[System.Double],U], Int32)" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="U Foo[T,U](System.Nullable`1[T], System.Func`2[T,U])" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="145">
-        <size>46</size>
-      </method>
-      <method name="Double &lt;Main&gt;m__0(Double)" attrs="145">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-628.cs">
-    <type name="Impl`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Impl`1[T]">
-      <method name="System.Object CompareExchangeImpl(TypedReference, System.Object, System.Object)" attrs="150">
-        <size>37</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-629.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>135</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-630.cs">
-    <type name="A">
-      <method name="Int32 Foo(Int32)" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Int32 Bar[T](T)" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-anontype-01.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>71</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;Foo&gt;__T,&lt;Baz&gt;__T]">
-      <method name="&lt;Foo&gt;__T get_Foo()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;Baz&gt;__T get_Baz()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;Foo&gt;__T, &lt;Baz&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-anontype-02.cs">
-    <type name="Test">
-      <method name="System.Object TestA(System.String)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>122</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`1[&lt;s&gt;__T]">
-      <method name="&lt;s&gt;__T get_s()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>39</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>63</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor(&lt;s&gt;__T)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;Foo&gt;__T,&lt;Baz&gt;__T]">
-      <method name="&lt;Foo&gt;__T get_Foo()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;Baz&gt;__T get_Baz()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;Foo&gt;__T, &lt;Baz&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-anontype-03.cs">
-    <type name="MyClass">
-      <method name="Int32 get_Baz()" attrs="2182">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>82</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;Foo&gt;__T,&lt;Baz&gt;__T]">
-      <method name="&lt;Foo&gt;__T get_Foo()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;Baz&gt;__T get_Baz()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;Foo&gt;__T, &lt;Baz&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-anontype-04.cs">
-    <type name="MyClass">
-      <method name="Int32 get_Baz()" attrs="2182">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>139</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`4[&lt;Foo&gt;__T,&lt;Baz&gt;__T,&lt;Hello&gt;__T,&lt;Answer&gt;__T]">
-      <method name="&lt;Foo&gt;__T get_Foo()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;Baz&gt;__T get_Baz()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;Hello&gt;__T get_Hello()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;Answer&gt;__T get_Answer()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>123</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>132</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>258</size>
-      </method>
-      <method name="Void .ctor(&lt;Foo&gt;__T, &lt;Baz&gt;__T, &lt;Hello&gt;__T, &lt;Answer&gt;__T)" attrs="6278">
-        <size>36</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-anontype-05.cs">
-    <type name="Test">
-      <method name="System.String Null()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>357</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;Name&gt;__T,&lt;Age&gt;__T]">
-      <method name="&lt;Name&gt;__T get_Name()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;Age&gt;__T get_Age()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;Name&gt;__T, &lt;Age&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;Age&gt;__T,&lt;Name&gt;__T]">
-      <method name="&lt;Age&gt;__T get_Age()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;Name&gt;__T get_Name()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;Age&gt;__T, &lt;Name&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType2">
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>15</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>40</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType3`1[&lt;Foo&gt;__T]">
-      <method name="&lt;Foo&gt;__T get_Foo()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>39</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>63</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor(&lt;Foo&gt;__T)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-anontype-06.cs">
-    <type name="CastByExample">
-      <method name="Void Main()" attrs="150">
-        <size>30</size>
-      </method>
-      <method name="T Cast[T](System.Object, T)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`1[&lt;Foo&gt;__T]">
-      <method name="&lt;Foo&gt;__T get_Foo()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>39</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>63</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor(&lt;Foo&gt;__T)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-anontype-07.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>82</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0">
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>15</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>40</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-anontype-08.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;X&gt;__T,&lt;Y&gt;__T]">
-      <method name="&lt;X&gt;__T get_X()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;Y&gt;__T get_Y()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;X&gt;__T, &lt;Y&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-anontype-09.cs">
-    <type name="My.System.Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>48</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`1[&lt;X&gt;__T]">
-      <method name="&lt;X&gt;__T get_X()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>39</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>63</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor(&lt;X&gt;__T)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType1`1[&lt;Value&gt;__T]">
-      <method name="&lt;Value&gt;__T get_Value()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>39</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>63</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor(&lt;Value&gt;__T)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-anontype-10.cs">
-    <type name="A">
-      <method name="Int32 get_X()" attrs="2182">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Int32 Test()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`1[&lt;X&gt;__T]">
-      <method name="&lt;X&gt;__T get_X()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>39</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>63</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor(&lt;X&gt;__T)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-anontype-11.cs">
-    <type name="Alpha">
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Beta">
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>57</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;First&gt;__T,&lt;Second&gt;__T]">
-      <method name="&lt;First&gt;__T get_First()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;Second&gt;__T get_Second()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;First&gt;__T, &lt;Second&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-anontype-12.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`1[&lt;ToString&gt;__T]">
-      <method name="&lt;ToString&gt;__T get_ToString()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>39</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>63</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor(&lt;ToString&gt;__T)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-anontype-13.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>182</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Select&gt;c__Iterator0`1[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>211</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>83</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;n&gt;__T,&lt;p&gt;__T]">
-      <method name="&lt;n&gt;__T get_n()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;p&gt;__T get_p()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;n&gt;__T, &lt;p&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Main&gt;c__AnonStorey1">
-      <method name="&lt;&gt;__AnonType0`2[System.String,System.Reflection.PropertyInfo] &lt;&gt;m__0(System.String)" attrs="131">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.Generic.IEnumerable`1[T] Select[T](System.Array, System.Func`2[System.Object,T])" attrs="150">
-        <size>37</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Select&gt;c__Iterator0`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Boolean &lt;Main&gt;m__0(&lt;&gt;__AnonType0`2[System.String,System.Reflection.PropertyInfo])" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__1(&lt;&gt;__AnonType0`2[System.String,System.Reflection.PropertyInfo])" attrs="145">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-01.cs">
-    <type name="Test">
-      <method name="System.String get_Foo()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Foo(System.String)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Int32 get_Answer()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Answer(Int32)" attrs="2177">
-        <size>8</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>120</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="Test+A">
-      <method name="System.String get_B()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_B(System.String)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-02.cs">
-    <type name="Test">
-      <method name="System.String get_Foo()" attrs="2198">
-        <size>13</size>
-      </method>
-      <method name="Void set_Foo(System.String)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Int32 get_Answer()" attrs="2198">
-        <size>13</size>
-      </method>
-      <method name="Void set_Answer(Int32)" attrs="2193">
-        <size>7</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+A">
-      <method name="System.String get_B()" attrs="2198">
-        <size>13</size>
-      </method>
-      <method name="Void set_B(System.String)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="System.String get_C()" attrs="2198">
-        <size>13</size>
-      </method>
-      <method name="Void set_C(System.String)" attrs="2193">
-        <size>7</size>
-      </method>
-      <method name="Void DoThings()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-03.cs">
-    <type name="Test">
-      <method name="System.String get_Foo()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Foo(System.String)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>336</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-04.cs">
-    <type name="MonoTests.MainClass">
-      <method name="System.String[] get_foo()" attrs="2500">
-        <size>14</size>
-      </method>
-      <method name="Void set_foo(System.String[])" attrs="2500">
-        <size>8</size>
-      </method>
-      <method name="System.String[] get_bar()" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void set_bar(System.String[])" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoTests.ChildClass">
-      <method name="System.String[] get_foo()" attrs="2244">
-        <size>14</size>
-      </method>
-      <method name="Void set_foo(System.String[])" attrs="2244">
-        <size>8</size>
-      </method>
-      <method name="System.String[] get_bar()" attrs="2246">
-        <size>14</size>
-      </method>
-      <method name="Void set_bar(System.String[])" attrs="2246">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-05.cs">
-    <type name="Test">
-      <method name="System.String get_X()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_X(System.String)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-06.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="B I&lt;B&gt;.get_Prop()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Void I&lt;B&gt;.set_Prop(B)" attrs="2529">
-        <size>8</size>
-      </method>
-      <method name="A I&lt;A&gt;.get_Prop()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Void I&lt;A&gt;.set_Prop(A)" attrs="2529">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-07.cs">
-    <type name="Foo">
-      <method name="System.Object get_NewValue()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_NewValue(System.Object)" attrs="2177">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Object)" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-08.cs">
-    <type name="AAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 get_Prop()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Prop(Int32)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-09.cs">
-    <type name="S">
-      <method name="Int32 get_P()" attrs="2198">
-        <size>13</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>213</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Decimal get_P()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="S2">
-      <method name="Int32 get_P()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor(Object)" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 get_P2()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_P2(Int32)" attrs="2182">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="S2">
-      <method name="Int32 get_P2()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_P2(Int32)" attrs="2182">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="Int32[] get_PA()" attrs="2198">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="S2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-10.cs">
-    <type name="S">
-      <method name="System.Decimal get_P()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-11.cs">
-    <type name="Test">
-      <method name="System.String get_Property1()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Int32 get_Property2()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>144</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-12.cs">
-    <type name="A">
-      <method name="Int32 get_X()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Int32 get_Y()" attrs="2502">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>50</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 get_Y()" attrs="2246">
-        <size>29</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>136</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-13.cs">
-    <type name="S">
-      <method name="Int32 get_X()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Int32 get_Y()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-14.cs">
-    <type name="S">
-      <method name="Int32 get_A()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_A(Int32)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-15.cs">
-    <type name="C">
-      <method name="Int32 get_A()" attrs="2502">
-        <size>14</size>
-      </method>
-      <method name="Void set_A(Int32)" attrs="2177">
-        <size>8</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-16.cs">
-    <type name="A">
-      <method name="Int32 get_Foo()" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 get_Foo()" attrs="2246">
-        <size>9</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-17.cs">
-    <type name="MainClass">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+Bar">
-      <method name="Boolean get_Condition()" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+Baz">
-      <method name="Boolean get_Condition()" attrs="2246">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-autoproperty-18.cs">
-    <type name="A">
-      <method name="Int32 get_Type()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 get_Type()" attrs="2193">
-        <size>13</size>
-      </method>
-      <method name="Int32 Main()" attrs="145">
-        <size>53</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-collectioninit-01.cs">
-    <type name="Test">
-      <method name="Void TestList(System.Collections.Generic.List`1[System.Int32], Int32)" attrs="145">
-        <size>91</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>562</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+Wrap">
-      <method name="System.Collections.ArrayList get_Numbers()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>26</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-collectioninit-02.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>86</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-collectioninit-03.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>42</size>
-      </method>
-      <method name="Void R(System.Object ByRef)" attrs="145">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-collectioninit-04.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>69</size>
-      </method>
-      <method name="System.String &lt;Test&gt;m__0(System.String)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="System.String &lt;Test&gt;m__1(System.String)" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-01.cs">
-    <type name="InverseLogicalOperator">
-      <method name="Boolean op_True(InverseLogicalOperator)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Boolean op_False(InverseLogicalOperator)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor(Boolean)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="MyType">
-      <method name="Int16 get_ShortProp()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_ShortProp(Int16)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>7</size>
-      </method>
-      <method name="Int32 op_Implicit(MyType)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Boolean op_True(MyType)" attrs="2198">
-        <size>24</size>
-      </method>
-      <method name="Boolean op_False(MyType)" attrs="2198">
-        <size>27</size>
-      </method>
-      <method name="MyType op_Addition(MyType, MyType)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="MyType op_Subtraction(MyType, MyType)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="MyType op_Division(MyType, MyType)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="MyType op_Multiply(MyType, MyType)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="MyType op_Modulus(MyType, MyType)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="MyType op_BitwiseAnd(MyType, MyType)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="MyType op_BitwiseOr(MyType, MyType)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="MyType op_ExclusiveOr(MyType, MyType)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="Boolean op_Equality(MyType, MyType)" attrs="2198">
-        <size>25</size>
-      </method>
-      <method name="Boolean op_Inequality(MyType, MyType)" attrs="2198">
-        <size>28</size>
-      </method>
-      <method name="Boolean op_GreaterThan(MyType, MyType)" attrs="2198">
-        <size>25</size>
-      </method>
-      <method name="Boolean op_LessThan(MyType, MyType)" attrs="2198">
-        <size>25</size>
-      </method>
-      <method name="Boolean op_GreaterThanOrEqual(MyType, MyType)" attrs="2198">
-        <size>28</size>
-      </method>
-      <method name="Boolean op_LessThanOrEqual(MyType, MyType)" attrs="2198">
-        <size>28</size>
-      </method>
-      <method name="Boolean op_LogicalNot(MyType)" attrs="2198">
-        <size>19</size>
-      </method>
-      <method name="Int32 op_RightShift(MyType, Int32)" attrs="2198">
-        <size>21</size>
-      </method>
-      <method name="Int32 op_LeftShift(MyType, Int32)" attrs="2198">
-        <size>21</size>
-      </method>
-      <method name="MyType op_UnaryNegation(MyType)" attrs="2198">
-        <size>22</size>
-      </method>
-      <method name="MyType op_UnaryPlus(MyType)" attrs="2198">
-        <size>21</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="MyTypeExplicit">
-      <method name="Int32 op_Explicit(MyTypeExplicit)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="MyTypeImplicitOnly">
-      <method name="Int16 op_Implicit(MyTypeImplicitOnly)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor(Int16)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="MemberAccessData">
-      <method name="Void add_EventField(System.Func`1[System.Boolean])" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void remove_EventField(System.Func`1[System.Boolean])" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="System.Linq.Expressions.Expression`1[System.Func`1[System.Func`1[System.Boolean]]] GetEvent()" attrs="134">
-        <size>41</size>
-      </method>
-      <method name="Void set_MyTypeProperty(MyType)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="MyType get_MyTypeProperty()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="System.String get_StaticProperty()" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="Void set_SetOnly(System.Object)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="NewTest`1[T]">
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>15</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>111</size>
-      </method>
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor(T[])" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Indexer">
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="System.String get_Item(System.String[])" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Int32 ReturnNumber()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void Assert[T](T, T)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void Assert[T](T, T, System.String)" attrs="145">
-        <size>91</size>
-      </method>
-      <method name="Void Assert[T](T[], T[])" attrs="145">
-        <size>228</size>
-      </method>
-      <method name="Void AddTest()" attrs="129">
-        <size>100</size>
-      </method>
-      <method name="Void AddTest_2()" attrs="129">
-        <size>118</size>
-      </method>
-      <method name="Void AddTest_3()" attrs="129">
-        <size>130</size>
-      </method>
-      <method name="Void AddTest_4()" attrs="129">
-        <size>191</size>
-      </method>
-      <method name="Void AddTest_5()" attrs="129">
-        <size>134</size>
-      </method>
-      <method name="Void AddTest_6()" attrs="129">
-        <size>159</size>
-      </method>
-      <method name="Void AddTest_7()" attrs="129">
-        <size>143</size>
-      </method>
-      <method name="Void AddTest_8()" attrs="129">
-        <size>247</size>
-      </method>
-      <method name="Void AddTest_9()" attrs="129">
-        <size>143</size>
-      </method>
-      <method name="Void AddCheckedTest()" attrs="129">
-        <size>102</size>
-      </method>
-      <method name="Void AddCheckedTest_2()" attrs="129">
-        <size>120</size>
-      </method>
-      <method name="Void AddCheckedTest_3()" attrs="129">
-        <size>132</size>
-      </method>
-      <method name="Void AddStringTest()" attrs="129">
-        <size>129</size>
-      </method>
-      <method name="Void AddStringTest_2()" attrs="129">
-        <size>174</size>
-      </method>
-      <method name="Void AddStringTest_3()" attrs="129">
-        <size>175</size>
-      </method>
-      <method name="Void AddStringTest_4()" attrs="129">
-        <size>175</size>
-      </method>
-      <method name="Void AndTest()" attrs="129">
-        <size>141</size>
-      </method>
-      <method name="Void AndTest_2()" attrs="129">
-        <size>162</size>
-      </method>
-      <method name="Void AndTest_3()" attrs="129">
-        <size>162</size>
-      </method>
-      <method name="Void AndTest_4()" attrs="129">
-        <size>93</size>
-      </method>
-      <method name="Void AndNullableTest()" attrs="129">
-        <size>382</size>
-      </method>
-      <method name="Void AndNullableTest_2()" attrs="129">
-        <size>238</size>
-      </method>
-      <method name="Void AndNullableTest_3()" attrs="129">
-        <size>198</size>
-      </method>
-      <method name="Void AndAlsoTest()" attrs="129">
-        <size>97</size>
-      </method>
-      <method name="Void AndAlsoTest_2()" attrs="129">
-        <size>166</size>
-      </method>
-      <method name="Void AndAlsoTest_3()" attrs="129">
-        <size>109</size>
-      </method>
-      <method name="Void ArrayIndexTest()" attrs="129">
-        <size>146</size>
-      </method>
-      <method name="Void ArrayIndexTest_2()" attrs="129">
-        <size>116</size>
-      </method>
-      <method name="Void ArrayIndexTest_3()" attrs="129">
-        <size>200</size>
-      </method>
-      <method name="Void ArrayIndexTest_4()" attrs="129">
-        <size>244</size>
-      </method>
-      <method name="Void ArrayIndexTest_5()" attrs="129">
-        <size>109</size>
-      </method>
-      <method name="Void ArrayIndexTest_6()" attrs="129">
-        <size>123</size>
-      </method>
-      <method name="Void ArrayIndexTest_7()" attrs="129">
-        <size>127</size>
-      </method>
-      <method name="Void ArrayLengthTest()" attrs="129">
-        <size>100</size>
-      </method>
-      <method name="Void ArrayLengthTest_2()" attrs="129">
-        <size>92</size>
-      </method>
-      <method name="Void CallTest()" attrs="129">
-        <size>127</size>
-      </method>
-      <method name="Void CallTest_2()" attrs="129">
-        <size>108</size>
-      </method>
-      <method name="Void CallTest_3()" attrs="129">
-        <size>196</size>
-      </method>
-      <method name="Void CallTest_4()" attrs="129">
-        <size>110</size>
-      </method>
-      <method name="Void CallTest_5()" attrs="129">
-        <size>100</size>
-      </method>
-      <method name="Void CallTest_6()" attrs="129">
-        <size>71</size>
-      </method>
-      <method name="Void CallTest_7()" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void CallTest_8()" attrs="129">
-        <size>228</size>
-      </method>
-      <method name="Void CallTest_9()" attrs="129">
-        <size>89</size>
-      </method>
-      <method name="Void CoalesceTest()" attrs="129">
-        <size>121</size>
-      </method>
-      <method name="Void CoalesceTest_2()" attrs="129">
-        <size>172</size>
-      </method>
-      <method name="Void ConditionTest()" attrs="129">
-        <size>171</size>
-      </method>
-      <method name="Void ConditionTest_2()" attrs="129">
-        <size>302</size>
-      </method>
-      <method name="Void ConditionTest_3()" attrs="129">
-        <size>180</size>
-      </method>
-      <method name="Void ConditionTest_4()" attrs="129">
-        <size>184</size>
-      </method>
-      <method name="Void ConditionTest_5()" attrs="129">
-        <size>108</size>
-      </method>
-      <method name="Void ConstantTest()" attrs="129">
-        <size>60</size>
-      </method>
-      <method name="Void ConstantTest_2()" attrs="129">
-        <size>63</size>
-      </method>
-      <method name="Void ConstantTest_3()" attrs="129">
-        <size>55</size>
-      </method>
-      <method name="Void ConstantTest_4()" attrs="129">
-        <size>45</size>
-      </method>
-      <method name="Void ConstantTest_5()" attrs="129">
-        <size>60</size>
-      </method>
-      <method name="Void ConstantTest_6()" attrs="129">
-        <size>68</size>
-      </method>
-      <method name="Void ConstantTest_7()" attrs="129">
-        <size>63</size>
-      </method>
-      <method name="Void ConstantTest_8()" attrs="129">
-        <size>73</size>
-      </method>
-      <method name="Void ConstantTest_9()" attrs="129">
-        <size>73</size>
-      </method>
-      <method name="Void ConstantTest_10()" attrs="129">
-        <size>73</size>
-      </method>
-      <method name="Void ConstantTest_11()" attrs="129">
-        <size>60</size>
-      </method>
-      <method name="Void ConstantTest_13()" attrs="129">
-        <size>60</size>
-      </method>
-      <method name="Void ConstantTest_14()" attrs="129">
-        <size>73</size>
-      </method>
-      <method name="Void ConstantTest_15()" attrs="129">
-        <size>63</size>
-      </method>
-      <method name="Void ConvertTest()" attrs="129">
-        <size>83</size>
-      </method>
-      <method name="Void ConvertTest_2()" attrs="129">
-        <size>84</size>
-      </method>
-      <method name="Void ConvertTest_3()" attrs="129">
-        <size>94</size>
-      </method>
-      <method name="Void ConvertTest_4()" attrs="129">
-        <size>103</size>
-      </method>
-      <method name="Void ConvertTest_5()" attrs="129">
-        <size>110</size>
-      </method>
-      <method name="Void ConvertTest_6()" attrs="129">
-        <size>239</size>
-      </method>
-      <method name="Void ConvertTest_7()" attrs="129">
-        <size>108</size>
-      </method>
-      <method name="Void ConvertTest_8()" attrs="129">
-        <size>119</size>
-      </method>
-      <method name="Void ConvertTest_9()" attrs="129">
-        <size>98</size>
-      </method>
-      <method name="Void ConvertTest_10()" attrs="129">
-        <size>181</size>
-      </method>
-      <method name="Void ConvertTest_11()" attrs="129">
-        <size>102</size>
-      </method>
-      <method name="Void ConvertTest_12()" attrs="129">
-        <size>142</size>
-      </method>
-      <method name="Void ConvertTest_13()" attrs="129">
-        <size>87</size>
-      </method>
-      <method name="Void ConvertTest_14()" attrs="129">
-        <size>89</size>
-      </method>
-      <method name="Void ConvertTest_15()" attrs="129">
-        <size>133</size>
-      </method>
-      <method name="Void ConvertTest_16()" attrs="129">
-        <size>82</size>
-      </method>
-      <method name="Void ConvertCheckedTest()" attrs="129">
-        <size>83</size>
-      </method>
-      <method name="Void ConvertCheckedTest_2()" attrs="129">
-        <size>86</size>
-      </method>
-      <method name="Void ConvertCheckedTest_3()" attrs="129">
-        <size>96</size>
-      </method>
-      <method name="Void ConvertCheckedTest_4()" attrs="129">
-        <size>105</size>
-      </method>
-      <method name="Void DivideTest()" attrs="129">
-        <size>100</size>
-      </method>
-      <method name="Void DivideTest_2()" attrs="129">
-        <size>185</size>
-      </method>
-      <method name="Void DivideTest_3()" attrs="129">
-        <size>130</size>
-      </method>
-      <method name="Void DivideTest_4()" attrs="129">
-        <size>192</size>
-      </method>
-      <method name="Void DivideTest_5()" attrs="129">
-        <size>135</size>
-      </method>
-      <method name="Void DivideTest_6()" attrs="129">
-        <size>197</size>
-      </method>
-      <method name="Void DivideTest_7()" attrs="129">
-        <size>186</size>
-      </method>
-      <method name="Void EqualTest()" attrs="129">
-        <size>119</size>
-      </method>
-      <method name="Void EqualTest_2()" attrs="129">
-        <size>169</size>
-      </method>
-      <method name="Void EqualTest_3()" attrs="129">
-        <size>126</size>
-      </method>
-      <method name="Void EqualTest_4()" attrs="129">
-        <size>209</size>
-      </method>
-      <method name="Void EqualTest_5()" attrs="129">
-        <size>175</size>
-      </method>
-      <method name="Void EqualTest_6()" attrs="129">
-        <size>120</size>
-      </method>
-      <method name="Void EqualTest_7()" attrs="129">
-        <size>168</size>
-      </method>
-      <method name="Void EqualTest_8()" attrs="129">
-        <size>117</size>
-      </method>
-      <method name="Void EqualTest_9()" attrs="129">
-        <size>147</size>
-      </method>
-      <method name="Void EqualTest_10()" attrs="129">
-        <size>170</size>
-      </method>
-      <method name="Void EqualTest_11()" attrs="129">
-        <size>148</size>
-      </method>
-      <method name="Void EqualTest_12()" attrs="129">
-        <size>128</size>
-      </method>
-      <method name="Void EqualTest_13()" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void EqualTest_14()" attrs="129">
-        <size>132</size>
-      </method>
-      <method name="Void EqualTest_15()" attrs="129">
-        <size>160</size>
-      </method>
-      <method name="Void EqualTestDelegate()" attrs="129">
-        <size>114</size>
-      </method>
-      <method name="Void EqualTestDelegate_2()" attrs="129">
-        <size>313</size>
-      </method>
-      <method name="Void EqualTestDelegate_3()" attrs="129">
-        <size>230</size>
-      </method>
-      <method name="Void ExclusiveOrTest()" attrs="129">
-        <size>116</size>
-      </method>
-      <method name="Void ExclusiveOrTest_2()" attrs="129">
-        <size>184</size>
-      </method>
-      <method name="Void ExclusiveOrTest_3()" attrs="129">
-        <size>130</size>
-      </method>
-      <method name="Void ExclusiveOrTest_4()" attrs="129">
-        <size>192</size>
-      </method>
-      <method name="Void ExclusiveOrTest_5()" attrs="129">
-        <size>198</size>
-      </method>
-      <method name="Void ExclusiveOrTest_6()" attrs="129">
-        <size>162</size>
-      </method>
-      <method name="Void ExclusiveOrTest_7()" attrs="129">
-        <size>198</size>
-      </method>
-      <method name="Void ExclusiveOrTest_8()" attrs="129">
-        <size>179</size>
-      </method>
-      <method name="Void GreaterThanTest()" attrs="129">
-        <size>100</size>
-      </method>
-      <method name="Void GreaterThanTest_2()" attrs="129">
-        <size>155</size>
-      </method>
-      <method name="Void GreaterThanTest_3()" attrs="129">
-        <size>126</size>
-      </method>
-      <method name="Void GreaterThanTest_4()" attrs="129">
-        <size>209</size>
-      </method>
-      <method name="Void GreaterThanTest_5()" attrs="129">
-        <size>209</size>
-      </method>
-      <method name="Void GreaterThanTest_6()" attrs="129">
-        <size>103</size>
-      </method>
-      <method name="Void GreaterThanTest_7()" attrs="129">
-        <size>147</size>
-      </method>
-      <method name="Void GreaterThanTest_8()" attrs="129">
-        <size>170</size>
-      </method>
-      <method name="Void GreaterThanOrEqualTest()" attrs="129">
-        <size>100</size>
-      </method>
-      <method name="Void GreaterThanOrEqualTest_2()" attrs="129">
-        <size>170</size>
-      </method>
-      <method name="Void GreaterThanOrEqualTest_3()" attrs="129">
-        <size>131</size>
-      </method>
-      <method name="Void GreaterThanOrEqualTest_4()" attrs="129">
-        <size>209</size>
-      </method>
-      <method name="Void GreaterThanOrEqualTest_5()" attrs="129">
-        <size>209</size>
-      </method>
-      <method name="Void GreaterThanOrEqualTest_6()" attrs="129">
-        <size>103</size>
-      </method>
-      <method name="Void GreaterThanOrEqualTest_7()" attrs="129">
-        <size>147</size>
-      </method>
-      <method name="Void GreaterThanOrEqualTest_8()" attrs="129">
-        <size>170</size>
-      </method>
-      <method name="Void InvokeTest()" attrs="129">
-        <size>91</size>
-      </method>
-      <method name="Void InvokeTest_2()" attrs="129">
-        <size>139</size>
-      </method>
-      <method name="Void LambdaTest()" attrs="129">
-        <size>90</size>
-      </method>
-      <method name="Void LeftShiftTest()" attrs="129">
-        <size>156</size>
-      </method>
-      <method name="Void LeftShiftTest_2()" attrs="129">
-        <size>163</size>
-      </method>
-      <method name="Void LeftShiftTest_3()" attrs="129">
-        <size>169</size>
-      </method>
-      <method name="Void LeftShiftTest_4()" attrs="129">
-        <size>262</size>
-      </method>
-      <method name="Void LeftShiftTest_5()" attrs="129">
-        <size>111</size>
-      </method>
-      <method name="Void LeftShiftTest_6()" attrs="129">
-        <size>156</size>
-      </method>
-      <method name="Void LessThanTest()" attrs="129">
-        <size>100</size>
-      </method>
-      <method name="Void LessThanTest_2()" attrs="129">
-        <size>155</size>
-      </method>
-      <method name="Void LessThanTest_3()" attrs="129">
-        <size>126</size>
-      </method>
-      <method name="Void LessThanTest_4()" attrs="129">
-        <size>209</size>
-      </method>
-      <method name="Void LessThanTest_5()" attrs="129">
-        <size>209</size>
-      </method>
-      <method name="Void LessThanTest_6()" attrs="129">
-        <size>103</size>
-      </method>
-      <method name="Void LessThanTest_7()" attrs="129">
-        <size>147</size>
-      </method>
-      <method name="Void LessThanTest_8()" attrs="129">
-        <size>170</size>
-      </method>
-      <method name="Void LessThanOrEqualTest()" attrs="129">
-        <size>100</size>
-      </method>
-      <method name="Void LessThanOrEqualTest_2()" attrs="129">
-        <size>170</size>
-      </method>
-      <method name="Void LessThanOrEqualTest_3()" attrs="129">
-        <size>126</size>
-      </method>
-      <method name="Void LessThanOrEqualTest_4()" attrs="129">
-        <size>209</size>
-      </method>
-      <method name="Void LessThanOrEqualTest_5()" attrs="129">
-        <size>209</size>
-      </method>
-      <method name="Void LessThanOrEqualTest_6()" attrs="129">
-        <size>103</size>
-      </method>
-      <method name="Void LessThanOrEqualTest_7()" attrs="129">
-        <size>147</size>
-      </method>
-      <method name="Void LessThanOrEqualTest_8()" attrs="129">
-        <size>170</size>
-      </method>
-      <method name="Void ListInitTest()" attrs="129">
-        <size>405</size>
-      </method>
-      <method name="Void ListInitTest_2()" attrs="129">
-        <size>293</size>
-      </method>
-      <method name="Void MemberAccessTest()" attrs="129">
-        <size>133</size>
-      </method>
-      <method name="Void MemberAccessTest_2()" attrs="129">
-        <size>64</size>
-      </method>
-      <method name="Void MemberAccessTest_3()" attrs="129">
-        <size>114</size>
-      </method>
-      <method name="Void MemberAccessTest_4()" attrs="129">
-        <size>92</size>
-      </method>
-      <method name="Void MemberAccessTest_5()" attrs="129">
-        <size>40</size>
-      </method>
-      <method name="Void MemberAccessTest_6()" attrs="129">
-        <size>105</size>
-      </method>
-      <method name="Void MemberAccessTest_7()" attrs="129">
-        <size>110</size>
-      </method>
-      <method name="Void MemberAccessTest_8()" attrs="129">
-        <size>64</size>
-      </method>
-      <method name="Void MemberAccessTest_9()" attrs="129">
-        <size>92</size>
-      </method>
-      <method name="Void MemberInitTest()" attrs="129">
-        <size>303</size>
-      </method>
-      <method name="Void MemberInitTest_2()" attrs="129">
-        <size>251</size>
-      </method>
-      <method name="Void MemberInitTest_3()" attrs="129">
-        <size>125</size>
-      </method>
-      <method name="Void MemberInitTest_4()" attrs="129">
-        <size>67</size>
-      </method>
-      <method name="Void MemberInitTest_5()" attrs="129">
-        <size>119</size>
-      </method>
-      <method name="Void ModuloTest()" attrs="129">
-        <size>101</size>
-      </method>
-      <method name="Void ModuloTest_2()" attrs="129">
-        <size>185</size>
-      </method>
-      <method name="Void ModuloTest_3()" attrs="129">
-        <size>130</size>
-      </method>
-      <method name="Void ModuloTest_4()" attrs="129">
-        <size>192</size>
-      </method>
-      <method name="Void ModuloTest_5()" attrs="129">
-        <size>134</size>
-      </method>
-      <method name="Void ModuloTest_6()" attrs="129">
-        <size>201</size>
-      </method>
-      <method name="Void ModuloTest_7()" attrs="129">
-        <size>111</size>
-      </method>
-      <method name="Void MultiplyTest()" attrs="129">
-        <size>132</size>
-      </method>
-      <method name="Void MultiplyTest_2()" attrs="129">
-        <size>185</size>
-      </method>
-      <method name="Void MultiplyTest_3()" attrs="129">
-        <size>134</size>
-      </method>
-      <method name="Void MultiplyTest_4()" attrs="129">
-        <size>195</size>
-      </method>
-      <method name="Void MultiplyTest_5()" attrs="129">
-        <size>138</size>
-      </method>
-      <method name="Void MultiplyTest_6()" attrs="129">
-        <size>203</size>
-      </method>
-      <method name="Void MultiplyTest_7()" attrs="129">
-        <size>111</size>
-      </method>
-      <method name="Void MultiplyTest_8()" attrs="129">
-        <size>199</size>
-      </method>
-      <method name="Void MultiplyCheckedTest()" attrs="129">
-        <size>123</size>
-      </method>
-      <method name="Void MultiplyCheckedTest_2()" attrs="129">
-        <size>195</size>
-      </method>
-      <method name="Void MultiplyCheckedTest_3()" attrs="129">
-        <size>136</size>
-      </method>
-      <method name="Void MultiplyCheckedTest_4()" attrs="129">
-        <size>124</size>
-      </method>
-      <method name="Void MultiplyCheckedTest_5()" attrs="129">
-        <size>127</size>
-      </method>
-      <method name="Void NegateTest()" attrs="129">
-        <size>73</size>
-      </method>
-      <method name="Void NegateTest_2()" attrs="129">
-        <size>93</size>
-      </method>
-      <method name="Void NegateTest_3()" attrs="129">
-        <size>131</size>
-      </method>
-      <method name="Void NegateTest_4()" attrs="129">
-        <size>98</size>
-      </method>
-      <method name="Void NegateTest_5()" attrs="129">
-        <size>142</size>
-      </method>
-      <method name="Void NegateTest_6()" attrs="129">
-        <size>122</size>
-      </method>
-      <method name="Void NegateTest_7()" attrs="129">
-        <size>133</size>
-      </method>
-      <method name="Void NegateTest_8()" attrs="129">
-        <size>98</size>
-      </method>
-      <method name="Void NegateTest_9()" attrs="129">
-        <size>88</size>
-      </method>
-      <method name="Void NegateTestChecked()" attrs="129">
-        <size>92</size>
-      </method>
-      <method name="Void NegateTestChecked_2()" attrs="129">
-        <size>140</size>
-      </method>
-      <method name="Void NegateTestChecked_3()" attrs="129">
-        <size>100</size>
-      </method>
-      <method name="Void NegateTestChecked_4()" attrs="129">
-        <size>89</size>
-      </method>
-      <method name="Void NewArrayInitTest()" attrs="129">
-        <size>93</size>
-      </method>
-      <method name="Void NewArrayInitTest_2()" attrs="129">
-        <size>65</size>
-      </method>
-      <method name="Void NewArrayInitTest_3()" attrs="129">
-        <size>137</size>
-      </method>
-      <method name="Void NewArrayInitTest_4()" attrs="129">
-        <size>121</size>
-      </method>
-      <method name="Void NewArrayInitTest_5()" attrs="129">
-        <size>159</size>
-      </method>
-      <method name="Void NewArrayInitTest_6()" attrs="129">
-        <size>104</size>
-      </method>
-      <method name="Void NewArrayBoundsTest()" attrs="129">
-        <size>124</size>
-      </method>
-      <method name="Void NewArrayBoundsTest_2()" attrs="129">
-        <size>124</size>
-      </method>
-      <method name="Void NewArrayBoundsTest_3()" attrs="129">
-        <size>86</size>
-      </method>
-      <method name="Void NewArrayBoundsTest_4()" attrs="129">
-        <size>83</size>
-      </method>
-      <method name="Void NewTest()" attrs="129">
-        <size>94</size>
-      </method>
-      <method name="Void NewTest_2()" attrs="129">
-        <size>62</size>
-      </method>
-      <method name="Void NewTest_3()" attrs="129">
-        <size>99</size>
-      </method>
-      <method name="Void NewTest_4()" attrs="129">
-        <size>253</size>
-      </method>
-      <method name="Void NewTest_5()" attrs="129">
-        <size>376</size>
-      </method>
-      <method name="Void NewTest_6()" attrs="129">
-        <size>183</size>
-      </method>
-      <method name="Void NewTest_7()" attrs="129">
-        <size>54</size>
-      </method>
-      <method name="Void NotTest()" attrs="129">
-        <size>71</size>
-      </method>
-      <method name="Void NotTest_2()" attrs="129">
-        <size>114</size>
-      </method>
-      <method name="Void NotTest_3()" attrs="129">
-        <size>72</size>
-      </method>
-      <method name="Void NotTest_4()" attrs="129">
-        <size>106</size>
-      </method>
-      <method name="Void NotTest_5()" attrs="129">
-        <size>74</size>
-      </method>
-      <method name="Void NotTest_6()" attrs="129">
-        <size>105</size>
-      </method>
-      <method name="Void NotNullableTest()" attrs="129">
-        <size>115</size>
-      </method>
-      <method name="Void NotNullableTest_2()" attrs="129">
-        <size>135</size>
-      </method>
-      <method name="Void NotNullableTest_3()" attrs="129">
-        <size>131</size>
-      </method>
-      <method name="Void NotNullableTest_4()" attrs="129">
-        <size>150</size>
-      </method>
-      <method name="Void NotNullableTest_5()" attrs="129">
-        <size>149</size>
-      </method>
-      <method name="Void NotEqualTest()" attrs="129">
-        <size>119</size>
-      </method>
-      <method name="Void NotEqualTest_2()" attrs="129">
-        <size>167</size>
-      </method>
-      <method name="Void NotEqualTest_3()" attrs="129">
-        <size>126</size>
-      </method>
-      <method name="Void NotEqualTest_4()" attrs="129">
-        <size>209</size>
-      </method>
-      <method name="Void NotEqualTest_5()" attrs="129">
-        <size>175</size>
-      </method>
-      <method name="Void NotEqualTest_6()" attrs="129">
-        <size>120</size>
-      </method>
-      <method name="Void NotEqualTest_7()" attrs="129">
-        <size>168</size>
-      </method>
-      <method name="Void NotEqualTest_8()" attrs="129">
-        <size>117</size>
-      </method>
-      <method name="Void NotEqualTest_9()" attrs="129">
-        <size>147</size>
-      </method>
-      <method name="Void NotEqualTest_10()" attrs="129">
-        <size>170</size>
-      </method>
-      <method name="Void NotEqualTest_11()" attrs="129">
-        <size>148</size>
-      </method>
-      <method name="Void OrTest()" attrs="129">
-        <size>142</size>
-      </method>
-      <method name="Void OrTest_2()" attrs="129">
-        <size>130</size>
-      </method>
-      <method name="Void OrTest_3()" attrs="129">
-        <size>162</size>
-      </method>
-      <method name="Void OrNullableTest()" attrs="129">
-        <size>383</size>
-      </method>
-      <method name="Void OrNullableTest_2()" attrs="129">
-        <size>187</size>
-      </method>
-      <method name="Void OrNullableTest_3()" attrs="129">
-        <size>177</size>
-      </method>
-      <method name="Void OrNullableTest_4()" attrs="129">
-        <size>198</size>
-      </method>
-      <method name="Void OrElseTest()" attrs="129">
-        <size>98</size>
-      </method>
-      <method name="Void OrElseTest_2()" attrs="129">
-        <size>168</size>
-      </method>
-      <method name="Void ParameterTest()" attrs="129">
-        <size>74</size>
-      </method>
-      <method name="Void ParameterTest_2()" attrs="129">
-        <size>76</size>
-      </method>
-      <method name="Void ParameterTest_3()" attrs="129">
-        <size>74</size>
-      </method>
-      <method name="Void ParameterTest_4()" attrs="129">
-        <size>101</size>
-      </method>
-      <method name="Void QuoteTest()" attrs="129">
-        <size>86</size>
-      </method>
-      <method name="Void QuoteTest_2()" attrs="129">
-        <size>100</size>
-      </method>
-      <method name="Void RightShiftTest()" attrs="129">
-        <size>153</size>
-      </method>
-      <method name="Void RightShiftTest_2()" attrs="129">
-        <size>160</size>
-      </method>
-      <method name="Void RightShiftTest_3()" attrs="129">
-        <size>169</size>
-      </method>
-      <method name="Void RightShiftTest_4()" attrs="129">
-        <size>259</size>
-      </method>
-      <method name="Void RightShiftTest_5()" attrs="129">
-        <size>153</size>
-      </method>
-      <method name="Void RightShiftTest_6()" attrs="129">
-        <size>146</size>
-      </method>
-      <method name="Void SubtractTest()" attrs="129">
-        <size>101</size>
-      </method>
-      <method name="Void SubtractTest_2()" attrs="129">
-        <size>119</size>
-      </method>
-      <method name="Void SubtractTest_3()" attrs="129">
-        <size>131</size>
-      </method>
-      <method name="Void SubtractTest_4()" attrs="129">
-        <size>192</size>
-      </method>
-      <method name="Void SubtractTest_5()" attrs="129">
-        <size>135</size>
-      </method>
-      <method name="Void SubtractTest_6()" attrs="129">
-        <size>161</size>
-      </method>
-      <method name="Void SubtractTest_7()" attrs="129">
-        <size>114</size>
-      </method>
-      <method name="Void SubtractTest_8()" attrs="129">
-        <size>147</size>
-      </method>
-      <method name="Void SubtractTest_9()" attrs="129">
-        <size>143</size>
-      </method>
-      <method name="Void SubtractTest_10()" attrs="129">
-        <size>162</size>
-      </method>
-      <method name="Void SubtractTest_11()" attrs="129">
-        <size>158</size>
-      </method>
-      <method name="Void SubtractCheckedTest()" attrs="129">
-        <size>128</size>
-      </method>
-      <method name="Void SubtractCheckedTest_2()" attrs="129">
-        <size>188</size>
-      </method>
-      <method name="Void SubtractCheckedTest_3()" attrs="129">
-        <size>133</size>
-      </method>
-      <method name="Void SubtractCheckedTest_4()" attrs="129">
-        <size>124</size>
-      </method>
-      <method name="Void TypeAsTest()" attrs="129">
-        <size>81</size>
-      </method>
-      <method name="Void TypeAsTest_2()" attrs="129">
-        <size>145</size>
-      </method>
-      <method name="Void TypeAsTest_3()" attrs="129">
-        <size>86</size>
-      </method>
-      <method name="Void TypeAsTest_4()" attrs="129">
-        <size>114</size>
-      </method>
-      <method name="Void TypeIsTest()" attrs="129">
-        <size>104</size>
-      </method>
-      <method name="Void TypeIsTest_2()" attrs="129">
-        <size>104</size>
-      </method>
-      <method name="Void TypeIsTest_3()" attrs="129">
-        <size>86</size>
-      </method>
-      <method name="Void TypeIsTest_4()" attrs="129">
-        <size>81</size>
-      </method>
-      <method name="Void TypeIsTest_5()" attrs="129">
-        <size>75</size>
-      </method>
-      <method name="Void TypeIsTest_6()" attrs="129">
-        <size>112</size>
-      </method>
-      <method name="Void UnaryPlusTest()" attrs="129">
-        <size>68</size>
-      </method>
-      <method name="Void UnaryPlusTest_2()" attrs="129">
-        <size>48</size>
-      </method>
-      <method name="Void UnaryPlusTest_3()" attrs="129">
-        <size>98</size>
-      </method>
-      <method name="Void UnaryPlusTest_4()" attrs="129">
-        <size>142</size>
-      </method>
-      <method name="Void UnaryPlusTest_5()" attrs="129">
-        <size>141</size>
-      </method>
-      <method name="System.String InstanceMethod(System.String)" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="System.Object InstanceParamsMethod(Int32, System.Object[])" attrs="129">
-        <size>48</size>
-      </method>
-      <method name="Int32 TestInt()" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="T GenericMethod[T](T)" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Void RefMethod(Int32 ByRef)" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
-        <size>80</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>187</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+EmptyDelegate">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Tester+IntDelegate">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ConvertTest_9&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;MemberAccessTest&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;MemberAccessTest_3&gt;c__AnonStorey2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;MemberAccessTest_4&gt;c__AnonStorey3">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;MemberAccessTest_6&gt;c__AnonStorey4">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;MemberAccessTest_9&gt;c__AnonStorey5">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;A&gt;__T,&lt;Value&gt;__T]">
-      <method name="&lt;A&gt;__T get_A()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;Value&gt;__T get_Value()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;A&gt;__T, &lt;Value&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Void LessThanTest_9()" attrs="129">
-        <size>184</size>
-      </method>
-      <method name="Void AssertNodeType(System.Linq.Expressions.LambdaExpression, System.Linq.Expressions.ExpressionType)" attrs="145">
-        <size>57</size>
-      </method>
-    </type>
-    <type name="Tester+EmptyDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Tester+IntDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Void EqualTest_16()" attrs="129">
-        <size>185</size>
-      </method>
-      <method name="Void &lt;EqualTestDelegate_2&gt;m__0()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;EqualTestDelegate_2&gt;m__1()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;EqualTestDelegate_2&gt;m__2()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;EqualTestDelegate_2&gt;m__3()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;EqualTestDelegate_2&gt;m__4()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="System.String &lt;InvokeTest_2&gt;m__5(Int32)" attrs="145">
-        <size>25</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__6(System.Reflection.MethodInfo)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__7(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__8(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__9(Boolean)" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-    <type name="StructWithUserConstructor">
-      <method name="Void .ctor()" attrs="6278">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Void NewTest_8()" attrs="129">
-        <size>140</size>
-      </method>
-      <method name="Void CallTest_10()" attrs="129">
-        <size>137</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-02.cs">
-    <type name="M">
-      <method name="Void Foo[T](System.Linq.Expressions.Expression`1[System.Func`2[T,T]])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="System.String Param(System.String)" attrs="145">
-        <size>122</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>173</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M+&lt;Param&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-03.cs">
-    <type name="S`1[T]">
-      <method name="Int32 Test()" attrs="150">
-        <size>139</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-04.cs">
-    <type name="Foo">
-      <method name="Boolean op_GreaterThan(Foo, Foo)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Boolean op_LessThan(Foo, Foo)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Boolean op_Equality(Foo, Foo)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Boolean op_Inequality(Foo, Foo)" attrs="2198">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>495</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Foo op_Addition(Foo, Foo)" attrs="2198">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-05.cs">
-    <type name="C">
-      <method name="Void Assert[T](T, T)" attrs="145">
-        <size>48</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>358</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void AssertNodeType(System.Linq.Expressions.LambdaExpression, System.Linq.Expressions.ExpressionType)" attrs="145">
-        <size>57</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-06.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>53</size>
-      </method>
-      <method name="Int32 Value()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-07.cs">
-    <type name="EmptyDelegate">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="UnsafeDelegate">
-      <method name="Int32* Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Test()" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32* Foo()" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Void M()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Int32 TestInstance()" attrs="129">
-        <size>339</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>583</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="EmptyDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="UnsafeDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32* EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-08.cs">
-    <type name="Foo">
-      <method name="Int32 ThisMethod()" attrs="129">
-        <size>11</size>
-      </method>
-      <method name="Int32 Goo(Boolean)" attrs="134">
-        <size>231</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo+&lt;Goo&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-09.cs">
-    <type name="Mono.C">
-      <method name="Int32 Main()" attrs="150">
-        <size>296</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Mono.C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Mono.C">
-      <method name="Int64[] GetValues()" attrs="145">
-        <size>26</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-10.cs">
-    <type name="Foo`1[T]">
-      <method name="Boolean Contains(T)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>50</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1+&lt;ContainsAll&gt;c__AnonStorey0`1[T,U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="Boolean ContainsAll[U](System.Collections.Generic.IEnumerable`1[U])" attrs="134">
-        <size>200</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-11.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Invalid(Int32)" attrs="134">
-        <size>125</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Invalid&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Other(Int32[])" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-12.cs">
-    <type name="TestCase">
-      <method name="Boolean StaticMethodTakingAnExpression(System.Linq.Expressions.Expression`1[System.Func`2[System.Object,System.Boolean]])" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void DummyToMakeTheStaticsInitialize()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>68</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-13.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>66</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Test&gt;c__Iterator0`1[T]">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>148</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test[T](Int32)" attrs="145">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Test&gt;c__Iterator0`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Test&gt;c__Iterator0`1+&lt;Test&gt;c__AnonStorey1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-14.cs">
-    <type name="Person">
-      <method name="Int32 get_Age()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Age(Int32)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Repro">
-      <method name="Int32 Main()" attrs="150">
-        <size>67</size>
-      </method>
-      <method name="Boolean Test[T](T, System.Linq.Expressions.Expression`1[System.Func`2[T,System.Boolean]])" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Repro+&lt;GetPersons&gt;c__Iterator0`1[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>336</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>69</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Repro">
-      <method name="System.Collections.Generic.IEnumerable`1[T] GetPersons[T](System.Collections.Generic.IEnumerable`1[T], Int32)" attrs="145">
-        <size>37</size>
-      </method>
-    </type>
-    <type name="Repro+&lt;GetPersons&gt;c__Iterator0`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Repro+&lt;GetPersons&gt;c__Iterator0`1+&lt;GetPersons&gt;c__AnonStorey1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-15.cs">
-    <type name="Foo">
-      <method name="Int32 Helper(System.Linq.Expressions.Expression`1[System.Predicate`1[System.Int32]])" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>191</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-16.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>152</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-17.cs">
-    <type name="CompilerCrashTest.QueryCompiler">
-      <method name="D Compile[D](System.Linq.Expressions.Expression`1[D])" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="System.Delegate Compile(System.Linq.Expressions.LambdaExpression)" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-18.cs">
-    <type name="FooBase">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>156</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-19.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="T Value[T]()" attrs="145">
-        <size>86</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-20.cs">
-    <type name="S">
-      <method name="Int32 Main()" attrs="150">
-        <size>226</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="A op_Implicit(S)" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-22.cs">
-    <type name="FieldInfoBug.MonoRuntime">
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FieldInfoBug.GenericClass`1[T]">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>59</size>
-      </method>
-    </type>
-    <type name="FieldInfoBug.GenericClass`1+&lt;GenericClass&gt;c__AnonStorey0[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-23.cs">
-    <type name="Test.OrderBySpecification">
-      <method name="Void .ctor(Expression`1)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Test.RateOrderById">
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>45</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-24.cs">
-    <type name="NotifyingProperty">
-      <method name="Void CreateDependent[TValue](System.Linq.Expressions.Expression`1[System.Func`1[TValue]], System.Func`1[System.Object], System.Linq.Expressions.Expression`1[System.Func`1[System.Object]][])" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="NotifyingPropertyTest">
-      <method name="Void CreateDependent_NotifierNull()" attrs="134">
-        <size>59</size>
-      </method>
-      <method name="Void CreateDependent_DependentsNull()" attrs="134">
-        <size>84</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="NotifyingPropertyTest+&lt;CreateDependent_NotifierNull&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="NotifyingPropertyTest+&lt;CreateDependent_DependentsNull&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="NotifyingPropertyTest">
-      <method name="System.Object &lt;CreateDependent_DependentsNull&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-25.cs">
-    <type name="Foo">
-      <method name="Void OnBaz(IBaz)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void RunOnBaz(System.Action`1[IBaz])" attrs="486">
-        <size>9</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>222</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-26.cs">
-    <type name="A`1[TA]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+B`1[TA,TB]">
-      <method name="Void foo()" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+B`1+C`1[TA,TB,TC]">
-      <method name="Void bar()" attrs="145">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-27.cs">
-    <type name="Node">
-      <method name="System.String get_Name()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Name(System.String)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Node get_Parent()" attrs="2182">
-        <size>27</size>
-      </method>
-      <method name="Void set_Parent(Node)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="System.Collections.Generic.List`1[System.Int32] get_Values()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Values(System.Collections.Generic.List`1[System.Int32])" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>1210</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-28.cs">
-    <type name="Repro">
-      <method name="Void UseField()" attrs="129">
-        <size>70</size>
-      </method>
-      <method name="Void TakeExpression(System.Linq.Expressions.Expression`1[System.Action])" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-29.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>217</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-etree-30.cs">
-    <type name="C">
-      <method name="System.Action`2[System.Object,System.Object] get_TappedCallback()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_TappedCallback(System.Action`2[System.Object,System.Object])" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="System.String Create[T1,T2](System.Linq.Expressions.Expression`1[System.Func`2[T1,T2]])" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>76</size>
-      </method>
-      <method name="Void .ctor(Action`2)" attrs="6278">
-        <size>76</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-01.cs">
-    <type name="SimpleTest">
-      <method name="System.String Prefix(System.String, System.String)" attrs="150">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Int32 Main()" attrs="150">
-        <size>185</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-02.cs">
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.M">
-      <method name="Void Test2()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-03.cs">
-    <type name="A.A">
-      <method name="Int32 Foo(Int32)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo(Int32, System.String)" attrs="150">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="B.X">
-      <method name="Int32 Foo(Int32)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo(Int32, Boolean)" attrs="150">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="C.F">
-      <method name="Boolean Foo(Byte)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="C.D.F">
-      <method name="Int32 Foo(Int32)" attrs="150">
-        <size>11</size>
-      </method>
-      <method name="Void TestX()" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="C.M">
-      <method name="Int32 Foo(Int32)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>84</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-04.cs">
-    <type name="A.Test">
-      <method name="System.String Test_1(Boolean)" attrs="150">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="B.M">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-05.cs">
-    <type name="A.Test_A">
-      <method name="System.String Test_1(System.String)" attrs="150">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="A.Test_B">
-      <method name="System.String Test_2(System.String)" attrs="150">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="B.M">
-      <method name="Void Main()" attrs="150">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-06.cs">
-    <type name="Gen">
-      <method name="T Test_1[T](T)" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="System.String Test_1[T](System.String)" attrs="150">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="B.M">
-      <method name="Void Main()" attrs="150">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-07.cs">
-    <type name="E">
-      <method name="Void To(IA)" attrs="147">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="Void ToReadOnly[T](System.Collections.Generic.IEnumerable`1[T])" attrs="147">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Test(System.Collections.Generic.IEnumerable`1[System.Boolean])" attrs="150">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-08.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-09.cs">
-    <type name="Test">
-      <method name="Void Foo[T](System.String)" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-10.cs">
-    <type name="AExtensions">
-      <method name="Int32 Round(Double)" attrs="150">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="BExtensions">
-      <method name="T GetBy[T](T[], Double)" attrs="150">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-11.cs">
-    <type name="Test">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Lol">
-      <method name="Boolean OneEleven(System.Object)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-12.cs">
-    <type name="Program">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>64</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ChatClient">
-      <method name="Void Say(System.String, System.String)" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ChatExtensions">
-      <method name="Void Say(ChatClient, System.String, System.Collections.Specialized.StringCollection)" attrs="150">
-        <size>68</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-13.cs">
-    <type name="Foo">
-      <method name="Void Main()" attrs="150">
-        <size>24</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[T] Reverse[T](System.Collections.Generic.IEnumerable`1[T])" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-14.cs">
-    <type name="C">
-      <method name="Void Foo(IA)" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void Bar[U](IA)" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void Foo[T](IA)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-15.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="TAttribute GetCustomAttribute[TAttribute](System.Reflection.ICustomAttributeProvider)" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="TAttribute[] GetCustomAttributes[TAttribute](System.Reflection.ICustomAttributeProvider)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-16.cs">
-    <type name="Rocks">
-      <method name="Boolean Extension(System.String)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Boolean Extension(D)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.String Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void add_e(D)" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void remove_e(D)" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="System.String get_Item(Int32)" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="System.String get_Property()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>45</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-17.cs">
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>46</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-18.cs">
-    <type name="Foo">
-      <method name="Boolean get_IsBar()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FooExt">
-      <method name="Boolean IsBar(Foo)" attrs="150">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Repro">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-19.cs">
-    <type name="Rocks">
-      <method name="System.String Test_1(System.String)" attrs="150">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>173</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+D">
-      <method name="System.String Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Rocks">
-      <method name="Int32 Test_2[T](System.Collections.Generic.IEnumerable`1[T])" attrs="150">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="Test+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-20.cs">
-    <type name="Outer.Inner.Test">
-      <method name="Void M(I)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Outer.ExtensionMethods">
-      <method name="Void AddRange[T](I, System.Collections.Generic.IEnumerable`1[T])" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-21.cs">
-    <type name="Outer.Inner.Test">
-      <method name="Void M(I)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="External.ExtensionMethods">
-      <method name="Void AddRange(I)" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-22.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-23.cs">
-    <type name="T">
-      <method name="Void A(System.String, Int32)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-24.cs">
-    <type name="Bar">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-25.cs">
-    <type name="Bar">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-26.cs">
-    <type name="test.TypeExtensions">
-      <method name="Boolean IsNullable(System.Type)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="testmono.MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-27.cs">
-    <type name="Bar.Program">
-      <method name="Void Main()" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo.Extensions">
-      <method name="System.String AsString(System.Collections.Generic.IList`1[System.Byte])" attrs="150">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Bar.Program">
-      <method name="System.String Pan(Byte[])" attrs="147">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-28.cs">
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Extensions">
-      <method name="Boolean IsFoo(Foo)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Boolean IsBar(Bar)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-29.cs">
-    <type name="My">
-      <method name="Void set_ContentTransferEncoding(Boolean)" attrs="2177">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>58</size>
-      </method>
-      <method name="Int32 ContentTransferEncoding[T](My)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 ContentTransferEncoding(My)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-30.cs">
-    <type name="Test">
-      <method name="Int32 get_First()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Test()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] GetEnumerator()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-31.cs">
-    <type name="N.S">
-      <method name="Void Map[T](Int32, System.Func`2[T,System.String])" attrs="147">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="N2.S2">
-      <method name="Void Map(Int32, Int32)" attrs="147">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="M.C">
-      <method name="Void Main()" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-32.cs">
-    <type name="A">
-      <method name="Int32 get_Count()" attrs="2180">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="G`1[T]">
-      <method name="Void Test()" attrs="129">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Extensions">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Extensions">
-      <method name="Int32 Count(System.Collections.IEnumerable)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-33.cs">
-    <type name="Prop">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="HelperExtensions">
-      <method name="Void Foo(I, I)" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="I get_Prop()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void Test()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32[] get_Loc()" attrs="2182">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-34.cs">
-    <type name="Program">
-      <method name="Void Foo(System.Object)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-35.cs">
-    <type name="A">
-      <method name="Void Test(Int32)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-36.cs">
-    <type name="S">
-      <method name="System.String get_Prop()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="Int32 Prop(S)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 Prop(S2)" attrs="150">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-37.cs">
-    <type name="S">
-      <method name="Void Extension(A, System.String, Boolean)" attrs="150">
-        <size>12</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void Extension(System.String)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void TestMethod(System.Action`1[System.Boolean])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 TestMethod(System.Action`1[System.String])" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>46</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-38.cs">
-    <type name="Repro2.Color">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>38</size>
-      </method>
-    </type>
-    <type name="Repro2.MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Repro2.ExtensionMethods">
-      <method name="Repro2.Color Transparent(Repro2.Color)" attrs="150">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-39.cs">
-    <type name="Extra.S">
-      <method name="Int32 Prefix(System.String, System.String)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="SimpleTest">
-      <method name="Int32 Prefix(System.String, System.String, Boolean)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Int32 Main()" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-40.cs">
-    <type name="N.Extensions.s">
-      <method name="Void ShouldEqual(System.String, System.String, System.String, System.String, System.String)" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="N.Main.C">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-41.cs">
-    <type name="TT">
-      <method name="Void Test[U](U)" attrs="150">
-        <size>25</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TT">
-      <method name="Void Method[T](System.Collections.Generic.IEnumerable`1[T], System.Func`2[T,System.Boolean])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Boolean &lt;Test`1&gt;m__0[U](System.String)" attrs="145">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-42.cs">
-    <type name="C">
-      <method name="Void Foo(Int32)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Foo()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-43.cs">
-    <type name="AdapterType">
-      <method name="Void DoSomething()" attrs="452">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Extensions">
-      <method name="Void DoSomething(AdapterType)" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Dummy">
-      <method name="Boolean Refresh()" attrs="454">
-        <size>18</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-44.cs">
-    <type name="UnusedFieldWarningTest2.Repro">
-      <method name="Void Foo()" attrs="129">
-        <size>18</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>23</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-45.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-46.cs">
-    <type name="ExtensionTest.Two.AxFunc`2[T1,TResult]">
-      <method name="TResult Invoke(T1)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="ExtensionTest.MyClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="ExtensionTest.Two.Extensions">
-      <method name="Boolean Contains[T](System.Collections.Generic.IEnumerable`1[T], T)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Boolean All[T](System.Collections.Generic.IEnumerable`1[T], ExtensionTest.Two.AxFunc`2[T,System.Boolean])" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="ExtensionTest.Two.AxFunc`2[T1,TResult]">
-      <method name="System.IAsyncResult BeginInvoke(T1, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="TResult EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="ExtensionTest.MyClass">
-      <method name="Boolean IsCharacters(System.String, Char[])" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="Boolean Contains(System.String, System.String, System.StringComparison)" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-exmethod-47.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="Void Foo(Int32)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Extension">
-      <method name="Void Foo(S)" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-fixedbuffer-01.cs">
-    <type name="TestNew">
-      <method name="Void SetTest()" attrs="134">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Test()" attrs="145">
-        <size>368</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-fixedbuffer-02.cs">
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-fixedbuffer-03.cs">
-    <type name="Bug.RedSkyTimeCode">
-      <method name="Void CopyTo(Bug.xxx*)" attrs="134">
-        <size>102</size>
-      </method>
-      <method name="Void Convert(Bug.xxx*, UInt64*)" attrs="150">
-        <size>94</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-fixedbuffer-04.cs">
-    <type name="aClass">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-fixedbuffer-05.cs">
-    <type name="S2">
-      <method name="Void Test()" attrs="134">
-        <size>42</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-fixedbuffer-06.cs">
-    <type name="Bug.Demo">
-      <method name="Boolean Fixed()" attrs="129">
-        <size>23</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>88</size>
-      </method>
-      <method name="Boolean Foo(Int32[])" attrs="145">
-        <size>52</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-fixedbuffer-07.cs">
-    <type name="C">
-      <method name="Void Goo()" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-fixedbuffer-08.cs">
-    <type name="A">
-      <method name="Int32 Main()" attrs="150">
-        <size>198</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-fixedbuffer-09.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>151</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-fixedbuffer-10.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestStruct">
-      <method name="TestStruct get_Default()" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-friend-01.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-friend-02.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-friend-03.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-friend-04.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-friend-05.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-friend-06.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-friend-07.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-friend-08.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-friend-09.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-friend-10.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-friend-11.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-friend-12.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-friend-13.cs">
-    <type name="B">
-      <method name="Void Test()" attrs="197">
-        <size>2</size>
-      </method>
-      <method name="Void Test_2()" attrs="195">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-friend-14.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-implicitarray-01.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>329</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-implicitarray-02.cs">
-    <type name="MyString">
-      <method name="System.String op_Implicit(MyString)" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>63</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-implicitarray-03.cs">
-    <type name="InferArrayType">
-      <method name="Void foo(System.Func`2[System.Linq.Expressions.Expression,System.Boolean][])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void bar(System.Action`1[System.Linq.Expressions.Expression], System.Func`2[System.Linq.Expressions.Expression,System.Boolean])" attrs="150">
-        <size>45</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="InferArrayType+&lt;bar&gt;c__AnonStorey0">
-      <method name="Boolean &lt;&gt;m__0(System.Linq.Expressions.Expression)" attrs="131">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-initialize-01.cs">
-    <type name="MyClass">
-      <method name="Int32 get_Answer()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Answer(Int32)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>85</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-initialize-02.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>1280</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+Point">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+Line">
-      <method name="Void .ctor()" attrs="6278">
-        <size>29</size>
-      </method>
-    </type>
-    <type name="Test+Rectangle">
-      <method name="Void .ctor()" attrs="6278">
-        <size>51</size>
-      </method>
-    </type>
-    <type name="Test+Library">
-      <method name="Void .ctor()" attrs="6278">
-        <size>54</size>
-      </method>
-    </type>
-    <type name="Test+Thing">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+Box">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-initialize-03.cs">
-    <type name="Data">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void set_Prop(Data)" attrs="2193">
-        <size>2</size>
-      </method>
-      <method name="System.Object Foo()" attrs="134">
-        <size>23</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-initialize-04.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>34</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-initialize-05.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>271</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-initialize-06.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>57</size>
-      </method>
-      <method name="Void Foo(Point ByRef)" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-initialize-07.cs">
-    <type name="A">
-      <method name="System.String get_Name()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Name(System.String)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Boolean Matches(System.String)" attrs="134">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Int32 Main()" attrs="150">
-        <size>50</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-initialize-08.cs">
-    <type name="T">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Z[] get_Prop()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Prop(Z[])" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>71</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>71</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-initialize-09.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>66</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-initialize-10.cs">
-    <type name="Foo">
-      <method name="Int32 get_P()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_P(Int32)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Int32 Main()" attrs="150">
-        <size>51</size>
-      </method>
-      <method name="Boolean Do(Foo)" attrs="145">
-        <size>104</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-initialize-11.cs">
-    <type name="InlineAssignmentTest.Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="InlineAssignmentTest.MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-initialize-12.cs">
-    <type name="C">
-      <method name="Void set_Foo(Int32)" attrs="2246">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void set_Foo(Int32)" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void set_Foo(Int32)" attrs="2193">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-initialize-13.cs">
-    <type name="EventInitializerTest">
-      <method name="Void add_a(System.Action)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_a(System.Action)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void add_b(System.Action)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_b(System.Action)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void add_c(System.Action)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_c(System.Action)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>66</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-initialize-14.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>154</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-01.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+ArrayReadOnlyList`1[T]">
-      <method name="T get_Item(Int32)" attrs="2182">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C+ArrayReadOnlyList`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>143</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+ArrayReadOnlyList`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="134">
-        <size>22</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-02.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]] Test()" attrs="129">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.Generic.KeyValuePair`2[System.String,System.Object] System.Collections.Generic.IEnumerator&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-03.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Annotations&gt;c__Iterator0`1[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>204</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>69</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Annotations&gt;c__Iterator1">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>232</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>64</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.Generic.IEnumerable`1[T] Annotations[T]()" attrs="134">
-        <size>30</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.Object] Annotations(System.Type)" attrs="134">
-        <size>37</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Annotations&gt;c__Iterator0`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Annotations&gt;c__Iterator1">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Annotations&gt;c__Iterator0`1[T]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Annotations&gt;c__Iterator1">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-04.cs">
-    <type name="TestClass">
-      <method name="Void ToString(System.Object)" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void Test()" attrs="134">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestClass+&lt;TestEnumerator&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>38</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestClass">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Object] TestEnumerator()" attrs="134">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="TestClass+&lt;TestEnumerator&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-05.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="Void CreateItem[G]()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestRoutine&gt;c__Iterator0`1[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>197</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>69</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.Generic.IEnumerable`1[T] TestRoutine[T](System.Collections.Generic.IEnumerable`1[T], Foo`1[T])" attrs="150">
-        <size>37</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestRoutine&gt;c__Iterator0`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-06.cs">
-    <type name="Mono.Rocks.Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>128</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Mono.Rocks.Sequence+&lt;CreateUnfoldrIterator&gt;c__Iterator0`2[TSource,TResult]">
-      <method name="TResult System.Collections.Generic.IEnumerator&lt;TResult&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>192</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Mono.Rocks.KeyValuePair">
-      <method name="System.Nullable`1[System.Collections.Generic.KeyValuePair`2[TKey,TValue]] Just[TKey,TValue](TKey, TValue)" attrs="150">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="Mono.Rocks.Sequence">
-      <method name="System.Collections.Generic.IEnumerable`1[TResult] Unfoldr[TSource,TResult](TSource, System.Func`2[TSource,System.Nullable`1[System.Collections.Generic.KeyValuePair`2[TResult,TSource]]])" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[TResult] CreateUnfoldrIterator[TSource,TResult](TSource, System.Func`2[TSource,System.Nullable`1[System.Collections.Generic.KeyValuePair`2[TResult,TSource]]])" attrs="145">
-        <size>44</size>
-      </method>
-    </type>
-    <type name="Mono.Rocks.Sequence+&lt;CreateUnfoldrIterator&gt;c__Iterator0`2[TSource,TResult]">
-      <method name="System.Collections.Generic.IEnumerator`1[TResult] System.Collections.Generic.IEnumerable&lt;TResult&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Mono.Rocks.Test">
-      <method name="System.Nullable`1[System.Collections.Generic.KeyValuePair`2[System.Int32,System.Int32]] &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>37</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-07.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MySystem">
-      <method name="Void .ctor()" attrs="6278">
-        <size>35</size>
-      </method>
-    </type>
-    <type name="MySystem+&lt;&gt;c__Iterator0">
-      <method name="System.String System.Collections.Generic.IEnumerator&lt;string&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>197</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>64</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void TestFunction(System.Collections.Generic.IEnumerable`1[System.String])" attrs="150">
-        <size>36</size>
-      </method>
-    </type>
-    <type name="MySystem">
-      <method name="System.Collections.Generic.IEnumerable`1[System.String] get_Items()" attrs="2182">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="MySystem+&lt;&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.String] System.Collections.Generic.IEnumerable&lt;string&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-08.cs">
-    <type name="App">
-      <method name="Int32 Main()" attrs="150">
-        <size>137</size>
-      </method>
-      <method name="T TestType[T]()" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="System.Object TestType(System.Type)" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="App+&lt;QueryEnumerable&gt;c__Iterator0`1[T]">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>91</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="App">
-      <method name="System.Collections.IEnumerable QueryEnumerable[T]()" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="App+&lt;QueryEnumerable&gt;c__Iterator0`1[T]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-09.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>89</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Create&gt;c__Iterator0`1[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>137</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.Generic.IEnumerable`1[T] Create[T](T[,])" attrs="145">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Create&gt;c__Iterator0`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-10.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>185</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;FromTo&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>110</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] FromTo(Int32, Int32)" attrs="145">
-        <size>44</size>
-      </method>
-    </type>
-    <type name="Test+&lt;FromTo&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-11.cs">
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="System.String get_Name()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Name(System.String)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Collection`1[T]">
-      <method name="Void Add(T)" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="BarCollection">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>157</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Collection`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>184</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>64</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Collection`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="486">
-        <size>22</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-12.cs">
-    <type name="H">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="H+&lt;Merge&gt;c__Iterator0`1[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>124</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="H">
-      <method name="System.Collections.Generic.IEnumerable`1[T] Merge[T](System.Collections.Generic.IEnumerator`1[T])" attrs="150">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="H+&lt;Merge&gt;c__Iterator0`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-13.cs">
-    <type name="C`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>63</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1+&lt;Filter&gt;c__Iterator0[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>225</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>83</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1[T]">
-      <method name="System.Collections.Generic.IEnumerable`1[T] Filter(System.Func`2[T,System.Boolean])" attrs="134">
-        <size>37</size>
-      </method>
-    </type>
-    <type name="C`1+&lt;Filter&gt;c__Iterator0[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-    </type>
-    <type name="C`1[T]">
-      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="134">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="C`1+&lt;Filter&gt;c__Iterator0[T]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-14.cs">
-    <type name="A">
-      <method name="Int32 get_BaseM()" attrs="2500">
-        <size>10</size>
-      </method>
-      <method name="Void set_BaseM(Int32)" attrs="2500">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void set_BaseM(Int32)" attrs="2244">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="Int32 &lt;GetHashCode&gt;__BaseCallProxy0()" attrs="129">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void set_BaseM(Int32)" attrs="2244">
-        <size>12</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>145</size>
-      </method>
-      <method name="Int32 &lt;get_BaseM&gt;__BaseCallProxy0()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void &lt;set_BaseM&gt;__BaseCallProxy1(Int32)" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S+&lt;GetIt&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>82</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] GetIt()" attrs="134">
-        <size>35</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] GetIt()" attrs="129">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="S+&lt;GetIt&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>93</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S+&lt;GetIt&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-15.cs">
-    <type name="C`1[TFirst]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1+VSlot`1[TFirst,T]">
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>130</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1+&lt;GetEnumerable&gt;c__Iterator0`1[TFirst,V]">
-      <method name="V System.Collections.Generic.IEnumerator&lt;V&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>189</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>69</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1[TFirst]">
-      <method name="System.Collections.Generic.IEnumerable`1[V] GetEnumerable[V](System.Collections.Generic.IEnumerable`1[C`1+VSlot`1[TFirst,V]])" attrs="131">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="C`1+&lt;GetEnumerable&gt;c__Iterator0`1[TFirst,V]">
-      <method name="System.Collections.Generic.IEnumerator`1[V] System.Collections.Generic.IEnumerable&lt;V&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-16.cs">
-    <type name="Test.Base">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Derived">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.SpecialDerived">
-      <method name="Void Main()" attrs="150">
-        <size>65</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Base+&lt;GetStuff&gt;c__Iterator0">
-      <method name="Test.Base System.Collections.Generic.IEnumerator&lt;Test.Base&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>77</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Base">
-      <method name="System.Collections.Generic.IEnumerable`1[Test.Base] GetStuff(Int32)" attrs="454">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="Test.Derived">
-      <method name="System.Collections.Generic.IEnumerable`1[Test.Base] GetStuff(Int32)" attrs="198">
-        <size>37</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[Test.Base] &lt;GetStuff&gt;__BaseCallProxy0(Int32)" attrs="129">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test.SpecialDerived">
-      <method name="System.Collections.Generic.IEnumerable`1[Test.Base] GetStuff(Int32)" attrs="198">
-        <size>37</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[Test.Base] &lt;GetStuff&gt;__BaseCallProxy0(Int32)" attrs="129">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test.Base+&lt;GetStuff&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[Test.Base] System.Collections.Generic.IEnumerable&lt;Test.Base&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="Test.Derived+&lt;GetStuff&gt;c__Iterator0">
-      <method name="Test.Base System.Collections.Generic.IEnumerator&lt;Test.Base&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>195</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>69</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[Test.Base] System.Collections.Generic.IEnumerable&lt;Test.Base&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.SpecialDerived+&lt;GetStuff&gt;c__Iterator0">
-      <method name="Test.Base System.Collections.Generic.IEnumerator&lt;Test.Base&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>195</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>69</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[Test.Base] System.Collections.Generic.IEnumerable&lt;Test.Base&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Base+&lt;GetStuff&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Test.Derived+&lt;GetStuff&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Test.SpecialDerived+&lt;GetStuff&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-17.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestMethod&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>37</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] TestMethod()" attrs="134">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestMethod&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-18.cs">
-    <type name="c">
-      <method name="Void Main()" attrs="150">
-        <size>57</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="c+&lt;func&gt;c__Iterator0">
-      <method name="Char System.Collections.Generic.IEnumerator&lt;char&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>78</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="c">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Char] func()" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="c+&lt;func&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Char] System.Collections.Generic.IEnumerable&lt;char&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-19.cs">
-    <type name="IEnumerableTransform">
-      <method name="Int32 Main()" attrs="150">
-        <size>64</size>
-      </method>
-    </type>
-    <type name="IEnumerableTransform+EmitterFunc`1[TOut]">
-      <method name="Void Invoke(TOut ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="IEnumerableTransform+&lt;Transform&gt;c__Iterator0`1[TOut]">
-      <method name="TOut System.Collections.Generic.IEnumerator&lt;TOut&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>203</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>69</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="IEnumerableTransform+&lt;Emit&gt;c__AnonStorey1`1[TOut]">
-      <method name="Void &lt;&gt;m__0(TOut ByRef)" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="IEnumerableTransform+&lt;Transform&gt;c__Iterator0`1[TOut]">
-      <method name="System.Collections.Generic.IEnumerator`1[TOut] System.Collections.Generic.IEnumerable&lt;TOut&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-    </type>
-    <type name="IEnumerableTransform">
-      <method name="System.Collections.Generic.IEnumerable`1[TOut] Transform[TOut](System.Collections.Generic.IEnumerable`1[System.Int32], EmitterFunc`1)" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="EmitterFunc`1 Emit[TOut](TOut)" attrs="150">
-        <size>34</size>
-      </method>
-    </type>
-    <type name="IEnumerableTransform+EmitterFunc`1[TOut]">
-      <method name="System.IAsyncResult BeginInvoke(TOut ByRef, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(TOut ByRef, System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="IEnumerableTransform+&lt;Transform&gt;c__Iterator0`1[TOut]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-20.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>72</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetAll&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>77</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerable GetAll()" attrs="145">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetAll&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-21.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>72</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Void &lt;&gt;__Finally0()" attrs="129">
-        <size>29</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>150</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>57</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test()" attrs="129">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-22.cs">
-    <type name="D">
-      <method name="Void Dispose()" attrs="486">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>78</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>74</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test()" attrs="129">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-23.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>180</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>271</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_2&gt;c__Iterator1">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>200</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey2">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_2&gt;c__Iterator1+&lt;Test_2&gt;c__AnonStorey3">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test()" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test_2()" attrs="145">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_2&gt;c__Iterator1">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_2&gt;c__Iterator1+&lt;Test_2&gt;c__AnonStorey3">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_2&gt;c__Iterator1">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-24.cs">
-    <type name="B">
-      <method name="Void Dispose()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void DoSomething()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>71</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>170</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>53</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void &lt;&gt;__Finally0()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test()" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-25.cs">
-    <type name="Test.Program">
-      <method name="Void Main()" attrs="150">
-        <size>61</size>
-      </method>
-    </type>
-    <type name="Test.Program+&lt;Test&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>143</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>53</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void &lt;&gt;__Finally0()" attrs="129">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Program">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Object] Test()" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Test.Program+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-26.cs">
-    <type name="Test.Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>51</size>
-      </method>
-    </type>
-    <type name="Test.Program+&lt;Test&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>72</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Program">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Object] Test()" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Test.Program+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-27.cs">
-    <type name="CompilerBug">
-      <method name="Void Main()" attrs="150">
-        <size>61</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CompilerBug+&lt;Foo&gt;c__Iterator0">
-      <method name="System.String System.Collections.Generic.IEnumerator&lt;string&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>161</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CompilerBug">
-      <method name="System.Collections.Generic.IEnumerable`1[System.String] Foo()" attrs="145">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="CompilerBug+&lt;Foo&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.String] System.Collections.Generic.IEnumerable&lt;string&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-28.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+&lt;Test&gt;c__Iterator0">
-      <method name="System.String System.Collections.Generic.IEnumerator&lt;string&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>178</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey2">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>50</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="System.Collections.Generic.IEnumerable`1[System.String] Test(B)" attrs="134">
-        <size>37</size>
-      </method>
-    </type>
-    <type name="A+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.String] System.Collections.Generic.IEnumerable&lt;string&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-29.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Test2&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>21</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test2()" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Test2&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-30.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test()" attrs="134">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M+&lt;Test&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>101</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>57</size>
-      </method>
-    </type>
-    <type name="M+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="M+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-31.cs">
-    <type name="B">
-      <method name="System.Object Foo(System.Object)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>62</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.UInt16] Test()" attrs="129">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="UInt16 System.Collections.Generic.IEnumerator&lt;ushort&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>81</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.UInt16] System.Collections.Generic.IEnumerable&lt;ushort&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="System.Object &lt;&gt;m__0(System.String)" attrs="131">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-32.cs">
-    <type name="TestGoto">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>71</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.Boolean] setX()" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.Boolean] test()" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestGoto+&lt;setX&gt;c__Iterator0">
-      <method name="Boolean System.Collections.Generic.IEnumerator&lt;bool&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>115</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>53</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Boolean] System.Collections.Generic.IEnumerable&lt;bool&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="Void &lt;&gt;__Finally0()" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestGoto+&lt;test&gt;c__Iterator1">
-      <method name="Boolean System.Collections.Generic.IEnumerator&lt;bool&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>189</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>69</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Boolean] System.Collections.Generic.IEnumerable&lt;bool&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestGoto+&lt;setX&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="TestGoto+&lt;test&gt;c__Iterator1">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-iter-33.cs">
-    <type name="Fun`2[A1,R]">
-      <method name="R Invoke(A1)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="MyTest">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>99</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[Rr] Map[Aa,Af,Rf,Rr](Fun`2[Af,Rf], System.Collections.Generic.IEnumerable`1[Aa])" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] FromTo(Int32, Int32)" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyTest+&lt;Map&gt;c__Iterator0`4[Aa,Af,Rf,Rr]">
-      <method name="Rr System.Collections.Generic.IEnumerator&lt;Rr&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>215</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>69</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[Rr] System.Collections.Generic.IEnumerable&lt;Rr&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyTest+&lt;FromTo&gt;c__Iterator1">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>125</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Fun`2[A1,R]">
-      <method name="System.IAsyncResult BeginInvoke(A1, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="R EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="MyTest+&lt;Map&gt;c__Iterator0`4[Aa,Af,Rf,Rr]">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="MyTest+&lt;FromTo&gt;c__Iterator1">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="MyTest">
-      <method name="System.String &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>22</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-01.cs">
-    <type name="IntFunc">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="VoidFunc">
-      <method name="Void Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>328</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6273">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0(Int32)" attrs="131">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="IntFunc">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="VoidFunc">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__2(Int32)" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-02.cs">
-    <type name="funcs">
-      <method name="System.String Invoke(System.String)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="funci">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Foo(funci)" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="Void Foo(funcs)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="funcs">
-      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="funci">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.String &lt;Main&gt;m__0(System.String)" attrs="145">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-03.cs">
-    <type name="Func`2[TArg0,TResult]">
-      <method name="TResult Invoke(TArg0)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Demo">
-      <method name="Y F[X,Y](Int32, X, Func`2[X,Y])" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>62</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Func`2[TArg0,TResult]">
-      <method name="System.IAsyncResult BeginInvoke(TArg0, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="TResult EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Demo">
-      <method name="System.TimeSpan &lt;Main&gt;m__0(System.String)" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-04.cs">
-    <type name="Func`2[TArg0,TResult]">
-      <method name="TResult Invoke(TArg0)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Demo">
-      <method name="Z F[X,Y,Z](X, Func`2[X,Y], Func`2[Y,Z])" attrs="145">
-        <size>22</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>116</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Func`2[TArg0,TResult]">
-      <method name="System.IAsyncResult BeginInvoke(TArg0, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="TResult EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Demo">
-      <method name="System.TimeSpan &lt;Main&gt;m__0(System.String)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="Double &lt;Main&gt;m__1(System.TimeSpan)" attrs="145">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-05.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>147</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+di">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+ds">
-      <method name="System.String Invoke(System.String)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+db">
-      <method name="Boolean Invoke(Boolean)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="System.String &lt;&gt;m__0(System.String)" attrs="131">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey1">
-      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="131">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Boolean M(db)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="System.String M(ds)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="Int32 M(di)" attrs="145">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="C+di">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+ds">
-      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+db">
-      <method name="System.IAsyncResult BeginInvoke(Boolean, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Boolean EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.String &lt;Main&gt;m__0(System.String)" attrs="145">
-        <size>38</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>38</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-06.cs">
-    <type name="TestClass">
-      <method name="T And(T, T)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="F And(T, F)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="F And(F, T)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="F And(F, F)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="T Or(T, T)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="T Or(T, F)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="T Or(F, T)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="F Or(F, F)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="F Not(T)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="T Not(F)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Void StopTrue(T)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestClass+DT">
-      <method name="Void Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestClass+DF">
-      <method name="Void Invoke(F)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestClass+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestClass+&lt;Main&gt;c__AnonStorey0+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestClass+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0(T)" attrs="131">
-        <size>38</size>
-      </method>
-    </type>
-    <type name="TestClass+&lt;Main&gt;c__AnonStorey0+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0(F)" attrs="131">
-        <size>77</size>
-      </method>
-    </type>
-    <type name="TestClass">
-      <method name="Void P(DT)" attrs="145">
-        <size>27</size>
-      </method>
-      <method name="Void P(DF)" attrs="145">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="TestClass+DT">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestClass+DF">
-      <method name="System.IAsyncResult BeginInvoke(F, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestClass">
-      <method name="Void &lt;Main&gt;m__0(F)" attrs="145">
-        <size>31</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-07.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="Void Invoke(Boolean)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Test(D)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(System.Object, D)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(D, D)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test2(System.Object, E)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>208</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="System.IAsyncResult BeginInvoke(Boolean, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__1()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__2()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__3()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__4()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__5(Boolean)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-08.cs">
-    <type name="C">
-      <method name="Void Test[T,R](System.Func`2[T,R])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>344</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__2(Int32)" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__3(Int32)" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__4(Int32)" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__5(Int32)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__6(Int32)" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-09.cs">
-    <type name="Func`1[TD]">
-      <method name="TD Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Func`2[TA,TR]">
-      <method name="TR Invoke(TA)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>114</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[T] Test[T](T)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[T] Test[T](Func`1[T])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[T] Test2[T](Func`2[T,T])" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Func`1[TD]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="TD EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Func`2[TA,TR]">
-      <method name="System.IAsyncResult BeginInvoke(TA, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="TR EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.String &lt;Main&gt;m__0()" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__1()" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__2(System.String)" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-10.cs">
-    <type name="C">
-      <method name="Void Foo[TCollection,TSource](System.Func`2[TCollection[],System.Collections.Generic.IEnumerable`1[TSource]])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>98</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Foo[TSource](System.Collections.Generic.IEnumerable`1[TSource])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Foo[TCollection,TSource](System.Collections.Generic.IEnumerable`1[TSource], System.Func`2[TSource,System.Collections.Generic.IEnumerable`1[TCollection]])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Foo[TCollection,TSource](System.Collections.Generic.IEnumerable`1[TSource], System.Func`3[TSource,TCollection[],System.Collections.Generic.IEnumerable`1[TCollection]])" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__0(Int32)" attrs="131">
-        <size>15</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__1(Int32, Int32[])" attrs="131">
-        <size>15</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__2(Int32[])" attrs="131">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-11.cs">
-    <type name="Pair`2[T1,T2]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Group`2[T1,T2]">
-      <method name="Pair`2[T1,T2] Invoke(T1)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Foo[TInput,TValue,TIntermediate](Group`2[TInput,TValue], System.Func`2[TValue,Group`2[TInput,TIntermediate]])" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="E`1[TI]">
-      <method name="Void Rep1[TV](Group`2[TI,TV])" attrs="134">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="E`1+&lt;Rep1&gt;c__AnonStorey0`1[TI,TV]">
-      <method name="Group`2[TI,TV] &lt;&gt;m__0(TV)" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Group`2[T1,T2]">
-      <method name="System.IAsyncResult BeginInvoke(T1, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Pair`2[T1,T2] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-12.cs">
-    <type name="Func`1[TA]">
-      <method name="Void Invoke(TA)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Demo">
-      <method name="Void F[T](T[], T, Func`1[T])" attrs="145">
-        <size>43</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>78</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Demo+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0(Int32)" attrs="131">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Func`1[TA]">
-      <method name="System.IAsyncResult BeginInvoke(TA, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-13.cs">
-    <type name="TestUnary">
-      <method name="Void Foo(System.Action`1[System.Int32])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Bar()" attrs="145">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Foo(System.Action`1[System.String])" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="T Foo[T](System.Func`2[System.String,T])" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="System.String Bar()" attrs="145">
-        <size>43</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>77</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestUnary">
-      <method name="Void &lt;Bar&gt;m__0(Int32)" attrs="145">
-        <size>6</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="System.String &lt;Bar&gt;m__0(System.String)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__1(System.String)" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__2(System.String)" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-14.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Foo[T]()" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="T &lt;Foo`1&gt;m__0[T](T)" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-15.cs">
-    <type name="Repro">
-      <method name="Int32 Main()" attrs="150">
-        <size>128</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Enumerable+&lt;Sum&gt;c__AnonStorey0`1[TSource]">
-      <method name="Int32 &lt;&gt;m__0(Int32, TSource)" attrs="131">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Enumerable">
-      <method name="Int32 Sum[TSource](System.Collections.Generic.IEnumerable`1[TSource], System.Func`2[TSource,System.Int32])" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="TR Sum[TA,TR](System.Collections.Generic.IEnumerable`1[TA], System.Func`3[TR,TA,TR])" attrs="145">
-        <size>139</size>
-      </method>
-    </type>
-    <type name="Repro">
-      <method name="Int32 &lt;Main&gt;m__0(System.String)" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-16.cs">
-    <type name="Repro">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Repro+Runner`1[T]">
-      <method name="Void .ctor(Action`1, T)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Repro+&lt;AssertFoo&gt;c__AnonStorey0`1[T]">
-      <method name="Void &lt;&gt;m__0(Int32)" attrs="131">
-        <size>58</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Repro">
-      <method name="Void AssertFoo[T](System.Collections.Generic.IList`1[T])" attrs="145">
-        <size>35</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-17.cs">
-    <type name="TestCase">
-      <method name="Void Testing()" attrs="134">
-        <size>76</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void &lt;Testing&gt;m__0()" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-18.cs">
-    <type name="Test">
-      <method name="Void Foo[T1,T2,TResult](T1, T2, System.Func`3[T1,T2,TResult])" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="Void Bar[T1,T2,TResult](T1, T2, System.Func`4[T1,T2,System.Int32,TResult])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Foo&gt;c__AnonStorey0`3[T1,T2,TResult]">
-      <method name="TResult &lt;&gt;m__0(T1, T2, Int32)" attrs="131">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-19.cs">
-    <type name="Crasher">
-      <method name="Void Crash()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void Do(System.Action)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Crasher+&lt;Crash&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-20.cs">
-    <type name="Z">
-      <method name="Void .ctor()" attrs="6278">
-        <size>38</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Boolean Foo()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestMethod">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Void &lt;Z&gt;m__0()" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-21.cs">
-    <type name="Program">
-      <method name="Void Foo(System.Action`1[System.String])" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="T Foo[T](System.Func`2[System.String,T])" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="System.String Bar()" attrs="145">
-        <size>43</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>108</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.String &lt;Bar&gt;m__0(System.String)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__1(System.String)" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__2(System.String)" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-22.cs">
-    <type name="Product">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>137</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;g&gt;__T,&lt;ExpensiveProducts&gt;__T]">
-      <method name="&lt;g&gt;__T get_g()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;ExpensiveProducts&gt;__T get_ExpensiveProducts()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;g&gt;__T, &lt;ExpensiveProducts&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Boolean &lt;&gt;m__0(Product)" attrs="131">
-        <size>60</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Int32 &lt;Main&gt;m__0(Product)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Product &lt;Main&gt;m__1(Product)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="&lt;&gt;__AnonType0`2[System.Linq.IGrouping`2[System.Int32,Product],System.Collections.Generic.IEnumerable`1[Product]] &lt;Main&gt;m__2(System.Linq.IGrouping`2[System.Int32,Product])" attrs="145">
-        <size>56</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;Main&gt;c__AnonStorey0">
-      <method name="System.Decimal &lt;&gt;m__1(Product)" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-23.cs">
-    <type name="C">
-      <method name="U Test[T,U](T[], System.Func`2[T,U])" attrs="145">
-        <size>22</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>90</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__0(System.String)" attrs="145">
-        <size>20</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-24.cs">
-    <type name="E">
-      <method name="System.String Test[T](C, T, System.Func`1[T])" attrs="150">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Test[T](T, System.Func`1[System.Boolean])" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="System.String Foo[T](T, System.Action`1[T])" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0(System.String)" attrs="131">
-        <size>24</size>
-      </method>
-      <method name="Void &lt;&gt;m__1(System.String)" attrs="131">
-        <size>47</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.String &lt;&gt;m__2()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-25.cs">
-    <type name="MonoBugs.Bar">
-      <method name="Void DoStuff[T](T, System.Action`1[T])" attrs="150">
-        <size>12</size>
-      </method>
-    </type>
-    <type name="MonoBugs.Program">
-      <method name="Void Main()" attrs="150">
-        <size>60</size>
-      </method>
-    </type>
-    <type name="MonoBugs.Bar">
-      <method name="Void DoStuff[T](System.Nullable`1[T], System.Action`1[T])" attrs="150">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="MonoBugs.Program">
-      <method name="Void &lt;Main&gt;m__0(MonoBugs.Foo`1[System.Int32])" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-26.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void Execute(System.Action)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-27.cs">
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>72</size>
-      </method>
-      <method name="T[] Test1[T](System.Func`2[IB,T[]])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="IA`1[T][] Test2[T](System.Func`2[IB,IA`1[T][]])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.String[] &lt;Main&gt;m__0(IB)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="IA`1[System.String][] &lt;Main&gt;m__1(IB)" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-28.cs">
-    <type name="G`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="G`1[TResult] M[T,TResult](G`1[T][], System.Func`2[G`1[T][],TResult])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="G`1[System.Int32][] &lt;Main&gt;m__0(G`1[System.Int32][])" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-29.cs">
-    <type name="C`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>104</size>
-      </method>
-      <method name="Void M1[T](System.Action`1[T[][]])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void M2[T](System.Action`1[C`1[T][]])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void M3[T](System.Action`1[C`1[T[]][]])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__0(Int32[][])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__1(C`1[System.Int16][])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__2(C`1[System.Int16[]][])" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-30.cs">
-    <type name="C">
-      <method name="System.Object Method[T](System.Object[])" attrs="145">
-        <size>27</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Method&gt;c__AnonStorey0`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Object &lt;&gt;m__0(T)" attrs="131">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Func`2[T,System.Object] &lt;Method`1&gt;m__0[T](System.Object)" attrs="145">
-        <size>33</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-31.cs">
-    <type name="Test">
-      <method name="Int32 get_Prop()" attrs="2193">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>294</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-32.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Byte &lt;Main&gt;m__0()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-33.cs">
-    <type name="EnumSwitch">
-      <method name="System.Object SomeFunction[T](SomeEnum, System.Object, System.Linq.IQueryable`1[T])" attrs="134">
-        <size>96</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-34.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Boolean SomeMethod()" attrs="145">
-        <size>52</size>
-      </method>
-      <method name="Boolean F(System.Func`1[System.Boolean])" attrs="148">
-        <size>10</size>
-      </method>
-      <method name="Boolean F1(Int32, Int32 ByRef)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Boolean Ferror(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Boolean Fouter()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;SomeMethod&gt;c__AnonStorey0">
-      <method name="Boolean &lt;&gt;m__0()" attrs="131">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-35.cs">
-    <type name="C">
-      <method name="Int32 Foo(System.Func`1[System.Int16])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo(System.Func`1[System.Int32])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="145">
-        <size>161</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int16 &lt;Main&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int16 &lt;Main&gt;m__2()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-lambda-36.cs">
-    <type name="D`1[T]">
-      <method name="Void S[U,V](System.Func`1[U], System.Func`3[T,U,V])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="D`1[V] Factory[V](V)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="145">
-        <size>78</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__0()" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="&lt;&gt;__AnonType1`1[System.String] &lt;Main&gt;m__1(&lt;&gt;__AnonType0`1[System.Int32], System.String)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`1[&lt;q&gt;__T]">
-      <method name="&lt;q&gt;__T get_q()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>39</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>63</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor(&lt;q&gt;__T)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType1`1[&lt;str&gt;__T]">
-      <method name="&lt;str&gt;__T get_str()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>39</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>63</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor(&lt;str&gt;__T)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-01.cs">
-    <type name="from.C">
-      <method name="Void Main()" attrs="150">
-        <size>2181</size>
-      </method>
-      <method name="Void Foo(Int32, Boolean)" attrs="129">
-        <size>16</size>
-      </method>
-      <method name="Void Do(System.String[])" attrs="129">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="from.D">
-      <method name="Boolean check(System.Object, System.Object)" attrs="134">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;i&gt;__T,&lt;j&gt;__T]">
-      <method name="&lt;i&gt;__T get_i()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;j&gt;__T get_j()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;i&gt;__T, &lt;j&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;i&gt;__T,&lt;l&gt;__T]">
-      <method name="&lt;i&gt;__T get_i()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;l&gt;__T get_l()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;i&gt;__T, &lt;l&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType2`2[&lt;&lt;&gt;__TranspIdent2&gt;__T,&lt;l2&gt;__T]">
-      <method name="&lt;&lt;&gt;__TranspIdent2&gt;__T get_&lt;&gt;__TranspIdent2()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;l2&gt;__T get_l2()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent2&gt;__T, &lt;l2&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType3`2[&lt;i9&gt;__T,&lt;i&gt;__T]">
-      <method name="&lt;i9&gt;__T get_i9()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;i&gt;__T get_i()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;i9&gt;__T, &lt;i&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType4`2[&lt;&lt;&gt;__TranspIdent7&gt;__T,&lt;l2&gt;__T]">
-      <method name="&lt;&lt;&gt;__TranspIdent7&gt;__T get_&lt;&gt;__TranspIdent7()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;l2&gt;__T get_l2()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent7&gt;__T, &lt;l2&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="from.C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FromProblems2.from">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FromProblems2.C">
-      <method name="Void M1()" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="FromProblems2.from M2()" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="from.C+&lt;Main&gt;c__AnonStorey0">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__0(Int32)" attrs="131">
-        <size>15</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__1(System.Linq.IGrouping`2[System.Int32,System.Int32])" attrs="131">
-        <size>15</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__2(System.Linq.IGrouping`2[System.Int32,System.Int32])" attrs="131">
-        <size>15</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__3(System.Linq.IGrouping`2[System.Int32,System.Int32])" attrs="131">
-        <size>15</size>
-      </method>
-      <method name="&lt;&gt;__AnonType1`2[System.Int32,System.Collections.Generic.IEnumerable`1[System.Int32]] &lt;&gt;m__4(Int32)" attrs="131">
-        <size>55</size>
-      </method>
-    </type>
-    <type name="from.C">
-      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="System.Nullable`1[System.Boolean] &lt;Main&gt;m__2(System.Nullable`1[System.Boolean])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__3(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__4(Int32, Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__5(Int32)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__6(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__7(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__8(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__9(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__A(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__B(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__C(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__D(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__E(from.ITest)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__F(Int32, from.ITest)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__10(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__11(from.ITest)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__12(Int32, from.ITest)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__13(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__14(from.ITest)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,from.ITest] &lt;Main&gt;m__15(Int32, from.ITest)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__16(&lt;&gt;__AnonType0`2[System.Int32,from.ITest])" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__17(from.ITest)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__18(&lt;&gt;__AnonType0`2[System.Int32,from.ITest], from.ITest)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__19(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1A(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1B(Int32, System.Collections.Generic.IEnumerable`1[System.Int32])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1C(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1D(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1E(Int32, System.Collections.Generic.IEnumerable`1[System.Int32])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1F(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__20(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__21(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__22(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="System.Linq.IGrouping`2[System.Int32,System.Int32] &lt;Main&gt;m__23(System.Linq.IGrouping`2[System.Int32,System.Int32])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="&lt;&gt;__AnonType1`2[System.Int32,System.Int32] &lt;Main&gt;m__24(Int32)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__25(&lt;&gt;__AnonType1`2[System.Int32,System.Int32])" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="&lt;&gt;__AnonType1`2[System.Int32,System.Int32] &lt;Main&gt;m__26(Int32)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__27(&lt;&gt;__AnonType1`2[System.Int32,System.Int32])" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__28(&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32])" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__29(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__2A(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__2B(System.Linq.IGrouping`2[System.Int32,System.Int32], Int32)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__2C(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__2D(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__2E(System.Linq.IGrouping`2[System.Int32,System.Int32], Int32)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__2F(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__30(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__31(System.Linq.IGrouping`2[System.Int32,System.Int32], Int32)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__32(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__33(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="System.Linq.IGrouping`2[System.Int32,System.Int32] &lt;Main&gt;m__34(System.Linq.IGrouping`2[System.Int32,System.Int32])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__35(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__36(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__37(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="&lt;&gt;__AnonType4`2[&lt;&gt;__AnonType1`2[System.Int32,System.Collections.Generic.IEnumerable`1[System.Int32]],System.Int32] &lt;Main&gt;m__38(&lt;&gt;__AnonType1`2[System.Int32,System.Collections.Generic.IEnumerable`1[System.Int32]])" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__39(&lt;&gt;__AnonType4`2[&lt;&gt;__AnonType1`2[System.Int32,System.Collections.Generic.IEnumerable`1[System.Int32]],System.Int32])" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="from.C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Int32 &lt;&gt;m__5(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-02.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>528</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__2(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__3(Int32)" attrs="145">
-        <size>11</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-03.cs">
-    <type name="WhereTest">
-      <method name="Int32 Main()" attrs="150">
-        <size>197</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__2(Int32)" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-04.cs">
-    <type name="TestGroupBy">
-      <method name="Int32 Main()" attrs="150">
-        <size>589</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__2(Int32)" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__3(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-05.cs">
-    <type name="OrderByTests">
-      <method name="Int32 Main()" attrs="150">
-        <size>1354</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="OrderByTests+Data">
-      <method name="Int32 get_ID()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_ID(Int32)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="System.String get_Name()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Name(System.String)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="OrderByTests">
-      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__2(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__3(Int32)" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__4(System.String)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__5(System.String)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__6(Data)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__7(Data)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__8(Data)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__9(Data)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__A(Data)" attrs="145">
-        <size>19</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__B(Data)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__C(Data)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__D(Data)" attrs="145">
-        <size>19</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__E(Data)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__F(Data)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Data &lt;Main&gt;m__10(Data)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-06.cs">
-    <type name="Let">
-      <method name="Int32 Main()" attrs="150">
-        <size>423</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;i&gt;__T,&lt;u&gt;__T]">
-      <method name="&lt;i&gt;__T get_i()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;u&gt;__T get_u()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;i&gt;__T, &lt;u&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;&lt;&gt;__TranspIdent1&gt;__T,&lt;v&gt;__T]">
-      <method name="&lt;&lt;&gt;__TranspIdent1&gt;__T get_&lt;&gt;__TranspIdent1()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;v&gt;__T get_v()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent1&gt;__T, &lt;v&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="Let">
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;Main&gt;m__2(Int32)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__3(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__4(&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.Int32],System.Int32])" attrs="145">
-        <size>26</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__5(&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.Int32],System.Int32])" attrs="145">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-07.cs">
-    <type name="SelectMany">
-      <method name="Int32 Main()" attrs="150">
-        <size>765</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;i1&gt;__T,&lt;i2&gt;__T]">
-      <method name="&lt;i1&gt;__T get_i1()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;i2&gt;__T get_i2()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;i1&gt;__T, &lt;i2&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;&lt;&gt;__TranspIdent0&gt;__T,&lt;i3&gt;__T]">
-      <method name="&lt;&lt;&gt;__TranspIdent0&gt;__T get_&lt;&gt;__TranspIdent0()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;i3&gt;__T get_i3()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent0&gt;__T, &lt;i3&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType2`3[&lt;pp&gt;__T,&lt;i1&gt;__T,&lt;i3&gt;__T]">
-      <method name="&lt;pp&gt;__T get_pp()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;i1&gt;__T get_i1()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;i3&gt;__T get_i3()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>96</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>109</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>199</size>
-      </method>
-      <method name="Void .ctor(&lt;pp&gt;__T, &lt;i1&gt;__T, &lt;i3&gt;__T)" attrs="6278">
-        <size>28</size>
-      </method>
-    </type>
-    <type name="SelectMany+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.String] &lt;&gt;m__0(Int32)" attrs="131">
-        <size>20</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.String] &lt;&gt;m__3(Int32)" attrs="131">
-        <size>15</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.String] &lt;&gt;m__1(Int32)" attrs="131">
-        <size>20</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__2(&lt;&gt;__AnonType0`2[System.Int32,System.String])" attrs="131">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="SelectMany">
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.String] &lt;Main&gt;m__0(Int32, System.String)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.String] &lt;Main&gt;m__2(Int32, System.String)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.String],System.Int32] &lt;Main&gt;m__3(&lt;&gt;__AnonType0`2[System.Int32,System.String], Int32)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__4(&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.String],System.Int32])" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="&lt;&gt;__AnonType2`3[System.Int32,System.Int32,System.Int32] &lt;Main&gt;m__5(&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.String],System.Int32])" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.String] &lt;Main&gt;m__6(Int32, System.String)" attrs="145">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-08.cs">
-    <type name="TestA">
-      <method name="System.String Select[U](System.Func`2[TestA,U])" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="TestB">
-      <method name="TestA Where(TestA, System.Func`2[TestA,System.Boolean])" attrs="150">
-        <size>38</size>
-      </method>
-    </type>
-    <type name="CustomQueryExpressionPattern">
-      <method name="Int32 Main()" attrs="150">
-        <size>171</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="TestA &lt;Main&gt;m__0(TestA)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__1(TestA)" attrs="145">
-        <size>25</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-09.cs">
-    <type name="Data">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Join">
-      <method name="Int32 Main()" attrs="150">
-        <size>981</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`1[&lt;Result&gt;__T]">
-      <method name="&lt;Result&gt;__T get_Result()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>39</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>63</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor(&lt;Result&gt;__T)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;a&gt;__T,&lt;b&gt;__T]">
-      <method name="&lt;a&gt;__T get_a()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;b&gt;__T get_b()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;a&gt;__T, &lt;b&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="Join">
-      <method name="Int32 &lt;Main&gt;m__0(Data)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1(Data)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="&lt;&gt;__AnonType0`1[System.String] &lt;Main&gt;m__2(Data, Data)" attrs="145">
-        <size>31</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__3(Data)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__4(Data)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="&lt;&gt;__AnonType1`2[Data,Data] &lt;Main&gt;m__5(Data, Data)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__6(&lt;&gt;__AnonType1`2[Data,Data])" attrs="145">
-        <size>30</size>
-      </method>
-      <method name="&lt;&gt;__AnonType0`1[System.String] &lt;Main&gt;m__7(&lt;&gt;__AnonType1`2[Data,Data])" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__8(Data)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__9(Data)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="&lt;&gt;__AnonType0`1[System.String] &lt;Main&gt;m__A(Data, Data)" attrs="145">
-        <size>31</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__B(Data)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__C(Data)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="&lt;&gt;__AnonType1`2[Data,Data] &lt;Main&gt;m__D(Data, Data)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__E(&lt;&gt;__AnonType1`2[Data,Data])" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Data &lt;Main&gt;m__F(&lt;&gt;__AnonType1`2[Data,Data])" attrs="145">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-10.cs">
-    <type name="DataA">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="DataB">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="GroupJoin">
-      <method name="Int32 Main()" attrs="150">
-        <size>781</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;a&gt;__T,&lt;ab&gt;__T]">
-      <method name="&lt;a&gt;__T get_a()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;ab&gt;__T get_ab()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;a&gt;__T, &lt;ab&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;a&gt;__T,&lt;b&gt;__T]">
-      <method name="&lt;a&gt;__T get_a()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;b&gt;__T get_b()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;a&gt;__T, &lt;b&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="GroupJoin">
-      <method name="Int32 &lt;Main&gt;m__0(DataA)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1(DataB)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]] &lt;Main&gt;m__2(DataA, System.Collections.Generic.IEnumerable`1[DataB])" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[DataB] &lt;Main&gt;m__3(&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]])" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="&lt;&gt;__AnonType1`2[System.String,System.String] &lt;Main&gt;m__4(&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]], DataB)" attrs="145">
-        <size>47</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__5(DataA)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__6(DataB)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]] &lt;Main&gt;m__7(DataA, System.Collections.Generic.IEnumerable`1[DataB])" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[DataB] &lt;Main&gt;m__8(&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]])" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="&lt;&gt;__AnonType1`2[System.String,System.String] &lt;Main&gt;m__9(&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]], DataB)" attrs="145">
-        <size>47</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__A(DataA)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__B(DataB)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="DataA &lt;Main&gt;m__C(DataA, System.Collections.Generic.IEnumerable`1[DataB])" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-11.cs">
-    <type name="IntoTest">
-      <method name="Int32 Main()" attrs="150">
-        <size>303</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__2(Int32)" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__3(Int32)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__4(Int32)" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-12.cs">
-    <type name="NestedQuery">
-      <method name="Void XX()" attrs="134">
-        <size>109</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>502</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;values&gt;__T,&lt;length&gt;__T]">
-      <method name="&lt;values&gt;__T get_values()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;length&gt;__T get_length()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;values&gt;__T, &lt;length&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;type&gt;__T,&lt;x&gt;__T]">
-      <method name="&lt;type&gt;__T get_type()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;x&gt;__T get_x()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;type&gt;__T, &lt;x&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="NestedQuery+&lt;XX&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="NestedQuery+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="NestedQuery+&lt;XX&gt;c__AnonStorey0">
-      <method name="Boolean &lt;&gt;m__0(&lt;&gt;__AnonType1`2[System.Char,System.Int32])" attrs="131">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="NestedQuery+&lt;Main&gt;c__AnonStorey1">
-      <method name="Boolean &lt;&gt;m__0(&lt;&gt;__AnonType1`2[System.Char,System.Int32])" attrs="131">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="NestedQuery">
-      <method name="&lt;&gt;__AnonType0`2[System.String,System.Int32] &lt;XX&gt;m__0(System.String)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.Char] &lt;XX&gt;m__1(&lt;&gt;__AnonType0`2[System.String,System.Int32])" attrs="145">
-        <size>117</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__2(System.String)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.Char] &lt;Main&gt;m__3(System.String)" attrs="145">
-        <size>44</size>
-      </method>
-      <method name="&lt;&gt;__AnonType0`2[System.String,System.Int32] &lt;Main&gt;m__4(System.String)" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.Char] &lt;Main&gt;m__5(&lt;&gt;__AnonType0`2[System.String,System.Int32])" attrs="145">
-        <size>118</size>
-      </method>
-      <method name="&lt;&gt;__AnonType1`2[System.Char,System.Int32] &lt;XX&gt;m__6(Char)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Char &lt;XX&gt;m__7(&lt;&gt;__AnonType1`2[System.Char,System.Int32])" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__8(Char)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="&lt;&gt;__AnonType1`2[System.Char,System.Int32] &lt;Main&gt;m__9(Char)" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="Char &lt;Main&gt;m__A(&lt;&gt;__AnonType1`2[System.Char,System.Int32])" attrs="145">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-13.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Foo(TypeDefinition)" attrs="145">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MethodDefinition">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TypeDefinition">
-      <method name="MethodDefinitionCollection get_Methods()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Methods(MethodDefinitionCollection)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MethodDefinitionCollection">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Extension">
-      <method name="System.Collections.Generic.IEnumerable`1[T] Cast[T](IFoo)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="MethodDefinition &lt;Foo&gt;m__0(MethodDefinition)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-14.cs">
-    <type name="Person">
-      <method name="Style get_Style()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Style(Style)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Assert(System.Action)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Test(IObjectContainer, Style)" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>118</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Extensions">
-      <method name="IMarker`1[T] Cast[T](IObjectContainer)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="IMarker`1[T] Where[T](IMarker`1[T], System.Linq.Expressions.Expression`1[System.Func`2[T,System.Boolean]])" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-15.cs">
-    <type name="NameCollisionTest.Data">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="NameCollisionTest.C">
-      <method name="Void Main()" attrs="150">
-        <size>79</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="NameCollisionTest.Ex+&lt;Foo&gt;c__Iterator0`2[T,TR]">
-      <method name="TR System.Collections.Generic.IEnumerator&lt;TR&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>93</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="NameCollisionTest.Ex">
-      <method name="System.Collections.Generic.IEnumerable`1[TR] Foo[T,TR](System.Collections.Generic.IEnumerable`1[T], System.Func`2[T,TR])" attrs="150">
-        <size>37</size>
-      </method>
-    </type>
-    <type name="NameCollisionTest.Ex+&lt;Foo&gt;c__Iterator0`2[T,TR]">
-      <method name="System.Collections.Generic.IEnumerator`1[TR] System.Collections.Generic.IEnumerable&lt;TR&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="NameCollisionTest.C">
-      <method name="Int32 &lt;Main&gt;m__0(NameCollisionTest.Data)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-16.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void Test_1(Int32)" attrs="145">
-        <size>28</size>
-      </method>
-      <method name="Void Test_2()" attrs="145">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;a&gt;__T,&lt;b&gt;__T]">
-      <method name="&lt;a&gt;__T get_a()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;b&gt;__T get_b()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;a&gt;__T, &lt;b&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_1&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_2&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_1&gt;c__AnonStorey0">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__0()" attrs="131">
-        <size>74</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__2(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])" attrs="131">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_2&gt;c__AnonStorey1">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__0()" attrs="131">
-        <size>74</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__2(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])" attrs="131">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Func`1[System.Collections.Generic.IEnumerable`1[System.Int32]] &lt;Test_2&gt;m__0(Int32)" attrs="145">
-        <size>33</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_1&gt;c__AnonStorey0">
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;&gt;m__1(Int32)" attrs="145">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_2&gt;c__AnonStorey1">
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;&gt;m__1(Int32)" attrs="145">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-17.cs">
-    <type name="TestGroupBy">
-      <method name="Int32 Main()" attrs="150">
-        <size>169</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-18.cs">
-    <type name="C">
-      <method name="Boolean Test(System.Func`2[System.Int32,System.Boolean])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Boolean Test2(System.Func`2[System.Int32,System.Int32])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>658</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;ck&gt;__T,&lt;xy&gt;__T]">
-      <method name="&lt;ck&gt;__T get_ck()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;xy&gt;__T get_xy()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;ck&gt;__T, &lt;xy&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;i&gt;__T,&lt;l&gt;__T]">
-      <method name="&lt;i&gt;__T get_i()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;l&gt;__T get_l()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;i&gt;__T, &lt;l&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType2`2[&lt;&lt;&gt;__TranspIdent1&gt;__T,&lt;g&gt;__T]">
-      <method name="&lt;&lt;&gt;__TranspIdent1&gt;__T get_&lt;&gt;__TranspIdent1()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;g&gt;__T get_g()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent1&gt;__T, &lt;g&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey3">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey4">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey5">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey6">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey7">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey8">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey9">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStoreyA">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey1">
-      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey2">
-      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey3">
-      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey4">
-      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="131">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey5">
-      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="131">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey6">
-      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey7">
-      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey8">
-      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey9">
-      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStoreyA">
-      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Boolean] &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>50</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__1(&lt;&gt;__AnonType0`2[System.Int32,System.Boolean])" attrs="145">
-        <size>19</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__2(&lt;&gt;__AnonType0`2[System.Int32,System.Boolean])" attrs="145">
-        <size>39</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__3(Int32)" attrs="145">
-        <size>39</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__4(Int32)" attrs="145">
-        <size>39</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__5(Int32)" attrs="145">
-        <size>39</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__6(Int32)" attrs="145">
-        <size>39</size>
-      </method>
-      <method name="&lt;&gt;__AnonType1`2[System.Int32,System.Int32] &lt;Main&gt;m__7(Int32)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__8(&lt;&gt;__AnonType1`2[System.Int32,System.Int32])" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__9(&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32])" attrs="145">
-        <size>39</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__A(&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32])" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__B(&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32])" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__C(Int32)" attrs="145">
-        <size>39</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__D(Int32)" attrs="145">
-        <size>39</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__E(Int32, Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__F(Int32)" attrs="145">
-        <size>39</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__10(Int32)" attrs="145">
-        <size>39</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__11(Int32, System.Collections.Generic.IEnumerable`1[System.Int32])" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-19.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>28</size>
-      </method>
-      <method name="Char &lt;E&gt;m__0(Char)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-20.cs">
-    <type name="Maybe`1[T]">
-      <method name="T get_Value()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Value(T)" attrs="2177">
-        <size>8</size>
-      </method>
-      <method name="Boolean get_HasValue()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_HasValue(Boolean)" attrs="2177">
-        <size>8</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>51</size>
-      </method>
-      <method name="Maybe`1[U] SelectMany[U](System.Func`2[T,Maybe`1[U]])" attrs="134">
-        <size>43</size>
-      </method>
-      <method name="Maybe`1[V] SelectMany[U,V](System.Func`2[T,Maybe`1[U]], System.Func`3[T,U,V])" attrs="134">
-        <size>89</size>
-      </method>
-      <method name="Void .ctor()" attrs="6273">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>22</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="MaybeExtensions">
-      <method name="Maybe`1[T] ToMaybe[T](T)" attrs="150">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>139</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;x&gt;__T,&lt;y&gt;__T]">
-      <method name="&lt;x&gt;__T get_x()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;y&gt;__T get_y()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;x&gt;__T, &lt;y&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Maybe`1[System.Int32] &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;Main&gt;m__1(Int32, Int32)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Maybe`1[System.Int32] &lt;Main&gt;m__2(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__3(&lt;&gt;__AnonType0`2[System.Int32,System.Int32], Int32)" attrs="145">
-        <size>24</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-21.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>98</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey0">
-      <method name="System.Action &lt;&gt;m__1(Int32, Int32)" attrs="131">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey0+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey0">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__0(Int32)" attrs="131">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey0+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>49</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-22.cs">
-    <type name="Test.MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>59</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;item&gt;__T,&lt;parsed&gt;__T]">
-      <method name="&lt;item&gt;__T get_item()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;parsed&gt;__T get_parsed()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;item&gt;__T, &lt;parsed&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="Test.MainClass+&lt;Main&gt;c__AnonStorey0">
-      <method name="&lt;&gt;__AnonType0`2[System.Char,System.Boolean] &lt;&gt;m__0(Char)" attrs="131">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.DateTime &lt;&gt;m__1(&lt;&gt;__AnonType0`2[System.Char,System.Boolean])" attrs="131">
-        <size>36</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-23.cs">
-    <type name="OrderByBugExample.Foo">
-      <method name="System.String get_Name()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Name(System.String)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Int32 get_Value1()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Value1(Int32)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Int32 get_Value2()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Value2(Int32)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="OrderByBugExample.Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>362</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__0(OrderByBugExample.Foo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1(OrderByBugExample.Foo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__2(OrderByBugExample.Foo)" attrs="145">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-24.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="A[] get_Prop()" attrs="2177">
-        <size>23</size>
-      </method>
-      <method name="Void Test()" attrs="129">
-        <size>57</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 &lt;Test&gt;m__0(A)" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-25.cs">
-    <type name="A">
-      <method name="System.String get_Header()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="System.String get_Name()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void Test(System.Action)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;c&gt;__T,&lt;p&gt;__T]">
-      <method name="&lt;c&gt;__T get_c()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;p&gt;__T get_p()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;c&gt;__T, &lt;p&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType1`2[&lt;C&gt;__T,&lt;P&gt;__T]">
-      <method name="&lt;C&gt;__T get_C()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;P&gt;__T get_P()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;C&gt;__T, &lt;P&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>162</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[B] &lt;Main&gt;m__1(A)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="&lt;&gt;__AnonType0`2[A,B] &lt;Main&gt;m__2(A, B)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__3(&lt;&gt;__AnonType0`2[A,B])" attrs="145">
-        <size>75</size>
-      </method>
-      <method name="&lt;&gt;__AnonType1`2[A,B] &lt;Main&gt;m__4(&lt;&gt;__AnonType0`2[A,B])" attrs="145">
-        <size>26</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-26.cs">
-    <type name="Test.S`1[T]">
-      <method name="System.String Where(System.Func`2[Test.C,System.String])" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Test.C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Extension">
-      <method name="System.String Is(Test.C)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Test.Program">
-      <method name="Void Main()" attrs="150">
-        <size>80</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__0(Test.C)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__1(Test.C)" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-27.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>152</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;b&gt;__T,&lt;t&gt;__T]">
-      <method name="&lt;b&gt;__T get_b()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;t&gt;__T get_t()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;b&gt;__T, &lt;t&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Boolean] &lt;&gt;m__0(System.String)" attrs="131">
-        <size>82</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0+&lt;Main&gt;c__AnonStorey1">
-      <method name="Boolean &lt;&gt;m__0(Char)" attrs="131">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.String &lt;Main&gt;m__0(System.String)" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="&lt;&gt;__AnonType0`2[System.String,System.Boolean] &lt;&gt;m__1(System.String)" attrs="145">
-        <size>55</size>
-      </method>
-      <method name="Boolean &lt;&gt;m__2(&lt;&gt;__AnonType0`2[System.String,System.Boolean])" attrs="145">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-linq-28.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>222</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`2[&lt;m&gt;__T,&lt;n&gt;__T]">
-      <method name="&lt;m&gt;__T get_m()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="&lt;n&gt;__T get_n()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>69</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>86</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor(&lt;m&gt;__T, &lt;n&gt;__T)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="&lt;&gt;__AnonType0`2[System.Char,System.Collections.Generic.IEnumerable`1[System.Char]] &lt;Main&gt;m__0(Char)" attrs="145">
-        <size>54</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.Char] &lt;Main&gt;m__1(&lt;&gt;__AnonType0`2[System.Char,System.Collections.Generic.IEnumerable`1[System.Char]])" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Char &lt;Main&gt;m__2(Char)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-named-01.cs">
-    <type name="C">
-      <method name="Int32 Test(Int32, Int32, System.String)" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="T Foo[T](T, Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void Lambda(System.Func`2[System.Int32,System.Int32])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>201</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="131">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-named-02.cs">
-    <type name="D">
-      <method name="Void Foo(Int32)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-named-03.cs">
-    <type name="C">
-      <method name="Int32 Foo(Int32, Int32, Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32, Int32, Int32)" attrs="2177">
-        <size>22</size>
-      </method>
-      <method name="Int32 get_Item(Int32, Int32, Int32)" attrs="2177">
-        <size>15</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>100</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-named-04.cs">
-    <type name="Test">
-      <method name="Int32 f(Int32)" attrs="145">
-        <size>31</size>
-      </method>
-      <method name="Void m(Int32, Int32, Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void m(Int32, Int32, Int32, Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>336</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-named-05.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void M(System.String, System.String)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void M2(Int32 ByRef, System.String, System.String)" attrs="145">
-        <size>5</size>
-      </method>
-      <method name="System.String F()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-named-06.cs">
-    <type name="X">
-      <method name="Int32 T1(Int32)" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Int32 T1_Foo(Int32)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-01.cs">
-    <type name="C">
-      <method name="Void TestA(Int32)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void TestB(Int64)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>378</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void TestC(System.Decimal)" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-02.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>160</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Boolean Test3(System.Nullable`1[System.Int32])" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="Boolean Test2(System.Nullable`1[System.Int32])" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Int32 Test(System.Nullable`1[System.Int32])" attrs="150">
-        <size>35</size>
-      </method>
-      <method name="Int64 Test4(System.Nullable`1[System.Int64])" attrs="150">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-03.cs">
-    <type name="C">
-      <method name="Int32 Test(Int32, System.String, Boolean, UInt16)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>289</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-04.cs">
-    <type name="C">
-      <method name="Void Foo[T](T, T)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void TestParams(Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="System.String get_Item(Int32, System.String)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Item(Int32, System.String, System.String)" attrs="2182">
-        <size>5</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>158</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void TestStruct(System.Nullable`1[System.Int32])" attrs="145">
-        <size>25</size>
-      </method>
-      <method name="Void TestStruct2(System.Nullable`1[S])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void TestParams(Int32[])" attrs="145">
-        <size>7</size>
-      </method>
-      <method name="Void TestParams2(System.String, Int32[])" attrs="145">
-        <size>7</size>
-      </method>
-      <method name="Void TestParams2(System.String, Int32)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-05.cs">
-    <type name="Blah">
-      <method name="Int32 Foo(Int32, Int32)" attrs="134">
-        <size>12</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>59</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Blah+MyDelegate">
-      <method name="Int32 Invoke(Int32, Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Int32, Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-06.cs">
-    <type name="D">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Foo(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-07.cs">
-    <type name="Tests">
-      <method name="Void foo(Foo)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-08.cs">
-    <type name="Tests">
-      <method name="Int32 Main()" attrs="150">
-        <size>49</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6273">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-09.cs">
-    <type name="Program">
-      <method name="Int32 Test_1(Int32, SByte)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_1[T](T)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_1(Int32, Int64)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_2(Int16)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_2(Int32, SByte)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_3(System.String)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_3(System.String, SByte)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_4(System.Object)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_4(System.Object[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_5()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_5(Int32, System.Object[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_6(System.Object[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_6(Int32, System.Object[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_7(Boolean, System.Object[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_7(Boolean, Int32, System.Object[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>192</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 Test_8(System.Type, Boolean, Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_8(System.Type, Int32[])" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-10.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program`1[T]">
-      <method name="Void .ctor(Generic`1)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Generic`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-11.cs">
-    <type name="C">
-      <method name="Int32 TestA(Int32)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="T TestB[T](T, T)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="System.Object TestC(System.Object)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 TestD(Int32, Int32)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>274</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-12.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 M(System.String, Int32, Int32[])" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-13.cs">
-    <type name="A">
-      <method name="Int32 Foo(Int32)" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo2(Int32)" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Int32 get_Item(System.String, Int32)" attrs="2502">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 Foo(Int32)" attrs="198">
-        <size>12</size>
-      </method>
-      <method name="Int32 Foo2(Int32)" attrs="134">
-        <size>11</size>
-      </method>
-      <method name="Int32 get_Item(System.String, Int32)" attrs="2246">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>175</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-14.cs">
-    <type name="C">
-      <method name="Void M(Int32, Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void M[T](T, Int32)" attrs="145">
-        <size>7</size>
-      </method>
-      <method name="Void M2[T,U](T, System.Func`2[T,U], Int32)" attrs="145">
-        <size>7</size>
-      </method>
-      <method name="Void M2[T,U](T, System.Func`2[T,System.Threading.Tasks.Task`1[U]], Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="145">
-        <size>45</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-15.cs">
-    <type name="Program">
-      <method name="Void Test(S)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>81</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-16.cs">
-    <type name="MainClass">
-      <method name="Int32 TestParams(System.Object, System.Object[])" attrs="145">
-        <size>79</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>57</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-17.cs">
-    <type name="BI">
-      <method name="BI op_Implicit(Int32)" attrs="2198">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void M(BI)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void M2(System.Object)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>114</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-18.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Test(System.Decimal)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-19.cs">
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>72</size>
-      </method>
-      <method name="Void Wrap[T](System.Func`2[IPackageRepository,T], T)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="IPackage &lt;Main&gt;m__0(IPackageRepository)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="IPackage &lt;Main&gt;m__1(IPackageRepository)" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-20.cs">
-    <type name="C">
-      <method name="Void Test[T](T, System.Func`2[System.Object,T])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-21.cs">
-    <type name="C">
-      <method name="Void Foo(C, C)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Foo2(C)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-22.cs">
-    <type name="CallerMemberTest">
-      <method name="Void I.Explicit()" attrs="481">
-        <size>18</size>
-      </method>
-      <method name="Void GenericMethod[T]()" attrs="134">
-        <size>18</size>
-      </method>
-      <method name="Void set_Item(System.String, Int32)" attrs="2182">
-        <size>18</size>
-      </method>
-      <method name="Boolean get_Property()" attrs="2182">
-        <size>26</size>
-      </method>
-      <method name="CallerMemberTest op_Implicit(Int32)" attrs="2198">
-        <size>30</size>
-      </method>
-      <method name="Void Trace(System.String, System.String)" attrs="134">
-        <size>27</size>
-      </method>
-      <method name="System.Object TraceStatic(System.String, System.Object)" attrs="150">
-        <size>56</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>282</size>
-      </method>
-      <method name="Void .ctor()" attrs="6273">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor(Object)" attrs="6273">
-        <size>29</size>
-      </method>
-    </type>
-    <type name="CallerMemberTest+&lt;Enumerator&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>88</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`1[&lt;OO&gt;__T]">
-      <method name="&lt;OO&gt;__T get_OO()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>39</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>63</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor(&lt;OO&gt;__T)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="CallerMemberTest+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CallerMemberTest">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Enumerator()" attrs="145">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="CallerMemberTest+&lt;Enumerator&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="CallerMemberTest">
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="System.Object &lt;Main&gt;m__1(Char)" attrs="145">
-        <size>24</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-23.cs">
-    <type name="CallerLineNumberTest">
-      <method name="System.Object TraceStatic(Int32, Int32)" attrs="150">
-        <size>56</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>75</size>
-      </method>
-      <method name="Void .ctor()" attrs="6273">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor(Object)" attrs="6273">
-        <size>21</size>
-      </method>
-      <method name="Void TraceStatic2(Double, System.Decimal)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>11</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-24.cs">
-    <type name="CallerFilePathTest">
-      <method name="Void TraceStatic2(System.Object)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void TraceStatic(System.String, System.String)" attrs="150">
-        <size>46</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-25.cs">
-    <type name="Usage">
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bug">
-      <method name="TValue[] MethodWithOptionalParameter[TValue](Int32, TValue[])" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-26.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-27.cs">
-    <type name="EnumWrapperCtor`1[T]">
-      <method name="Void .ctor(Test)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="EnumWrapperCtor`1[T]">
-      <method name="Test getValue()" attrs="134">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-28.cs">
-    <type name="NoTypeOptionalParameters">
-      <method name="Void Lambda(Boolean, System.Func`2[System.String,System.Boolean][])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void MethodGroup(Boolean, System.Func`2[System.String,System.Boolean][])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Boolean Foo(System.String)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Boolean FooInstance(System.String)" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>148</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__0(System.String)" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-29.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor(Int32, String[])" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Int32, List`1)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-30.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>28</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-31.cs">
-    <type name="Test">
-      <method name="Int32 M(Boolean)" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Int32 M(System.String[])" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-32.cs">
-    <type name="A">
-      <method name="Int32[] Foo(Int32[])" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32[] Foo(Int32[])" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="145">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-33.cs">
-    <type name="TestCallerLineNumber">
-      <method name="Void Test(System.Object)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(System.Decimal)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Double)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Single)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(UInt32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Int64)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(UInt64)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(System.Nullable`1[System.Decimal])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(System.Nullable`1[System.Double])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(System.Nullable`1[System.Single])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(System.Nullable`1[System.Int32])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(System.Nullable`1[System.UInt32])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(System.Nullable`1[System.Int64])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(System.Nullable`1[System.UInt64])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-34.cs">
-    <type name="S">
-      <method name="Void .ctor(Double, Double)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-optional-35.cs">
-    <type name="MainClass">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="MainClass+FooDelegate">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-partial-01.cs">
-    <type name="B`1[U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-partial-010.cs">
-    <type name="A.C">
-      <method name="Int32 A.IA&lt;A.C.NA&gt;.Foo(NA)" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 A.IA&lt;A.C.NB&gt;.Foo(NB)" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.C+NA">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.C+NB">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-partial-02.cs">
-    <type name="A`1[T]">
-      <method name="Void Test()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="T get_CurrentItem()" attrs="2177">
-        <size>14</size>
-      </method>
-      <method name="Void set_CurrentItem(T)" attrs="2177">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-partial-03.cs">
-    <type name="Variable">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`1[T]">
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="CC">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-partial-04.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-partial-05.cs">
-    <type name="Driver">
-      <method name="Void Foo[T](T)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-partial-06.cs">
-    <type name="Test">
-      <method name="Void Baz[U]()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Bar[U](U)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-partial-07.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+B[T]">
-      <method name="Void Test()" attrs="134">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X`1[U]">
-      <method name="Void Foo(U)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-partial-08.cs">
-    <type name="N.A`2[T1,T2]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.A`2+D[T1,T2]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.A`2+D+C[T1,T2]">
-      <method name="Void Test()" attrs="134">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.A`2+D2`1[T1,T2,U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.A`2+D2`1+C2[T1,T2,U]">
-      <method name="Void Test()" attrs="134">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.X2`1[W]">
-      <method name="Void Foo(W)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.X">
-      <method name="Void Foo()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-partial-09.cs">
-    <type name="A.B`1[T]">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.B`1+C[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.B`1+C+A[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.Bar">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.Test">
-      <method name="Void Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-var-04.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>246</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-1.cs">
-    <type name="Foo">
-      <method name="System.String get_Bar()" attrs="2534">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>75</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-10.cs">
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 I&lt;string&gt;.get_Count()" attrs="2529">
-        <size>10</size>
-      </method>
-      <method name="Int32 I&lt;Foo&gt;.get_Count()" attrs="2529">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>42</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-11.cs">
-    <type name="D">
-      <method name="Int32 Main()" attrs="150">
-        <size>137</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Boolean Contra[T](IContravariant`1[T], IContravariant`1[T])" attrs="150">
-        <size>49</size>
-      </method>
-      <method name="Boolean Covariant[T](ICovariant`1[T], ICovariant`1[T])" attrs="150">
-        <size>49</size>
-      </method>
-      <method name="Boolean CovContCont[T](ICovariant`1[T], IContravariant`1[T], IContravariant`1[T])" attrs="150">
-        <size>49</size>
-      </method>
-      <method name="Boolean ContCovContCov[T](IContravariant`1[T], ICovariant`1[T], IContravariant`1[T], ICovariant`1[T])" attrs="150">
-        <size>49</size>
-      </method>
-      <method name="Boolean CovCovCont[T](ICovariant`1[T], ICovariant`1[T], IContravariant`1[T])" attrs="150">
-        <size>49</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-12.cs">
-    <type name="D`1[T]">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void add_field(D`1[System.String])" attrs="2534">
-        <size>42</size>
-      </method>
-      <method name="Void remove_field(D`1[System.String])" attrs="2534">
-        <size>42</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>64</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-13.cs">
-    <type name="A">
-      <method name="Void Test()" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void Foo[T](T, System.Collections.Generic.IList`1[T])" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Foo[T](T, I`1[T])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test[U](U, I`1[U])" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-14.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+D`1[T]">
-      <method name="Void Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+D`2[T,U]">
-      <method name="T Invoke(U)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+D`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+D`2[T,U]">
-      <method name="System.IAsyncResult BeginInvoke(U, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="T EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-15.cs">
-    <type name="C">
-      <method name="Void MethodArg(System.Object)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>61</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+D`1[T]">
-      <method name="Void Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void M[T](T ByRef, D`1)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="Void M2[T](T, D`1)" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C+D`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void &lt;Main&gt;m__0(System.Object)" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-16.cs">
-    <type name="S">
-      <method name="System.String op_Implicit(S)" attrs="2198">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>58</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="T Foo[T](T, I`1[T])" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-17.cs">
-    <type name="A">
-      <method name="Void InterfaceContravariat&lt;int&gt;.set_Prop(Int32)" attrs="2529">
-        <size>7</size>
-      </method>
-      <method name="Void InterfaceContravariat&lt;int&gt;.set_Item(Int32, Int32)" attrs="2529">
-        <size>7</size>
-      </method>
-      <method name="Int64 InterfaceCovariant&lt;long&gt;.get_Prop()" attrs="2529">
-        <size>7</size>
-      </method>
-      <method name="Int64 InterfaceCovariant&lt;long&gt;.get_Item(Int32)" attrs="2529">
-        <size>7</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-18.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-19.cs">
-    <type name="Test">
-      <method name="Void Bla[T,U]()" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-2.cs">
-    <type name="Foo">
-      <method name="System.String Bar(System.Object)" attrs="486">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>110</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-20.cs">
-    <type name="DocAttribute">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Func`2[T1,TR]">
-      <method name="TR Invoke(T1)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Func`2[T1,TR]">
-      <method name="System.IAsyncResult BeginInvoke(T1, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="TR EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-21.cs">
-    <type name="C">
-      <method name="Boolean M[T]()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-3.cs">
-    <type name="Foo`1[T]">
-      <method name="T Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>69</size>
-      </method>
-      <method name="Int32 Bar(Foo`1[System.Object])" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Main&gt;c__AnonStorey0">
-      <method name="System.String &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="T EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-4.cs">
-    <type name="Foo`1[T]">
-      <method name="Int32 Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>71</size>
-      </method>
-      <method name="Int32 Bar(Foo`1[System.String], System.String)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 &lt;Main&gt;m__0(System.Object)" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-5.cs">
-    <type name="BothVariants`2[T1,T2]">
-      <method name="T1 get_Foo()" attrs="2534">
-        <size>14</size>
-      </method>
-      <method name="Void set_Foo(T1)" attrs="2177">
-        <size>8</size>
-      </method>
-      <method name="Int32 Bar(T2)" attrs="486">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor(T1)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Invariant`1[T]">
-      <method name="T get_Foo()" attrs="2534">
-        <size>14</size>
-      </method>
-      <method name="Int32 Bar(T)" attrs="486">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="System.String get_Fruit()" attrs="2502">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="System.String get_Fruit()" attrs="2246">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.String get_Fruit()" attrs="2246">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>136</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-6.cs">
-    <type name="Cov1`1[U]">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Cov2`1[U]">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Cov3`1[U]">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Cov4`1[U]">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Cov5`1[U]">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Contra5`1[U]">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Contra6`1[U]">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Contra7`1[U]">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Contra8`1[U]">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Cov1`1[U]">
-      <method name="ICovariant`1[U] Invoke(IContravariant`1[U])" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Cov2`1[U]">
-      <method name="ICovariant`1[U] Invoke(IContravariant`1[ICovariant`1[U]])" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Cov3`1[U]">
-      <method name="ICovariant`1[IContravariant`1[IContravariant`1[U]]] Invoke(IContravariant`1[IContravariant`1[IContravariant`1[ICovariant`1[U]]]])" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Cov4`1[U]">
-      <method name="ICovariant`1[System.Int32] Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Cov5`1[U]">
-      <method name="IContravariant`1[System.Int32] Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Contra5`1[U]">
-      <method name="IContravariant`1[U[]] Invoke(U, ICovariant`1[U])" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Contra6`1[U]">
-      <method name="IContravariant`1[U[]] Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Contra7`1[U]">
-      <method name="IContravariant`1[U] Invoke(U, ICovariant`1[U])" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Contra8`1[U]">
-      <method name="IContravariant`1[ICovariant`1[U]] Invoke(U, ICovariant`1[U])" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Cov1`1[U]">
-      <method name="System.IAsyncResult BeginInvoke(IContravariant`1[U], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="ICovariant`1[U] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Cov2`1[U]">
-      <method name="System.IAsyncResult BeginInvoke(IContravariant`1[ICovariant`1[U]], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="ICovariant`1[U] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Cov3`1[U]">
-      <method name="System.IAsyncResult BeginInvoke(IContravariant`1[IContravariant`1[IContravariant`1[ICovariant`1[U]]]], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="ICovariant`1[IContravariant`1[IContravariant`1[U]]] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Cov4`1[U]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="ICovariant`1[System.Int32] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Cov5`1[U]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="IContravariant`1[System.Int32] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Contra5`1[U]">
-      <method name="System.IAsyncResult BeginInvoke(U, ICovariant`1[U], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="IContravariant`1[U[]] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Contra6`1[U]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="IContravariant`1[U[]] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Contra7`1[U]">
-      <method name="System.IAsyncResult BeginInvoke(U, ICovariant`1[U], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="IContravariant`1[U] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Contra8`1[U]">
-      <method name="System.IAsyncResult BeginInvoke(U, ICovariant`1[U], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="IContravariant`1[ICovariant`1[U]] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-7.cs">
-    <type name="Covariant`1[T]">
-      <method name="T Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Contra`1[T]">
-      <method name="Void Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="CoContra`2[TR,T]">
-      <method name="TR Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="None`1[T]">
-      <method name="Void Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test`1[U]">
-      <method name="Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]] Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test2`1[U]">
-      <method name="Contra`1[Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]]] Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test3`1[U]">
-      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Contra`1[Contra`1[U]]]]]]]] Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test4`1[U]">
-      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[Contra`1[U]]]]]]]] Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test5`1[U]">
-      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[U]]]]]]] Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test6`1[U]">
-      <method name="Void Invoke(Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]])" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Both`2[U,V]">
-      <method name="Void Invoke(CoContra`2[U,V])" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Both2`2[U,V]">
-      <method name="Void Invoke(CoContra`2[U,Contra`1[U]])" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Both3`2[U,V]">
-      <method name="Void Invoke(CoContra`2[U,Contra`1[System.Int32]])" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Both4`2[U,V]">
-      <method name="Void Invoke(Both`2[V,U])" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Both5`2[U,V]">
-      <method name="Void Invoke(Both`2[V,System.Int32])" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Covariant`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="T EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Contra`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="CoContra`2[TR,T]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="TR EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="None`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test`1[U]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test2`1[U]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Contra`1[Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]]] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test3`1[U]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Contra`1[Contra`1[U]]]]]]]] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test4`1[U]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[Contra`1[U]]]]]]]] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test5`1[U]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[U]]]]]]] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test6`1[U]">
-      <method name="System.IAsyncResult BeginInvoke(Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Both`2[U,V]">
-      <method name="System.IAsyncResult BeginInvoke(CoContra`2[U,V], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Both2`2[U,V]">
-      <method name="System.IAsyncResult BeginInvoke(CoContra`2[U,Contra`1[U]], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Both3`2[U,V]">
-      <method name="System.IAsyncResult BeginInvoke(CoContra`2[U,Contra`1[System.Int32]], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Both4`2[U,V]">
-      <method name="System.IAsyncResult BeginInvoke(Both`2[V,U], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Both5`2[U,V]">
-      <method name="System.IAsyncResult BeginInvoke(Both`2[V,System.Int32], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-8.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>165</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="gtest-variance-9.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Foo(IIn`1[System.String])" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-1.cs">
-    <type name="X">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-10.cs">
-    <type name="X">
-      <method name="Void asbyte(Byte, UInt16, UInt32, UInt64, Char)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void bsbyte()" attrs="129">
-        <size>36</size>
-      </method>
-      <method name="Void abyte(SByte, Char)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void bbyte()" attrs="129">
-        <size>23</size>
-      </method>
-      <method name="Void ashort(SByte, Byte, UInt16, UInt32, UInt64, Char)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void bshort()" attrs="129">
-        <size>40</size>
-      </method>
-      <method name="Void aushort(SByte, Byte, Int16, Char)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void bushort()" attrs="129">
-        <size>30</size>
-      </method>
-      <method name="Void aint(SByte, Byte, Int16, UInt16, UInt32, UInt64, Char)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void bint()" attrs="129">
-        <size>43</size>
-      </method>
-      <method name="Void auint(SByte, Byte, Int16, UInt16, Int32, Char)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void buint()" attrs="129">
-        <size>39</size>
-      </method>
-      <method name="Void along(SByte, Byte, Int16, UInt16, Int32, UInt32, UInt64, Char)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void blong()" attrs="129">
-        <size>48</size>
-      </method>
-      <method name="Void aulong(SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, Char)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void bulong()" attrs="129">
-        <size>48</size>
-      </method>
-      <method name="Void achar(SByte, Byte, Int16)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void bchar()" attrs="129">
-        <size>28</size>
-      </method>
-      <method name="Void bfloat()" attrs="129">
-        <size>68</size>
-      </method>
-      <method name="Void bdouble()" attrs="129">
-        <size>76</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test2">
-      <method name="Void ExtraTst()" attrs="129">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void afloat(SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, Char, System.Decimal)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void adouble(SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, Char, Single, System.Decimal)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void TestDecimal(System.Decimal)" attrs="129">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-100.cs">
-    <type name="GLib.Object">
-      <method name="Int32 get_Raw()" attrs="2180">
-        <size>10</size>
-      </method>
-      <method name="Void set_Raw(Int32)" attrs="2180">
-        <size>9</size>
-      </method>
-      <method name="Void GetProperty()" attrs="134">
-        <size>13</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-101.cs">
-    <type name="Test.MyAttribute">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="Test.My2Attribute">
-      <method name="Void .ctor(String, Int32)" attrs="6278">
-        <size>32</size>
-      </method>
-    </type>
-    <type name="Test.Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>114</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-102.cs">
-    <type name="N1.MineAttribute">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="N1.ReturnAttribute">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="N1.Foo">
-      <method name="Int32 Main()" attrs="150">
-        <size>292</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-103.cs">
-    <type name="A">
-      <method name="Int32 Foo()" attrs="1476">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 Foo()" attrs="196">
-        <size>10</size>
-      </method>
-      <method name="Int32 M()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-104.cs">
-    <type name="Test">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-105.cs">
-    <type name="Test">
-      <method name="Int32 F(Int32)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>427</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+SimpleDelegate">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void async_callback(System.IAsyncResult)" attrs="145">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Test+SimpleDelegate">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-107.cs">
-    <type name="Test">
-      <method name="Int32 F(Int32)" attrs="145">
-        <size>28</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>97</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+SimpleDelegate">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void async_callback(System.IAsyncResult)" attrs="145">
-        <size>101</size>
-      </method>
-    </type>
-    <type name="Test+SimpleDelegate">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-108.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>107</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-109.cs">
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-11.cs">
-    <type name="Test">
-      <method name="Int32 boxtest()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-110.cs">
-    <type name="test.test">
-      <method name="Int32 test_method(Int32)" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-111.cs">
-    <type name="T">
-      <method name="System.Object get_obj()" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-112.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32[] g()" attrs="145">
-        <size>22</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-113.cs">
-    <type name="X">
-      <method name="Void g_object_get(IntPtr, System.String, System.String ByRef, IntPtr)" attrs="129">
-        <size>5</size>
-      </method>
-      <method name="Void GetProperty(System.String, System.String ByRef)" attrs="134">
-        <size>22</size>
-      </method>
-      <method name="Void g_object_get(IntPtr, System.String, Boolean ByRef, IntPtr)" attrs="129">
-        <size>5</size>
-      </method>
-      <method name="Void GetProperty(System.String, Boolean ByRef)" attrs="134">
-        <size>22</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-114.cs">
-    <type name="MyClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyClass+IsAnything">
-      <method name="Boolean Invoke(Char)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Char, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Boolean EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-115.cs">
-    <type name="A">
-      <method name="X op_Explicit(A)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="blah">
-      <method name="Int32 Main()" attrs="150">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-116.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-117.cs">
-    <type name="Blah">
-      <method name="Int32 Main()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-118.cs">
-    <type name="Container">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-119.cs">
-    <type name="Value">
-      <method name="Int32 op_Explicit(Value)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="MyObject op_Explicit(Value)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="UInt32 op_Explicit(Value)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyObject">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Derived">
-      <method name="Derived Blah()" attrs="129">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>45</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-12.cs">
-    <type name="X">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>322</size>
-      </method>
-      <method name="System.String s(System.String, Int32)" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="System.String x(System.String, System.Object)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-120.cs">
-    <type name="test">
-      <method name="Int32 Main()" attrs="150">
-        <size>154</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-121.cs">
-    <type name="X">
-      <method name="Int32 g()" attrs="145">
-        <size>22</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>104</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-122.cs">
-    <type name="A">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+B">
-      <method name="Void Foo()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-123.cs">
-    <type name="X">
-      <method name="System.Object get_non_null()" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="System.Object get_null()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>115</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-124.cs">
-    <type name="t">
-      <method name="Void a()" attrs="129">
-        <size>21</size>
-      </method>
-      <method name="Void b()" attrs="129">
-        <size>21</size>
-      </method>
-      <method name="Void c()" attrs="129">
-        <size>31</size>
-      </method>
-      <method name="Void d()" attrs="129">
-        <size>37</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-125.cs">
-    <type name="Fraction">
-      <method name="Fraction op_Implicit(Int32)" attrs="2198">
-        <size>25</size>
-      </method>
-      <method name="Int32 op_Explicit(Fraction)" attrs="2198">
-        <size>32</size>
-      </method>
-      <method name="Boolean op_Equality(Fraction, Fraction)" attrs="2198">
-        <size>62</size>
-      </method>
-      <method name="Boolean op_Inequality(Fraction, Fraction)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>50</size>
-      </method>
-      <method name="Fraction op_Addition(Fraction, Fraction)" attrs="2198">
-        <size>116</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>55</size>
-      </method>
-      <method name="Void .ctor(Int32, Int32)" attrs="6278">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>32</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Int32 Main()" attrs="150">
-        <size>158</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-126.cs">
-    <type name="X">
-      <method name="Void Iface.Method()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>46</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-127.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>45</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-128.cs">
-    <type name="SimpleAttribute">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="MineAttribute">
-      <method name="Void .ctor(Type[])" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Int32 MM()" attrs="150">
-        <size>194</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Blah">
-      <method name="Int32 get_Value()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Value(Int32)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Int32 Another()" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-129.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>156</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-13.cs">
-    <type name="Foo">
-      <method name="Boolean MyMethod()" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Blah">
-      <method name="Int32 Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-130.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>20</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-131.cs">
-    <type name="SimpleAttribute">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Blah">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-132.cs">
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>75</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-133.cs">
-    <type name="T">
-      <method name="Void DecodeOp(UInt16, OpCode ByRef, OpFlags ByRef)" attrs="145">
-        <size>22</size>
-      </method>
-      <method name="Void get_struct(S ByRef)" attrs="145">
-        <size>25</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>103</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-134.cs">
-    <type name="AA">
-      <method name="Void A()" attrs="486">
-        <size>9</size>
-      </method>
-      <method name="Void B()" attrs="486">
-        <size>9</size>
-      </method>
-      <method name="Void C()" attrs="486">
-        <size>9</size>
-      </method>
-      <method name="Boolean get_OK()" attrs="2182">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BB">
-      <method name="Void A()" attrs="486">
-        <size>19</size>
-      </method>
-      <method name="Void B()" attrs="486">
-        <size>9</size>
-      </method>
-      <method name="Void C()" attrs="486">
-        <size>9</size>
-      </method>
-      <method name="Boolean get_OK()" attrs="2182">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Void A()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void B()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>94</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-135.cs">
-    <type name="A">
-      <method name="Void doh()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="IA IB.get_Prop()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="A get_Prop()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>50</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-136.cs">
-    <type name="MyCar">
-      <method name="Void IDiagnostic.Stop()" attrs="481">
-        <size>9</size>
-      </method>
-      <method name="Void IAutomobile.Stop()" attrs="481">
-        <size>9</size>
-      </method>
-      <method name="Void Stop()" attrs="134">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestConflict">
-      <method name="Int32 Main()" attrs="150">
-        <size>92</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-137.cs">
-    <type name="C">
-      <method name="Void X()" attrs="486">
-        <size>16</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>123</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-138.cs">
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-139.cs">
-    <type name="T">
-      <method name="Void one()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void two(T)" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void three(T ByRef)" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>39</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-14.cs">
-    <type name="Obj.A">
-      <method name="Int32 F()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 G()" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Int32 H()" attrs="486">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Obj.B">
-      <method name="Int32 F()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 G()" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Int32 H()" attrs="134">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Obj.Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>192</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-140.cs">
-    <type name="BreakTest">
-      <method name="Void B()" attrs="150">
-        <size>50</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-141.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>61</size>
-      </method>
-      <method name="Boolean Test1()" attrs="145">
-        <size>36</size>
-      </method>
-      <method name="Boolean Test2()" attrs="145">
-        <size>37</size>
-      </method>
-      <method name="Boolean Test3()" attrs="145">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-142.cs">
-    <type name="TestClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor(EventHandler)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="TestBaseClass">
-      <method name="Void add_Blah(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Blah(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-143.cs">
-    <type name="MonoEnumInfo">
-      <method name="Void stuff()" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Int32 GetInfo(MonoEnumInfo ByRef)" attrs="145">
-        <size>28</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>50</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-144.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-145.cs">
-    <type name="JagArrayTest">
-      <method name="Void Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>25</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-146.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>352</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-147.cs">
-    <type name="X">
-      <method name="X Foo()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="X Bar()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="X Baz()" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="UInt32 get_Property()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="UInt32 get_StaticProperty()" attrs="2198">
-        <size>11</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>15</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Y Foo()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Y Bar()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Y Baz()" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="UInt32 get_Property()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="UInt32 get_StaticProperty()" attrs="2198">
-        <size>11</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>15</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Int32 Test()" attrs="134">
-        <size>132</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>346</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-148.cs">
-    <type name="Y">
-      <method name="Int32 X.get_Foo(Int32)" attrs="2529">
-        <size>10</size>
-      </method>
-      <method name="Int32 get_Bar(Int32)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Int64 get_Bar(Double)" attrs="2182">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Int64 get_Whatever(Double)" attrs="2182">
-        <size>11</size>
-      </method>
-      <method name="Single get_Whatever(Int64, Int32)" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Int32 InstanceTest()" attrs="134">
-        <size>72</size>
-      </method>
-      <method name="Int32 Test()" attrs="150">
-        <size>429</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>107</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Z+MyArray">
-      <method name="System.Object get_Item(Int32)" attrs="2246">
-        <size>16</size>
-      </method>
-      <method name="Void set_Item(Int32, System.Object)" attrs="2246">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Int32 get_Monkey(Int32)" attrs="2182">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int64 get_Item(Int64, Int32)" attrs="2182">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Int64 get_Item(Int64, Int32)" attrs="2182">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="System.String get_g()" attrs="2502">
-        <size>14</size>
-      </method>
-      <method name="Void set_g(System.String)" attrs="2502">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="F">
-      <method name="System.String get_g()" attrs="2246">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="DisposableNotifyList">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ChildList">
-      <method name="Void Test()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-149.cs">
-    <type name="MyDelegate">
-      <method name="Int64 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void X.add_Foo(System.EventHandler)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Void X.remove_Foo(System.EventHandler)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Void add_Foo(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Foo(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void add_TestEvent(MyDelegate)" attrs="2534">
-        <size>42</size>
-      </method>
-      <method name="Void remove_TestEvent(MyDelegate)" attrs="2534">
-        <size>42</size>
-      </method>
-      <method name="Int32 Test()" attrs="134">
-        <size>162</size>
-      </method>
-      <method name="Void callback1(System.Object, System.EventArgs)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Int64 callback2(Int32)" attrs="145">
-        <size>27</size>
-      </method>
-      <method name="Void callback3(System.Object, System.EventArgs)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Int32 a()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>100</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Z+SomeEventHandler">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Static">
-      <method name="Void add_Test(System.EventHandler)" attrs="2198">
-        <size>40</size>
-      </method>
-      <method name="Void remove_Test(System.EventHandler)" attrs="2198">
-        <size>40</size>
-      </method>
-      <method name="Void Fire()" attrs="134">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyDelegate">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int64 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Void add_BuildStarted(SomeEventHandler)" attrs="2198">
-        <size>40</size>
-      </method>
-      <method name="Void remove_BuildStarted(SomeEventHandler)" attrs="2198">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="Z+SomeEventHandler">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-15.cs">
-    <type name="Implementor">
-      <method name="Int32 A()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="StructImplementor">
-      <method name="Int32 A()" attrs="486">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Run">
-      <method name="Int32 Main()" attrs="150">
-        <size>73</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-150.cs">
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-151.cs">
-    <type name="A.Iface">
-      <method name="Void bah()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.my">
-      <method name="Void doit(System.Object)" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-152.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>115</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-153.cs">
-    <type name="Z">
-      <method name="Void Test2(System.String, System.Object[])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Test(System.String, System.Object[])" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>94</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-154.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void test1(Single ByRef)" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void test2(Int32, Single ByRef)" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Int32 test4(Int32, Single ByRef)" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Int32 test5(Single ByRef, Int64)" attrs="150">
-        <size>81</size>
-      </method>
-      <method name="Int32 test6(Single ByRef)" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Int64 test8(Int32)" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Int64 test9(Int32)" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void test10(Int32, Single ByRef)" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="Int64 test11(Int32)" attrs="150">
-        <size>55</size>
-      </method>
-      <method name="Void test12(Single ByRef)" attrs="150">
-        <size>24</size>
-      </method>
-      <method name="Void test13(Int32, Single ByRef)" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Int64 test14(Int32, Single ByRef)" attrs="150">
-        <size>77</size>
-      </method>
-      <method name="Int32 test15(Int32, Single ByRef)" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void test16()" attrs="150">
-        <size>66</size>
-      </method>
-      <method name="Void test17()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void test18(Int32, Int32 ByRef)" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="Int32 test19()" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Int32 test20()" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 test21()" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="Int32 test22()" attrs="145">
-        <size>31</size>
-      </method>
-      <method name="Int32 test23(System.Object, Int32, Boolean ByRef)" attrs="145">
-        <size>44</size>
-      </method>
-      <method name="Int64 test24(Int32)" attrs="145">
-        <size>89</size>
-      </method>
-      <method name="Int64 test25(Int32)" attrs="145">
-        <size>48</size>
-      </method>
-      <method name="Void test26()" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Int32 test27()" attrs="145">
-        <size>22</size>
-      </method>
-      <method name="Void test28(System.Object ByRef)" attrs="145">
-        <size>24</size>
-      </method>
-      <method name="Boolean test29(Int32 ByRef)" attrs="145">
-        <size>26</size>
-      </method>
-      <method name="System.String test30(System.String ByRef)" attrs="134">
-        <size>41</size>
-      </method>
-      <method name="System.String test31(Int32)" attrs="134">
-        <size>94</size>
-      </method>
-      <method name="Void test32()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Int32 test33()" attrs="134">
-        <size>12</size>
-      </method>
-      <method name="Void test34()" attrs="134">
-        <size>26</size>
-      </method>
-      <method name="Void test35(Int32, Boolean)" attrs="150">
-        <size>35</size>
-      </method>
-      <method name="Void test36()" attrs="150">
-        <size>46</size>
-      </method>
-      <method name="Void test37()" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Int32 test38()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 test40(Int32)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void test41()" attrs="134">
-        <size>44</size>
-      </method>
-      <method name="Void test42(Int32)" attrs="134">
-        <size>73</size>
-      </method>
-      <method name="Void test3(Int64[], Int32)" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Int64 test7(Int32[], Int32)" attrs="150">
-        <size>75</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-155.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>52</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+TestClass">
-      <method name="System.String test(System.String)" attrs="486">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-156.cs">
-    <type name="Internal">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Public">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+NestedPublic">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+NestedAssembly">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+NestedFamilyAndAssembly">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+NestedFamily">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+NestedPrivate">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="F">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void Test(YI)" attrs="131">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y+YA">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y+YB">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y+YC">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y+YD">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y+YE">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y+YF">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y+YG">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y+YH">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Z+P">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="W">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="W+WA">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="W+WB">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="W+WC">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="W+WD">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="W+WE">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="W+WCA">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="W+WCB">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="W+WCB+WCD">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="W+WCB+WCD+WCE">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="G">
-      <method name="Void Test(X)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="G+I">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="G+I+J">
-      <method name="Void Test(Foo)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="H">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Hello(System.String)" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="H">
-      <method name="Void Test(Int32[])" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-157.cs">
-    <type name="Test.MyAttribute">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="Test.Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>233</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-158.cs">
-    <type name="My">
-      <method name="Void .ctor(Object)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="My+Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>109</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-159.cs">
-    <type name="A.Iface">
-      <method name="Void bah()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.my">
-      <method name="Void doit(System.Object)" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-16.cs">
-    <type name="Mine.Blah">
-      <method name="Int32 op_Addition(Mine.Blah, Mine.Blah)" attrs="2198">
-        <size>20</size>
-      </method>
-      <method name="Int32 op_Implicit(Mine.Blah)" attrs="2198">
-        <size>20</size>
-      </method>
-      <method name="Byte op_Implicit(Mine.Blah)" attrs="2198">
-        <size>20</size>
-      </method>
-      <method name="Int16 op_Implicit(Mine.Blah)" attrs="2198">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Mine.Foo">
-      <method name="Int32 Main()" attrs="150">
-        <size>134</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-160.cs">
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Int32 blah(System.Object)" attrs="145">
-        <size>70</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-161.cs">
-    <type name="ZipEntry">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor(ZipEntry)" attrs="6278">
-        <size>19</size>
-      </method>
-      <method name="System.DateTime get_DateTime()" attrs="2182">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-162.cs">
-    <type name="A">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>28</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void .ctor(Int64)" attrs="6278">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void test_output(A)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void test_output(B)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void test_output(E)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void test_output(F)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void test1()" attrs="145">
-        <size>22</size>
-      </method>
-      <method name="Void test2()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Void test3()" attrs="145">
-        <size>22</size>
-      </method>
-      <method name="Void test4(A)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void test5(A ByRef)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void test6(B ByRef)" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Void test7()" attrs="145">
-        <size>29</size>
-      </method>
-      <method name="Void test8()" attrs="145">
-        <size>51</size>
-      </method>
-      <method name="Void test9()" attrs="145">
-        <size>27</size>
-      </method>
-      <method name="Void test10()" attrs="145">
-        <size>83</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-163.cs">
-    <type name="Blah">
-      <method name="Int32 Foo(System.String)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo(System.Object)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-164.cs">
-    <type name="X">
-      <method name="Int32 Foo()" attrs="452">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="X+FooDelegate">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Int32 Foo()" attrs="196">
-        <size>10</size>
-      </method>
-      <method name="Int32 Hello()" attrs="129">
-        <size>20</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>47</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="X+FooDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-165.cs">
-    <type name="Testing">
-      <method name="Int32 TestEnumInit(Fruit)" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>90</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-166.cs">
-    <type name="Test">
-      <method name="Int32 ITest.get_Item(Int32)" attrs="2529">
-        <size>10</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Int32 get_TargetIntegerSize()" attrs="2534">
-        <size>10</size>
-      </method>
-      <method name="Int32 Hello(IInferior)" attrs="129">
-        <size>15</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>84</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-167.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>62</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 Test(Foo[])" attrs="145">
-        <size>41</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-168.cs">
-    <type name="X">
-      <method name="System.String op_Implicit(X)" attrs="2198">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-169.cs">
-    <type name="basec">
-      <method name="System.String get_Message()" attrs="2502">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="der">
-      <method name="System.String get_Message()" attrs="2246">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Base">
-      <method name="Int32 get_Thingy()" attrs="2502">
-        <size>15</size>
-      </method>
-      <method name="Void set_Thingy(Int32)" attrs="2502">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Derived">
-      <method name="Int32 get_BaseThingy()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Thingy(Int32)" attrs="2246">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Int32 Main()" attrs="150">
-        <size>120</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-17.cs">
-    <type name="Blah">
-      <method name="Int32 Main()" attrs="150">
-        <size>53</size>
-      </method>
-      <method name="Byte op_Implicit(Blah)" attrs="2198">
-        <size>20</size>
-      </method>
-      <method name="Int16 op_Implicit(Blah)" attrs="2198">
-        <size>20</size>
-      </method>
-      <method name="Int32 op_Implicit(Blah)" attrs="2198">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-170.cs">
-    <type name="X">
-      <method name="Int32 get_prop()" attrs="2502">
-        <size>15</size>
-      </method>
-      <method name="Void set_prop(Int32)" attrs="2502">
-        <size>9</size>
-      </method>
-      <method name="Void set_AAA(Int32)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Int32 get_prop()" attrs="2246">
-        <size>15</size>
-      </method>
-      <method name="Void set_prop(Int32)" attrs="2246">
-        <size>9</size>
-      </method>
-      <method name="Int32 A()" attrs="129">
-        <size>56</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-171.cs">
-    <type name="IntPtr_Conv.Class1">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-172.cs">
-    <type name="X">
-      <method name="Boolean ff()" attrs="145">
-        <size>22</size>
-      </method>
-      <method name="Boolean tt()" attrs="145">
-        <size>22</size>
-      </method>
-      <method name="Int32 test_if()" attrs="145">
-        <size>741</size>
-      </method>
-      <method name="Int32 test_while()" attrs="145">
-        <size>499</size>
-      </method>
-      <method name="Int32 test_inline()" attrs="145">
-        <size>42</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>132</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>49</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-173.cs">
-    <type name="Base">
-      <method name="Int32 get_Value()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6276">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor(UInt32)" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor(Int64)" attrs="6278">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor(UInt64)" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void .ctor(Int16)" attrs="6278">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor(UInt16)" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void .ctor(SByte)" attrs="6278">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor(Byte)" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="E op_Implicit(Int64)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Int64)" attrs="6278">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor(E)" attrs="6278">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="F">
-      <method name="F op_Implicit(Int32)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor(F)" attrs="6278">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Test()" attrs="145">
-        <size>297</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-174.cs">
-    <type name="ProtectedAccessToPropertyOnChild">
-      <method name="Int32 Main()" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6273">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="TestAccessToPrivateMemberInParentClass">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="TestAccessToPrivateMemberInParentClass+CholeskyDecomposition">
-      <method name="Void .ctor(TestAccessToPrivateMemberInParentClass)" attrs="6278">
-        <size>38</size>
-      </method>
-    </type>
-    <type name="TestAccessToProtectedOnChildInstanceFromParent">
-      <method name="Int32 Test()" attrs="134">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="TestAccessToProtectedOnChildInstanceFromParent+Parent">
-      <method name="Void .ctor()" attrs="6276">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="TestAccessToProtectedOnChildInstanceFromParent+Child">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestAccessToPrivateMemberInParentClass">
-      <method name="Double[][] get_Array()" attrs="2177">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="TestAccessToProtectedOnChildInstanceFromParent+Parent">
-      <method name="Int32 TestAccessToProtected(Child)" attrs="134">
-        <size>28</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-175.cs">
-    <type name="RVA">
-      <method name="RVA op_Implicit(UInt32)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="UInt32 op_Implicit(RVA)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor(UInt32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>77</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-176.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-177.cs">
-    <type name="MethodAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ReturnAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Method()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-178.cs">
-    <type name="BrowsableClass">
-      <method name="BrowsableClass op_Increment(BrowsableClass)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-179.cs">
-    <type name="A">
-      <method name="Void set_Item(Double, Double)" attrs="2182">
-        <size>16</size>
-      </method>
-      <method name="Double get_Item(Double)" attrs="2182">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void set_Item(Double, Double)" attrs="2182">
-        <size>16</size>
-      </method>
-      <method name="Double get_Item(Double)" attrs="2182">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void set_Item(System.String, System.String)" attrs="2182">
-        <size>16</size>
-      </method>
-      <method name="System.String get_Item(System.String)" attrs="2182">
-        <size>44</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32)" attrs="2182">
-        <size>16</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="EntryPoint">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>173</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-18.cs">
-    <type name="X">
-      <method name="Void m()" attrs="145">
-        <size>63</size>
-      </method>
-      <method name="Int32 ret(Int32)" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>90</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-180.cs">
-    <type name="Testing">
-      <method name="Void Main()" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-181.cs">
-    <type name="Test">
-      <method name="Void test()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>178</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void test2()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void test3()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void test4()" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-182.cs">
-    <type name="TS">
-      <method name="Int64 get_Ticks()" attrs="2182">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="DT">
-      <method name="Int64 get_Ticks()" attrs="2182">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-183.cs">
-    <type name="Test">
-      <method name="Int32 M(Int32, Int32 ByRef)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>89</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+D">
-      <method name="Int32 Invoke(Int32, Int32 ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Int32, Int32 ByRef, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(Int32 ByRef, System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-184.cs">
-    <type name="Struct">
-      <method name="Int32 get_X()" attrs="2534">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="User">
-      <method name="Void .ctor(Interface)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6273">
-        <size>56</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-185.cs">
-    <type name="X">
-      <method name="Int32 Test(Int32)" attrs="150">
-        <size>50</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>47</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-186.cs">
-    <type name="TestBUG.myAttribute">
-      <method name="Void .ctor(String, String, String, Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="TestBUG.Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-187.cs">
-    <type name="MyClass">
-      <method name="Container get_Item(System.String)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Item(System.String, Container)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Container">
-      <method name="Container op_Addition(Container, System.Object)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void A(System.Collections.Specialized.NameValueCollection, MyClass, System.Object)" attrs="145">
-        <size>66</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-188.cs">
-    <type name="Enumerator">
-      <method name="Boolean MoveNext()" attrs="134">
-        <size>29</size>
-      </method>
-      <method name="Char get_Current()" attrs="2182">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="RealEnumerator">
-      <method name="Void Dispose()" attrs="486">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor(Coll)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Coll">
-      <method name="Enumerator GetEnumerator()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>93</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-189.cs">
-    <type name="MyTest">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>81</size>
-      </method>
-      <method name="Int32 m(Int32, Double)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoTest">
-      <method name="Int32 method1(System.String, System.Object[])" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Void testmethod()" attrs="134">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoTest2">
-      <method name="Int32 method1(System.String, System.Object[])" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void testmethod2()" attrs="134">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyTest">
-      <method name="Int32 m(Int32, Int32[])" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-19.cs">
-    <type name="I">
-      <method name="System.String fn(System.String)" attrs="145">
-        <size>25</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="I+GetTextFn">
-      <method name="System.String Invoke(System.String)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Thread_func()" attrs="129">
-        <size>12</size>
-      </method>
-      <method name="Int32 Func(Int32, Int32)" attrs="134">
-        <size>12</size>
-      </method>
-      <method name="Void Bar()" attrs="134">
-        <size>45</size>
-      </method>
-      <method name="Boolean MyFilter(System.Reflection.MemberInfo, System.Object)" attrs="145">
-        <size>26</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>337</size>
-      </method>
-      <method name="Int32 multiply_by_three(Int32)" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+Foo">
-      <method name="Int32 Invoke(Int32, Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="NameSpace.TestDelegate">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestNamespace.TestClass">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestNamespace.TestClass+NotWorkingDelegate">
-      <method name="Single Invoke(Single, System.Object[])" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="I+GetTextFn">
-      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+Foo">
-      <method name="System.IAsyncResult BeginInvoke(Int32, Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="NameSpace.TestDelegate">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestNamespace.TestClass+NotWorkingDelegate">
-      <method name="System.IAsyncResult BeginInvoke(Single, System.Object[], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Single EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-190.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="A+B">
-      <method name="Void Test()" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+C">
-      <method name="Void Test(A)" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-191.cs">
-    <type name="X">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+E">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+D+P">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y+Op">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="R">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-192.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>4</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-193.cs">
-    <type name="A">
-      <method name="Int32 Test(Int32)" attrs="145">
-        <size>93</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-194.cs">
-    <type name="TestParams">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>56</size>
-      </method>
-      <method name="Int32 Params(System.Object[])" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-195.cs">
-    <type name="Y">
-      <method name="Int32 C()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6273">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6273">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-196.cs">
-    <type name="X">
-      <method name="Void Bug1()" attrs="129">
-        <size>16</size>
-      </method>
-      <method name="Void Bug2()" attrs="129">
-        <size>16</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-197.cs">
-    <type name="X">
-      <method name="Void Foo()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Void Foo()" attrs="198">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-198.cs">
-    <type name="N1.N3.N4.Bar">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N1.N2.Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N5.N6.Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N5.N7.N8.Bar">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FirstOuter.FirstInner.First">
-      <method name="System.String get_MyIdentity()" attrs="2182">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FirstOuter.Second">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FirstOuter.SecondInner.Third">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FirstOuter.FirstInner.Fourth">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Fifth">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M1.M2.M3.Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="P1.P2.Bar">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-199.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N1.Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N1.Foo+Foo2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N1.Bar2">
-      <method name="Int32 Talk()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N2.Bar">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N2.Bar+Bar2">
-      <method name="Int32 Talk()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-2.cs">
-    <type name="X">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-20.cs">
-    <type name="A">
-      <method name="Void X()" attrs="134">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void X()" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void TestB()" attrs="134">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Ax">
-      <method name="Void A()" attrs="454">
-        <size>9</size>
-      </method>
-      <method name="Void B()" attrs="454">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bx">
-      <method name="Void A()" attrs="198">
-        <size>9</size>
-      </method>
-      <method name="Void B()" attrs="134">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>123</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-200.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>130</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-201.cs">
-    <type name="Parent">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Child">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Child+Nested">
-      <method name="Void .ctor()" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="Collide">
-      <method name="Int32 Main()" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>15</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-202.cs">
-    <type name="X.X">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.B.C.D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-203.cs">
-    <type name="Foo">
-      <method name="Modifiers get_Modifiers()" attrs="2179">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-204.cs">
-    <type name="X">
-      <method name="System.String ToString()" attrs="198">
-        <size>30</size>
-      </method>
-      <method name="X op_BitwiseAnd(X, X)" attrs="2198">
-        <size>27</size>
-      </method>
-      <method name="X op_BitwiseOr(X, X)" attrs="2198">
-        <size>27</size>
-      </method>
-      <method name="Boolean op_True(X)" attrs="2198">
-        <size>23</size>
-      </method>
-      <method name="Boolean op_False(X)" attrs="2198">
-        <size>20</size>
-      </method>
-      <method name="Int32 Test()" attrs="150">
-        <size>187</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-205.cs">
-    <type name="A">
-      <method name="Void .ctor(Object)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-206.cs">
-    <type name="X">
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>92</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32[] get_Item(Int32[])" attrs="2534">
-        <size>47</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-207.cs">
-    <type name="Test">
-      <method name="Void Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void hello(Int32)" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void world(Int32)" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>161</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-208.cs">
-    <type name="X">
-      <method name="System.String get_Item(System.String)" attrs="2534">
-        <size>10</size>
-      </method>
-      <method name="Void Test()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-209.cs">
-    <type name="A">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 get_Foo()" attrs="2182">
-        <size>17</size>
-      </method>
-      <method name="Void set_Foo(Int32)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void set_Item(System.String, System.String)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void set_Bar(System.String)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="A get_A()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_A(A)" attrs="2182">
-        <size>13</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>85</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-21.cs">
-    <type name="Blah">
-      <method name="Int32 Main()" attrs="150">
-        <size>60</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Blah+Foo">
-      <method name="Int32 Bar(Int32, Int32)" attrs="134">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-210.cs">
-    <type name="FooHandler">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void foo()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FooHandler">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-211.cs">
-    <type name="X">
-      <method name="X op_Implicit(Int32)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Y op_Implicit(X)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(X)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Z op_Implicit(Y)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor(Y)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-212.cs">
-    <type name="Problem">
-      <method name="Problem op_Implicit(Int32)" attrs="2198">
-        <size>30</size>
-      </method>
-      <method name="Int32 Multi(Int32, Problem[])" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>84</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-213.cs">
-    <type name="MyTest">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="Void Print()" attrs="486">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-214.cs">
-    <type name="N2.Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N1.C1">
-      <method name="Void Foo()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-215.cs">
-    <type name="Test">
-      <method name="N1.C1 get_C1()" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N1.C1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-216.cs">
-    <type name="OnWhateverDelegate">
-      <method name="Void Invoke(System.String)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="cls">
-      <method name="Void add_OnWhatever(OnWhateverDelegate)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_OnWhatever(OnWhateverDelegate)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void CallMyDel(System.String)" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="cls+nestedcls">
-      <method name="Void CallParentDel(cls, System.String)" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoEmbed">
-      <method name="Void Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void Whatever(System.String)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="OnWhateverDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-217.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>226</size>
-      </method>
-      <method name="System.Object compare_gte(Int32, Int32)" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="System.Object compare_lte(Int32, Int32)" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-218.cs">
-    <type name="T">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void compareQueryQuery1(System.Object)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="T+foo">
-      <method name="Void Invoke(System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-219.cs">
-    <type name="TestAttribute">
-      <method name="System.Type get_Type()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Type)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>79</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-22.cs">
-    <type name="S">
-      <method name="T GetT()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void Init()" attrs="134">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Int32 Main()" attrs="150">
-        <size>81</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-220.cs">
-    <type name="MonoBUG.Bug">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>164</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoBUG.Foo">
-      <method name="System.String get_Name()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="MonoBUG.FooList">
-      <method name="Void Add(MonoBUG.Foo)" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="MonoBUG.FooList+FooEnumerator">
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>36</size>
-      </method>
-      <method name="Boolean System.Collections.IEnumerator.MoveNext()" attrs="481">
-        <size>20</size>
-      </method>
-      <method name="Void System.Collections.IEnumerator.Reset()" attrs="481">
-        <size>13</size>
-      </method>
-      <method name="MonoBUG.Foo get_Current()" attrs="2182">
-        <size>54</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void Reset()" attrs="134">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor(FooList)" attrs="6278">
-        <size>32</size>
-      </method>
-    </type>
-    <type name="MonoBUG.FooList">
-      <method name="FooEnumerator GetEnumerator()" attrs="134">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-221.cs">
-    <type name="A">
-      <method name="Int32 get_Blah()" attrs="2502">
-        <size>10</size>
-      </method>
-      <method name="Void set_Blah(Int32)" attrs="2502">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 get_Blah()" attrs="2246">
-        <size>10</size>
-      </method>
-      <method name="Boolean Test()" attrs="150">
-        <size>72</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 get_Blah()" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void set_Blah(Int32)" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Int32 get_Blah()" attrs="2246">
-        <size>10</size>
-      </method>
-      <method name="Void set_Blah(Int32)" attrs="2246">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="Int32 get_Blah()" attrs="2246">
-        <size>15</size>
-      </method>
-      <method name="Boolean Test()" attrs="150">
-        <size>72</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="F">
-      <method name="Int32 IBlah.get_Item(Int32)" attrs="2529">
-        <size>10</size>
-      </method>
-      <method name="Void IBlah.set_Item(Int32, Int32)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Int32 IBlah.get_Blah()" attrs="2529">
-        <size>10</size>
-      </method>
-      <method name="Void IBlah.set_Blah(Int32)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Int32 get_Blah()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Blah(Int32)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Boolean Test()" attrs="150">
-        <size>134</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Driver">
-      <method name="Int32 Main()" attrs="150">
-        <size>61</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-222.cs">
-    <type name="Class_1">
-      <method name="UIntPtr Valid()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-223.cs">
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>89</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-224.cs">
-    <type name="XmlMemberArrayAttribute">
-      <method name="System.String get_Name()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Name(System.String)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Boolean get_IsRequired()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_IsRequired(Boolean)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>39</size>
-      </method>
-    </type>
-    <type name="t">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="XmlMemberArrayAttribute">
-      <method name="Char[] get_Separator()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Separator(Char[])" attrs="2182">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-225.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 foo()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-226.cs">
-    <type name="Test226">
-      <method name="Void Test()" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-227.cs">
-    <type name="A.T">
-      <method name="Void Main()" attrs="150">
-        <size>4</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-228.cs">
-    <type name="BadRefTest.CtorInc">
-      <method name="Int32 IncByRef(Int32 ByRef)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Boolean Results(Int32)" attrs="150">
-        <size>106</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>31</size>
-      </method>
-    </type>
-    <type name="BadRefTest.Runner">
-      <method name="Int32 Main()" attrs="150">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-229.cs">
-    <type name="List">
-      <method name="Void Add(Int32)" attrs="134">
-        <size>27</size>
-      </method>
-      <method name="MyEnumerator GetEnumerator()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="List+MyEnumerator">
-      <method name="System.Object get_Current()" attrs="2534">
-        <size>32</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>39</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor(List)" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="UberList">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>46</size>
-      </method>
-      <method name="Boolean One()" attrs="145">
-        <size>76</size>
-      </method>
-      <method name="Boolean Two()" attrs="145">
-        <size>76</size>
-      </method>
-      <method name="Boolean Three()" attrs="145">
-        <size>76</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="List">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>20</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-23.cs">
-    <type name="X">
-      <method name="Int32 get_Value()" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="Void set_Value(Int32)" attrs="2198">
-        <size>8</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>213</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="System.String get_Value()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Value(System.String)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Int32 get_IVal()" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="Void set_IVal(Int32)" attrs="2198">
-        <size>8</size>
-      </method>
-      <method name="Int32 get_XVal()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_XVal(Int32)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-230.cs">
-    <type name="TestClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>70</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-231.cs">
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>48</size>
-      </method>
-      <method name="Void Foo()" attrs="129">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-232.cs">
-    <type name="CtorInfoTest">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>978</size>
-      </method>
-      <method name="Void Assert(System.Object, System.Object)" attrs="145">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-233.cs">
-    <type name="Tests">
-      <method name="Int32 Main()" attrs="150">
-        <size>24</size>
-      </method>
-      <method name="Int32 test_0_beq()" attrs="145">
-        <size>42</size>
-      </method>
-      <method name="Int32 test_0_bne_un()" attrs="145">
-        <size>42</size>
-      </method>
-      <method name="Int32 test_0_conv_r8()" attrs="145">
-        <size>42</size>
-      </method>
-      <method name="Int32 test_0_conv_i()" attrs="145">
-        <size>111</size>
-      </method>
-      <method name="Int32 test_5_conv_r4()" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Int32 test_5_double_conv_r4()" attrs="145">
-        <size>24</size>
-      </method>
-      <method name="Int32 test_5_float_conv_r8()" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Int32 test_5_conv_r8()" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Int32 test_5_add()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 test_5_sub()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 test_24_mul()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 test_4_div()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 test_2_rem()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 test_2_neg()" attrs="145">
-        <size>22</size>
-      </method>
-      <method name="Int32 test_46_float_add_spill()" attrs="145">
-        <size>139</size>
-      </method>
-      <method name="Int32 test_362880_float_mul_spill()" attrs="145">
-        <size>139</size>
-      </method>
-      <method name="Int32 test_4_long_cast()" attrs="145">
-        <size>42</size>
-      </method>
-      <method name="Int32 test_16_float_cmp()" attrs="145">
-        <size>423</size>
-      </method>
-      <method name="Int32 test_15_float_cmp_un()" attrs="145">
-        <size>397</size>
-      </method>
-      <method name="Int32 test_15_float_branch()" attrs="145">
-        <size>302</size>
-      </method>
-      <method name="Int32 test_15_float_branch_un()" attrs="145">
-        <size>302</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestDriver">
-      <method name="Int32 RunTests(System.Type, System.String[])" attrs="150">
-        <size>599</size>
-      </method>
-      <method name="Int32 RunTests(System.Type)" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-234.cs">
-    <type name="T">
-      <method name="Void Main()" attrs="150">
-        <size>700</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-235.cs">
-    <type name="T">
-      <method name="Void Foo(T, T)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Foo(System.Object[])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-236.cs">
-    <type name="Tests.Test">
-      <method name="System.Object Tests.IIndexer.get_Item(Int32)" attrs="2529">
-        <size>17</size>
-      </method>
-      <method name="Void Tests.IIndexer.set_Item(Int32, System.Object)" attrs="2529">
-        <size>11</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-237.cs">
-    <type name="Params">
-      <method name="Void foo(System.String, System.Object[])" attrs="150">
-        <size>133</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>46</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>96</size>
-      </method>
-    </type>
-    <type name="Params+FOO">
-      <method name="Void Invoke(System.String, System.Object[])" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(System.String, System.Object[], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-238.cs">
-    <type name="TestClass">
-      <method name="Void ConditionalMethod()" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-239.cs">
-    <type name="BaseClass">
-      <method name="Void ConditionalMethod()" attrs="454">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestClass">
-      <method name="Void ConditionalMethod()" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-24.cs">
-    <type name="X">
-      <method name="System.String get_S()" attrs="2193">
-        <size>14</size>
-      </method>
-      <method name="Void set_S(System.String)" attrs="2193">
-        <size>8</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>115</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-240.cs">
-    <type name="TestClass">
-      <method name="Void ConditionalMethod()" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-241.cs">
-    <type name="Foo">
-      <method name="Int32 get_SomeProperty()" attrs="2500">
-        <size>11</size>
-      </method>
-      <method name="Int32 M()" attrs="452">
-        <size>11</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo+FooPrivate">
-      <method name="Int32 get_SomeProperty()" attrs="2244">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor(Foo)" attrs="6275">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-242.cs">
-    <type name="BaseClass">
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Derived">
-      <method name="Int32 get_Location()" attrs="2182">
-        <size>11</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-243.cs">
-    <type name="X">
-      <method name="Boolean Resolve(System.String)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="System.String Test()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-244.cs">
-    <type name="Foo">
-      <method name="Int32 Main()" attrs="150">
-        <size>164</size>
-      </method>
-      <method name="MyBool get_t()" attrs="2193">
-        <size>37</size>
-      </method>
-      <method name="MyBool get_f()" attrs="2193">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="MyBool">
-      <method name="MyBool op_BitwiseAnd(MyBool, MyBool)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="MyBool op_BitwiseOr(MyBool, MyBool)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="Boolean op_True(MyBool)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Boolean op_False(MyBool)" attrs="2198">
-        <size>19</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor(Boolean)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-245.cs">
-    <type name="Class2">
-      <method name="System.String get_def_kind()" attrs="2182">
-        <size>20</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-246.cs">
-    <type name="Blah">
-      <method name="Void Dispose()" attrs="486">
-        <size>12</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-247.cs">
-    <type name="B">
-      <method name="Void Main()" attrs="150">
-        <size>73</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Blah">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-248.cs">
-    <type name="T">
-      <method name="Foo GetFoo()" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-249.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-25.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>264</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-250.cs">
-    <type name="Test.foo3">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Tests">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-251.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-252.cs">
-    <type name="Foo">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void add_Bar(Foo)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Bar(Foo)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void m1()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>69</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-253.cs">
-    <type name="AccessibleAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyClass">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>80</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-254.cs">
-    <type name="TestAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test_1">
-      <method name="Void Test(Int32)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="test_delegate">
-      <method name="System.Delegate Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test_2">
-      <method name="Int32 get_Test()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Test(Int32)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void set_Test2(Boolean)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test_3">
-      <method name="Void add_e_1(test_delegate)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_e_1(test_delegate)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void add_e_2(test_delegate)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_e_2(test_delegate)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test_4">
-      <method name="Void add_e_1(test_delegate)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void remove_e_1(test_delegate)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void add_e_2(test_delegate)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void remove_e_2(test_delegate)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void add_e_3(test_delegate)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void remove_e_3(test_delegate)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ClassMain">
-      <method name="Void Assert(System.Object[], Boolean, Int32)" attrs="145">
-        <size>80</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>1169</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="test_delegate">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.Delegate EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-255.cs">
-    <type name="TestAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Method()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-256.cs">
-    <type name="TableColumn">
-      <method name="System.Object get_MagicValue()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_MagicValue(System.Object)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bug">
-      <method name="Int32 get_TInt()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-257.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Void call(Int32 ByRef)" attrs="145">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-258.cs">
-    <type name="MyTest.Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyTest.Test2">
-      <method name="Void MyTest.Test.Inner.Foo()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-259.cs">
-    <type name="Testing">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-26.cs">
-    <type name="Blah">
-      <method name="Int32 Foo(Int32, Int32)" attrs="134">
-        <size>12</size>
-      </method>
-      <method name="Int32 Test1()" attrs="150">
-        <size>130</size>
-      </method>
-      <method name="Int32 Test2()" attrs="150">
-        <size>59</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>58</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Blah+MyDelegate">
-      <method name="Int32 Invoke(Int32, Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Blah+List">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Blah">
-      <method name="Int32 Adder(Int32[])" attrs="150">
-        <size>45</size>
-      </method>
-    </type>
-    <type name="Blah+MyDelegate">
-      <method name="System.IAsyncResult BeginInvoke(Int32, Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Blah+List">
-      <method name="Int32 Invoke(Int32[])" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Int32[], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-260.cs">
-    <type name="x.Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="y.Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="b.a">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-261.cs">
-    <type name="T">
-      <method name="T get_Me()" attrs="2177">
-        <size>24</size>
-      </method>
-      <method name="T GetMe()" attrs="129">
-        <size>24</size>
-      </method>
-      <method name="Int32 Test(T)" attrs="145">
-        <size>134</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>35</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-262.cs">
-    <type name="n1.Attribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="n3.A">
-      <method name="Void Attribute()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void X()" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-263.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.String GetString(Byte[])" attrs="134">
-        <size>31</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-264.cs">
-    <type name="Proef">
-      <method name="Void add_OnDoSomething(System.EventHandler)" attrs="2182">
-        <size>25</size>
-      </method>
-      <method name="Void remove_OnDoSomething(System.EventHandler)" attrs="2182">
-        <size>25</size>
-      </method>
-      <method name="Void Temp(System.Object, System.EventArgs)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-265.cs">
-    <type name="ClassFormatError">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(String, Object[])" attrs="6275">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="UnsupportedClassVersionError">
-      <method name="Void .ctor(String)" attrs="6275">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-266.cs">
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-267.cs">
-    <type name="X">
-      <method name="System.String Text()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-268.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+Nested">
-      <method name="MyEnum D()" attrs="131">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-269.cs">
-    <type name="Result">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>25</size>
-      </method>
-    </type>
-    <type name="Class1">
-      <method name="Int32 AddABunchOfInts(...)" attrs="145">
-        <size>75</size>
-      </method>
-      <method name="Int32 AddASecondBunchOfInts(Int32, ...)" attrs="145">
-        <size>75</size>
-      </method>
-      <method name="Result VtAddABunchOfInts(...)" attrs="145">
-        <size>80</size>
-      </method>
-      <method name="Result VtAddASecondBunchOfInts(Int32, ...)" attrs="145">
-        <size>80</size>
-      </method>
-      <method name="Int32 InstAddABunchOfInts(...)" attrs="129">
-        <size>75</size>
-      </method>
-      <method name="Int32 InstAddASecondBunchOfInts(Int32, ...)" attrs="129">
-        <size>75</size>
-      </method>
-      <method name="Result InstVtAddABunchOfInts(...)" attrs="129">
-        <size>80</size>
-      </method>
-      <method name="Result InstVtAddASecondBunchOfInts(Int32, ...)" attrs="129">
-        <size>80</size>
-      </method>
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>415</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-27.cs">
-    <type name="Foo">
-      <method name="Boolean MyMethod(Int32)" attrs="486">
-        <size>25</size>
-      </method>
-      <method name="Int32 AnotherMethod(Int32)" attrs="486">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Blah">
-      <method name="Void Bar(Int32, Int32)" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>144</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Blah+MyDelegate">
-      <method name="Void Invoke(Int32, Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Int32, Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-270.cs">
-    <type name="X">
-      <method name="Int32 Test(System.String, System.Object[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test(System.String, ...)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>93</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-271.cs">
-    <type name="T">
-      <method name="C X()" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>65</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T+C">
-      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="486">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-272.cs">
-    <type name="BazAttribute">
-      <method name="Void set_foo3(Foo)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Foo get_foo3()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Foo)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void f0()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void f1()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void f2()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void f3()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-273.cs">
-    <type name="FooAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tests">
-      <method name="Void Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-274.cs">
-    <type name="MyClass">
-      <method name="Void .ctor(String[])" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="ChildClass">
-      <method name="Void .ctor()" attrs="6278">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-275.cs">
-    <type name="DelType">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="Void add_MyEvent(DelType)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_MyEvent(DelType)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void add_MyEventStatic(DelType)" attrs="2198">
-        <size>40</size>
-      </method>
-      <method name="Void remove_MyEventStatic(DelType)" attrs="2198">
-        <size>40</size>
-      </method>
-      <method name="Int32 RunInstance()" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Int32 RunStatic()" attrs="134">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>129</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="DelType">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 &lt;Main&gt;m__0()" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-276.cs">
-    <type name="EventTestClass">
-      <method name="Void add_Elapsed(System.EventHandler)" attrs="2534">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Elapsed(System.EventHandler)" attrs="2534">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-277.cs">
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Int32 X(Byte)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 X(Int16)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-278.cs">
-    <type name="Rect">
-      <method name="Int32 get_X()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_X(Int32)" attrs="2182">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>81</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-279.cs">
-    <type name="FlagsAttributeDemo">
-      <method name="Int32 Main()" attrs="150">
-        <size>55</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-28.cs">
-    <type name="A">
-      <method name="Int32 get_Item(Int32)" attrs="3524">
-        <size>0</size>
-      </method>
-      <method name="Int32 EmulateIndexer(Int32)" attrs="134">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 get_Item(Int32)" attrs="2244">
-        <size>10</size>
-      </method>
-      <method name="Int32 M()" attrs="134">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 get_Item(Int32)" attrs="2177">
-        <size>33</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32)" attrs="2177">
-        <size>27</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>152</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-280.cs">
-    <type name="AppFramework.Util.Logic">
-      <method name="Boolean EnumInSet(System.Enum, System.Enum[])" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-281.cs">
-    <type name="Foo.Hello">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar.Hello">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Test.Test1">
-      <method name="Int32 World()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Test2">
-      <method name="Int32 World()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>47</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-282.cs">
-    <type name="integer">
-      <method name="integer op_Implicit(Int32)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Double op_Implicit(integer)" attrs="2198">
-        <size>21</size>
-      </method>
-      <method name="integer op_Addition(integer, integer)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Object Add(integer, System.Object)" attrs="150">
-        <size>83</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>86</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-283.cs">
-    <type name="X">
-      <method name="Int32 Foo()" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Int32 Foo()" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>70</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y+D">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="D GetIt()" attrs="129">
-        <size>21</size>
-      </method>
-      <method name="D GetIt2()" attrs="129">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="Y+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-284.cs">
-    <type name="App">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-285.cs">
-    <type name="Test">
-      <method name="Int32 test1()" attrs="145">
-        <size>73</size>
-      </method>
-      <method name="Int32 test2()" attrs="145">
-        <size>73</size>
-      </method>
-      <method name="Int32 Main()" attrs="145">
-        <size>46</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-286.cs">
-    <type name="MethodWrapper">
-      <method name="Void SetDeclaredExceptions(MapXml.Throws[])" attrs="131">
-        <size>62</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MapXml.Throws">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-287.cs">
-    <type name="StaticClass">
-      <method name="System.String Name()" attrs="150">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="StaticClass+D">
-      <method name="System.Object Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>103</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="StaticClass+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.Object EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-288.cs">
-    <type name="Test.BookAboutMovie">
-      <method name="System.String GetItem(Int32)" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="System.String get_Item(Int32)" attrs="2534">
-        <size>15</size>
-      </method>
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>65</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>26</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-289.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void set_Value(System.String)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void set_Value()" attrs="134">
-        <size>7</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32, Boolean)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32)" attrs="2177">
-        <size>2</size>
-      </method>
-      <method name="Boolean get_Item(Boolean)" attrs="2177">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-29.cs">
-    <type name="Base">
-      <method name="Void Add(Int32)" attrs="134">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Derived">
-      <method name="Void Add(Double)" attrs="134">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Demo">
-      <method name="Int32 Main()" attrs="150">
-        <size>69</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-290.cs">
-    <type name="EntryPoint">
-      <method name="Void bar_f(System.Object)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="EntryPoint+EventHandler">
-      <method name="Void Invoke(System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="EntryPoint">
-      <method name="Void add_FooEvent(EventHandler)" attrs="2193">
-        <size>40</size>
-      </method>
-      <method name="Void remove_FooEvent(EventHandler)" attrs="2193">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="EntryPoint+EventHandler">
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-291.cs">
-    <type name="Test">
-      <method name="Void Method()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-292.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-293.cs">
-    <type name="A">
-      <method name="System.String get_Warning()" attrs="2502">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="System.String get_Warning()" attrs="2246">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-294.cs">
-    <type name="ObsoleteClass">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.String get_Name()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Name(System.String)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor(String, Boolean)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="DerivedTest">
-      <method name="System.String Method()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void T2()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="ObsoleteClass2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ObsoleteClass3">
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>25</size>
-      </method>
-    </type>
-    <type name="ObsoleteClass4">
-      <method name="Void T()" attrs="134">
-        <size>78</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-295.cs">
-    <type name="MyAttribute">
-      <method name="System.Object get_my()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Object)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="MyConstructorBuilder">
-      <method name="Int32 Main()" attrs="150">
-        <size>147</size>
-      </method>
-      <method name="System.Type MyCreateCallee(System.AppDomain)" attrs="145">
-        <size>345</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-296.cs">
-    <type name="GetElementTypeTest">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>49</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-297.cs">
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>378</size>
-      </method>
-      <method name="Void Login(System.String)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="My">
-      <method name="Void .ctor(Object)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-298.cs">
-    <type name="A">
-      <method name="Int32 op_Addition(Int16, A)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int32 op_UnaryNegation(A)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 op_Addition(Int32, B)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int32 op_UnaryNegation(B)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-299.cs">
-    <type name="SampleClass">
-      <method name="SuperClass op_Increment(SampleClass)" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="SuperClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-3.cs">
-    <type name="TestIntOps">
-      <method name="SByte sbyte_add(SByte, SByte)" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Int16 short_add(Int16, Int16)" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Double double_add(Double, Double)" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Int32 int_add(Int32, Int32)" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Int32 int_sub(Int32, Int32)" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Int32 int_mul(Int32, Int32)" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>268</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-30.cs">
-    <type name="X">
-      <method name="Void IA.Draw()" attrs="481">
-        <size>9</size>
-      </method>
-      <method name="Void IB.Draw()" attrs="481">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="test">
-      <method name="Int32 Main()" attrs="150">
-        <size>220</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-300.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>515</size>
-      </method>
-    </type>
-    <type name="A+B+C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-301.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>231</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-302.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="A+B+C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-303.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+C">
-      <method name="Void System.IDisposable.Dispose()" attrs="481">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>34</size>
-      </method>
-    </type>
-    <type name="A+B+C">
-      <method name="Void System.IDisposable.Dispose()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-304.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>515</size>
-      </method>
-    </type>
-    <type name="A+B+C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-305.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>231</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-306.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="A+B+C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-307.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+D">
-      <method name="Void System.IDisposable.Dispose()" attrs="481">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>34</size>
-      </method>
-    </type>
-    <type name="A+B+C">
-      <method name="Void System.IDisposable.Dispose()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-308.cs">
-    <type name="Program">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-309.cs">
-    <type name="MonoBASIC.Parser">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoBASIC.Parser+StateMachine">
-      <method name="Void HandleToken(Token)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-31.cs">
-    <type name="Base">
-      <method name="Void A()" attrs="454">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Derived">
-      <method name="Void A()" attrs="454">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-310.cs">
-    <type name="test.Impl">
-      <method name="System.String GetType(Int32)" attrs="486">
-        <size>14</size>
-      </method>
-      <method name="Boolean IsDone()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="test.myclass">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-311.cs">
-    <type name="Program">
-      <method name="System.String get_Message()" attrs="18582">
-        <size>14</size>
-      </method>
-      <method name="Void set_Message(System.String)" attrs="18582">
-        <size>8</size>
-      </method>
-      <method name="Boolean DenyMethod()" attrs="16513">
-        <size>10</size>
-      </method>
-      <method name="Void Test2()" attrs="16518">
-        <size>2</size>
-      </method>
-      <method name="Void Test3()" attrs="16518">
-        <size>2</size>
-      </method>
-      <method name="Void Test4()" attrs="16518">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main(System.String[])" attrs="16534">
-        <size>213</size>
-      </method>
-      <method name="Void .ctor()" attrs="22662">
-        <size>39</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="Test2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-312.cs">
-    <type name="PointF">
-      <method name="Void .ctor(Single, Single)" attrs="6278">
-        <size>48</size>
-      </method>
-    </type>
-    <type name="Point">
-      <method name="PointF op_Implicit(Point)" attrs="2198">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor(Int32, Int32)" attrs="6278">
-        <size>38</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Boolean Method(PointF)" attrs="145">
-        <size>85</size>
-      </method>
-      <method name="Boolean Call_constructor_and_implicit()" attrs="145">
-        <size>37</size>
-      </method>
-      <method name="Boolean Init_with_implicit_conv()" attrs="145">
-        <size>65</size>
-      </method>
-      <method name="Boolean Init_ValueType()" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="Boolean InstanceAssignTest()" attrs="145">
-        <size>88</size>
-      </method>
-      <method name="Int32 T()" attrs="145">
-        <size>82</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-313.cs">
-    <type name="D">
-      <method name="Void A.B.METHOD()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>167</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-314.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>75</size>
-      </method>
-      <method name="Void .ctor()" attrs="6273">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6273">
-        <size>29</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-315.cs">
-    <type name="GuardedCollectionValue">
-      <method name="IDirectedEnumerable IDirectedEnumerable.Backwards()" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="IDirectedCollectionValue Backwards()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="GuardedSequenced">
-      <method name="IDirectedCollectionValue Test()" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-316.cs">
-    <type name="D">
-      <method name="Int32 IA.Add(Int32)" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="Int32 IB.Add(Int32)" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="Int32 IA.Add(Int32)" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="Int32 IB.Add(Int32)" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="Void doom()" attrs="486">
-        <size>7</size>
-      </method>
-      <method name="System.Object Clone()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Test(IC)" attrs="145">
-        <size>72</size>
-      </method>
-      <method name="Void Test2(IE)" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-317.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-318.cs">
-    <type name="Ev">
-      <method name="Void add_Disposed(System.EventHandler)" attrs="2182">
-        <size>20</size>
-      </method>
-      <method name="Void remove_Disposed(System.EventHandler)" attrs="2182">
-        <size>20</size>
-      </method>
-      <method name="Void OnClick(System.EventArgs)" attrs="134">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>29</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void EventInterface.add_Event(System.EventHandler)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Void EventInterface.remove_Event(System.EventHandler)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void my_from_fixed(Int32 ByRef)" attrs="150">
-        <size>5</size>
-      </method>
-      <method name="Void month_from_fixed(Int32)" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Int32 CreateFromString(Int32)" attrs="147">
-        <size>18</size>
-      </method>
-      <method name="Double* GetValue(Double)" attrs="134">
-        <size>13</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-319.cs">
-    <type name="ConstFields">
-      <method name="Int32 Main()" attrs="150">
-        <size>352</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>148</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-32.cs">
-    <type name="Blah">
-      <method name="Int32 Main()" attrs="150">
-        <size>60</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-320.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor(SByte*, Int32, Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-321.cs">
-    <type name="X">
-      <method name="Void Dispose()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>31</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-322.cs">
-    <type name="Y">
-      <method name="Int32 op_Implicit(Y)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Byte)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-323.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-324.cs">
-    <type name="A">
-      <method name="Void DoStuff()" attrs="134">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Boolean get_Val()" attrs="2182">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="Driver">
-      <method name="Void Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-325.cs">
-    <type name="RequestAttribute">
-      <method name="Void .ctor(String, String, String[])" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="MyClass">
-      <method name="Int32 SomeRequest()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-326.cs">
-    <type name="Mapper">
-      <method name="Double Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Mapper">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Double EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Double &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-327.cs">
-    <type name="X2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.B.Tester">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-328.cs">
-    <type name="A.B.Tester">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-329.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>92</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Object)" attrs="6278">
-        <size>22</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-33.cs">
-    <type name="FirstOuter.FirstInner.First">
-      <method name="System.String get_MyIdentity()" attrs="2182">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FirstOuter.Second">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FirstOuter.SecondInner.Third">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FirstOuter.FirstInner.Fourth">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Fifth">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Application">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>149</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-330.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-331.cs">
-    <type name="T">
-      <method name="Byte* get_Ptr()" attrs="2179">
-        <size>15</size>
-      </method>
-      <method name="Void set_Ptr(Byte*)" attrs="2179">
-        <size>9</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-332.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-333.cs">
-    <type name="Foo">
-      <method name="Void Something()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="Void Something()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-334.cs">
-    <type name="Test.Foo.Index.CompoundFileReader">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Foo.Store.Directory">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-335.cs">
-    <type name="X">
-      <method name="Void A(Int32, Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void C(Int32 ByRef)" attrs="145">
-        <size>5</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>71</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+B">
-      <method name="Void Invoke(Int32, Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+D">
-      <method name="Void Invoke(Int32 ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+B">
-      <method name="System.IAsyncResult BeginInvoke(Int32, Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+D">
-      <method name="System.IAsyncResult BeginInvoke(Int32 ByRef, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(Int32 ByRef, System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-336.cs">
-    <type name="Foo">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="Void Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Test()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor(Foo)" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Bar)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-337.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-338.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y+Z">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Z fz()" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-339.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>98</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>17</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-34.cs">
-    <type name="FancyInt">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Blah">
-      <method name="Void Foo(Int32 ByRef, Int32 ByRef)" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void Foo(Int32, Int32)" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void In(Int32 ByRef)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Void Out(Int32 ByRef)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Int32 AddFancy(FancyInt[])" attrs="145">
-        <size>47</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>319</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 Bar(Int32, Int32[])" attrs="150">
-        <size>74</size>
-      </method>
-      <method name="Int32 AddArray(Int32[])" attrs="145">
-        <size>38</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-340.cs">
-    <type name="FLMID.Bugs.BoolOne.A">
-      <method name="Void Add(Boolean, Boolean, UInt32, Boolean)" attrs="486">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FLMID.Bugs.BoolOne.B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FLMID.Bugs.BoolOne.Test">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-341.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Libs">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-342.cs">
-    <type name="A">
-      <method name="Void Foo(Int32)" attrs="454">
-        <size>2</size>
-      </method>
-      <method name="Void Foo(Double)" attrs="454">
-        <size>12</size>
-      </method>
-      <method name="Boolean get_Item(Int32)" attrs="2502">
-        <size>10</size>
-      </method>
-      <method name="Boolean get_Item(Double)" attrs="2502">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Foo(Double)" attrs="198">
-        <size>12</size>
-      </method>
-      <method name="Boolean get_Item(Double)" attrs="2246">
-        <size>12</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-343.cs">
-    <type name="X">
-      <method name="Void Concat(System.String, System.String, System.String)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Concat(System.String[])" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-344.cs">
-    <type name="Y">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void add_y(Y)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_y(Y)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void Foo()" attrs="129">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Foo&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-345.cs">
-    <type name="EntryPoint">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-346.cs">
-    <type name="TestMethods.Class1">
-      <method name="Int32 Main()" attrs="150">
-        <size>101</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestMethods.ParamClass">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestMethods.TestParam">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestMethods.BaseClass">
-      <method name="Int32 AddItem(TestMethods.ParamClass)" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestMethods.TestClass">
-      <method name="Int32 AddItem(System.Object)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 AddItem(TestMethods.ParamClass)" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-347.cs">
-    <type name="Whatever.Core.Project">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Whatever.Core.A">
-      <method name="Whatever.Core.Project get_Project()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="SomethingElse.Core.Project">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Whatever.App.B">
-      <method name="System.String Execute()" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-348.cs">
-    <type name="BoundAttribute">
-      <method name="Void .ctor(Double, Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-349.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void add_Ev1(D)" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Ev1(D)" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void add_Ev1(D)" attrs="2198">
-        <size>40</size>
-      </method>
-      <method name="Void remove_Ev1(D)" attrs="2198">
-        <size>40</size>
-      </method>
-      <method name="Void add_Ev2(D)" attrs="2198">
-        <size>40</size>
-      </method>
-      <method name="Void remove_Ev2(D)" attrs="2198">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>1</size>
-      </method>
-    </type>
-    <type name="X2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>63</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-35.cs">
-    <type name="X">
-      <method name="Void a()" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Void w(Int32)" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>310</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-350.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+BAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-351.cs">
-    <type name="Test.Foo">
-      <method name="Void Invoke(System.String, System.Object[])" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test.Testee">
-      <method name="Void Bar(System.String, System.Object[])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>243</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.String, System.Object[], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-352.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-353.cs">
-    <type name="Three">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="One">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Two">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-354.cs">
-    <type name="MYAttr">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-355.cs">
-    <type name="Level1.Level1.Level2.MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-356.cs">
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-357.cs">
-    <type name="SD.Sd">
-      <method name="Void F(Boolean)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo.Bar">
-      <method name="Void Main()" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="Foo.Bar+f_t">
-      <method name="Void Invoke(Boolean)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Boolean, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-358.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>57</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-359.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-36.cs">
-    <type name="Y">
-      <method name="Int32 Main()" attrs="150">
-        <size>311</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="134">
-        <size>43</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-360.cs">
-    <type name="Application">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-361.cs">
-    <type name="X">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-362.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void Test()" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-363.cs">
-    <type name="Location">
-      <method name="Void .ctor()" attrs="6273">
-        <size>8</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="Element">
-      <method name="Location get_Location()" attrs="2500">
-        <size>15</size>
-      </method>
-      <method name="Void set_Location(Location)" attrs="2500">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-364.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>52</size>
-      </method>
-      <method name="Int32 t1(Int32)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Int32 t2(Int32)" attrs="145">
-        <size>55</size>
-      </method>
-      <method name="Void Main2(System.String[])" attrs="150">
-        <size>75</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+Foo">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Delegable">
-      <method name="Void add_MyDelegate(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_MyDelegate(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;t1&gt;c__AnonStorey0">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;t2&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main2&gt;c__AnonStorey2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;t2&gt;c__AnonStorey1">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main2&gt;c__AnonStorey2">
-      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
-        <size>34</size>
-      </method>
-    </type>
-    <type name="X+Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-365.cs">
-    <type name="C">
-      <method name="Void set_LiteralType(LiteralType)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-366.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-367.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-368.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-369.cs">
-    <type name="Test">
-      <method name="Boolean op_Equality(Test, Test)" attrs="2198">
-        <size>22</size>
-      </method>
-      <method name="Boolean op_Inequality(Test, Test)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-37.cs">
-    <type name="X">
-      <method name="Int32 test_int_single_dim()" attrs="145">
-        <size>108</size>
-      </method>
-      <method name="Int32 simple_test_double_dim()" attrs="145">
-        <size>96</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void m(Int32[])" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-370.cs">
-    <type name="Test.Application">
-      <method name="Int32 ParseType(System.String)" attrs="145">
-        <size>152</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>72</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-371.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(Boolean&amp;)" attrs="6278">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void .ctor(Boolean&amp;)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-372.cs">
-    <type name="GenericNode">
-      <method name="Int32 GetStat()" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="GenericFileNode">
-      <method name="Int32 NotUsed()" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="WorkingTest">
-      <method name="Int32 GetStat()" attrs="198">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FailingTest">
-      <method name="Int32 GetStat()" attrs="198">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestWrapper">
-      <method name="Boolean Test(Node, System.String)" attrs="145">
-        <size>54</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>57</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-373.cs">
-    <type name="Test">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-374.cs">
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Rest">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-375.cs">
-    <type name="a">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="a+b">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="c">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="c+d">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-376.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>99</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-377.cs">
-    <type name="Tests">
-      <method name="Void test()" attrs="134">
-        <size>11</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-378.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-379.cs">
-    <type name="DeadCode">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="System.String SomeFunc(System.String)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-38.cs">
-    <type name="X">
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>33</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32)" attrs="2182">
-        <size>27</size>
-      </method>
-      <method name="Int32 Foo()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 get_Bar()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Bar(Int32)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="UInt32 get_Item(UInt32)" attrs="2182">
-        <size>33</size>
-      </method>
-      <method name="Void set_Item(UInt32, UInt32)" attrs="2182">
-        <size>27</size>
-      </method>
-      <method name="UInt32 Foo()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="UInt32 get_Bar()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Bar(UInt32)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>320</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-380.cs">
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-381.cs">
-    <type name="Application">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-382.cs">
-    <type name="Dec">
-      <method name="Void Main()" attrs="150">
-        <size>109</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-383.cs">
-    <type name="X">
-      <method name="X testme(Int32 ByRef)" attrs="134">
-        <size>13</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>38</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-384.cs">
-    <type name="X">
-      <method name="Void Test()" attrs="145">
-        <size>43</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-385.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>56</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-386.cs">
-    <type name="SuperDecimal">
-      <method name="Void Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor(Decimal)" attrs="6278">
-        <size>15</size>
-      </method>
-      <method name="SuperDecimal op_Implicit(System.Decimal)" attrs="2198">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-387.cs">
-    <type name="ObjectID">
-      <method name="Int64 op_Implicit(ObjectID)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="ObjectID op_Implicit(Int64)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor(Int64)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-388.cs">
-    <type name="Schemas.basefieldtype">
-      <method name="System.Object Instantiate()" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Schemas.fieldtype">
-      <method name="System.Object Instantiate()" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Schemas.compoundfield">
-      <method name="System.Object Instantiate()" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Schemas.field">
-      <method name="System.Object Instantiate()" attrs="134">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Schemas.formdata">
-      <method name="System.Object Instantiate()" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Schemas.M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-389.cs">
-    <type name="Schemas.basefieldtype">
-      <method name="System.Object Instantiate()" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Schemas.fieldtype">
-      <method name="System.Object Instantiate()" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Schemas.compoundfield">
-      <method name="System.Object Instantiate()" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Schemas.field">
-      <method name="System.Object Instantiate()" attrs="134">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Schemas.formdata">
-      <method name="System.Object Instantiate()" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Schemas.M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-39.cs">
-    <type name="SimpleAttribute">
-      <method name="System.String get_AnotherArg()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_AnotherArg(System.String)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Int64 get_LongValue()" attrs="2182">
-        <size>11</size>
-      </method>
-      <method name="Void set_LongValue(Int64)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="Blah2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Blah3">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Blah">
-      <method name="Int32 Main()" attrs="150">
-        <size>204</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="SimpleAttribute">
-      <method name="Int64[] get_ArrayValue()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_ArrayValue(Int64[])" attrs="2182">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-390.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+O">
-      <method name="Void Foo()" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+N">
-      <method name="Void Foo()" attrs="454">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+M">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-391.cs">
-    <type name="C">
-      <method name="Void Foo(Int32)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Foo(Int32 ByRef)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Bar(Boolean ByRef)" attrs="129">
-        <size>5</size>
-      </method>
-      <method name="Void Bar(Boolean)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-392.cs">
-    <type name="C">
-      <method name="Int32 Test()" attrs="129">
-        <size>93</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="C+S">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-393.cs">
-    <type name="A">
-      <method name="System.String get_Name()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>25</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="A MethodSampleA(System.String)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="B MethodSampleB(System.String)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="C MethodSampleC(System.String)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>165</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+MethodHandler">
-      <method name="A Invoke(System.String)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="A EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-394.cs">
-    <type name="A">
-      <method name="System.String get_Name()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.String get_Value()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(String, String)" attrs="6278">
-        <size>32</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="System.String MethodSampleA(A)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="System.String MethodSampleB(B)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="System.String MethodSampleC(C)" attrs="145">
-        <size>31</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>180</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+MethodHandler">
-      <method name="System.String Invoke(C)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(C, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-395.cs">
-    <type name="A">
-      <method name="System.String get_Name()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.String get_Value()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(String, String)" attrs="6278">
-        <size>32</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Void MethodSample(B, A, C)" attrs="145">
-        <size>56</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>89</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+MethodHandler">
-      <method name="Void Invoke(C, C, C)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(C, C, C, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-396.cs">
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-397.cs">
-    <type name="TypeCheckAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="PropertyCheckAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="AccessorCheckAttribute">
-      <method name="Void .ctor(MethodAttributes)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>151</size>
-      </method>
-      <method name="Void CheckFlags(System.Reflection.PropertyInfo, System.Reflection.MethodInfo)" attrs="145">
-        <size>159</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Int32 get_Value1()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Value1(Int32)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Int32 get_Value2()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Value2(Int32)" attrs="2181">
-        <size>2</size>
-      </method>
-      <method name="Int32 get_Value3()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Value3(Int32)" attrs="2180">
-        <size>2</size>
-      </method>
-      <method name="Int32 get_Value4()" attrs="2179">
-        <size>10</size>
-      </method>
-      <method name="Void set_Value4(Int32)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Int32 get_Value5()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Value5(Int32)" attrs="2177">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AccessorCheckAttribute">
-      <method name="System.Reflection.MethodAttributes get_Attributes()" attrs="2182">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-398.cs">
-    <type name="Tester">
-      <method name="Void Main()" attrs="150">
-        <size>119</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Int32 get_Count()" attrs="2502">
-        <size>15</size>
-      </method>
-      <method name="Void set_Count(Int32)" attrs="2500">
-        <size>9</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2502">
-        <size>10</size>
-      </method>
-      <method name="System.String get_Message()" attrs="2502">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void set_Count(Int32)" attrs="2244">
-        <size>2</size>
-      </method>
-      <method name="Void SetCount(Int32)" attrs="134">
-        <size>9</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2246">
-        <size>16</size>
-      </method>
-      <method name="System.String get_Message()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Message(System.String)" attrs="2179">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-399.cs">
-    <type name="TestVararg">
-      <method name="Void G(...)" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>394</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void F(System.RuntimeArgumentHandle)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-4.cs">
-    <type name="X">
-      <method name="Void test(SByte)" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void test(Int32)" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>126</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-40.cs">
-    <type name="Blah">
-      <method name="Int32 Main()" attrs="150">
-        <size>258</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-400.cs">
-    <type name="X">
-      <method name="Int32 TestDereference()" attrs="145">
-        <size>107</size>
-      </method>
-      <method name="Int32 TestPtrAdd()" attrs="145">
-        <size>106</size>
-      </method>
-      <method name="Int32 TestPtrAssign()" attrs="145">
-        <size>256</size>
-      </method>
-      <method name="Int32 TestPtrArithmetic()" attrs="145">
-        <size>277</size>
-      </method>
-      <method name="Int32 TestMultiple()" attrs="145">
-        <size>111</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>115</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>52</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-401.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>206</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-402.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-403.cs">
-    <type name="Foo">
-      <method name="Int32 Main()" attrs="150">
-        <size>106</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-404.cs">
-    <type name="X">
-      <method name="Int32* get_v()" attrs="145">
-        <size>29</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>71</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-405.cs">
-    <type name="testapp.LibTestAPI">
-      <method name="Void Create()" attrs="134">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="testapp.TestApp">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-406.cs">
-    <type name="TestCase.Test">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>228</size>
-      </method>
-      <method name="UInt32 DoOp(UInt32*)" attrs="145">
-        <size>19</size>
-      </method>
-      <method name="UInt32 DoOp2(UInt32*)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-407.cs">
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-408.cs">
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>59</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-409.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>40</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-41.cs">
-    <type name="X">
-      <method name="Void A(Int32 ByRef, UInt32 ByRef, SByte ByRef, Byte ByRef, Int64 ByRef, UInt64 ByRef, Int16 ByRef, UInt16 ByRef, Char ByRef, X ByRef, Single ByRef, Double ByRef)" attrs="145">
-        <size>189</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>310</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-410.cs">
-    <type name="B">
-      <method name="Int32 Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-411.cs">
-    <type name="QtSamples.QtClass">
-      <method name="Void pressEvent()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>25</size>
-      </method>
-    </type>
-    <type name="QtSamples.Testing">
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-412.cs">
-    <type name="Foo.Baz">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-413.cs">
-    <type name="Driver">
-      <method name="Void Main()" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-414.cs">
-    <type name="BB">
-      <method name="System.String get_Data()" attrs="2244">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-415.cs">
-    <type name="MyTestExtended">
-      <method name="System.String GetName()" attrs="196">
-        <size>14</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-416.cs">
-    <type name="ModTest">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="n1.Adder">
-      <method name="Int32 Add(Int32, Int32)" attrs="134">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-417.cs">
-    <type name="blah2.MyClass">
-      <method name="Void add_DoSomething(blah.MyFunnyDelegate)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_DoSomething(blah.MyFunnyDelegate)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void DoSomethingFunny()" attrs="134">
-        <size>47</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-418.cs">
-    <type name="M3">
-      <method name="Int32 Main()" attrs="150">
-        <size>172</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="M1">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="M2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-419.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-42.cs">
-    <type name="X">
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>22</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32)" attrs="2182">
-        <size>16</size>
-      </method>
-      <method name="Int32 get_P()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_P(Int32)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Z get_P()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_P(Z)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Z op_Increment(Z)" attrs="2198">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Int32 p_pre_increment(X)" attrs="145">
-        <size>26</size>
-      </method>
-      <method name="Int32 p_post_increment(X)" attrs="145">
-        <size>26</size>
-      </method>
-      <method name="Int32 i_pre_increment(X)" attrs="145">
-        <size>32</size>
-      </method>
-      <method name="Int32 i_post_increment(X)" attrs="145">
-        <size>32</size>
-      </method>
-      <method name="Z overload_increment(Z)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Z overload_pre_increment(Z)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Z ugly(Z)" attrs="145">
-        <size>29</size>
-      </method>
-      <method name="Int32 simple(Int32)" attrs="145">
-        <size>90</size>
-      </method>
-      <method name="Int32 arrays()" attrs="145">
-        <size>265</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>214</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-420.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-421.cs">
-    <type name="A">
-      <method name="Void SetObject(System.String)" attrs="454">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void SetObject(System.String)" attrs="198">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-422.cs">
-    <type name="HelloWorld.MainClass">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Boolean CheckTrueThat()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>17</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-423.cs">
-    <type name="Test">
-      <method name="Void lowLevelCall(Int32*)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Func(Int32 ByRef)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-424.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>49</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-425.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-426.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-427.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-428.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-429.cs">
-    <type name="Foo.A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-43.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>332</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 test_single(Int32[])" attrs="145">
-        <size>45</size>
-      </method>
-      <method name="Int32 test_continue(Int32[])" attrs="145">
-        <size>70</size>
-      </method>
-      <method name="Boolean test_double(Double[])" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Int32 test_break(Int32[])" attrs="145">
-        <size>70</size>
-      </method>
-      <method name="Boolean test_multi(Int32[,])" attrs="145">
-        <size>100</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-430.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-431.cs">
-    <type name="Foo.A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-432.cs">
-    <type name="Foo.A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-433.cs">
-    <type name="Foo.A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-434.cs">
-    <type name="Foo.A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-435.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-436.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-437.cs">
-    <type name="T2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>76</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-438.cs">
-    <type name="Program">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-439.cs">
-    <type name="LayerMask">
-      <method name="Int32 op_Implicit(LayerMask)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="LayerMask op_Implicit(Int32)" attrs="2198">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>46</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-44.cs">
-    <type name="X">
-      <method name="Int32 count(System.Object)" attrs="145">
-        <size>50</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>154</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 dob(Int32[,])" attrs="145">
-        <size>94</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-440.cs">
-    <type name="A">
-      <method name="Double op_Implicit(A)" attrs="2198">
-        <size>18</size>
-      </method>
-      <method name="Int32 op_Implicit(A)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-441.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-442.cs">
-    <type name="ConsoleApplication1.Program">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>73</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-444.cs">
-    <type name="쯠쯡쯢">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void P̀ः०‿()" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-445.cs">
-    <type name="ConvFromInt">
-      <method name="ConvFromInt op_Implicit(Int32)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void Main()" attrs="150">
-        <size>112</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>45</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-446.cs">
-    <type name="FooTest">
-      <method name="Void Main()" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Void Foo(UInt64)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-447.cs">
-    <type name="System.MonoTODOAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="System.Web.HttpBrowserCapabilities">
-      <method name="System.Version get_A()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-448.cs">
-    <type name="MonoDivideProblem">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>17</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-449.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Z()" attrs="129">
-        <size>20</size>
-      </method>
-      <method name="Void &lt;Z&gt;m__0(System.Object)" attrs="129">
-        <size>26</size>
-      </method>
-      <method name="Void &lt;Z&gt;m__1(System.Object)" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-45.cs">
-    <type name="Blah">
-      <method name="Int32 Main()" attrs="150">
-        <size>882</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>97</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-450.cs">
-    <type name="A">
-      <method name="Byte op_Implicit(A)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="A op_Implicit(Int32)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>71</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6273">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-451.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-452.cs">
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-453.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-454.cs">
-    <type name="FooAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>260</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-455.cs">
-    <type name="Foo">
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>25</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-456.cs">
-    <type name="Foo">
-      <method name="Void foo()" attrs="134">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-457.cs">
-    <type name="Number">
-      <method name="Void IDouble.Add(Double)" attrs="481">
-        <size>12</size>
-      </method>
-      <method name="Void IInteger.Add(Int32)" attrs="481">
-        <size>12</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>60</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-458.cs">
-    <type name="MyAttr">
-      <method name="Void .ctor()" attrs="6275">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Type)" attrs="6275">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6275">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6275">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="ClassA">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ClassB">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ClassC">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ClassD">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Top">
-      <method name="Int32 Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-459.cs">
-    <type name="CC">
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CC+IfElseStateMachine">
-      <method name="Void HandleToken(Token)" attrs="134">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-46.cs">
-    <type name="X">
-      <method name="Int32 cast_int(System.Object)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="UInt32 cast_uint(System.Object)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int16 cast_short(System.Object)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Char cast_char(System.Object)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="UInt16 cast_ushort(System.Object)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Byte cast_byte(System.Object)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="SByte cast_sbyte(System.Object)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int64 cast_long(System.Object)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="UInt64 cast_ulong(System.Object)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Single cast_float(System.Object)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Double cast_double(System.Object)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean cast_bool(System.Object)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>1364</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-460.cs">
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-461.cs">
-    <type name="Value">
-      <method name="System.Object get_Val()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="System.Enum get_Val2()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Object)" attrs="6278">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Valtest">
-      <method name="Int32 Main()" attrs="150">
-        <size>63</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-462.cs">
-    <type name="X">
-      <method name="Void Method(X)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Method(System.String)" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-463.cs">
-    <type name="PropertySorter">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="PathItemBase">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="PathItemBase+TypeConverter">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-464.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>103</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-465.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>103</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-466.cs">
-    <type name="A.X.Test">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-467.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+D">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Foo()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="B+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-469.cs">
-    <type name="Del">
-      <method name="Void Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Lambda">
-      <method name="Void f(Int32)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Del[] Make2(Int32)" attrs="145">
-        <size>58</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>86</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Lambda+&lt;Make2&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0(Int32)" attrs="131">
-        <size>24</size>
-      </method>
-      <method name="Void &lt;&gt;m__1(Int32)" attrs="131">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Del">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-47.cs">
-    <type name="X">
-      <method name="Boolean f()" attrs="145">
-        <size>32</size>
-      </method>
-      <method name="Boolean t()" attrs="145">
-        <size>32</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>511</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-470.cs">
-    <type name="X">
-      <method name="System.String get_ASTNodeTypeName()" attrs="2182">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Demo">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-471.cs">
-    <type name="AAttribute">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>52</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-472.cs">
-    <type name="Test">
-      <method name="Int32 get_Prop()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Prop(Int32)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>97</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-473.cs">
-    <type name="SignalHandler">
-      <method name="Void Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="UnixMarshal">
-      <method name="Void Default(Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="System.String GetDescription(Error)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="UnixMarshal2">
-      <method name="System.String GetDescription(Error)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Stdlib">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestConst">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="XX">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Syscall">
-      <method name="Int32 poll(Pollfd[], UInt32, Int32)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="PS">
-      <method name="Void GetDescription(Error)" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="EnumWrapper">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Value">
-      <method name="EnumWrapper op_Explicit(Value)" attrs="2198">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="SignalHandler">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-474.cs">
-    <type name="Z">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void TestPreinc(Int32)" attrs="145">
-        <size>58</size>
-      </method>
-      <method name="Void TestPostinc(Int32)" attrs="145">
-        <size>58</size>
-      </method>
-      <method name="Void Assert(Int32, Int32)" attrs="145">
-        <size>73</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Z+X">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Z+&lt;TestPreinc&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Z+&lt;TestPostinc&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>39</size>
-      </method>
-    </type>
-    <type name="Z+X">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-475.cs">
-    <type name="MyDelegate">
-      <method name="Void Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void add_e(MyDelegate)" attrs="2193">
-        <size>40</size>
-      </method>
-      <method name="Void remove_e(MyDelegate)" attrs="2193">
-        <size>40</size>
-      </method>
-      <method name="Void Test(Int32)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>41</size>
-      </method>
-    </type>
-    <type name="MyDelegate">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-476.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-477.cs">
-    <type name="C">
-      <method name="Void Test(Int32 ByRef)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-478.cs">
-    <type name="Test.MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.TestAttribute">
-      <method name="Void .ctor(TestEnum2)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Test.Test2Attribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-479.cs">
-    <type name="Test.Test">
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-48.cs">
-    <type name="Blah">
-      <method name="Int32 Main()" attrs="150">
-        <size>70</size>
-      </method>
-      <method name="Void Test_1()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-480.cs">
-    <type name="A">
-      <method name="Void Dispose()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Test(System.Object)" attrs="145">
-        <size>290</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+D">
-      <method name="Void Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void &lt;Test&gt;m__0(Int32)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-481.cs">
-    <type name="TestDelegate">
-      <method name="Void Invoke(Int32 ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>50</size>
-      </method>
-    </type>
-    <type name="TestDelegate">
-      <method name="System.IAsyncResult BeginInvoke(Int32 ByRef, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(Int32 ByRef, System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestClass">
-      <method name="Void &lt;Main&gt;m__0(Int32 ByRef)" attrs="145">
-        <size>5</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-482.cs">
-    <type name="X">
-      <method name="Void M4(Int32)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void M4(Int32, ...)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-483.cs">
-    <type name="Tests">
-      <method name="Void Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="System.Object clone()" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-484.cs">
-    <type name="Test.TestBit">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-485.cs">
-    <type name="MonoBUG">
-      <method name="Int32 Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-486.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>132</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-487.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor(Object)" attrs="6273">
-        <size>73</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-488.cs">
-    <type name="P">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Q">
-      <method name="Void .ctor(P)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>169</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.IEnumerable foo()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-489.cs">
-    <type name="test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-49.cs">
-    <type name="X">
-      <method name="Int32 s(Byte)" attrs="145">
-        <size>3468</size>
-      </method>
-      <method name="Int32 test(Int32)" attrs="145">
-        <size>91</size>
-      </method>
-      <method name="Int32 tests(System.String)" attrs="145">
-        <size>135</size>
-      </method>
-      <method name="Int32 tests2(System.String)" attrs="145">
-        <size>63</size>
-      </method>
-      <method name="Int32 testn(System.String)" attrs="145">
-        <size>44</size>
-      </method>
-      <method name="Int32 testm(System.String)" attrs="145">
-        <size>45</size>
-      </method>
-      <method name="Int32 testo(System.String)" attrs="145">
-        <size>52</size>
-      </method>
-      <method name="Int32 testp(System.String)" attrs="145">
-        <size>83</size>
-      </method>
-      <method name="Int32 test_def(System.String)" attrs="145">
-        <size>88</size>
-      </method>
-      <method name="Int32 test_coverage(Int32)" attrs="145">
-        <size>29</size>
-      </method>
-      <method name="Int32 test_goto(Int32)" attrs="145">
-        <size>55</size>
-      </method>
-      <method name="Int32 test_memberaccess(System.String)" attrs="145">
-        <size>44</size>
-      </method>
-      <method name="Int32 test_string_multiple_targets(System.String)" attrs="145">
-        <size>106</size>
-      </method>
-      <method name="Int32 test_casts(Int32)" attrs="145">
-        <size>28</size>
-      </method>
-      <method name="Int32 testSwitchEnumLong(TestEnum)" attrs="150">
-        <size>72</size>
-      </method>
-      <method name="Int32 test_long_enum_switch()" attrs="145">
-        <size>94</size>
-      </method>
-      <method name="Int32 tests_default(System.String)" attrs="145">
-        <size>76</size>
-      </method>
-      <method name="Int32 tests_default_2(System.String)" attrs="145">
-        <size>93</size>
-      </method>
-      <method name="Void test_76590(System.String)" attrs="145">
-        <size>60</size>
-      </method>
-      <method name="Void test_77964()" attrs="145">
-        <size>36</size>
-      </method>
-      <method name="Boolean bug_78860()" attrs="145">
-        <size>84</size>
-      </method>
-      <method name="Void test_1597()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>1525</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 LongStringSwitch(System.String)" attrs="145">
-        <size>571</size>
-      </method>
-      <method name="Boolean SwitchSingleSection(System.String)" attrs="145">
-        <size>171</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-490.cs">
-    <type name="T">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>39</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-491.cs">
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AttrA">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AttrB">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-492.cs">
-    <type name="Test.My1Attribute">
-      <method name="Void .ctor(Object)" attrs="6278">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="Test.My2Attribute">
-      <method name="Void .ctor(String[])" attrs="6278">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="Test.My3Attribute">
-      <method name="Void .ctor(Byte)" attrs="6278">
-        <size>25</size>
-      </method>
-    </type>
-    <type name="Test.Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>75</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-493.cs">
-    <type name="A">
-      <method name="Int32 get_f()" attrs="2180">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 bar()" attrs="129">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-494.cs">
-    <type name="Agresso.Foundation.Function">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Agresso.Foundation.Translate">
-      <method name="Void Invoke(Agresso.Foundation.Function, System.Text.StringBuilder ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Agresso.Foundation.Function, System.Text.StringBuilder ByRef, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.Text.StringBuilder ByRef, System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-495.cs">
-    <type name="plj.aClass">
-      <method name="plj.aClass op_Implicit(plj.fromClass)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="plj.realClass1">
-      <method name="plj.realClass1 op_Implicit(plj.fromClass)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="plj.fromClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-496.cs">
-    <type name="Baz">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-497.cs">
-    <type name="PlotMenuItem">
-      <method name="Int32 Main()" attrs="150">
-        <size>63</size>
-      </method>
-      <method name="Void MenuItem_Click(System.Object, System.EventArgs)" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="System.EventHandler get_Callback()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Callback(System.EventHandler)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(EventHandler)" attrs="6278">
-        <size>55</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-498.cs">
-    <type name="A">
-      <method name="Int32 get_Foo()" attrs="2182">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Single)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>99</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-499.cs">
-    <type name="A">
-      <method name="Int32 switch1(UInt64)" attrs="145">
-        <size>122</size>
-      </method>
-      <method name="Int32 switch2(SByte)" attrs="145">
-        <size>42</size>
-      </method>
-      <method name="Int32 switch3(Int64)" attrs="145">
-        <size>45</size>
-      </method>
-      <method name="Int32 switch4(UInt64)" attrs="145">
-        <size>50</size>
-      </method>
-      <method name="Int32 switch5(UInt64)" attrs="145">
-        <size>35</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>154</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-5.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>45</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-500.cs">
-    <type name="SomeCustomAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>136</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-501.cs">
-    <type name="Tests">
-      <method name="Void foo(Boolean ByRef)" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tests+FilterStackFrame">
-      <method name="Boolean Invoke(System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Tests">
-      <method name="Void DumpException(FilterStackFrame)" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Tests+FilterStackFrame">
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Boolean EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Tests">
-      <method name="Boolean &lt;foo&gt;m__0(System.Object)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-502.cs">
-    <type name="Base">
-      <method name="Int32 get_Property()" attrs="2182">
-        <size>11</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Derived">
-      <method name="Int32 get_Property()" attrs="134">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BaseClass">
-      <method name="Int32 get_Value()" attrs="2500">
-        <size>10</size>
-      </method>
-      <method name="Void set_Value(Int32)" attrs="2500">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="DerivedClass">
-      <method name="Int32 get_Value()" attrs="132">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ErrorClass">
-      <method name="Int32 get_Value()" attrs="2244">
-        <size>10</size>
-      </method>
-      <method name="Void set_Value(Int32)" attrs="2244">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-503.cs">
-    <type name="Foo">
-      <method name="Int32 Main()" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-504.cs">
-    <type name="Foo">
-      <method name="Int32 f()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>46</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-      <method name="System.String Test_2()" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void Test_3()" attrs="145">
-        <size>20</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-505.cs">
-    <type name="T">
-      <method name="Int32 f()" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-506.cs">
-    <type name="ProtectedSetter.BaseClass">
-      <method name="System.String get_Name()" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void set_Name(System.String)" attrs="3523">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ProtectedSetter.DerivedClass">
-      <method name="System.String get_Name()" attrs="2246">
-        <size>10</size>
-      </method>
-      <method name="Void set_Name(System.String)" attrs="2243">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-507.cs">
-    <type name="NewslotVirtualFinal.NewslotVirtualFinal">
-      <method name="Void SomeMethod()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void SomeMethod2()" attrs="454">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6273">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="NewslotVirtualFinal.C">
-      <method name="Int32 Main()" attrs="150">
-        <size>101</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-508.cs">
-    <type name="OutputParam">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void Method(Int32 ByRef)" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-509.cs">
-    <type name="DelegateHandler">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="BaseClass">
-      <method name="Void add_OnEvent(DelegateHandler)" attrs="2534">
-        <size>42</size>
-      </method>
-      <method name="Void remove_OnEvent(DelegateHandler)" attrs="2534">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ExtendingClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="DelegateHandler">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-51.cs">
-    <type name="Base">
-      <method name="Int32 get_b_int_property()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_b_int_property(Int32)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="System.String b_get_id()" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="Derived">
-      <method name="Int32 get_b_int_property()" attrs="2177">
-        <size>15</size>
-      </method>
-      <method name="Void set_b_int_property(Int32)" attrs="2177">
-        <size>9</size>
-      </method>
-      <method name="Int32 Test()" attrs="134">
-        <size>181</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="boot">
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-510.cs">
-    <type name="Foo">
-      <method name="Void test39(Int32 ByRef)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-511.cs">
-    <type name="Foo">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void f()" attrs="145">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-512.cs">
-    <type name="Foo">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void f()" attrs="145">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-513.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>322</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-514.cs">
-    <type name="X">
-      <method name="Void HandleConflict(Int32)" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>56</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-515.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-516.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-517.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-518.cs">
-    <type name="Foo">
-      <method name="Int32 Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-519.cs">
-    <type name="Foo">
-      <method name="Int32 Main()" attrs="150">
-        <size>52</size>
-      </method>
-      <method name="Void f()" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void f2()" attrs="145">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-52.cs">
-    <type name="Y">
-      <method name="Boolean MoveNext()" attrs="134">
-        <size>36</size>
-      </method>
-      <method name="System.Object get_Current()" attrs="2182">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Y GetEnumerator()" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>548</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>36</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-520.cs">
-    <type name="FakeInt">
-      <method name="Int64 op_Implicit(FakeInt)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Int64)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-521.cs">
-    <type name="Tests">
-      <method name="Void CallWithContextN(System.Object, System.Object[])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tests+CallTargetWithContextN">
-      <method name="Void Invoke(System.Object, System.Object[])" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.Object[], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-522.cs">
-    <type name="Const">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-523.cs">
-    <type name="T">
-      <method name="Int32 stuff()" attrs="129">
-        <size>17</size>
-      </method>
-      <method name="Int32 stuff2()" attrs="129">
-        <size>35</size>
-      </method>
-      <method name="Int32 stuff3()" attrs="129">
-        <size>35</size>
-      </method>
-      <method name="Void stuff4()" attrs="129">
-        <size>12</size>
-      </method>
-      <method name="Void stuff_finally()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-524.cs">
-    <type name="Foo">
-      <method name="Int32 Main()" attrs="150">
-        <size>114</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-525.cs">
-    <type name="X">
-      <method name="Void Finalize()" attrs="196">
-        <size>37</size>
-      </method>
-      <method name="Int32 Test1()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void Test2()" attrs="150">
-        <size>61</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-526.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Foo(IListCounter)" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Void Foo2(IC)" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void Foo3(ICC)" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void Foo4(IM2)" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-527.cs">
-    <type name="Repro">
-      <method name="Int32 Main()" attrs="150">
-        <size>56</size>
-      </method>
-      <method name="Void foo()" attrs="134">
-        <size>62</size>
-      </method>
-      <method name="Int32 bar()" attrs="129">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-528.cs">
-    <type name="MicroFocus.MONO.Bugs.Odd">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>25</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-529.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-53.cs">
-    <type name="MyDispose">
-      <method name="Void Dispose()" attrs="486">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>288</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-530.cs">
-    <type name="X">
-      <method name="Void e(System.Object[])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-531.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-532.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>47</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-533.cs">
-    <type name="Test">
-      <method name="Void True(Boolean)" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Void False(Boolean)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>62</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-535.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>77</size>
-      </method>
-      <method name="Void Compile()" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Void M(Int64)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void M(UInt64)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void M(System.Object)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-536.cs">
-    <type name="FooHandler">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void OnFooTest()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void add_Foo(FooHandler)" attrs="2198">
-        <size>40</size>
-      </method>
-      <method name="Void remove_Foo(FooHandler)" attrs="2198">
-        <size>40</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>32</size>
-      </method>
-    </type>
-    <type name="FooHandler">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>36</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-537.cs">
-    <type name="Base">
-      <method name="System.String get_H()" attrs="2180">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+Derived">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+Derived+Nested">
-      <method name="Void G()" attrs="134">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Derived">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Derived+Nested">
-      <method name="Void G()" attrs="134">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-538.cs">
-    <type name="testDelegate">
-      <method name="IInterface Invoke(concrete)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="concrete">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="concrete getConcrete(IInterface)" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="testDelegate">
-      <method name="System.IAsyncResult BeginInvoke(concrete, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="IInterface EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-539.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>84</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-54.cs">
-    <type name="X">
-      <method name="Boolean v()" attrs="129">
-        <size>19</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-540.cs">
-    <type name="A">
-      <method name="Byte op_Implicit(A)" attrs="2198">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Constraint">
-      <method name="Constraint op_LogicalNot(Constraint)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Constraint op_UnaryPlus(Constraint)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Constraint op_OnesComplement(Constraint)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Constraint op_UnaryNegation(Constraint)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void Foo(System.Object)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>109</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-541.cs">
-    <type name="ClassMain">
-      <method name="Void Main()" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="Void set_test(Boolean)" attrs="2193">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ClassMain+D">
-      <method name="Void Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="ClassMain">
-      <method name="Void &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-542.cs">
-    <type name="ARec">
-      <method name="Void .ctor(Decimal)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ARec">
-      <method name="System.Decimal Round(Int32)" attrs="129">
-        <size>21</size>
-      </method>
-      <method name="System.Decimal Round(System.Decimal, Int32)" attrs="145">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-543.cs">
-    <type name="BetterMethod">
-      <method name="System.String get_Item(Boolean, System.Object)" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Int32 get_Item(Int32, System.String[])" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Item(Int32, System.String[], Int32)" attrs="2182">
-        <size>41</size>
-      </method>
-      <method name="System.Object get_Item(Int32, System.Object[])" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Item(Int32, System.Object[], System.Object)" attrs="2182">
-        <size>41</size>
-      </method>
-      <method name="Boolean get_Item(Int32, Boolean, System.Object[])" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Item(Int32, Boolean, System.Object[], Boolean)" attrs="2182">
-        <size>41</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>259</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BetterMethod">
-      <method name="Int32 get_Item(Boolean[])" attrs="2182">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-544.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-545.cs">
-    <type name="Dingus">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-546.cs">
-    <type name="NameSpace.C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-547.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-548.cs">
-    <type name="Bugs.Bug0">
-      <method name="Int32 Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bugs.Bug0+MyBoolean">
-      <method name="MyBoolean op_Implicit(Boolean)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Boolean op_Implicit(MyBoolean)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor(Boolean)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-549.cs">
-    <type name="Get">
-      <method name="System.Object Invoke(Do)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Do">
-      <method name="Void Register(Get)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Register(System.Object)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="System.Object MyGet(Do)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void X()" attrs="134">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="User">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Get">
-      <method name="System.IAsyncResult BeginInvoke(Do, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.Object EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-55.cs">
-    <type name="A.B.C">
-      <method name="Void Hola()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X.Y.Z.W">
-      <method name="Void Ahoj()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo.System">
-      <method name="Void X()" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="App">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-550.cs">
-    <type name="Bla.Blub.Fo‿o">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-551.cs">
-    <type name="System.Int32">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-552.cs">
-    <type name="C">
-      <method name="Void Test(C)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-553.cs">
-    <type name="A">
-      <method name="Void Add(System.Object)" attrs="454">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Boolean Add(System.Object)" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-554.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>169</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-555.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>361</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-556.cs">
-    <type name="S">
-      <method name="Void Frobnikator()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void CharToX()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-557.cs">
-    <type name="Test">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-558.cs">
-    <type name="TestClass">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void TestMethod(Int32)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestClass+OneDelegate">
-      <method name="Void Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-559.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void add_TestEvent(TestDelegate)" attrs="2246">
-        <size>42</size>
-      </method>
-      <method name="Void remove_TestEvent(TestDelegate)" attrs="2246">
-        <size>42</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-56.cs">
-    <type name="A">
-      <method name="Int32 get_P()" attrs="2534">
-        <size>15</size>
-      </method>
-      <method name="Void set_P(Int32)" attrs="2534">
-        <size>9</size>
-      </method>
-      <method name="Int32 get_Q()" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void set_Q(Int32)" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Int32 get_R()" attrs="2502">
-        <size>15</size>
-      </method>
-      <method name="Void set_R(Int32)" attrs="2502">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 get_P()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_P(Int32)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Int32 get_Q()" attrs="2246">
-        <size>15</size>
-      </method>
-      <method name="Void set_Q(Int32)" attrs="2246">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 get_Q()" attrs="2246">
-        <size>15</size>
-      </method>
-      <method name="Void set_Q(Int32)" attrs="2246">
-        <size>9</size>
-      </method>
-      <method name="Int32 get_R()" attrs="2246">
-        <size>15</size>
-      </method>
-      <method name="Void set_R(Int32)" attrs="2246">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Int32 Main()" attrs="150">
-        <size>279</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-560.cs">
-    <type name="Bugs.Bug2">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>82</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bugs.Bug2+MyByte">
-      <method name="MyByte op_Implicit(Byte)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Byte op_Implicit(MyByte)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor(Byte)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Bugs.Bug2+MyInt">
-      <method name="MyInt op_Implicit(Int32)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Int32 op_Implicit(MyInt)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-561.cs">
-    <type name="A">
-      <method name="Void I.M()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void M()" attrs="1476">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void M()" attrs="196">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-562.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>58</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-563.cs">
-    <type name="Test">
-      <method name="System.Object TestMethod(TestCollection)" attrs="131">
-        <size>74</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-564.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-565.cs">
-    <type name="T">
-      <method name="Boolean Equals(System.Object)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-566.cs">
-    <type name="Test">
-      <method name="System.String get_Spec()" attrs="2182">
-        <size>20</size>
-      </method>
-      <method name="Void Foo(C)" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="Void Foo2(CC)" attrs="129">
-        <size>13</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CA">
-      <method name="Void set_Spec(System.String)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CB">
-      <method name="Void set_Spec(System.String)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CC">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-567.cs">
-    <type name="preservesig_test.Class1">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>166</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="preservesig_test.TestClass">
-      <method name="Int32 DoFoo()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 get_Foo()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="preservesig_test.TestClass+D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="preservesig_test.TestClass">
-      <method name="Void add_e(D)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_e(D)" attrs="2182">
-        <size>42</size>
-      </method>
-    </type>
-    <type name="preservesig_test.TestClass+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-568.cs">
-    <type name="B">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-569.cs">
-    <type name="MyAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="SubAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="test">
-      <method name="Void method()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-57.cs">
-    <type name="EventHandler">
-      <method name="Void Invoke(Int32, Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Button">
-      <method name="Void add_Click(EventHandler)" attrs="2182">
-        <size>25</size>
-      </method>
-      <method name="Void remove_Click(EventHandler)" attrs="2182">
-        <size>25</size>
-      </method>
-      <method name="Void OnClick(Int32, Int32)" attrs="134">
-        <size>42</size>
-      </method>
-      <method name="Void Reset()" attrs="134">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Blah">
-      <method name="Void Connect()" attrs="134">
-        <size>60</size>
-      </method>
-      <method name="Void Button1_Click(Int32, Int32)" attrs="134">
-        <size>35</size>
-      </method>
-      <method name="Void Foo_Click(Int32, Int32)" attrs="134">
-        <size>35</size>
-      </method>
-      <method name="Void Disconnect()" attrs="134">
-        <size>35</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>74</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="EventHandler">
-      <method name="System.IAsyncResult BeginInvoke(Int32, Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-570.cs">
-    <type name="Bar">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-571.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-572.cs">
-    <type name="Color">
-      <method name="Color From(Int32)" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Int32 ToArgb()" attrs="134">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Color get_Color()" attrs="2182">
-        <size>18</size>
-      </method>
-      <method name="Void ResetCustomColors()" attrs="129">
-        <size>17</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-573.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-574.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-575.cs">
-    <type name="Program">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-576.cs">
-    <type name="Foo">
-      <method name="Void Main()" attrs="150">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-577.cs">
-    <type name="C">
-      <method name="Void IA.add_e_a(System.EventHandler)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Void IA.remove_e_a(System.EventHandler)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Void IA.add_e_b(System.EventHandler)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Void IA.remove_e_b(System.EventHandler)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-578.cs">
-    <type name="Test1.TestDelegate1">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test1.TestItem1">
-      <method name="Int32 Test()" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void add_OnUpdate(Test1.TestDelegate1)" attrs="2502">
-        <size>35</size>
-      </method>
-      <method name="Void remove_OnUpdate(Test1.TestDelegate1)" attrs="2502">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Test1.TestItem2">
-      <method name="Void add_OnUpdate(Test1.TestDelegate1)" attrs="2246">
-        <size>19</size>
-      </method>
-      <method name="Void remove_OnUpdate(Test1.TestDelegate1)" attrs="2246">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Test1.CC">
-      <method name="Int32 Main()" attrs="150">
-        <size>70</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test1.TestDelegate1">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test1.CC">
-      <method name="Int32 &lt;Main&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-579.cs">
-    <type name="TestCase">
-      <method name="Int32 Main()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 Test1()" attrs="145">
-        <size>49</size>
-      </method>
-      <method name="Int32 Test2()" attrs="145">
-        <size>48</size>
-      </method>
-      <method name="Int32 Test3()" attrs="145">
-        <size>47</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-58.cs">
-    <type name="Blah">
-      <method name="Int32 Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-580.cs">
-    <type name="Bla">
-      <method name="Void BuildNode(System.String ByRef)" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void BuildNode(System.String[] ByRef)" attrs="150">
-        <size>59</size>
-      </method>
-      <method name="Void BuildNode_B(System.Object ByRef)" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="System.String BuildNode_C(System.String ByRef)" attrs="150">
-        <size>90</size>
-      </method>
-      <method name="System.String BuildNode_D()" attrs="150">
-        <size>179</size>
-      </method>
-      <method name="Void BuildNode_E(System.String[,] ByRef)" attrs="150">
-        <size>84</size>
-      </method>
-      <method name="Boolean Test_Object()" attrs="145">
-        <size>184</size>
-      </method>
-      <method name="Boolean Test_Decimal()" attrs="145">
-        <size>141</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>346</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-581.cs">
-    <type name="TestParams">
-      <method name="System.Object get_Item(System.String[])" attrs="2177">
-        <size>12</size>
-      </method>
-      <method name="Void set_Item(System.String[], System.Object)" attrs="2177">
-        <size>41</size>
-      </method>
-      <method name="Void TestMethod()" attrs="134">
-        <size>174</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestNonParams">
-      <method name="System.Object get_Item(System.String)" attrs="2177">
-        <size>10</size>
-      </method>
-      <method name="Void set_Item(System.String, System.Object)" attrs="2177">
-        <size>41</size>
-      </method>
-      <method name="Void TestMethod()" attrs="134">
-        <size>72</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Int32 Main()" attrs="150">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-582.cs">
-    <type name="TrueClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-583.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ObjectContainerBase">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-584.cs">
-    <type name="Style">
-      <method name="Style get_CurrentStyle()" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void set_CurrentStyle(Style)" attrs="2198">
-        <size>2</size>
-      </method>
-      <method name="Boolean LoadCurrentStyle()" attrs="145">
-        <size>28</size>
-      </method>
-      <method name="Style Load()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-585.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-586.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>112</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+MyColor">
-      <method name="Single get_Value()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="MyColor op_Addition(MyColor, MyColor)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor(Single)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-587.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-588.cs">
-    <type name="TestNamespace.TestClass">
-      <method name="Void HelloWorld()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="SuperClass">
-      <method name="TestNamespace.TestClass get_TestClass()" attrs="2177">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="SubClass">
-      <method name="Void .ctor()" attrs="6278">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="App">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-589.cs">
-    <type name="TestNamespace.TestClass">
-      <method name="Void HelloWorld()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="SuperClass">
-      <method name="TestNamespace.TestClass get_TestClass()" attrs="2177">
-        <size>15</size>
-      </method>
-      <method name="Void set_TestClass(TestNamespace.TestClass)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="SubClass">
-      <method name="Void .ctor()" attrs="6278">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="App">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-59.cs">
-    <type name="X">
-      <method name="Int32 test_explicit()" attrs="145">
-        <size>294</size>
-      </method>
-      <method name="Int32 test_implicit()" attrs="145">
-        <size>136</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>75</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-590.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="System.String Foo()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="System.String get_Prop()" attrs="2177">
-        <size>15</size>
-      </method>
-      <method name="Void set_Prop(System.String)" attrs="2177">
-        <size>9</size>
-      </method>
-      <method name="System.String get_Item(Int32)" attrs="2177">
-        <size>15</size>
-      </method>
-      <method name="Void set_Item(Int32, System.String)" attrs="2177">
-        <size>9</size>
-      </method>
-      <method name="Int32 Do(System.String, System.String, System.String)" attrs="129">
-        <size>363</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-591.cs">
-    <type name="C1">
-      <method name="Void Foo(System.String)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C2">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-592.cs">
-    <type name="T">
-      <method name="Int32 fib(Int32)" attrs="145">
-        <size>69</size>
-      </method>
-      <method name="Int32 xx(Int32)" attrs="145">
-        <size>46</size>
-      </method>
-      <method name="Void foo(Int32)" attrs="129">
-        <size>40</size>
-      </method>
-      <method name="Void XXXA()" attrs="145">
-        <size>7</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-593.cs">
-    <type name="MainClass">
-      <method name="Void Foo(I)" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-594.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>112</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-595.cs">
-    <type name="AttributesCollection">
-      <method name="System.Object get_Item(SymbolId)" attrs="2534">
-        <size>10</size>
-      </method>
-      <method name="Void set_Item(SymbolId, System.Object)" attrs="2534">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="System.Object SetDictionaryValue(System.Object, SymbolId, System.Object)" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-596.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-597.cs">
-    <type name="TestNS.Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestNS.XElement">
-      <method name="TestNS.Bar get_Document()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="System.Object get_CrashHere()" attrs="2182">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestNS.Element">
-      <method name="TestNS.Foo get_Document()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestNS.Bar">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestNS.C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestNS.Bar">
-      <method name="TestNS.IHoge get_Root()" attrs="2182">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-598.cs">
-    <type name="V">
-      <method name="Void set_Item(Int32, Int32)" attrs="2182">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="V get_v()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>36</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-599.cs">
-    <type name="Test.String">
-      <method name="Test.String op_Implicit(System.String)" attrs="2198">
-        <size>28</size>
-      </method>
-      <method name="System.String op_Implicit(Test.String)" attrs="2198">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="TestCompiler.MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>93</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-6.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>45</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-60.cs">
-    <type name="ns5.Y">
-      <method name="Void Run()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-600.cs">
-    <type name="Test.Regression">
-      <method name="Int32 Main()" attrs="150">
-        <size>124</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-601.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+MarkerUpdatedVMDelegate">
-      <method name="Void Invoke(IntPtr, IntPtr)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(IntPtr, IntPtr, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-602.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>118</size>
-      </method>
-      <method name="Int32 Error(System.String, System.Object[])" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Int32 Format(System.String, System.Object)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Format(System.String, System.Object[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Format(System.String, System.Object, System.Object[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_A(System.String)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_A(System.String, System.Object[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 Test_C(System.Type, Int32[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test_C(System.Type, Int32[], Int32[])" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-603.cs">
-    <type name="ConsoleApplication1.Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>65</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-604.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>102</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+ImplementingExplicitInterfacesMembers">
-      <method name="Void Program.Iface1.IfaceMethod1()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void Program.Iface2.IfaceMethod2()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-605.cs">
-    <type name="TestA">
-      <method name="System.String get_Method()" attrs="2502">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestB">
-      <method name="System.String get_Method()" attrs="2177">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-606.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>194</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Info">
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>10</size>
-      </method>
-      <method name="Boolean System.Collections.IEnumerator.MoveNext()" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="Void System.Collections.IEnumerator.Reset()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="System.Object Mono.Test.ITest.get_Item(Int32)" attrs="2529">
-        <size>10</size>
-      </method>
-      <method name="Void Mono.Test.ITest.set_Item(Int32, System.Object)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-607.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>143</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-608.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>61</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-609.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-61.cs">
-    <type name="X">
-      <method name="Int32 get_Property()" attrs="2177">
-        <size>12</size>
-      </method>
-      <method name="Void set_Property(Int32)" attrs="2177">
-        <size>4</size>
-      </method>
-      <method name="Int32 get_P2()" attrs="2177">
-        <size>10</size>
-      </method>
-      <method name="Void set_P3(Int32)" attrs="2177">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+MyEvent">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void add_XX(MyEvent)" attrs="2182">
-        <size>4</size>
-      </method>
-      <method name="Void remove_XX(MyEvent)" attrs="2182">
-        <size>4</size>
-      </method>
-    </type>
-    <type name="X+MyEvent">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-610.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+C+D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.B+C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.B+C+E">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.B+A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.B+A+D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-611.cs">
-    <type name="T">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T+Protected">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D+Private">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D2+P">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D2+P+Private">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D+Private">
-      <method name="Void Stuff(Protected)" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="D2+P+Private">
-      <method name="Void Stuff(Protected)" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-612.cs">
-    <type name="Abcdefghijklmnopqrstuvwxyz">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="OO">
-      <method name="Void D()" attrs="129">
-        <size>5294</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Zyxwvutsrqp">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="XXX">
-      <method name="Boolean IsAltered()" attrs="134">
-        <size>872</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-613.cs">
-    <type name="M">
-      <method name="Boolean g()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>80</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-614.cs">
-    <type name="C">
-      <method name="Void And()" attrs="147">
-        <size>74</size>
-      </method>
-      <method name="Void Or()" attrs="147">
-        <size>142</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>88</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-615.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-617.cs">
-    <type name="MyDelegate">
-      <method name="Int64 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void X.add_Foo(MyDelegate)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Void X.remove_Foo(MyDelegate)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Int32 X.get_Prop()" attrs="2529">
-        <size>10</size>
-      </method>
-      <method name="Void add_Foo(MyDelegate)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Foo(MyDelegate)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>104</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int64 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-618.cs">
-    <type name="C">
-      <method name="Void ZeroBasedReductions()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void ZeroBasedReductionsWithConversion()" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-619.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-62.cs">
-    <type name="X">
-      <method name="X[] GetX()" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32[] getInt()" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Int32[,,] getMoreInt()" attrs="129">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-620.cs">
-    <type name="X">
-      <method name="Void A(Int32 ByRef)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Void B(Int32 ByRef)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-621.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>130</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-622.cs">
-    <type name="A">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Foo(A ByRef)" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Void Foo(System.Object ByRef)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-623.cs">
-    <type name="X">
-      <method name="Void a()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void a()" attrs="198">
-        <size>17</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-624.cs">
-    <type name="X">
-      <method name="Int32 get_Type()" attrs="2177">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>4</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-625.cs">
-    <type name="Location">
-      <method name="Int32 get_Null()" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6273">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-626.cs">
-    <type name="X">
-      <method name="Void A()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-627.cs">
-    <type name="B">
-      <method name="Void X.B()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void A.B()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void N(System.Object)" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-628.cs">
-    <type name="N1.B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-629.cs">
-    <type name="Foo">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo+Nested">
-      <method name="Int32 get_Bar()" attrs="2198">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-63.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>98</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-630.cs">
-    <type name="MyEx">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Ex">
-      <method name="Int32 test(Int32)" attrs="150">
-        <size>30</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>98</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-631.cs">
-    <type name="A">
-      <method name="SByte op_Implicit(A)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Byte op_Implicit(A)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int16 op_Implicit(A)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="UInt16 op_Implicit(A)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int32 op_Implicit(A)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="UInt32 op_Implicit(A)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int64 op_Implicit(A)" attrs="2198">
-        <size>11</size>
-      </method>
-      <method name="UInt64 op_Implicit(A)" attrs="2198">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A2">
-      <method name="SByte op_Implicit(A2)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Byte op_Implicit(A2)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int16 op_Implicit(A2)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="UInt32 op_Implicit(A2)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int64 op_Implicit(A2)" attrs="2198">
-        <size>11</size>
-      </method>
-      <method name="UInt64 op_Implicit(A2)" attrs="2198">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A3">
-      <method name="SByte op_Implicit(A3)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="UInt32 op_Implicit(A3)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int64 op_Implicit(A3)" attrs="2198">
-        <size>11</size>
-      </method>
-      <method name="UInt64 op_Implicit(A3)" attrs="2198">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A4">
-      <method name="UInt32 op_Implicit(A4)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int64 op_Implicit(A4)" attrs="2198">
-        <size>11</size>
-      </method>
-      <method name="UInt64 op_Implicit(A4)" attrs="2198">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A5">
-      <method name="UInt32 op_Implicit(A5)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int32 op_Implicit(A5)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A6">
-      <method name="Byte op_Implicit(A6)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyDecimal">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Constraint">
-      <method name="Int32 Main()" attrs="150">
-        <size>387</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyDecimal">
-      <method name="System.Decimal op_Implicit(MyDecimal)" attrs="2198">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-632.cs">
-    <type name="Bug379822">
-      <method name="Void Assert(Boolean, Boolean)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Void TestAnd(Boolean)" attrs="145">
-        <size>80</size>
-      </method>
-      <method name="Void TestOr(Boolean)" attrs="145">
-        <size>89</size>
-      </method>
-      <method name="Void Test(Boolean)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-633.cs">
-    <type name="Test.C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-634.cs">
-    <type name="Test">
-      <method name="Void TestFunc()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestFunc&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-635.cs">
-    <type name="ShortCircuitFold">
-      <method name="Boolean get_False()" attrs="2193">
-        <size>22</size>
-      </method>
-      <method name="Boolean get_True()" attrs="2193">
-        <size>22</size>
-      </method>
-      <method name="Void a(Boolean, Boolean)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Void c(Int32)" attrs="145">
-        <size>68</size>
-      </method>
-      <method name="Boolean f()" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>168</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-636.cs">
-    <type name="Foo">
-      <method name="Boolean get_False()" attrs="2193">
-        <size>22</size>
-      </method>
-      <method name="Void ping()" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="Int32 test_while(Int32)" attrs="145">
-        <size>64</size>
-      </method>
-      <method name="Int32 test_do_while(Int32)" attrs="145">
-        <size>63</size>
-      </method>
-      <method name="Int32 test_for(Int32)" attrs="145">
-        <size>74</size>
-      </method>
-      <method name="Void test_for_empty()" attrs="145">
-        <size>36</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-637.cs">
-    <type name="A">
-      <method name="System.Type get_Value()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Value(System.Type)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Object)" attrs="6278">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="TestProp">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>124</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-638.cs">
-    <type name="Fail">
-      <method name="Void Main()" attrs="150">
-        <size>111</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Fail+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-639.cs">
-    <type name="Foo">
-      <method name="System.String get_s()" attrs="2177">
-        <size>21</size>
-      </method>
-      <method name="Void set_s(System.String)" attrs="2177">
-        <size>35</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-64.cs">
-    <type name="Operator">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Blah">
-      <method name="Void .ctor(Operator)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-640.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>139</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-641.cs">
-    <type name="Identifier">
-      <method name="Boolean op_Equality(Identifier, Identifier)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_Inequality(Identifier, Identifier)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Identifier op_Implicit(System.String)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="System.String op_Implicit(Identifier)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>73</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="System.Decimal op_Implicit(Identifier)" attrs="2198">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-642.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-643.cs">
-    <type name="PointerArithmeticTest">
-      <method name="Int32 Main()" attrs="150">
-        <size>137</size>
-      </method>
-      <method name="Int32* Conversions(Int64)" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Int32 CheckAdd(Byte*, Int32)" attrs="145">
-        <size>27</size>
-      </method>
-      <method name="Int32 CheckSub(Int16*, Int32)" attrs="145">
-        <size>29</size>
-      </method>
-      <method name="Int32 CheckSub2(Int16*, Int32)" attrs="145">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-644.cs">
-    <type name="Program">
-      <method name="System.Object M(Int32)" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Void Test_1()" attrs="129">
-        <size>60</size>
-      </method>
-      <method name="Boolean Test_2()" attrs="134">
-        <size>32</size>
-      </method>
-      <method name="Boolean Test_3()" attrs="134">
-        <size>32</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>98</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+D">
-      <method name="System.Object Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Boolean Test_4(D)" attrs="134">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="Program+D">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.Object EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-645.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-646.cs">
-    <type name="Program">
-      <method name="Int64 CastUIntPtrToInt64(UIntPtr)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="UInt32 CastIntPtrToUInt32(IntPtr)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>145</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-647.cs">
-    <type name="Foo">
-      <method name="Void Main()" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-648.cs">
-    <type name="ParamMismatch.TestCase">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void add_Culprit(System.EventHandler)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void remove_Culprit(System.EventHandler)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void Finalize()" attrs="196">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-649.cs">
-    <type name="MainClass">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>610</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+Decimal2">
-      <method name="Decimal2 op_Explicit(Double)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Double)" attrs="6278">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor(Decimal)" attrs="6278">
-        <size>9</size>
-      </method>
-      <method name="Decimal2 op_Explicit(System.Decimal)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="System.Decimal op_Implicit(Decimal2)" attrs="2198">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-65.cs">
-    <type name="X">
-      <method name="Void receiver(S)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="System.Object BoxS()" attrs="145">
-        <size>29</size>
-      </method>
-      <method name="S Plain()" attrs="145">
-        <size>24</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>132</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-650.cs">
-    <type name="App">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-651.cs">
-    <type name="Foo">
-      <method name="Void Open(System.Collections.ArrayList ByRef)" attrs="129">
-        <size>21</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Open(System.Collections.IList)" attrs="129">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-652.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Int32 Test()" attrs="150">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-653.cs">
-    <type name="C">
-      <method name="Int32 Test()" attrs="145">
-        <size>43</size>
-      </method>
-      <method name="Void Test2()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Void Test2(SByte, Int16, Int32, Int64, UInt64)" attrs="145">
-        <size>40</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-654.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Int32 Test(SByte*)" attrs="145">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-655.cs">
-    <type name="D">
-      <method name="Byte get_Item(Int32)" attrs="2177">
-        <size>15</size>
-      </method>
-      <method name="Void set_Item(Int32, Byte)" attrs="2177">
-        <size>9</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>76</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-656.cs">
-    <type name="Goo">
-      <method name="Void Main()" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-657.cs">
-    <type name="TestDebug.C">
-      <method name="Void Method()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestDebug.Program">
-      <method name="Void Excluded()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-658.cs">
-    <type name="A">
-      <method name="Int32 get_Thread()" attrs="2177">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Thread">
-      <method name="Void Foo()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Main()" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-659.cs">
-    <type name="MySubClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void set_BB(Int32, Boolean)" attrs="2534">
-        <size>2</size>
-      </method>
-      <method name="Void Iface.set_AA(Int32, Boolean)" attrs="993">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-66.cs">
-    <type name="Y">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void FillOne()" attrs="145">
-        <size>19</size>
-      </method>
-      <method name="Void FillSingle()" attrs="145">
-        <size>42</size>
-      </method>
-      <method name="Void FillDouble()" attrs="145">
-        <size>60</size>
-      </method>
-      <method name="Void FillObject()" attrs="145">
-        <size>55</size>
-      </method>
-      <method name="Void FillDoubleObject()" attrs="145">
-        <size>84</size>
-      </method>
-      <method name="Int32 TestSingle()" attrs="145">
-        <size>62</size>
-      </method>
-      <method name="Int32 TestDouble()" attrs="145">
-        <size>82</size>
-      </method>
-      <method name="Int32 TestObjectSingle()" attrs="145">
-        <size>63</size>
-      </method>
-      <method name="Int32 TestObjectDouble()" attrs="145">
-        <size>87</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>108</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>53</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-660.cs">
-    <type name="Status">
-      <method name="Status op_Implicit(Code)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Code op_Implicit(Status)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor(Code)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-661.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void TestMethod()" attrs="134">
-        <size>16</size>
-      </method>
-      <method name="SummaryInfo GetSummary()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-662.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>1</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-663.cs">
-    <type name="A">
-      <method name="Int32 op_Implicit(A)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_Implicit(A)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-664.cs">
-    <type name="C">
-      <method name="Boolean Test(System.String)" attrs="145">
-        <size>159</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>72</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-665.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Int32 Method(System.Object)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-666.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-667.cs">
-    <type name="CA">
-      <method name="Void IA.M()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CC">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-668.cs">
-    <type name="Bar">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-669.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>4</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-670.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-671.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="Boolean Bar(System.Object)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-672.cs">
-    <type name="X">
-      <method name="Int32* get_Foo()" attrs="2177">
-        <size>11</size>
-      </method>
-      <method name="S* get_Foo2()" attrs="2177">
-        <size>11</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-673.cs">
-    <type name="Test">
-      <method name="Void Foo()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>103</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-674.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>64</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+D">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-675.cs">
-    <type name="B">
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_Equality(B, B)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_Inequality(B, B)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-676.cs">
-    <type name="N.Item">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="N.Test">
-      <method name="N.Item get_Item(N.Test)" attrs="2177">
-        <size>10</size>
-      </method>
-      <method name="Void Foo(ItemSlot)" attrs="129">
-        <size>26</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-677.cs">
-    <type name="InvokeWindow">
-      <method name="Void add_E(D)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_E(D)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void Run()" attrs="134">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Void OnDeleteEvent()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void OnDeleteEvent(Int32)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-678.cs">
-    <type name="NaNTest">
-      <method name="Int32 Main()" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor(Double, Double)" attrs="6278">
-        <size>172</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-68.cs">
-    <type name="Y">
-      <method name="Void .ctor()" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>204</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-680.cs">
-    <type name="AsStringProblem.MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>95</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-681.cs">
-    <type name="BugClass">
-      <method name="Void .cctor()" attrs="6289">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="BugClass+Foo">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Bug">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="BugClass">
-      <method name="Void FooImplementation(Void*)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="BugClass+Foo">
-      <method name="Void Invoke(Void*)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Void*, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-682.cs">
-    <type name="broken_cast">
-      <method name="Void report(System.String)" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void conv_ovf_i(Int64, Boolean)" attrs="150">
-        <size>78</size>
-      </method>
-      <method name="Void conv_ovf_i_un(Int64, Boolean)" attrs="150">
-        <size>78</size>
-      </method>
-      <method name="Void conv_ovf_u(Int64, Boolean)" attrs="150">
-        <size>78</size>
-      </method>
-      <method name="Void conv_ovf_u_un(Int64, Boolean)" attrs="150">
-        <size>78</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>191</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-683.cs">
-    <type name="broken_cast">
-      <method name="Int32 Main()" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-684.cs">
-    <type name="mono_bug.Program">
-      <method name="Void Main()" attrs="150">
-        <size>78</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Double[][,] ReturnArray()" attrs="145">
-        <size>70</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-685.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-686.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>53</size>
-      </method>
-      <method name="Void Foo()" attrs="145">
-        <size>150</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-687.cs">
-    <type name="XUnit">
-      <method name="XUnit op_Implicit(Double)" attrs="2198">
-        <size>18</size>
-      </method>
-      <method name="Double op_Implicit(XUnit)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor(Double)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Unit">
-      <method name="Unit op_Implicit(Double)" attrs="2198">
-        <size>18</size>
-      </method>
-      <method name="Double op_Implicit(Unit)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor(Double)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>64</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-688.cs">
-    <type name="Test">
-      <method name="Byte* GetFoo()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Byte* GetFoo2()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>64</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-689.cs">
-    <type name="Sample">
-      <method name="Void Foo(Byte*, Byte*)" attrs="150">
-        <size>43</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>4</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-69.cs">
-    <type name="Blah">
-      <method name="Void Start_internal(IntPtr)" attrs="129">
-        <size>0</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-690.cs">
-    <type name="Test.Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-691.cs">
-    <type name="ConsoleApplication6.Program">
-      <method name="Void Main()" attrs="150">
-        <size>133</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>23</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-692.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>169</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void test1(System.DateTime ByRef)" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Void test2(System.DateTime ByRef)" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-693.cs">
-    <type name="ConstTest">
-      <method name="Int32 Main()" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-694.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-695.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>766</size>
-      </method>
-      <method name="System.String get_BaseDirectory()" attrs="2193">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>53</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-696.cs">
-    <type name="S">
-      <method name="S op_Implicit(C)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void f(S)" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-697.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-698.cs">
-    <type name="test">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-699.cs">
-    <type name="D">
-      <method name="System.String get_message()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>26</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-7.cs">
-    <type name="Mine.MyBoolean">
-      <method name="Boolean op_Implicit(Mine.MyBoolean)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Mine.MyTrueFalse">
-      <method name="Boolean op_True(Mine.MyTrueFalse)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_False(Mine.MyTrueFalse)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Mine.Blah">
-      <method name="Int32 Main()" attrs="150">
-        <size>478</size>
-      </method>
-      <method name="Mine.Blah op_Addition(Mine.Blah, Mine.Blah)" attrs="2198">
-        <size>39</size>
-      </method>
-      <method name="Mine.Blah op_UnaryPlus(Mine.Blah)" attrs="2198">
-        <size>30</size>
-      </method>
-      <method name="Mine.Blah op_UnaryNegation(Mine.Blah)" attrs="2198">
-        <size>31</size>
-      </method>
-      <method name="Mine.Blah op_Subtraction(Mine.Blah, Mine.Blah)" attrs="2198">
-        <size>39</size>
-      </method>
-      <method name="Int32 op_Multiply(Mine.Blah, Mine.Blah)" attrs="2198">
-        <size>32</size>
-      </method>
-      <method name="Int32 op_Division(Mine.Blah, Mine.Blah)" attrs="2198">
-        <size>32</size>
-      </method>
-      <method name="Int32 op_Modulus(Mine.Blah, Mine.Blah)" attrs="2198">
-        <size>32</size>
-      </method>
-      <method name="Mine.Blah op_OnesComplement(Mine.Blah)" attrs="2198">
-        <size>31</size>
-      </method>
-      <method name="Boolean op_LogicalNot(Mine.Blah)" attrs="2198">
-        <size>28</size>
-      </method>
-      <method name="Mine.Blah op_Increment(Mine.Blah)" attrs="2198">
-        <size>34</size>
-      </method>
-      <method name="Mine.Blah op_Decrement(Mine.Blah)" attrs="2198">
-        <size>34</size>
-      </method>
-      <method name="Boolean op_True(Mine.Blah)" attrs="2198">
-        <size>28</size>
-      </method>
-      <method name="Boolean op_False(Mine.Blah)" attrs="2198">
-        <size>31</size>
-      </method>
-      <method name="Int32 op_Implicit(Mine.Blah)" attrs="2198">
-        <size>25</size>
-      </method>
-      <method name="Double op_Explicit(Mine.Blah)" attrs="2198">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-70.cs">
-    <type name="X">
-      <method name="Int32 get_A()" attrs="2502">
-        <size>10</size>
-      </method>
-      <method name="Int32 B()" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Int32 get_A()" attrs="2246">
-        <size>17</size>
-      </method>
-      <method name="Int32 B()" attrs="198">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Int32 Main()" attrs="150">
-        <size>98</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-700.cs">
-    <type name="FooAttribute">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-701.cs">
-    <type name="Foo">
-      <method name="UInt16 ToUint16()" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-702.cs">
-    <type name="S">
-      <method name="Void Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor(String, Int32)" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-703.cs">
-    <type name="A">
-      <method name="Void add_Finished(System.EventHandler)" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void remove_Finished(System.EventHandler)" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void test(A)" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void TestA(System.Object, System.EventArgs)" attrs="134">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void add_Finished(System.EventHandler)" attrs="2246">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Finished(System.EventHandler)" attrs="2246">
-        <size>42</size>
-      </method>
-      <method name="Void TestB(System.Object, System.EventArgs)" attrs="134">
-        <size>26</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>50</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-704.cs">
-    <type name="NObjective.Program">
-      <method name="Void ArglistMethod(...)" attrs="145">
-        <size>52</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-705.cs">
-    <type name="Test">
-      <method name="Nested GetEnumerator()" attrs="134">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+Nested">
-      <method name="Void System.IDisposable.Dispose()" attrs="481">
-        <size>14</size>
-      </method>
-      <method name="Int32 get_Current()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void Reset()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Dispose()" attrs="134">
-        <size>12</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>88</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-706.cs">
-    <type name="Test.CustomParentAttribute">
-      <method name="Void DoSomething()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.MyClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.MyClass+CustomChildAttribute">
-      <method name="Void DoSomething()" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-707.cs">
-    <type name="Tzap">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tzap+Baz">
-      <method name="Void Gazonk()" attrs="134">
-        <size>8</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tzap+Bar">
-      <method name="Void Foo()" attrs="452">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-708.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+ADelegate">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="ADelegate Delegate2(Boolean)" attrs="150">
-        <size>50</size>
-      </method>
-    </type>
-    <type name="A+ADelegate">
-      <method name="ADelegate Invoke(Boolean)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Boolean, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="ADelegate EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-709.cs">
-    <type name="C">
-      <method name="Void CharCopy(Char*, Char*, Int32)" attrs="145">
-        <size>36</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>71</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void CopyTo(Int32, Char[], Int32, Int32)" attrs="145">
-        <size>71</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-71.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MethodSignature">
-      <method name="Void .ctor(String, Type, Type[])" attrs="6278">
-        <size>23</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-710.cs">
-    <type name="Z">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-711.cs">
-    <type name="N.Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-712.cs">
-    <type name="Hello">
-      <method name="Void Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-713.cs">
-    <type name="DispBar">
-      <method name="Void Dispose()" attrs="486">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Boolean TryThing()" attrs="150">
-        <size>43</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IDisposable GetBar()" attrs="134">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-714.cs">
-    <type name="Hello">
-      <method name="Void IBar.Test()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-715.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-716.cs">
-    <type name="SS">
-      <method name="Void .cctor()" attrs="6289">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="SSS">
-      <method name="Void .cctor()" attrs="6289">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CC">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="CCC">
-      <method name="Void .cctor()" attrs="6289">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>230</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-717.cs">
-    <type name="AA">
-      <method name="Int32 Foo(Int32)" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Int32 Foo(Byte)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo(Int32)" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 Foo(Int32)" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void Foo(System.String)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.String ToString()" attrs="198">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="MyClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>83</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-718.cs">
-    <type name="A">
-      <method name="Void Foo(Int32, Int32)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Main()" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Void Foo(Int32)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-719.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-72.cs">
-    <type name="outer">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="outer+inner">
-      <method name="Void meth(System.Object)" attrs="134">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-720.cs">
-    <type name="N.Program">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.Parent">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.Parent+ExampleHandler">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="N.Child">
-      <method name="Void OnExample()" attrs="134">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.Parent">
-      <method name="Void add_Example(ExampleHandler)" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void remove_Example(ExampleHandler)" attrs="3526">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="N.Parent+ExampleHandler">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="N.Child">
-      <method name="Void add_Example(ExampleHandler)" attrs="2246">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Example(ExampleHandler)" attrs="2246">
-        <size>42</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-721.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Control">
-      <method name="Void set_Foo(Int32)" attrs="2502">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-722.cs">
-    <type name="S">
-      <method name="Void set_Prop(Int32)" attrs="2534">
-        <size>9</size>
-      </method>
-      <method name="Void M[T](T)" attrs="129">
-        <size>19</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>61</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-723.cs">
-    <type name="Test">
-      <method name="Int32 get_Count()" attrs="2534">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Maine">
-      <method name="Int32 Main()" attrs="150">
-        <size>34</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-724.cs">
-    <type name="Test">
-      <method name="Int32 DoTest(System.String, System.String, System.String, Int32)" attrs="145">
-        <size>43</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>118</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Concrete">
-      <method name="System.String A.get_Spec()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.String B.get_Spec()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.String get_Spec()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-725.cs">
-    <type name="D">
-      <method name="Int32 Invoke(Int32 ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 Main()" attrs="150">
-        <size>217</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(Int32 ByRef, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(Int32 ByRef, System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-726.cs">
-    <type name="CS0102">
-      <method name="System.Object IFoo.Clone()" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CS0102+Clone">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-727.cs">
-    <type name="IDisposableTest.MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>126</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="IDisposableTest.Foo">
-      <method name="Void Dispose()" attrs="486">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>65</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-728.cs">
-    <type name="Tests">
-      <method name="Int32 Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-729.cs">
-    <type name="Primes.MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>146</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-73.cs">
-    <type name="Abstract">
-      <method name="Int32 A()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Concrete">
-      <method name="Int32 A()" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-730.cs">
-    <type name="Demo">
-      <method name="Void Test(System.Object)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Int32 Test(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 GetPhones()" attrs="129">
-        <size>47</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Demo+D">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-731.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-732.cs">
-    <type name="C">
-      <method name="Int32 op_Explicit(C)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int32 op_Implicit(C, Boolean)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-733.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>103</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-734.cs">
-    <type name="M">
-      <method name="Void Run()" attrs="134">
-        <size>23</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>72</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-735.cs">
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+C+X">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-736.cs">
-    <type name="TestGeneric`1[T]">
-      <method name="Void add_Event(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Event(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void Raise()" attrs="134">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestGeneric2`1[T]">
-      <method name="Void Raise()" attrs="134">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestGeneric2`1+GenericHandler[T]">
-      <method name="Void Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void add_Event(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Event(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void Raise()" attrs="134">
-        <size>19</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestGeneric2`1[T]">
-      <method name="Void add_Event(GenericHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Event(GenericHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-    </type>
-    <type name="TestGeneric2`1+GenericHandler[T]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-737.cs">
-    <type name="Breaks">
-      <method name="Double get_Item(Int32, Int32)" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32, Double)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor(Double)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Int32 Main()" attrs="150">
-        <size>85</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-738.cs">
-    <type name="TestNamespace.ResumableInputStream">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-739.cs">
-    <type name="X">
-      <method name="Void Finalize()" attrs="196">
-        <size>20</size>
-      </method>
-      <method name="Void Foo()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>105</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-74.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>198</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-740.cs">
-    <type name="FixedTest">
-      <method name="Int32 Main()" attrs="150">
-        <size>361</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FixedTest+TValue">
-      <method name="System.String ToString()" attrs="198">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor(Int64)" attrs="6278">
-        <size>29</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-741.cs">
-    <type name="Test">
-      <method name="Void test()" attrs="129">
-        <size>19</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-742.cs">
-    <type name="Test">
-      <method name="Test Set(C)" attrs="150">
-        <size>28</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Driver">
-      <method name="Int32 Main()" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-743.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void Test()" attrs="129">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-744.cs">
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M+Nested">
-      <method name="Void Extra()" attrs="196">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void AMethod()" attrs="1476">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void BMethod()" attrs="1476">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void AMethod()" attrs="196">
-        <size>2</size>
-      </method>
-      <method name="Void BMethod()" attrs="196">
-        <size>2</size>
-      </method>
-      <method name="Void Extra()" attrs="1476">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-745.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-746.cs">
-    <type name="Test">
-      <method name="Void Foo(IListCounter)" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-747.cs">
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+BNested">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AA">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AA+ANested">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-748.cs">
-    <type name="M">
-      <method name="RealTest.Foo Test()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Local.M">
-      <method name="RealTest.Foo Test()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="RealTest.Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-749.cs">
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-75.cs">
-    <type name="X">
-      <method name="X op_Addition(X, X)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="driver">
-      <method name="Int32 Main()" attrs="150">
-        <size>47</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-750.cs">
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-751.cs">
-    <type name="LocalNS.Compiler">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="System.Local.M">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-752.cs">
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-753.cs">
-    <type name="AI2">
-      <method name="System.String IA.get_val()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Void IA.set_val(System.String)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Int32 get_val()" attrs="2534">
-        <size>11</size>
-      </method>
-      <method name="Void set_val(Int32)" attrs="2534">
-        <size>2</size>
-      </method>
-      <method name="Void stuff(IAI2)" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-754.cs">
-    <type name="Bug.D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Bug.A">
-      <method name="Void add_E(Bug.D)" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void remove_E(Bug.D)" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bug.B">
-      <method name="Void add_E(Bug.D)" attrs="2246">
-        <size>2</size>
-      </method>
-      <method name="Void remove_E(Bug.D)" attrs="2246">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bug.M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bug.D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-755.cs">
-    <type name="Item">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Item+Builder">
-      <method name="Int32 get_Foo()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="System.Object get_Item(Int32)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="System.Object get_Item(Int32, Int32)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-756.cs">
-    <type name="UnsafeTest">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-757.cs">
-    <type name="TestClass1">
-      <method name="Void Test()" attrs="129">
-        <size>35</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-758.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void Finalize()" attrs="196">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-759.cs">
-    <type name="B">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-76.cs">
-    <type name="foo">
-      <method name="System.String strcat(System.String[])" attrs="145">
-        <size>60</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>165</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-760.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-761.cs">
-    <type name="C">
-      <method name="Int32 get_I()" attrs="2177">
-        <size>14</size>
-      </method>
-      <method name="Void set_I(Int32)" attrs="2177">
-        <size>8</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-762.cs">
-    <type name="N1.Derived.Dummy">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N2.Derived.Dummy">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="DerivedAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-763.cs">
-    <type name="StaticDelegateWithSameNameAsInstance">
-      <method name="Void StaticCallback()" attrs="134">
-        <size>49</size>
-      </method>
-      <method name="Void StaticCallback(System.String)" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>49</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="StaticDelegateWithSameNameAsInstance+Provider">
-      <method name="Void Invoke(System.String)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="StaticDelegateWithSameNameAsInstance">
-      <method name="Void set_MyProvider(Provider)" attrs="2177">
-        <size>38</size>
-      </method>
-    </type>
-    <type name="StaticDelegateWithSameNameAsInstance+Provider">
-      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-764.cs">
-    <type name="Item">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="Caller">
-      <method name="System.String get_Item(System.String)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void Foo()" attrs="134">
-        <size>13</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-765.cs">
-    <type name="B">
-      <method name="Void Foo(Int32)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void Foo(System.String)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-766.cs">
-    <type name="A.Color">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B.Color">
-      <method name="Void .cctor()" attrs="6289">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="A.Color">
-      <method name="B.Color get_Base()" attrs="2180">
-        <size>14</size>
-      </method>
-      <method name="B.Color get_NewBase()" attrs="2180">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="B.Color">
-      <method name="B.Color From(Int32)" attrs="150">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-767.cs">
-    <type name="Test">
-      <method name="Int32 Foo()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="Test get_Test()" attrs="2177">
-        <size>14</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-768.cs">
-    <type name="A.N.Wrong">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X.TestClass">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-769.cs">
-    <type name="C">
-      <method name="Void I.Clear()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void Clear()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>132</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-77.cs">
-    <type name="XX">
-      <method name="Int32 Main()" attrs="150">
-        <size>443</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-770.cs">
-    <type name="MyClass">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyClass+A">
-      <method name="Void add_MouseClick(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_MouseClick(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyClass+B">
-      <method name="Void add_MouseClick(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_MouseClick(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyClass+C">
-      <method name="Void MouseClick()" attrs="134">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-771.cs">
-    <type name="InternalAccess.Base">
-      <method name="System.String get_Prop()" attrs="2179">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6275">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="InternalAccess.DerivedInternalExample">
-      <method name="System.String get_Prop()" attrs="2179">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="InternalAccess.DerivedProtectedExample">
-      <method name="System.String get_Prop()" attrs="2180">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="InternalAccess.MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>78</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-772.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void .ctor(Object)" attrs="6278">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor(String, Object[])" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-773.cs">
-    <type name="Foo">
-      <method name="Int32 get_Item(Int32)" attrs="2534">
-        <size>11</size>
-      </method>
-      <method name="Int32 IFoo.get_Bar(Int32)" attrs="993">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="Int32 get_Baz(Int32)" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Babar">
-      <method name="Int32 get_Baz(Int32)" attrs="2246">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>86</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-774.cs">
-    <type name="C">
-      <method name="Int32 I.get_Item(Int32)" attrs="2529">
-        <size>10</size>
-      </method>
-      <method name="Void I.set_Item(Int32, Int32)" attrs="2529">
-        <size>2</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32)" attrs="2177">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-775.cs">
-    <type name="C">
-      <method name="Void A.add_Member(System.EventHandler)" attrs="2529">
-        <size>35</size>
-      </method>
-      <method name="Void A.remove_Member(System.EventHandler)" attrs="2529">
-        <size>25</size>
-      </method>
-      <method name="Void add_Member(System.EventHandler)" attrs="2534">
-        <size>35</size>
-      </method>
-      <method name="Void remove_Member(System.EventHandler)" attrs="2534">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Int32 TestMe()" attrs="134">
-        <size>178</size>
-      </method>
-      <method name="Void f(System.Object, System.EventArgs)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-776.cs">
-    <type name="First">
-      <method name="System.Object get_Item(System.String)" attrs="2502">
-        <size>14</size>
-      </method>
-      <method name="Void set_Item(System.String, System.Object)" attrs="2502">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Second">
-      <method name="System.Object get_Item(System.String)" attrs="2246">
-        <size>14</size>
-      </method>
-      <method name="Void set_Item(System.String, System.Object)" attrs="2246">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Third">
-      <method name="System.Object get_Item(System.String)" attrs="2246">
-        <size>16</size>
-      </method>
-      <method name="Void set_Item(System.String, System.Object)" attrs="2246">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="a">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-777.cs">
-    <type name="MediaStore">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MediaStore+Thing">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-778.cs">
-    <type name="A">
-      <method name="Int32 Test()" attrs="454">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 Test()" attrs="198">
-        <size>20</size>
-      </method>
-      <method name="Void Test(System.Object[])" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test(System.Object[], System.String)" attrs="454">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Test(System.Object[], System.String)" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Int32 Test()" attrs="198">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-779.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Boolean test1(Int64, Int64)" attrs="145">
-        <size>27</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-78.cs">
-    <type name="N1.B">
-      <method name="Boolean ShortCasting()" attrs="145">
-        <size>32</size>
-      </method>
-      <method name="Boolean IntCasting()" attrs="145">
-        <size>31</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-780.cs">
-    <type name="MonoVirtuals.X">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoVirtuals.Y">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoVirtuals.A">
-      <method name="Int32 f(MonoVirtuals.X)" attrs="454">
-        <size>20</size>
-      </method>
-      <method name="Int32 f(MonoVirtuals.Y)" attrs="454">
-        <size>21</size>
-      </method>
-      <method name="Int32 get_Item(MonoVirtuals.X)" attrs="2502">
-        <size>20</size>
-      </method>
-      <method name="Int32 get_Item(MonoVirtuals.Y)" attrs="2502">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoVirtuals.B">
-      <method name="Int32 f(MonoVirtuals.X)" attrs="198">
-        <size>20</size>
-      </method>
-      <method name="Int32 get_Item(MonoVirtuals.X)" attrs="2246">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoVirtuals.C">
-      <method name="Int32 f(MonoVirtuals.X)" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Int32 f(MonoVirtuals.Y)" attrs="198">
-        <size>26</size>
-      </method>
-      <method name="Int32 get_Item(MonoVirtuals.X)" attrs="2246">
-        <size>26</size>
-      </method>
-      <method name="Int32 get_Item(MonoVirtuals.Y)" attrs="2246">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoVirtuals.MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>64</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-781.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="Void add_temp(D)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_temp(D)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="E get_Prop()" attrs="2177">
-        <size>14</size>
-      </method>
-      <method name="Void Test()" attrs="129">
-        <size>42</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void &lt;Test&gt;m__0()" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-782.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-783.cs">
-    <type name="C">
-      <method name="Void M(E)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Test(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test(E)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>116</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-784.cs">
-    <type name="A">
-      <method name="Int32 get_Item(Int32)" attrs="2502">
-        <size>7</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32)" attrs="2502">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 get_Item(Int32)" attrs="2246">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 get_Item(Int32)" attrs="2246">
-        <size>16</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32)" attrs="2246">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>64</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-785.cs">
-    <type name="Base">
-      <method name="Int32 get_Prop()" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void set_Prop(Int32)" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Void TestVoid()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void TestInt(Int32)" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="DeriveVTable">
-      <method name="Int32 get_Prop()" attrs="2246">
-        <size>10</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2246">
-        <size>10</size>
-      </method>
-      <method name="Void TestVoid()" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void TestInt(Int32)" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="NewVTable">
-      <method name="Int32 get_Prop()" attrs="3526">
-        <size>0</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void TestVoid()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void TestInt(Int32)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Overload()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Overload(Int32)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-786.cs">
-    <type name="A">
-      <method name="System.String op_Implicit(A)" attrs="2198">
-        <size>26</size>
-      </method>
-      <method name="System.Delegate op_Implicit(A)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="System.String op_Implicit(B)" attrs="2198">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.Delegate op_Implicit(D)" attrs="2198">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="Boolean op_Implicit(E)" attrs="2198">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="F">
-      <method name="Boolean op_Implicit(F)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>410</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-787.cs">
-    <type name="A">
-      <method name="Void set_Prop(System.String)" attrs="2502">
-        <size>2</size>
-      </method>
-      <method name="System.String get_Prop()" attrs="2502">
-        <size>10</size>
-      </method>
-      <method name="Int32 Field()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void set_Prop(System.String)" attrs="2246">
-        <size>2</size>
-      </method>
-      <method name="System.String get_Prop()" attrs="2246">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-788.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="System.String get_Message()" attrs="2502">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="System.String get_Message()" attrs="2177">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-789.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>77</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-79.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-790.cs">
-    <type name="S">
-      <method name="Void .ctor(Double)" attrs="6278">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Verify_1(Test ByRef, Test ByRef)" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="Void Verify_2(S ByRef, S ByRef)" attrs="145">
-        <size>29</size>
-      </method>
-      <method name="Void Verify_3(E ByRef, E ByRef)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>39</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-791.cs">
-    <type name="testApp.TestApp">
-      <method name="Int32 Main()" attrs="150">
-        <size>81</size>
-      </method>
-      <method name="Boolean GetEnumerator()" attrs="486">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>20</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-792.cs">
-    <type name="Program">
-      <method name="Void Test()" attrs="129">
-        <size>36</size>
-      </method>
-      <method name="Void Test2(IMemberDelayed)" attrs="129">
-        <size>20</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-793.cs">
-    <type name="MonoPointerBugTest.Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>60</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-794.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void TestCallOnly()" attrs="129">
-        <size>66</size>
-      </method>
-      <method name="Void SomeMethod()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-795.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>120</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>25</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-796.cs">
-    <type name="Program">
-      <method name="Void Test()" attrs="129">
-        <size>20</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FooAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C2">
-      <method name="Void Foo()" attrs="129">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-797.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-798.cs">
-    <type name="A">
-      <method name="Void Foo(Int32 ByRef)" attrs="134">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Foo(Int32 ByRef)" attrs="134">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-799.cs">
-    <type name="Test2">
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test2+Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test2+Bar">
-      <method name="Void .ctor(Foo)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-8.cs">
-    <type name="X">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>173</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-80.cs">
-    <type name="X">
-      <method name="Int32 Add(Int32, Int32)" attrs="486">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Int32 Main()" attrs="150">
-        <size>47</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-800.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-801.cs">
-    <type name="C">
-      <method name="E op_Implicit(C)" attrs="2198">
-        <size>11</size>
-      </method>
-      <method name="Int32 op_Implicit(C)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>199</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-802.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-803.cs">
-    <type name="A">
-      <method name="Int32 Main()" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-804.cs">
-    <type name="A">
-      <method name="Int32 get_Foo()" attrs="2534">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="System.String get_Foo()" attrs="2534">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Char IB_2.get_Foo()" attrs="2529">
-        <size>11</size>
-      </method>
-      <method name="Byte get_Foo()" attrs="2534">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-805.cs">
-    <type name="TestClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>49</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 ReturnValue()" attrs="131">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="G`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-806.cs">
-    <type name="A1">
-      <method name="Void .ctor(Single)" attrs="6278">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(UInt64)" attrs="6278">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="T1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>104</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-807.cs">
-    <type name="AException">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>69</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-808.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>70</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-809.cs">
-    <type name="Z">
-      <method name="Int32 Main()" attrs="150">
-        <size>65</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-81.cs">
-    <type name="N1.A">
-      <method name="Void Bar()" attrs="129">
-        <size>45</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>89</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-810.cs">
-    <type name="C">
-      <method name="IA Test(IC)" attrs="134">
-        <size>12</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-811.cs">
-    <type name="C">
-      <method name="Void TestRefValue(...)" attrs="145">
-        <size>69</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-812.cs">
-    <type name="N.C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-813.cs">
-    <type name="NS.System.A">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-814.cs">
-    <type name="Test">
-      <method name="System.String get_A()" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="System.String get_B()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>224</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-815.cs">
-    <type name="D">
-      <method name="Int32 get_DUUU(Int32)" attrs="2534">
-        <size>10</size>
-      </method>
-      <method name="Int32 IS.get_Hello(Int32)" attrs="993">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>38</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-816.cs">
-    <type name="System.Int32">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="System.Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>71</size>
-      </method>
-      <method name="System.Reflection.Assembly CurrentDomain_TypeResolve(System.Object, System.ResolveEventArgs)" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-817.cs">
-    <type name="System.Program">
-      <method name="Void Main()" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-818.cs">
-    <type name="A.CAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B.CAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo.Foo">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-819.cs">
-    <type name="AAttribute">
-      <method name="Int32 Main()" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6276">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="AAttribute+BAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-82.cs">
-    <type name="N1.N2.B">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N1.N3.B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N1.N2.B">
-      <method name="Void Method(N1.A ByRef)" attrs="129">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="N1.N3.B">
-      <method name="Void Method(N1.A ByRef)" attrs="129">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-820.cs">
-    <type name="NS.C">
-      <method name="Void Main()" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-821.cs">
-    <type name="S">
-      <method name="T Test[T]()" attrs="129">
-        <size>18</size>
-      </method>
-      <method name="Void M()" attrs="134">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Int32 Main()" attrs="150">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-822.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-823.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-824.cs">
-    <type name="Context">
-      <method name="Void Foo(IBBB)" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void Foo(IAAA)" attrs="486">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-825.cs">
-    <type name="Test">
-      <method name="Void WriteLine(System.String)" attrs="147">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-826.cs">
-    <type name="A">
-      <method name="Int32 I.Foo()" attrs="481">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AA">
-      <method name="Int32 Foo()" attrs="486">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 Foo()" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>120</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-827.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-828.cs">
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-829.cs">
-    <type name="C">
-      <method name="Void Test(Boolean, S ByRef)" attrs="145">
-        <size>70</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Test2(Boolean)" attrs="145">
-        <size>74</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-83.cs">
-    <type name="PersonArrivedHandler">
-      <method name="Void Invoke(System.Object, PersonArrivedArgs)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="PersonArrivedArgs">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Greeter">
-      <method name="Void HandlePersonArrived(System.Object, PersonArrivedArgs)" attrs="134">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Room">
-      <method name="Void add_PersonArrived(PersonArrivedHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_PersonArrived(PersonArrivedHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void AddPerson(System.String)" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="DelegateTest">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="PersonArrivedHandler">
-      <method name="System.IAsyncResult BeginInvoke(System.Object, PersonArrivedArgs, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-830.cs">
-    <type name="MC">
-      <method name="Int32 Main()" attrs="150">
-        <size>158</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-831.cs">
-    <type name="C">
-      <method name="Void Test()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-832.cs">
-    <type name="A">
-      <method name="Int32 Main()" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Void Test()" attrs="129">
-        <size>22</size>
-      </method>
-      <method name="S get_Properties()" attrs="2179">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="C get_P2()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-833.cs">
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>141</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+DC">
-      <method name="Void .ctor(Guid)" attrs="6278">
-        <size>9</size>
-      </method>
-      <method name="System.Guid get_Id()" attrs="2182">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-834.cs">
-    <type name="A">
-      <method name="Int32 Test(System.Object)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 Test(Int32)" attrs="132">
-        <size>10</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2180">
-        <size>10</size>
-      </method>
-      <method name="Int32 get_Item(System.Object)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor(Object)" attrs="6278">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6276">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 Main()" attrs="150">
-        <size>109</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-835.cs">
-    <type name="AA">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AA+D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-836.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-837.cs">
-    <type name="TT.GG">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TT.A.X.Y.X">
-      <method name="Void Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-838.cs">
-    <type name="N2.Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N2.G`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N2.C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-839.cs">
-    <type name="N1.M">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N2.D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N3.C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N3.C+Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N3.C+IndexingChain">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-84.cs">
-    <type name="Ghost">
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-840.cs">
-    <type name="R">
-      <method name="Boolean op_LessThan(R, R)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_GreaterThan(R, R)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Single op_Implicit(R)" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="R op_Implicit(Single)" attrs="2198">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>50</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-841.cs">
-    <type name="R">
-      <method name="R op_Implicit(Int32)" attrs="2198">
-        <size>18</size>
-      </method>
-      <method name="Double op_Implicit(R)" attrs="2198">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>134</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-842.cs">
-    <type name="Foo">
-      <method name="System.String IA.get_Item(Int32)" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Void IA.set_Item(Int32, System.String)" attrs="2529">
-        <size>9</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-843.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-844.cs">
-    <type name="C">
-      <method name="Int32 get_Prop()" attrs="2177">
-        <size>10</size>
-      </method>
-      <method name="Int32 get_Item(Char)" attrs="2177">
-        <size>10</size>
-      </method>
-      <method name="Void Foo(Int32 ByRef)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Method(Int32)" attrs="134">
-        <size>33</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-845.cs">
-    <type name="C1">
-      <method name="Int32 Foo()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C2">
-      <method name="Int32 Foo()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C1">
-      <method name="Int32 Foo2()" attrs="486">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="C2">
-      <method name="Int32 Foo2()" attrs="486">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-846.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-847.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-848.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Foo[TEventArgs,TEventHandler](A`1[TEventHandler], System.Action`2[System.Object,TEventArgs])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__0(System.Object, System.String)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-849.cs">
-    <type name="ConditionalPromotions">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>311</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 Test(Boolean, Int16)" attrs="150">
-        <size>22</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-85.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-850.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Int32 F(System.String, System.String[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 F(System.String[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-851.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-852.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-853.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-854.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>69</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-855.cs">
-    <type name="Test.BaseClass">
-      <method name="System.String Get(System.String, System.String)" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Int32 Get(System.String, Int32)" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test.Subclass">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-856.cs">
-    <type name="A">
-      <method name="Void Dispose()" attrs="454">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Dispose()" attrs="129">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void Dispose()" attrs="198">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-857.cs">
-    <type name="Outer">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TypeHiding">
-      <method name="Boolean Test1(Outer)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Boolean Test2()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-858.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>108</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-859.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-86.cs">
-    <type name="T.T">
-      <method name="Int32 method1(System.Type, Int32)" attrs="145">
-        <size>31</size>
-      </method>
-      <method name="Int32 method1(System.Type, System.Type[])" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Int32 method2(System.Type, Int32)" attrs="145">
-        <size>31</size>
-      </method>
-      <method name="Int32 method2(System.Type, System.Type[])" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-860.cs">
-    <type name="ConditionalAttributeTesting.MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Int32 HelloWorld()" attrs="150">
-        <size>52</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ConditionalAttributeTesting.SomeAttribute">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-861.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void is_numer_parser_test()" attrs="129">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-862.cs">
-    <type name="op_Addition">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="op_Addition+Builder">
-      <method name="Int32 get_Foo()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 op_Addition(Builder, Builder)" attrs="2198">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-863.cs">
-    <type name="TestRefKeywords">
-      <method name="Int32 Main()" attrs="145">
-        <size>86</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-864.cs">
-    <type name="MainClass">
-      <method name="Int32 Foo(Double)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo(Int32)" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>82</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Int32 op_Implicit(A)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 op_Implicit(B)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A2">
-      <method name="Double op_Implicit(A2)" attrs="2198">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B2">
-      <method name="Int32 op_Implicit(B2)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-865.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="IA Create(Boolean)" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-866.cs">
-    <type name="C">
-      <method name="Boolean op_Addition(C, Int16)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_Addition(C, Int64)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Boolean op_Addition(B, System.String)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-867.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="User">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BaseController">
-      <method name="IUser get_User()" attrs="2502">
-        <size>14</size>
-      </method>
-      <method name="Void set_User(IUser)" attrs="2502">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BaseJobController">
-      <method name="User get_User()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_User(User)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="JobController">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-868.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>224</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-869.cs">
-    <type name="C">
-      <method name="C op_BitwiseAnd(C, E)" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="E op_Implicit(C)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="FooClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>77</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-87.cs">
-    <type name="Top">
-      <method name="Int32 Main()" attrs="150">
-        <size>81</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Top+X">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Top+Y">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Top+XA">
-      <method name="Int32 get_one()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Top+XB">
-      <method name="Int32 get_one()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Int32 get_two()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Other">
-      <method name="Void X()" attrs="134">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-870.cs">
-    <type name="Test">
-      <method name="Void Foo(UInt16)" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-871.cs">
-    <type name="D">
-      <method name="D op_BitwiseAnd(D, D)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Boolean op_False(D)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_True(D)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="D op_Implicit(Boolean)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Int32 Main()" attrs="145">
-        <size>80</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-872.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>66</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-873.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="145">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-874.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-875.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-876.cs">
-    <type name="T">
-      <method name="Int32 Main()" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Test1()" attrs="145">
-        <size>57</size>
-      </method>
-      <method name="Void Test2()" attrs="145">
-        <size>50</size>
-      </method>
-      <method name="UInt32 Test3(Int32, UInt32)" attrs="145">
-        <size>60</size>
-      </method>
-      <method name="Void Test4()" attrs="145">
-        <size>25</size>
-      </method>
-      <method name="Void Test5()" attrs="145">
-        <size>65</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-877.cs">
-    <type name="S">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-878.cs">
-    <type name="Tests">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void Test1()" attrs="129">
-        <size>12</size>
-      </method>
-      <method name="Void Test2()" attrs="129">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-879.cs">
-    <type name="AStruct">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tests">
-      <method name="Int32 Main()" attrs="150">
-        <size>83</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-88.cs">
-    <type name="X">
-      <method name="Void f(System.String)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>71</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-880.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Test1()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Void Test2()" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="Void Test3()" attrs="145">
-        <size>27</size>
-      </method>
-      <method name="Void Test4()" attrs="145">
-        <size>42</size>
-      </method>
-      <method name="Void Test5()" attrs="145">
-        <size>72</size>
-      </method>
-      <method name="Void Test6()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Boolean Test7()" attrs="145">
-        <size>37</size>
-      </method>
-      <method name="Boolean OutCall(Int32 ByRef)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Boolean Call(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Boolean Foo(System.Object[])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Test8()" attrs="145">
-        <size>51</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-881.cs">
-    <type name="A.XAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B.XAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C.Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-882.cs">
-    <type name="MyUInt32">
-      <method name="UInt32 op_Implicit(MyUInt32)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Int64 op_Implicit(MyUInt32)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="MyUInt32 op_Implicit(UInt32)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="MyUInt32 op_Implicit(Int64)" attrs="2198">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor(UInt32)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="MyUInt32 test1(MyUInt32)" attrs="145">
-        <size>25</size>
-      </method>
-      <method name="MyUInt32 test2(MyUInt32)" attrs="145">
-        <size>25</size>
-      </method>
-      <method name="MyUInt32 test3(MyUInt32)" attrs="145">
-        <size>25</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>109</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-884.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="145">
-        <size>6</size>
-      </method>
-      <method name="Void AddEH[T]()" attrs="145">
-        <size>25</size>
-      </method>
-      <method name="Void EHandler()" attrs="145">
-        <size>1</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+E`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+E`1+EMethod[T]">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+E`1[T]">
-      <method name="Void add_EEvent(EMethod)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_EEvent(EMethod)" attrs="2182">
-        <size>42</size>
-      </method>
-    </type>
-    <type name="C+E`1+EMethod[T]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-885.cs">
-    <type name="A">
-      <method name="Void .ctor(Double)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="145">
-        <size>92</size>
-      </method>
-      <method name="Boolean Foo(Double)" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-886.cs">
-    <type name="A">
-      <method name="A Get()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void M()" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-889.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-89.cs">
-    <type name="X">
-      <method name="X F(Int32)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>117</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6273">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-890.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>206</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-891.cs">
-    <type name="B">
-      <method name="Int32 I.get_P()" attrs="2529">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 get_P()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-892.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>66</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-893.cs">
-    <type name="A">
-      <method name="Boolean TryAssign(Int32 ByRef)" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-894.cs">
-    <type name="A1Attribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A2Attribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-895.cs">
-    <type name="X">
-      <method name="Void Test(Int32, Int32 ByRef)" attrs="134">
-        <size>47</size>
-      </method>
-      <method name="Int32 Foo(System.Object)" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-896.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-897.cs">
-    <type name="X">
-      <method name="Int32 Foo()" attrs="145">
-        <size>7</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>61</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-899.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>49</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-9.cs">
-    <type name="X">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>138</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-90.cs">
-    <type name="N1.Blah">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-900.cs">
-    <type name="D">
-      <method name="D op_Implicit(System.Action)" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main()" attrs="145">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-901.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-902.cs">
-    <type name="A">
-      <method name="Void M(B[])" attrs="454">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void M(B[])" attrs="198">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test2">
-      <method name="Void Main()" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-903.cs">
-    <type name="C">
-      <method name="S op_Implicit(C)" attrs="2198">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 Main()" attrs="145">
-        <size>155</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-904.cs">
-    <type name="Test">
-      <method name="Boolean Foo(Int32 ByRef)" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void Main()" attrs="145">
-        <size>172</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-905.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-906.cs">
-    <type name="S1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="S2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="S3">
-      <method name="Void .ctor()" attrs="6278">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="S4">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="S5">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="145">
-        <size>161</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-907.cs">
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-908.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-909.cs">
-    <type name="S">
-      <method name="Int32 get_A()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_A(Int32)" attrs="2177">
-        <size>8</size>
-      </method>
-      <method name="Void add_eh(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_eh(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-91.cs">
-    <type name="Abstract">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Plain">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void MyProtectedInternal()" attrs="149">
-        <size>2</size>
-      </method>
-      <method name="Void MyInternal()" attrs="147">
-        <size>2</size>
-      </method>
-      <method name="Void MyPublic()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void MyPrivate()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>288</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-910.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-911.cs">
-    <type name="N">
-      <method name="Void Foo()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-912.cs">
-    <type name="Bar">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-913.cs">
-    <type name="N.A">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.A+B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.A+C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-914.cs">
-    <type name="ClassMain">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-915.cs">
-    <type name="ClassMain">
-      <method name="Void Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-916.cs">
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo+Nested">
-      <method name="Int32 bar()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-917.cs">
-    <type name="Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo+Nested">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-    </type>
-    <type name="Foo+Nested+bar">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-918.cs">
-    <type name="Test">
-      <method name="Void Foo()" attrs="129">
-        <size>30</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-919.cs">
-    <type name="Test">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void Outer(System.String)" attrs="145">
-        <size>29</size>
-      </method>
-      <method name="Void Inner(Char* ByRef, Char*)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-92.cs">
-    <type name="Outer">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Outer+Inner">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="InnerBase">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-920.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+Adapter">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 get_Adapter()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Adapter(Int32)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-921.cs">
-    <type name="A">
-      <method name="Void Foo(Reference.IA)" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-922.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+D">
-      <method name="C get_Property()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Property(C)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-923.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Location ByRef)" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void Test(LocationWrapper)" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Void Test(LocationWrapper ByRef)" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-924.cs">
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+DataFrame">
-      <method name="Boolean op_Equality(DataFrame, DataFrame)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Boolean op_Inequality(DataFrame, DataFrame)" attrs="2198">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-925.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>104</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyAttribute2Attribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyClass">
-      <method name="System.String get_Item(Int32, Int32)" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32, System.String)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-93.cs">
-    <type name="N1.C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N1.C">
-      <method name="Void method(N1.B ByRef)" attrs="129">
-        <size>16</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-94.cs">
-    <type name="Base">
-      <method name="Int32 IVehicle.Start()" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="Int32 Stop()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Int32 Turn()" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Derived1">
-      <method name="Int32 Turn()" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Derived2">
-      <method name="Int32 IVehicle.Start()" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="Int32 IVehicle.Turn()" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="Int32 Stop()" attrs="486">
-        <size>10</size>
-      </method>
-      <method name="Int32 Turn()" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>128</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-95.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor()" attrs="6273">
-        <size>23</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-96.cs">
-    <type name="N1.A">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N1.C">
-      <method name="Void Invoke(System.Object, N1.A)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(System.Object, N1.A, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-97.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-98.cs">
-    <type name="X">
-      <method name="Void b()" attrs="129">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-99.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>126</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-01.cs">
-    <type name="S">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-02.cs">
-    <type name="S">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>175</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>114</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-03.cs">
-    <type name="S">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>60</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-04.cs">
-    <type name="S">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>60</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-05.cs">
-    <type name="S">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>227</size>
-      </method>
-      <method name="Boolean t(Int32, Int32)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>77</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-06.cs">
-    <type name="S">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>135</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-07.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>143</size>
-      </method>
-      <method name="Boolean t(Int32, Int32)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>19</size>
-      </method>
-      <method name="Void &lt;&gt;m__1()" attrs="131">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-08.cs">
-    <type name="S">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-09.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>77</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>50</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-10.cs">
-    <type name="S">
-      <method name="Void Test()" attrs="134">
-        <size>101</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>79</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S+T">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="S+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>87</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S+T">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-100.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>18</size>
-      </method>
-      <method name="Void &lt;f&gt;m__0()" attrs="145">
-        <size>27</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-101.cs">
-    <type name="Foo">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Hello[U](U)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test[T](T)" attrs="134">
-        <size>65</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0`1[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-102.cs">
-    <type name="Simple">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Simple Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Hello[U](U)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test[T](T)" attrs="134">
-        <size>72</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0`1[T]">
-      <method name="Simple &lt;&gt;m__0()" attrs="131">
-        <size>63</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Simple">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0`1+&lt;Test&gt;c__AnonStorey1[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-103.cs">
-    <type name="Foo`1[S]">
-      <method name="Void Invoke(S)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Hello[U](U)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test[T](T)" attrs="134">
-        <size>29</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void &lt;Test`1&gt;m__0[T](T)" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[S]">
-      <method name="System.IAsyncResult BeginInvoke(S, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-104.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>63</size>
-      </method>
-      <method name="Int32 GetItem()" attrs="150">
-        <size>59</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;GetItems&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>76</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] GetItems()" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Test+&lt;GetItems&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-105.cs">
-    <type name="Hello">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void Hello(Int32)" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>82</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo+&lt;Test&gt;c__Iterator0">
-      <method name="Foo System.Collections.Generic.IEnumerator&lt;Foo&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>113</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.Collections.Generic.IEnumerable`1[Foo] Test(Foo)" attrs="134">
-        <size>42</size>
-      </method>
-    </type>
-    <type name="Foo+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[Foo] System.Collections.Generic.IEnumerable&lt;Foo&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-    </type>
-    <type name="Hello">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-106.cs">
-    <type name="Foo`2[R,S]">
-      <method name="Void Invoke(R, S)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Hello[U,V](U, V)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test[A,B,C](A, B, C)" attrs="134">
-        <size>50</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0`3[A,B,C]">
-      <method name="Void &lt;&gt;m__0(A, Int32)" attrs="131">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`2[R,S]">
-      <method name="System.IAsyncResult BeginInvoke(R, S, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-107.cs">
-    <type name="MyDisposable">
-      <method name="Void Dispose()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Int32 get_ID()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>62</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>181</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>57</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;__Finally0()" attrs="129">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test(Int32)" attrs="150">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-108.cs">
-    <type name="Foo">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void Test[R](R, Int32)" attrs="150">
-        <size>91</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0`1[R]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey1`1[R]">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-109.cs">
-    <type name="Foo">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Foo op_Implicit(Test)" attrs="2198">
-        <size>38</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>82</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;op_Addition&gt;c__Iterator0">
-      <method name="Test System.Collections.Generic.IEnumerator&lt;Test&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>113</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;&gt;c__Iterator1">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>72</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] get_Foo()" attrs="2182">
-        <size>23</size>
-      </method>
-      <method name="Void set_Foo(System.Collections.Generic.IEnumerable`1[System.Int32])" attrs="2182">
-        <size>12</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[Test] op_Addition(Test, Test)" attrs="2198">
-        <size>37</size>
-      </method>
-    </type>
-    <type name="Test+&lt;op_Addition&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[Test] System.Collections.Generic.IEnumerable&lt;Test&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-    </type>
-    <type name="Test+&lt;&gt;c__Iterator1">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test+&lt;op_Addition&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Test+&lt;&gt;c__Iterator1">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void &lt;op_Implicit&gt;m__0()" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-11.cs">
-    <type name="D">
-      <method name="Void Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="Void Invoke(Int32 ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="F">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>132</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="System.IAsyncResult BeginInvoke(Int32 ByRef, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(Int32 ByRef, System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="F">
-      <method name="Void Invoke(Int32[])" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Int32[], System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__2(Int32[])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__3(Int32[])" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-110.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>110</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__Iterator0`1[T]">
-      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>125</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.Generic.IEnumerable`1[T] Test[T](T, T)" attrs="134">
-        <size>44</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__Iterator0`1[T]">
-      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-111.cs">
-    <type name="Foo">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test`1[R]">
-      <method name="Void World[S,T](S, T)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Hello[U,V](U, V)" attrs="134">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`1+&lt;Hello&gt;c__AnonStorey0`2[R,U,V]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-112.cs">
-    <type name="Foo">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="World`1[T]">
-      <method name="Void Hello[U](U)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test(T)" attrs="134">
-        <size>47</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="World`1+&lt;Test&gt;c__AnonStorey0[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-113.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+ModuleBinder`1[T]">
-      <method name="T Invoke(System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="ModuleBinder`1 CreateMethodUnscoped[TDelegate]()" attrs="134">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="X+ModuleBinder`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="T EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="TDelegate &lt;CreateMethodUnscoped`1&gt;m__0[TDelegate](System.Object)" attrs="145">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-114.cs">
-    <type name="T">
-      <method name="Void SomeMethod(System.Converter`2[System.Int32,System.Int32])" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void SomeCaller()" attrs="129">
-        <size>37</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 &lt;SomeCaller&gt;m__0(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-115.cs">
-    <type name="Foo`1[V]">
-      <method name="Void Invoke(V)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Bar`1[W]">
-      <method name="Void Invoke(W)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test`1[T]">
-      <method name="Void Hello[S](T, S)" attrs="150">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test`1+&lt;Hello&gt;c__AnonStorey1`1[T,S]">
-      <method name="Void &lt;&gt;m__0(Int64)" attrs="131">
-        <size>58</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[V]">
-      <method name="System.IAsyncResult BeginInvoke(V, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Bar`1[W]">
-      <method name="System.IAsyncResult BeginInvoke(W, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test`1+&lt;Hello&gt;c__AnonStorey1`1+&lt;Hello&gt;c__AnonStorey0[T,S]">
-      <method name="Void &lt;&gt;m__0(T)" attrs="131">
-        <size>66</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-116.cs">
-    <type name="TestFunc`1[T]">
-      <method name="Void Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(TestFunc`1)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="TestClass">
-      <method name="Void Func[T](TestFunc`1[T])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>47</size>
-      </method>
-    </type>
-    <type name="TestFunc`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestClass">
-      <method name="Void &lt;a&gt;m__0(Int32)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-117.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>76</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+Func`1[T]">
-      <method name="T Invoke(T)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Test[T,U](Func`1, U)" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="C+Func`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="T EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-118.cs">
-    <type name="C">
-      <method name="Void Test2[T]()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>101</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+Func`2[TR,TA]">
-      <method name="TR Invoke(TA)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="TR Test[TR,TA](Func`2)" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="TR Test[TR,TA,TB](Func`2, Func`2)" attrs="150">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="C+Func`2[TR,TA]">
-      <method name="System.IAsyncResult BeginInvoke(TA, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="TR EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="T &lt;Test2`1&gt;m__0[T](T)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>24</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__2(Int32)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__3(Int32)" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-119.cs">
-    <type name="Test">
-      <method name="Void TestNaturalSort()" attrs="145">
-        <size>32</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestNaturalSort&gt;c__AnonStorey0">
-      <method name="System.String &lt;&gt;m__1(System.Text.RegularExpressions.Match)" attrs="131">
-        <size>120</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.String &lt;&gt;m__0(System.Text.RegularExpressions.Match)" attrs="131">
-        <size>120</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 &lt;TestNaturalSort&gt;m__0(System.String, System.String)" attrs="145">
-        <size>114</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-12.cs">
-    <type name="predicate">
-      <method name="Boolean Invoke(System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>283</size>
-      </method>
-      <method name="System.Collections.ArrayList Find(predicate, System.Collections.ArrayList)" attrs="145">
-        <size>96</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="predicate">
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Boolean EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Boolean &lt;Main&gt;m__0(System.Object)" attrs="145">
-        <size>20</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-120.cs">
-    <type name="C`1[T]">
-      <method name="Void Foo[U](U)" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void Run()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1[T]">
-      <method name="Void &lt;Foo`1&gt;m__0[U]()" attrs="145">
-        <size>6</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-121.cs">
-    <type name="EmptyDelegate">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="BaseObject">
-      <method name="Int32 Main()" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Void Closure(EmptyDelegate)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="T MakeSomething[T]()" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BaseObject+&lt;Query&gt;c__AnonStorey0`1[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BaseObject">
-      <method name="System.Collections.Generic.List`1[T] Query[T](System.Nullable`1[System.Int32] ByRef)" attrs="145">
-        <size>61</size>
-      </method>
-    </type>
-    <type name="EmptyDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-122.cs">
-    <type name="D1">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="D2">
-      <method name="Int64 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Foo(D1)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo(D2)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 FooE(System.Linq.Expressions.Expression`1[D1])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 FooE(System.Linq.Expressions.Expression`1[D2])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>95</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D1">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="D2">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int64 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 &lt;Main&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-123.cs">
-    <type name="MemberAccessData">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void BaseM()" attrs="452">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Test(System.Action`1[E])" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Void InstanceTests()" attrs="129">
-        <size>19</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>247</size>
-      </method>
-      <method name="Void &lt;BaseM&gt;__BaseCallProxy0()" attrs="129">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;InstanceTests&gt;m__0()" attrs="129">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__1()" attrs="131">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MemberAccessData">
-      <method name="Void set_MyTypeProperty(System.Nullable`1[System.Int32])" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="System.Nullable`1[System.Int32] get_MyTypeProperty()" attrs="2182">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>49</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Test(D)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="C+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void &lt;Main&gt;m__1()" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__2()" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__3()" attrs="145">
-        <size>62</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__4()" attrs="145">
-        <size>54</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__5(E)" attrs="145">
-        <size>35</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-124.cs">
-    <type name="Disposable`1[T]">
-      <method name="Void Dispose()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CA`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Func`1[T[]] For[T](System.Collections.Generic.List`1[T])" attrs="145">
-        <size>46</size>
-      </method>
-      <method name="System.Func`1[T] Throw[T](T)" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="System.Func`1[System.Type] TypeOf[T](T)" attrs="145">
-        <size>46</size>
-      </method>
-      <method name="System.Func`1[T] Do[T](T)" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="System.Func`1[T] Lock[T](T)" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="System.Func`1[T] Catch[T](T)" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="System.Func`1[T] Finally[T](T)" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="System.Func`1[T] Using[T](T)" attrs="145">
-        <size>54</size>
-      </method>
-      <method name="System.Func`1[T] Switch[T](T)" attrs="145">
-        <size>46</size>
-      </method>
-      <method name="System.Func`1[System.Collections.Generic.List`1[T]] ForForeach[T](T[])" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="Void ArrayMutate[T](T[])" attrs="134">
-        <size>28</size>
-      </method>
-      <method name="System.Func`1[T[][]] ArrayMultiMutate[T](T[][])" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="System.Func`1[System.Int32] ArrayMultiMutate[T](T[,])" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="System.Func`1[T[]] NestedTypeMutate[T]()" attrs="145">
-        <size>42</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>683</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;For&gt;c__AnonStorey0`1[T]">
-      <method name="T[] &lt;&gt;m__0()" attrs="131">
-        <size>66</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Throw&gt;c__AnonStorey1`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TypeOf&gt;c__AnonStorey2`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Do&gt;c__AnonStorey3`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Lock&gt;c__AnonStorey4`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Catch&gt;c__AnonStorey5`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;ArrayMultiMutate&gt;c__AnonStoreyC`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Func`1[T] Catch_2[T](T)" attrs="145">
-        <size>34</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Catch_2&gt;c__AnonStorey6`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Finally&gt;c__AnonStorey7`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Using&gt;c__AnonStorey8`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Switch&gt;c__AnonStorey9`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;ForForeach&gt;c__AnonStoreyA`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;ArrayMutate&gt;c__AnonStoreyB`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;ArrayMultiMutate&gt;c__AnonStoreyD`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;NestedTypeMutate&gt;c__AnonStoreyE`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Throw&gt;c__AnonStorey1`1[T]">
-      <method name="T &lt;&gt;m__0()" attrs="131">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TypeOf&gt;c__AnonStorey2`1[T]">
-      <method name="System.Type &lt;&gt;m__0()" attrs="131">
-        <size>64</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Do&gt;c__AnonStorey3`1[T]">
-      <method name="T &lt;&gt;m__0()" attrs="131">
-        <size>38</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Lock&gt;c__AnonStorey4`1[T]">
-      <method name="T &lt;&gt;m__0()" attrs="131">
-        <size>69</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Catch&gt;c__AnonStorey5`1[T]">
-      <method name="T &lt;&gt;m__0()" attrs="131">
-        <size>41</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Catch_2&gt;c__AnonStorey6`1[T]">
-      <method name="T &lt;&gt;m__0()" attrs="131">
-        <size>42</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Finally&gt;c__AnonStorey7`1[T]">
-      <method name="T &lt;&gt;m__0()" attrs="131">
-        <size>62</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Using&gt;c__AnonStorey8`1[T]">
-      <method name="T &lt;&gt;m__0()" attrs="131">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Switch&gt;c__AnonStorey9`1[T]">
-      <method name="T &lt;&gt;m__0()" attrs="131">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="Test+&lt;ForForeach&gt;c__AnonStoreyA`1[T]">
-      <method name="System.Collections.Generic.List`1[T] &lt;&gt;m__0()" attrs="131">
-        <size>67</size>
-      </method>
-    </type>
-    <type name="Test+&lt;ArrayMutate&gt;c__AnonStoreyB`1[T]">
-      <method name="Void &lt;&gt;m__0(Int32)" attrs="131">
-        <size>39</size>
-      </method>
-    </type>
-    <type name="Test+&lt;ArrayMultiMutate&gt;c__AnonStoreyC`1[T]">
-      <method name="T[][] &lt;&gt;m__0()" attrs="131">
-        <size>58</size>
-      </method>
-    </type>
-    <type name="Test+&lt;ArrayMultiMutate&gt;c__AnonStoreyD`1[T]">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>35</size>
-      </method>
-    </type>
-    <type name="Test+&lt;NestedTypeMutate&gt;c__AnonStoreyE`1[T]">
-      <method name="T[] &lt;&gt;m__0()" attrs="131">
-        <size>45</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-125.cs">
-    <type name="HS`1[T]">
-      <method name="Void .ctor(IEqualityComparer`1)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Foo&gt;c__AnonStorey0`1[T]">
-      <method name="HS`1[T] &lt;&gt;m__0()" attrs="131">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Foo[T](System.Collections.Generic.IEqualityComparer`1[T])" attrs="145">
-        <size>28</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-126.cs">
-    <type name="MonoBugs.BrokenGenericCast">
-      <method name="System.Converter`2[TSource,TDest] GetUpcaster[TSource,TDest]()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="System.Converter`2[TSource,TDest] GetDowncaster[TSource,TDest]()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="TDest &lt;GetUpcaster`2&gt;m__0[TSource,TDest](TSource)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="TDest &lt;GetDowncaster`2&gt;m__1[TSource,TDest](TSource)" attrs="145">
-        <size>20</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-127.cs">
-    <type name="BaseDataObjectFactory">
-      <method name="T GetBusinessQueryObjectFromReader[T]()" attrs="148">
-        <size>16</size>
-      </method>
-      <method name="T[] GetQueryObjects[T](System.String)" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BusinessQueryObject">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MySqlDataObjectFactory">
-      <method name="T[] GetQueryObjects[T](System.String)" attrs="198">
-        <size>71</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MySqlDataObjectFactory+PerformActionWithReader">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MySqlDataObjectFactory+&lt;GetQueryObjects&gt;c__AnonStorey0`1[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MySqlDataObjectFactory">
-      <method name="Void ExecuteReader(Int32, PerformActionWithReader)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="MySqlDataObjectFactory+PerformActionWithReader">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-128.cs">
-    <type name="A">
-      <method name="Void Foo[T]()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Foo[T]()" attrs="198">
-        <size>15</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;Foo`1&gt;m__0[T]()" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+Del">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-129.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+Creator`1[T]">
-      <method name="T Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Func1&gt;c__AnonStorey0`1[T]">
-      <method name="T &lt;&gt;m__0()" attrs="131">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Boolean Func1[T](System.Collections.Generic.IList`1[T], Boolean, T ByRef)" attrs="145">
-        <size>40</size>
-      </method>
-      <method name="T Item[T](System.Collections.Generic.IList`1[T])" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="T GetSingleItem[T](System.Collections.Generic.IList`1[T])" attrs="150">
-        <size>18</size>
-      </method>
-      <method name="Boolean TryAction[T](Creator`1, T ByRef)" attrs="145">
-        <size>25</size>
-      </method>
-    </type>
-    <type name="Test+Creator`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="T EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-13.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>43</size>
-      </method>
-      <method name="D T()" attrs="129">
-        <size>23</size>
-      </method>
-      <method name="System.String CALL()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void &lt;T&gt;m__0()" attrs="129">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6273">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-130.cs">
-    <type name="Simple">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Simple Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Hello[U](U)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test[T](T)" attrs="134">
-        <size>49</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0`1[T]">
-      <method name="Simple &lt;&gt;m__0()" attrs="131">
-        <size>63</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Simple">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0`1+&lt;Test&gt;c__AnonStorey1[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-131.cs">
-    <type name="A">
-      <method name="Void Fail[X]()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="A+&lt;Fail&gt;c__AnonStorey0`1[X]">
-      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__1(System.Object, System.EventArgs)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-132.cs">
-    <type name="Program">
-      <method name="Void Assert(System.Action`1[System.Int32])" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Foo&gt;c__AnonStorey0`1[T]">
-      <method name="Void &lt;&gt;m__0(Int32)" attrs="131">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Foo[T](System.Collections.Generic.IList`1[T])" attrs="150">
-        <size>32</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-133.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="IEnumerableRocks+&lt;Implode&gt;c__AnonStorey0`2[TSource,TResult]">
-      <method name="Void &lt;&gt;m__0(System.Text.StringBuilder, TSource)" attrs="131">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="IEnumerableRocks">
-      <method name="System.String Implode[TSource,TResult](System.Collections.Generic.IEnumerable`1[TSource], System.String, System.Func`2[TSource,TResult])" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="System.String Implode[TSource](System.Collections.Generic.IEnumerable`1[TSource], System.String, System.Action`2[System.Text.StringBuilder,TSource])" attrs="150">
-        <size>146</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.String &lt;Main&gt;m__0(System.String)" attrs="145">
-        <size>24</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-134.cs">
-    <type name="MyClass">
-      <method name="Int32 get_Answer()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Answer(Int32)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>100</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-135.cs">
-    <type name="C`1[T]">
-      <method name="System.Func`1[T] XX()" attrs="145">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C2`1[T]">
-      <method name="System.Func`1[C`1[T]] XX()" attrs="145">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N1">
-      <method name="System.Func`1[T] XX[T]()" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>121</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1[T]">
-      <method name="T &lt;XX&gt;m__0()" attrs="145">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="C2`1[T]">
-      <method name="C`1[T] &lt;XX&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="N1">
-      <method name="T &lt;XX`1&gt;m__0[T]()" attrs="145">
-        <size>17</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-136.cs">
-    <type name="Handler`1[T]">
-      <method name="Void Invoke(System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="Void add_handler(Handler`1[T])" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void remove_handler(Handler`1[T])" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void add_Handler(Handler`1[T])" attrs="2182">
-        <size>51</size>
-      </method>
-      <method name="Void remove_Handler(Handler`1[T])" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void &lt;add_Handler&gt;m__0(System.Object)" attrs="129">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Handler`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-137.cs">
-    <type name="Wrap`1[U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Run[T](Wrap`1[T])" attrs="134">
-        <size>64</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Run&gt;c__AnonStorey0`1[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-138.cs">
-    <type name="Foo`1[T]">
-      <method name="Boolean Contains(T)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>50</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1+&lt;ContainsAll&gt;c__AnonStorey0`1[T,U]">
-      <method name="Boolean &lt;&gt;m__0()" attrs="131">
-        <size>210</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo`1[T]">
-      <method name="Boolean ContainsAll[U](System.Collections.Generic.IEnumerable`1[U])" attrs="134">
-        <size>48</size>
-      </method>
-    </type>
-    <type name="Foo`1+&lt;ContainsAll&gt;c__AnonStorey0`1+&lt;ContainsAll&gt;c__AnonStorey1[T,U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-139.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Void Test_1[T](T)" attrs="134">
-        <size>34</size>
-      </method>
-      <method name="T Test_3[T](System.Object)" attrs="134">
-        <size>59</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Test_1&gt;c__AnonStorey0`1[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Test_2&gt;c__AnonStorey1`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Test_3&gt;c__AnonStorey2`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Test_2[T](System.Nullable`1[T])" attrs="134">
-        <size>34</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Test_2&gt;c__AnonStorey1`1[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>86</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Test_3&gt;c__AnonStorey2`1[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="Test+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-14.cs">
-    <type name="X">
-      <method name="Void Method()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>66</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+T">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void add_Click(T)" attrs="2193">
-        <size>40</size>
-      </method>
-      <method name="Void remove_Click(T)" attrs="2193">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="X+T">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-140.cs">
-    <type name="RunTests">
-      <method name="Int32 Main()" attrs="150">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test1.Foo">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test1.X">
-      <method name="Void Test1[R](R, Int32)" attrs="150">
-        <size>153</size>
-      </method>
-      <method name="Void Run()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test1.X+&lt;Test1&gt;c__AnonStorey2`1[R]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test1.X+&lt;Test1&gt;c__AnonStorey0`1[R]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test1.X+&lt;Test1&gt;c__AnonStorey1`1[R]">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>79</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test1.Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-141.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="TResult Average[TElement,TAggregate,TResult](System.Collections.Generic.IEnumerable`1[TElement], System.Func`3[TAggregate,TElement,TAggregate], System.Func`3[TAggregate,TElement,TResult])" attrs="145">
-        <size>7</size>
-      </method>
-      <method name="System.Decimal Average[TSource](System.Collections.Generic.IEnumerable`1[TSource], System.Func`2[TSource,System.Decimal])" attrs="150">
-        <size>45</size>
-      </method>
-      <method name="System.Decimal &lt;Average`1&gt;m__0[TSource](System.Decimal, System.Decimal)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="System.Decimal &lt;Average`1&gt;m__1[TSource](System.Decimal, System.Decimal)" attrs="145">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-142.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void Test_3[T]()" attrs="134">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void &lt;Test_3`1&gt;m__0[T]()" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-143.cs">
-    <type name="TestC">
-      <method name="Int32 Main()" attrs="150">
-        <size>94</size>
-      </method>
-      <method name="System.Func`1[System.Type] Test[T]()" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Type &lt;Test`1&gt;m__0[T]()" attrs="145">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-144.cs">
-    <type name="UiaAtkBridgeTest.Test">
-      <method name="Void Invoke(System.EventHandler)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="UiaAtkBridgeTest.GailTester">
-      <method name="Void ThisCausesACrash[I]()" attrs="134">
-        <size>19</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;ThisCausesACrash`1&gt;m__0[I](System.Object, System.EventArgs)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-145.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void AnyMethod[T]()" attrs="134">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;AnyMethod&gt;c__AnonStorey0`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0(System.String)" attrs="131">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void &lt;AnyMethod`1&gt;m__0[T]()" attrs="145">
-        <size>32</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-146.cs">
-    <type name="TheClass">
-      <method name="Void Foo[T](T, System.Func`2[T,T])" attrs="145">
-        <size>42</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TheClass+&lt;Foo&gt;c__AnonStorey0`1[T]">
-      <method name="System.Func`1[T] &lt;&gt;m__0()" attrs="131">
-        <size>45</size>
-      </method>
-      <method name="T &lt;&gt;m__1()" attrs="131">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-147.cs">
-    <type name="C">
-      <method name="System.Func`2[T1,System.Func`2[T2,System.Action`1[T3]]] Curry[T1,T2,T3](System.Action`3[T1,T2,T3])" attrs="150">
-        <size>34</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Curry&gt;c__AnonStorey0`3[T1,T2,T3]">
-      <method name="System.Func`2[T2,System.Action`1[T3]] &lt;&gt;m__0(T1)" attrs="131">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Curry&gt;c__AnonStorey0`3+&lt;Curry&gt;c__AnonStorey1[T1,T2,T3]">
-      <method name="System.Action`1[T3] &lt;&gt;m__0(T2)" attrs="131">
-        <size>52</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Curry&gt;c__AnonStorey0`3+&lt;Curry&gt;c__AnonStorey1+&lt;Curry&gt;c__AnonStorey2[T1,T2,T3]">
-      <method name="Void &lt;&gt;m__0(T3)" attrs="131">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void &lt;Main&gt;m__0(Int32, Int32, Int32)" attrs="145">
-        <size>24</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-148.cs">
-    <type name="Func`1[TResult]">
-      <method name="TResult Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="GeneratorNext`1[T]">
-      <method name="Void Invoke(T ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="GeneratorEnumerable`1[T]">
-      <method name="Void .ctor(Func`1)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="GeneratorExpression">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="GeneratorInvoker">
-      <method name="Void Invoke[T](T ByRef)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(GeneratorExpression)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Interpreter">
-      <method name="System.Object InterpretGenerator[T](GeneratorExpression)" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="Interpreter+&lt;InterpretGenerator&gt;c__AnonStorey0`1[T]">
-      <method name="GeneratorNext`1[T] &lt;&gt;m__0()" attrs="131">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Func`1[TResult]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="TResult EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="GeneratorNext`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(T ByRef, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(T ByRef, System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-149.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void DetermineLinkedCells()" attrs="129">
-        <size>79</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;DetermineLinkedCells&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;DetermineLinkedCells&gt;c__AnonStorey1">
-      <method name="Boolean &lt;&gt;m__0(System.Object)" attrs="131">
-        <size>26</size>
-      </method>
-      <method name="Boolean &lt;&gt;m__1(System.Object)" attrs="131">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-15.cs">
-    <type name="Foo">
-      <method name="Void Main()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo+foo_fn">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo+Inner">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Foo+foo_fn">
-      <method name="Inner Invoke(System.String)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Inner EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Inner &lt;Main&gt;m__0(System.String)" attrs="145">
-        <size>21</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-150.cs">
-    <type name="M">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="SomeGenericClass`1[SomeType]">
-      <method name="Void FailsToCompile()" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void &lt;FailsToCompile&gt;m__0()" attrs="129">
-        <size>45</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="SomeGenericClass`1+SomeHandlerType[SomeType]">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="SomeGenericClass`1+&lt;FailsToCompile&gt;c__AnonStorey0[SomeType]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="SomeGenericClass`1[SomeType]">
-      <method name="Void Invoke(SomeHandlerType)" attrs="129">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="SomeGenericClass`1+SomeHandlerType[SomeType]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-151.cs">
-    <type name="Bla">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Driver">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void P(Int32, Int32)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Repro()" attrs="129">
-        <size>101</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Driver+&lt;Repro&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bla">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-152.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+B[T]">
-      <method name="Void W[R](System.String, System.Func`2[T,R])" attrs="132">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+B+&lt;W&gt;c__AnonStorey0`1[T,R]">
-      <method name="Void &lt;&gt;m__0(T[])" attrs="131">
-        <size>56</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-153.cs">
-    <type name="TestComp.Program">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestComp.Program+MyClass">
-      <method name="Void UseATemplate()" attrs="134">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestComp.Program+MyClass+MyDelegate">
-      <method name="Void Invoke(System.Collections.Generic.List`1[System.Int32] ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestComp.Program+MyClass">
-      <method name="Void MyTemplate(MyDelegate)" attrs="129">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="TestComp.Program+MyClass+MyDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.Collections.Generic.List`1[System.Int32] ByRef, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.Collections.Generic.List`1[System.Int32] ByRef, System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestComp.Program+MyClass">
-      <method name="Void &lt;UseATemplate&gt;m__0(System.Collections.Generic.List`1[System.Int32] ByRef)" attrs="145">
-        <size>17</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-154.cs">
-    <type name="Class">
-      <method name="System.String get_Property()" attrs="2177">
-        <size>14</size>
-      </method>
-      <method name="System.String Method()" attrs="129">
-        <size>52</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>52</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Class+&lt;Method&gt;c__AnonStorey0">
-      <method name="System.String &lt;&gt;m__0()" attrs="131">
-        <size>64</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Class+&lt;Method&gt;c__AnonStorey0+&lt;Method&gt;c__AnonStorey2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Class+&lt;Method&gt;c__AnonStorey0+&lt;Method&gt;c__AnonStorey2+&lt;Method&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Class+&lt;Method&gt;c__AnonStorey0+&lt;Method&gt;c__AnonStorey2">
-      <method name="System.String &lt;&gt;m__0(System.String)" attrs="131">
-        <size>60</size>
-      </method>
-    </type>
-    <type name="Class+&lt;Method&gt;c__AnonStorey0+&lt;Method&gt;c__AnonStorey2+&lt;Method&gt;c__AnonStorey1">
-      <method name="System.String &lt;&gt;m__0()" attrs="131">
-        <size>46</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-155.cs">
-    <type name="Thing`1[TFirst]">
-      <method name="Thing`1[TFirst] Create[TSecond](System.Func`2[TFirst,TSecond])" attrs="150">
-        <size>39</size>
-      </method>
-      <method name="Void SomeAction()" attrs="134">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor(Action`1)" attrs="6273">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>43</size>
-      </method>
-    </type>
-    <type name="Thing`1+&lt;Create&gt;c__AnonStorey0`1[TFirst,TSecond]">
-      <method name="Void &lt;&gt;m__0(TFirst)" attrs="131">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="System.Object &lt;Main&gt;m__0(System.Object)" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-156.cs">
-    <type name="G`1[T]">
-      <method name="T def()" attrs="134">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void foo(System.Object)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void cf[T]()" attrs="145">
-        <size>36</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+DF">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+&lt;cf&gt;c__AnonStorey0`1[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+DF">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-157.cs">
-    <type name="Foo">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X`1[T]">
-      <method name="Void IFoo&lt;T&gt;.Test()" attrs="481">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X`1[T]">
-      <method name="Void &lt;Test&gt;m__0()" attrs="145">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-158.cs">
-    <type name="Test">
-      <method name="X Foo[X](Boolean)" attrs="134">
-        <size>54</size>
-      </method>
-      <method name="X FooNested[X](Boolean)" attrs="134">
-        <size>75</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Foo&gt;c__AnonStorey0`1[X]">
-      <method name="X &lt;&gt;m__0()" attrs="131">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;FooNested&gt;c__AnonStorey1`1[X]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Call`1[X] &lt;&gt;m__0()" attrs="131">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-159.cs">
-    <type name="TestGenericsSubtypeMatching.Sender`1[T]">
-      <method name="Void DoSend[TMessage](System.Action`1[T])" attrs="134">
-        <size>86</size>
-      </method>
-      <method name="Void Send(System.Action`1[T])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void ActionOnObject(System.Object)" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestGenericsSubtypeMatching.C">
-      <method name="Void Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestGenericsSubtypeMatching.Sender`1+&lt;DoSend&gt;c__AnonStorey0`1[T,TMessage]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestGenericsSubtypeMatching.Sender`1+&lt;DoSend&gt;c__AnonStorey1`1[T,TMessage]">
-      <method name="Void &lt;&gt;m__0(T)" attrs="131">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestGenericsSubtypeMatching.C">
-      <method name="Void &lt;Main&gt;m__0(System.String)" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-16.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>43</size>
-      </method>
-      <method name="D T()" attrs="129">
-        <size>23</size>
-      </method>
-      <method name="Void &lt;T&gt;m__0()" attrs="129">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6273">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-160.cs">
-    <type name="TestGenericsSubtypeMatching.Sender`1[T]">
-      <method name="Void DoSend[TMessage](System.Action`1[T])" attrs="134">
-        <size>86</size>
-      </method>
-      <method name="Void Send(System.Action`1[T])" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void ActionOnObject(System.Object)" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestGenericsSubtypeMatching.C">
-      <method name="Int32 Main()" attrs="150">
-        <size>49</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestGenericsSubtypeMatching.Sender`1+&lt;DoSend&gt;c__AnonStorey0`1[T,TMessage]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestGenericsSubtypeMatching.Sender`1+&lt;DoSend&gt;c__AnonStorey1`1[T,TMessage]">
-      <method name="Void &lt;&gt;m__0(T)" attrs="131">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestGenericsSubtypeMatching.C">
-      <method name="Void &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-161.cs">
-    <type name="TestCase">
-      <method name="Void Main()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestCase+&lt;Test&gt;c__AnonStorey0`1[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>47</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestCase">
-      <method name="Void Test[T](System.Collections.Generic.IList`1[System.Collections.Generic.IList`1[T]])" attrs="150">
-        <size>34</size>
-      </method>
-    </type>
-    <type name="TestCase+&lt;Test&gt;c__AnonStorey0`1[T]">
-      <method name="Int32 &lt;&gt;m__1(System.Collections.Generic.IList`1[System.Collections.Generic.IList`1[T]])" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-162.cs">
-    <type name="D">
-      <method name="Void Invoke(System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Void Assert(System.Object)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Execute(System.Action)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="D GetD[T](System.Object)" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T+&lt;GetD&gt;c__AnonStorey2`1[T]">
-      <method name="Void &lt;&gt;m__0(System.Object)" attrs="131">
-        <size>75</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="T+&lt;GetD&gt;c__AnonStorey2`1+&lt;GetD&gt;c__AnonStorey0[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T+&lt;GetD&gt;c__AnonStorey2`1+&lt;GetD&gt;c__AnonStorey1[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>52</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-163.cs">
-    <type name="A">
-      <method name="Void Foo[T](T, System.String[])" attrs="454">
-        <size>2</size>
-      </method>
-      <method name="Void Foo2[T]()" attrs="452">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Test(Int32)" attrs="134">
-        <size>41</size>
-      </method>
-      <method name="Void Test2[T](T)" attrs="134">
-        <size>35</size>
-      </method>
-      <method name="Void Test3()" attrs="131">
-        <size>60</size>
-      </method>
-      <method name="Void &lt;Foo&gt;__BaseCallProxy0[T](T, System.String[])" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="Void &lt;Foo2&gt;__BaseCallProxy1[T]()" attrs="129">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+&lt;Test2&gt;c__AnonStorey1`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+&lt;Test3&gt;c__AnonStorey2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="T Foo4[T]()" attrs="454">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="T Test4[T]()" attrs="134">
-        <size>28</size>
-      </method>
-      <method name="T &lt;Foo4&gt;__BaseCallProxy2[T]()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="T &lt;Test4`1&gt;m__0[T]()" attrs="129">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="B+&lt;Test2&gt;c__AnonStorey1`1[T]">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="B+&lt;Test3&gt;c__AnonStorey2">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>20</size>
-      </method>
-      <method name="Void &lt;&gt;m__1()" attrs="131">
-        <size>20</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-164.cs">
-    <type name="C`1[T]">
-      <method name="Void Foo[U](U)" attrs="150">
-        <size>86</size>
-      </method>
-      <method name="Void Run(T)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="E">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1+&lt;Foo&gt;c__AnonStorey0`1[T,U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C`1+&lt;Foo&gt;c__AnonStorey1`1[T,U]">
-      <method name="U &lt;&gt;m__0()" attrs="131">
-        <size>19</size>
-      </method>
-      <method name="Void &lt;&gt;m__1()" attrs="131">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-165.cs">
-    <type name="C">
-      <method name="Void Foo[T]()" attrs="129">
-        <size>28</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__AnonStorey0`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="T &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="T &lt;Foo`1&gt;m__0[T](T)" attrs="145">
-        <size>77</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-166.cs">
-    <type name="A">
-      <method name="Void Test[T,U]()" attrs="129">
-        <size>21</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+&lt;Test&gt;c__AnonStorey0`2[T,U]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void &lt;Test`2&gt;m__0[T,U]()" attrs="145">
-        <size>39</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-167.cs">
-    <type name="Foo">
-      <method name="Void Bar(System.Threading.ThreadStart)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Baz(Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>89</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-168.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>113</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+RunDelegate">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Run(RunDelegate)" attrs="134">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Test+RunDelegate">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>51</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>46</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__2(Int32)" attrs="145">
-        <size>42</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-169.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>521</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Main&gt;c__AnonStorey0">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Char &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-17.cs">
-    <type name="ClickEvent">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Button">
-      <method name="Void add_Clicked(ClickEvent)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Clicked(ClickEvent)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void DoClick()" attrs="134">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>74</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ClickEvent">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-170.cs">
-    <type name="MyClass">
-      <method name="Int32 Test(Int32)" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Void Run()" attrs="134">
-        <size>42</size>
-      </method>
-      <method name="Void Run2()" attrs="134">
-        <size>42</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void &lt;Run&gt;m__0(Int32)" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="Void &lt;Run&gt;m__1(Int32)" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="Void &lt;Run2&gt;m__2(Int32)" attrs="129">
-        <size>40</size>
-      </method>
-      <method name="Void &lt;Run2&gt;m__3(Int32)" attrs="129">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyClass+&lt;Run&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyClass+&lt;Run&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyClass+&lt;Run2&gt;c__AnonStorey2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyClass+&lt;Run2&gt;c__AnonStorey3">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyClass+&lt;Run&gt;c__AnonStorey0">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="MyClass+&lt;Run&gt;c__AnonStorey1">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="MyClass+&lt;Run2&gt;c__AnonStorey2">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>25</size>
-      </method>
-    </type>
-    <type name="MyClass+&lt;Run2&gt;c__AnonStorey3">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>25</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-171.cs">
-    <type name="TestAnonSwitch.MyClass">
-      <method name="Void add_FirstEvent(System.EventHandler`1[System.EventArgs])" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_FirstEvent(System.EventHandler`1[System.EventArgs])" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void add_SecondEvent(System.EventHandler`1[System.EventArgs])" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_SecondEvent(System.EventHandler`1[System.EventArgs])" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void Trigger()" attrs="134">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestAnonSwitch.Tester">
-      <method name="Void Test()" attrs="134">
-        <size>157</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestAnonSwitch.MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestAnonSwitch.Tester+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
-        <size>23</size>
-      </method>
-      <method name="Void &lt;&gt;m__1(System.Object, System.EventArgs)" attrs="131">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-172.cs">
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>133</size>
-      </method>
-      <method name="Void GenerateCodeCall[T1](System.Reflection.Emit.ILGenerator, System.Action`1[T1])" attrs="145">
-        <size>19</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-173.cs">
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void SomeMethod(System.Action)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>36</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-174.cs">
-    <type name="F">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void Main()" attrs="145">
-        <size>38</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-175.cs">
-    <type name="F">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void Main()" attrs="145">
-        <size>38</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-176.cs">
-    <type name="TestDelegateFinallyOut.Test">
-      <method name="Void CallDelegate(System.Action)" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Boolean TestMethod(Int32 ByRef)" attrs="145">
-        <size>75</size>
-      </method>
-      <method name="Int32 Main()" attrs="145">
-        <size>32</size>
-      </method>
-      <method name="Void &lt;TestMethod&gt;m__0()" attrs="145">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-177.cs">
-    <type name="X">
-      <method name="Void Execute[TArg](TArg)" attrs="150">
-        <size>21</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void &lt;Execute`1&gt;m__0[TArg]()" attrs="145">
-        <size>58</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Execute&gt;c__AnonStorey0`1[TArg]">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Object] &lt;&gt;m__0(System.String)" attrs="131">
-        <size>26</size>
-      </method>
-      <method name="System.Object &lt;&gt;m__1(Char)" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-18.cs">
-    <type name="A">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="DelegateTest">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>87</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="DelegateTest+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-19.cs">
-    <type name="S">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>248</size>
-      </method>
-      <method name="Boolean t(Int32, Int32)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>94</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-20.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="D MainHost()" attrs="145">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;MainHost&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;MainHost&gt;c__AnonStorey0+&lt;MainHost&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>53</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-21.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>81</size>
-      </method>
-      <method name="Void M()" attrs="129">
-        <size>45</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;M&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>49</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;M&gt;c__AnonStorey0+&lt;M&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>82</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-22.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="D T()" attrs="145">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;T&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;T&gt;c__AnonStorey0+&lt;T&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>53</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-23.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>81</size>
-      </method>
-      <method name="Void M()" attrs="129">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;M&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;M&gt;c__AnonStorey0+&lt;M&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>25</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-24.cs">
-    <type name="D">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>30</size>
-      </method>
-      <method name="D T(Int32)" attrs="145">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;T&gt;c__AnonStorey0">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-25.cs">
-    <type name="D">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>56</size>
-      </method>
-      <method name="D T(Int32)" attrs="145">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;T&gt;c__AnonStorey0">
-      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="131">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-26.cs">
-    <type name="TestGotoLabels.GotoLabelsTest">
-      <method name="Int32 Main()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestGotoLabels.GotoLabelsTest+MyDelegate">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestGotoLabels.GotoLabelsTest">
-      <method name="Void TestMethod2(MyDelegate)" attrs="150">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="TestGotoLabels.GotoLabelsTest+MyDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestGotoLabels.GotoLabelsTest">
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-27.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>151</size>
-      </method>
-      <method name="Void M(Int32)" attrs="129">
-        <size>60</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;M&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>39</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;M&gt;c__AnonStorey0+&lt;M&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>51</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-28.cs">
-    <type name="Delegable">
-      <method name="Void add_MyDelegate(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_MyDelegate(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="DelegateTest">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>59</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="DelegateTest+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-29.cs">
-    <type name="X">
-      <method name="System.String Hello()" attrs="134">
-        <size>28</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="System.String &lt;Hello&gt;m__0()" attrs="129">
-        <size>217</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>108</size>
-      </method>
-    </type>
-    <type name="X+Foo">
-      <method name="System.String Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+Bar">
-      <method name="Void Invoke(System.String)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+Bar">
-      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void &lt;Hello&gt;m__1(System.String)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Void &lt;Hello&gt;m__2(System.String)" attrs="145">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-30.cs">
-    <type name="X">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>39</size>
-      </method>
-    </type>
-    <type name="Program+D">
-      <method name="Void Invoke(X)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0(X)" attrs="131">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void add_E(D)" attrs="2193">
-        <size>40</size>
-      </method>
-      <method name="Void remove_E(D)" attrs="2193">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="Program+D">
-      <method name="System.IAsyncResult BeginInvoke(X, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-31.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+test">
-      <method name="System.Object Invoke(System.Reflection.MethodInfo)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void DoCall(test)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="X+test">
-      <method name="System.IAsyncResult BeginInvoke(System.Reflection.MethodInfo, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.Object EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Object &lt;Main&gt;m__0(System.Reflection.MethodInfo)" attrs="145">
-        <size>26</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-32.cs">
-    <type name="StringSender">
-      <method name="Void Invoke(System.String)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="VoidDelegate">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Void SimpleCallback(MainClass, System.String)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>26</size>
-      </method>
-      <method name="Void &lt;&gt;m__1(System.String)" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="StringSender">
-      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="VoidDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-33.cs">
-    <type name="Do">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Void doit(Int32)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>171</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="T+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Do">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-34.cs">
-    <type name="Delegates.Space">
-      <method name="Void Leak(Boolean, Int32)" attrs="134">
-        <size>97</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Delegates.Space+DoCopy">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Delegates.Program">
-      <method name="Void SpaceLeak()" attrs="145">
-        <size>38</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Delegates.Space+&lt;Leak&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Delegates.Space+&lt;Leak&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Delegates.Space+&lt;Leak&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="Delegates.Space+DoCopy">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-35.cs">
-    <type name="ExceptionWithAnonMethod">
-      <method name="Int32 Main()" attrs="150">
-        <size>108</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ExceptionWithAnonMethod+EmptyCallback">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="ExceptionWithAnonMethod+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ExceptionWithAnonMethod">
-      <method name="Void AnonHandler(EmptyCallback)" attrs="150">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="ExceptionWithAnonMethod+EmptyCallback">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-36.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor(TestMethod)" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(TestMethod2)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="TestMethod">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestMethod2">
-      <method name="Void Invoke(System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestMethod">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestMethod2">
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-37.cs">
-    <type name="DelegateInit">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="DelegateInit+FooDelegate">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="DelegateInit">
-      <method name="Void &lt;_print&gt;m__0()" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-38.cs">
-    <type name="Simple">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Simple Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Hello(Int64, Int64)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Int32)" attrs="134">
-        <size>68</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0">
-      <method name="Simple &lt;&gt;m__0()" attrs="131">
-        <size>72</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>35</size>
-      </method>
-    </type>
-    <type name="Simple">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-39.cs">
-    <type name="Simple">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Simple Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Hello(Int64)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Int32)" attrs="134">
-        <size>66</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0">
-      <method name="Simple &lt;&gt;m__0()" attrs="131">
-        <size>38</size>
-      </method>
-      <method name="Void &lt;&gt;m__1()" attrs="131">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Simple">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-40.cs">
-    <type name="Simple">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Simple Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Hello(Int64)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Int32)" attrs="134">
-        <size>66</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0">
-      <method name="Simple &lt;&gt;m__0()" attrs="131">
-        <size>38</size>
-      </method>
-      <method name="Void &lt;&gt;m__1()" attrs="131">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Simple">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-41.cs">
-    <type name="Simple">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Simple Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Hello(Int64)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Int32)" attrs="134">
-        <size>66</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0">
-      <method name="Simple &lt;&gt;m__0()" attrs="131">
-        <size>63</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>36</size>
-      </method>
-    </type>
-    <type name="Simple">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-42.cs">
-    <type name="Simple">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Simple Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Hello(Int64)" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Int32)" attrs="150">
-        <size>52</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Simple">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Simple &lt;Test&gt;m__0()" attrs="145">
-        <size>45</size>
-      </method>
-      <method name="Void &lt;Test&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-43.cs">
-    <type name="Simple">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Simple Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Hello(Int64, Int64)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Int32)" attrs="134">
-        <size>55</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0">
-      <method name="Simple &lt;&gt;m__0()" attrs="131">
-        <size>72</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>35</size>
-      </method>
-    </type>
-    <type name="Simple">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-44.cs">
-    <type name="Simple">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Simple Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Hello(Int64)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Int32)" attrs="134">
-        <size>69</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0">
-      <method name="Simple &lt;&gt;m__0()" attrs="131">
-        <size>59</size>
-      </method>
-      <method name="Simple &lt;&gt;m__1()" attrs="131">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__2()" attrs="131">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="Simple">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-45.cs">
-    <type name="TestFunc">
-      <method name="Void Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void .ctor(TestFunc)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="TestClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>29</size>
-      </method>
-    </type>
-    <type name="TestFunc">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestClass">
-      <method name="Void &lt;a&gt;m__0(Int32)" attrs="145">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-46.cs">
-    <type name="Foo">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="World">
-      <method name="Void Hello(Int64)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Int32)" attrs="134">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="World+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-47.cs">
-    <type name="Foo">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="World">
-      <method name="Void Hello(Int64)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Int32)" attrs="134">
-        <size>142</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="World+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="World+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="World+&lt;Test&gt;c__AnonStorey2">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-48.cs">
-    <type name="Foo">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="World">
-      <method name="Void Hello(Int64)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Int32)" attrs="134">
-        <size>190</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="World+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="World+&lt;Test&gt;c__AnonStorey2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="World+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>79</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-49.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>207</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>83</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="134">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-50.cs">
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>252</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Foo&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>135</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.IEnumerable Foo(Int32)" attrs="134">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Foo&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-51.cs">
-    <type name="FooDelegate">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="FooDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void &lt;Print&gt;m__0()" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-52.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+A">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>242</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0+&lt;GetIt&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerator GetIt(Int32[])" attrs="145">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="X+A">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-53.cs">
-    <type name="Foo">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>40</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>34</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-54.cs">
-    <type name="Hello">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void Test(Foo)" attrs="134">
-        <size>46</size>
-      </method>
-      <method name="Void Hello(Int32)" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>30</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Hello">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-55.cs">
-    <type name="Foo">
-      <method name="Void Private()" attrs="129">
-        <size>12</size>
-      </method>
-      <method name="Void Test()" attrs="134">
-        <size>20</size>
-      </method>
-      <method name="Void &lt;Test&gt;m__0()" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo+Hello">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void Test(Hello)" attrs="132">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Foo+Hello">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-56.cs">
-    <type name="QueueHandler">
-      <method name="Void Invoke(Observable)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Observable">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="QueueHandler">
-      <method name="System.IAsyncResult BeginInvoke(Observable, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Observable">
-      <method name="Void &lt;Main&gt;m__0(Observable)" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-57.cs">
-    <type name="X">
-      <method name="Int32 Test()" attrs="150">
-        <size>293</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+TestDelegate">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>90</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+TestDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-58.cs">
-    <type name="X">
-      <method name="Int32 Test(Int32)" attrs="150">
-        <size>390</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+TestDelegate">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>163</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+TestDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-59.cs">
-    <type name="X">
-      <method name="Int32 Test(Int32)" attrs="150">
-        <size>574</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+TestDelegate">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey3">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey2">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>225</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+TestDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-60.cs">
-    <type name="X">
-      <method name="Int32 Test(Int32)" attrs="150">
-        <size>632</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>54</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+TestDelegate">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey3">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey2">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>348</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey2+&lt;Test&gt;c__AnonStorey4">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>125</size>
-      </method>
-    </type>
-    <type name="X+TestDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-61.cs">
-    <type name="X">
-      <method name="Int32 Test()" attrs="134">
-        <size>374</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+TestDelegate">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>173</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+TestDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-62.cs">
-    <type name="FooHandler">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Void .ctor(Z)" attrs="6278">
-        <size>57</size>
-      </method>
-    </type>
-    <type name="Z">
-      <method name="Void Hello()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y+&lt;Y&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FooHandler">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-63.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+A">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>281</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0+&lt;GetIt&gt;c__AnonStorey2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0+&lt;GetIt&gt;c__AnonStorey1">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>57</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerator GetIt(Int32[])" attrs="145">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="X+A">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-64.cs">
-    <type name="Source">
-      <method name="Void add_ChildSourceAdded(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_ChildSourceAdded(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void add_ChildSourceRemoved(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_ChildSourceRemoved(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Source FindSource(Source)" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Void AddSource(Source, Int32, System.Object)" attrs="129">
-        <size>106</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Source+&lt;AddSource&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Source">
-      <method name="Void &lt;AddSource&gt;m__0(System.Object, System.EventArgs)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-65.cs">
-    <type name="BaseClass">
-      <method name="Void .ctor(SomeDelegate)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="BaseClass+SomeDelegate">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="TestClass">
-      <method name="Int32 Main(System.String[])" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>33</size>
-      </method>
-    </type>
-    <type name="TestClass+&lt;TestClass&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BaseClass+SomeDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-66.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+TestEventHandler">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test+&lt;&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void add_testEvent(TestEventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_testEvent(TestEventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void add_TestEvent(TestEventHandler)" attrs="2182">
-        <size>34</size>
-      </method>
-      <method name="Void remove_TestEvent(TestEventHandler)" attrs="2182">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Test+TestEventHandler">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-67.cs">
-    <type name="ClassOne">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(ReturnStringDelegate)" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>33</size>
-      </method>
-    </type>
-    <type name="ClassOne+ReturnStringDelegate">
-      <method name="System.String Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="ClassOne+&lt;ClassOne&gt;c__AnonStorey0">
-      <method name="System.String &lt;&gt;m__0()" attrs="131">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ClassOne+ReturnStringDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-68.cs">
-    <type name="D1">
-      <method name="Void Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="D2">
-      <method name="Void Invoke(System.String ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void T(D1)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void T(D2)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>70</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D1">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="D2">
-      <method name="System.IAsyncResult BeginInvoke(System.String ByRef, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.String ByRef, System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__1(System.String ByRef)" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-69.cs">
-    <type name="TargetAccessDelegate">
-      <method name="System.Object Invoke(System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="SingleSteppingEngine">
-      <method name="System.Object SendCommand(TargetAccessDelegate)" attrs="129">
-        <size>16</size>
-      </method>
-      <method name="Void Detach()" attrs="134">
-        <size>21</size>
-      </method>
-      <method name="System.Object &lt;Detach&gt;m__0(System.Object)" attrs="129">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TargetAccessDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.Object EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-70.cs">
-    <type name="UnsafeClass">
-      <method name="Int32* GetUnsafeValue()" attrs="134">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void UnsafeTests()" attrs="145">
-        <size>70</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>99</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+&lt;UnsafeTests&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__1()" attrs="131">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>49</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Test(D)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="C+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void &lt;UnsafeTests&gt;m__0()" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__1()" attrs="145">
-        <size>17</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-71.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+FdCb">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Program+&lt;OnReadHandle&gt;c__AnonStorey0">
-      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="131">
-        <size>55</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Errno ProcessFile(System.String, FdCb)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Errno OnReadHandle(System.String, Byte[], Int64)" attrs="132">
-        <size>42</size>
-      </method>
-    </type>
-    <type name="Program+FdCb">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-72.cs">
-    <type name="Test">
-      <method name="Boolean TryGetValue(System.Object, System.Object ByRef)" attrs="134">
-        <size>13</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Foo()" attrs="129">
-        <size>20</size>
-      </method>
-      <method name="Boolean &lt;Foo&gt;m__0(System.Object, System.Object ByRef)" attrs="129">
-        <size>46</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+UnaryOperator">
-      <method name="Boolean Invoke(System.Object, System.Object ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void AddOperator(UnaryOperator)" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Test+UnaryOperator">
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.Object ByRef, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Boolean EndInvoke(System.Object ByRef, System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-73.cs">
-    <type name="D">
-      <method name="Void Invoke(System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Void Main()" attrs="150">
-        <size>32</size>
-      </method>
-      <method name="Void Test_1()" attrs="145">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="T">
-      <method name="Void &lt;Main&gt;m__0(System.Object)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Void &lt;Test_1&gt;m__1(System.Object)" attrs="145">
-        <size>32</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-74.cs">
-    <type name="Foo">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>36</size>
-      </method>
-    </type>
-    <type name="Foo+SimpleDelegate">
-      <method name="System.String[,] Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="Void Baz(SimpleDelegate)" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Foo+SimpleDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.String[,] EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.String[,] &lt;Main&gt;m__0()" attrs="145">
-        <size>42</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-75.cs">
-    <type name="D">
-      <method name="Boolean Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Data">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Foo(Int32, D)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void TestMe()" attrs="129">
-        <size>152</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestMe&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestMe&gt;c__AnonStorey0">
-      <method name="Boolean &lt;&gt;m__1()" attrs="131">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Boolean &lt;&gt;m__0()" attrs="131">
-        <size>67</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Boolean EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Boolean &lt;TestMe&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-76.cs">
-    <type name="FactoryDelegate">
-      <method name="System.Object Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void set_Item(System.String, FactoryDelegate)" attrs="2177">
-        <size>9</size>
-      </method>
-      <method name="FactoryDelegate get_Item(System.String)" attrs="2177">
-        <size>15</size>
-      </method>
-      <method name="Void X()" attrs="134">
-        <size>25</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>83</size>
-      </method>
-      <method name="System.Object &lt;X&gt;m__0()" attrs="129">
-        <size>38</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="FactoryDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.Object EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-77.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="y">
-      <method name="Boolean get_Item(Int32)" attrs="2182">
-        <size>36</size>
-      </method>
-      <method name="Void set_Item(Int32, Boolean)" attrs="2182">
-        <size>11</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="y+&lt;&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-78.cs">
-    <type name="D1">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="D2">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="DelegateTest">
-      <method name="Void Foo(D1)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Void Foo(D2)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>63</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="D1">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="D2">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="DelegateTest">
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-79.cs">
-    <type name="Test">
-      <method name="Void Foo()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;add_Changed&gt;m__0()" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void add_E(D)" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void remove_E(D)" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void add_Changed(D)" attrs="2177">
-        <size>31</size>
-      </method>
-      <method name="Void remove_Changed(D)" attrs="2177">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="Test+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-80.cs">
-    <type name="MonoBug.MyTest">
-      <method name="Int32 Main()" attrs="150">
-        <size>190</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MonoBug.MyTest+EventHandlers">
-      <method name="System.EventHandler get_DoNothingEventHandler()" attrs="2198">
-        <size>38</size>
-      </method>
-      <method name="System.EventHandler get_DoSomethingEventHandler()" attrs="2182">
-        <size>21</size>
-      </method>
-      <method name="System.EventHandler get_Handler()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Handler(System.EventHandler)" attrs="2182">
-        <size>9</size>
-      </method>
-      <method name="Void &lt;get_DoSomethingEventHandler&gt;m__1(System.Object, System.EventArgs)" attrs="129">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-      <method name="Void &lt;get_DoNothingEventHandler&gt;m__0(System.Object, System.EventArgs)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-81.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Int32 Test()" attrs="129">
-        <size>35</size>
-      </method>
-      <method name="Int32 &lt;Test&gt;m__0()" attrs="129">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+Cmd">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+Cmd2">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey1+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>45</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey1+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Foo2(Cmd2)" attrs="129">
-        <size>15</size>
-      </method>
-      <method name="Void Foo(Cmd)" attrs="129">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C+Cmd">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+Cmd2">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-82.cs">
-    <type name="StringSender">
-      <method name="Void Invoke(System.String)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="VoidDelegate">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>88</size>
-      </method>
-      <method name="Void Test2(Int32)" attrs="129">
-        <size>32</size>
-      </method>
-      <method name="Void Test3(Int32)" attrs="129">
-        <size>58</size>
-      </method>
-      <method name="Void Test4()" attrs="129">
-        <size>32</size>
-      </method>
-      <method name="Void Test5(Int32)" attrs="129">
-        <size>28</size>
-      </method>
-      <method name="Void SimpleCallback(MainClass, System.String)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+D">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;Test3&gt;c__AnonStorey2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;Test5&gt;c__AnonStorey4">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;Test2&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;Test4&gt;c__AnonStorey3">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__1(System.String)" attrs="131">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;Test3&gt;c__AnonStorey2">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;Test5&gt;c__AnonStorey4">
-      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="131">
-        <size>54</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;Test2&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;Test4&gt;c__AnonStorey3">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>15</size>
-      </method>
-      <method name="Void &lt;&gt;m__1()" attrs="131">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="StringSender">
-      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="VoidDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="MainClass+D">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Void &lt;Test2&gt;m__0(System.String)" attrs="145">
-        <size>28</size>
-      </method>
-      <method name="Void &lt;Test3&gt;m__1()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;Test4&gt;m__2()" attrs="145">
-        <size>32</size>
-      </method>
-      <method name="Void &lt;Test4&gt;m__3()" attrs="145">
-        <size>29</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;Test5&gt;c__AnonStorey4">
-      <method name="Int32 &lt;&gt;m__1(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-83.cs">
-    <type name="C">
-      <method name="Void add_MyDelegate(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_MyDelegate(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void DoSomething(Boolean)" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>42</size>
-      </method>
-      <method name="Void &lt;MyDelegate&gt;m__0(System.Object, System.EventArgs)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-84.cs">
-    <type name="D">
-      <method name="C Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor(D)" attrs="6278">
-        <size>43</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="C EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="C &lt;field&gt;m__0(Int32)" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-85.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-86.cs">
-    <type name="Bug.A">
-      <method name="Void Test()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>51</size>
-      </method>
-    </type>
-    <type name="Bug.B">
-      <method name="Int32 get_Prop()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Bug.EventHandler">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Bug.A+&lt;A&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bug.EventHandler">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-87.cs">
-    <type name="Bug.D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Bug.AA">
-      <method name="Void TestMe()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor(BB)" attrs="6278">
-        <size>52</size>
-      </method>
-    </type>
-    <type name="Bug.BB">
-      <method name="Void Foo()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="Bug.AA+&lt;AA&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bug.D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-88.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void Test()" attrs="129">
-        <size>102</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey2">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>70</size>
-      </method>
-      <method name="Void &lt;&gt;m__1()" attrs="131">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey2+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey2+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>21</size>
-      </method>
-    </type>
-    <type name="C+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey2">
-      <method name="Void &lt;&gt;m__2()" attrs="145">
-        <size>4</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-89.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="System.Object get_GdkWindow()" attrs="2177">
-        <size>10</size>
-      </method>
-      <method name="Void set_GdkWindow(System.Object)" attrs="2177">
-        <size>2</size>
-      </method>
-      <method name="Void Test()" attrs="129">
-        <size>74</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>113</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__1()" attrs="131">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__1()" attrs="131">
-        <size>32</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Invoke(D)" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="C+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-90.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void Foo()" attrs="129">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>69</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__AnonStorey0+&lt;Foo&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__AnonStorey0+&lt;Foo&gt;c__AnonStorey2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>33</size>
-      </method>
-    </type>
-    <type name="C+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-91.cs">
-    <type name="A">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>28</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void SelectCommand(Int32)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Test()" attrs="129">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>116</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="C+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-92.cs">
-    <type name="D">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Int32 Main()" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>76</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Void Test(System.Collections.IEnumerable)" attrs="145">
-        <size>34</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-93.cs">
-    <type name="BaseTest.MainClass">
-      <method name="Void add_MyEvent(System.EventHandler)" attrs="2182">
-        <size>56</size>
-      </method>
-      <method name="Void remove_MyEvent(System.EventHandler)" attrs="2182">
-        <size>56</size>
-      </method>
-      <method name="Void RaiseMyEvent(System.Object, System.EventArgs)" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BaseTest.MainClass+&lt;&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BaseTest.MainClass+&lt;&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="BaseTest.MainClass">
-      <method name="Void &lt;Main&gt;m__0(System.Object, System.EventArgs)" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-94.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>97</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+BaseClass">
-      <method name="Void Print()" attrs="454">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+Derived">
-      <method name="Void Print()" attrs="198">
-        <size>21</size>
-      </method>
-      <method name="Void &lt;Print&gt;__BaseCallProxy0()" attrs="129">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;Print&gt;m__0()" attrs="129">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+DerivedLibrary">
-      <method name="Void Print(Int32)" attrs="198">
-        <size>21</size>
-      </method>
-      <method name="Void &lt;Print&gt;__BaseCallProxy0(Int32)" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+BaseClass">
-      <method name="Void TestOut(Int32 ByRef)" attrs="454">
-        <size>5</size>
-      </method>
-    </type>
-    <type name="Program+Derived">
-      <method name="Void TestOut(Int32 ByRef)" attrs="198">
-        <size>50</size>
-      </method>
-      <method name="Void &lt;TestOut&gt;__BaseCallProxy1(Int32 ByRef)" attrs="129">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Program+Derived+&lt;TestOut&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+DerivedLibrary">
-      <method name="Void &lt;Print&gt;m__0()" attrs="129">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Program+Derived+&lt;TestOut&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>30</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-95.cs">
-    <type name="D">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void add_Event(D)" attrs="3524">
-        <size>0</size>
-      </method>
-      <method name="Void remove_Event(D)" attrs="3524">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void add_Event(D)" attrs="2244">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Event(D)" attrs="2244">
-        <size>42</size>
-      </method>
-      <method name="Int32 Run()" attrs="132">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Test(Int32)" attrs="129">
-        <size>54</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void &lt;add_Event&gt;__BaseCallProxy0(D)" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>24</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-96.cs">
-    <type name="P">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Extra()" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Int32 Run(Int32)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>110</size>
-      </method>
-    </type>
-    <type name="Program+D">
-      <method name="Int32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Get&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Get&gt;c__AnonStorey1">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>31</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="131">
-        <size>31</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__2()" attrs="131">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="D Get(Int32)" attrs="145">
-        <size>146</size>
-      </method>
-    </type>
-    <type name="Program+D">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-97.cs">
-    <type name="Space">
-      <method name="Void Leak(Boolean, Int32)" attrs="134">
-        <size>81</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Space+DoCopy">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Space+&lt;Leak&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Space+&lt;Leak&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>24</size>
-      </method>
-      <method name="Void &lt;&gt;m__1()" attrs="131">
-        <size>70</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Space+DoCopy">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-98.cs">
-    <type name="Foo">
-      <method name="Void Finalize()" attrs="196">
-        <size>40</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo+&lt;Finalize&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-anon-99.cs">
-    <type name="C">
-      <method name="Void Test()" attrs="129">
-        <size>38</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>72</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey2">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>25</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void &lt;Test&gt;m__0()" attrs="145">
-        <size>63</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-01.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>131</size>
-      </method>
-      <method name="Void TestAsync()" attrs="145">
-        <size>27</size>
-      </method>
-      <method name="System.Threading.Tasks.Task RunAsync()" attrs="145">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Program+&lt;TestAsync&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>221</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void &lt;RunAsync&gt;m__0()" attrs="145">
-        <size>62</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-02.cs">
-    <type name="C">
-      <method name="System.Threading.Tasks.Task TestTask()" attrs="134">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task TestTask2()" attrs="134">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task Call()" attrs="129">
-        <size>31</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestTaskGeneric()" attrs="134">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] CallGeneric()" attrs="129">
-        <size>31</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>316</size>
-      </method>
-      <method name="Void &lt;Call&gt;m__0()" attrs="129">
-        <size>29</size>
-      </method>
-      <method name="Int32 &lt;CallGeneric&gt;m__1()" attrs="129">
-        <size>27</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestTask&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>171</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestTask2&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>176</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestTaskGeneric&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>178</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestTask&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestTask2&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestTaskGeneric&gt;c__async2">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-03.cs">
-    <type name="S">
-      <method name="A GetAwaiter(Int32)" attrs="150">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Boolean get_IsCompleted()" attrs="2177">
-        <size>10</size>
-      </method>
-      <method name="Int32 GetResult()" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Test1()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Test2()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task Test3()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>88</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+&lt;Test1&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>233</size>
-      </method>
-    </type>
-    <type name="A+&lt;Test2&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>161</size>
-      </method>
-    </type>
-    <type name="A+&lt;Test3&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>153</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void System.Runtime.CompilerServices.INotifyCompletion.OnCompleted(System.Action)" attrs="481">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="A+&lt;Test1&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="A+&lt;Test2&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="A+&lt;Test3&gt;c__async2">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-04.cs">
-    <type name="C">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestTaskGeneric()" attrs="134">
-        <size>41</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>141</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>31</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestTaskGeneric&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>196</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 &lt;TestTaskGeneric&gt;m__0()" attrs="129">
-        <size>39</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestTaskGeneric&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-05.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Threading.Tasks.Task SynchronousCall(Int32)" attrs="134">
-        <size>49</size>
-      </method>
-      <method name="System.Threading.Tasks.Task AnotherTask(Int32)" attrs="129">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="C+&lt;SynchronousCall&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>79</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-06.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>482</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>35</size>
-      </method>
-      <method name="Void &lt;&gt;m__1()" attrs="131">
-        <size>35</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.String] &lt;&gt;m__2(System.String)" attrs="131">
-        <size>49</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>225</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>225</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async3">
-      <method name="Void MoveNext()" attrs="486">
-        <size>251</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__5()" attrs="131">
-        <size>34</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async5">
-      <method name="Void MoveNext()" attrs="486">
-        <size>251</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async3+&lt;Main&gt;c__AnonStorey4">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async5+&lt;Main&gt;c__AnonStorey6">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__async7">
-      <method name="Void MoveNext()" attrs="486">
-        <size>69</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__4()" attrs="131">
-        <size>34</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async3+&lt;Main&gt;c__AnonStorey4">
-      <method name="System.String &lt;&gt;m__0()" attrs="131">
-        <size>52</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1">
-      <method name="System.Threading.Tasks.Task`1[System.Decimal] &lt;&gt;m__3(System.Decimal)" attrs="131">
-        <size>49</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async2">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async3">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async5">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async5+&lt;Main&gt;c__AnonStorey6">
-      <method name="System.Decimal &lt;&gt;m__0()" attrs="131">
-        <size>52</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__async7">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="System.Threading.Tasks.Task`1[System.Decimal] &lt;Main&gt;m__0(System.Decimal)" attrs="145">
-        <size>41</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-07.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>358</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1">
-      <method name="System.Threading.Tasks.Task`1[System.String] &lt;&gt;m__0(System.String)" attrs="131">
-        <size>49</size>
-      </method>
-      <method name="System.Threading.Tasks.Task &lt;&gt;m__1()" attrs="131">
-        <size>41</size>
-      </method>
-      <method name="Void &lt;&gt;m__3()" attrs="131">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>238</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async3">
-      <method name="Void MoveNext()" attrs="486">
-        <size>191</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async5">
-      <method name="Void MoveNext()" attrs="486">
-        <size>191</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async0+&lt;Main&gt;c__AnonStorey2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__async4">
-      <method name="Void MoveNext()" attrs="486">
-        <size>68</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__2()" attrs="131">
-        <size>35</size>
-      </method>
-      <method name="Void &lt;&gt;m__4()" attrs="131">
-        <size>46</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async0+&lt;Main&gt;c__AnonStorey2">
-      <method name="System.String &lt;&gt;m__0()" attrs="131">
-        <size>52</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async3">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async5">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__async4">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="System.Threading.Tasks.Task`1[System.Int16] &lt;Main&gt;m__0(Int16)" attrs="145">
-        <size>41</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-08.cs">
-    <type name="AsyncTypeInference">
-      <method name="Int32 Main()" attrs="150">
-        <size>146</size>
-      </method>
-      <method name="System.Threading.Tasks.Task TT()" attrs="145">
-        <size>48</size>
-      </method>
-      <method name="Void Test[T](System.Func`2[System.Int32,System.Threading.Tasks.Task`1[T]])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void Test2[T](System.Func`2[System.Int32,T])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AsyncTypeInference+&lt;Main&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>196</size>
-      </method>
-    </type>
-    <type name="AsyncTypeInference+&lt;Main&gt;c__async5">
-      <method name="Void MoveNext()" attrs="486">
-        <size>197</size>
-      </method>
-    </type>
-    <type name="AsyncTypeInference+&lt;Main&gt;c__async8">
-      <method name="Void MoveNext()" attrs="486">
-        <size>156</size>
-      </method>
-    </type>
-    <type name="AsyncTypeInference+&lt;Main&gt;c__asyncB">
-      <method name="Void MoveNext()" attrs="486">
-        <size>67</size>
-      </method>
-    </type>
-    <type name="AsyncTypeInference+&lt;Main&gt;c__async2">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="AsyncTypeInference+&lt;Main&gt;c__async5">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="AsyncTypeInference+&lt;Main&gt;c__async8">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="AsyncTypeInference+&lt;Main&gt;c__asyncB">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="AsyncTypeInference">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Main&gt;m__1(Int32)" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task &lt;Main&gt;m__2(Int32)" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task &lt;Main&gt;m__3(Int32)" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 &lt;TT&gt;m__4()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="AsyncTypeInference+&lt;Main&gt;c__async2">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="AsyncTypeInference+&lt;Main&gt;c__async5">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-09.cs">
-    <type name="Test">
-      <method name="Int32 Foo[T](System.Func`2[T,System.Threading.Tasks.Task`1[System.Int32]])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo[T](System.Func`2[T,System.Threading.Tasks.Task`1[System.Int16]])" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>57</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Main&gt;c__async3">
-      <method name="Void MoveNext()" attrs="486">
-        <size>63</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Threading.Tasks.Task`1[System.Int16] &lt;Main&gt;m__0(System.String)" attrs="145">
-        <size>33</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-10.cs">
-    <type name="C">
-      <method name="System.Threading.Tasks.Task`1[System.String] TestCompositionCall_1()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.String] TestCompositionCall_2()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestCompositionCall_3()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestCompositionPair_1()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestCompositionPair_2()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestCompositionPair_3()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestCompositionPair_4()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Byte] M(Byte)" attrs="145">
-        <size>44</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>458</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionCall_1&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>338</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionCall_2&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>257</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionCall_3&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>310</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionPair_1&gt;c__async3">
-      <method name="Void MoveNext()" attrs="486">
-        <size>208</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionPair_2&gt;c__async4">
-      <method name="Void MoveNext()" attrs="486">
-        <size>329</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionPair_3&gt;c__async5">
-      <method name="Void MoveNext()" attrs="486">
-        <size>209</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionPair_4&gt;c__async6">
-      <method name="Void MoveNext()" attrs="486">
-        <size>467</size>
-      </method>
-    </type>
-    <type name="C+&lt;M&gt;c__AnonStorey7">
-      <method name="Byte &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionCall_1&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionCall_2&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionCall_3&gt;c__async2">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionPair_1&gt;c__async3">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionPair_2&gt;c__async4">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionPair_3&gt;c__async5">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionPair_4&gt;c__async6">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionCall_1&gt;c__async0">
-      <method name="System.String &lt;&gt;m__0()" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="System.String &lt;&gt;m__1()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionCall_2&gt;c__async1">
-      <method name="System.String &lt;&gt;m__0()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionCall_3&gt;c__async2">
-      <method name="Byte &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionPair_1&gt;c__async3">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionPair_2&gt;c__async4">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionPair_3&gt;c__async5">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestCompositionPair_4&gt;c__async6">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__2()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-11.cs">
-    <type name="G`1[T]">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_1(T)" attrs="134">
-        <size>49</size>
-      </method>
-      <method name="Int32 Call(T, T, T ByRef, Int32)" attrs="129">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 get_Prop()" attrs="2177">
-        <size>29</size>
-      </method>
-      <method name="Void set_Prop(Int32)" attrs="2177">
-        <size>16</size>
-      </method>
-      <method name="Int32 TestCall(Int32 ByRef, System.Type, System.Object, UInt64, Int32)" attrs="129">
-        <size>90</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_1()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 TestCall2[T1,T2,T3,T4,T5,T6,T7](T1, T2, T3, T4, T5, T6, T7)" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_2(UInt64)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_3()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 TestCall3(S ByRef, S ByRef, Int32, Int32)" attrs="145">
-        <size>26</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_4()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 TestCall4(E, S, C, Int32)" attrs="145">
-        <size>61</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_5()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>370</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="G`1+&lt;TestStack_1&gt;c__async0[T]">
-      <method name="Void MoveNext()" attrs="486">
-        <size>266</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestStack_1&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>327</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestStack_2&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>302</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestStack_3&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>467</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestStack_4&gt;c__async3">
-      <method name="Void MoveNext()" attrs="486">
-        <size>323</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestStack_5&gt;c__async4">
-      <method name="Void MoveNext()" attrs="486">
-        <size>347</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestStack_5&gt;c__async4+&lt;TestStack_5&gt;c__AnonStorey5">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>48</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="G`1+&lt;TestStack_1&gt;c__async0[T]">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestStack_1&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestStack_2&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestStack_3&gt;c__async2">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestStack_4&gt;c__async3">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestStack_5&gt;c__async4">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="G`1+&lt;TestStack_1&gt;c__async0[T]">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestStack_1&gt;c__async0">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestStack_2&gt;c__async1">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestStack_3&gt;c__async2">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestStack_4&gt;c__async3">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-12.cs">
-    <type name="C">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestNested_1()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 Call(Int32, Int32, Int32)" attrs="145">
-        <size>53</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>76</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestNested_1&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>455</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__2()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-13.cs">
-    <type name="S">
-      <method name="Void SetValue(Int32)" attrs="134">
-        <size>9</size>
-      </method>
-      <method name="S op_Implicit(Base)" attrs="2198">
-        <size>24</size>
-      </method>
-      <method name="S op_Addition(S, S)" attrs="2198">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor(Int32, String)" attrs="6278">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="Base">
-      <method name="Void add_Event(System.Action)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Event(System.Action)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Boolean get_PropertyBool()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Int32 get_PropertyInt()" attrs="2182">
-        <size>17</size>
-      </method>
-      <method name="Void set_PropertyInt(Int32)" attrs="2182">
-        <size>20</size>
-      </method>
-      <method name="Base get_PropertyThis()" attrs="2180">
-        <size>24</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void set_Item(Int32, Int32)" attrs="2182">
-        <size>18</size>
-      </method>
-      <method name="Boolean op_True(Base)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Boolean op_False(Base)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Base op_BitwiseAnd(Base, Base)" attrs="2198">
-        <size>26</size>
-      </method>
-      <method name="Base op_BitwiseOr(Base, Base)" attrs="2198">
-        <size>29</size>
-      </method>
-      <method name="Int32 Call(Int32, Int32, Int32)" attrs="132">
-        <size>53</size>
-      </method>
-      <method name="Int32 Call(Char ByRef, Int32)" attrs="132">
-        <size>14</size>
-      </method>
-      <method name="Void CallBool(Boolean)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Int32 CallS(S)" attrs="134">
-        <size>16</size>
-      </method>
-      <method name="T[] CreateArray[T](Int32)" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Int32 CallNamed(Int32, Int32)" attrs="132">
-        <size>12</size>
-      </method>
-      <method name="Void CallEvent()" attrs="132">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Int32, Int32)" attrs="6278">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_2()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_3()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_4()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_5()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_6()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_7()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_8()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_9()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] AssignTest_1()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] AssignTest_2()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] AssignTest_3()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_2()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_3()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_4()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] CallTest_1()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] CallTest_2()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] CallTest_3()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] CallTest_4()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] CallTest_5()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] CastTest_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] CastTest_2()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] CoalescingTest_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] CoalescingTest_2()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] ConditionalTest_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] ConditionalTest_2()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] ConditionalTest_3()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] ConditionalTest_4()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] DelegateInvoke_4()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] EventInvoke_1()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] FieldTest_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] IndexerTest_1()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] IndexerTest_2()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] IndexerTest_3()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] IndexerTest_4()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] IndexerTest_5()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] IndexerTest_6()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] IndexerTest_7()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] IsTest_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] IsTest_2()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] LogicalUserOperator_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] LogicalUserOperator_2()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] LogicalUserOperator_3()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] NewTest_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] NewTest_2()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] NewInitTest_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] NewInitTest_2()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] NewArrayInitTest_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] NewArrayInitTest_2()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] NewArrayInitTest_3()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] NewArrayInitTest_4()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] NewArrayInitTest_5()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] NewArrayInitTest_6()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] PropertyTest_1()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] PropertyTest_2()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] PropertyTest_3()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] StringConcatTest_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] UnaryTest_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] UnaryTest_2()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] UnaryTest_3()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] VariableInitializer_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
-        <size>247</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>187</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_1&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>335</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_2&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>740</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_3&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>1090</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_4&gt;c__async3">
-      <method name="Void MoveNext()" attrs="486">
-        <size>421</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_5&gt;c__async4">
-      <method name="Void MoveNext()" attrs="486">
-        <size>409</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_6&gt;c__async5">
-      <method name="Void MoveNext()" attrs="486">
-        <size>257</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_7&gt;c__async6">
-      <method name="Void MoveNext()" attrs="486">
-        <size>426</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_8&gt;c__async7">
-      <method name="Void MoveNext()" attrs="486">
-        <size>792</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_9&gt;c__async8">
-      <method name="Void MoveNext()" attrs="486">
-        <size>1209</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_5()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] BinaryTest_6()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="Tester &lt;CastTest_2&gt;m__4()" attrs="129">
-        <size>9</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] NewArrayInitTest_7()" attrs="129">
-        <size>33</size>
-      </method>
-    </type>
-    <type name="Base">
-      <method name="Void CallRefParams(Int32 ByRef, Int32[])" attrs="148">
-        <size>5</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_1&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_2&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_3&gt;c__async2">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_4&gt;c__async3">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_5&gt;c__async4">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_6&gt;c__async5">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_7&gt;c__async6">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_8&gt;c__async7">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_9&gt;c__async8">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] NewDelegate_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Func`1[System.Int32]] NewDelegate_1_0()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_10()" attrs="129">
-        <size>33</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_10&gt;c__async9">
-      <method name="Void MoveNext()" attrs="486">
-        <size>232</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_11()" attrs="129">
-        <size>33</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_11&gt;c__asyncA">
-      <method name="Void MoveNext()" attrs="486">
-        <size>413</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;AssignTest_1&gt;c__asyncB">
-      <method name="Void MoveNext()" attrs="486">
-        <size>223</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;AssignTest_2&gt;c__asyncC">
-      <method name="Void MoveNext()" attrs="486">
-        <size>273</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;AssignTest_3&gt;c__asyncD">
-      <method name="Void MoveNext()" attrs="486">
-        <size>364</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;BinaryTest_1&gt;c__asyncE">
-      <method name="Void MoveNext()" attrs="486">
-        <size>435</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;BinaryTest_2&gt;c__asyncF">
-      <method name="Void MoveNext()" attrs="486">
-        <size>507</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;BinaryTest_3&gt;c__async10">
-      <method name="Void MoveNext()" attrs="486">
-        <size>1137</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;BinaryTest_4&gt;c__async11">
-      <method name="Void MoveNext()" attrs="486">
-        <size>872</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;BinaryTest_5&gt;c__async12">
-      <method name="Void MoveNext()" attrs="486">
-        <size>298</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;BinaryTest_6&gt;c__async13">
-      <method name="Void MoveNext()" attrs="486">
-        <size>209</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CallTest_1&gt;c__async14">
-      <method name="Void MoveNext()" attrs="486">
-        <size>430</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CallTest_2&gt;c__async15">
-      <method name="Void MoveNext()" attrs="486">
-        <size>267</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CallTest_3&gt;c__async16">
-      <method name="Void MoveNext()" attrs="486">
-        <size>237</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CallTest_4&gt;c__async17">
-      <method name="Void MoveNext()" attrs="486">
-        <size>240</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CallTest_5&gt;c__async18">
-      <method name="Void MoveNext()" attrs="486">
-        <size>250</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CastTest_1&gt;c__async19">
-      <method name="Void MoveNext()" attrs="486">
-        <size>246</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CastTest_2&gt;c__async1A">
-      <method name="Void MoveNext()" attrs="486">
-        <size>233</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CoalescingTest_1&gt;c__async1B">
-      <method name="Void MoveNext()" attrs="486">
-        <size>358</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CoalescingTest_2&gt;c__async1C">
-      <method name="Void MoveNext()" attrs="486">
-        <size>364</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ConditionalTest_1&gt;c__async1D">
-      <method name="Void MoveNext()" attrs="486">
-        <size>197</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ConditionalTest_2&gt;c__async1E">
-      <method name="Void MoveNext()" attrs="486">
-        <size>329</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ConditionalTest_3&gt;c__async1F">
-      <method name="Void MoveNext()" attrs="486">
-        <size>347</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ConditionalTest_4&gt;c__async20">
-      <method name="Void MoveNext()" attrs="486">
-        <size>243</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;DelegateInvoke_4&gt;c__async21">
-      <method name="Void MoveNext()" attrs="486">
-        <size>271</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;EventInvoke_1&gt;c__async22">
-      <method name="Void MoveNext()" attrs="486">
-        <size>260</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;FieldTest_1&gt;c__async23">
-      <method name="Void MoveNext()" attrs="486">
-        <size>535</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_1&gt;c__async24">
-      <method name="Void MoveNext()" attrs="486">
-        <size>225</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_2&gt;c__async25">
-      <method name="Void MoveNext()" attrs="486">
-        <size>335</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_3&gt;c__async26">
-      <method name="Void MoveNext()" attrs="486">
-        <size>402</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_4&gt;c__async27">
-      <method name="Void MoveNext()" attrs="486">
-        <size>442</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_5&gt;c__async28">
-      <method name="Void MoveNext()" attrs="486">
-        <size>548</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_6&gt;c__async29">
-      <method name="Void MoveNext()" attrs="486">
-        <size>544</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_7&gt;c__async2A">
-      <method name="Void MoveNext()" attrs="486">
-        <size>295</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IsTest_1&gt;c__async2B">
-      <method name="Void MoveNext()" attrs="486">
-        <size>233</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IsTest_2&gt;c__async2C">
-      <method name="Void MoveNext()" attrs="486">
-        <size>233</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;LogicalUserOperator_1&gt;c__async2D">
-      <method name="Void MoveNext()" attrs="486">
-        <size>391</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;LogicalUserOperator_2&gt;c__async2E">
-      <method name="Void MoveNext()" attrs="486">
-        <size>299</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;LogicalUserOperator_3&gt;c__async2F">
-      <method name="Void MoveNext()" attrs="486">
-        <size>390</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewTest_1&gt;c__async30">
-      <method name="Void MoveNext()" attrs="486">
-        <size>260</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewTest_2&gt;c__async31">
-      <method name="Void MoveNext()" attrs="486">
-        <size>348</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewDelegate_1&gt;c__async32">
-      <method name="Void MoveNext()" attrs="486">
-        <size>212</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewDelegate_1_0&gt;c__async33">
-      <method name="Void MoveNext()" attrs="486">
-        <size>226</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewInitTest_1&gt;c__async34">
-      <method name="Void MoveNext()" attrs="486">
-        <size>1030</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewInitTest_2&gt;c__async35">
-      <method name="Void MoveNext()" attrs="486">
-        <size>739</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewArrayInitTest_1&gt;c__async36">
-      <method name="Void MoveNext()" attrs="486">
-        <size>240</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewArrayInitTest_2&gt;c__async37">
-      <method name="Void MoveNext()" attrs="486">
-        <size>355</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewArrayInitTest_3&gt;c__async38">
-      <method name="Void MoveNext()" attrs="486">
-        <size>246</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewArrayInitTest_4&gt;c__async39">
-      <method name="Void MoveNext()" attrs="486">
-        <size>427</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewArrayInitTest_5&gt;c__async3A">
-      <method name="Void MoveNext()" attrs="486">
-        <size>264</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewArrayInitTest_6&gt;c__async3B">
-      <method name="Void MoveNext()" attrs="486">
-        <size>266</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewArrayInitTest_7&gt;c__async3C">
-      <method name="Void MoveNext()" attrs="486">
-        <size>299</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;PropertyTest_1&gt;c__async3D">
-      <method name="Void MoveNext()" attrs="486">
-        <size>222</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;PropertyTest_2&gt;c__async3E">
-      <method name="Void MoveNext()" attrs="486">
-        <size>295</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;PropertyTest_3&gt;c__async3F">
-      <method name="Void MoveNext()" attrs="486">
-        <size>645</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;StringConcatTest_1&gt;c__async40">
-      <method name="Void MoveNext()" attrs="486">
-        <size>455</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;UnaryTest_1&gt;c__async41">
-      <method name="Void MoveNext()" attrs="486">
-        <size>233</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;UnaryTest_2&gt;c__async42">
-      <method name="Void MoveNext()" attrs="486">
-        <size>339</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;UnaryTest_3&gt;c__async43">
-      <method name="Void MoveNext()" attrs="486">
-        <size>372</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;VariableInitializer_1&gt;c__async44">
-      <method name="Void MoveNext()" attrs="486">
-        <size>348</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_5&gt;c__async4+&lt;ArrayAccessTest_5&gt;c__AnonStorey45">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;BinaryTest_2&gt;c__asyncF+&lt;BinaryTest_2&gt;c__AnonStorey46">
-      <method name="Boolean &lt;&gt;m__0()" attrs="131">
-        <size>24</size>
-      </method>
-      <method name="Boolean &lt;&gt;m__1()" attrs="131">
-        <size>24</size>
-      </method>
-      <method name="Boolean &lt;&gt;m__2()" attrs="131">
-        <size>24</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CallTest_5&gt;c__async18+&lt;CallTest_5&gt;c__AnonStorey47">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;EventInvoke_1&gt;c__async22+&lt;EventInvoke_1&gt;c__AnonStorey48">
-      <method name="System.Action &lt;&gt;m__0()" attrs="131">
-        <size>23</size>
-      </method>
-      <method name="Void &lt;&gt;m__1()" attrs="131">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_3&gt;c__async26+&lt;IndexerTest_3&gt;c__AnonStorey49">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_4&gt;c__async27+&lt;IndexerTest_4&gt;c__AnonStorey4A">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_5&gt;c__async28+&lt;IndexerTest_5&gt;c__AnonStorey4B">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_7&gt;c__async2A+&lt;IndexerTest_7&gt;c__AnonStorey4C">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;UnaryTest_2&gt;c__async42+&lt;UnaryTest_2&gt;c__AnonStorey4D">
-      <method name="System.Nullable`1[System.Int16] &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Boolean &lt;Main&gt;m__0(System.Reflection.MethodInfo)" attrs="145">
-        <size>45</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__1(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__2(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__3(Boolean)" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_1&gt;c__async0">
-      <method name="Boolean &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_2&gt;c__async1">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__2()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Double &lt;&gt;m__3()" attrs="145">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_3&gt;c__async2">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="System.Decimal &lt;&gt;m__2()" attrs="145">
-        <size>19</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__3()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="System.Decimal &lt;&gt;m__4()" attrs="145">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_4&gt;c__async3">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="System.String &lt;&gt;m__1()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_5&gt;c__async4">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_6&gt;c__async5">
-      <method name="Int64 &lt;&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_7&gt;c__async6">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_8&gt;c__async7">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Byte &lt;&gt;m__1()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_9&gt;c__async8">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__2()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__3()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__4()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__5()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="S &lt;&gt;m__6()" attrs="145">
-        <size>25</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_10&gt;c__async9">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ArrayAccessTest_11&gt;c__asyncA">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;AssignTest_1&gt;c__asyncB">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;AssignTest_2&gt;c__asyncC">
-      <method name="System.Nullable`1[System.SByte] &lt;&gt;m__0()" attrs="145">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;AssignTest_3&gt;c__asyncD">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;BinaryTest_1&gt;c__asyncE">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__2()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;BinaryTest_3&gt;c__async10">
-      <method name="System.Nullable`1[System.Boolean] &lt;&gt;m__0()" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="System.Nullable`1[System.Boolean] &lt;&gt;m__1()" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="System.Nullable`1[System.Boolean] &lt;&gt;m__2()" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="System.Nullable`1[System.Boolean] &lt;&gt;m__3()" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="System.Nullable`1[System.Boolean] &lt;&gt;m__4()" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="System.Nullable`1[System.Boolean] &lt;&gt;m__5()" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;BinaryTest_4&gt;c__async11">
-      <method name="System.Nullable`1[System.Int16] &lt;&gt;m__0()" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="System.Nullable`1[System.Byte] &lt;&gt;m__1()" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="System.Nullable`1[System.Decimal] &lt;&gt;m__2()" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="System.Nullable`1[System.Decimal] &lt;&gt;m__3()" attrs="145">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CallTest_1&gt;c__async14">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__2()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CallTest_2&gt;c__async15">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>17</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CallTest_3&gt;c__async16">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CallTest_4&gt;c__async17">
-      <method name="E &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CastTest_1&gt;c__async19">
-      <method name="System.Decimal &lt;&gt;m__0()" attrs="145">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CoalescingTest_1&gt;c__async1B">
-      <method name="System.String &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="System.String &lt;&gt;m__1()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;CoalescingTest_2&gt;c__async1C">
-      <method name="System.Nullable`1[System.Int16] &lt;&gt;m__0()" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="Byte &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ConditionalTest_1&gt;c__async1D">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ConditionalTest_2&gt;c__async1E">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ConditionalTest_3&gt;c__async1F">
-      <method name="Boolean &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;ConditionalTest_4&gt;c__async20">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;DelegateInvoke_4&gt;c__async21">
-      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;FieldTest_1&gt;c__async23">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_1&gt;c__async24">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_2&gt;c__async25">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_3&gt;c__async26">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_4&gt;c__async27">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_5&gt;c__async28">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IndexerTest_6&gt;c__async29">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__2()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IsTest_1&gt;c__async2B">
-      <method name="Tester &lt;&gt;m__0()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;IsTest_2&gt;c__async2C">
-      <method name="System.Nullable`1[System.UInt32] &lt;&gt;m__0()" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;LogicalUserOperator_1&gt;c__async2D">
-      <method name="Base &lt;&gt;m__0()" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Base &lt;&gt;m__1()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;LogicalUserOperator_2&gt;c__async2E">
-      <method name="Base &lt;&gt;m__0()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;LogicalUserOperator_3&gt;c__async2F">
-      <method name="Base &lt;&gt;m__0()" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Base &lt;&gt;m__1()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewTest_1&gt;c__async30">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewTest_2&gt;c__async31">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="System.String &lt;&gt;m__1()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewDelegate_1_0&gt;c__async33">
-      <method name="Void &lt;&gt;m__0()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewInitTest_1&gt;c__async34">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__2()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__3()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__4()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__5()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewInitTest_2&gt;c__async35">
-      <method name="System.String &lt;&gt;m__0()" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="System.String &lt;&gt;m__1()" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__2()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__3()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewArrayInitTest_1&gt;c__async36">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewArrayInitTest_2&gt;c__async37">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewArrayInitTest_3&gt;c__async38">
-      <method name="Byte &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewArrayInitTest_4&gt;c__async39">
-      <method name="UInt16 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="UInt16 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewArrayInitTest_5&gt;c__async3A">
-      <method name="S &lt;&gt;m__0()" attrs="145">
-        <size>25</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewArrayInitTest_6&gt;c__async3B">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;PropertyTest_1&gt;c__async3D">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;PropertyTest_2&gt;c__async3E">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;PropertyTest_3&gt;c__async3F">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__2()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;StringConcatTest_1&gt;c__async40">
-      <method name="System.String &lt;&gt;m__0()" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="System.String &lt;&gt;m__1()" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="System.String &lt;&gt;m__2()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;UnaryTest_1&gt;c__async41">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;UnaryTest_3&gt;c__async43">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;VariableInitializer_1&gt;c__async44">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-14.cs">
-    <type name="C">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestResult()" attrs="134">
-        <size>33</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>214</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestResult&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>222</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>232</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestResult&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Main&gt;m__0()" attrs="145">
-        <size>33</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestResult&gt;c__async0">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C+&lt;Main&gt;c__async1">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-15.cs">
-    <type name="S">
-      <method name="Int32 get_Value()" attrs="2534">
-        <size>14</size>
-      </method>
-      <method name="Void set_Value(Int32)" attrs="2534">
-        <size>8</size>
-      </method>
-      <method name="Void SetValue(Int32)" attrs="134">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor(Int32, String)" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="System.Threading.Tasks.Task`1[T] NewInitTestGen[T]()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>107</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewInitTestGen&gt;c__async0`1[T]">
-      <method name="Void MoveNext()" attrs="486">
-        <size>308</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="S2">
-      <method name="Void Add(Int32)" attrs="134">
-        <size>36</size>
-      </method>
-      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="486">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] NewInitCol()" attrs="145">
-        <size>33</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewInitCol&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>370</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewInitTestGen&gt;c__async0`1[T]">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;NewInitCol&gt;c__async1">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-16.cs">
-    <type name="Base">
-      <method name="Void Dispose()" attrs="486">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] SwitchTest_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Using_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Foreach_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
-        <size>247</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>187</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;SwitchTest_1&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>336</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Using_1&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>809</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Foreach_1&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>331</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;SwitchTest_1&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Using_1&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Foreach_1&gt;c__async2">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Boolean &lt;Main&gt;m__0(System.Reflection.MethodInfo)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__1(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__2(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__3(Boolean)" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;SwitchTest_1&gt;c__async0">
-      <method name="System.String &lt;&gt;m__0()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Using_1&gt;c__async1">
-      <method name="Base &lt;&gt;m__0()" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Tester &lt;&gt;m__1()" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Base &lt;&gt;m__2()" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Base &lt;&gt;m__3()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Foreach_1&gt;c__async2">
-      <method name="System.Collections.Generic.List`1[System.Int32] &lt;&gt;m__0()" attrs="145">
-        <size>36</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-17.cs">
-    <type name="Tester">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestException_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task TestException_2()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task TestException_3()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestException_4()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestException_5()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestException_6()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
-        <size>223</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>187</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_1&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>207</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_2&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>199</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_3&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>206</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_4&gt;c__async3">
-      <method name="Void MoveNext()" attrs="486">
-        <size>239</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_5&gt;c__async4">
-      <method name="Void MoveNext()" attrs="486">
-        <size>289</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_6&gt;c__async5">
-      <method name="Void MoveNext()" attrs="486">
-        <size>243</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestException_7()" attrs="129">
-        <size>33</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_7&gt;c__async6">
-      <method name="Void MoveNext()" attrs="486">
-        <size>272</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_3&gt;c__async2+&lt;TestException_3&gt;c__async7">
-      <method name="Void MoveNext()" attrs="486">
-        <size>203</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_1&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_2&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_3&gt;c__async2">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_4&gt;c__async3">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_5&gt;c__async4">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_6&gt;c__async5">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_7&gt;c__async6">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_3&gt;c__async2+&lt;TestException_3&gt;c__async7">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Boolean &lt;Main&gt;m__0(System.Reflection.MethodInfo)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__1(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__2(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__3(Boolean)" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_1&gt;c__async0">
-      <method name="Void &lt;&gt;m__0()" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_2&gt;c__async1">
-      <method name="Void &lt;&gt;m__0()" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_3&gt;c__async2">
-      <method name="System.Threading.Tasks.Task &lt;&gt;m__0()" attrs="145">
-        <size>33</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_4&gt;c__async3">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_5&gt;c__async4">
-      <method name="Void &lt;&gt;m__0()" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_6&gt;c__async5">
-      <method name="Void &lt;&gt;m__0()" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_7&gt;c__async6">
-      <method name="Void &lt;&gt;m__0()" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;TestException_3&gt;c__async2+&lt;TestException_3&gt;c__async7">
-      <method name="Void &lt;&gt;m__0()" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-18.cs">
-    <type name="Tester">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Lambda_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Lambda_2()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Lambda_3[T]()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>203</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Lambda_1&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>277</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Lambda_2&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>330</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Lambda_3&gt;c__async2`1[T]">
-      <method name="Void MoveNext()" attrs="486">
-        <size>277</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Lambda_1&gt;c__async0+&lt;Lambda_1&gt;c__AnonStorey3">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Lambda_2&gt;c__async1+&lt;Lambda_2&gt;c__AnonStorey5">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Lambda_2&gt;c__async1+&lt;Lambda_2&gt;c__AnonStorey4">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Lambda_1&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Lambda_2&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Lambda_3&gt;c__async2`1[T]">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Lambda_3&gt;c__async2`1+&lt;Lambda_3&gt;c__AnonStorey6[T]">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-19.cs">
-    <type name="C">
-      <method name="Void Test(System.Threading.ManualResetEvent)" attrs="145">
-        <size>35</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>96</size>
-      </method>
-      <method name="Void CurrentDomain_UnhandledException(System.Object, System.UnhandledExceptionEventArgs)" attrs="145">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>12</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>227</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__async0+&lt;Test&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-20.cs">
-    <type name="Base">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] Add_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] AssignCompound_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] Convert_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] Invocation_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
-        <size>183</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>187</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Add_1&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>492</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;AssignCompound_1&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>1229</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Convert_1&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>344</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Invocation_1&gt;c__async3">
-      <method name="Void MoveNext()" attrs="486">
-        <size>596</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Add_1&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;AssignCompound_1&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Convert_1&gt;c__async2">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Invocation_1&gt;c__async3">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="Boolean &lt;Main&gt;m__0(System.Reflection.MethodInfo)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="System.String &lt;Main&gt;m__1(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__2(System.Reflection.MethodInfo)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__3(Boolean)" attrs="145">
-        <size>12</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Add_1&gt;c__async0">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;AssignCompound_1&gt;c__async1">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Convert_1&gt;c__async2">
-      <method name="System.Object &lt;&gt;m__0()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;Invocation_1&gt;c__async3">
-      <method name="System.Object &lt;&gt;m__0()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-21.cs">
-    <type name="S">
-      <method name="A GetAwaiter()" attrs="134">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void System.Runtime.CompilerServices.INotifyCompletion.OnCompleted(System.Action)" attrs="481">
-        <size>8</size>
-      </method>
-      <method name="Boolean get_IsCompleted()" attrs="2177">
-        <size>10</size>
-      </method>
-      <method name="Int32 GetResult()" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Test1()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>58</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+&lt;Test1&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>604</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-22.cs">
-    <type name="A">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] async()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task async(Int32)" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+async">
-      <method name="Void .ctor(async)" attrs="6273">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="async">
-      <method name="Void .ctor(async)" attrs="6273">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="await">
-      <method name="Void .ctor(await)" attrs="6273">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="asyncAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="asyncAttribute+async">
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="A+&lt;async&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>63</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void CastTest()" attrs="129">
-        <size>35</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Test(Boolean)" attrs="145">
-        <size>20</size>
-      </method>
-      <method name="Int32 get_Prop()" attrs="2193">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AsyncNS.Classes">
-      <method name="Void M()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AsyncNS.Classes+async">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AwaitNS.Formals">
-      <method name="Void M1()" attrs="145">
-        <size>92</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AwaitNS.Formals+D">
-      <method name="Void Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="AwaitNS.Methods">
-      <method name="Void await()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void M(AwaitNS.Methods)" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AwaitNS.Classes">
-      <method name="Void M()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AwaitNS.Classes+await">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AwaitNS.AnonTypes">
-      <method name="Void M()" attrs="145">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AwaitNS.Initializer">
-      <method name="Void M()" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;&gt;__AnonType0`1[&lt;await&gt;__T]">
-      <method name="&lt;await&gt;__T get_await()" attrs="2182">
-        <size>7</size>
-      </method>
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>39</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>63</size>
-      </method>
-      <method name="System.String ToString()" attrs="198">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor(&lt;await&gt;__T)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void Iasync.async()" attrs="481">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="A+&lt;async&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>62</size>
-      </method>
-    </type>
-    <type name="A+&lt;CastTest&gt;c__async3">
-      <method name="Void MoveNext()" attrs="486">
-        <size>285</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="System.Threading.Tasks.Task M()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D+&lt;M&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>61</size>
-      </method>
-    </type>
-    <type name="asyncAttribute+async">
-      <method name="async Invoke(async)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(async, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="async EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="AwaitNS.Formals+D">
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="A+&lt;async&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="A+&lt;async&gt;c__async2">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="A+&lt;CastTest&gt;c__async3">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="D+&lt;M&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="AwaitNS.MemberAccess">
-      <method name="Void M()" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AwaitNS.TypeChecks">
-      <method name="Void M(System.Object)" attrs="145">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AwaitNS.Formals">
-      <method name="Void &lt;M1&gt;m__0(Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;M1&gt;m__1(Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void &lt;M1&gt;m__2(Int32)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="A+&lt;Iasync_async&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>61</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-23.cs">
-    <type name="MyContext">
-      <method name="Void OperationStarted()" attrs="198">
-        <size>22</size>
-      </method>
-      <method name="Void OperationCompleted()" attrs="198">
-        <size>22</size>
-      </method>
-      <method name="Void Post(System.Threading.SendOrPostCallback, System.Object)" attrs="198">
-        <size>36</size>
-      </method>
-      <method name="Void Send(System.Threading.SendOrPostCallback, System.Object)" attrs="198">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="TestPostContext">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Test()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>170</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestPostContext+&lt;Test&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>197</size>
-      </method>
-    </type>
-    <type name="MyContext">
-      <method name="Void .ctor(ManualResetEvent)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="TestPostContext+&lt;Test&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>21</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-24.cs">
-    <type name="Struct">
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] AsyncMethod()" attrs="134">
-        <size>46</size>
-      </method>
-      <method name="Void .ctor(Object)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>80</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Struct+&lt;AsyncMethod&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>275</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-25.cs">
-    <type name="Program">
-      <method name="Void CompilationTestOnly()" attrs="145">
-        <size>66</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;CompilationTestOnly&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;&gt;m__0()" attrs="131">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 &lt;CompilationTestOnly&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-26.cs">
-    <type name="ConsoleApplication1.Program">
-      <method name="System.Threading.Tasks.Task`1[TResult] Run[TResult](System.Func`1[System.Threading.Tasks.Task`1[TResult]])" attrs="150">
-        <size>27</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[TResult] GetTaskResult[TResult](System.Threading.Tasks.Task`1[System.Threading.Tasks.Task`1[TResult]])" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>95</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ConsoleApplication1.Program+&lt;GetTaskResult&gt;c__async0`1[TResult]">
-      <method name="Void MoveNext()" attrs="486">
-        <size>169</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="ConsoleApplication1.Program">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Main&gt;m__0()" attrs="145">
-        <size>47</size>
-      </method>
-      <method name="Int32 &lt;Main&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-27.cs">
-    <type name="MainClass">
-      <method name="System.Threading.Tasks.Task AsyncTest()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;AsyncTest&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>196</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-28.cs">
-    <type name="C">
-      <method name="System.Threading.Tasks.Task Test()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>282</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-29.cs">
-    <type name="C">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Test()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>331</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-30.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>214</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="System.String System.Collections.Generic.IEnumerator&lt;string&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>138</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test2&gt;c__Iterator1">
-      <method name="System.String System.Collections.Generic.IEnumerator&lt;string&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>137</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey3">
-      <method name="System.Threading.Tasks.Task`1[System.String] &lt;&gt;m__0()" attrs="131">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey3+&lt;Test&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>183</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test2&gt;c__Iterator1+&lt;Test2&gt;c__AnonStorey5">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test2&gt;c__Iterator1+&lt;Test2&gt;c__AnonStorey5+&lt;Test2&gt;c__async4">
-      <method name="Void MoveNext()" attrs="486">
-        <size>183</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Collections.Generic.IEnumerable`1[System.String] Test(System.String)" attrs="129">
-        <size>30</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerable`1[System.String] Test2()" attrs="129">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.String] System.Collections.Generic.IEnumerable&lt;string&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test2&gt;c__Iterator1">
-      <method name="System.Collections.Generic.IEnumerator`1[System.String] System.Collections.Generic.IEnumerable&lt;string&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test2&gt;c__Iterator1+&lt;Test2&gt;c__AnonStorey5">
-      <method name="System.Threading.Tasks.Task`1[System.String] &lt;&gt;m__0()" attrs="131">
-        <size>41</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test2&gt;c__Iterator1">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey3+&lt;Test&gt;c__async2">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test2&gt;c__Iterator1+&lt;Test2&gt;c__AnonStorey5+&lt;Test2&gt;c__async4">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-31.cs">
-    <type name="C">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] M(Int32)" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] M2(Int32, Int32)" attrs="129">
-        <size>49</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;M&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>354</size>
-      </method>
-    </type>
-    <type name="C+&lt;M2&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>469</size>
-      </method>
-    </type>
-    <type name="C+&lt;M&gt;c__async0+&lt;M&gt;c__AnonStorey3">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;M&gt;c__async0+&lt;M&gt;c__AnonStorey2">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1()" attrs="131">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;M2&gt;c__async1+&lt;M2&gt;c__AnonStorey4">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="C+&lt;M&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;M2&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-32.cs">
-    <type name="Program">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestCanceled()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task TestCanceled_2()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestException()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>274</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;TestCanceled&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>160</size>
-      </method>
-    </type>
-    <type name="Program+&lt;TestCanceled_2&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>159</size>
-      </method>
-    </type>
-    <type name="Program+&lt;TestException&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>160</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__AnonStorey3">
-      <method name="Void &lt;&gt;m__0(System.Threading.Tasks.Task`1[System.Int32])" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void &lt;&gt;m__1(System.Threading.Tasks.Task)" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void &lt;&gt;m__2(System.Threading.Tasks.Task`1[System.Int32])" attrs="131">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;TestCanceled&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Program+&lt;TestCanceled_2&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Program+&lt;TestException&gt;c__async2">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-33.cs">
-    <type name="A">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Foo(Int32)" attrs="454">
-        <size>15</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] get_Prop()" attrs="2502">
-        <size>14</size>
-      </method>
-      <method name="Void set_Prop(System.Threading.Tasks.Task`1[System.Int32])" attrs="2502">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] get_Prop()" attrs="2246">
-        <size>7</size>
-      </method>
-      <method name="Void set_Prop(System.Threading.Tasks.Task`1[System.Int32])" attrs="2246">
-        <size>7</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Foo(Int32)" attrs="198">
-        <size>49</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Foo2(Int32)" attrs="134">
-        <size>49</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Foo&gt;__BaseCallProxy0(Int32)" attrs="129">
-        <size>15</size>
-      </method>
-      <method name="Void &lt;set_Prop&gt;__BaseCallProxy1(System.Threading.Tasks.Task`1[System.Int32])" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;get_Prop&gt;__BaseCallProxy2()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>76</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+&lt;Foo&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>177</size>
-      </method>
-    </type>
-    <type name="B+&lt;Foo2&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>191</size>
-      </method>
-    </type>
-    <type name="B+&lt;Foo&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="B+&lt;Foo2&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-34.cs">
-    <type name="C">
-      <method name="System.Threading.Tasks.Task Test(Boolean)" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task Test2(Boolean)" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>66</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>186</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test2&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>89</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test2&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-35.cs">
-    <type name="N.M.C">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] AsyncMethod()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>409</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.M.C+&lt;AsyncMethod&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>165</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="N.M.C">
-      <method name="System.Threading.Tasks.Task NestedAsyncAnonymousMethod()" attrs="150">
-        <size>33</size>
-      </method>
-    </type>
-    <type name="N.M.C+&lt;NestedAsyncAnonymousMethod&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>194</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="N.M.C+&lt;NestedAsyncAnonymousMethod&gt;c__async1+&lt;NestedAsyncAnonymousMethod&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>159</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="N.M.C+&lt;Main&gt;c__async3">
-      <method name="Void MoveNext()" attrs="486">
-        <size>162</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="N.M.C">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Main&gt;m__0()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__1(System.Reflection.MethodInfo)" attrs="145">
-        <size>24</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__2(System.Type)" attrs="145">
-        <size>24</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__3(System.Reflection.MethodInfo)" attrs="145">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="N.M.C+&lt;NestedAsyncAnonymousMethod&gt;c__async1">
-      <method name="Void &lt;&gt;m__0()" attrs="145">
-        <size>27</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-36.cs">
-    <type name="X">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] ExecuteInternalAsync()" attrs="131">
-        <size>15</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Object] ExecuteReaderAsync()" attrs="134">
-        <size>41</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;ExecuteReaderAsync&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>176</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-37.cs">
-    <type name="C">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Test()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>272</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-38.cs">
-    <type name="C">
-      <method name="Void Test()" attrs="129">
-        <size>22</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] GetResultsAsync(System.Object)" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Test&gt;m__0()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>172</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-39.cs">
-    <type name="CompilerBug">
-      <method name="Void Main()" attrs="150">
-        <size>24</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.String] Foo()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CompilerBug+&lt;Foo&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>220</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-40.cs">
-    <type name="Program">
-      <method name="Void F(System.Action`1[Program+C])" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+C">
-      <method name="Void M()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>196</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void &lt;Main&gt;m__0(C)" attrs="145">
-        <size>35</size>
-      </method>
-    </type>
-    <type name="Program+&lt;Main&gt;c__async1">
-      <method name="Void &lt;&gt;m__0()" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-41.cs">
-    <type name="AmbiguousGeneric">
-      <method name="Void NestedVoidTestSuccess()" attrs="134">
-        <size>35</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] ReturnOne()" attrs="145">
-        <size>43</size>
-      </method>
-      <method name="System.Threading.Tasks.Task Run2(System.Func`1[System.Threading.Tasks.Task])" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="System.Threading.Tasks.Task Run2[T](System.Func`1[T])" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AmbiguousGeneric+&lt;NestedVoidTestSuccess&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>191</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="AmbiguousGeneric+&lt;NestedVoidTestSuccess&gt;c__async0+&lt;NestedVoidTestSuccess&gt;c__async5">
-      <method name="Void MoveNext()" attrs="486">
-        <size>162</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="AmbiguousGeneric">
-      <method name="Int32 &lt;ReturnOne&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="AmbiguousGeneric+&lt;NestedVoidTestSuccess&gt;c__async0">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;&gt;m__0()" attrs="145">
-        <size>33</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-42.cs">
-    <type name="A">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] OpenAsync()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="A get_Connection()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Foo()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="T Test[T](System.Func`1[T])" attrs="129">
-        <size>15</size>
-      </method>
-      <method name="System.Threading.Tasks.Task &lt;Foo&gt;m__0()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>189</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__async3">
-      <method name="Void MoveNext()" attrs="486">
-        <size>168</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__async3">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-43.cs">
-    <type name="A">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] GetValue(Int32)" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="A get_Instance()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Foo()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="T Test[T](Int32, System.Func`1[T])" attrs="129">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>242</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__async0+&lt;Foo&gt;c__AnonStorey4">
-      <method name="System.Threading.Tasks.Task &lt;&gt;m__0()" attrs="131">
-        <size>54</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__async0+&lt;Foo&gt;c__AnonStorey4+&lt;Foo&gt;c__async3">
-      <method name="Void MoveNext()" attrs="486">
-        <size>184</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__async0+&lt;Foo&gt;c__AnonStorey4+&lt;Foo&gt;c__async3">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-44.cs">
-    <type name="A">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] GetValue(Int32)" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="A get_Instance()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Foo()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Int32 Bar()" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="T Test[T](Int32, System.Func`1[T])" attrs="129">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>240</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__async0+&lt;Foo&gt;c__AnonStorey4">
-      <method name="System.Threading.Tasks.Task &lt;&gt;m__0()" attrs="131">
-        <size>54</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__async0+&lt;Foo&gt;c__AnonStorey4+&lt;Foo&gt;c__async3">
-      <method name="Void MoveNext()" attrs="486">
-        <size>213</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;Foo&gt;c__async0+&lt;Foo&gt;c__AnonStorey4+&lt;Foo&gt;c__async3">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-45.cs">
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>44</size>
-      </method>
-      <method name="System.Threading.Tasks.Task Connect(System.String[])" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass+&lt;Connect&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>272</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-46.cs">
-    <type name="X">
-      <method name="Void Foo()" attrs="129">
-        <size>27</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Foo&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>158</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-47.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void Test()" attrs="129">
-        <size>32</size>
-      </method>
-      <method name="Void &lt;Test&gt;m__0(System.Object, System.EventArgs)" attrs="129">
-        <size>35</size>
-      </method>
-      <method name="Void &lt;Test&gt;m__1()" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="View">
-      <method name="Void add_Click(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Click(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void Run()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Builder">
-      <method name="Void SetButton(System.Action)" attrs="134">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>90</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-48.cs">
-    <type name="App">
-      <method name="System.Threading.Tasks.Task Test()" attrs="134">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task &lt;Test&gt;m__0()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="App+&lt;Test&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>173</size>
-      </method>
-    </type>
-    <type name="App+&lt;Test&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>76</size>
-      </method>
-    </type>
-    <type name="App+&lt;Test&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="App+&lt;Test&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-49.cs">
-    <type name="TodoItem">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MobileServiceTable2`1[T]">
-      <method name="System.Threading.Tasks.Task`1[System.Collections.Generic.List`1[T]] ToListAsync()" attrs="134">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tests">
-      <method name="Int32 foo(System.Action)" attrs="129">
-        <size>16</size>
-      </method>
-      <method name="Void OnTap(TodoItem)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="System.Threading.Tasks.Task RefreshAsync()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="Int32 &lt;RefreshAsync&gt;m__0(TodoItem)" attrs="129">
-        <size>46</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tests+&lt;RefreshAsync&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>213</size>
-      </method>
-    </type>
-    <type name="Tests+&lt;RefreshAsync&gt;c__AnonStorey1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="Tests+&lt;RefreshAsync&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-50.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="145">
-        <size>19</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] AnimateAsync(System.Action)" attrs="129">
-        <size>21</size>
-      </method>
-      <method name="Void SecondLevel(System.Action)" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="System.Threading.Tasks.Task Run()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void &lt;Run&gt;m__0()" attrs="129">
-        <size>20</size>
-      </method>
-      <method name="Void &lt;Run&gt;m__1()" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Run&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>185</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-51.cs">
-    <type name="Program">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="System.Threading.Tasks.Task LoadPlayers()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="Program+Model">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+Player">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;LoadPlayers&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>117</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="System.Action`1[Program+Player] &lt;LoadPlayers&gt;m__0(System.Action`1[Program+Player])" attrs="129">
-        <size>20</size>
-      </method>
-      <method name="Void &lt;LoadPlayers&gt;m__1(Player)" attrs="129">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Program+Model">
-      <method name="Player get_SelectedPlayer()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_SelectedPlayer(Player)" attrs="2182">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Program+&lt;LoadPlayers&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-      <method name="Void &lt;&gt;m__0(Player)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-52.cs">
-    <type name="ActualValueDelegate`1[T]">
-      <method name="T Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Boolean Matches[T](ActualValueDelegate`1[T])" attrs="145">
-        <size>30</size>
-      </method>
-      <method name="System.Threading.Tasks.Task Throw()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Throw&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>157</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__async3">
-      <method name="Void MoveNext()" attrs="486">
-        <size>160</size>
-      </method>
-    </type>
-    <type name="ActualValueDelegate`1[T]">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="T EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+&lt;Throw&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__async3">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Threading.Tasks.Task &lt;Main&gt;m__0()" attrs="145">
-        <size>33</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-53.cs">
-    <type name="Y">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void add_E(System.Action`2[System.Int32,System.String])" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_E(System.Action`2[System.Int32,System.String])" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void Foo()" attrs="129">
-        <size>54</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Foo&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0(Int32, System.String)" attrs="131">
-        <size>35</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Foo&gt;c__AnonStorey1+&lt;Foo&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>73</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-54.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>79</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestMethod(System.Exception)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task Foo(System.Exception)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestMethod&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>226</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Foo&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>159</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestMethod&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Foo&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-55.cs">
-    <type name="MyContext">
-      <method name="Void Post(System.Threading.SendOrPostCallback, System.Object)" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void Send(System.Threading.SendOrPostCallback, System.Object)" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>232</size>
-      </method>
-      <method name="System.Threading.Tasks.Task ExecuteAsync()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;ExecuteAsync&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>278</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-56.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>70</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestMethod()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestMethod&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>169</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-57.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="System.Threading.Tasks.Task TestAsync()" attrs="132">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="X+&lt;TestAsync&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>172</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-58.cs">
-    <type name="A">
-      <method name="Int32 Get()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] GetAsync()" attrs="134">
-        <size>41</size>
-      </method>
-      <method name="Void Main()" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B+&lt;GetAsync&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>74</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-59.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>119</size>
-      </method>
-      <method name="Void TaskScheduler_UnobservedTaskException(System.Object, System.Threading.Tasks.UnobservedTaskExceptionEventArgs)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="System.Threading.Tasks.Task Test()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task ThrowAsync()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>190</size>
-      </method>
-    </type>
-    <type name="X+&lt;ThrowAsync&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>163</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="X+&lt;ThrowAsync&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-60.cs">
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>19</size>
-      </method>
-      <method name="System.Threading.Tasks.Task AlignTwoItems()" attrs="134">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task MoveItemBy(System.Object, Int32, Int32)" attrs="129">
-        <size>15</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[B] AddItemAt(Int32, Int32)" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;AlignTwoItems&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>469</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="X+&lt;AddItemAt&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>68</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-61.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="System.Threading.Tasks.Task Foo()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void Invoke(System.Action)" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="System.Threading.Tasks.Task &lt;Foo&gt;m__0()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Foo&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>173</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="X+&lt;Foo&gt;c__async6">
-      <method name="Void MoveNext()" attrs="486">
-        <size>142</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="X+&lt;Foo&gt;c__async6+&lt;Foo&gt;c__AnonStorey7">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-62.cs">
-    <type name="Model">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tests`1[X]">
-      <method name="System.Threading.Tasks.Task DeleteClient(Model)" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="System.Threading.Tasks.Task Delete[T](System.Collections.Generic.IEnumerable`1[T])" attrs="134">
-        <size>49</size>
-      </method>
-      <method name="System.Threading.Tasks.Task &lt;Delete`1&gt;m__0[T](T)" attrs="129">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="O">
-      <method name="Void Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tests`1+&lt;Delete&gt;c__async0`1[X,T]">
-      <method name="Void MoveNext()" attrs="486">
-        <size>184</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-63.cs">
-    <type name="C">
-      <method name="System.Threading.Tasks.Task TestSingleAwait(Boolean)" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task TestDoubleAwait(Boolean)" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task Call()" attrs="145">
-        <size>48</size>
-      </method>
-      <method name="Void HH()" attrs="129">
-        <size>12</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>152</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestSingleAwait&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>274</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestDoubleAwait&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>419</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Boolean &lt;Call&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-64.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="T Invoke[T](System.Func`1[System.Threading.Tasks.Task`1[T]])" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>167</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Main&gt;m__0()" attrs="145">
-        <size>33</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-65.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>161</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;TestRethrow&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>363</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Threading.Tasks.Task TestRethrow(System.Exception)" attrs="150">
-        <size>41</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-66.cs">
-    <type name="TestFinally">
-      <method name="System.Threading.Tasks.Task Test(Boolean)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Int32 Main()" attrs="145">
-        <size>95</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestFinally+&lt;Test&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>277</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-67.cs">
-    <type name="Test">
-      <method name="System.Threading.Tasks.Task`1[System.Int32[]] Run()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>53</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Run&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>239</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-69.cs">
-    <type name="Test">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] YieldValue(Int32)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestFinallyWithReturn(Int32)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task TestFinallyWithReturnNoValue(Int32)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestFinallyWithGoto(Int32)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestFinallyWithGotoAndReturn(Int32)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>390</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;YieldValue&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>172</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestFinallyWithReturn&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>377</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestFinallyWithReturnNoValue&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>347</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestFinallyWithGoto&gt;c__async3">
-      <method name="Void MoveNext()" attrs="486">
-        <size>370</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestFinallyWithGotoAndReturn&gt;c__async4">
-      <method name="Void MoveNext()" attrs="486">
-        <size>407</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-70.cs">
-    <type name="Test">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] YieldValue(Int32)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestNestedReturn(Int32)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestNestedGoto(Int32)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>109</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;YieldValue&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>172</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestNestedReturn&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>845</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestNestedGoto&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>848</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-71.cs">
-    <type name="UnsafeContext">
-      <method name="Int32 Main()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestUnsafe(Int32)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="UnsafeContext+&lt;TestUnsafe&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>178</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-72.cs">
-    <type name="Test">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] YieldValue(Int32)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] BreakTest()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] ContinueTest()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>64</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;YieldValue&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>172</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Test+&lt;BreakTest&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>898</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Test+&lt;ContinueTest&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>898</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-73.cs">
-    <type name="X">
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Foo()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Throws()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Int32 Main()" attrs="145">
-        <size>32</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Foo&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>214</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="X+&lt;Throws&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>63</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-74.cs">
-    <type name="AwaitGotoBug">
-      <method name="System.Threading.Tasks.Task Test()" attrs="134">
-        <size>33</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="AwaitGotoBug+&lt;Test&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>337</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-75.cs">
-    <type name="CorrectEncodingOfNestedTypes">
-      <method name="System.Threading.Tasks.Task`1[T] GetAsync[T](System.String)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>91</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CorrectEncodingOfNestedTypes+&lt;GetAsync&gt;c__async0`1[T]">
-      <method name="Void MoveNext()" attrs="486">
-        <size>218</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="CorrectEncodingOfNestedTypes+&lt;GetAsync&gt;c__async0`1+&lt;GetAsync&gt;c__AnonStorey5[T]">
-      <method name="System.Threading.Tasks.Task`1[T] &lt;&gt;m__0()" attrs="131">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CorrectEncodingOfNestedTypes+&lt;GetAsync&gt;c__async0`1+&lt;GetAsync&gt;c__AnonStorey5+&lt;GetAsync&gt;c__async4[T]">
-      <method name="Void MoveNext()" attrs="486">
-        <size>190</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-76.cs">
-    <type name="N.C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.X">
-      <method name="Void N.I&lt;N.C&gt;.Foo(N.C)" attrs="481">
-        <size>27</size>
-      </method>
-      <method name="Void PrintType(Mono.Cecil.TypeDefinition, Int32)" attrs="145">
-        <size>138</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="N.X+&lt;N_I&lt;N_C&gt;_Foo&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>157</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="N.X">
-      <method name="Int32 Main()" attrs="150">
-        <size>153</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-77.cs">
-    <type name="Class1">
-      <method name="Void InvokeAction(System.Action)" attrs="132">
-        <size>8</size>
-      </method>
-      <method name="Void Bar()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="System.Threading.Tasks.Task Test()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>17</size>
-      </method>
-      <method name="System.Threading.Tasks.Task &lt;Test&gt;m__0()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Class1+CIInterface1">
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] Foo(System.Action`1[System.String])" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Class1+ServiceLocator">
-      <method name="TService GetImplementor[TService]()" attrs="150">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="Class1+&lt;Test&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>88</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Class1+&lt;Test&gt;c__async6">
-      <method name="Void MoveNext()" attrs="486">
-        <size>264</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Class1+&lt;Test&gt;c__async6+&lt;Test&gt;c__AnonStorey7">
-      <method name="Void &lt;&gt;m__0(System.String)" attrs="131">
-        <size>8</size>
-      </method>
-      <method name="Void &lt;&gt;m__1()" attrs="131">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-78.cs">
-    <type name="ExceptionHelper">
-      <method name="System.Threading.Tasks.Task ConditionalCatchExceptThreadAbortAsync(System.Func`1[System.Threading.Tasks.Task], System.Action`1[System.Exception])" attrs="150">
-        <size>41</size>
-      </method>
-    </type>
-    <type name="ATask">
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] OnDoWorkAsync()" attrs="134">
-        <size>41</size>
-      </method>
-      <method name="System.Threading.Tasks.Task &lt;OnDoWorkAsync&gt;m__0()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="Tests">
-      <method name="Void Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ExceptionHelper+&lt;ConditionalCatchExceptThreadAbortAsync&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>73</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="ATask+&lt;OnDoWorkAsync&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>182</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="ATask+&lt;OnDoWorkAsync&gt;c__async4">
-      <method name="Void MoveNext()" attrs="486">
-        <size>248</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="ATask+&lt;OnDoWorkAsync&gt;c__async4+&lt;OnDoWorkAsync&gt;c__AnonStorey7">
-      <method name="System.Threading.Tasks.Task &lt;&gt;m__0()" attrs="131">
-        <size>46</size>
-      </method>
-      <method name="Void &lt;&gt;m__1(System.Exception)" attrs="131">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ATask+&lt;OnDoWorkAsync&gt;c__async4+&lt;OnDoWorkAsync&gt;c__AnonStorey7+&lt;OnDoWorkAsync&gt;c__async6">
-      <method name="Void MoveNext()" attrs="486">
-        <size>82</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-async-79.cs">
-    <type name="Test">
-      <method name="System.Threading.Tasks.Task ExecuteCore()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>81</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;ExecuteCore&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>380</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-      <method name="System.Threading.Tasks.Task &lt;&gt;m__0()" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-cls-00.cs">
-    <type name="CLSCLass_6">
-      <method name="Void add_Disposed(Delegate)" attrs="2182">
-        <size>20</size>
-      </method>
-      <method name="Void remove_Disposed(Delegate)" attrs="2182">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-    <type name="Delegate">
-      <method name="CLSDelegate Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="CLSDelegate">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSClass_5">
-      <method name="UInt32 Test()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSClass_4">
-      <method name="UInt32 Test()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSClass_3">
-      <method name="UInt32 Test_3()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSClass_2">
-      <method name="SByte get_XX()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSClass_1">
-      <method name="UInt32 Valid()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSClass">
-      <method name="UInt64 Valid()" attrs="129">
-        <size>11</size>
-      </method>
-      <method name="Byte get_XX()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="UInt32 FooInternal()" attrs="131">
-        <size>10</size>
-      </method>
-      <method name="UInt64 Foo()" attrs="129">
-        <size>11</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSClass+C1">
-      <method name="Int64 Foo2()" attrs="132">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSClass+C1+C11">
-      <method name="UInt64 Foo3()" attrs="132">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSClass+CLSClass_2">
-      <method name="SByte get_XX()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Delegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="CLSDelegate EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-cls-01.cs">
-    <type name="CLSClass">
-      <method name="Byte get_XX()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Big">
-      <method name="Big op_Implicit(UInt32)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C1">
-      <method name="Void method(UInt32)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-cls-02.cs">
-    <type name="CLSClass">
-      <method name="Void set_X_0(UInt64)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="Void set_Item(UInt64, UInt64)" attrs="2180">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(UInt64)" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(UInt32)" attrs="6275">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="InnerTypeClasss">
-      <method name="Struct Method()" attrs="134">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-cls-03.cs">
-    <type name="CLSClass">
-      <method name="I1 Foo()" attrs="133">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-cls-05.cs">
-    <type name="X1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X3">
-      <method name="Void bb(Boolean)" attrs="131">
-        <size>2</size>
-      </method>
-      <method name="Void BB()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X4">
-      <method name="Void method(Int32)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void method(Boolean)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Boolean method()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="BaseClass">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSClass">
-      <method name="CLSClass op_Implicit(Boolean)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="CLSClass op_Implicit(Int32)" attrs="2198">
-        <size>15</size>
-      </method>
-      <method name="Void Method()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Int32 Method(Boolean)" attrs="131">
-        <size>10</size>
-      </method>
-      <method name="Void methoD()" attrs="131">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="oBject">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.C1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B.c1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="c1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSClass_2">
-      <method name="Void Method()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void method()" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="System.sByte">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="System.Web.HttpBrowserCapabilities">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-cls-06.cs">
-    <type name="MyDelegate">
-      <method name="UInt32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="CLSClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSClass+MyDelegate">
-      <method name="UInt32 Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="CLSClass_2">
-      <method name="Void .ctor(Int32[,,])" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Int32[,])" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="X1">
-      <method name="Void M2(Int32)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X2">
-      <method name="Void M2(Int32 ByRef)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="UInt32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="CLSClass+MyDelegate">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="UInt32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="CLSClass_2">
-      <method name="Void Test(Int32[,], Int32)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Test(Int32[,,], Boolean)" attrs="134">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-cls-07.cs">
-    <type name="aa.I1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-cls-10.cs">
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-cls-11.cs">
-    <type name="CLSClass">
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSCLass_2">
-      <method name="Void Test()" attrs="1478">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSClass_3">
-      <method name="Void Test()" attrs="1475">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSClass">
-      <method name="Void Test(System.IComparable)" attrs="1478">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-cls-12.cs">
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-cls-14.cs">
-    <type name="CLSClass">
-      <method name="CLSClass op_Implicit(Byte)" attrs="2198">
-        <size>14</size>
-      </method>
-      <method name="Void Error(Boolean)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-cls-15.cs">
-    <type name="CLSAttribute_1">
-      <method name="Void .ctor(Int32[])" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="CLSAttribute_2">
-      <method name="Void .ctor(Int32)" attrs="6273">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="CLSAttribute_3">
-      <method name="Void .ctor(Int32[])" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="CLSAttribute_4">
-      <method name="Void .ctor(Int32[])" attrs="6273">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="ClassMain">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-cls-16.cs">
-    <type name="CLSAttribute">
-      <method name="Void .ctor(Boolean[])" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="ClassMain">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-cls-17.cs">
-    <type name="Foo">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-cls-18.cs">
-    <type name="Base">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CLSClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Base">
-      <method name="Void Test(Int32[])" attrs="454">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="CLSClass">
-      <method name="Void Test(Int32[])" attrs="198">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-cls-19.cs">
-    <type name="A">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+PartialClass">
-      <method name="Void Method1(Int32)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Method2(UInt32)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void Method3(UInt32)" attrs="134">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-com-01.cs">
-    <type name="CorMetaDataDispenserExClass">
-      <method name="Void .ctor()" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void XXX()" attrs="150">
-        <size>13</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-com-02.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(ITopic)" attrs="6278">
-        <size>32</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-com-03.cs">
-    <type name="X">
-      <method name="Void Test_PropertyOptionalParameters(C)" attrs="129">
-        <size>46</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>23</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-01.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-02.cs">
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="C2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="C3">
-      <method name="Void .ctor()" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="C4">
-      <method name="Void .ctor()" attrs="6278">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6273">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-03.cs">
-    <type name="C">
-      <method name="Void .cctor()" attrs="6289">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="C2">
-      <method name="Void .cctor()" attrs="6289">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-04.cs">
-    <type name="C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="C2">
-      <method name="Void .ctor()" attrs="6273">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-05.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>6</size>
-      </method>
-      <method name="Void Hidden()" attrs="129">
-        <size>12</size>
-      </method>
-      <method name="Void HiddenRecurse()" attrs="129">
-        <size>19</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-06.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void TryCatch_1()" attrs="129">
-        <size>17</size>
-      </method>
-      <method name="Void TryCatch_2()" attrs="129">
-        <size>19</size>
-      </method>
-      <method name="Void TryCatch_3()" attrs="129">
-        <size>26</size>
-      </method>
-      <method name="Void TryFinally_1()" attrs="129">
-        <size>12</size>
-      </method>
-      <method name="Void TryFinally_2()" attrs="129">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-07.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>7</size>
-      </method>
-      <method name="Int32 Foo2()" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo3()" attrs="129">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-08.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>1</size>
-      </method>
-      <method name="Void Foo()" attrs="129">
-        <size>1</size>
-      </method>
-      <method name="Int32 Foo2()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Int32 Foo3()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-09.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void add_e(System.Action)" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void remove_e(System.Action)" attrs="2177">
-        <size>42</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-10.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Int32 get_Prop()" attrs="2193">
-        <size>10</size>
-      </method>
-      <method name="Void set_Prop(Int32)" attrs="2193">
-        <size>2</size>
-      </method>
-      <method name="Int32 get_PropAuto()" attrs="2193">
-        <size>13</size>
-      </method>
-      <method name="Void set_PropAuto(Int32)" attrs="2193">
-        <size>7</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-11.cs">
-    <type name="S">
-      <method name="Void Dispose()" attrs="486">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void If(System.String)" attrs="129">
-        <size>27</size>
-      </method>
-      <method name="Void If_2(System.String)" attrs="129">
-        <size>50</size>
-      </method>
-      <method name="Void If_3(Int32)" attrs="129">
-        <size>18</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Using_1()" attrs="129">
-        <size>31</size>
-      </method>
-      <method name="Void Using_2()" attrs="129">
-        <size>58</size>
-      </method>
-      <method name="Void Using_3()" attrs="129">
-        <size>53</size>
-      </method>
-      <method name="Void Lock()" attrs="129">
-        <size>31</size>
-      </method>
-      <method name="Void Lock_2()" attrs="129">
-        <size>30</size>
-      </method>
-      <method name="Void Switch_1(Int32)" attrs="129">
-        <size>61</size>
-      </method>
-      <method name="Void Switch_3(System.String)" attrs="129">
-        <size>211</size>
-      </method>
-      <method name="Void Switch_4(System.String)" attrs="129">
-        <size>60</size>
-      </method>
-      <method name="Void Checked()" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Void DoWhile(Int32)" attrs="129">
-        <size>24</size>
-      </method>
-      <method name="Void DoWhile_2()" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Void While_2()" attrs="129">
-        <size>19</size>
-      </method>
-      <method name="Void For_1()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="Void For_2()" attrs="129">
-        <size>15</size>
-      </method>
-      <method name="Void ForEach_2(System.Collections.Generic.List`1[System.Object])" attrs="129">
-        <size>56</size>
-      </method>
-      <method name="Void ForEach_3(S)" attrs="129">
-        <size>61</size>
-      </method>
-      <method name="Void Using_4()" attrs="129">
-        <size>38</size>
-      </method>
-      <method name="Void Switch_2(System.Nullable`1[System.Int32])" attrs="129">
-        <size>57</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="486">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void ForEach(Int32[])" attrs="129">
-        <size>31</size>
-      </method>
-      <method name="Void ForEach_4(Int32[,])" attrs="129">
-        <size>78</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-12.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-13.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Iter_1&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>72</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Iter_2&gt;c__Iterator1">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>26</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Iter_1()" attrs="129">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="C+&lt;Iter_1&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="C+&lt;Iter_2&gt;c__Iterator1">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Collections.IEnumerable Iter_2()" attrs="129">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="C+&lt;Iter_1&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="C+&lt;Iter_2&gt;c__Iterator1">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-14.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Test_1()" attrs="129">
-        <size>32</size>
-      </method>
-      <method name="Void Test_2()" attrs="129">
-        <size>32</size>
-      </method>
-      <method name="Void Test_3()" attrs="129">
-        <size>32</size>
-      </method>
-      <method name="Void Test_Capturing_1(Int32)" attrs="129">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_Capturing_1&gt;c__AnonStorey0">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void &lt;Test_1&gt;m__0()" attrs="145">
-        <size>6</size>
-      </method>
-      <method name="Void &lt;Test_2&gt;m__1()" attrs="145">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;Test_3&gt;m__2()" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-15.cs">
-    <type name="Foo">
-      <method name="Void Finalize()" attrs="196">
-        <size>29</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-16.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Test_1()" attrs="129">
-        <size>34</size>
-      </method>
-      <method name="Void Test_2()" attrs="129">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-17.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Test_1()" attrs="129">
-        <size>76</size>
-      </method>
-      <method name="Void Test_2()" attrs="129">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-18.cs">
-    <type name="C">
-      <method name="Void add_OutEvent(System.Func`1[System.Int32])" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void remove_OutEvent(System.Func`1[System.Int32])" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void M[U,V](U ByRef, V ByRef)" attrs="134">
-        <size>17</size>
-      </method>
-      <method name="Void Test_1()" attrs="129">
-        <size>169</size>
-      </method>
-      <method name="Void Test_2()" attrs="129">
-        <size>91</size>
-      </method>
-      <method name="Void Test_3()" attrs="129">
-        <size>130</size>
-      </method>
-      <method name="Void Test_4()" attrs="129">
-        <size>485</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_3&gt;c__DynamicSite2+Container0">
-      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, System.Object ByRef, System.Object ByRef)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 &lt;Test_4&gt;m__0()" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-19.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Test_1()" attrs="145">
-        <size>27</size>
-      </method>
-      <method name="System.Threading.Tasks.Task RunAsync()" attrs="145">
-        <size>48</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Test_2()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] RunAsync_2()" attrs="145">
-        <size>48</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Boolean] Test_3()" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_1&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>156</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_2&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>163</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_3&gt;c__async2">
-      <method name="Void MoveNext()" attrs="486">
-        <size>1229</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_1&gt;c__async0">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_2&gt;c__async1">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_3&gt;c__async2">
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void &lt;RunAsync&gt;m__0()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 &lt;RunAsync_2&gt;m__1()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test_3&gt;c__async2">
-      <method name="Int32 &lt;&gt;m__0()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-20.cs">
-    <type name="S`1[T]">
-      <method name="Void .ctor(T)" attrs="6278">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-21.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Void &lt;&gt;__Finally0()" attrs="129">
-        <size>13</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>150</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>57</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test()" attrs="129">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-22.cs">
-    <type name="A">
-      <method name="Int32 Foo()" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Foo()" attrs="198">
-        <size>7</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Int32 &lt;Foo&gt;__BaseCallProxy0()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;GetIter&gt;c__Iterator0">
-      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>19</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>82</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] GetIter()" attrs="134">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="C+&lt;GetIter&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-23.cs">
-    <type name="Program">
-      <method name="Void Test_1()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void Test_2()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void Test_3()" attrs="129">
-        <size>13</size>
-      </method>
-      <method name="Void Test_4()" attrs="129">
-        <size>44</size>
-      </method>
-      <method name="Int32 BindCore()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Program Prog()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Program get_Prop()" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Program &lt;Test_4&gt;m__0()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-24.cs">
-    <type name="C">
-      <method name="Void Test_1()" attrs="129">
-        <size>14</size>
-      </method>
-      <method name="Void Test_2()" attrs="129">
-        <size>23</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-25.cs">
-    <type name="TestClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-26.cs">
-    <type name="P">
-      <method name="Void Foo()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-27.cs">
-    <type name="S">
-      <method name="Int32 op_Implicit(S)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 A()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Int32 B(C)" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="C Test()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="System.String Foo()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void Test_1()" attrs="129">
-        <size>46</size>
-      </method>
-      <method name="Void Test_2()" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Void Test_3()" attrs="129">
-        <size>32</size>
-      </method>
-      <method name="Void Test_4()" attrs="129">
-        <size>13</size>
-      </method>
-      <method name="Int32 Main()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-debug-28.cs">
-    <type name="StatementsAsBlocks">
-      <method name="Void ForEach(System.String[])" attrs="145">
-        <size>64</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-decl-expr-01.cs">
-    <type name="DeclarationExpression">
-      <method name="Int32 Main()" attrs="150">
-        <size>223</size>
-      </method>
-      <method name="Boolean Out(Int32 ByRef)" attrs="145">
-        <size>13</size>
-      </method>
-      <method name="Boolean Out2(Int32 ByRef, System.String)" attrs="145">
-        <size>14</size>
-      </method>
-      <method name="Void Out3[T](T ByRef)" attrs="145">
-        <size>17</size>
-      </method>
-      <method name="Void Ref(Int32 ByRef)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-decl-expr-02.cs">
-    <type name="DeclarationExpressions">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void M2()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Int32 Test(Int32)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-dictinit-01.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="145">
-        <size>181</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 get_Item(System.String)" attrs="2182">
-        <size>21</size>
-      </method>
-      <method name="Void set_Item(System.String, Int32)" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-dictinit-02.cs">
-    <type name="Program">
-      <method name="Int32 Main()" attrs="145">
-        <size>182</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="C get_Item(System.String)" attrs="2182">
-        <size>50</size>
-      </method>
-      <method name="Void set_Item(System.String, C)" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-dictinit-03.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="145">
-        <size>135</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>20</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-dictinit-04.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="145">
-        <size>84</size>
-      </method>
-      <method name="Void .ctor(Int32*)" attrs="6273">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-ex-filter-01.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>46</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-ex-filter-02.cs">
-    <type name="X">
-      <method name="Int32 TestGeneral()" attrs="145">
-        <size>77</size>
-      </method>
-      <method name="Int32 TestSpecific()" attrs="145">
-        <size>157</size>
-      </method>
-      <method name="Boolean Foo(System.Action)" attrs="145">
-        <size>16</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>61</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;TestSpecific&gt;c__AnonStorey0">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>13</size>
-      </method>
-      <method name="Void &lt;&gt;m__1()" attrs="131">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-ex-filter-03.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>52</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-ex-filter-04.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>253</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] Test(Int32, System.Exception)" attrs="145">
-        <size>49</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestGeneric(Int32)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>281</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="X+&lt;TestGeneric&gt;c__async1">
-      <method name="Void MoveNext()" attrs="486">
-        <size>250</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-ex-filter-05.cs">
-    <type name="Test">
-      <method name="Boolean Verify(System.Func`1[System.Boolean])" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="System.Threading.Tasks.Task`1[System.Int32] TestCapturedException(System.Exception)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>64</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestCapturedException&gt;c__async0">
-      <method name="Void MoveNext()" attrs="486">
-        <size>491</size>
-      </method>
-      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestCapturedException&gt;c__async0+&lt;TestCapturedException&gt;c__AnonStorey1">
-      <method name="Boolean &lt;&gt;m__0()" attrs="131">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;TestCapturedException&gt;c__async0+&lt;TestCapturedException&gt;c__AnonStorey2">
-      <method name="Boolean &lt;&gt;m__0()" attrs="131">
-        <size>25</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-ex-filter-06.cs">
-    <type name="C">
-      <method name="Int32 Test[T]()" attrs="145">
-        <size>61</size>
-      </method>
-      <method name="Int32 Main()" attrs="145">
-        <size>49</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-expression-bodied-01.cs">
-    <type name="C">
-      <method name="System.String Test1(System.String, System.String)" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void Test2(Int32)" attrs="129">
-        <size>8</size>
-      </method>
-      <method name="System.Func`1[System.Int32] Test3(Int32)" attrs="129">
-        <size>33</size>
-      </method>
-      <method name="System.String op_Implicit(C)" attrs="2198">
-        <size>13</size>
-      </method>
-      <method name="System.String get_Prop()" attrs="2180">
-        <size>30</size>
-      </method>
-      <method name="System.Func`1[System.String] get_Prop2()" attrs="2193">
-        <size>37</size>
-      </method>
-      <method name="Int32 get_Item(Int32, Int32)" attrs="2182">
-        <size>11</size>
-      </method>
-      <method name="Int32 Check()" attrs="129">
-        <size>213</size>
-      </method>
-      <method name="Int32 Main()" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>29</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test3&gt;c__AnonStorey0">
-      <method name="Int32 &lt;&gt;m__0()" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.String &lt;get_Prop2&gt;m__0()" attrs="145">
-        <size>13</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-externalias-01.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>92</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-externalias-02.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>92</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-externalias-03.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>92</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-externalias-04.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>92</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-externalias-05.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-externalias-06.cs">
-    <type name="MyAssembly01.Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyAssembly01.Namespace1.Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyAssembly02.Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyAssembly02.Namespace1.Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-externalias-07.cs">
-    <type name="NS.MyClass">
-      <method name="Int32 GetInt()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-externalias-08.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>82</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-externalias-09.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-interpolation-01.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>581</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-interpolation-02.cs">
-    <type name="System.FormattableString">
-      <method name="System.String get_Value()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Value(System.String)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor(String, Object[])" attrs="6278">
-        <size>22</size>
-      </method>
-    </type>
-    <type name="System.Runtime.CompilerServices.FormattableStringFactory">
-      <method name="System.Object Create(System.String, System.Object[])" attrs="150">
-        <size>43</size>
-      </method>
-    </type>
-    <type name="MyFormattable">
-      <method name="System.String System.IFormattable.ToString(System.String, System.IFormatProvider)" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ConversionTest">
-      <method name="Int32 Main()" attrs="145">
-        <size>120</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-interpolation-03.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>36</size>
-      </method>
-      <method name="Void RunTest(System.Action)" attrs="145">
-        <size>8</size>
-      </method>
-      <method name="Void &lt;Main&gt;m__0()" attrs="145">
-        <size>22</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-interpolation-04.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>88</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-interpolation-05.cs">
-    <type name="ParserTest">
-      <method name="Void Test1()" attrs="129">
-        <size>41</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void Test2()" attrs="129">
-        <size>12</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-01.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>199</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>149</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt2&gt;c__Iterator1">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>149</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerator GetIt()" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="System.Collections.IEnumerable GetIt2()" attrs="145">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt2&gt;c__Iterator1">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-02.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>103</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetRange&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>196</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerator GetRange()" attrs="145">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-03.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>275</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>159</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetMulti&gt;c__Iterator1">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>246</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetMulti&gt;c__Iterator1">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerable GetIt(Int32[])" attrs="145">
-        <size>30</size>
-      </method>
-      <method name="System.Collections.IEnumerable GetMulti(Int32[,])" attrs="145">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetMulti&gt;c__Iterator1">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-04.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>104</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetRange&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>130</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerable GetRange(Int32, Int32)" attrs="145">
-        <size>37</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetRange&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-05.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>119</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="List">
-      <method name="Void Add(Int32)" attrs="134">
-        <size>27</size>
-      </method>
-      <method name="MyEnumerator GetEnumerator()" attrs="134">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>27</size>
-      </method>
-    </type>
-    <type name="List+MyEnumerator">
-      <method name="System.Object get_Current()" attrs="2534">
-        <size>32</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>39</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor(List)" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>191</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerable GetIt()" attrs="145">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="List">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>20</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-06.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>449</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S+&lt;Get&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>198</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S+&lt;GetS&gt;c__Iterator1">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>159</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S+&lt;Get&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-    </type>
-    <type name="S+&lt;GetS&gt;c__Iterator1">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="X+&lt;Get&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>154</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetS&gt;c__Iterator1">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>159</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="System.Collections.IEnumerable Get(Int32)" attrs="134">
-        <size>42</size>
-      </method>
-      <method name="System.Collections.IEnumerable GetS(Int32)" attrs="150">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerable Get(Int32)" attrs="129">
-        <size>30</size>
-      </method>
-      <method name="System.Collections.IEnumerable GetS(Int32)" attrs="145">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="S+&lt;Get&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="S+&lt;GetS&gt;c__Iterator1">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="X+&lt;Get&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetS&gt;c__Iterator1">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-07.cs">
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>464</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Foo&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>264</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>107</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void &lt;&gt;__Finally0()" attrs="129">
-        <size>13</size>
-      </method>
-      <method name="Void &lt;&gt;__Finally1()" attrs="129">
-        <size>13</size>
-      </method>
-      <method name="Void &lt;&gt;__Finally2()" attrs="129">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.IEnumerable Foo(Int32)" attrs="134">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="Test+&lt;Foo&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-08.cs">
-    <type name="Foo">
-      <method name="Void Dispose()" attrs="486">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>210</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>377</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>93</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;__Finally0()" attrs="129">
-        <size>23</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerable Test(Int32, Int32)" attrs="150">
-        <size>37</size>
-      </method>
-    </type>
-    <type name="X+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-09.cs">
-    <type name="Tester">
-      <method name="Void .ctor()" attrs="6278">
-        <size>154</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>282</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester+&lt;GetEnumerator&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>693</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>103</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Tester">
-      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="134">
-        <size>22</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-10.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>211</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>149</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;&gt;c__Iterator1">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>168</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerator get_GetIt()" attrs="2193">
-        <size>15</size>
-      </method>
-      <method name="Void set_GetIt(System.Collections.IEnumerator)" attrs="2193">
-        <size>2</size>
-      </method>
-      <method name="System.Collections.IEnumerable get_Item(Int32)" attrs="2177">
-        <size>30</size>
-      </method>
-      <method name="Void set_Item(Int32, System.Collections.IEnumerable)" attrs="2177">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="X+&lt;&gt;c__Iterator1">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-11.cs">
-    <type name="X">
-      <method name="Void add_Hook(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_Hook(System.EventHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void M(System.Object, System.EventArgs)" attrs="145">
-        <size>12</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>57</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Pipeline&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>131</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerator Pipeline()" attrs="134">
-        <size>22</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-12.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;a&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>190</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>57</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void &lt;&gt;__Finally0()" attrs="129">
-        <size>20</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerable a()" attrs="129">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="X+&lt;a&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-13.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="Test+Yp">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;syntax_error&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>27</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.IEnumerable syntax_error(System.Object, System.Object)" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Test+Yp">
-      <method name="System.Collections.IEnumerable fail()" attrs="134">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Test+&lt;syntax_error&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-14.cs">
-    <type name="XX">
-      <method name="Void Metodo(System.Exception)" attrs="145">
-        <size>42</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>69</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="XX+&lt;X&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>98</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="XX">
-      <method name="System.Collections.IEnumerable X()" attrs="145">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="XX+&lt;X&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-15.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void Run()" attrs="129">
-        <size>180</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>142</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="134">
-        <size>22</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-16.cs">
-    <type name="Foo">
-      <method name="Int32 Main()" attrs="150">
-        <size>78</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo+&lt;foo&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>38</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="Foo">
-      <method name="System.Collections.IEnumerable foo()" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Foo+&lt;foo&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-17.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="150">
-        <size>62</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Program+&lt;&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>168</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="System.Collections.IEnumerable get_Empty()" attrs="2198">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Program+&lt;&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-18.cs">
-    <type name="test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="reflect">
-      <method name="Void Main(System.String[])" attrs="150">
-        <size>127</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="test+&lt;testen&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>214</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="test">
-      <method name="System.Collections.IEnumerable testen(Int32)" attrs="134">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="test+&lt;testen&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-19.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>84</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="134">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-20.cs">
-    <type name="CustomDict">
-      <method name="Void .ctor()" attrs="6278">
-        <size>70</size>
-      </method>
-    </type>
-    <type name="Tests">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CustomDict+&lt;GetEnumerator&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>93</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="CustomDict">
-      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="134">
-        <size>22</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-21.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>138</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+A">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>242</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0+&lt;GetIt&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>40</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerable GetIt(Int32[])" attrs="145">
-        <size>30</size>
-      </method>
-    </type>
-    <type name="X+A">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-22.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>207</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>83</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="134">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-23.cs">
-    <type name="X">
-      <method name="Int32 Delay()" attrs="145">
-        <size>28</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>141</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>12</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt2&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>117</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;Main&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0(System.Object)" attrs="131">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt2&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Collections.IEnumerable GetIt2()" attrs="145">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="X+&lt;GetIt2&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-25.cs">
-    <type name="D">
-      <method name="Void Dispose()" attrs="486">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="UploadAction">
-      <method name="Void RunOnThread(System.Action)" attrs="150">
-        <size>8</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="UploadAction+&lt;TagsError&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>60</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="UploadAction+&lt;TagsError&gt;c__Iterator0+&lt;TagsError&gt;c__AnonStorey1">
-      <method name="Void &lt;&gt;m__0()" attrs="131">
-        <size>44</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="UploadAction">
-      <method name="System.Collections.Generic.IEnumerable`1[System.Object] TagsError()" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="UploadAction+&lt;TagsError&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-iter-26.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>101</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>52</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.Collections.IEnumerable Test(Boolean, Int32)" attrs="150">
-        <size>37</size>
-      </method>
-    </type>
-    <type name="C+&lt;Test&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-named-01.cs">
-    <type name="A">
-      <method name="Void set_Item(Int32, Int32)" attrs="2502">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor(Object)" attrs="6276">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void set_Item(Int32, Int32)" attrs="2246">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>13</size>
-      </method>
-    </type>
-    <type name="XAttribute">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="M">
-      <method name="Void Foo(Int32)" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>61</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-named-02.cs">
-    <type name="A">
-      <method name="Void set_Item(Int32, Int32)" attrs="2182">
-        <size>30</size>
-      </method>
-      <method name="Int32 get_Item(Int32)" attrs="2182">
-        <size>36</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="MyPoint">
-      <method name="Void .ctor(Int32, Int32)" attrs="6278">
-        <size>16</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.String Bar(Int32, System.String, Char)" attrs="145">
-        <size>34</size>
-      </method>
-      <method name="Int32 Test(Int32, Int32)" attrs="145">
-        <size>38</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>334</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Decimal Foo(System.Decimal, System.Decimal)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-named-03.cs">
-    <type name="C">
-      <method name="Int32 TestInt(Int32)" attrs="145">
-        <size>11</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>31</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C+IntDelegate">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-named-04.cs">
-    <type name="Program">
-      <method name="Void Foo2(Int32, Int32 ByRef)" attrs="145">
-        <size>41</size>
-      </method>
-      <method name="Void Test[T](T[])" attrs="145">
-        <size>23</size>
-      </method>
-      <method name="Void Foo[T](T, T ByRef)" attrs="145">
-        <size>9</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>311</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-named-05.cs">
-    <type name="A">
-      <method name="Int32 Foo(Int32)" attrs="454">
-        <size>10</size>
-      </method>
-      <method name="Int32 get_Item(Int32, System.String)" attrs="2502">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Int32 Foo(Int32)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 get_Item(Int32, System.String)" attrs="2182">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>131</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-named-06.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>38</size>
-      </method>
-      <method name="Int32 Foo(Int32, Int64, System.String)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo(Int32, Int64, System.String[])" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo(Int64, Int32)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-named-07.cs">
-    <type name="C">
-      <method name="Int32 Foo(System.Object, Boolean, Boolean, Boolean, System.Object)" attrs="145">
-        <size>97</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-named-08.cs">
-    <type name="C">
-      <method name="Int32 Foo(System.String, Int32)" attrs="145">
-        <size>18</size>
-      </method>
-      <method name="Int32 Foo(System.String, Int32, Boolean, Boolean)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Foo(Double, Boolean, Boolean, Boolean)" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-named-09.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>11</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-nameof-01.cs">
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-nameof-02.cs">
-    <type name="A`1[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A`1+B[T]">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int64 get_Prop()" attrs="2177">
-        <size>14</size>
-      </method>
-      <method name="Void set_Prop(Int64)" attrs="2177">
-        <size>8</size>
-      </method>
-      <method name="Void add_ev(System.Action)" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Void remove_ev(System.Action)" attrs="2177">
-        <size>42</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>83</size>
-      </method>
-      <method name="Void GenMethod[T,U,V]()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 SimpleName[T](T)" attrs="129">
-        <size>17</size>
-      </method>
-      <method name="Int32 MemberAccess()" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Int32 QualifiedName()" attrs="129">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-nameof-03.cs">
-    <type name="T2">
-      <method name="Int32 nameof(System.String)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>37</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-nameof-04.cs">
-    <type name="Ambiguous">
-      <method name="Int32 Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-null-operator-01.cs">
-    <type name="S">
-      <method name="Int32 get_Prop()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Prop(Int32)" attrs="2182">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="CI">
-      <method name="Int32 Method()" attrs="486">
-        <size>11</size>
-      </method>
-      <method name="Int32 get_Prop()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Prop(Int32)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="System.String get_Prop()" attrs="2193">
-        <size>22</size>
-      </method>
-      <method name="Int32 TestArray()" attrs="145">
-        <size>477</size>
-      </method>
-      <method name="Int32 TestReferenceType()" attrs="145">
-        <size>229</size>
-      </method>
-      <method name="Int32 TestGeneric[T](T)" attrs="145">
-        <size>118</size>
-      </method>
-      <method name="Int32 TestNullable()" attrs="145">
-        <size>386</size>
-      </method>
-      <method name="Int32 Main()" attrs="145">
-        <size>120</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-null-operator-010.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="145">
-        <size>79</size>
-      </method>
-      <method name="Void Test_1[T](T)" attrs="145">
-        <size>22</size>
-      </method>
-      <method name="Void Test_2[T](T)" attrs="145">
-        <size>21</size>
-      </method>
-      <method name="Void Test_3[T](T[])" attrs="145">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Ext">
-      <method name="Void Call[T](T)" attrs="150">
-        <size>17</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-null-operator-011.cs">
-    <type name="Crash">
-      <method name="System.String GetFoo()" attrs="145">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="145">
-        <size>27</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-null-operator-02.cs">
-    <type name="CI">
-      <method name="Int32 get_Prop()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Prop(Int32)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="System.Nullable`1[System.Byte] get_PropNullable()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_PropNullable(System.Nullable`1[System.Byte])" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="System.Object get_PropReference()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_PropReference(System.Object)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void add_ev1(System.Action)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_ev1(System.Action)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 TestProperty()" attrs="145">
-        <size>359</size>
-      </method>
-      <method name="Int32 TestField()" attrs="145">
-        <size>351</size>
-      </method>
-      <method name="Int32 Main()" attrs="145">
-        <size>64</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-null-operator-03.cs">
-    <type name="C">
-      <method name="Int32 Test1()" attrs="129">
-        <size>82</size>
-      </method>
-      <method name="Int32 Main()" attrs="145">
-        <size>62</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-null-operator-04.cs">
-    <type name="D">
-      <method name="Void Foo()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>26</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-null-operator-05.cs">
-    <type name="CI">
-      <method name="Void set_Item(System.String, System.String)" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="System.String get_Item(System.String)" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Item(Int32, System.Nullable`1[System.Int32])" attrs="2182">
-        <size>2</size>
-      </method>
-      <method name="System.Nullable`1[System.Int32] get_Item(Int32)" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 TestArrayAccess()" attrs="145">
-        <size>263</size>
-      </method>
-      <method name="Int32 TestIndexerAccess()" attrs="145">
-        <size>188</size>
-      </method>
-      <method name="Int32 Main()" attrs="145">
-        <size>64</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-null-operator-06.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="145">
-        <size>459</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-null-operator-07.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="145">
-        <size>93</size>
-      </method>
-      <method name="System.String EM(System.Object)" attrs="145">
-        <size>26</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-null-operator-08.cs">
-    <type name="Program">
-      <method name="Void M[T](T)" attrs="145">
-        <size>88</size>
-      </method>
-      <method name="Void M2[T](T[])" attrs="145">
-        <size>64</size>
-      </method>
-      <method name="Void M2_2[T](T[])" attrs="145">
-        <size>114</size>
-      </method>
-      <method name="Void M3[T](System.Nullable`1[T])" attrs="145">
-        <size>106</size>
-      </method>
-      <method name="Void Main()" attrs="145">
-        <size>165</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="Void Foo(Boolean)" attrs="486">
-        <size>38</size>
-      </method>
-    </type>
-    <type name="Program">
-      <method name="Void TestAddress_1[T](T)" attrs="145">
-        <size>56</size>
-      </method>
-      <method name="Void TestAddress_2[T](T[])" attrs="145">
-        <size>82</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-null-operator-09.cs">
-    <type name="D">
-      <method name="Int32 Invoke(Int32)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>88</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>42</size>
-      </method>
-      <method name="Int32 &lt;d&gt;m__0(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-01.cs">
-    <type name="Foo.Hello">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar.Hello">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="X.Test">
-      <method name="Int32 FooWorld()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Int32 BarWorld()" attrs="150">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Int32 Main()" attrs="150">
-        <size>47</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-02.cs">
-    <type name="Test1.Base">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test1.Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test2.Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="ReflectedType">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-03.cs">
-    <type name="Test">
-      <method name="Int32 TestFoo()" attrs="134">
-        <size>21</size>
-      </method>
-      <method name="Int32 TestIFoo(IFoo)" attrs="134">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="Test+Foo">
-      <method name="Int32 Test.IFoo.Hello(Test)" attrs="481">
-        <size>10</size>
-      </method>
-      <method name="Int32 Hello(Test)" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>60</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-04.cs">
-    <type name="B.Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B.Test">
-      <method name="Void A.IFoo.Hello(A.IFoo)" attrs="481">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-05.cs">
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A2">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-06.cs">
-    <type name="Foo">
-      <method name="Void Finalize()" attrs="196">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-07.cs">
-    <type name="Test">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestAttribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test2Attribute">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>80</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-08.cs">
-    <type name="Foo">
-      <method name="System.String get_Id()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="PartialAbstractCompilationError">
-      <method name="Int32 Main()" attrs="150">
-        <size>67</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-09.cs">
-    <type name="Foo">
-      <method name="System.String get_Id()" attrs="2182">
-        <size>15</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Bar">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="PartialAbstractCompilationError">
-      <method name="Void Main()" attrs="150">
-        <size>22</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-10.cs">
-    <type name="Test2.Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test3.Foo">
-      <method name="Void .cctor()" attrs="6289">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>96</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-11.cs">
-    <type name="StaticClass">
-      <method name="System.String Name()" attrs="150">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="MainClass">
-      <method name="Boolean IsStatic(System.Type)" attrs="145">
-        <size>93</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>74</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-12.cs">
-    <type name="Test1.Foo">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>112</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test1.Foo+&lt;E&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>76</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>15</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="Test1.Foo">
-      <method name="System.Collections.IEnumerable E()" attrs="147">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Test1.Foo+&lt;E&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-13.cs">
-    <type name="Test.Test">
-      <method name="Boolean Equals(System.Object)" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Int32 GetHashCode()" attrs="198">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-14.cs">
-    <type name="T">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="partial">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A">
-      <method name="Void partial(partial)" attrs="134">
-        <size>4</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-15.cs">
-    <type name="Foo.X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo.X+&lt;Attempts2&gt;c__Iterator0">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>32</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo.X+&lt;&gt;c__Iterator1">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>32</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo.X+&lt;&gt;c__Iterator2">
-      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
-        <size>14</size>
-      </method>
-      <method name="Boolean MoveNext()" attrs="486">
-        <size>32</size>
-      </method>
-      <method name="Void Dispose()" attrs="486">
-        <size>1</size>
-      </method>
-      <method name="Void Reset()" attrs="486">
-        <size>6</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Foo.X+&lt;Attempts2&gt;c__Iterator0">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="Foo.X+&lt;&gt;c__Iterator1">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="Foo.X+&lt;&gt;c__Iterator2">
-      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
-        <size>26</size>
-      </method>
-    </type>
-    <type name="Foo.X">
-      <method name="System.Collections.IEnumerable get_Attempts()" attrs="2198">
-        <size>23</size>
-      </method>
-      <method name="System.Collections.IEnumerable get_Item(Int32)" attrs="2182">
-        <size>23</size>
-      </method>
-      <method name="System.Collections.IEnumerable Attempts2()" attrs="150">
-        <size>23</size>
-      </method>
-    </type>
-    <type name="Foo.X+&lt;Attempts2&gt;c__Iterator0">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Foo.X+&lt;&gt;c__Iterator1">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="Foo.X+&lt;&gt;c__Iterator2">
-      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-16.cs">
-    <type name="A.C">
-      <method name="Void .ctor()" attrs="6278">
-        <size>23</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="B.C2">
-      <method name="Boolean Test()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="System.Object Test_I()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-17.cs">
-    <type name="Test">
-      <method name="Boolean Check(System.String, System.String[])" attrs="150">
-        <size>58</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-18.cs">
-    <type name="N.Foo">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>18</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-19.cs">
-    <type name="Bug.GL">
-      <method name="Void Main()" attrs="150">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Bug.GL+Core">
-      <method name="Boolean A()" attrs="147">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-20.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>56</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-21.cs">
-    <type name="Mono.Sms.Main">
-      <method name="Void Test()" attrs="134">
-        <size>43</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Mono.Sms.Contacts">
-      <method name="Void Test()" attrs="134">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Mono.Sms.Contacts+ContactsHandler">
-      <method name="Void Invoke()" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Mono.Sms.Core.Agenda">
-      <method name="Void AddContact()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Mono.Sms.Contacts">
-      <method name="Void add_ContactsEventHandler(ContactsHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-      <method name="Void remove_ContactsEventHandler(ContactsHandler)" attrs="2182">
-        <size>42</size>
-      </method>
-    </type>
-    <type name="Mono.Sms.Contacts+ContactsHandler">
-      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
-        <size>0</size>
-      </method>
-      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
-        <size>0</size>
-      </method>
-    </type>
-    <type name="Mono.Sms.Main">
-      <method name="Void &lt;Test&gt;m__0()" attrs="145">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-22.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-23.cs">
-    <type name="C">
-      <method name="Void Partial_A()" attrs="129">
-        <size>16</size>
-      </method>
-      <method name="Void Partial_B()" attrs="129">
-        <size>16</size>
-      </method>
-      <method name="Void Partial_S()" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>70</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-24.cs">
-    <type name="N.C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void Foo()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-25.cs">
-    <type name="C">
-      <method name="Void Partial(Int32)" attrs="145">
-        <size>15</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-26.cs">
-    <type name="TestAttributesCollecting.A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestAttributesCollecting.X">
-      <method name="Void Foo[T](Int32)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestAttributesCollecting.Y">
-      <method name="Void Foo()" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestAttributesCollecting.Program">
-      <method name="Int32 Main()" attrs="150">
-        <size>151</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-27.cs">
-    <type name="C">
-      <method name="Int32 Main()" attrs="150">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-28.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestCase">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-29.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-    </type>
-    <type name="D">
-      <method name="Void Method(Int32)" attrs="145">
-        <size>2</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-30.cs">
-    <type name="PartialProblems.Classes">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="PartialProblems.Classes+partial">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="PartialProblems.Classes">
-      <method name="Void M1(partial)" attrs="129">
-        <size>2</size>
-      </method>
-      <method name="partial M3()" attrs="129">
-        <size>10</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-31.cs">
-    <type name="TestPartialOverride.BaseNamespace.Base">
-      <method name="Void OverrideMe()" attrs="452">
-        <size>17</size>
-      </method>
-      <method name="Void .ctor()" attrs="6276">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestPartialOverride.Outer.Nested.Namespace.Inherits">
-      <method name="Void OverrideMe()" attrs="196">
-        <size>17</size>
-      </method>
-      <method name="Void DoesSomethignElse()" attrs="134">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="TestPartialOverride.Outer.C">
-      <method name="Void Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-32.cs">
-    <type name="A.C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.C+N">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X.C1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X.C1+N1">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-partial-33.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-pattern-01.cs">
-    <type name="TypePattern">
-      <method name="Int32 Main()" attrs="150">
-        <size>227</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-pattern-02.cs">
-    <type name="ConstantPattern">
-      <method name="Int32 Main()" attrs="150">
-        <size>609</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;PatternMatchingHelper&gt;">
-      <method name="Boolean NumberMatcher(System.Object, System.Object, Boolean)" attrs="150">
-        <size>69</size>
-      </method>
-    </type>
-    <type name="ConstantPattern">
-      <method name="Boolean Generic[T](T)" attrs="145">
-        <size>28</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-pattern-03.cs">
-    <type name="WildcardPattern">
-      <method name="Int32 Main()" attrs="145">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-pattern-04.cs">
-    <type name="RecursivePattern">
-      <method name="Int32 Main()" attrs="145">
-        <size>750</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C1">
-      <method name="Boolean op_Is(C1, Int32 ByRef)" attrs="2198">
-        <size>13</size>
-      </method>
-      <method name="Boolean op_Is(C1, C1 ByRef, C1 ByRef)" attrs="2198">
-        <size>16</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="Boolean op_Is(S, System.Nullable`1[System.Int32] ByRef, System.Decimal ByRef)" attrs="2198">
-        <size>34</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-pattern-05.cs">
-    <type name="RecursiveNamedPattern">
-      <method name="Int32 Main()" attrs="150">
-        <size>204</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Boolean op_Is(C, Int64 ByRef, System.String ByRef)" attrs="2198">
-        <size>22</size>
-      </method>
-      <method name="Boolean op_Is(C)" attrs="2198">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-pattern-06.cs">
-    <type name="RecursiveNamedPattern">
-      <method name="Int32 Main()" attrs="150">
-        <size>159</size>
-      </method>
-      <method name="Int32 Switch_1(System.Object)" attrs="145">
-        <size>53</size>
-      </method>
-      <method name="Int32 Switch_2(C1)" attrs="145">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="C1">
-      <method name="Boolean op_Is(C1, Int32 ByRef)" attrs="2198">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="&lt;PatternMatchingHelper&gt;">
-      <method name="Boolean NumberMatcher(System.Object, System.Object, Boolean)" attrs="150">
-        <size>69</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-pattern-07.cs">
-    <type name="PropertyPattern">
-      <method name="Int32 Main()" attrs="145">
-        <size>684</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Object get_Field()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Field(System.Object)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Y">
-      <method name="Char get_Prop()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Prop(Char)" attrs="2182">
-        <size>8</size>
-      </method>
-      <method name="Boolean op_Is(Y, Int32 ByRef)" attrs="2198">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Object get_Value()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_Value(System.Object)" attrs="2182">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="&lt;PatternMatchingHelper&gt;">
-      <method name="Boolean NumberMatcher(System.Object, System.Object, Boolean)" attrs="150">
-        <size>69</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="System.Nullable`1[System.Int64] get_NullableValue()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void set_NullableValue(System.Nullable`1[System.Int64])" attrs="2182">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-pragma-unrecognized.cs">
-    <type name="C">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-primary-ctor-01.cs">
-    <type name="Simple">
-      <method name="Int32 get_Property()" attrs="2177">
-        <size>14</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>89</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="S">
-      <method name="Void .ctor(Decimal)" attrs="6278">
-        <size>8</size>
-      </method>
-      <method name="System.Decimal get_Property()" attrs="2179">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-primary-ctor-02.cs">
-    <type name="Part">
-      <method name="Int32 get_Property()" attrs="2177">
-        <size>14</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>41</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>20</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-primary-ctor-03.cs">
-    <type name="D">
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="Base">
-      <method name="System.String get_Prop()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor(Object)" attrs="6276">
-        <size>19</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>49</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-primary-ctor-04.cs">
-    <type name="Derived">
-      <method name="Void .ctor(Int32, Byte&amp;, Int32&amp;)" attrs="6278">
-        <size>24</size>
-      </method>
-    </type>
-    <type name="Base">
-      <method name="Void .ctor(Int32&amp;)" attrs="6275">
-        <size>11</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>74</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-primary-ctor-05.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 get_P()" attrs="2182">
-        <size>14</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>63</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>21</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-primary-ctor-06.cs">
-    <type name="ID">
-      <method name="Void System.IDisposable.Dispose()" attrs="481">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-primary-ctor-07.cs">
-    <type name="S">
-      <method name="Void .ctor(Char)" attrs="6278">
-        <size>9</size>
-      </method>
-      <method name="Void .cctor()" attrs="6289">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>180</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="S2">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-    <type name="S3">
-      <method name="Void .ctor(Int32, String)" attrs="6278">
-        <size>9</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>8</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-primary-ctor-08.cs">
-    <type name="S">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>9</size>
-      </method>
-    </type>
-    <type name="C">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>62</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-primary-ctor-09.cs">
-    <type name="A">
-      <method name="Void .ctor(Func`2)" attrs="6278">
-        <size>14</size>
-      </method>
-    </type>
-    <type name="PC">
-      <method name="Void .ctor(Int32)" attrs="6278">
-        <size>50</size>
-      </method>
-    </type>
-    <type name="X">
-      <method name="Int32 Main()" attrs="150">
-        <size>70</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="PC+&lt;f1&gt;c__AnonStorey0">
-      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Int32 &lt;&gt;m__1(Int32)" attrs="131">
-        <size>14</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-static-using-01.cs">
-    <type name="A.B.X">
-      <method name="Int32 Test()" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="C.M">
-      <method name="Int32 Main()" attrs="150">
-        <size>28</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-static-using-02.cs">
-    <type name="A.B.X">
-      <method name="Int32 Test(System.Object)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="A.C.X">
-      <method name="Int32 Test(Int32)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="C.M">
-      <method name="Int32 Main()" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-static-using-03.cs">
-    <type name="A.B.X">
-      <method name="Int32 Test(Int32)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="A.C.X">
-      <method name="Int32 Test(Int32)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="C.M">
-      <method name="Int32 Main()" attrs="150">
-        <size>29</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-static-using-04.cs">
-    <type name="A.B.X">
-      <method name="Int32 Test(System.Object)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="A.C.X">
-      <method name="Int32 Test(Int32)" attrs="145">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="C.M">
-      <method name="Int32 Main()" attrs="150">
-        <size>34</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-static-using-05.cs">
-    <type name="Test">
-      <method name="Void Main()" attrs="145">
-        <size>56</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-      <method name="Boolean &lt;Main&gt;m__0(Int32)" attrs="145">
-        <size>14</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-static-using-06.cs">
-    <type name="A.B.X">
-      <method name="Int32 Test(System.Object)" attrs="150">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="A.C.X">
-      <method name="Int32 Test[T](T)" attrs="150">
-        <size>47</size>
-      </method>
-    </type>
-    <type name="C.M">
-      <method name="Int32 Main()" attrs="150">
-        <size>33</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-static-using-07.cs">
-    <type name="S">
-      <method name="Int32 Foo()" attrs="147">
-        <size>10</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>72</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-static-using-08.cs">
-    <type name="A">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A+N">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Void Main()" attrs="150">
-        <size>4</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-static-using-09.cs">
-    <type name="Program">
-      <method name="Void Main()" attrs="145">
-        <size>9</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-static-using-10.cs">
-    <type name="A.T">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="A.T+N">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="B.Program">
-      <method name="Void Main()" attrs="145">
-        <size>19</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-var-01.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>70</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-var-02.cs">
-    <type name="Class1">
-      <method name="Boolean Method()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>164</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="Test+Class2">
-      <method name="Boolean Method()" attrs="134">
-        <size>10</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-var-03.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>201</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-var-04.cs">
-    <type name="Test.A">
-      <method name="Int32 Main()" attrs="150">
-        <size>12</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-var-05.cs">
-    <type name="MyClass">
-      <method name="Void Dispose()" attrs="486">
-        <size>13</size>
-      </method>
-      <method name="Void .ctor(String)" attrs="6278">
-        <size>15</size>
-      </method>
-    </type>
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>72</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-var-06.cs">
-    <type name="Test">
-      <method name="Int32 Main()" attrs="150">
-        <size>68</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-var-07.cs">
-    <type name="Test">
-      <method name="Void var()" attrs="145">
-        <size>2</size>
-      </method>
-      <method name="Int32 Main()" attrs="150">
-        <size>51</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-    <type name="var">
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-var-08.cs">
-    <type name="X">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void .ctor(Int32, Int32)" attrs="6278">
-        <size>11</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-var-09.cs">
-    <type name="A">
-      <method name="Int32 Main()" attrs="150">
-        <size>20</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-  <test name="test-xml-042.cs">
-    <type name="TestNamespace.TestClass">
-      <method name="Void Main()" attrs="150">
-        <size>2</size>
-      </method>
-      <method name="Void FunctionWithParameter(Int32 ByRef, Int32 ByRef)" attrs="134">
-        <size>8</size>
-      </method>
-      <method name="Void .ctor()" attrs="6278">
-        <size>7</size>
-      </method>
-    </type>
-  </test>
-</tests>
\ No newline at end of file
diff --git a/mcs/tests/ver-il-net_4_x.xml b/mcs/tests/ver-il-net_4_x.xml
new file mode 100644 (file)
index 0000000..47cfe2c
--- /dev/null
@@ -0,0 +1,70838 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--This file contains expected IL and metadata produced by compiler for each test-->
+<tests>
+  <test name="dtest-001.cs">
+    <type name="C">
+      <method name="Void set_Prop(System.Object)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="System.Object get_Prop()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Prop2(System.Object)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void set_Item(System.Object, System.Object)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="System.Object get_Item(System.Object)" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="System.Object Method(System.Object)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor(Object)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Del">
+      <method name="System.Object Invoke(System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>1292</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Del">
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.Object EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-002.cs">
+    <type name="C">
+      <method name="System.Object D()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="System.Object D2()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AC">
+      <method name="Void Foo(System.Object[])" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BC">
+      <method name="Void Foo(System.Object[])" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-003.cs">
+    <type name="AssertDynamicObject">
+      <method name="System.Dynamic.DynamicMetaObject GetFakeMetaObject(System.Object)" attrs="129">
+        <size>130</size>
+      </method>
+      <method name="System.Dynamic.DynamicMetaObject BindBinaryOperation(System.Dynamic.BinaryOperationBinder, System.Dynamic.DynamicMetaObject)" attrs="198">
+        <size>70</size>
+      </method>
+      <method name="System.Dynamic.DynamicMetaObject BindConvert(System.Dynamic.ConvertBinder)" attrs="198">
+        <size>61</size>
+      </method>
+      <method name="System.Dynamic.DynamicMetaObject BindGetIndex(System.Dynamic.GetIndexBinder, System.Dynamic.DynamicMetaObject[])" attrs="198">
+        <size>104</size>
+      </method>
+      <method name="System.Dynamic.DynamicMetaObject BindGetMember(System.Dynamic.GetMemberBinder)" attrs="198">
+        <size>61</size>
+      </method>
+      <method name="System.Dynamic.DynamicMetaObject BindInvoke(System.Dynamic.InvokeBinder, System.Dynamic.DynamicMetaObject[])" attrs="198">
+        <size>104</size>
+      </method>
+      <method name="System.Dynamic.DynamicMetaObject BindInvokeMember(System.Dynamic.InvokeMemberBinder, System.Dynamic.DynamicMetaObject[])" attrs="198">
+        <size>104</size>
+      </method>
+      <method name="System.Dynamic.DynamicMetaObject BindSetIndex(System.Dynamic.SetIndexBinder, System.Dynamic.DynamicMetaObject[], System.Dynamic.DynamicMetaObject)" attrs="198">
+        <size>110</size>
+      </method>
+      <method name="System.Dynamic.DynamicMetaObject BindSetMember(System.Dynamic.SetMemberBinder, System.Dynamic.DynamicMetaObject)" attrs="198">
+        <size>70</size>
+      </method>
+      <method name="System.Dynamic.DynamicMetaObject BindUnaryOperation(System.Dynamic.UnaryOperationBinder)" attrs="198">
+        <size>61</size>
+      </method>
+      <method name="Void .ctor(DynamicObjectMock, Expression)" attrs="6278">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="DynamicObjectMock">
+      <method name="System.Dynamic.DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression)" attrs="198">
+        <size>30</size>
+      </method>
+      <method name="Void DMethod(Int32)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void DStaticMethod(System.Object)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Void Assert[T](T, T, System.String)" attrs="145">
+        <size>99</size>
+      </method>
+      <method name="Void AssertArgument(System.Runtime.CompilerServices.CallSiteBinder, Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo[], System.String)" attrs="145">
+        <size>172</size>
+      </method>
+      <method name="Void BinaryAdd_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>124</size>
+      </method>
+      <method name="Void BinaryAdd_2(System.Object, DynamicObjectMock)" attrs="129">
+        <size>134</size>
+      </method>
+      <method name="Void BinaryAdd_3(System.Object, DynamicObjectMock)" attrs="129">
+        <size>124</size>
+      </method>
+      <method name="Void BinaryAdd_4(System.Object, DynamicObjectMock)" attrs="129">
+        <size>128</size>
+      </method>
+      <method name="Void BinaryAddChecked_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>124</size>
+      </method>
+      <method name="Void BinaryAddChecked_2(System.Object, DynamicObjectMock)" attrs="129">
+        <size>72</size>
+      </method>
+      <method name="Void BinaryAddAssign_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryAddAssignChecked_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>127</size>
+      </method>
+      <method name="Void BinaryAnd_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>124</size>
+      </method>
+      <method name="Void BinaryAndAssign_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryDivide_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryDivideAssign_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryEqual_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryExclusiveOr_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryExclusiveOrAssign_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryGreaterThan_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryGreaterThanOrEqual_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryLeftShift_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryLeftShiftAssign_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryLessThan_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryLessThanOrEqual_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryLogicalAnd_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>117</size>
+      </method>
+      <method name="Void BinaryLogicalOr_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>118</size>
+      </method>
+      <method name="Void BinaryModulo_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryModuloAssign_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryMultiply_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryMultiplyAssign_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryNotEqual_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryOr_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryOrAssign_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryRightShift_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinaryRightShiftAssign_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinarySubtract_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void BinarySubtractAssign_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void Convert_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>111</size>
+      </method>
+      <method name="Void Convert_2(System.Object, DynamicObjectMock)" attrs="129">
+        <size>116</size>
+      </method>
+      <method name="Void Convert_3(System.Object, DynamicObjectMock)" attrs="129">
+        <size>111</size>
+      </method>
+      <method name="Void Convert_4(System.Object, DynamicObjectMock)" attrs="129">
+        <size>111</size>
+      </method>
+      <method name="Void Convert_5(System.Object, DynamicObjectMock)" attrs="129">
+        <size>230</size>
+      </method>
+      <method name="Void GetIndex_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>122</size>
+      </method>
+      <method name="Void GetIndex_2(System.Object, DynamicObjectMock)" attrs="129">
+        <size>140</size>
+      </method>
+      <method name="Void GetIndex_3(System.Object, DynamicObjectMock)" attrs="129">
+        <size>123</size>
+      </method>
+      <method name="Void GetMember_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>116</size>
+      </method>
+      <method name="Void Invoke_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>140</size>
+      </method>
+      <method name="Void Invoke_2(System.Object, DynamicObjectMock)" attrs="129">
+        <size>114</size>
+      </method>
+      <method name="Void Invoke_3(System.Object, DynamicObjectMock)" attrs="129">
+        <size>144</size>
+      </method>
+      <method name="Void Invoke_4(System.Object, DynamicObjectMock)" attrs="129">
+        <size>149</size>
+      </method>
+      <method name="Void Invoke_5(System.Object, DynamicObjectMock)" attrs="129">
+        <size>155</size>
+      </method>
+      <method name="Void Invoke_6(System.Object, DynamicObjectMock)" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void InvokeMember_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>132</size>
+      </method>
+      <method name="Void InvokeMember_2(System.Object, DynamicObjectMock)" attrs="129">
+        <size>137</size>
+      </method>
+      <method name="Void InvokeMember_3(System.Object, DynamicObjectMock)" attrs="129">
+        <size>136</size>
+      </method>
+      <method name="Void InvokeMember_4(System.Object, DynamicObjectMock)" attrs="129">
+        <size>133</size>
+      </method>
+      <method name="Void InvokeMember_5(System.Object, DynamicObjectMock)" attrs="129">
+        <size>106</size>
+      </method>
+      <method name="Void InvokeMember_6(System.Object, DynamicObjectMock)" attrs="129">
+        <size>143</size>
+      </method>
+      <method name="Void InvokeMember_7(System.Object, DynamicObjectMock)" attrs="129">
+        <size>138</size>
+      </method>
+      <method name="Void InvokeMember_8(System.Object, DynamicObjectMock)" attrs="129">
+        <size>141</size>
+      </method>
+      <method name="Void SetIndex_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>137</size>
+      </method>
+      <method name="Void SetIndex_2(System.Object, DynamicObjectMock)" attrs="129">
+        <size>151</size>
+      </method>
+      <method name="Void SetIndex_3(System.Object, DynamicObjectMock)" attrs="129">
+        <size>140</size>
+      </method>
+      <method name="Void SetMember_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>134</size>
+      </method>
+      <method name="Void SetMember_2(System.Object, DynamicObjectMock)" attrs="129">
+        <size>373</size>
+      </method>
+      <method name="Void UnaryPlus_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>114</size>
+      </method>
+      <method name="Void UnaryMinus_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>114</size>
+      </method>
+      <method name="Void UnaryNot_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>114</size>
+      </method>
+      <method name="Void UnaryOnesComplement_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>114</size>
+      </method>
+      <method name="Void UnaryDecrement_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>117</size>
+      </method>
+      <method name="Void UnaryDecrement_2(System.Object, DynamicObjectMock)" attrs="129">
+        <size>119</size>
+      </method>
+      <method name="Void UnaryIncrement_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>117</size>
+      </method>
+      <method name="Void UnaryIncrement_2(System.Object, DynamicObjectMock)" attrs="129">
+        <size>119</size>
+      </method>
+      <method name="Void UnaryIsFalse_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>159</size>
+      </method>
+      <method name="Void UnaryIsFalse_2(System.Object, DynamicObjectMock)" attrs="129">
+        <size>159</size>
+      </method>
+      <method name="Void UnaryIsFalse_3(System.Object, DynamicObjectMock)" attrs="129">
+        <size>246</size>
+      </method>
+      <method name="Void UnaryIsTrue_1(System.Object, DynamicObjectMock)" attrs="129">
+        <size>130</size>
+      </method>
+      <method name="Void UnaryIsTrue_2(System.Object, DynamicObjectMock)" attrs="129">
+        <size>247</size>
+      </method>
+      <method name="Void UnaryIsTrue_3(System.Object, DynamicObjectMock)" attrs="129">
+        <size>249</size>
+      </method>
+      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
+        <size>123</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>187</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Object)" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>34</size>
+      </method>
+    </type>
+    <type name="AssertDynamicObject+&lt;GetFakeMetaObject&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;InvokeMember_3&gt;c__DynamicSite32+Container0">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, Int32 ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;InvokeMember_4&gt;c__DynamicSite33+Container0">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, Int32 ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;InvokeMember_8&gt;c__DynamicSite37+Container0">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, System.Object ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Void Assert[T](System.Collections.Generic.IList`1[T], System.Collections.Generic.IList`1[T], System.String)" attrs="145">
+        <size>257</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;BinaryAddChecked_2&gt;c__AnonStorey0">
+      <method name="System.Object &lt;&gt;m__0()" attrs="131">
+        <size>98</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;GetIndex_3&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0(System.Dynamic.GetIndexBinder, System.Object[])" attrs="131">
+        <size>93</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;InvokeMember_2&gt;c__AnonStorey2">
+      <method name="Void &lt;&gt;m__0(System.Dynamic.InvokeMemberBinder, System.Object[])" attrs="131">
+        <size>110</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;InvokeMember_6&gt;c__AnonStorey3">
+      <method name="Void &lt;&gt;m__0(System.Dynamic.InvokeMemberBinder, System.Object[])" attrs="131">
+        <size>120</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;SetIndex_3&gt;c__AnonStorey4">
+      <method name="Void &lt;&gt;m__0(System.Dynamic.SetIndexBinder, System.Object[], System.Object)" attrs="131">
+        <size>120</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;SetMember_2&gt;c__AnonStorey5">
+      <method name="System.Object &lt;&gt;m__0(System.Dynamic.GetMemberBinder)" attrs="131">
+        <size>80</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AssertDynamicObject">
+      <method name="System.Object &lt;BindGetIndex&gt;m__0(System.Dynamic.DynamicMetaObject)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="System.Object &lt;BindInvoke&gt;m__1(System.Dynamic.DynamicMetaObject)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="System.Object &lt;BindInvokeMember&gt;m__2(System.Dynamic.DynamicMetaObject)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="System.Object &lt;BindSetIndex&gt;m__3(System.Dynamic.DynamicMetaObject)" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Void &lt;BinaryAdd_1&gt;m__0(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>73</size>
+      </method>
+      <method name="Void &lt;BinaryAdd_2&gt;m__1(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>68</size>
+      </method>
+      <method name="Void &lt;BinaryAdd_3&gt;m__2(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>73</size>
+      </method>
+      <method name="Void &lt;BinaryAdd_4&gt;m__3(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>73</size>
+      </method>
+      <method name="Void &lt;BinaryAddChecked_1&gt;m__4(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>73</size>
+      </method>
+      <method name="Void &lt;BinaryAddChecked_2&gt;m__5(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>73</size>
+      </method>
+      <method name="Void &lt;BinaryAddAssign_1&gt;m__6(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryAddAssignChecked_1&gt;m__7(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryAnd_1&gt;m__8(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>73</size>
+      </method>
+      <method name="Void &lt;BinaryAndAssign_1&gt;m__9(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryDivide_1&gt;m__A(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryDivideAssign_1&gt;m__B(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryEqual_1&gt;m__C(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryExclusiveOr_1&gt;m__D(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryExclusiveOrAssign_1&gt;m__E(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryGreaterThan_1&gt;m__F(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryGreaterThanOrEqual_1&gt;m__10(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryLeftShift_1&gt;m__11(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryLeftShiftAssign_1&gt;m__12(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryLessThan_1&gt;m__13(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryLessThanOrEqual_1&gt;m__14(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryModulo_1&gt;m__15(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryModuloAssign_1&gt;m__16(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryMultiply_1&gt;m__17(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryMultiplyAssign_1&gt;m__18(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryNotEqual_1&gt;m__19(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryOr_1&gt;m__1A(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryOrAssign_1&gt;m__1B(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryRightShift_1&gt;m__1C(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinaryRightShiftAssign_1&gt;m__1D(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinarySubtract_1&gt;m__1E(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;BinarySubtractAssign_1&gt;m__1F(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="System.Object &lt;Convert_1&gt;m__20(System.Dynamic.ConvertBinder)" attrs="145">
+        <size>58</size>
+      </method>
+      <method name="System.Object &lt;Convert_2&gt;m__21(System.Dynamic.ConvertBinder)" attrs="145">
+        <size>58</size>
+      </method>
+      <method name="System.Object &lt;Convert_3&gt;m__22(System.Dynamic.ConvertBinder)" attrs="145">
+        <size>58</size>
+      </method>
+      <method name="System.Object &lt;Convert_4&gt;m__23(System.Dynamic.ConvertBinder)" attrs="145">
+        <size>58</size>
+      </method>
+      <method name="System.Object &lt;Convert_5&gt;m__24(System.Dynamic.ConvertBinder)" attrs="145">
+        <size>67</size>
+      </method>
+      <method name="Void &lt;GetIndex_1&gt;m__25(System.Dynamic.GetIndexBinder, System.Object[])" attrs="145">
+        <size>93</size>
+      </method>
+      <method name="Void &lt;GetIndex_2&gt;m__26(System.Dynamic.GetIndexBinder, System.Object[])" attrs="145">
+        <size>112</size>
+      </method>
+      <method name="System.Object &lt;GetMember_1&gt;m__27(System.Dynamic.GetMemberBinder)" attrs="145">
+        <size>75</size>
+      </method>
+      <method name="Void &lt;Invoke_1&gt;m__28(System.Dynamic.InvokeBinder, System.Object[])" attrs="145">
+        <size>102</size>
+      </method>
+      <method name="Void &lt;Invoke_2&gt;m__29(System.Dynamic.InvokeBinder, System.Object[])" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void &lt;Invoke_4&gt;m__2A(System.Dynamic.InvokeBinder, System.Object[])" attrs="145">
+        <size>128</size>
+      </method>
+      <method name="Void &lt;Invoke_5&gt;m__2B(System.Dynamic.InvokeBinder, System.Object[])" attrs="145">
+        <size>92</size>
+      </method>
+      <method name="Void &lt;Invoke_5&gt;m__2C(System.Object)" attrs="145">
+        <size>94</size>
+      </method>
+      <method name="Void &lt;Invoke_6&gt;m__2D(System.Dynamic.InvokeBinder, System.Object[])" attrs="145">
+        <size>93</size>
+      </method>
+      <method name="Void &lt;InvokeMember_1&gt;m__2E(System.Dynamic.InvokeMemberBinder, System.Object[])" attrs="145">
+        <size>111</size>
+      </method>
+      <method name="Void &lt;InvokeMember_3&gt;m__2F(System.Dynamic.InvokeMemberBinder, System.Object[])" attrs="145">
+        <size>112</size>
+      </method>
+      <method name="Void &lt;InvokeMember_4&gt;m__30(System.Dynamic.InvokeMemberBinder, System.Object[])" attrs="145">
+        <size>111</size>
+      </method>
+      <method name="Void &lt;InvokeMember_7&gt;m__31(System.Dynamic.InvokeMemberBinder, System.Object[])" attrs="145">
+        <size>91</size>
+      </method>
+      <method name="Void &lt;InvokeMember_8&gt;m__32(System.Dynamic.InvokeMemberBinder, System.Object[])" attrs="145">
+        <size>112</size>
+      </method>
+      <method name="Void &lt;SetIndex_1&gt;m__33(System.Dynamic.SetIndexBinder, System.Object[], System.Object)" attrs="145">
+        <size>125</size>
+      </method>
+      <method name="Void &lt;SetIndex_2&gt;m__34(System.Dynamic.SetIndexBinder, System.Object[], System.Object)" attrs="145">
+        <size>140</size>
+      </method>
+      <method name="Void &lt;SetMember_1&gt;m__35(System.Dynamic.SetMemberBinder, System.Object)" attrs="145">
+        <size>102</size>
+      </method>
+      <method name="Void &lt;SetMember_2&gt;m__36(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>69</size>
+      </method>
+      <method name="Void &lt;SetMember_2&gt;m__37(System.Dynamic.SetMemberBinder, System.Object)" attrs="145">
+        <size>77</size>
+      </method>
+      <method name="System.Object &lt;UnaryPlus_1&gt;m__38(System.Dynamic.UnaryOperationBinder)" attrs="145">
+        <size>55</size>
+      </method>
+      <method name="System.Object &lt;UnaryMinus_1&gt;m__39(System.Dynamic.UnaryOperationBinder)" attrs="145">
+        <size>55</size>
+      </method>
+      <method name="System.Object &lt;UnaryNot_1&gt;m__3A(System.Dynamic.UnaryOperationBinder)" attrs="145">
+        <size>55</size>
+      </method>
+      <method name="System.Object &lt;UnaryOnesComplement_1&gt;m__3B(System.Dynamic.UnaryOperationBinder)" attrs="145">
+        <size>55</size>
+      </method>
+      <method name="System.Object &lt;UnaryDecrement_1&gt;m__3C(System.Dynamic.UnaryOperationBinder)" attrs="145">
+        <size>55</size>
+      </method>
+      <method name="System.Object &lt;UnaryDecrement_2&gt;m__3D(System.Dynamic.UnaryOperationBinder)" attrs="145">
+        <size>59</size>
+      </method>
+      <method name="System.Object &lt;UnaryIncrement_1&gt;m__3E(System.Dynamic.UnaryOperationBinder)" attrs="145">
+        <size>55</size>
+      </method>
+      <method name="System.Object &lt;UnaryIncrement_2&gt;m__3F(System.Dynamic.UnaryOperationBinder)" attrs="145">
+        <size>59</size>
+      </method>
+      <method name="System.Object &lt;UnaryIsFalse_1&gt;m__40(System.Dynamic.UnaryOperationBinder)" attrs="145">
+        <size>60</size>
+      </method>
+      <method name="Void &lt;UnaryIsFalse_1&gt;m__41(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>69</size>
+      </method>
+      <method name="System.Object &lt;UnaryIsFalse_2&gt;m__42(System.Dynamic.UnaryOperationBinder)" attrs="145">
+        <size>60</size>
+      </method>
+      <method name="Void &lt;UnaryIsFalse_2&gt;m__43(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>69</size>
+      </method>
+      <method name="System.Object &lt;UnaryIsFalse_3&gt;m__44(System.Dynamic.UnaryOperationBinder)" attrs="145">
+        <size>60</size>
+      </method>
+      <method name="Void &lt;UnaryIsFalse_3&gt;m__45(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>68</size>
+      </method>
+      <method name="System.Object &lt;UnaryIsTrue_1&gt;m__46(System.Dynamic.UnaryOperationBinder)" attrs="145">
+        <size>60</size>
+      </method>
+      <method name="System.Object &lt;UnaryIsTrue_2&gt;m__47(System.Dynamic.UnaryOperationBinder)" attrs="145">
+        <size>60</size>
+      </method>
+      <method name="Void &lt;UnaryIsTrue_2&gt;m__48(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>69</size>
+      </method>
+      <method name="System.Object &lt;UnaryIsTrue_3&gt;m__49(System.Dynamic.UnaryOperationBinder)" attrs="145">
+        <size>60</size>
+      </method>
+      <method name="Void &lt;UnaryIsTrue_3&gt;m__4A(System.Dynamic.BinaryOperationBinder, System.Object)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__4B(System.Reflection.MethodInfo)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__4C(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__4D(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__4E(Boolean)" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-004.cs">
+    <type name="G`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Object Create()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void M[T]()" attrs="145">
+        <size>19</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>121</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-005.cs">
+    <type name="MyObject">
+      <method name="Boolean TryGetMember(System.Dynamic.GetMemberBinder, System.Object ByRef)" attrs="198">
+        <size>35</size>
+      </method>
+      <method name="Boolean TryInvokeMember(System.Dynamic.InvokeMemberBinder, System.Object[], System.Object ByRef)" attrs="198">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tests">
+      <method name="Int32 Main()" attrs="150">
+        <size>260</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-006.cs">
+    <type name="InverseLogicalOperator">
+      <method name="Boolean op_True(InverseLogicalOperator)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Boolean op_False(InverseLogicalOperator)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor(Boolean)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="MyType">
+      <method name="Int16 get_ShortProp()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_ShortProp(Int16)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>7</size>
+      </method>
+      <method name="Boolean op_True(MyType)" attrs="2198">
+        <size>22</size>
+      </method>
+      <method name="Boolean op_False(MyType)" attrs="2198">
+        <size>19</size>
+      </method>
+      <method name="MyType op_Addition(MyType, MyType)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="MyType op_Subtraction(MyType, MyType)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="MyType op_Division(MyType, MyType)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="MyType op_Multiply(MyType, MyType)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="MyType op_Modulus(MyType, MyType)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="MyType op_BitwiseAnd(MyType, MyType)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="MyType op_BitwiseOr(MyType, MyType)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="MyType op_ExclusiveOr(MyType, MyType)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="Boolean op_Equality(MyType, MyType)" attrs="2198">
+        <size>25</size>
+      </method>
+      <method name="Boolean op_Inequality(MyType, MyType)" attrs="2198">
+        <size>28</size>
+      </method>
+      <method name="Boolean op_GreaterThan(MyType, MyType)" attrs="2198">
+        <size>25</size>
+      </method>
+      <method name="Boolean op_LessThan(MyType, MyType)" attrs="2198">
+        <size>25</size>
+      </method>
+      <method name="Boolean op_GreaterThanOrEqual(MyType, MyType)" attrs="2198">
+        <size>28</size>
+      </method>
+      <method name="Boolean op_LessThanOrEqual(MyType, MyType)" attrs="2198">
+        <size>28</size>
+      </method>
+      <method name="Boolean op_LogicalNot(MyType)" attrs="2198">
+        <size>19</size>
+      </method>
+      <method name="Int32 op_OnesComplement(MyType)" attrs="2198">
+        <size>17</size>
+      </method>
+      <method name="MyType op_Increment(MyType)" attrs="2198">
+        <size>23</size>
+      </method>
+      <method name="MyType op_Decrement(MyType)" attrs="2198">
+        <size>23</size>
+      </method>
+      <method name="Int32 op_RightShift(MyType, Int32)" attrs="2198">
+        <size>21</size>
+      </method>
+      <method name="Int32 op_LeftShift(MyType, Int32)" attrs="2198">
+        <size>21</size>
+      </method>
+      <method name="MyType op_UnaryNegation(MyType)" attrs="2198">
+        <size>22</size>
+      </method>
+      <method name="MyType op_UnaryPlus(MyType)" attrs="2198">
+        <size>19</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="MyTypeExplicit">
+      <method name="Int32 op_Explicit(MyTypeExplicit)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="MyTypeImplicitOnly">
+      <method name="Int16 op_Implicit(MyTypeImplicitOnly)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Boolean op_Implicit(MyTypeImplicitOnly)" attrs="2198">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor(Int16)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Void add_ev_assign(System.Action)" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void remove_ev_assign(System.Action)" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void Assert[T](T, T, System.String)" attrs="145">
+        <size>80</size>
+      </method>
+      <method name="Void AssertChecked[T](System.Func`1[T], T, System.String)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Void AssertChecked(System.Action, System.String)" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="Void AddTest()" attrs="129">
+        <size>1371</size>
+      </method>
+      <method name="Void AddNullableTest()" attrs="129">
+        <size>2279</size>
+      </method>
+      <method name="Void AddEnumTest()" attrs="129">
+        <size>875</size>
+      </method>
+      <method name="Void AddCheckedTest()" attrs="129">
+        <size>348</size>
+      </method>
+      <method name="Void AddStringTest()" attrs="129">
+        <size>1145</size>
+      </method>
+      <method name="Void AddAssignTest()" attrs="129">
+        <size>1155</size>
+      </method>
+      <method name="Void AddAssignNullableTest()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void AddAssignEnumTest()" attrs="129">
+        <size>444</size>
+      </method>
+      <method name="Void AddAssignCheckedTest()" attrs="129">
+        <size>322</size>
+      </method>
+      <method name="Void AddAssignStringTest()" attrs="129">
+        <size>877</size>
+      </method>
+      <method name="Void AddAssignEvent()" attrs="129">
+        <size>4</size>
+      </method>
+      <method name="Void AndTest()" attrs="129">
+        <size>1537</size>
+      </method>
+      <method name="Void AndTestEnum()" attrs="129">
+        <size>671</size>
+      </method>
+      <method name="Void AndTestNullable()" attrs="129">
+        <size>2255</size>
+      </method>
+      <method name="Void AndAssignedTest()" attrs="129">
+        <size>912</size>
+      </method>
+      <method name="Void AndAssignedTestEnum()" attrs="129">
+        <size>684</size>
+      </method>
+      <method name="Void AndAlsoTest()" attrs="129">
+        <size>1253</size>
+      </method>
+      <method name="Void DivideTest()" attrs="129">
+        <size>928</size>
+      </method>
+      <method name="Void DivideNullableTest()" attrs="129">
+        <size>2307</size>
+      </method>
+      <method name="Void DivideCheckedTest()" attrs="129">
+        <size>4</size>
+      </method>
+      <method name="Void DivideAssignTest()" attrs="129">
+        <size>1144</size>
+      </method>
+      <method name="Void DivideAssignCheckedTest()" attrs="129">
+        <size>4</size>
+      </method>
+      <method name="Void ConvertImplicitTest()" attrs="129">
+        <size>1266</size>
+      </method>
+      <method name="Int32 ConvertImplicitReturnTest()" attrs="129">
+        <size>83</size>
+      </method>
+      <method name="Void ConvertExplicitTest()" attrs="129">
+        <size>503</size>
+      </method>
+      <method name="Void ConvertExplicitCheckedTest()" attrs="129">
+        <size>90</size>
+      </method>
+      <method name="Void ConvertArray()" attrs="129">
+        <size>168</size>
+      </method>
+      <method name="Void EqualTest()" attrs="129">
+        <size>1942</size>
+      </method>
+      <method name="Void EqualNullableTest()" attrs="129">
+        <size>3034</size>
+      </method>
+      <method name="Void EqualEnumTest()" attrs="129">
+        <size>1048</size>
+      </method>
+      <method name="Void EqualStringTest()" attrs="129">
+        <size>631</size>
+      </method>
+      <method name="Void EqualDelegateTest()" attrs="129">
+        <size>19</size>
+      </method>
+      <method name="Void ExclusiveOrTest()" attrs="129">
+        <size>1547</size>
+      </method>
+      <method name="Void ExclusiveOrNullableTest()" attrs="129">
+        <size>1817</size>
+      </method>
+      <method name="Void ExclusiveOrTestEnum()" attrs="129">
+        <size>693</size>
+      </method>
+      <method name="Void ExclusiveOrAssignedTest()" attrs="129">
+        <size>894</size>
+      </method>
+      <method name="Void ExclusiveOrAssignedTestEnum()" attrs="129">
+        <size>686</size>
+      </method>
+      <method name="Void GreaterThanTest()" attrs="129">
+        <size>1984</size>
+      </method>
+      <method name="Void GreaterThanNullableTest()" attrs="129">
+        <size>2407</size>
+      </method>
+      <method name="Void GreaterThanEnumTest()" attrs="129">
+        <size>1048</size>
+      </method>
+      <method name="Void GreaterThanEqualTest()" attrs="129">
+        <size>1984</size>
+      </method>
+      <method name="Void GreaterThanEqualNullableTest()" attrs="129">
+        <size>2407</size>
+      </method>
+      <method name="Void GreaterThanEqualEnumTest()" attrs="129">
+        <size>1048</size>
+      </method>
+      <method name="Void LeftShiftTest()" attrs="129">
+        <size>1367</size>
+      </method>
+      <method name="Void LeftShiftNullableTest()" attrs="129">
+        <size>1363</size>
+      </method>
+      <method name="Void LeftShiftAssignTest()" attrs="129">
+        <size>650</size>
+      </method>
+      <method name="Void LeftShiftAssignNullableTest()" attrs="129">
+        <size>444</size>
+      </method>
+      <method name="Void LessThanTest()" attrs="129">
+        <size>1984</size>
+      </method>
+      <method name="Void LessThanNullableTest()" attrs="129">
+        <size>2421</size>
+      </method>
+      <method name="Void LessThanEnumTest()" attrs="129">
+        <size>1048</size>
+      </method>
+      <method name="Void LessThanOrEqualTest()" attrs="129">
+        <size>1984</size>
+      </method>
+      <method name="Void LessThanOrEqualNullableTest()" attrs="129">
+        <size>2407</size>
+      </method>
+      <method name="Void LessThanOrEqualEnumTest()" attrs="129">
+        <size>1048</size>
+      </method>
+      <method name="Void ModuloTest()" attrs="129">
+        <size>924</size>
+      </method>
+      <method name="Void ModuloNullableTest()" attrs="129">
+        <size>2295</size>
+      </method>
+      <method name="Void ModuloAssignTest()" attrs="129">
+        <size>1138</size>
+      </method>
+      <method name="Void MultiplyTest()" attrs="129">
+        <size>1168</size>
+      </method>
+      <method name="Void MultiplyNullableTest()" attrs="129">
+        <size>2295</size>
+      </method>
+      <method name="Void MultiplyCheckedTest()" attrs="129">
+        <size>346</size>
+      </method>
+      <method name="Void MultiplyAssignTest()" attrs="129">
+        <size>1328</size>
+      </method>
+      <method name="Void MultiplyAssignCheckedTest()" attrs="129">
+        <size>320</size>
+      </method>
+      <method name="Void Negate()" attrs="129">
+        <size>1312</size>
+      </method>
+      <method name="Void NegateNullable()" attrs="129">
+        <size>1118</size>
+      </method>
+      <method name="Void NegateChecked()" attrs="129">
+        <size>54</size>
+      </method>
+      <method name="Void Not()" attrs="129">
+        <size>405</size>
+      </method>
+      <method name="Void NotEqualTest()" attrs="129">
+        <size>1946</size>
+      </method>
+      <method name="Void NotEqualNullableTest()" attrs="129">
+        <size>3460</size>
+      </method>
+      <method name="Void NotEqualEnumTest()" attrs="129">
+        <size>1048</size>
+      </method>
+      <method name="Void NotEqualStringTest()" attrs="129">
+        <size>631</size>
+      </method>
+      <method name="Void OnesComplement()" attrs="129">
+        <size>819</size>
+      </method>
+      <method name="Void OnesComplementNullable()" attrs="129">
+        <size>419</size>
+      </method>
+      <method name="Void OrTest()" attrs="129">
+        <size>1547</size>
+      </method>
+      <method name="Void OrTestEnum()" attrs="129">
+        <size>675</size>
+      </method>
+      <method name="Void OrTestNullable()" attrs="129">
+        <size>1593</size>
+      </method>
+      <method name="Void OrAssignedTest()" attrs="129">
+        <size>912</size>
+      </method>
+      <method name="Void OrAssignedTestEnum()" attrs="129">
+        <size>686</size>
+      </method>
+      <method name="Void OrElseTest()" attrs="129">
+        <size>1258</size>
+      </method>
+      <method name="Void RightShiftTest()" attrs="129">
+        <size>1153</size>
+      </method>
+      <method name="Void RightShiftNullableTest()" attrs="129">
+        <size>1362</size>
+      </method>
+      <method name="Void RightShiftAssignTest()" attrs="129">
+        <size>650</size>
+      </method>
+      <method name="Void RightShiftAssignNullableTest()" attrs="129">
+        <size>443</size>
+      </method>
+      <method name="Void SubtractTest()" attrs="129">
+        <size>1133</size>
+      </method>
+      <method name="Void SubtractNullableTest()" attrs="129">
+        <size>2290</size>
+      </method>
+      <method name="Void SubtractEnumTest()" attrs="129">
+        <size>897</size>
+      </method>
+      <method name="Void SubtractCheckedTest()" attrs="129">
+        <size>349</size>
+      </method>
+      <method name="Void SubtractAssignTest()" attrs="129">
+        <size>1155</size>
+      </method>
+      <method name="Void SubtractAssignEnumTest()" attrs="129">
+        <size>455</size>
+      </method>
+      <method name="Void SubtractAssignCheckedTest()" attrs="129">
+        <size>322</size>
+      </method>
+      <method name="Void SubtractAssignEvent()" attrs="129">
+        <size>34</size>
+      </method>
+      <method name="Void UnaryDecrement()" attrs="129">
+        <size>992</size>
+      </method>
+      <method name="Void UnaryDecrementCheckedTest()" attrs="129">
+        <size>298</size>
+      </method>
+      <method name="Void UnaryIncrement()" attrs="129">
+        <size>993</size>
+      </method>
+      <method name="Void UnaryIncrementCheckedTest()" attrs="129">
+        <size>295</size>
+      </method>
+      <method name="Void UnaryIsTrue()" attrs="129">
+        <size>429</size>
+      </method>
+      <method name="Void UnaryPlus()" attrs="129">
+        <size>1115</size>
+      </method>
+      <method name="Void UnaryPlusNullable()" attrs="129">
+        <size>1120</size>
+      </method>
+      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
+        <size>80</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>187</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+EmptyDelegate">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;AddCheckedTest&gt;c__AnonStorey1">
+      <method name="System.Object &lt;&gt;m__0()" attrs="131">
+        <size>103</size>
+      </method>
+      <method name="System.Object &lt;&gt;m__1()" attrs="131">
+        <size>103</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;AddAssignCheckedTest&gt;c__AnonStorey2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ConvertImplicitReturnTest_2&gt;c__Iterator0">
+      <method name="System.String System.Collections.Generic.IEnumerator&lt;string&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>154</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ConvertExplicitCheckedTest&gt;c__AnonStorey3">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;MultiplyCheckedTest&gt;c__AnonStorey4">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;MultiplyAssignCheckedTest&gt;c__AnonStorey5">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NegateChecked&gt;c__AnonStorey6">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;SubtractCheckedTest&gt;c__AnonStorey7">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;SubtractAssignCheckedTest&gt;c__AnonStorey8">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;UnaryDecrementCheckedTest&gt;c__AnonStorey9">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;UnaryIncrementCheckedTest&gt;c__AnonStoreyA">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="System.Collections.Generic.IEnumerable`1[System.String] ConvertImplicitReturnTest_2()" attrs="129">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ConvertImplicitReturnTest_2&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.String] System.Collections.Generic.IEnumerable&lt;string&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;AddAssignCheckedTest&gt;c__AnonStorey2">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>234</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ConvertExplicitCheckedTest&gt;c__AnonStorey3">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>81</size>
+      </method>
+      <method name="System.Nullable`1[System.UInt32] &lt;&gt;m__1()" attrs="131">
+        <size>81</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;MultiplyCheckedTest&gt;c__AnonStorey4">
+      <method name="System.Object &lt;&gt;m__0()" attrs="131">
+        <size>104</size>
+      </method>
+      <method name="System.Object &lt;&gt;m__1()" attrs="131">
+        <size>104</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;MultiplyAssignCheckedTest&gt;c__AnonStorey5">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>234</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NegateChecked&gt;c__AnonStorey6">
+      <method name="System.Object &lt;&gt;m__0()" attrs="131">
+        <size>88</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;SubtractCheckedTest&gt;c__AnonStorey7">
+      <method name="System.Object &lt;&gt;m__0()" attrs="131">
+        <size>104</size>
+      </method>
+      <method name="System.Object &lt;&gt;m__1()" attrs="131">
+        <size>104</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;SubtractAssignCheckedTest&gt;c__AnonStorey8">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>234</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;UnaryDecrementCheckedTest&gt;c__AnonStorey9">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>224</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;UnaryIncrementCheckedTest&gt;c__AnonStoreyA">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>220</size>
+      </method>
+    </type>
+    <type name="Tester+EmptyDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ConvertImplicitReturnTest_2&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Void IsTest()" attrs="129">
+        <size>69</size>
+      </method>
+      <method name="Void &lt;SubtractAssignEvent&gt;m__0()" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__1(System.Reflection.MethodInfo)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__2(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__3(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__4(Boolean)" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-007.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="D2">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Class">
+      <method name="UInt32 get_Item(Byte)" attrs="2181">
+        <size>17</size>
+      </method>
+      <method name="Void set_Item(Byte, UInt32)" attrs="2181">
+        <size>9</size>
+      </method>
+      <method name="Byte get_Prop()" attrs="2179">
+        <size>15</size>
+      </method>
+      <method name="Void set_Prop(Byte)" attrs="2179">
+        <size>9</size>
+      </method>
+      <method name="Void set_FixedValue(Int32)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_FixedValue()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="System.String Method(System.String)" attrs="131">
+        <size>10</size>
+      </method>
+      <method name="Int32 Method(Int32, Byte)" attrs="134">
+        <size>12</size>
+      </method>
+      <method name="Void MethodInOut(Int32 ByRef, System.String ByRef)" attrs="134">
+        <size>12</size>
+      </method>
+      <method name="Void GenericVoid[T](T)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void ArglistMethod(...)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>45</size>
+      </method>
+      <method name="Void .ctor(SByte)" attrs="6278">
+        <size>53</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="EventClass">
+      <method name="Void add_OutEvent(System.Func`1[System.Int32])" attrs="2179">
+        <size>42</size>
+      </method>
+      <method name="Void remove_OutEvent(System.Func`1[System.Int32])" attrs="2179">
+        <size>42</size>
+      </method>
+      <method name="Int32 CallEvent()" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Void Assert[T](T, T, System.String)" attrs="145">
+        <size>80</size>
+      </method>
+      <method name="Void AssertError(System.Action, System.String)" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="Void add_e(System.Func`1[System.Int32])" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void remove_e(System.Func`1[System.Int32])" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void GetIndexTest()" attrs="129">
+        <size>916</size>
+      </method>
+      <method name="Void GetIndexError_Null()" attrs="129">
+        <size>37</size>
+      </method>
+      <method name="Void InvokeTest()" attrs="129">
+        <size>476</size>
+      </method>
+      <method name="Void InvokeMember()" attrs="129">
+        <size>907</size>
+      </method>
+      <method name="Void InvokeMember_Error()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void InvokeConstructor()" attrs="129">
+        <size>232</size>
+      </method>
+      <method name="Void IsEvent()" attrs="129">
+        <size>2674</size>
+      </method>
+      <method name="Void MemberGetTest()" attrs="129">
+        <size>811</size>
+      </method>
+      <method name="Void MemberGetError_Null()" attrs="129">
+        <size>37</size>
+      </method>
+      <method name="Void MemberSetTest()" attrs="129">
+        <size>2965</size>
+      </method>
+      <method name="Void MemberSetError_Null()" attrs="129">
+        <size>37</size>
+      </method>
+      <method name="Void SetIndexTest()" attrs="129">
+        <size>2901</size>
+      </method>
+      <method name="Void SetIndexError_Null()" attrs="129">
+        <size>37</size>
+      </method>
+      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
+        <size>80</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>187</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;GetIndexError_Null&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>92</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;InvokeMember&gt;c__DynamicSite2+Container0">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, Int32 ByRef, System.String ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;MemberGetError_Null&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;MemberSetError_Null&gt;c__AnonStorey2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;SetIndexError_Null&gt;c__AnonStorey3">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;MemberGetError_Null&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>86</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;MemberSetError_Null&gt;c__AnonStorey2">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>96</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;SetIndexError_Null&gt;c__AnonStorey3">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>102</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="D2">
+      <method name="Void Invoke(System.Decimal)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(System.Decimal, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Class">
+      <method name="Int32 StaticMethod(Int32[])" attrs="150">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Int32 &lt;InvokeTest&gt;m__0(System.String)" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void &lt;InvokeMember_Error&gt;m__1()" attrs="145">
+        <size>112</size>
+      </method>
+      <method name="Void &lt;InvokeConstructor&gt;m__2(System.Decimal)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 &lt;IsEvent&gt;m__3()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;IsEvent&gt;m__4()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__5(System.Reflection.MethodInfo)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__6(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__7(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__8(Boolean)" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-008.cs">
+    <type name="Disposable">
+      <method name="Void Dispose()" attrs="486">
+        <size>14</size>
+      </method>
+      <method name="Void Test()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Boolean ForEachTest()" attrs="129">
+        <size>419</size>
+      </method>
+      <method name="Boolean ForEachTest_2()" attrs="129">
+        <size>312</size>
+      </method>
+      <method name="Boolean ForEachTest_3()" attrs="129">
+        <size>235</size>
+      </method>
+      <method name="Boolean UsingTest()" attrs="129">
+        <size>619</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>99</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-009.cs">
+    <type name="B">
+      <method name="Void Test(Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>131</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-010.cs">
+    <type name="A">
+      <method name="T Test[T](T, T)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 TestCall()" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>761</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-011.cs">
+    <type name="C">
+      <method name="Void foo(Int32)" attrs="129">
+        <size>18</size>
+      </method>
+      <method name="Void foo(System.String)" attrs="129">
+        <size>7</size>
+      </method>
+      <method name="Void foo_static(Int64)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Int32 MethodBest(Int16)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 MethodBest(System.Object)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void test()" attrs="129">
+        <size>197</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-012.cs">
+    <type name="G`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="dynamic.C">
+      <method name="Int32 Main()" attrs="150">
+        <size>77</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-013.cs">
+    <type name="ndynamic.C`1[U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ndynamic.C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-014.cs">
+    <type name="A">
+      <method name="Int32 op_Inequality(A, System.Object)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int32 op_Equality(A, System.Object)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Boolean op_Equality(C, System.Object)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Boolean op_Inequality(C, System.Object)" attrs="2198">
+        <size>260</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Decimal op_Subtraction(System.Object, C)" attrs="2198">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-015.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-016.cs">
+    <type name="Foo">
+      <method name="Void Dyn(System.Object ByRef)" attrs="454">
+        <size>5</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="Void Dyn(System.Object ByRef)" attrs="198">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Method_A(Int32 ByRef)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Method_B(System.Object ByRef)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Int32 M(System.String, System.String)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 M(System.Object ByRef, System.Object ByRef)" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Int32 Foo(System.Object)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo(System.Object[])" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="Int32 Foo(Int32, System.Object)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo(Double, System.Object)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void DynOut(System.Object ByRef)" attrs="145">
+        <size>5</size>
+      </method>
+      <method name="Void DynRef(System.Object ByRef)" attrs="145">
+        <size>5</size>
+      </method>
+      <method name="Void TestErrorVersions()" attrs="129">
+        <size>198</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>996</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 DynParams(Int32, Int32, Int32[])" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-017.cs">
+    <type name="B`1[U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.Object Invoke(System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="DynamicAssignments">
+      <method name="Int32 Main()" attrs="150">
+        <size>192</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Foo(IA`1[System.Object])" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.Object EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="DynamicAssignments">
+      <method name="System.Object &lt;Main&gt;m__0(System.Object)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-018.cs">
+    <type name="XValue">
+      <method name="Int64 get_Y()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Y(Int64)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Int32 Main()" attrs="150">
+        <size>374</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-019.cs">
+    <type name="C">
+      <method name="Void Method(System.Object)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Method(System.Object, System.Object)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Method2(System.Object, Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Method2(System.Object ByRef)" attrs="145">
+        <size>5</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>62</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+D">
+      <method name="Void Invoke(System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+D2">
+      <method name="Void Invoke(System.Object ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+D">
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+D2">
+      <method name="System.IAsyncResult BeginInvoke(System.Object ByRef, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.Object ByRef, System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-020.cs">
+    <type name="Class1">
+      <method name="Int32 Method1()" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Class2`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Class3">
+      <method name="Void Method2()" attrs="134">
+        <size>90</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-021.cs">
+    <type name="T">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T+B">
+      <method name="Void set_Item(Int32, System.Object)" attrs="2182">
+        <size>70</size>
+      </method>
+      <method name="System.Object get_Item(Int32)" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T+Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-022.cs">
+    <type name="C">
+      <method name="Void M[T](T)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-023.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-024.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>542</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test+D">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 &lt;Main&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-025.cs">
+    <type name="S">
+      <method name="Void SetValue(Int32)" attrs="486">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Method[T](T ByRef)" attrs="145">
+        <size>105</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>368</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Method&gt;c__DynamicSite0`1+Container0[T]">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, T ByRef, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__DynamicSite1+Container0">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__DynamicSite1+Container1">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, S ByRef, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__DynamicSite1+Container0">
+      <method name="System.Object Invoke(System.Runtime.CompilerServices.CallSite, System.Nullable`1[System.Int32] ByRef, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-026.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>375</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-027.cs">
+    <type name="C">
+      <method name="Int32 M(System.Object, Int64)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 M(Int64, System.Object)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 M(System.Object, System.Object)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 M2(System.Object)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 M2(Byte)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>382</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-028.cs">
+    <type name="C">
+      <method name="Void MethodRef(Int32 ByRef)" attrs="134">
+        <size>9</size>
+      </method>
+      <method name="Void MethodOut(UInt16 ByRef)" attrs="134">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void M(System.Object[] ByRef, System.Object[] ByRef)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>255</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Main&gt;c__DynamicSite0+Container0">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, Int32 ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Main&gt;c__DynamicSite0+Container1">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, UInt16 ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-029.cs">
+    <type name="C">
+      <method name="Boolean Test[T,U](T, U)" attrs="145">
+        <size>431</size>
+      </method>
+      <method name="Boolean Test2(Int32)" attrs="145">
+        <size>168</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>115</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-030.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void M1[T](T)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void M2[T,U](T, U)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void M3[T,U](T, A`1[U])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>577</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void M4[T,U](T, System.IEquatable`1[U])" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-031.cs">
+    <type name="A`1[T]">
+      <method name="U CustomDelegate[U](U ByRef)" attrs="134">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void Foo[Z]()" attrs="145">
+        <size>104</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Foo&gt;c__DynamicSite0`1+Container0[Z]">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, Z ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-032.cs">
+    <type name="A">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Foo(Int32, A ByRef)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>153</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+&lt;Main&gt;c__DynamicSite0+Container0">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Type, System.Object, A ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-033.cs">
+    <type name="Test">
+      <method name="Byte get_Prop()" attrs="2177">
+        <size>10</size>
+      </method>
+      <method name="Void set_Prop(Byte)" attrs="2177">
+        <size>2</size>
+      </method>
+      <method name="Byte get_Item(Int32)" attrs="2177">
+        <size>10</size>
+      </method>
+      <method name="Void set_Item(Int32, Byte)" attrs="2177">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>3609</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>39</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-034.cs">
+    <type name="C">
+      <method name="Void M[U,V](U ByRef, V ByRef)" attrs="134">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>482</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Main&gt;c__DynamicSite0+Container0">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, System.Object ByRef, System.Object ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-035.cs">
+    <type name="Test">
+      <method name="System.Object get_Item(Int32)" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Item(Int32, System.Object)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="System.Object[] get_Prop()" attrs="2182">
+        <size>24</size>
+      </method>
+      <method name="Void set_Prop(System.Object[])" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_Prop2()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Prop2(Int32)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="System.Object get_Prop3()" attrs="2182">
+        <size>20</size>
+      </method>
+      <method name="Void set_Prop3(System.Object)" attrs="2182">
+        <size>75</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>1142</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-036.cs">
+    <type name="C">
+      <method name="Void add_E(System.Func`2[System.Int32,System.Int32])" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void remove_E(System.Func`2[System.Int32,System.Int32])" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>349</size>
+      </method>
+      <method name="Int32 Foo(Int32)" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-037.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>1207</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-038.cs">
+    <type name="Test">
+      <method name="Void Foo()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>379</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-039.cs">
+    <type name="A">
+      <method name="System.Object Foo()" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="System.Object[] FooArray()" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="System.Object get_Prop()" attrs="2499">
+        <size>16</size>
+      </method>
+      <method name="Void set_Prop(System.Object)" attrs="2499">
+        <size>2</size>
+      </method>
+      <method name="System.Object[] get_PropArray()" attrs="2502">
+        <size>10</size>
+      </method>
+      <method name="System.Object get_Item(Int32)" attrs="2499">
+        <size>15</size>
+      </method>
+      <method name="Void set_Item(Int32, System.Object)" attrs="2499">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="System.Object Foo()" attrs="198">
+        <size>15</size>
+      </method>
+      <method name="System.Object[] FooArray()" attrs="198">
+        <size>45</size>
+      </method>
+      <method name="Void set_Prop(System.Object)" attrs="2243">
+        <size>2</size>
+      </method>
+      <method name="System.Object[] get_PropArray()" attrs="2246">
+        <size>35</size>
+      </method>
+      <method name="Void set_Item(Int32, System.Object)" attrs="2243">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Void Test()" attrs="129">
+        <size>224</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>545</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-040.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>406</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="S`2[U,System.Object] Foo[U](U)" attrs="454">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="S`2[T,System.Object] Foo[T](T)" attrs="198">
+        <size>38</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-041.cs">
+    <type name="A`1[AA]">
+      <method name="AA Foo[U](U)" attrs="454">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="System.Object Foo[T](T)" attrs="198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>90</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-042.cs">
+    <type name="A">
+      <method name="System.Object get_Prop()" attrs="2500">
+        <size>10</size>
+      </method>
+      <method name="Void set_Prop(System.Object)" attrs="2500">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Foo()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="System.Object get_Prop()" attrs="2244">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Test()" attrs="129">
+        <size>90</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-043.cs">
+    <type name="A">
+      <method name="Int32 Main()" attrs="150">
+        <size>347</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-044.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>868</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 Test[T,U](T, System.IComparable`1[U])" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_2[T](System.Collections.Generic.IList`1[T], T)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-045.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>249</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-046.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>1101</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+D">
+      <method name="Int32 Invoke(Int32 ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Main&gt;c__DynamicSite0+Container0">
+      <method name="System.Object Invoke(System.Runtime.CompilerServices.CallSite, System.Object, Int32 ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test+D">
+      <method name="System.IAsyncResult BeginInvoke(Int32 ByRef, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(Int32 ByRef, System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__1()" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2(Int32 ByRef)" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-047.cs">
+    <type name="C`1[T]">
+      <method name="Void add_E(System.Func`2[System.Int32,System.Int32])" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_E(System.Func`2[System.Int32,System.Int32])" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Int32 Test(Int32)" attrs="150">
+        <size>171</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>42</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1[T]">
+      <method name="Int32 &lt;E&gt;m__0(Int32)" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-048.cs">
+    <type name="A">
+      <method name="Int32 M(System.String, System.Object)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 M(System.String, System.Object[])" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>342</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-049.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+N">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+N">
+      <method name="Void Test()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>91</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-050.cs">
+    <type name="S">
+      <method name="Boolean op_True(S)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Boolean op_False(S)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="System.String op_LogicalNot(S)" attrs="2198">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Boolean Throw()" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Boolean Return(Boolean)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>1195</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-051.cs">
+    <type name="C">
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32)" attrs="2182">
+        <size>11</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>491</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-052.cs">
+    <type name="A">
+      <method name="Void Method(DynamicReference)" attrs="134">
+        <size>192</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-053.cs">
+    <type name="TestAttribute">
+      <method name="Void .ctor(Object[])" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-054.cs">
+    <type name="C">
+      <method name="System.Action`1[T] Test[T](T)" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="System.Action Test2[T](T)" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="System.Action`1[T] Test3[T](T)" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="System.Action Test4[T](T)" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="Void Method(System.Object)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void MethodRef(C ByRef)" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>72</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test2&gt;c__AnonStorey0`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test4&gt;c__AnonStorey2`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test2&gt;c__AnonStorey0`1[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>46</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test4&gt;c__AnonStorey2`1[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>114</size>
+      </method>
+    </type>
+    <type name="C+&lt;&lt;Test3`1&gt;m__1&gt;c__DynamicSite1`1+Container0[T]">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, T ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test4&gt;c__AnonStorey2`1+&lt;&lt;&gt;m__0&gt;c__DynamicSite0+Container0[T]">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, T ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test2&gt;c__AnonStorey0`1+&lt;Test2&gt;c__AnonStorey1[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>118</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void &lt;Test`1&gt;m__0[T](T)" attrs="145">
+        <size>103</size>
+      </method>
+      <method name="Void &lt;Test3`1&gt;m__1[T](T)" attrs="145">
+        <size>105</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-055.cs">
+    <type name="B`2[T1,T2]">
+      <method name="Void Foo[U](U)" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Foo[U](U)" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>71</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-056.cs">
+    <type name="C">
+      <method name="D get_D()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_D(D)" attrs="2177">
+        <size>8</size>
+      </method>
+      <method name="System.String get_Value()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Value(System.String)" attrs="2177">
+        <size>8</size>
+      </method>
+      <method name="Int32 Test()" attrs="134">
+        <size>253</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>58</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Int32 Foo(System.String)" attrs="134">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Foo get_Foo()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Foo(Foo)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Int32 Test2(System.Object)" attrs="150">
+        <size>175</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Int32 Method(System.String)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-057.cs">
+    <type name="Program">
+      <method name="Int32 Test(System.Func`1[System.Object])" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Int32 Test(System.Func`1[System.String])" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>57</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Object &lt;Main&gt;m__0()" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-058.cs">
+    <type name="Test">
+      <method name="Test Foo(System.Object)" attrs="145">
+        <size>113</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>63</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6273">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-059.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1[T]">
+      <method name="Void Test()" attrs="134">
+        <size>238</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1+&lt;Test&gt;c__DynamicSite0+Container0[T]">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Type, System.Object, Int32 ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C`1+&lt;Test&gt;c__DynamicSite0+Container1[T]">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Type, System.Object, Int32 ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-060.cs">
+    <type name="Test.Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>201</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.C">
+      <method name="Int32 M[T](Int32)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 M[T](Int64)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-061.cs">
+    <type name="Test.Program">
+      <method name="Void Main()" attrs="150">
+        <size>88</size>
+      </method>
+      <method name="Void AreEqual[A,B](A, B)" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void ShiftTest(Int32, Int32)" attrs="134">
+        <size>2459</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>24</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-anontype-01.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>101</size>
+      </method>
+      <method name="Void Test()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="System.Object Factory()" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`1[&lt;Field&gt;__T]">
+      <method name="&lt;Field&gt;__T get_Field()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>39</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>63</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor(&lt;Field&gt;__T)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-cls-01.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void CLSCompliantMethod(System.Object[])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void CLSCompliantMethod(System.Collections.Generic.IEnumerable`1[System.Object])" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-collectioninit-01.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>488</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+Wrap">
+      <method name="System.Object get_Numbers()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-error-01.cs">
+    <type name="Helper">
+      <method name="Int32* Foo(Int32)" attrs="150">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Void NonInvocable()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void Using_1()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void Unsafe_1()" attrs="129">
+        <size>42</size>
+      </method>
+      <method name="Void NullableConversion()" attrs="129">
+        <size>48</size>
+      </method>
+      <method name="Void AssertError(System.Action, System.String)" attrs="145">
+        <size>72</size>
+      </method>
+      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
+        <size>85</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>187</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Unsafe_1&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>110</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Void &lt;NonInvocable&gt;m__0()" attrs="145">
+        <size>86</size>
+      </method>
+      <method name="Void &lt;Using_1&gt;m__1()" attrs="145">
+        <size>92</size>
+      </method>
+      <method name="Void &lt;NullableConversion&gt;m__2()" attrs="145">
+        <size>106</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__3(System.Reflection.MethodInfo)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__4(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__5(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__6(Boolean)" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-error-02.cs">
+    <type name="A">
+      <method name="System.Object Factory()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+N">
+      <method name="Void Foo()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>400</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+N">
+      <method name="Int32 get_Property()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Property(Int32)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="System.String get_Item(Int32)" attrs="2177">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-error-03.cs">
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>106</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-error-04.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>153</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-etree-01.cs">
+    <type name="C">
+      <method name="Void Conv1(System.Linq.Expressions.Expression`1[System.Func`2[System.Object,System.Object]])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Conv2(System.Linq.Expressions.Expression`1[System.Func`2[System.Object,System.Object]])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>383</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-etree-02.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>191</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-friend-01.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>91</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-implicitarray-01.cs">
+    <type name="C">
+      <method name="Void Method()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>112</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-iter-01.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Program+&lt;D1&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;dynamic&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;D2&gt;c__Iterator1">
+      <method name="System.Func`1[System.Object] System.Collections.Generic.IEnumerator&lt;System.Func&lt;dynamic&gt;&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Object] D1()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.Func`1[System.Object]] D2()" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Program+&lt;D1&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;dynamic&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="Program+&lt;D2&gt;c__Iterator1">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Func`1[System.Object]] System.Collections.Generic.IEnumerable&lt;System.Func&lt;dynamic&gt;&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="Program+&lt;D1&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Program+&lt;D2&gt;c__Iterator1">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-named-01.cs">
+    <type name="Test">
+      <method name="Void Foo(Int32 ByRef)" attrs="134">
+        <size>5</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>130</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Main&gt;c__DynamicSite0+Container0">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, Int32 ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-named-02.cs">
+    <type name="Test">
+      <method name="Int32 M1()" attrs="145">
+        <size>39</size>
+      </method>
+      <method name="Int32 M2()" attrs="145">
+        <size>39</size>
+      </method>
+      <method name="System.Object M3()" attrs="145">
+        <size>44</size>
+      </method>
+      <method name="Int32 Foo(Int32, Int32, Int32)" attrs="145">
+        <size>52</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>227</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-optional-01.cs">
+    <type name="G`1[T]">
+      <method name="System.Object M1(T)" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="System.Object M2(T)" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Object Test(System.Object)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void TestS(S)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="System.Object TestD(System.Object)" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>882</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="dtest-optional-02.cs">
+    <type name="Test">
+      <method name="System.Object Foo(System.Object)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-001.cs">
+    <type name="Stack`1[type]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Boot">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-002.cs">
+    <type name="Cell`1[X]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-003.cs">
+    <type name="Stack`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-004.cs">
+    <type name="Stack`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Void Foo(Stack`1[Test])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-005.cs">
+    <type name="Stack`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-006.cs">
+    <type name="Stack`1[T]">
+      <method name="Void Push(T)" attrs="134">
+        <size>31</size>
+      </method>
+      <method name="T Pop()" attrs="134">
+        <size>37</size>
+      </method>
+      <method name="Void Hello(T)" attrs="134">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-007.cs">
+    <type name="Stack`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-008.cs">
+    <type name="Stack`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-009.cs">
+    <type name="Stack`1[T]">
+      <method name="System.Object Test(T)" attrs="134">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-010.cs">
+    <type name="J">
+      <method name="Void Foo()" attrs="134">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Stack`1[T]">
+      <method name="Void Test(T)" attrs="134">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-011.cs">
+    <type name="Stack`1[S]">
+      <method name="Void Hello(S)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Test()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-012.cs">
+    <type name="Stack`1[S]">
+      <method name="Void Hello(S)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`1[T]">
+      <method name="Void Foo(T)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Test()" attrs="129">
+        <size>26</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-013.cs">
+    <type name="X">
+      <method name="Void Test()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-014.cs">
+    <type name="Stack`1[S]">
+      <method name="Void Push(S)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(S)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-015.cs">
+    <type name="Stack`1[S]">
+      <method name="Void Hello[T,U](S, T, U)" attrs="150">
+        <size>4</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-016.cs">
+    <type name="Stack`1[S]">
+      <method name="Void Hello[T](S, T)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-017.cs">
+    <type name="X">
+      <method name="Void Foo(Stack)" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-018.cs">
+    <type name="Stack">
+      <method name="Void Hello[T](T)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Foo(Stack)" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-019.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-020.cs">
+    <type name="Stack`1[S]">
+      <method name="Void Hello(S)" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Test()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-021.cs">
+    <type name="Foo`1[T]">
+      <method name="Void Test()" attrs="134">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>59</size>
+      </method>
+    </type>
+    <type name="Bar`1[T]">
+      <method name="Void Test()" attrs="134">
+        <size>46</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.String ToString()" attrs="198">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6273">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Print(System.Object)" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-022.cs">
+    <type name="Foo`1[T]">
+      <method name="Void Hello()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void World(T)" attrs="134">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="Void Test()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-023.cs">
+    <type name="Foo`1[T]">
+      <method name="Void Hello()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void World(T)" attrs="134">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="Void Test()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-024.cs">
+    <type name="Foo`1[T]">
+      <method name="Void Hello(T)" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void Whatever(System.Object)" attrs="134">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Test(Foo`1[System.Int32])" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-025.cs">
+    <type name="Foo">
+      <method name="Void Hello[T](T)" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void Whatever(System.Object)" attrs="134">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Test(Foo)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-026.cs">
+    <type name="Foo`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-027.cs">
+    <type name="TheBase">
+      <method name="Void BaseFunc()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Stack`1[S]">
+      <method name="Void Hello(S)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`1[T]">
+      <method name="Void Foo(T)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Test()" attrs="129">
+        <size>37</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-028.cs">
+    <type name="Stack`1[T]">
+      <method name="System.Object Test()" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Object Test(Stack`1[System.Int32])" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-029.cs">
+    <type name="Stack`1[T]">
+      <method name="System.Object Test()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-030.cs">
+    <type name="Foo`1[T]">
+      <method name="Void Hello(T)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Bar`2[T,U]">
+      <method name="Void Test(T, U)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Test(Bar`2[System.Int32,System.String])" attrs="145">
+        <size>25</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-031.cs">
+    <type name="X">
+      <method name="Void Test(Bar`2[System.Int32,System.String])" attrs="150">
+        <size>25</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-032.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Test(Bar`2[System.Int32,System.String])" attrs="145">
+        <size>25</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-033.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Test(Bar`3[System.Int64,System.Int32,System.String])" attrs="145">
+        <size>36</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-034.cs">
+    <type name="Foo`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Stack`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-035.cs">
+    <type name="Test`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-036.cs">
+    <type name="Stack`1[T]">
+      <method name="Void Hello(Stack`1[T])" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Test()" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-037.cs">
+    <type name="Foo`2[T,U]">
+      <method name="Void Hello(Foo`2[T,U])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test()" attrs="454">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar`1[T]">
+      <method name="Void Test(Foo`2[T,System.Int64])" attrs="134">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Baz`1[T]">
+      <method name="Void Test()" attrs="198">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-038.cs">
+    <type name="Queue`1[T]">
+      <method name="Void Test(T)" attrs="132">
+        <size>13</size>
+      </method>
+      <method name="Void Test()" attrs="134">
+        <size>75</size>
+      </method>
+      <method name="Void .ctor(T, T)" attrs="6278">
+        <size>39</size>
+      </method>
+    </type>
+    <type name="Queue`1+Node`1[T,U]">
+      <method name="Void .ctor(Node`1, U)" attrs="6278">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Queue`1[T]">
+      <method name="Node`1 get_Foo()" attrs="2180">
+        <size>15</size>
+      </method>
+      <method name="Node`1 GetFoo()" attrs="132">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-039.cs">
+    <type name="Zoo`1[T]">
+      <method name="T get_Name()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Zoo`1+Monkey`2[T,V,W]">
+      <method name="W Jump()" attrs="486">
+        <size>52</size>
+      </method>
+      <method name="Void .ctor(Zoo`1, W)" attrs="6278">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Zoo`1[T]">
+      <method name="IMonkey`1[U] GetTheMonkey[U](U)" attrs="134">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-040.cs">
+    <type name="Stack`1[T]">
+      <method name="Void Test()" attrs="134">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="Stack`1+Node[T]">
+      <method name="Void Hello(T)" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(Stack`1)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Stack`1+Foo`1[T,T]">
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Stack`1+Bar`1[T,U]">
+      <method name="Void .ctor(U)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Stack`1+Bar`1+Baz`1[T,U,V]">
+      <method name="Void .ctor(V)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="A`1[U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+Test`1[U,T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+Test`1+Nested`1[U,T,X]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>49</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Stack`1[T]">
+      <method name="INode`1[T] GetNode()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Foo`1 GetFoo(T)" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Bar`1 GetBar(T)" attrs="134">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Stack`1+Foo`1[T,T]">
+      <method name="Bar`1 GetBar()" attrs="134">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="Stack`1+Bar`1[T,U]">
+      <method name="Foo`1 GetFoo(Stack`1[T])" attrs="134">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Stack`1+Bar`1+Baz`1[T,U,V]">
+      <method name="Foo`1 GetFoo(Stack`1[T])" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Bar`1 GetBar()" attrs="134">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="A`1+Test`1[U,T]">
+      <method name="Nested`1 Foo()" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-041.cs">
+    <type name="Stack`1[T]">
+      <method name="Void Hello(Int32, T[])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-042.cs">
+    <type name="A.A`1[X]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.B`1[X]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.C`1[X]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.D`1[X]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.E`2[X,Y]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.F`1[X]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B.MyTest`2[K,V]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C.S`1[K]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C.C`1[K]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-043.cs">
+    <type name="Test`1[T]">
+      <method name="Void Foo()" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Int32 GetCount()" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 DoTheTest[T]()" attrs="145">
+        <size>145</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>177</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-044.cs">
+    <type name="X`1[T]">
+      <method name="X`1[T] op_Increment(X`1[T])" attrs="2198">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-045.cs">
+    <type name="Test`2[A,B]">
+      <method name="Void Foo[U](U)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Foo[V](V[], V)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Hello[V,W](V, W, Test`2[V,W])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void ArrayMethod[V](V[])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>87</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-046.cs">
+    <type name="Test`1[T]">
+      <method name="Void Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="Void add_MyEvent(Test`1[T])" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_MyEvent(Test`1[T])" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void Hello(T)" attrs="134">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void do_hello(System.String)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-047.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-048.cs">
+    <type name="Stack`1[T]">
+      <method name="Void Add(T)" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-049.cs">
+    <type name="X`1[T]">
+      <method name="Void A(T)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void A(T[])" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void A(T[,])" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void A(T[][])" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void B(T[])" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void B(Int32)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void C(T[])" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void C(T[,])" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void D(Int32, T)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void D(T, Int64)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X`1[T]">
+      <method name="Void C(Int32[,,])" attrs="129">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-050.cs">
+    <type name="D">
+      <method name="Int32 Invoke(System.String, Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="T F[T](System.String, T)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="T G[T]()" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.String, Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-051.cs">
+    <type name="Foo`1[T]">
+      <method name="Void Test(T)" attrs="134">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void Hello()" attrs="134">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-052.cs">
+    <type name="Foo`1[T]">
+      <method name="T Create()" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Hello()" attrs="129">
+        <size>12</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-053.cs">
+    <type name="ValueTypeCounters.SimpleCounter">
+      <method name="Void Increment()" attrs="486">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="ValueTypeCounters.PrintingCounter">
+      <method name="System.String ToString()" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Void Increment()" attrs="486">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="ValueTypeCounters.ExplicitCounter">
+      <method name="Void ICounter.Increment()" attrs="481">
+        <size>16</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="ValueTypeCounters.InterfaceCounter">
+      <method name="Void ICounter.Increment()" attrs="481">
+        <size>16</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Void Increment()" attrs="134">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="ReferenceTypeCounters.SimpleCounter">
+      <method name="Void Increment()" attrs="486">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ReferenceTypeCounters.PrintingCounter">
+      <method name="System.String ToString()" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Void Increment()" attrs="486">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ReferenceTypeCounters.ExplicitCounter">
+      <method name="Void ICounter.Increment()" attrs="481">
+        <size>16</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ReferenceTypeCounters.InterfaceCounter">
+      <method name="Void ICounter.Increment()" attrs="481">
+        <size>16</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Void Increment()" attrs="134">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Test`1[T]">
+      <method name="Void Foo(T)" attrs="150">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.X">
+      <method name="Void Main()" attrs="150">
+        <size>98</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-054.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Hello()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="C op_Implicit(B)" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="B op_Explicit(C)" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Simple[T](T)" attrs="145">
+        <size>37</size>
+      </method>
+      <method name="Void Interface[T](T)" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void Class[T](T)" attrs="145">
+        <size>72</size>
+      </method>
+      <method name="Void Array[T](T[])" attrs="145">
+        <size>22</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-055.cs">
+    <type name="N1.A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N1.A`1+B[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N1.A`1+C`1[T,U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N1.C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N2.X">
+      <method name="Void Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-056.cs">
+    <type name="Log`1[T]">
+      <method name="Int32 get_InstanceCount()" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="Void Add(T)" attrs="134">
+        <size>33</size>
+      </method>
+      <method name="Int32 get_Count()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="T get_Last()" attrs="2182">
+        <size>55</size>
+      </method>
+      <method name="Void set_Last(T)" attrs="2182">
+        <size>69</size>
+      </method>
+      <method name="T[] get_All()" attrs="2182">
+        <size>78</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>39</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestLog">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>207</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-057.cs">
+    <type name="Hello`1[T]">
+      <method name="Void Print(T)" attrs="486">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>49</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Hello`1[T]">
+      <method name="IHello`1[U] Test[U]()" attrs="486">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-058.cs">
+    <type name="Foo">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="Foo`1[T] get_Blah()" attrs="2193">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-059.cs">
+    <type name="X`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-060.cs">
+    <type name="MyList`1[T]">
+      <method name="Void Hello(T)" attrs="134">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="MyList`1[T] Map[T]()" attrs="486">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-061.cs">
+    <type name="Test`2[A,B]">
+      <method name="B Invoke(A)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="U Method[U](Test`2[T,U])" attrs="134">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>84</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`2[A,B]">
+      <method name="System.IAsyncResult BeginInvoke(A, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="B EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.String &lt;Main&gt;m__0(Double)" attrs="145">
+        <size>25</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-062.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>95</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>116</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test(Int32, Int64)" attrs="134">
+        <size>44</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-063.cs">
+    <type name="Test">
+      <method name="Int32 IndexOf(System.Array, System.Object)" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Int32 IndexOf(System.Array, System.Object, Int32, Int32)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 IndexOf[T](T[], T, Int32, Int32)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>85</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-064.cs">
+    <type name="Foo`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1+Hello[T]">
+      <method name="Void .ctor(Foo`1)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="IHello`1[T] IFoo&lt;T&gt;.GetHello()" attrs="481">
+        <size>15</size>
+      </method>
+      <method name="Hello GetHello()" attrs="134">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-065.cs">
+    <type name="ComparablePair`2[T,U]">
+      <method name="System.String ToString()" attrs="198">
+        <size>72</size>
+      </method>
+      <method name="Void .ctor(T, U)" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="MyTest">
+      <method name="Void Test()" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>218</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ComparablePair`2[T,U]">
+      <method name="Int32 CompareTo(ComparablePair`2[T,U])" attrs="486">
+        <size>76</size>
+      </method>
+      <method name="Boolean Equals(ComparablePair`2[T,U])" attrs="134">
+        <size>81</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-066.cs">
+    <type name="Foo`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1+Bar`1[T,U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.FooEx`2[V,W]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>62</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-067.cs">
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+Foo`1[T]">
+      <method name="Int32 Invoke(T, T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Add(Int32, Int32)" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Hello[U](Foo`1, U)" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Test+Foo`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(T, T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-068.cs">
+    <type name="Martin.Foo`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Baulig.X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-069.cs">
+    <type name="Test`1[T]">
+      <method name="Int32 Foo(IFoo)" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`1[T]">
+      <method name="Int32 Foo(IFoo`1[T])" attrs="134">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-070.cs">
+    <type name="Martin.Test`1[T]">
+      <method name="Int32 Foo()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-071.cs">
+    <type name="Foo`1[T]">
+      <method name="T Test[U](U)" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-072.cs">
+    <type name="Log`1[T]">
+      <method name="Int32 get_InstanceCount()" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="Void Add(T)" attrs="134">
+        <size>33</size>
+      </method>
+      <method name="Int32 get_Count()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="T get_Last()" attrs="2182">
+        <size>55</size>
+      </method>
+      <method name="Void set_Last(T)" attrs="2182">
+        <size>69</size>
+      </method>
+      <method name="T[] get_All()" attrs="2182">
+        <size>78</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>39</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestLog">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Pair`2[T,U]">
+      <method name="Void .ctor(T, U)" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="TestLog">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>212</size>
+      </method>
+      <method name="Void TestPairLog()" attrs="150">
+        <size>186</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-073.cs">
+    <type name="MyList`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>57</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyList`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyList`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-074.cs">
+    <type name="Foo`1[T]">
+      <method name="Void .ctor(T, T)" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="Test`1[T]">
+      <method name="Void .ctor(T, T)" attrs="6278">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>113</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-075.cs">
+    <type name="ArrayList`1[T]">
+      <method name="Void IExtensible&lt;T&gt;.AddAll[U](U)" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-076.cs">
+    <type name="Foo`1[T]">
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Test`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`1[T]">
+      <method name="Foo`1[T] GetFoo(T)" attrs="134">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-078.cs">
+    <type name="S">
+      <method name="Void System.IDisposable.Dispose()" attrs="481">
+        <size>14</size>
+      </method>
+      <method name="Void Dispose()" attrs="134">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void System.IDisposable.Dispose()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void Dispose()" attrs="134">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>238</size>
+      </method>
+      <method name="Void GenMethod[T](T)" attrs="145">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-079.cs">
+    <type name="A.ArrayList`1[T]">
+      <method name="Void A.IExtensible&lt;T&gt;.AddAll[U](U)" attrs="481">
+        <size>19</size>
+      </method>
+      <method name="Void InsertAll(T)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B.ArrayList`2[X,Y]">
+      <method name="Void AddAll[Z](Z)" attrs="486">
+        <size>19</size>
+      </method>
+      <method name="Void InsertAll(Y)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C.Foo`1[U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C.ArrayList`1[X]">
+      <method name="Void AddAll[Y](Y)" attrs="486">
+        <size>14</size>
+      </method>
+      <method name="Void InsertAll(C.Foo`1[X])" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-080.cs">
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Hello[T](IFoo`1[T])" attrs="134">
+        <size>9</size>
+      </method>
+      <method name="Void InsertAll[U](IFoo`1[U])" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-081.cs">
+    <type name="ArrayList`1[T]">
+      <method name="Void AddAll[U](U)" attrs="129">
+        <size>19</size>
+      </method>
+      <method name="Void InsertAll(T)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-082.cs">
+    <type name="Queue`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Queue`1+Enumerator[T]">
+      <method name="Void .ctor(Queue`1)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-083.cs">
+    <type name="CollectionValueBase`1[T]">
+      <method name="T[] ToArray()" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CollectionBase`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SequencedBase`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ArrayBase`1[T]">
+      <method name="T[] ToArray()" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-084.cs">
+    <type name="HasherBuilder.ByPrototype`1[S]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ArrayList`1[U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="HasherBuilder.ByPrototype`1[S]">
+      <method name="IHasher`1[S] Examine()" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="ArrayList`1[U]">
+      <method name="IHasher`1[U] GetHasher()" attrs="134">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-085.cs">
+    <type name="ArrayList`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ArrayList`1[T]">
+      <method name="Int32 InsertAll(IFoo`1[T])" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Int32 InsertAll[U](IFoo`1[U])" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Int32 AddAll(IFoo`1[T])" attrs="454">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-086.cs">
+    <type name="ArrayList`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ArrayList`1[T]">
+      <method name="Int32 InsertAll(IFoo`1[T])" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Int32 InsertAll[U](IFoo`1[U])" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Int32 AddAll(IFoo`1[T])" attrs="454">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-087.cs">
+    <type name="C5.HashedArrayList`1[T]">
+      <method name="Void Test()" attrs="134">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C5.HashSet`1[T]">
+      <method name="Void .ctor(IHasher`1)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C5.KeyValuePairHasher`2[K,V]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-088.cs">
+    <type name="KeyValuePair`2[K,V]">
+      <method name="Void .ctor(K, V)" attrs="6278">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(K)" attrs="6278">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-089.cs">
+    <type name="Test`1[T]">
+      <method name="Void Foo(T, Int32 ByRef)" attrs="134">
+        <size>5</size>
+      </method>
+      <method name="Void Hello(T)" attrs="134">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-090.cs">
+    <type name="Foo`1[T]">
+      <method name="T InsertAll[U](U)" attrs="454">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar`1[T]">
+      <method name="T InsertAll[U](U)" attrs="198">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-091.cs">
+    <type name="Foo`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1+Node[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="Node Test[V]()" attrs="134">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-092.cs">
+    <type name="Element`1[T]">
+      <method name="Void GetItem(T ByRef)" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="T GetItem(Int32, T ByRef)" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void SetItem(T)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1+Node[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="Node Test()" attrs="134">
+        <size>60</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-093.cs">
+    <type name="Foo`1[T]">
+      <method name="Void Hello[U]()" attrs="134">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Foo`1+Node[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="Void maketreer(Node ByRef)" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-094.cs">
+    <type name="LinkedList`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="LinkedList`1+Node[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="HashedLinkedList`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-095.cs">
+    <type name="GuardedCollectionValue`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="GuardedSequenced`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="GuardedCollectionValue`1[T]">
+      <method name="IDirectedEnumerable`1[T] IDirectedEnumerable&lt;T&gt;.Backwards()" attrs="481">
+        <size>10</size>
+      </method>
+      <method name="IDirectedCollectionValue`1[T] Backwards()" attrs="486">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="GuardedSequenced`1[T]">
+      <method name="IDirectedCollectionValue`1[T] Test()" attrs="134">
+        <size>20</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-096.cs">
+    <type name="Foo`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Hello[T](Foo`1[T][], Int32)" attrs="145">
+        <size>28</size>
+      </method>
+      <method name="Void Quicksort[U](Foo`1[U][])" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-097.cs">
+    <type name="Foo">
+      <method name="Void IFoo.Test[X]()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void IFoo.Test[Y,Z]()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar`3[X,Y,Z]">
+      <method name="Void IBar&lt;X&gt;.Test()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void IBar&lt;Y,Z&gt;.Test()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-098.cs">
+    <type name="Foo">
+      <method name="Void IFoo.Test[X]()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void IFoo.Test[Y,Z]()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar`3[X,Y,Z]">
+      <method name="Void IBar&lt;X&gt;.Test()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void IBar&lt;Y,Z&gt;.Test()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-100.cs">
+    <type name="C5.ArrayBase`1[T]">
+      <method name="Void C5.ICollection&lt;T&gt;.Test[U]()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C5.ArrayList`1[V]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-101.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SimpleStruct`1[T]">
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-102.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`2[U,V]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Driver">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-103.cs">
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Hello">
+      <method name="Void Test(Foo)" attrs="134">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Hello">
+      <method name="Void World[U](U, IFoo`1[U])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void World[V](IFoo`1[V])" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-104.cs">
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+Gen`1[T]">
+      <method name="Void Test()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+Der">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-105.cs">
+    <type name="A.KeyValuePair`2[X,Y]">
+      <method name="Void .ctor(X, Y)" attrs="6278">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="A.KeyValuePairComparer`2[K,V]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.TreeBag`1[T]">
+      <method name="Int32 Find(T ByRef)" attrs="134">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor(IComparer`1)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="A.X">
+      <method name="Void Test()" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B.KeyValuePair`2[X,Y]">
+      <method name="Void .ctor(X, Y)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="B.KeyValuePairComparer`2[K,V]">
+      <method name="Int32 Compare(B.KeyValuePair`2[K,V])" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B.TreeBag`1[T]">
+      <method name="Int32 Find(T ByRef)" attrs="134">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor(IComparer`1)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="B.X">
+      <method name="Void Test()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.KeyValuePairComparer`2[K,V]">
+      <method name="Int32 Compare(A.KeyValuePair`2[K,V])" attrs="486">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-106.cs">
+    <type name="KeyValuePair`2[X,Y]">
+      <method name="Void .ctor(X, Y)" attrs="6278">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="KeyValuePairComparer`2[K,V]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TreeBag`1[T]">
+      <method name="Int32 Find()" attrs="134">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor(IComparer`1, T)" attrs="6278">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="KeyValuePairComparer`2[K,V]">
+      <method name="Int32 Compare(KeyValuePair`2[K,V])" attrs="486">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-107.cs">
+    <type name="Mapper`2[T,V]">
+      <method name="V Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Tree`1[T]">
+      <method name="Void Map[V](Mapper`2[T,V])" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.String themap(Int32)" attrs="129">
+        <size>25</size>
+      </method>
+      <method name="Void Test()" attrs="129">
+        <size>27</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Mapper`2[T,V]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="V EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-108.cs">
+    <type name="Test`1[T]">
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>58</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>82</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="134">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-109.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-110.cs">
+    <type name="List`1[T]">
+      <method name="Int32 Map[U](U)" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SpecialList`1[V]">
+      <method name="Int32 Map[W](W)" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>76</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-111.cs">
+    <type name="KeyValuePair`2[K,V]">
+      <method name="Void .ctor(K, V)" attrs="6278">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor(K)" attrs="6278">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="Collection`1[T]">
+      <method name="Void Find(T ByRef)" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>86</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-112.cs">
+    <type name="IC">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[K]">
+      <method name="Void .ctor(K)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="List`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Sorting">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Sorting+Sorter`1[T]">
+      <method name="Void InsertionSort(Int32)" attrs="131">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor(IComparer`1, Int32, T)" attrs="6278">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="IC">
+      <method name="Void Compare(Foo`1[System.Int32])" attrs="486">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="List`1[T]">
+      <method name="Void Sort(IComparer`1[T], T)" attrs="454">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Sorting">
+      <method name="Void IntroSort[T](IComparer`1[T], T)" attrs="150">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-113.cs">
+    <type name="Mapper`2[T,V]">
+      <method name="V Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="List`1[T]">
+      <method name="Void Map[V](Mapper`2[T,V])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Mapper`2[T,V]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="V EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Double &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>21</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-114.cs">
+    <type name="NaturalComparer`1[T]">
+      <method name="Int32 Compare(T, T)" attrs="486">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 CompareTo(Test)" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Boolean Equals(Test)" attrs="134">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-115.cs">
+    <type name="Mapper`2[A,R]">
+      <method name="R Invoke(A)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="LinkedList`1[T]">
+      <method name="Int32 get_Count()" attrs="2534">
+        <size>15</size>
+      </method>
+      <method name="T get_Item(Int32)" attrs="2534">
+        <size>21</size>
+      </method>
+      <method name="Void set_Item(Int32, T)" attrs="2534">
+        <size>15</size>
+      </method>
+      <method name="Void Add(T)" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Insert(Int32, T)" attrs="486">
+        <size>266</size>
+      </method>
+      <method name="Void RemoveAt(Int32)" attrs="486">
+        <size>114</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>169</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>77</size>
+      </method>
+      <method name="LinkedList`1[T] op_Explicit(T[])" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="LinkedList`1[T] op_Addition(LinkedList`1[T], LinkedList`1[T])" attrs="2198">
+        <size>135</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor(T[])" attrs="6278">
+        <size>46</size>
+      </method>
+    </type>
+    <type name="LinkedList`1+Node[T]">
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(T, Node, Node)" attrs="6278">
+        <size>29</size>
+      </method>
+    </type>
+    <type name="LinkedList`1+LinkedListEnumerator[T]">
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>20</size>
+      </method>
+      <method name="T get_Current()" attrs="2534">
+        <size>32</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>81</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>7</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor(LinkedList`1)" attrs="6278">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="SortedList`1[T]">
+      <method name="Void Insert(T)" attrs="134">
+        <size>140</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="PrintableLinkedList`1[T]">
+      <method name="Void Print(System.IO.TextWriter)" attrs="486">
+        <size>93</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyString">
+      <method name="Int32 CompareTo(MyString)" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Boolean Equals(MyString)" attrs="134">
+        <size>26</size>
+      </method>
+      <method name="System.String get_Value()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="MyTest">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>472</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="LinkedList`1[T]">
+      <method name="IMyList`1[U] Map[U](Mapper`2[T,U])" attrs="486">
+        <size>78</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="486">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Mapper`2[A,R]">
+      <method name="System.IAsyncResult BeginInvoke(A, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="R EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="LinkedList`1[T]">
+      <method name="Node get(Int32)" attrs="129">
+        <size>133</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="MyTest">
+      <method name="System.String &lt;Main&gt;m__0(Double)" attrs="145">
+        <size>25</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-116.cs">
+    <type name="Slow.Test">
+      <method name="Void DoNothing[T]()" attrs="486">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Slow.Program">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>202</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-117.cs">
+    <type name="Foo`1[T]">
+      <method name="Boolean Test(T)" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Boolean Test()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Boolean TestB()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y`1[T]">
+      <method name="Boolean Foo()" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Boolean TestA(System.Object)" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Boolean TestB[T](T)" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Int32 TestC()" attrs="150">
+        <size>46</size>
+      </method>
+      <method name="Boolean Check2[T](E)" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>213</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Boolean Check1(System.Nullable`1[E])" attrs="145">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-118.cs">
+    <type name="Polynomial`1[E]">
+      <method name="Polynomial`1[E] Add(Polynomial`1[E])" attrs="486">
+        <size>315</size>
+      </method>
+      <method name="Polynomial`1[E] Add(E)" attrs="486">
+        <size>34</size>
+      </method>
+      <method name="Polynomial`1[E] Mul(E)" attrs="486">
+        <size>86</size>
+      </method>
+      <method name="Polynomial`1[E] Mul(Polynomial`1[E])" attrs="486">
+        <size>203</size>
+      </method>
+      <method name="E Eval(E)" attrs="134">
+        <size>84</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor(E[])" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Int">
+      <method name="Int Add(Int)" attrs="486">
+        <size>28</size>
+      </method>
+      <method name="Int Mul(Int)" attrs="486">
+        <size>28</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="TestPolynomial">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>149</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-119.cs">
+    <type name="Tests">
+      <method name="Void Main()" attrs="150">
+        <size>62</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-120.cs">
+    <type name="SequencedHasher`2[S,W]">
+      <method name="Boolean Equals(S, S)" attrs="134">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Sequenced`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Sequenced`1[T]">
+      <method name="Boolean Equals(ISequenced`1[T])" attrs="486">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-121.cs">
+    <type name="B`1[T]">
+      <method name="Int32 Add(T)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void AddRange(System.Object)" attrs="134">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-122.cs">
+    <type name="Test">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="Void D(Int32)" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1[T]">
+      <method name="Void Run()" attrs="134">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor(B, T)" attrs="6278">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="A`1+B[T]">
+      <method name="Void Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-123.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+Foo[T]">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="A`1+Bar`1[T,U]">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+Foo[T]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="A`1+Bar`1[T,U]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-124.cs">
+    <type name="FooCollection`1[T]">
+      <method name="T IFoo&lt;T&gt;.get_Item(Int32)" attrs="2529">
+        <size>18</size>
+      </method>
+      <method name="Void IFoo&lt;T&gt;.set_Item(Int32, T)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-125.cs">
+    <type name="B`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-126.cs">
+    <type name="B">
+      <method name="Boolean foo()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="K">
+      <method name="Boolean foo()" attrs="486">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="MyFilter">
+      <method name="K Is(IB)" attrs="486">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyBFilter">
+      <method name="B Is(IB)" attrs="486">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>46</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.List`1[T] foo1[T](Filter`1[T])" attrs="145">
+        <size>46</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-127.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+Changed[T]">
+      <method name="Void Invoke(A`1[T])" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void Del(A`1[System.Int32])" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1[T]">
+      <method name="Void add__changed(Changed)" attrs="2180">
+        <size>42</size>
+      </method>
+      <method name="Void remove__changed(Changed)" attrs="2180">
+        <size>42</size>
+      </method>
+      <method name="Void Register(Changed)" attrs="134">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="A`1+Changed[T]">
+      <method name="System.IAsyncResult BeginInvoke(A`1[T], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-128.cs">
+    <type name="FLMID.Bugs.ParametersOne.Class`1[T]">
+      <method name="Void Add(T)" attrs="134">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FLMID.Bugs.ParametersOne.Test">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>125</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-129.cs">
+    <type name="B.Test`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-130.cs">
+    <type name="MyTest">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>908</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-131.cs">
+    <type name="MyTest">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>1300</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-132.cs">
+    <type name="MyTest">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>64</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Nullable`1[System.Int32] Sqrt(System.Nullable`1[System.Int32])" attrs="150">
+        <size>68</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-133.cs">
+    <type name="S">
+      <method name="Int32 get_X()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_X(Int32)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void Set(Int32)" attrs="134">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="MyTest">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>202</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-134.cs">
+    <type name="MyTest">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>114</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="System.String Fmt()" attrs="134">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-135.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>117</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-136.cs">
+    <type name="Martin.A">
+      <method name="Void .ctor(Int64)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Martin.B">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Martin.X">
+      <method name="Void Main()" attrs="150">
+        <size>149</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Martin.A">
+      <method name="Martin.B op_Explicit(Martin.A)" attrs="2198">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="Martin.B">
+      <method name="Martin.A op_Implicit(Martin.B)" attrs="2198">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-137.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>240</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-138.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>102</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-139.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>78</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyStruct">
+      <method name="Int32 op_Inequality(System.Nullable`1[MyStruct], System.String)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int32 op_Equality(System.Nullable`1[MyStruct], System.String)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int32 op_Inequality(System.String, System.Nullable`1[MyStruct])" attrs="2198">
+        <size>11</size>
+      </method>
+      <method name="Int32 op_Equality(System.String, System.Nullable`1[MyStruct])" attrs="2198">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-140.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>134</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-141.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>92</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-142.cs">
+    <type name="Assert">
+      <method name="Int32 get_Errors()" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="Void Error(System.String, System.String)" attrs="145">
+        <size>26</size>
+      </method>
+      <method name="Void IsTrue(System.String, Boolean)" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void IsFalse(System.String, Boolean)" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>2163</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Assert">
+      <method name="Void IsNull[T](System.String, System.Nullable`1[T])" attrs="150">
+        <size>25</size>
+      </method>
+      <method name="Void IsNotNull[T](System.String, System.Nullable`1[T])" attrs="150">
+        <size>25</size>
+      </method>
+      <method name="Void IsTrue(System.String, System.Nullable`1[System.Boolean])" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void IsFalse(System.String, System.Nullable`1[System.Boolean])" attrs="150">
+        <size>37</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-143.cs">
+    <type name="X">
+      <method name="Int32 Index()" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="Int32 Test()" attrs="145">
+        <size>1276</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Nullable`1[System.Int32] get_Item(Int32)" attrs="2177">
+        <size>15</size>
+      </method>
+      <method name="Void set_Item(Int32, System.Nullable`1[System.Int32])" attrs="2177">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-144.cs">
+    <type name="Test.Application">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-145.cs">
+    <type name="Test`1[T]">
+      <method name="Void .ctor(T[,])" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-146.cs">
+    <type name="MyLinkedList`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyLinkedList`1+Node[T]">
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="SortedList`1[U]">
+      <method name="Void Insert(U)" attrs="134">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-147.cs">
+    <type name="B.Test`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B.Test`1[T]">
+      <method name="Void A.IFoo.Hello(A.IFoo)" attrs="481">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-148.cs">
+    <type name="Test1">
+      <method name="Void Foo[S,OP](UInt32)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Test1+IOp`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test2">
+      <method name="Void Foo[T,OP](UInt32)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Test2+IOp`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-149.cs">
+    <type name="Test1">
+      <method name="Void Foo[S,OP](UInt32)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Test1+IOp`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test2">
+      <method name="Void Foo[T,OP](UInt32)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Test2+IOp`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-150.cs">
+    <type name="Test1">
+      <method name="Void Foo[T,OP](UInt32)" attrs="145">
+        <size>36</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="Test1+Op">
+      <method name="UInt16 Test1.IOp&lt;ushort&gt;.Func(UInt32)" attrs="481">
+        <size>13</size>
+      </method>
+      <method name="UInt32 Test1.IOp&lt;uint&gt;.Func(UInt32)" attrs="481">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-151.cs">
+    <type name="Test`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-152.cs">
+    <type name="EnumerableBase`1[T]">
+      <method name="IFoo IFoo.Hello()" attrs="481">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CollectionBase`1[T]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="HashBag`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="EnumerableBase`1[T]">
+      <method name="IFoo`1[T] Hello()" attrs="1478">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="HashBag`1[T]">
+      <method name="IFoo`1[T] Hello()" attrs="198">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-153.cs">
+    <type name="MyClass`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-154.cs">
+    <type name="T`1[X]">
+      <method name="Int32 Invoke(X)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="T`1[X] M[X]()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="T`1[System.Int64] N()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T`1[X]">
+      <method name="System.IAsyncResult BeginInvoke(X, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 &lt;M`1&gt;m__0[X](X)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;N&gt;m__1(Int64)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-155.cs">
+    <type name="MyClass`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-156.cs">
+    <type name="FLMID.Bugs.Marshal15.D">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-157.cs">
+    <type name="kv`2[k,v]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="m`2[k,v]">
+      <method name="Void a&lt;kv&lt;k,v&gt;&gt;.x()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-158.cs">
+    <type name="Moo`1[C]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Moo`1+Foo[C]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-159.cs">
+    <type name="App">
+      <method name="Void Main()" attrs="150">
+        <size>102</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-160.cs">
+    <type name="Fun`2[A,B]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="List`1[T]">
+      <method name="List`1[T2] Map[T2](Fun`2[T,T2])" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void foo[T2]()" attrs="134">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-161.cs">
+    <type name="App">
+      <method name="Void Main()" attrs="150">
+        <size>74</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="U apply[T,U](T, Mapping`2)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-162.cs">
+    <type name="Generic`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Generic`1+Delegate[T]">
+      <method name="Void Invoke(Generic`1[T], T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Generic`1+Delegate[T]">
+      <method name="System.IAsyncResult BeginInvoke(Generic`1[T], T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-163.cs">
+    <type name="Foo`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1+&lt;getEnumerator&gt;c__Iterator0[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>80</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] getEnumerator(Int32)" attrs="134">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-164.cs">
+    <type name="Int2Int">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="FunEnumerable">
+      <method name="Void .ctor(Int32, Int2Int)" attrs="6278">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FunEnumerable+&lt;GetEnumerator&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>98</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FunEnumerable">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] GetEnumerator()" attrs="134">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="Int2Int">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-165.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-166.cs">
+    <type name="Foo">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-167.cs">
+    <type name="TestAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestNotAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestMultiAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Class1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Class2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Class3">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>109</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-168.cs">
+    <type name="lis`1[a]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="lis`1[a] Rev[a](lis`1[a])" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="lis`1[b] MapFromArray[a,b](a[])" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-169.cs">
+    <type name="list`1[A]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="list`1+Cons`1[A,T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="list`1+Nil`1[A,T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Rev[T](list`1[T])" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-170.cs">
+    <type name="C`1[A]">
+      <method name="Void foo[B](C`1[B])" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void append[A](C`1[A])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-171.cs">
+    <type name="list`1[a]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Nil`1[a]">
+      <method name="Void .cctor()" attrs="6289">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-172.cs">
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-173.cs">
+    <type name="List`1[t]">
+      <method name="Void foo[b](List`1[t])" attrs="134">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-174.cs">
+    <type name="B`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-175.cs">
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Foo Test(Foo, Foo)" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>46</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-176.cs">
+    <type name="lis`1[a]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="fn`3[a,b,r]">
+      <method name="r apply(a, b)" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="fn1`1[a]">
+      <method name="lis`1[a] apply(lis`1[a], lis`1[a])" attrs="198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="b FoldLeft[a,b](a, b, fn`3[a,b,b])" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="lis`1[a] RevAppend[a](lis`1[a], lis`1[a])" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="lis`1[lis`1[a]] Concat[a](lis`1[lis`1[a]])" attrs="150">
+        <size>25</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-177.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>119</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="X`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[T] Y(System.Collections.Generic.IEnumerable`1[T])" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="T Z(System.Collections.Generic.IList`1[T], Int32)" attrs="150">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-178.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-179.cs">
+    <type name="X`1[T]">
+      <method name="Int32 get_i()" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void set_i(Int32)" attrs="2193">
+        <size>2</size>
+      </method>
+      <method name="Int32 myMain()" attrs="150">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Int32 Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-180.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+CC">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>289</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-181.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>211</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>149</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;&gt;c__Iterator1">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>168</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerator get_GetIt()" attrs="2193">
+        <size>15</size>
+      </method>
+      <method name="Void set_GetIt(System.Collections.IEnumerator)" attrs="2193">
+        <size>2</size>
+      </method>
+      <method name="System.Collections.IEnumerable get_Item(Int32)" attrs="2177">
+        <size>30</size>
+      </method>
+      <method name="Void set_Item(Int32, System.Collections.IEnumerable)" attrs="2177">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="X+&lt;&gt;c__Iterator1">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-182.cs">
+    <type name="C1">
+      <method name="Int32 GetId()" attrs="486">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void foo[a](a)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-183.cs">
+    <type name="test.Test`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test.Program">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>75</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test.Test`1+&lt;Lookup&gt;c__Iterator0[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>91</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test.Test`1[T]">
+      <method name="System.Collections.Generic.IEnumerable`1[T] Lookup(T)" attrs="134">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="test.Test`1+&lt;Lookup&gt;c__Iterator0[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-184.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>69</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__0(System.String)" attrs="145">
+        <size>20</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-185.cs">
+    <type name="App">
+      <method name="Void Main()" attrs="150">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FP">
+      <method name="T[] appendArrays[T](T[][])" attrs="150">
+        <size>155</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-186.cs">
+    <type name="Tuple`2[a,b]">
+      <method name="Void .ctor(a, b)" attrs="6278">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>121</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestSimpleObject">
+      <method name="Void Print()" attrs="134">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>26</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-187.cs">
+    <type name="Foo`1[T]">
+      <method name="T next()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Goo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-188.cs">
+    <type name="Foo">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void add_DoSomething(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_DoSomething(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor(Object[])" attrs="6278">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor(Object[], Object)" attrs="6278">
+        <size>205</size>
+      </method>
+    </type>
+    <type name="Foo+&lt;Foo&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo+&lt;Foo&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
+        <size>47</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-189.cs">
+    <type name="Bar">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Cont`1[T]">
+      <method name="System.String ToString()" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-190.cs">
+    <type name="Foo`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1+Node[T]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1+ConcatNode[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="Node GetRoot()" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void Test(Node)" attrs="134">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-191.cs">
+    <type name="Test2.Test`1[S]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test3.Test`1[S]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test4.Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test5.Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test6.Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test7.Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test1.Test+&lt;Replace&gt;c__Iterator0`1[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test1.Test">
+      <method name="System.Collections.Generic.IEnumerable`1[T] Replace[T]()" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Test2.Test`1[S]">
+      <method name="System.Collections.Generic.IEnumerable`1[T] Replace[T]()" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Test3.Test`1[S]">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[S,T]] Replace[T](System.Collections.Generic.IEnumerable`1[T], System.Collections.Generic.IEnumerable`1[S])" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Test4.Test">
+      <method name="System.Collections.Generic.IEnumerable`1[T] Replace[T]()" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Test5.Test">
+      <method name="System.Collections.Generic.IEnumerable`1[T] Replace[T](T)" attrs="150">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="Test6.Test">
+      <method name="System.Collections.Generic.IEnumerable`1[T] Replace[T](T)" attrs="150">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="Test7.Test">
+      <method name="System.Collections.Generic.IEnumerable`1[T[]] Replace[T](T[])" attrs="150">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="Test1.Test+&lt;Replace&gt;c__Iterator0`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="Test2.Test`1+&lt;Replace&gt;c__Iterator0`1[S,T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test3.Test`1+&lt;Replace&gt;c__Iterator0`1[S,T]">
+      <method name="System.Collections.Generic.KeyValuePair`2[S,T] System.Collections.Generic.IEnumerator&lt;System.Collections.Generic.KeyValuePair&lt;S,T&gt;&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[S,T]] System.Collections.Generic.IEnumerable&lt;System.Collections.Generic.KeyValuePair&lt;S,T&gt;&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test4.Test+&lt;Replace&gt;c__Iterator0`1[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test5.Test+&lt;Replace&gt;c__Iterator0`1[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>77</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test6.Test+&lt;Replace&gt;c__Iterator0`1[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>89</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test7.Test+&lt;Replace&gt;c__Iterator0`1[T]">
+      <method name="T[] System.Collections.Generic.IEnumerator&lt;T[]&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>89</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[T[]] System.Collections.Generic.IEnumerable&lt;T[]&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test1.Test+&lt;Replace&gt;c__Iterator0`1[T]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Test2.Test`1+&lt;Replace&gt;c__Iterator0`1[S,T]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Test3.Test`1+&lt;Replace&gt;c__Iterator0`1[S,T]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Test4.Test+&lt;Replace&gt;c__Iterator0`1[T]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Test5.Test+&lt;Replace&gt;c__Iterator0`1[T]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Test6.Test+&lt;Replace&gt;c__Iterator0`1[T]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Test7.Test+&lt;Replace&gt;c__Iterator0`1[T]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-192.cs">
+    <type name="xX">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-193.cs">
+    <type name="OrderedMultiDictionary`2[T,U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="RedBlackTree`1[S]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="RedBlackTree`1+RangeTester[S]">
+      <method name="Int32 Invoke(S)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="OrderedMultiDictionary`2+&lt;EnumerateKeys&gt;c__Iterator0[T,U]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>49</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="RedBlackTree`1+&lt;EnumerateRange&gt;c__Iterator0[S]">
+      <method name="S System.Collections.Generic.IEnumerator&lt;S&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[S] System.Collections.Generic.IEnumerable&lt;S&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="OrderedMultiDictionary`2[T,U]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] EnumerateKeys(RangeTester)" attrs="129">
+        <size>29</size>
+      </method>
+    </type>
+    <type name="RedBlackTree`1[S]">
+      <method name="System.Collections.Generic.IEnumerable`1[S] EnumerateRange(RangeTester)" attrs="134">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="RedBlackTree`1+RangeTester[S]">
+      <method name="System.IAsyncResult BeginInvoke(S, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="RedBlackTree`1+&lt;EnumerateRange&gt;c__Iterator0[S]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-194.cs">
+    <type name="RedBlackTree`1[S]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="RedBlackTree`1+RangeTester[S]">
+      <method name="Int32 Invoke(S)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="OrderedMultiDictionary`2[T,U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="RedBlackTree`1+&lt;EnumerateRange&gt;c__Iterator0[S]">
+      <method name="S System.Collections.Generic.IEnumerator&lt;S&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[S] System.Collections.Generic.IEnumerable&lt;S&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="OrderedMultiDictionary`2+&lt;EnumerateKeys&gt;c__Iterator0[T,U]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>49</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="RedBlackTree`1[S]">
+      <method name="System.Collections.Generic.IEnumerable`1[S] EnumerateRange(RangeTester)" attrs="134">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="RedBlackTree`1+RangeTester[S]">
+      <method name="System.IAsyncResult BeginInvoke(S, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="OrderedMultiDictionary`2[T,U]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] EnumerateKeys(RangeTester)" attrs="129">
+        <size>29</size>
+      </method>
+    </type>
+    <type name="RedBlackTree`1+&lt;EnumerateRange&gt;c__Iterator0[S]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-195.cs">
+    <type name="OrderedMultiDictionary`2[T,U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="RedBlackTree`1[S]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="RedBlackTree`1+RangeTester[S]">
+      <method name="Int32 Invoke(S)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="OrderedMultiDictionary`2[T,U]">
+      <method name="Void EnumerateKeys(RangeTester)" attrs="129">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="RedBlackTree`1[S]">
+      <method name="Void EnumerateRange(RangeTester)" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="RedBlackTree`1+RangeTester[S]">
+      <method name="System.IAsyncResult BeginInvoke(S, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-196.cs">
+    <type name="Dict">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Int32 Main()" attrs="150">
+        <size>123</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-197.cs">
+    <type name="Martin.Collections.Generic.EqualityComparer`1[T]">
+      <method name="Int32 GetHashCode(T)" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Boolean Equals(T, T)" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Martin.Collections.Generic.EqualityComparer`1[T] get_Default()" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>96</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Martin.Collections.Generic.EqualityComparer`1+DefaultComparer[T]">
+      <method name="Int32 GetHashCode(T)" attrs="198">
+        <size>22</size>
+      </method>
+      <method name="Boolean Equals(T, T)" attrs="198">
+        <size>54</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Martin.Collections.Generic.IEquatableOfTEqualityComparer`1[T]">
+      <method name="Int32 GetHashCode(T)" attrs="198">
+        <size>22</size>
+      </method>
+      <method name="Boolean Equals(T, T)" attrs="198">
+        <size>49</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Martin.Collections.Generic.X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-198.cs">
+    <type name="ClassLibrary2.List1`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ClassLibrary2.List2`1[T]">
+      <method name="Void AddItem(T)" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="ClassLibrary2.Foo">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-199.cs">
+    <type name="Splay`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-200.cs">
+    <type name="Test">
+      <method name="T QueryInterface[T](System.Object)" attrs="150">
+        <size>63</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Driver">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-201.cs">
+    <type name="HashSet`1[T]">
+      <method name="Int64 Test()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int64)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>92</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="HashSet`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
+      <method name="Int64 System.Collections.Generic.IEnumerator&lt;long&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>82</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="HashSet`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int64] GetEnumerator()" attrs="134">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-202.cs">
+    <type name="Generic`1[T]">
+      <method name="T get_Item(Int32, Int32)" attrs="2182">
+        <size>22</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32, T)" attrs="2182">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="Fault">
+      <method name="Void Main()" attrs="150">
+        <size>52</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-203.cs">
+    <type name="C`2[X,Y]">
+      <method name="Void foo[A,B]()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void bar[A,B]()" attrs="134">
+        <size>70</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`2+Q`2[X,Y,A,B]">
+      <method name="Void apply(C`2[X,Y])" attrs="134">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-204.cs">
+    <type name="Map`1[b]">
+      <method name="a Fold1[a](a)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="c Fold[c](c)" attrs="134">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="LocalContext">
+      <method name="a Fold[a](a)" attrs="134">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-205.cs">
+    <type name="Foo`1[S]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`1[U]">
+      <method name="Void Func(U)" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Test(System.Type, System.Object)" attrs="145">
+        <size>32</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>145</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-206.cs">
+    <type name="Continuation`2[R,A]">
+      <method name="Continuation`2[R,A] CallCC[B](System.Object)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Driver">
+      <method name="Continuation`2[B,A] myTry[A,B](B, A)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-207.cs">
+    <type name="M">
+      <method name="Void p(System.String)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-208.cs">
+    <type name="SomeClass">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="T Do(System.Object)" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Driver">
+      <method name="Void Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-209.cs">
+    <type name="ClassLibrary3.Dictionary1`2[TKey,TValue]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ClassLibrary3.Test">
+      <method name="Void Main()" attrs="150">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-210.cs">
+    <type name="Foo`1[T]">
+      <method name="T next()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Goo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-211.cs">
+    <type name="MyTest">
+      <method name="Void f(Boolean, Boolean)" attrs="145">
+        <size>60</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>448</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-212.cs">
+    <type name="SomeStruct">
+      <method name="Boolean get_Valid()" attrs="2534">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Fun[T](T)" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-213.cs">
+    <type name="SomeStruct">
+      <method name="Int32 get_Foo()" attrs="2534">
+        <size>15</size>
+      </method>
+      <method name="Void set_Foo(Int32)" attrs="2534">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Fun[T](T)" attrs="150">
+        <size>79</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-214.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>104</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-215.cs">
+    <type name="R">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-216.cs">
+    <type name="BaseClass">
+      <method name="Ret Foo()" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="DerivedClass">
+      <method name="Ret Foo()" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BaseClass">
+      <method name="Ret`1[T] Foo[T]()" attrs="454">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="DerivedClass">
+      <method name="Ret`1[T] Foo[T]()" attrs="198">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-218.cs">
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-219.cs">
+    <type name="Test">
+      <method name="Void Foo[T]()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>93</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-220.cs">
+    <type name="A`1[T1]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+B`1[T1,T2]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+B`1+C`1[T1,T2,T3]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="PopQuiz">
+      <method name="Int32 Main()" attrs="150">
+        <size>171</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-221.cs">
+    <type name="C1`1[IFoo]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C2">
+      <method name="C1`1[T] Hoge[T](C1`1[T])" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C3">
+      <method name="C1`1[T] Hoge[T](C1`1[T])" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-222.cs">
+    <type name="Mona`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Mona`1[K] GetMona[K]()" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-223.cs">
+    <type name="Foo`1[T]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Foo`1[K] Hoge[K]()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>74</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-224.cs">
+    <type name="Base">
+      <method name="Void Foo[T]()" attrs="454">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Derived">
+      <method name="Void Foo[T]()" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Driver">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-225.cs">
+    <type name="Set`1[Element]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Set`1+Locator[Element]">
+      <method name="Void .ctor(Replace)" attrs="6278">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Set`1+Locator+Replace[Element]">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Set`1+Node[Element]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SetTest">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Set`1+&lt;locate&gt;c__AnonStorey0[Element]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Set`1[Element]">
+      <method name="Locator locate(Element)" attrs="132">
+        <size>39</size>
+      </method>
+    </type>
+    <type name="Set`1+Locator+Replace[Element]">
+      <method name="Void Invoke(Node)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Node, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Set`1+&lt;locate&gt;c__AnonStorey0[Element]">
+      <method name="Void &lt;&gt;m__0(Node)" attrs="131">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-226.cs">
+    <type name="Container`1[T]">
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Int32 Main()" attrs="150">
+        <size>103</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-227.cs">
+    <type name="Foo`1[G]">
+      <method name="Void Bar()" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-228.cs">
+    <type name="GenParAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="cons`2[A,B]">
+      <method name="Void abc[M]()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-229.cs">
+    <type name="B">
+      <method name="Int32 CompareTo(B)" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Int32 Main()" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-231.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-232.cs">
+    <type name="M">
+      <method name="Int32 Main()" attrs="150">
+        <size>76</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-233.cs">
+    <type name="Program">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void list_ListChanged(System.Object, System.ComponentModel.ListChangedEventArgs)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-234.cs">
+    <type name="Test">
+      <method name="IFoo GetFoo()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="IFoo`1[T] GetFooGeneric[T]()" attrs="134">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-235.cs">
+    <type name="GettingStarted">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-236.cs">
+    <type name="Foo`1[T]">
+      <method name="Int32 Test(Foo`1[T])" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test(Foo`1[System.Int32])" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>82</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-237.cs">
+    <type name="Foo`1[T]">
+      <method name="Int32 Test(T)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test(Int32)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>83</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-238.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>57</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-239.cs">
+    <type name="Foo`2[T,U]">
+      <method name="Int32 Test(T, U)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test(Int32, U)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test(T, Single)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test(Int32, Single)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>297</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-240.cs">
+    <type name="MyClass">
+      <method name="Void IMyInterface&lt;string&gt;.add_MyEvent(System.EventHandler)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Void IMyInterface&lt;string&gt;.remove_MyEvent(System.EventHandler)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Void IMyInterface&lt;int&gt;.add_MyEvent(System.EventHandler)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Void IMyInterface&lt;int&gt;.remove_MyEvent(System.EventHandler)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-241.cs">
+    <type name="a">
+      <method name="Void func[T](T ByRef)" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="b">
+      <method name="Void func[T](T ByRef)" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="main">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-242.cs">
+    <type name="Container`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ReferenceType">
+      <method name="Int32 CompareTo(ReferenceType)" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyValueType">
+      <method name="Int32 CompareTo(MyValueType)" attrs="486">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-243.cs">
+    <type name="Foo`1[T]">
+      <method name="Void Test(T)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tests">
+      <method name="Void foo[T]()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Int32 Test()" attrs="150">
+        <size>186</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-244.cs">
+    <type name="B">
+      <method name="T Get[T]()" attrs="454">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="T Get[T]()" attrs="198">
+        <size>38</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-245.cs">
+    <type name="DerivedGenericClass`1[T]">
+      <method name="Void Foo()" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void Baz()" attrs="134">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BaseClass">
+      <method name="Void Foo()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-246.cs">
+    <type name="TestCase.CTest">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Bar()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestCase.CGenericTest`2[T,V]">
+      <method name="V Foo()" attrs="134">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-247.cs">
+    <type name="EnumerableBase`1[T]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CollectionValueBase`1[T]">
+      <method name="Void raiseItemsAdded(T, Int32)" attrs="452">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CollectionValueBase`1+RaiseForRemoveAllHandler[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CircularQueue`1[T]">
+      <method name="Void Enqueue(T)" attrs="454">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="HashSet`1[T]">
+      <method name="Boolean searchoradd(T ByRef, Boolean, Boolean, Boolean)" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CircularQueue`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="EnumerableBase`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="1478">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="CollectionValueBase`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="1222">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="CircularQueue`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="198">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="HashSet`1[T]">
+      <method name="Void RemoveAll[U](System.Collections.Generic.IEnumerable`1[U])" attrs="454">
+        <size>8</size>
+      </method>
+      <method name="Void AddAll[U](System.Collections.Generic.IEnumerable`1[U])" attrs="454">
+        <size>65</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="198">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="HashSet`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="EnumerableBase`1[T]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-248.cs">
+    <type name="Foo`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Boolean Test(System.Object)" attrs="145">
+        <size>27</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-249.cs">
+    <type name="EnumerableBase`1[T]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ArrayBase`1[T]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="HashedArrayList`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ArrayBase`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="EnumerableBase`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="1478">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="ArrayBase`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="198">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="HashedArrayList`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="198">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="EnumerableBase`1[T]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-250.cs">
+    <type name="Fun`2[R,S]">
+      <method name="S Invoke(R)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="GuardedIndexedSorted`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="GuardedIndexedSorted`1[T]">
+      <method name="IIndexedSorted`1[V] Map[V](Fun`2[T,V])" attrs="486">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="Fun`2[R,S]">
+      <method name="System.IAsyncResult BeginInvoke(R, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="S EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-251.cs">
+    <type name="SortedIndexedTester`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SortedIndexedTester`1[T]">
+      <method name="Void Test(ISorted`1[System.Int32])" attrs="134">
+        <size>25</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-252.cs">
+    <type name="EqualityComparer`1[T]">
+      <method name="Void Test()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="SequencedEqualityComparer`2[T,W]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-253.cs">
+    <type name="CollectionValueTester`2[R,S]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ExtensibleTester`1[U]">
+      <method name="Void Direct()" attrs="134">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor(U)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Extensible`1[V]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Extensible`1[V]">
+      <method name="Void AddAll[W](System.Collections.Generic.IEnumerable`1[W])" attrs="486">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-254.cs">
+    <type name="HashedLinkedList`1[T]">
+      <method name="HashedLinkedList`1[T] GetList()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void Test(Int32)" attrs="150">
+        <size>56</size>
+      </method>
+      <method name="Void Test(HashedLinkedList`1[T])" attrs="134">
+        <size>52</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-255.cs">
+    <type name="A">
+      <method name="T Foo[T]()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="T Foo[T]()" attrs="198">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-256.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void Run()" attrs="129">
+        <size>154</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
+      <method name="System.String System.Collections.Generic.IEnumerator&lt;string&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>142</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.Generic.IEnumerator`1[System.String] GetEnumerator()" attrs="134">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-257.cs">
+    <type name="Tests">
+      <method name="Void Main()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-258.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-259.cs">
+    <type name="Class1`1[T]">
+      <method name="Void MethodOfClass1(T, MyType)" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyType">
+      <method name="Void MethodOfMyBaseType()" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyBaseType">
+      <method name="Void MethodOfMyBaseType()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-260.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-261.cs">
+    <type name="Cons`2[T,U]">
+      <method name="System.String ToString()" attrs="198">
+        <size>76</size>
+      </method>
+      <method name="Void .ctor(T, U)" attrs="6278">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="List`1[A]">
+      <method name="Void zip[B](List`1[B])" attrs="134">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor(A)" attrs="6278">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor(A, List`1)" attrs="6278">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-262.cs">
+    <type name="Test">
+      <method name="Void f1(System.Object)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void f2(System.String)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void f3(Test)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void f4(Int32)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void f5(Int16)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void f6(ParamEnum)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>167</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-263.cs">
+    <type name="Foo`1[S]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ConvertHelper">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="ConvertHelper+&lt;Test&gt;c__Iterator0`2[S,T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>87</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ConvertHelper">
+      <method name="System.Collections.Generic.IEnumerator`1[T] Test[S,T](S)" attrs="150">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="Foo`1[S]">
+      <method name="System.ICloneable Test(S)" attrs="134">
+        <size>20</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-264.cs">
+    <type name="BaseList`1[SubType]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="XXX">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Crash">
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-265.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-266.cs">
+    <type name="Test`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`1+Inner`1[T,U]">
+      <method name="Void Foo()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-267.cs">
+    <type name="Handler`1[T]">
+      <method name="Void Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Void Foo[T](Handler`1[T])" attrs="134">
+        <size>35</size>
+      </method>
+      <method name="Void Response[T](Handler`1[T])" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T+&lt;Foo&gt;c__AnonStorey0`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Handler`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="T+&lt;Foo&gt;c__AnonStorey0`1[T]">
+      <method name="Void &lt;&gt;m__0(System.IAsyncResult)" attrs="131">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-268.cs">
+    <type name="Test">
+      <method name="Void Bar()" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+G`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-269.cs">
+    <type name="IrishPub">
+      <method name="Void .ctor(IrishBeer)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int64 PubToLong(IrishPub)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Int32 Test(Boolean)" attrs="145">
+        <size>72</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>247</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="IrishPub">
+      <method name="Int64 op_Implicit(System.Nullable`1[IrishPub])" attrs="2198">
+        <size>44</size>
+      </method>
+      <method name="System.Nullable`1[IrishPub] op_Implicit(Int64)" attrs="2198">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Beer(System.Nullable`1[IrishPub])" attrs="145">
+        <size>72</size>
+      </method>
+      <method name="Int32 Test(System.Nullable`1[System.Int32])" attrs="145">
+        <size>62</size>
+      </method>
+      <method name="Int32 TestWithNull(System.Nullable`1[System.Int32])" attrs="145">
+        <size>78</size>
+      </method>
+      <method name="System.Nullable`1[System.Int64] Foo(Boolean)" attrs="145">
+        <size>37</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-270.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>60</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 Test(System.Nullable`1[System.Int32])" attrs="145">
+        <size>62</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-271.cs">
+    <type name="Qux`2[X,V]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`2[X,V]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`1[T]">
+      <method name="Int32 CompareTo(Test`1[T])" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>57</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Qux`2+&lt;GetEnumerator&gt;c__Iterator1[X,V]">
+      <method name="V System.Collections.Generic.IEnumerator&lt;V&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Qux`2[X,V]">
+      <method name="System.Collections.Generic.IEnumerator`1[V] GetEnumerator()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Qux`2+&lt;System_Collections_IEnumerable_GetEnumerator&gt;c__Iterator0[X,V]">
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-272.cs">
+    <type name="Handler`1[T]">
+      <method name="Void Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Foo[T](Handler`1[T])" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void Response[T](Handler`1[T])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test[T](T)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>36</size>
+      </method>
+    </type>
+    <type name="X+&lt;Foo&gt;c__AnonStorey0`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Handler`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;Foo&gt;c__AnonStorey0`1[T]">
+      <method name="Void &lt;&gt;m__0(System.IAsyncResult)" attrs="131">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-273.cs">
+    <type name="ThisBaseClass`3[A,B,C]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ThatBaseClass`3[B,A,C]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ThisClass`3[A,B,C]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ThatClass`3[B,A,C]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ThisClass">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ThatClass">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-274.cs">
+    <type name="Foo">
+      <method name="Foo op_Implicit(Int64)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int64)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="Bar op_Implicit(Foo)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Foo)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Baz">
+      <method name="Baz op_Explicit(Foo)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Foo)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.Nullable`1[System.Boolean] op_Implicit(S)" attrs="2198">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>612</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-275.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="Test+D`2[T,U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="Test+E`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-276.cs">
+    <type name="Tests">
+      <method name="Int32 Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tests+GenericClass`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="T Z(System.Collections.Generic.IList`1[T], Int32)" attrs="150">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-277.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-278.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-279.cs">
+    <type name="Foo">
+      <method name="Void Bar()" attrs="486">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BugReport">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.Collections.Generic.IList`1[T] Bar[T]()" attrs="486">
+        <size>20</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-280.cs">
+    <type name="Test">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>70</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+TestDel">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-281.cs">
+    <type name="List">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tests">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="List">
+      <method name="Void AddRange[T](System.Collections.Generic.ICollection`1[T])" attrs="131">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-282.cs">
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo+Bar">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-283.cs">
+    <type name="Point">
+      <method name="Void .ctor(Int32, Int32)" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="TestPoint">
+      <method name="Void Serialize(IFoo)" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-284.cs">
+    <type name="X">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CollectionTester">
+      <method name="Int32 Test()" attrs="150">
+        <size>628</size>
+      </method>
+    </type>
+    <type name="InterfaceTester">
+      <method name="Int32 Test(System.Type, System.Type[])" attrs="145">
+        <size>518</size>
+      </method>
+      <method name="Int32 Test()" attrs="150">
+        <size>595</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>107</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Int32 Test()" attrs="145">
+        <size>54</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CollectionTester">
+      <method name="Int32 Test[T](System.Collections.Generic.IList`1[T])" attrs="145">
+        <size>95</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-285.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tests">
+      <method name="Void Main()" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-286.cs">
+    <type name="TestAttribute">
+      <method name="Void .ctor(Type)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="C`1[T]">
+      <method name="Void Foo()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>89</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-287.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void D()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-288.cs">
+    <type name="A">
+      <method name="Boolean Test(Int32)" attrs="132">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Test()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+C">
+      <method name="Boolean Foo(Int32)" attrs="134">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-289.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void add_Ev1(D)" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Ev1(D)" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Consts">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>74</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-290.cs">
+    <type name="GenericEventHandler`2[U,V]">
+      <method name="Void Invoke(U, V)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="GenericEventNotUsedTest`1[T]">
+      <method name="Void add_TestEvent(GenericEventHandler`2[GenericEventNotUsedTest`1[T],T])" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void remove_TestEvent(GenericEventHandler`2[GenericEventNotUsedTest`1[T],T])" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void RaiseTestEvent(T)" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestEntry">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="GenericEventHandler`2[U,V]">
+      <method name="System.IAsyncResult BeginInvoke(U, V, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-291.cs">
+    <type name="Global">
+      <method name="Void Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.String Test2(System.Nullable`1[System.Decimal])" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-292.cs">
+    <type name="Test.Handler`1[TA]">
+      <method name="Void Invoke(TA)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test.A`1[TA]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Handler`1[TA]">
+      <method name="System.IAsyncResult BeginInvoke(TA, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-293.cs">
+    <type name="Test`1[T]">
+      <method name="Void Invalid(T)" attrs="134">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`1[T]">
+      <method name="Void Other(System.Collections.Generic.IEnumerable`1[T])" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-294.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="A Test(A, B)" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>101</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-295.cs">
+    <type name="Test.Cache`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Base">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.MyType`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Foo">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-296.cs">
+    <type name="MyCollection`1[T]">
+      <method name="Void Foo()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-297.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-298.cs">
+    <type name="TestFunc`1[T]">
+      <method name="Void Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void .ctor(TestFunc`1)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="TestClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>29</size>
+      </method>
+    </type>
+    <type name="TestFunc`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestClass">
+      <method name="Void &lt;a&gt;m__0(Int32)" attrs="145">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-299.cs">
+    <type name="N.A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-300.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-301.cs">
+    <type name="Test">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-302.cs">
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>63</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>15</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;System_Collections_Generic_IEnumerable&lt;int&gt;_GetEnumerator&gt;c__Iterator0">
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-303.cs">
+    <type name="test.BaseClass">
+      <method name="System.String get_Hello()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="test.Printer">
+      <method name="Void Print[T](T)" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test.PrinterImpl">
+      <method name="Void Print[T](T)" attrs="198">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test.Starter">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-304.cs">
+    <type name="test.BaseClass">
+      <method name="System.String get_Hello()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="test.Printer">
+      <method name="Void Print[T](System.Object)" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test.PrinterImpl">
+      <method name="Void Print[T](System.Object)" attrs="198">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test.Starter">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-305.cs">
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>82</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-306.cs">
+    <type name="FuParentClass`1[Trow]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="FuParentClass`1+FuChildClass[Trow]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-307.cs">
+    <type name="Foo`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1+F[T]">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="Int32 g()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>45</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1+F[T]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-308.cs">
+    <type name="Test">
+      <method name="System.Comparison`1[U] WrapComparison[U](System.Comparison`1[U])" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+MyComparison`1[V]">
+      <method name="Int32 Invoke(V, V)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Int32 compare(Int32, Int32)" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Int32 compare(System.String, System.String)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Void test(Int32)" attrs="145">
+        <size>30</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>210</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;WrapComparison&gt;c__AnonStorey0`1[U]">
+      <method name="Int32 &lt;&gt;m__0(U, U)" attrs="131">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;WrapMyComparison&gt;c__AnonStorey1`1[W]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__0(W, W)" attrs="131">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="MyComparison`1 WrapMyComparison[W](MyComparison`1)" attrs="150">
+        <size>34</size>
+      </method>
+    </type>
+    <type name="Test+MyComparison`1[V]">
+      <method name="System.IAsyncResult BeginInvoke(V, V, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-309.cs">
+    <type name="Test`2[A,B]">
+      <method name="Void Foo[V,W](Test`2[A,W], Test`2[V,B])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-310.cs">
+    <type name="MonoBugs.IncompleteGenericInference">
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void DoSomethingGeneric[T1,T2](System.Collections.Generic.IEnumerable`1[T1], System.Collections.Generic.IDictionary`2[T1,T2])" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-312.cs">
+    <type name="CantCastGenericListToArray">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-313.cs">
+    <type name="Foo`1[T]">
+      <method name="Void .ctor(TestEnum)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-314.cs">
+    <type name="test.App">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test.ThisClass`2[T,O]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test.OtherClass`2[O,T]">
+      <method name="Void Test(T)" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-315.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+B[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-316.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Base">
+      <method name="Void Method[R]()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Derived">
+      <method name="Void Method[S]()" attrs="198">
+        <size>8</size>
+      </method>
+      <method name="Void Method2[T]()" attrs="134">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-317.cs">
+    <type name="Foo`1[K]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar`1[Q]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar`1+Baz[Q]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-318.cs">
+    <type name="Foo`1[K]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar`1[Q]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar`1+Baz[Q]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Goo`1[Q]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-319.cs">
+    <type name="Temp`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Temp`1+Foo[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Temp`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>76</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Temp`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[Temp`1+Foo[T]] GetEnumerator()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Temp`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
+      <method name="Foo System.Collections.Generic.IEnumerator&lt;Temp&lt;T&gt;.Foo&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-320.cs">
+    <type name="Foo`1[K]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-321.cs">
+    <type name="App">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void Run()" attrs="134">
+        <size>50</size>
+      </method>
+      <method name="Void ADelegate[T](System.String)" attrs="129">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="App+TGenericDelegate`1[T]">
+      <method name="Void Invoke(System.String)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="App">
+      <method name="Void TestMethod[T](System.String, TGenericDelegate`1)" attrs="129">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="App+TGenericDelegate`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-322.cs">
+    <type name="MyBase`2[K,V]">
+      <method name="Void .ctor(Callback)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="MyBase`2+Callback[K,V]">
+      <method name="Void Invoke(K, V)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(Callback)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="MyBase`2+Callback[K,V]">
+      <method name="System.IAsyncResult BeginInvoke(K, V, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-323.cs">
+    <type name="MyBase`2[K,V]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyBase`2+Callback[K,V]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(Callback)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="MyBase`2[K,V]">
+      <method name="Void Hello(Callback)" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Test(Callback)" attrs="134">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-324.cs">
+    <type name="A">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void add_D(A)" attrs="2198">
+        <size>40</size>
+      </method>
+      <method name="Void remove_D(A)" attrs="2198">
+        <size>40</size>
+      </method>
+      <method name="Void C()" attrs="129">
+        <size>37</size>
+      </method>
+      <method name="Void F(Int64)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="B+&lt;C&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+&lt;C&gt;c__AnonStorey1+&lt;C&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>58</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-325.cs">
+    <type name="SomeClass`1[T]">
+      <method name="Void Foo()" attrs="134">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-326.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>59</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-327.cs">
+    <type name="Tester`1[T]">
+      <method name="Void Do()" attrs="134">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Reference">
+      <method name="Void Test()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Value">
+      <method name="Void Test()" attrs="486">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-328.cs">
+    <type name="App">
+      <method name="Void Main()" attrs="150">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="App+MyClass">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="App">
+      <method name="Void TestMethod(System.String, System.Collections.Generic.List`1[System.String], MyClass[])" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-329.cs">
+    <type name="NullableInt">
+      <method name="Int32 Main()" attrs="150">
+        <size>104</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-330.cs">
+    <type name="BaseCollection`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="BaseIntList`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="IntList">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>65</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BaseCollection`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
+        <size>25</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>25</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-331.cs">
+    <type name="Foo`1[T]">
+      <method name="Void Map[S](S)" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void Test(T)" attrs="452">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-332.cs">
+    <type name="C`1[T]">
+      <method name="System.Type Test()" attrs="134">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>78</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-333.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-334.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>179</size>
+      </method>
+      <method name="Void DelegateMethod(Boolean)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 DelegateMethod(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+DelegateA">
+      <method name="Void Invoke(Boolean)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test+DelegateB">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test+DelegateA">
+      <method name="System.IAsyncResult BeginInvoke(Boolean, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test+DelegateB">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-335.cs">
+    <type name="TestClass">
+      <method name="Boolean Test_1()" attrs="150">
+        <size>56</size>
+      </method>
+      <method name="Boolean Test_2()" attrs="150">
+        <size>66</size>
+      </method>
+      <method name="Boolean Test_3()" attrs="150">
+        <size>59</size>
+      </method>
+      <method name="Boolean Test_4()" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Boolean Test_5()" attrs="150">
+        <size>81</size>
+      </method>
+      <method name="Int32 Test_6()" attrs="145">
+        <size>71</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>123</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-336.cs">
+    <type name="TestAttribute">
+      <method name="System.Object get_Type()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Type(System.Object)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Type)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="N.C`1[T]">
+      <method name="Void Bar()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Bar2()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Bar3()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Bar4()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.CC">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-337.cs">
+    <type name="X">
+      <method name="Void SetValue[T](System.Object, T)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-338.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FooList`1[T]">
+      <method name="Int32 IndexOf(T)" attrs="486">
+        <size>7</size>
+      </method>
+      <method name="Void Insert(Int32, T)" attrs="486">
+        <size>7</size>
+      </method>
+      <method name="Void RemoveAt(Int32)" attrs="486">
+        <size>7</size>
+      </method>
+      <method name="T get_Item(Int32)" attrs="2534">
+        <size>7</size>
+      </method>
+      <method name="Void set_Item(Int32, T)" attrs="2534">
+        <size>7</size>
+      </method>
+      <method name="Void Add(T)" attrs="486">
+        <size>7</size>
+      </method>
+      <method name="Void Clear()" attrs="486">
+        <size>7</size>
+      </method>
+      <method name="Boolean Contains(T)" attrs="486">
+        <size>7</size>
+      </method>
+      <method name="Void CopyTo(T[], Int32)" attrs="486">
+        <size>7</size>
+      </method>
+      <method name="Boolean Remove(T)" attrs="486">
+        <size>7</size>
+      </method>
+      <method name="Int32 get_Count()" attrs="2534">
+        <size>7</size>
+      </method>
+      <method name="Boolean get_IsReadOnly()" attrs="2534">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Foo[T](System.Collections.Generic.IList`1[T])" attrs="145">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="FooList`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="486">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-339.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SerializerLazyDictionary">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="LazyDictionary">
+      <method name="Void System.Collections.Generic.IDictionary&lt;string,object&gt;.Add(System.String, System.Object)" attrs="481">
+        <size>7</size>
+      </method>
+      <method name="Boolean System.Collections.Generic.IDictionary&lt;string,object&gt;.ContainsKey(System.String)" attrs="481">
+        <size>7</size>
+      </method>
+      <method name="Boolean System.Collections.Generic.IDictionary&lt;string,object&gt;.Remove(System.String)" attrs="481">
+        <size>7</size>
+      </method>
+      <method name="Boolean System.Collections.Generic.IDictionary&lt;string,object&gt;.TryGetValue(System.String, System.Object ByRef)" attrs="481">
+        <size>7</size>
+      </method>
+      <method name="System.Object System.Collections.Generic.IDictionary&lt;string,object&gt;.get_Item(System.String)" attrs="2529">
+        <size>7</size>
+      </method>
+      <method name="Void System.Collections.Generic.IDictionary&lt;string,object&gt;.set_Item(System.String, System.Object)" attrs="2529">
+        <size>7</size>
+      </method>
+      <method name="Void System.Collections.Generic.ICollection&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.Clear()" attrs="481">
+        <size>7</size>
+      </method>
+      <method name="Void System.Collections.Generic.ICollection&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.CopyTo(System.Collections.Generic.KeyValuePair`2[System.String,System.Object][], Int32)" attrs="481">
+        <size>7</size>
+      </method>
+      <method name="Int32 System.Collections.Generic.ICollection&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.get_Count()" attrs="2529">
+        <size>7</size>
+      </method>
+      <method name="Boolean System.Collections.Generic.ICollection&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.get_IsReadOnly()" attrs="2529">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void SerializeDictionary(System.Collections.Generic.IDictionary`2[System.String,System.Object])" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="SerializerLazyDictionary">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]] GetEnumerator()" attrs="196">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="LazyDictionary">
+      <method name="System.Collections.Generic.ICollection`1[System.String] System.Collections.Generic.IDictionary&lt;string,object&gt;.get_Keys()" attrs="2529">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.ICollection`1[System.Object] System.Collections.Generic.IDictionary&lt;string,object&gt;.get_Values()" attrs="2529">
+        <size>7</size>
+      </method>
+      <method name="Void System.Collections.Generic.ICollection&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.Add(System.Collections.Generic.KeyValuePair`2[System.String,System.Object])" attrs="481">
+        <size>7</size>
+      </method>
+      <method name="Boolean System.Collections.Generic.ICollection&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.Contains(System.Collections.Generic.KeyValuePair`2[System.String,System.Object])" attrs="481">
+        <size>7</size>
+      </method>
+      <method name="Boolean System.Collections.Generic.ICollection&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.Remove(System.Collections.Generic.KeyValuePair`2[System.String,System.Object])" attrs="481">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]] System.Collections.Generic.IEnumerable&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.GetEnumerator()" attrs="481">
+        <size>15</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]] GetEnumerator()" attrs="1476">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void SerializeDictionary(System.Collections.IDictionary)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="LazyDictionary">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-340.cs">
+    <type name="Tests">
+      <method name="T[] FindAll[T](T[], System.Predicate`1[T])" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Boolean ProtectedOnly(System.Reflection.MemberInfo)" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="System.Reflection.MemberInfo[] foo()" attrs="134">
+        <size>52</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-341.cs">
+    <type name="C">
+      <method name="Int32 GetLength()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tests">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-342.cs">
+    <type name="Base`1[T]">
+      <method name="T op_Implicit(Base`1[T])" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestMain">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-343.cs">
+    <type name="Implementer">
+      <method name="Void Combine[TOImplementer]()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-344.cs">
+    <type name="ConfigurationElement">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="CustomConfigurationElement">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CustomConfigurationElementCollection">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BaseCollection`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-345.cs">
+    <type name="ShiftReduceParser`2[TokenValueType,TokenLocationType]">
+      <method name="Void Dump(System.String)" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Parser">
+      <method name="Void NoCall[T](T)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-346.cs">
+    <type name="test">
+      <method name="Void CreateSimpleCallSite(Int32)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void CreateSimpleCallSite[A]()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void CreateSimpleCallSite[A](Int32)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-347.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[T] Enumerable[T](System.String)" attrs="134">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.IEnumerable Enumerable(Int32)" attrs="134">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.IEnumerable Enumerable(System.String)" attrs="134">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-348.cs">
+    <type name="Bar`1[U]">
+      <method name="Void OnWorldDestroyed()" attrs="131">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Baz`1[U]">
+      <method name="Void DestroyWorld(U)" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bling">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-349.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>121</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+Function`3[T1,T2,R]">
+      <method name="R Invoke(T1, T2)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 f2(System.Collections.IList, System.Collections.IList)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 f2(System.Collections.IList, System.Object)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="X+Function`3[T1,T2,R]">
+      <method name="System.IAsyncResult BeginInvoke(T1, T2, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="R EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-350.cs">
+    <type name="Foo`1[T]">
+      <method name="Boolean Equals(T)" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-351.cs">
+    <type name="TestThing">
+      <method name="Int32 SetEnum(System.String, System.Enum)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 SetEnum(Int32, System.Enum)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-352.cs">
+    <type name="D">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>125</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-353.cs">
+    <type name="A`3[D1,D2,D3]">
+      <method name="Void Foo[T]()" attrs="454">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`1[DD2]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Foo[T]()" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-354.cs">
+    <type name="M">
+      <method name="System.String IA&lt;string&gt;.Method(Int32)" attrs="481">
+        <size>7</size>
+      </method>
+      <method name="Void IB.Method(Int32)" attrs="481">
+        <size>7</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void IC.Method(Int32[])" attrs="481">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-355.cs">
+    <type name="A">
+      <method name="Boolean Foo(System.String)" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="System.String Foo[T](System.String)" attrs="454">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Boolean Goo(System.String)" attrs="134">
+        <size>16</size>
+      </method>
+      <method name="Boolean Foo(System.String)" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="System.String Foo[T](System.String)" attrs="198">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-356.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`1[U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+E">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1[T]">
+      <method name="Void Foo(E)" attrs="129">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-357.cs">
+    <type name="C`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D`1[U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-358.cs">
+    <type name="Foo">
+      <method name="Boolean op_Equality(Foo, Foo)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Boolean op_Inequality(Foo, Foo)" attrs="2198">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>122</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S2">
+      <method name="Boolean op_Equality(S2, System.Nullable`1[S2])" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Boolean op_Inequality(S2, System.Nullable`1[S2])" attrs="2198">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S3">
+      <method name="System.Decimal op_Inequality(S3, System.Object)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="System.Decimal op_Equality(S3, System.Object)" attrs="2198">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-359.cs">
+    <type name="BaseGeneric`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BaseGeneric`1+InnerDerived[T]">
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="BaseGeneric`1+GenericInnerDerived`1[T,U]">
+      <method name="Void .ctor(T, U)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="BaseConcrete">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Concrete_A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Concrete_B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BaseGeneric_2`2[T,U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BaseGeneric_2`2+InnerDerived[T,U]">
+      <method name="Void .ctor(T, U)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="BaseGeneric_1`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Concrete_2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-360.cs">
+    <type name="C">
+      <method name="Int32 Foo[T](T, System.Object[])" attrs="147">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo(System.String, System.Object[])" attrs="147">
+        <size>10</size>
+      </method>
+      <method name="Int32 InvokeMethod(System.String, System.Object[])" attrs="147">
+        <size>16</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-361.cs">
+    <type name="Thing">
+      <method name="Void Foo()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>189</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Thing+Handler">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Thing">
+      <method name="Void Method(Handler, System.String[])" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Thing+Handler">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Thing">
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__1()" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-362.cs">
+    <type name="C">
+      <method name="Void Assert[T](T)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Assert[T](T, T)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>91</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-363.cs">
+    <type name="Test">
+      <method name="Void InsertAt[T](T[], Int32, T[])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-364.cs">
+    <type name="BugReport.Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>380</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BugReport.A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Nullable`1[System.Int32] get_Counter()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Counter(System.Nullable`1[System.Int32])" attrs="2182">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-365.cs">
+    <type name="B.Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>69</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-366.cs">
+    <type name="MyType">
+      <method name="Int32 op_Implicit(MyType)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Void Assert[T](T, T)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-367.cs">
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Repro">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Bar[TFoo](TFoo)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Void Baz[T](T, System.Action`1[T])" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void Gazonk(Repro)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-368.cs">
+    <type name="C`1[T]">
+      <method name="Void .ctor(D)" attrs="6273">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C`1+D[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-369.cs">
+    <type name="Db4objects.Db4o.Internal.ObjectContainerBase">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Db4objects.Db4o.Internal.ExternalObjectContainer">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Db4objects.Db4o.Internal.M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Db4objects.Db4o.Internal.ObjectContainerBase">
+      <method name="System.Collections.Generic.IList`1[Extent] Query[Extent](System.Collections.Generic.IList`1[Extent], System.Collections.Generic.IList`1[Extent])" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="System.Collections.IList Query()" attrs="486">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-370.cs">
+    <type name="N2.X`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N2.X`1+A`1[T,T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N2.X`1+A`1+B`1[T,T,T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N2.X`1+A`1+B`1+C`1[T,T,T,T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N2.C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-371.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>87</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-372.cs">
+    <type name="TestClass`1[T]">
+      <method name="Boolean Check(T, T)" attrs="134">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestClass2`1[T]">
+      <method name="Boolean Check(T, T)" attrs="134">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-373.cs">
+    <type name="MonoBug.MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoBug.GenericType`1[T]">
+      <method name="T op_Implicit(MonoBug.GenericType`1[T])" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-374.cs">
+    <type name="Z">
+      <method name="Z IGenericInterface&lt;Z&gt;.Start()" attrs="481">
+        <size>10</size>
+      </method>
+      <method name="Void Stop()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`3[Y,Y2,W]">
+      <method name="Void SomeOperation(W)" attrs="134">
+        <size>29</size>
+      </method>
+      <method name="Void SomeOtherOperation(Y)" attrs="134">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Int32 Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-375.cs">
+    <type name="X">
+      <method name="Boolean Compute(Int32)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Boolean Compute2(Int32)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>46</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-376.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S`1[T]">
+      <method name="System.Object Box(System.Nullable`1[T])" attrs="145">
+        <size>43</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-377.cs">
+    <type name="D">
+      <method name="Void Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>26</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-378.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>76</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Object Foo(System.Nullable`1[System.Int32])" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="System.Object FooG[T](System.Nullable`1[T])" attrs="145">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-379.cs">
+    <type name="S">
+      <method name="Boolean op_Equality(S, S)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_Inequality(S, S)" attrs="2198">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 Print(System.Nullable`1[S])" attrs="145">
+        <size>29</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-380.cs">
+    <type name="GTest`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>213</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-382.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>69</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-383.cs">
+    <type name="MyTypeA">
+      <method name="MyTypeA op_Addition(MyTypeA, MyTypeA)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Boolean op_Equality(MyTypeA, MyTypeA)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_Inequality(MyTypeA, MyTypeA)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Boolean op_GreaterThan(MyTypeA, MyTypeA)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Boolean op_LessThan(MyTypeA, MyTypeA)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor(Int16)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="MyTypeB">
+      <method name="MyTypeB op_Addition(MyTypeB, MyTypeB)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_Equality(MyTypeB, MyTypeB)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_Inequality(MyTypeB, MyTypeB)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_GreaterThan(MyTypeB, MyTypeB)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_LessThan(MyTypeB, MyTypeB)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="MyTypeB op_BitwiseAnd(MyTypeB, MyTypeB)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor(Int16)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>298</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-384.cs">
+    <type name="N.TestG">
+      <method name="Void Foo[T]()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="NonGeneric">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Generic`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="m">
+      <method name="NonGeneric compiles_fine(NonGeneric, NonGeneric ByRef)" attrs="134">
+        <size>21</size>
+      </method>
+      <method name="Generic`1[System.Int32] does_not_compile(Generic`1[System.Int32], Generic`1[System.Int32] ByRef)" attrs="134">
+        <size>21</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-385.cs">
+    <type name="DocAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Func`2[TArg,TRet]">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>84</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Func`2[TArg,TRet]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-386.cs">
+    <type name="MyType">
+      <method name="MyType op_UnaryNegation(MyType)" attrs="2198">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>227</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-387.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>190</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-388.cs">
+    <type name="Data">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void f(Data)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-389.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>253</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-390.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-391.cs">
+    <type name="C">
+      <method name="Boolean Test_1()" attrs="129">
+        <size>44</size>
+      </method>
+      <method name="Void Test(System.Object, System.EventArgs)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>208</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-392.cs">
+    <type name="DieSubrangeType">
+      <method name="Void .ctor()" attrs="6278">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>71</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="DieSubrangeType">
+      <method name="System.Nullable`1[System.Int32] get_UpperBound()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_UpperBound(System.Nullable`1[System.Int32])" attrs="2177">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-393.cs">
+    <type name="B`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Int32 Main()" attrs="150">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor(Type)" attrs="6278">
+        <size>35</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-394.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+MemberFilter">
+      <method name="Boolean Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void FindMembers(MemberFilter)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void GetMethodGroup(MemberFilter)" attrs="150">
+        <size>44</size>
+      </method>
+    </type>
+    <type name="Test+MemberFilter">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Boolean EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Boolean &lt;GetMethodGroup&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-395.cs">
+    <type name="RuleBuilder`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="RubyMethod">
+      <method name="RuleBuilder`1[T] IDynamicObject.GetRule[T]()" attrs="481">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-396.cs">
+    <type name="Test">
+      <method name="Void Invoke[A,TR](System.Func`2[A,System.Func`1[TR]], A, TR)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="System.Func`1[System.Int32] Method(System.String)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-397.cs">
+    <type name="Foo">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Foo NegateFoo(Foo)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>168</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Foo op_UnaryNegation(System.Nullable`1[Foo])" attrs="2198">
+        <size>55</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="System.Nullable`1[Bar] op_UnaryNegation(System.Nullable`1[Bar])" attrs="2198">
+        <size>54</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Foo NegateFooNullable(System.Nullable`1[Foo])" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="System.Nullable`1[Bar] NegateBarNullable(System.Nullable`1[Bar])" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="System.Nullable`1[Bar] NegateBar(Bar)" attrs="145">
+        <size>20</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-398.cs">
+    <type name="ToStr">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="GenericClass`1[T]">
+      <method name="Void Method()" attrs="134">
+        <size>43</size>
+      </method>
+      <method name="Void Test(T)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ToStr">
+      <method name="System.String Invoke(System.String, System.IFormatProvider)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(System.String, System.IFormatProvider, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-399.cs">
+    <type name="TestIssue.Base">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestIssue.Derived">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestIssue.Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-400.cs">
+    <type name="Gen`1[T]">
+      <method name="Boolean Foo(T)" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Boolean Foo[T]()" attrs="145">
+        <size>25</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>94</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-401.cs">
+    <type name="ParserTest">
+      <method name="Void Main()" attrs="150">
+        <size>168</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-402.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-403.cs">
+    <type name="S`1[T]">
+      <method name="Void Foo()" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Void Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-404.cs">
+    <type name="Test.Program">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Test.Class1`1[T1]">
+      <method name="Void add_doSomething(System.EventHandler)" attrs="2180">
+        <size>42</size>
+      </method>
+      <method name="Void remove_doSomething(System.EventHandler)" attrs="2180">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Class2`1[T]">
+      <method name="Void add_DoSomething(System.EventHandler)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void remove_DoSomething(System.EventHandler)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-405.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-406.cs">
+    <type name="Test`1[T]">
+      <method name="Void Foo[TOutput](System.Func`2[T,TOutput])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`2[A,B]">
+      <method name="Void .ctor(IEnumerable`1)" attrs="6278">
+        <size>47</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`2[A,B]">
+      <method name="B &lt;C&gt;m__0(B)" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-407.cs">
+    <type name="MyColor">
+      <method name="Boolean op_Equality(MyColor, MyColor)" attrs="2198">
+        <size>25</size>
+      </method>
+      <method name="Boolean op_Inequality(MyColor, MyColor)" attrs="2198">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="NullableColorTests">
+      <method name="Int32 Main()" attrs="150">
+        <size>120</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-408.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>110</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-409.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ConditionalParsing">
+      <method name="Void Test_1(Boolean)" attrs="129">
+        <size>21</size>
+      </method>
+      <method name="Void Test_2()" attrs="129">
+        <size>32</size>
+      </method>
+      <method name="Void Test_4(Boolean, Boolean)" attrs="129">
+        <size>40</size>
+      </method>
+      <method name="Void Test_6(Boolean)" attrs="129">
+        <size>48</size>
+      </method>
+      <method name="Void Test_7(System.Object)" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void Test_9()" attrs="129">
+        <size>44</size>
+      </method>
+      <method name="Void Test_10()" attrs="129">
+        <size>22</size>
+      </method>
+      <method name="Void Test_11()" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ConditionalParsing+T">
+      <method name="Void .ctor(String, Boolean)" attrs="6278">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor(String, Boolean, Int32, Int32, Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="ConditionalParsing+Const">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ConditionalParsing">
+      <method name="Int32 Test_12(Boolean)" attrs="145">
+        <size>55</size>
+      </method>
+      <method name="Int32 Foo(System.Func`1[System.Int32])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void Test_13(System.Object)" attrs="129">
+        <size>53</size>
+      </method>
+      <method name="System.Action`1[System.Int32] Test_15(System.Action`1[System.Int32])" attrs="129">
+        <size>46</size>
+      </method>
+      <method name="Void Helper[T](T)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="System.Nullable`1[T] Test_3[T](System.Func`3[T,T,T], T)" attrs="129">
+        <size>22</size>
+      </method>
+      <method name="System.Nullable`1[System.Int32] Test_14()" attrs="129">
+        <size>68</size>
+      </method>
+      <method name="Void Test_5(Boolean, System.IDisposable)" attrs="129">
+        <size>46</size>
+      </method>
+      <method name="Void Test_8(System.DateTime)" attrs="129">
+        <size>39</size>
+      </method>
+      <method name="Void Test_16()" attrs="129">
+        <size>20</size>
+      </method>
+      <method name="Boolean Test(System.Object, Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void Test_17()" attrs="129">
+        <size>52</size>
+      </method>
+    </type>
+    <type name="ConditionalParsing+MyTestStruct">
+      <method name="Void Dispose()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="MyTestStruct op_Implicit(Int32)" attrs="2198">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="ConditionalParsing">
+      <method name="Void Test_18(Boolean, System.Action)" attrs="129">
+        <size>44</size>
+      </method>
+      <method name="Int32 &lt;Test_12&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void &lt;Test_18&gt;m__1()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test_19(Int32[,])" attrs="129">
+        <size>11</size>
+      </method>
+      <method name="Void Test_20()" attrs="129">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-410.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-411.cs">
+    <type name="Maybe">
+      <method name="Maybe`1[T] C[T](T)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Maybe`1[T]">
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Extensions">
+      <method name="R Match[T,R](T, System.Func`2[T,Maybe`1[R]][])" attrs="150">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>132</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Maybe`1[System.String] &lt;Main&gt;m__0(System.String)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="Maybe`1[System.String] &lt;Main&gt;m__1(System.String)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="Maybe`1[System.String] &lt;Main&gt;m__2(System.String)" attrs="145">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-412.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>261</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-413.cs">
+    <type name="S">
+      <method name="Int64 op_Addition(S, Int64)" attrs="2198">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>103</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-414.cs">
+    <type name="MonoTest.MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoTest.TestImpl">
+      <method name="Void MonoTest.ITest.Get[T](System.Object)" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void Get[T]()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Get[T](System.Object)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoTest.C">
+      <method name="Void MonoTest.IG&lt;int&gt;.M()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void MonoTest.IG&lt;string&gt;.M()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-415.cs">
+    <type name="Foo">
+      <method name="Int32 Main()" attrs="150">
+        <size>50</size>
+      </method>
+      <method name="Boolean Bar[T](T)" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-416.cs">
+    <type name="Z">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`2[X,Y]">
+      <method name="X Foo(Y)" attrs="134">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Int32 Main()" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-417.cs">
+    <type name="Indirect">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Base">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestCase">
+      <method name="Int32 Main()" attrs="150">
+        <size>141</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Base">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>20</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-418.cs">
+    <type name="N.Nested">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.Nested+C">
+      <method name="Int32 N.Nested.I&lt;int&gt;.get_P()" attrs="2529">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.M">
+      <method name="Int32 Main()" attrs="150">
+        <size>189</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-419.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>64</size>
+      </method>
+      <method name="System.Object Test(System.String)" attrs="145">
+        <size>50</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-420.cs">
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestClass">
+      <method name="Int32 Test(System.Object, System.Object, System.Object[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test(System.Object, System.Object[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-421.cs">
+    <type name="OneOff">
+      <method name="Int32 Main()" attrs="150">
+        <size>58</size>
+      </method>
+      <method name="T[] Clone[T](T[])" attrs="145">
+        <size>190</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-422.cs">
+    <type name="A">
+      <method name="Boolean op_GreaterThan(A, System.Object)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_LessThan(A, System.Object)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>31</size>
+      </method>
+      <method name="Boolean Test()" attrs="129">
+        <size>59</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Nullable`1[System.Int32] get_Id()" attrs="2177">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-423.cs">
+    <type name="MonoTest.A`1[TA]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoTest.A`1+B`1[TA,TB]">
+      <method name="Void foo()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoTest.A`1+B`1+C[TA,TB]">
+      <method name="Void bar()" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoTest.Program">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-424.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Block(A[])" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Block(System.Collections.Generic.IEnumerable`1[B], A[])" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-425.cs">
+    <type name="EventClass`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="EventClass`1+HookDelegate[T]">
+      <method name="Void Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="EventClass`1+HookDelegate[T]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-426.cs">
+    <type name="OverloadTest.MyClass`1[T]">
+      <method name="Boolean Method(System.Action`1[T])" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="OverloadTest.C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="OverloadTest.MyClass`1[T]">
+      <method name="Boolean Method(OverloadTest.MyInterface`1[T])" attrs="134">
+        <size>28</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-427.cs">
+    <type name="EventHandler">
+      <method name="Void Invoke(System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="EventHandler`1[T]">
+      <method name="Void Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Void Test()" attrs="129">
+        <size>20</size>
+      </method>
+      <method name="Void Attach(EventHandler)" attrs="129">
+        <size>3</size>
+      </method>
+      <method name="Void Attach(EventHandler`1[System.String])" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void OnClick(System.String)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="EventHandler">
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="EventHandler`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-428.cs">
+    <type name="CInt">
+      <method name="CInt op_Implicit(Int32)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Int32 op_Implicit(CInt)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Klass">
+      <method name="Void .ctor(Nullable`1)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>203</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Klass">
+      <method name="System.Nullable`1[CInt] get_Value()" attrs="2182">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-429.cs">
+    <type name="CInt">
+      <method name="CInt op_Implicit(Int32)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Int32 op_Implicit(CInt)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Klass">
+      <method name="Void .ctor(Nullable`1)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-430.cs">
+    <type name="Tmp">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Driver">
+      <method name="Int32 Main()" attrs="150">
+        <size>50</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Nullable`1[System.Int32] get_Prop()" attrs="2182">
+        <size>50</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-431.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-432.cs">
+    <type name="Test.Bar`2[T,U]">
+      <method name="Void DoSomething[V]()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Baz">
+      <method name="Void GetInTroubleHere()" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-433.cs">
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-434.cs">
+    <type name="testcase.Init">
+      <method name="Void testcase.IInitializationExpression.AddRegistry[T](Int32)" attrs="993">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="testcase.Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>88</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-435.cs">
+    <type name="testcase.Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>405</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-436.cs">
+    <type name="SomeClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-438.cs">
+    <type name="Tests">
+      <method name="ServiceType GetService[ServiceType](System.Object[])" attrs="454">
+        <size>25</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-439.cs">
+    <type name="MonoBug.Stuff">
+      <method name="MonoBug.GenericStuff`2[T1,T2] CreateThing[T1,T2](T1, T2)" attrs="150">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="MonoBug.GenericStuff`2[T1,T2]">
+      <method name="Void .ctor(T1, T2)" attrs="6278">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="MonoBug.Program">
+      <method name="Void Main()" attrs="150">
+        <size>36</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-440.cs">
+    <type name="AnyObjectId">
+      <method name="Int32 get_W1()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_W1(Int32)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ObjectId">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6273">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-441.cs">
+    <type name="Name.Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Name.Subclass">
+      <method name="System.Collections.Generic.List`1[System.Int32] get_List()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-442.cs">
+    <type name="NonGenericBase">
+      <method name="Int32 get_Item(Int32)" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="GenericBase`1[T]">
+      <method name="T get_Instance()" attrs="2177">
+        <size>15</size>
+      </method>
+      <method name="Void Foo()" attrs="134">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="EntryPoint">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-443.cs">
+    <type name="C">
+      <method name="Void M[T]()" attrs="145">
+        <size>27</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-444.cs">
+    <type name="MyClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>147</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-445.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Foo[T](T ByRef)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Foo[T](T[])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Foo[T](T[,])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Foo[T](T[,,])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Bar(Int32 ByRef)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Bar(Int32[])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Bar(Int32[,])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Bar(Int32[,,])" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-446.cs">
+    <type name="BugTest.Bug`1[T]">
+      <method name="Void CreateObject(T ByRef)" attrs="134">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BugTest.Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>24</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-447.cs">
+    <type name="B">
+      <method name="Int32 Main()" attrs="150">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-448.cs">
+    <type name="Impl`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1[K]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="Test`1[TT]">
+      <method name="Void Foo()" attrs="134">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Impl`1[T]">
+      <method name="Void Foo[U](System.Collections.Generic.IEnumerable`1[U])" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-449.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>82</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-450.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>82</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-451.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-452.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>64</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="Single op_Implicit(S)" attrs="2198">
+        <size>12</size>
+      </method>
+      <method name="System.Nullable`1[System.Single] op_Implicit(S)" attrs="2198">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-453.cs">
+    <type name="Test.CompilerTest">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Int32 DoSomething[T](System.String, T, T ByRef)" attrs="148">
+        <size>81</size>
+      </method>
+      <method name="Void ThisDoesNotWork()" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void ThisWorksFine()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-454.cs">
+    <type name="TestNS.TestCase">
+      <method name="Int32 Compare[T](T[], T[])" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void DoSomething[T](System.Func`3[T,T,System.Int32])" attrs="150">
+        <size>31</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-455.cs">
+    <type name="ConsoleApplication1.Program">
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ConsoleApplication1.Inner`1[T]">
+      <method name="Void Compare(System.Object, T)" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-456.cs">
+    <type name="G`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="G`1+S[T]">
+      <method name="System.String Test()" attrs="134">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>49</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-457.cs">
+    <type name="Program">
+      <method name="Void Foo[T]()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-458.cs">
+    <type name="MyList`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyList`1+Helper`2[T,U,V]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyList`1[T]">
+      <method name="Helper`2 GetHelper[U,V]()" attrs="134">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-459.cs">
+    <type name="GenericTest.OuterGeneric`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="GenericTest.OuterGeneric`1+InnerGeneric`1[T,U]">
+      <method name="System.String GetTypeNames()" attrs="150">
+        <size>49</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="GenericTest.Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-460.cs">
+    <type name="Foo`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1+Bar`1[T,V]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FooImpl">
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FooImpl+BarImpl">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-461.cs">
+    <type name="Test.BaseContext">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.MyDataContext">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Entity`1[T]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Person">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.TheBox`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Program">
+      <method name="Void Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.TheBox`1[T]">
+      <method name="U GetById[U](System.Guid)" attrs="134">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-462.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>97</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+Tester`1[T]">
+      <method name="T Get(System.Object)" attrs="134">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-463.cs">
+    <type name="STuple`1[Ta]">
+      <method name="Void .ctor(Ta)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-464.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-465.cs">
+    <type name="DerivedClass">
+      <method name="Void GenericMethod_1[T]()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void GenericMethod_2[T]()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void GenericMethod_3[T]()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-466.cs">
+    <type name="Program">
+      <method name="Boolean Test[T](T)" attrs="129">
+        <size>18</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>58</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-467.cs">
+    <type name="S">
+      <method name="Int32 Main()" attrs="150">
+        <size>89</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="A op_Implicit(S)" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-468.cs">
+    <type name="TS">
+      <method name="Int32 Main()" attrs="150">
+        <size>56</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Nullable`1[System.Int32] get_v()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="System.Nullable`1[System.Int32] op_Implicit(TS)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="TS op_Implicit(System.Nullable`1[System.Int32])" attrs="2198">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-469.cs">
+    <type name="Foo`2[T1,T2]">
+      <method name="Void .ctor(T2)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-470.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-471.cs">
+    <type name="Q">
+      <method name="Void bar[T](T ByRef)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-472.cs">
+    <type name="C`1[T]">
+      <method name="Boolean CopyUnsafe(T[], Int64)" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Void CopyUnsafe(T[])" attrs="454">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1[T]">
+      <method name="Void CopyUnsafe(T[], Int64[])" attrs="454">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-473.cs">
+    <type name="A`1[X]">
+      <method name="Void Foo[T]()" attrs="454">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Foo[T]()" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-474.cs">
+    <type name="A`1[X]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-475.cs">
+    <type name="Value`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`2[T,U]">
+      <method name="Value`1[T] get_Value()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`2+B[T,U]">
+      <method name="Void .ctor(Value`1)" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-476.cs">
+    <type name="Test`1[T]">
+      <method name="IFoo Second()" attrs="134">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`1[T]">
+      <method name="B First()" attrs="134">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-477.cs">
+    <type name="B`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`1+BNested[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AA`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AA`1+ANested[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-478.cs">
+    <type name="M">
+      <method name="Void Foo()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void GenFoo()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-479.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Test[T](I`1[T])" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-480.cs">
+    <type name="C">
+      <method name="Void Foo()" attrs="129">
+        <size>59</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-481.cs">
+    <type name="TestClass`1[T]">
+      <method name="Void Add(T[][] ByRef)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-482.cs">
+    <type name="TestBug.BugClass`1[T]">
+      <method name="Void add_Evt(System.EventHandler)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void remove_Evt(System.EventHandler)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void Bug()" attrs="134">
+        <size>37</size>
+      </method>
+      <method name="Void Handler(System.Object, System.EventArgs)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestBug.MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-483.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>109</size>
+      </method>
+      <method name="Void ReplaceContentsWith[T](T, T)" attrs="145">
+        <size>97</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Int32Collection">
+      <method name="Int32 get_Count()" attrs="2182">
+        <size>20</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>21</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32)" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void Add(Int32)" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void Clear()" attrs="134">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>25</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-484.cs">
+    <type name="MainClass">
+      <method name="Void Foo(System.Action`1[MainClass][][])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="System.Action`1[MainClass][] Set(System.Action`1[MainClass][])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void Bar(MainClass)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>169</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-485.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-486.cs">
+    <type name="MyCollection`1[T]">
+      <method name="Int32 get_Count()" attrs="2534">
+        <size>10</size>
+      </method>
+      <method name="Boolean get_IsReadOnly()" attrs="2534">
+        <size>10</size>
+      </method>
+      <method name="Void Add(T)" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void Clear()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Boolean Contains(T)" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void CopyTo(T[], Int32)" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Boolean Remove(T)" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="P">
+      <method name="MyCollection`1[System.String] get_IgnoreTokens()" attrs="2198">
+        <size>44</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="MyCollection`1[T]">
+      <method name="Void AddRange(IMyCollection`1[T])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void AddRange(System.Collections.Generic.IEnumerable`1[T])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-487.cs">
+    <type name="Limada.MonoTests.Generics.MultiDictionary`3[K,V,TDictionary]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Limada.MonoTests.Generics.Test">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-488.cs">
+    <type name="Ref">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Def">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FooProcessor`1[T]">
+      <method name="Void Attach(T, Def)" attrs="134">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-489.cs">
+    <type name="sample">
+      <method name="TValue Value[TKey,TValue]()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="sample+nested`1[T]">
+      <method name="TValue Value[TKey,TValue]()" attrs="230">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-490.cs">
+    <type name="Foo">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[Foo] System.Collections.Generic.IEnumerable&lt;Foo&gt;.GetEnumerator()" attrs="481">
+        <size>25</size>
+      </method>
+      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="486">
+        <size>25</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-491.cs">
+    <type name="ArrayEqualityComparer`1[T]">
+      <method name="Boolean Equals(T[], T[])" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Int32 GetHashCode(T[])" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-492.cs">
+    <type name="B`1[T]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+C[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-493.cs">
+    <type name="MonoGenericIteratorTest.MyType">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoGenericIteratorTest.MyCollectionBase`1[T]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoGenericIteratorTest.MyCollection">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoGenericIteratorTest.MainClass">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>81</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoGenericIteratorTest.MyCollectionBase`1[T]">
+      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="454">
+        <size>25</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-494.cs">
+    <type name="Grid`1[CT]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Grid`1+GPD[CT]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="Grid`1+GPD+GC[CT]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="H">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="H+MyCT">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TheTest">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-495.cs">
+    <type name="Repro">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Repro+Outer">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Repro+Outer+Inner`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-496.cs">
+    <type name="Base">
+      <method name="T EndExecute[T](System.Object, System.String)" attrs="147">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Derived">
+      <method name="Derived EndExecute[TElement](System.Object)" attrs="147">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="a">
+      <method name="Int32 Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-497.cs">
+    <type name="Item">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ItemCollection`1[T]">
+      <method name="Void Bind[U](ItemCollection`1[U])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="a">
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-498.cs">
+    <type name="A">
+      <method name="Int32 Main()" attrs="150">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-499.cs">
+    <type name="C">
+      <method name="Int32 Test[T](T[])" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Int32 TestExtra[T](T[,])" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>118</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-500.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>101</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-501.cs">
+    <type name="UndoableDictionary`2[TKey,TValue]">
+      <method name="Void TestFunc()" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="UpdateableCollection`1[T]">
+      <method name="Void AddReferences()" attrs="131">
+        <size>2</size>
+      </method>
+      <method name="Void TestFunc()" attrs="454">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="UpdateableCollection`1+X[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-502.cs">
+    <type name="C`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>31</size>
+      </method>
+    </type>
+    <type name="C`1+Foo`1[T,U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1+Simple[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+N`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Int32 Main()" attrs="150">
+        <size>90</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D`1[U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-503.cs">
+    <type name="TestAttribute">
+      <method name="Void .ctor(Type)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1+N`1[T,U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Int32 Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-504.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-505.cs">
+    <type name="C">
+      <method name="Int32 Test(System.Collections.Generic.List`1[System.Int32])" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Int32 Test(System.String)" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Int32 Test(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>125</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="R Method[T,R](System.Collections.Generic.IEnumerable`1[T], System.Func`2[T,R])" attrs="145">
+        <size>24</size>
+      </method>
+      <method name="R Method2[T,R](System.Collections.Generic.IEnumerable`1[T], System.Func`2[System.Collections.Generic.List`1[T],R])" attrs="145">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-506.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-507.cs">
+    <type name="A">
+      <method name="Int32 Main()" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`1[T]">
+      <method name="Int32 get_Item(T)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Int32 get_Item(System.Object)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-508.cs">
+    <type name="B">
+      <method name="Void Main()" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="A`1[T]">
+      <method name="Void .ctor(T)" attrs="6276">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-509.cs">
+    <type name="Test.Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.TestClass">
+      <method name="T Test.IBase.Get[T](System.Object)" attrs="481">
+        <size>18</size>
+      </method>
+      <method name="T Get[T](System.Object)" attrs="134">
+        <size>18</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-510.cs">
+    <type name="CA`2[U,V]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Map`2[K,T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-511.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Foo[T](A`1[T])" attrs="454">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void Foo[T](A`1[T])" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>99</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-512.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-513.cs">
+    <type name="S">
+      <method name="Void System.IDisposable.Dispose()" attrs="481">
+        <size>14</size>
+      </method>
+      <method name="Void Dispose()" attrs="134">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void System.IDisposable.Dispose()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void Dispose()" attrs="134">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>185</size>
+      </method>
+      <method name="Void GenMethod[T](T)" attrs="145">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-514.cs">
+    <type name="test2.Test`3[T,U,V]">
+      <method name="Void Method()" attrs="134">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test2.MainClass">
+      <method name="Void Dispose()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-515.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AA">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Dispose()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="I`1[T] Foo[T]()" attrs="454">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="AA">
+      <method name="I`1[V] Foo[V]()" attrs="198">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="I`1[R] Foo[R]()" attrs="198">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-516.cs">
+    <type name="B">
+      <method name="Void Foo()" attrs="129">
+        <size>16</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-517.cs">
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="G`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`1[U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-518.cs">
+    <type name="Top`1[X]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Top`1+C[X]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-519.cs">
+    <type name="G`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void Foo[U]()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-520.cs">
+    <type name="A">
+      <method name="Void Method()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+GetEnumerator">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>134</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Collections.Generic.IEnumerator`1[A] System.Collections.Generic.IEnumerable&lt;A&gt;.GetEnumerator()" attrs="481">
+        <size>24</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-521.cs">
+    <type name="D">
+      <method name="Void Invoke(System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="E`1[T]">
+      <method name="Void Test()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void EH(System.Object)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="E`1+I[T]">
+      <method name="Void add_E(D)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_E(D)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-522.cs">
+    <type name="C`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Test[T](T)" attrs="129">
+        <size>13</size>
+      </method>
+      <method name="Void A[U]()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-523.cs">
+    <type name="Test.TestClass4`1[T]">
+      <method name="Boolean Equals(T)" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Test.C">
+      <method name="Void Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.TestClass4`1[T]">
+      <method name="Boolean Equals(Test.TestClass4`1[T])" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Boolean Equals(Test.TestClass4`1[T], Test.TestClass4`1[T])" attrs="486">
+        <size>17</size>
+      </method>
+      <method name="Int32 GetHashCode(Test.TestClass4`1[T])" attrs="486">
+        <size>22</size>
+      </method>
+      <method name="Boolean op_Equality(Test.TestClass4`1[T], Test.TestClass4`1[T])" attrs="2198">
+        <size>17</size>
+      </method>
+      <method name="Boolean op_Equality(T, Test.TestClass4`1[T])" attrs="2198">
+        <size>17</size>
+      </method>
+      <method name="Boolean op_Equality(Test.TestClass4`1[T], T)" attrs="2198">
+        <size>17</size>
+      </method>
+      <method name="Boolean op_Equality(System.Object, Test.TestClass4`1[T])" attrs="2198">
+        <size>23</size>
+      </method>
+      <method name="Boolean op_Equality(Test.TestClass4`1[T], System.Object)" attrs="2198">
+        <size>23</size>
+      </method>
+      <method name="Boolean op_Inequality(Test.TestClass4`1[T], Test.TestClass4`1[T])" attrs="2198">
+        <size>19</size>
+      </method>
+      <method name="Boolean op_Inequality(T, Test.TestClass4`1[T])" attrs="2198">
+        <size>19</size>
+      </method>
+      <method name="Boolean op_Inequality(Test.TestClass4`1[T], T)" attrs="2198">
+        <size>19</size>
+      </method>
+      <method name="Boolean op_Inequality(System.Object, Test.TestClass4`1[T])" attrs="2198">
+        <size>19</size>
+      </method>
+      <method name="Boolean op_Inequality(Test.TestClass4`1[T], System.Object)" attrs="2198">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-524.cs">
+    <type name="C">
+      <method name="T M[T]()" attrs="145">
+        <size>24</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-525.cs">
+    <type name="A">
+      <method name="Void MA[T](System.String)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void F()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+C">
+      <method name="Void Foo()" attrs="129">
+        <size>17</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-526.cs">
+    <type name="A`1[U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`1+N[T]">
+      <method name="Void Test(C)" attrs="134">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-527.cs">
+    <type name="CoalescingWithGenericsBug">
+      <method name="T Provide[T]()" attrs="145">
+        <size>31</size>
+      </method>
+      <method name="T FindExisting[T]()" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="CoalescingWithGenericsBug+Service">
+      <method name="Void Foo()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-528.cs">
+    <type name="GenericType`1[U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Base">
+      <method name="T Test[T](GenericType`1[T])" attrs="454">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Override">
+      <method name="T Test[T](GenericType`1[T])" attrs="198">
+        <size>16</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-529.cs">
+    <type name="GenericType`2[U,V]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Base`1[V]">
+      <method name="T Test[T](GenericType`2[T,V])" attrs="454">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Override`1[W]">
+      <method name="T Test[T](GenericType`2[T,W])" attrs="198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Int32 Main()" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-530.cs">
+    <type name="B">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="G`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-531.cs">
+    <type name="ATop`1[T]">
+      <method name="T[] IB&lt;T&gt;.ToArray(T[])" attrs="481">
+        <size>10</size>
+      </method>
+      <method name="Void IC.ToArray()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void Test()" attrs="134">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-532.cs">
+    <type name="DictionaryServicesContainer">
+      <method name="Void Register[I,T]()" attrs="486">
+        <size>7</size>
+      </method>
+      <method name="Void Register[I](System.Object)" attrs="486">
+        <size>7</size>
+      </method>
+      <method name="I Resolve[I]()" attrs="134">
+        <size>7</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-533.cs">
+    <type name="List`1[X]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="List`1+Comp`1[X,Y]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="List`1+Flip`1[X,Z]">
+      <method name="Void .ctor(Comp`1)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="List`1+Comp`1[X,Y]">
+      <method name="Comp`1 flip(Y, X)" attrs="134">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-534.cs">
+    <type name="A">
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Method(IG`1[System.Double[][]])" attrs="486">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-535.cs">
+    <type name="G`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Int32 Foo[T](T, G`1[T])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo[T](T, System.Object)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>52</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-536.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+Expression`1[TDelegate]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+Expression">
+      <method name="Void Test()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-537.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>108</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.String op_BitwiseOr(S, System.Nullable`1[S])" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="System.Nullable`1[System.Int32] op_Addition(S, System.Nullable`1[S])" attrs="2198">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-538.cs">
+    <type name="S">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Enumerator`1[T]">
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>7</size>
+      </method>
+      <method name="T get_Current()" attrs="2534">
+        <size>7</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>7</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="MySystem">
+      <method name="Int32 Main()" attrs="150">
+        <size>210</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] GetEnumerator()" attrs="486">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="S2">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] GetEnumerator()" attrs="134">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-539.cs">
+    <type name="S">
+      <method name="Int32 get_ID()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_ID(Int32)" attrs="2182">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="C op_Explicit(S)" attrs="2198">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6273">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>98</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="C op_Explicit(System.Nullable`1[S])" attrs="2198">
+        <size>47</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-540.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>762</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void BrokenLiftedNull()" attrs="129">
+        <size>82</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-541.cs">
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Top`1[S]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Top`1+Base`1[S,T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Top`1+Base`1+Derived`1[S,T,U]">
+      <method name="Void Test()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-542.cs">
+    <type name="A`1[T]">
+      <method name="T getT()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+B[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+B[T]">
+      <method name="B getT()" attrs="198">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-543.cs">
+    <type name="Blah`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Blah`1+WrapperWrapper`1[T,N]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor(Wrapper`1)" attrs="6276">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Wrapper`1[U]">
+      <method name="Void .ctor(U)" attrs="6273">
+        <size>8</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Blah`1+WrapperWrapper`1[T,N]">
+      <method name="WrapperWrapper`1 NewWrapperWrapper(Wrapper`1[N])" attrs="134">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-544.cs">
+    <type name="A`1[T]">
+      <method name="G Foo[G]()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="G Foo2[G]()" attrs="454">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="G Foo[G]()" attrs="198">
+        <size>14</size>
+      </method>
+      <method name="G Foo2[G]()" attrs="198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A2`1[T]">
+      <method name="Void Foo[U]()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B2">
+      <method name="Void Foo[Y]()" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>78</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A3`1[T]">
+      <method name="Void Foo[U]()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B3">
+      <method name="Void Foo[Y]()" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-545.cs">
+    <type name="ApplicationContext">
+      <method name="Boolean Foo()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>353</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-546.cs">
+    <type name="Factory">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Factory+S`2[G1,G2]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="TR Test[T1,T2,TR](T1, T2, System.Func`3[T1,T2,TR])" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>47</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Factory">
+      <method name="S`2 Create[F1,F2](F1, F2)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-547.cs">
+    <type name="Foo">
+      <method name="Void GenericLock[T](T)" attrs="145">
+        <size>36</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-548.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-549.cs">
+    <type name="C`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D+Impl">
+      <method name="Void MA(Int32)" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void MB(Int32)" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-550.cs">
+    <type name="Foo.Magic">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="Foo.Instance">
+      <method name="Int32 get_DestinationDimension()" attrs="2534">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo.Magic`1[T]">
+      <method name="Void Upsample(IUpDown)" attrs="150">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Foo.Instance">
+      <method name="System.Decimal get_Item(Int32)" attrs="2534">
+        <size>7</size>
+      </method>
+      <method name="Void set_Item(Int32, System.Decimal)" attrs="2534">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-551.cs">
+    <type name="Base`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="Derived`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>29</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Object Clone()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-552.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+MM">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-553.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-554.cs">
+    <type name="Mono.Test.Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>159</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Mono.Test.A">
+      <method name="Boolean get_Success()" attrs="2534">
+        <size>10</size>
+      </method>
+      <method name="Void Run()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void Gen[U]()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Mono.Test.B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-555.cs">
+    <type name="Program">
+      <method name="Int32 Test[T](T)" attrs="145">
+        <size>32</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>63</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-556.cs">
+    <type name="A2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A2+N`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A2+N`1[T]">
+      <method name="N`1 Method()" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-557.cs">
+    <type name="Test">
+      <method name="U[] Foo[T,U](T[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void TestByRef[T]()" attrs="145">
+        <size>22</size>
+      </method>
+      <method name="Void PassByRef[T](T ByRef)" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>62</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-558.cs">
+    <type name="A`1[T]">
+      <method name="Void Foo[U](U)" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Foo[U](U)" attrs="198">
+        <size>16</size>
+      </method>
+      <method name="Void Next[UU](UU)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-559.cs">
+    <type name="B`1[TContext]">
+      <method name="Void Test[U2]()" attrs="486">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-560.cs">
+    <type name="G`1[T]">
+      <method name="Void .ctor(Int32)" attrs="6273">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-561.cs">
+    <type name="C">
+      <method name="Void Foo[T](System.Collections.Generic.List`1[T])" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-562.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`1[U]">
+      <method name="Void Test()" attrs="134">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1[U]">
+      <method name="Void Test()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1+N[U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D`1[U]">
+      <method name="Void Test()" attrs="134">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="E`1[U]">
+      <method name="Void Test(U)" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Application">
+      <method name="Int32 Main()" attrs="150">
+        <size>40</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-563.cs">
+    <type name="C`1[U]">
+      <method name="Void Foo[T](T)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1[U]">
+      <method name="Void Test(System.Nullable`1[S])" attrs="150">
+        <size>20</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-564.cs">
+    <type name="B1`2[T1,T2]">
+      <method name="Void Test[U](U)" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B2`2[T1,T2]">
+      <method name="Void Test[U](U)" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C1">
+      <method name="Void Test[U](U)" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C2">
+      <method name="Void Test[U](U)" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>122</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-565.cs">
+    <type name="B`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Test[T,I]()" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void Foo[T,I]()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-566.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+Context`1[T,U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+Context`1+D[T,U]">
+      <method name="Void Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="A`1+Context`1+D2`1[T,U,V]">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="A`1+Constructor[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+Constructor+Nested[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+Context`1+D[T,U]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="A`1+Context`1+D2`1[T,U,V]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="A`1+Constructor[T]">
+      <method name="Void Before[U](D)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Before[U,V](D2`1)" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="A`1+Constructor+Nested[T]">
+      <method name="Void Test[U](D)" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void Test[U,V](D2`1)" attrs="150">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-567.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="G`1[T]">
+      <method name="Void Foo()" attrs="150">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="G2`1[T]">
+      <method name="Void Foo()" attrs="150">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-568.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>111</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-569.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TreeMap`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TreeMap`1+Entry`1[T,U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-570.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1[T]">
+      <method name="C`1[T] op_Implicit(T)" attrs="2198">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-571.cs">
+    <type name="A`1[T]">
+      <method name="A`1[MM] For[MM]()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`3[U,X,V]">
+      <method name="A`1[PP] For[PP]()" attrs="198">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor(A`1)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="A`1[QQ] For[QQ]()" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-572.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int16] GetEnumerator()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-573.cs">
+    <type name="CB`1[T]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CA`1[T]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CA`1[T]">
+      <method name="IA`1[T] Backwards()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="IB`1[T] IB&lt;T&gt;.Backwards()" attrs="481">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-574.cs">
+    <type name="TestClass`1[T1]">
+      <method name="Void Test()" attrs="129">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestClass`1+Nested[T1]">
+      <method name="System.Object Clone()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SequencedBase`1[T2]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="DirectedCollectionBase`1[T3]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CollectionBase`1[T4]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CollectionValueBase`1[T5]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="EnumerableBase`1[T6]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestClass`1[T1]">
+      <method name="Void Foo[U](System.Collections.Generic.IEnumerable`1[U])" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="DirectedCollectionBase`1[T3]">
+      <method name="System.Collections.Generic.IEnumerator`1[T3] System.Collections.Generic.IEnumerable&lt;T3&gt;.GetEnumerator()" attrs="481">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="EnumerableBase`1[T6]">
+      <method name="System.Collections.Generic.IEnumerator`1[T6] System.Collections.Generic.IEnumerable&lt;T6&gt;.GetEnumerator()" attrs="481">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="DirectedCollectionBase`1[T3]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="EnumerableBase`1[T6]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-575.cs">
+    <type name="C`1[T1]">
+      <method name="Void Test()" attrs="134">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`1[T2]">
+      <method name="Void System.IDisposable.Dispose()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-576.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void IA.f[T1](IParam`1[T1])" attrs="481">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-577.cs">
+    <type name="Program">
+      <method name="Void Generic[T](T)" attrs="145">
+        <size>32</size>
+      </method>
+      <method name="Void Main()" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="Program+BaseClass">
+      <method name="Int32 get_Id()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+Derived">
+      <method name="System.String get_Id()" attrs="2534">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-578.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="I`1[TR] Test[T,TR](I`1[T], System.Func`2[I`1[T],TR])" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="U First[U](I`1[U])" attrs="150">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-579.cs">
+    <type name="G`2[U,V]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>80</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Boolean Test_2[T2](T2[])" attrs="145">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-580.cs">
+    <type name="WhereProblems.MyClass`1[where]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="WhereProblems.Classes">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="WhereProblems.Classes+where">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="WhereProblems.Classes+DER17">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-581.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="145">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-582.cs">
+    <type name="G1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="GC`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>89</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-583.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-584.cs">
+    <type name="S">
+      <method name="Boolean op_Equality(S, S)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Boolean op_Inequality(S, S)" attrs="2198">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>603</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.Nullable`1[System.Int32] op_Implicit(S)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="System.Nullable`1[E] op_Implicit(S)" attrs="2198">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-585.cs">
+    <type name="S">
+      <method name="Int32 op_Implicit(S)" attrs="2198">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S3">
+      <method name="System.String op_Implicit(S3)" attrs="2198">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>436</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S2">
+      <method name="System.Nullable`1[System.Int32] op_Implicit(S2)" attrs="2198">
+        <size>19</size>
+      </method>
+      <method name="System.Nullable`1[System.UInt32] op_Implicit(S2)" attrs="2198">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-586.cs">
+    <type name="S">
+      <method name="Boolean op_Equality(S, S)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Boolean op_Inequality(S, S)" attrs="2198">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S2">
+      <method name="Boolean op_Equality(S2, S2)" attrs="2198">
+        <size>22</size>
+      </method>
+      <method name="Boolean op_Inequality(S2, S2)" attrs="2198">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>661</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S3">
+      <method name="System.Nullable`1[System.Int32] op_Implicit(S3)" attrs="2198">
+        <size>30</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-587.cs">
+    <type name="S">
+      <method name="System.String op_Implicit(S)" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="E op_Implicit(S)" attrs="2198">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>139</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.Nullable`1[System.Int16] op_Implicit(S)" attrs="2198">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-588.cs">
+    <type name="S">
+      <method name="System.Nullable`1[System.Int16] op_Implicit(S)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Int16 op_Implicit(S)" attrs="2198">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>246</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-589.cs">
+    <type name="Z">
+      <method name="Z Start()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Z IGenericInterface&lt;Z&gt;.Start()" attrs="481">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1[T]">
+      <method name="Void SomeOperation(T)" attrs="134">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 IGenericInterface&lt;int&gt;.Start()" attrs="481">
+        <size>7</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-590.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>132</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-591.cs">
+    <type name="E">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-592.cs">
+    <type name="Tests">
+      <method name="Void A[T](System.Collections.Generic.IReadOnlyCollection`1[T])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void B[T](System.Collections.Generic.IReadOnlyList`1[T])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-593.cs">
+    <type name="Parser`2[D1,DR1]">
+      <method name="System.Tuple`2[D1,DR1] Invoke(D1)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Combinator">
+      <method name="Parser`2[L1,LR1] Lazy[L1,LR1](System.Func`1[Parser`2[L1,LR1]])" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Parser`2[C1,CR1] Choice[C1,CR1](Parser`2[C1,CR1])" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>37</size>
+      </method>
+    </type>
+    <type name="Combinator+&lt;Choice&gt;c__AnonStorey0`2[C1,CR1]">
+      <method name="Parser`2[C1,CR1] &lt;&gt;m__0()" attrs="131">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Parser`2[D1,DR1]">
+      <method name="System.IAsyncResult BeginInvoke(D1, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.Tuple`2[D1,DR1] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Combinator">
+      <method name="System.Tuple`2[System.Int32,System.Int32] &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-594.cs">
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void Foo[T]()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-595.cs">
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>66</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+TypeConverter`2[TIn,TOut]">
+      <method name="Boolean Convert(TIn)" attrs="150">
+        <size>34</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-596.cs">
+    <type name="X">
+      <method name="Artist get_Artist()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Artist(Artist)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void Test[T1,T2](System.Func`2[T1,T2])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test[T1,T2](System.Func`3[T1,System.Int32,T2])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Artist">
+      <method name="Artist FromToken(System.String)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-597.cs">
+    <type name="Test.MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>63</size>
+      </method>
+      <method name="Boolean Test_1[T](Test.Templated`1[T])" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Boolean Test_2[U](Test.IA`1[U])" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Templated`1[T]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Derived">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-598.cs">
+    <type name="A">
+      <method name="T Test[T](T)" attrs="454">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="T Test[T](T)" attrs="198">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="T Test[T](T)" attrs="198">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AG`1[U]">
+      <method name="T Test[T](T, U)" attrs="454">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`1[UB]">
+      <method name="T Test[T](T, UB)" attrs="198">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1[UC]">
+      <method name="T Test[T](T, UC)" attrs="198">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-599.cs">
+    <type name="A`1[X]">
+      <method name="T Test[T](T, X)" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="T Test[T](T, Char)" attrs="198">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="T Test[T](T, Char)" attrs="198">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-600.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Delta">
+      <method name="Void Test[U](ICharlie`1[U], U)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void World[U](U, IFoo`1[U])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Foo)" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="145">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-601.cs">
+    <type name="TestProgram">
+      <method name="Void Main()" attrs="150">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-602.cs">
+    <type name="Factory`2[TKey,TBase]">
+      <method name="Void Register[T](TKey)" attrs="134">
+        <size>26</size>
+      </method>
+      <method name="TBase Produce(TKey)" attrs="134">
+        <size>26</size>
+      </method>
+      <method name="TBase Constructor[T]()" attrs="145">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="Factory`2+InstantiateMethod`1[TKey,TBase,T]">
+      <method name="T Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="BaseClass">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ChildClass1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ChildClass2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>108</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Factory`2+InstantiateMethod`1[TKey,TBase,T]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="T EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-603.cs">
+    <type name="A`1[T]">
+      <method name="T op_Explicit(A`1[T])" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Int32 N(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-604.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-605.cs">
+    <type name="NullableAnd">
+      <method name="System.Object Foo(System.Object, System.Object)" attrs="145">
+        <size>59</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>76</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-606.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-607.cs">
+    <type name="A">
+      <method name="System.Func`1[System.String] E(System.String ByRef)" attrs="134">
+        <size>26</size>
+      </method>
+      <method name="System.Func`1[System.String] F(System.String ByRef)" attrs="134">
+        <size>26</size>
+      </method>
+      <method name="Void Main()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor(String&amp;)" attrs="6278">
+        <size>15</size>
+      </method>
+      <method name="System.String D()" attrs="134">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-608.cs">
+    <type name="R`2[T,U]">
+      <method name="Void M(U)" attrs="134">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S`2[T,U]">
+      <method name="Void M(U)" attrs="134">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Dispose()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void Dispose()" attrs="486">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-609.cs">
+    <type name="X`2[T,TBase]">
+      <method name="Void X2[T2](T2)" attrs="150">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-610.cs">
+    <type name="G1`2[T1,T2]">
+      <method name="T2 Test1(B)" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="T2 Test2(A)" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="T2 Test3(System.Object)" attrs="150">
+        <size>77</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void Main()" attrs="145">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-611.cs">
+    <type name="X">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X2">
+      <method name="Void Main()" attrs="150">
+        <size>24</size>
+      </method>
+      <method name="Void Foo[T1,T2](T2[])" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void Foo[T1,T2](T2[][])" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-612.cs">
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>132</size>
+      </method>
+      <method name="System.Nullable`1[System.Int32] Left()" attrs="145">
+        <size>28</size>
+      </method>
+      <method name="System.Nullable`1[System.Int32] Right()" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-613.cs">
+    <type name="X">
+      <method name="Void Foo(X)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`3[T1,T2,T3]">
+      <method name="Void Test(T3)" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 get_Prop()" attrs="2182">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-614.cs">
+    <type name="S">
+      <method name="System.Nullable`1[System.Int32] op_Explicit(System.Nullable`1[S])" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Int32 op_Implicit(System.Nullable`1[S])" attrs="2198">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>100</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-615.cs">
+    <type name="X">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+N`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-616.cs">
+    <type name="S">
+      <method name="Void Dispose()" attrs="486">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="A`1[T]">
+      <method name="Boolean Test[U](U)" attrs="454">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Boolean Test[U](U)" attrs="198">
+        <size>27</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-617.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="145">
+        <size>57</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="System.Collections.Generic.IEnumerator`1[System.String] GetEnumerator()" attrs="134">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] GetEnumerator(Int32[])" attrs="134">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-618.cs">
+    <type name="S1">
+      <method name="Int32 op_Implicit(System.Nullable`1[S1])" attrs="2198">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="S2">
+      <method name="System.Nullable`1[System.Int32] op_Implicit(System.Nullable`1[S2])" attrs="2198">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="S3">
+      <method name="System.Nullable`1[System.Int32] op_Implicit(System.Nullable`1[S3])" attrs="2198">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="S4">
+      <method name="System.Nullable`1[System.Int32] op_Implicit(S4)" attrs="2198">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>267</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-619.cs">
+    <type name="S+P">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S+C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Test[T](I`1[T])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test[T](IB`1[T])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-620.cs">
+    <type name="A`1[T]">
+      <method name="T M[U](U)" attrs="454">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B`1[W]">
+      <method name="I`1[W] M[U](U)" attrs="198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bug">
+      <method name="Void Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-621.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="145">
+        <size>267</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-622.cs">
+    <type name="CY">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void M[TO]()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-623.cs">
+    <type name="C">
+      <method name="Boolean Test[T]()" attrs="145">
+        <size>42</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-624.cs">
+    <type name="Model">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C1`1[T1]">
+      <method name="Void Add(System.Func`2[T1,System.Int32])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C2`1[TModel]">
+      <method name="Void ApplyImpl[U](C1`1[U])" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C3">
+      <method name="Void ApplyImpl[Foo](C1`1[Foo])" attrs="198">
+        <size>20</size>
+      </method>
+      <method name="Int32 &lt;ApplyImpl`1&gt;m__0[Foo](Foo)" attrs="145">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main()" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-625.cs">
+    <type name="S">
+      <method name="Boolean op_True(System.Nullable`1[S])" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_False(System.Nullable`1[S])" attrs="2198">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="P">
+      <method name="Void Main()" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-626.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="145">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+Foo">
+      <method name="Boolean MG(Foo)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+Bar`1[T]">
+      <method name="Bar`1 Create(System.Func`2[T,System.Boolean])" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Bar`1 Create(System.Func`2[T,System.Double], System.Func`2[T,System.Boolean])" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-627.cs">
+    <type name="X">
+      <method name="U Foo[U](System.Nullable`1[System.Double], System.Func`2[System.Nullable`1[System.Double],U], Int32)" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="U Foo[T,U](System.Nullable`1[T], System.Func`2[T,U])" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="145">
+        <size>46</size>
+      </method>
+      <method name="Double &lt;Main&gt;m__0(Double)" attrs="145">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-628.cs">
+    <type name="Impl`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Impl`1[T]">
+      <method name="System.Object CompareExchangeImpl(TypedReference, System.Object, System.Object)" attrs="150">
+        <size>37</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-629.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>135</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-630.cs">
+    <type name="A">
+      <method name="Int32 Foo(Int32)" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Int32 Bar[T](T)" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-631.cs">
+    <type name="BaseClass`1[TSource]">
+      <method name="Void DoStuff[TInput](TInput)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void MyInterface.DoStuff[TInput](TInput)" attrs="993">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-632.cs">
+    <type name="BaseClass`1[TSource]">
+      <method name="Void DoStuff[TInput](TInput)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void MyInterface.DoStuff[TInput](TInput)" attrs="993">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TInterface">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-633.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anontype-01.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>71</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;Foo&gt;__T,&lt;Baz&gt;__T]">
+      <method name="&lt;Foo&gt;__T get_Foo()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;Baz&gt;__T get_Baz()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;Foo&gt;__T, &lt;Baz&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anontype-02.cs">
+    <type name="Test">
+      <method name="System.Object TestA(System.String)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>122</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`1[&lt;s&gt;__T]">
+      <method name="&lt;s&gt;__T get_s()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>39</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>63</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor(&lt;s&gt;__T)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType1`2[&lt;Foo&gt;__T,&lt;Baz&gt;__T]">
+      <method name="&lt;Foo&gt;__T get_Foo()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;Baz&gt;__T get_Baz()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;Foo&gt;__T, &lt;Baz&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anontype-03.cs">
+    <type name="MyClass">
+      <method name="Int32 get_Baz()" attrs="2182">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>82</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;Foo&gt;__T,&lt;Baz&gt;__T]">
+      <method name="&lt;Foo&gt;__T get_Foo()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;Baz&gt;__T get_Baz()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;Foo&gt;__T, &lt;Baz&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anontype-04.cs">
+    <type name="MyClass">
+      <method name="Int32 get_Baz()" attrs="2182">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>139</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`4[&lt;Foo&gt;__T,&lt;Baz&gt;__T,&lt;Hello&gt;__T,&lt;Answer&gt;__T]">
+      <method name="&lt;Foo&gt;__T get_Foo()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;Baz&gt;__T get_Baz()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;Hello&gt;__T get_Hello()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;Answer&gt;__T get_Answer()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>123</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>132</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>258</size>
+      </method>
+      <method name="Void .ctor(&lt;Foo&gt;__T, &lt;Baz&gt;__T, &lt;Hello&gt;__T, &lt;Answer&gt;__T)" attrs="6278">
+        <size>36</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anontype-05.cs">
+    <type name="Test">
+      <method name="System.String Null()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>357</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;Name&gt;__T,&lt;Age&gt;__T]">
+      <method name="&lt;Name&gt;__T get_Name()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;Age&gt;__T get_Age()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;Name&gt;__T, &lt;Age&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType1`2[&lt;Age&gt;__T,&lt;Name&gt;__T]">
+      <method name="&lt;Age&gt;__T get_Age()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;Name&gt;__T get_Name()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;Age&gt;__T, &lt;Name&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType2">
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>15</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>40</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType3`1[&lt;Foo&gt;__T]">
+      <method name="&lt;Foo&gt;__T get_Foo()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>39</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>63</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor(&lt;Foo&gt;__T)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anontype-06.cs">
+    <type name="CastByExample">
+      <method name="Void Main()" attrs="150">
+        <size>30</size>
+      </method>
+      <method name="T Cast[T](System.Object, T)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`1[&lt;Foo&gt;__T]">
+      <method name="&lt;Foo&gt;__T get_Foo()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>39</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>63</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor(&lt;Foo&gt;__T)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anontype-07.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>82</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0">
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>15</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>40</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anontype-08.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;X&gt;__T,&lt;Y&gt;__T]">
+      <method name="&lt;X&gt;__T get_X()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;Y&gt;__T get_Y()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;X&gt;__T, &lt;Y&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anontype-09.cs">
+    <type name="My.System.Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>48</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`1[&lt;X&gt;__T]">
+      <method name="&lt;X&gt;__T get_X()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>39</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>63</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor(&lt;X&gt;__T)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType1`1[&lt;Value&gt;__T]">
+      <method name="&lt;Value&gt;__T get_Value()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>39</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>63</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor(&lt;Value&gt;__T)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anontype-10.cs">
+    <type name="A">
+      <method name="Int32 get_X()" attrs="2182">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Int32 Test()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`1[&lt;X&gt;__T]">
+      <method name="&lt;X&gt;__T get_X()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>39</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>63</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor(&lt;X&gt;__T)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anontype-11.cs">
+    <type name="Alpha">
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Beta">
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>57</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;First&gt;__T,&lt;Second&gt;__T]">
+      <method name="&lt;First&gt;__T get_First()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;Second&gt;__T get_Second()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;First&gt;__T, &lt;Second&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anontype-12.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`1[&lt;ToString&gt;__T]">
+      <method name="&lt;ToString&gt;__T get_ToString()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>39</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>63</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor(&lt;ToString&gt;__T)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-anontype-13.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>182</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Select&gt;c__Iterator0`1[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>211</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>83</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;n&gt;__T,&lt;p&gt;__T]">
+      <method name="&lt;n&gt;__T get_n()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;p&gt;__T get_p()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;n&gt;__T, &lt;p&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Main&gt;c__AnonStorey1">
+      <method name="&lt;&gt;__AnonType0`2[System.String,System.Reflection.PropertyInfo] &lt;&gt;m__0(System.String)" attrs="131">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.Generic.IEnumerable`1[T] Select[T](System.Array, System.Func`2[System.Object,T])" attrs="150">
+        <size>37</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Select&gt;c__Iterator0`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Boolean &lt;Main&gt;m__0(&lt;&gt;__AnonType0`2[System.String,System.Reflection.PropertyInfo])" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__1(&lt;&gt;__AnonType0`2[System.String,System.Reflection.PropertyInfo])" attrs="145">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-01.cs">
+    <type name="Test">
+      <method name="System.String get_Foo()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Foo(System.String)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Int32 get_Answer()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Answer(Int32)" attrs="2177">
+        <size>8</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>120</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="Test+A">
+      <method name="System.String get_B()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_B(System.String)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-02.cs">
+    <type name="Test">
+      <method name="System.String get_Foo()" attrs="2198">
+        <size>13</size>
+      </method>
+      <method name="Void set_Foo(System.String)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Int32 get_Answer()" attrs="2198">
+        <size>13</size>
+      </method>
+      <method name="Void set_Answer(Int32)" attrs="2193">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+A">
+      <method name="System.String get_B()" attrs="2198">
+        <size>13</size>
+      </method>
+      <method name="Void set_B(System.String)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="System.String get_C()" attrs="2198">
+        <size>13</size>
+      </method>
+      <method name="Void set_C(System.String)" attrs="2193">
+        <size>7</size>
+      </method>
+      <method name="Void DoThings()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-03.cs">
+    <type name="Test">
+      <method name="System.String get_Foo()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Foo(System.String)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>336</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-04.cs">
+    <type name="MonoTests.MainClass">
+      <method name="System.String[] get_foo()" attrs="2500">
+        <size>14</size>
+      </method>
+      <method name="Void set_foo(System.String[])" attrs="2500">
+        <size>8</size>
+      </method>
+      <method name="System.String[] get_bar()" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void set_bar(System.String[])" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoTests.ChildClass">
+      <method name="System.String[] get_foo()" attrs="2244">
+        <size>14</size>
+      </method>
+      <method name="Void set_foo(System.String[])" attrs="2244">
+        <size>8</size>
+      </method>
+      <method name="System.String[] get_bar()" attrs="2246">
+        <size>14</size>
+      </method>
+      <method name="Void set_bar(System.String[])" attrs="2246">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-05.cs">
+    <type name="Test">
+      <method name="System.String get_X()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_X(System.String)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-06.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="B I&lt;B&gt;.get_Prop()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Void I&lt;B&gt;.set_Prop(B)" attrs="2529">
+        <size>8</size>
+      </method>
+      <method name="A I&lt;A&gt;.get_Prop()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Void I&lt;A&gt;.set_Prop(A)" attrs="2529">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-07.cs">
+    <type name="Foo">
+      <method name="System.Object get_NewValue()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_NewValue(System.Object)" attrs="2177">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Object)" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-08.cs">
+    <type name="AAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 get_Prop()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Prop(Int32)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-09.cs">
+    <type name="S">
+      <method name="Int32 get_P()" attrs="2198">
+        <size>13</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>213</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Decimal get_P()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="S2">
+      <method name="Int32 get_P()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor(Object)" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 get_P2()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_P2(Int32)" attrs="2182">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="S2">
+      <method name="Int32 get_P2()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_P2(Int32)" attrs="2182">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="Int32[] get_PA()" attrs="2198">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="S2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-10.cs">
+    <type name="S">
+      <method name="System.Decimal get_P()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-11.cs">
+    <type name="Test">
+      <method name="System.String get_Property1()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Int32 get_Property2()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>144</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-12.cs">
+    <type name="A">
+      <method name="Int32 get_X()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Int32 get_Y()" attrs="2502">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>50</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 get_Y()" attrs="2246">
+        <size>29</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>136</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-14.cs">
+    <type name="S">
+      <method name="Int32 get_A()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_A(Int32)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-15.cs">
+    <type name="C">
+      <method name="Int32 get_A()" attrs="2502">
+        <size>14</size>
+      </method>
+      <method name="Void set_A(Int32)" attrs="2177">
+        <size>8</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-16.cs">
+    <type name="A">
+      <method name="Int32 get_Foo()" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 get_Foo()" attrs="2246">
+        <size>9</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-17.cs">
+    <type name="MainClass">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+Bar">
+      <method name="Boolean get_Condition()" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+Baz">
+      <method name="Boolean get_Condition()" attrs="2246">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-18.cs">
+    <type name="A">
+      <method name="Int32 get_Type()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 get_Type()" attrs="2193">
+        <size>13</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>53</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-autoproperty-19.cs">
+    <type name="Node">
+      <method name="Int32 get_Next()" attrs="2502">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="NodeLinked">
+      <method name="Int32 get_Next()" attrs="2246">
+        <size>14</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-collectioninit-01.cs">
+    <type name="Test">
+      <method name="Void TestList(System.Collections.Generic.List`1[System.Int32], Int32)" attrs="145">
+        <size>91</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>562</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+Wrap">
+      <method name="System.Collections.ArrayList get_Numbers()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>26</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-collectioninit-02.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>86</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-collectioninit-03.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>42</size>
+      </method>
+      <method name="Void R(System.Object ByRef)" attrs="145">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-collectioninit-04.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>69</size>
+      </method>
+      <method name="System.String &lt;Test&gt;m__0(System.String)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="System.String &lt;Test&gt;m__1(System.String)" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-01.cs">
+    <type name="InverseLogicalOperator">
+      <method name="Boolean op_True(InverseLogicalOperator)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Boolean op_False(InverseLogicalOperator)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor(Boolean)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="MyType">
+      <method name="Int16 get_ShortProp()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_ShortProp(Int16)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>7</size>
+      </method>
+      <method name="Int32 op_Implicit(MyType)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Boolean op_True(MyType)" attrs="2198">
+        <size>24</size>
+      </method>
+      <method name="Boolean op_False(MyType)" attrs="2198">
+        <size>27</size>
+      </method>
+      <method name="MyType op_Addition(MyType, MyType)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="MyType op_Subtraction(MyType, MyType)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="MyType op_Division(MyType, MyType)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="MyType op_Multiply(MyType, MyType)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="MyType op_Modulus(MyType, MyType)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="MyType op_BitwiseAnd(MyType, MyType)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="MyType op_BitwiseOr(MyType, MyType)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="MyType op_ExclusiveOr(MyType, MyType)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="Boolean op_Equality(MyType, MyType)" attrs="2198">
+        <size>25</size>
+      </method>
+      <method name="Boolean op_Inequality(MyType, MyType)" attrs="2198">
+        <size>28</size>
+      </method>
+      <method name="Boolean op_GreaterThan(MyType, MyType)" attrs="2198">
+        <size>25</size>
+      </method>
+      <method name="Boolean op_LessThan(MyType, MyType)" attrs="2198">
+        <size>25</size>
+      </method>
+      <method name="Boolean op_GreaterThanOrEqual(MyType, MyType)" attrs="2198">
+        <size>28</size>
+      </method>
+      <method name="Boolean op_LessThanOrEqual(MyType, MyType)" attrs="2198">
+        <size>28</size>
+      </method>
+      <method name="Boolean op_LogicalNot(MyType)" attrs="2198">
+        <size>19</size>
+      </method>
+      <method name="Int32 op_RightShift(MyType, Int32)" attrs="2198">
+        <size>21</size>
+      </method>
+      <method name="Int32 op_LeftShift(MyType, Int32)" attrs="2198">
+        <size>21</size>
+      </method>
+      <method name="MyType op_UnaryNegation(MyType)" attrs="2198">
+        <size>22</size>
+      </method>
+      <method name="MyType op_UnaryPlus(MyType)" attrs="2198">
+        <size>21</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="MyTypeExplicit">
+      <method name="Int32 op_Explicit(MyTypeExplicit)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="MyTypeImplicitOnly">
+      <method name="Int16 op_Implicit(MyTypeImplicitOnly)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor(Int16)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="MemberAccessData">
+      <method name="Void add_EventField(System.Func`1[System.Boolean])" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void remove_EventField(System.Func`1[System.Boolean])" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="System.Linq.Expressions.Expression`1[System.Func`1[System.Func`1[System.Boolean]]] GetEvent()" attrs="134">
+        <size>41</size>
+      </method>
+      <method name="Void set_MyTypeProperty(MyType)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="MyType get_MyTypeProperty()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="System.String get_StaticProperty()" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="Void set_SetOnly(System.Object)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="NewTest`1[T]">
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>15</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>111</size>
+      </method>
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor(T[])" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Indexer">
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="System.String get_Item(System.String[])" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Int32 ReturnNumber()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void Assert[T](T, T)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void Assert[T](T, T, System.String)" attrs="145">
+        <size>91</size>
+      </method>
+      <method name="Void Assert[T](T[], T[])" attrs="145">
+        <size>228</size>
+      </method>
+      <method name="Void AddTest()" attrs="129">
+        <size>100</size>
+      </method>
+      <method name="Void AddTest_2()" attrs="129">
+        <size>118</size>
+      </method>
+      <method name="Void AddTest_3()" attrs="129">
+        <size>130</size>
+      </method>
+      <method name="Void AddTest_4()" attrs="129">
+        <size>191</size>
+      </method>
+      <method name="Void AddTest_5()" attrs="129">
+        <size>134</size>
+      </method>
+      <method name="Void AddTest_6()" attrs="129">
+        <size>159</size>
+      </method>
+      <method name="Void AddTest_7()" attrs="129">
+        <size>143</size>
+      </method>
+      <method name="Void AddTest_8()" attrs="129">
+        <size>247</size>
+      </method>
+      <method name="Void AddTest_9()" attrs="129">
+        <size>143</size>
+      </method>
+      <method name="Void AddCheckedTest()" attrs="129">
+        <size>102</size>
+      </method>
+      <method name="Void AddCheckedTest_2()" attrs="129">
+        <size>120</size>
+      </method>
+      <method name="Void AddCheckedTest_3()" attrs="129">
+        <size>132</size>
+      </method>
+      <method name="Void AddStringTest()" attrs="129">
+        <size>129</size>
+      </method>
+      <method name="Void AddStringTest_2()" attrs="129">
+        <size>174</size>
+      </method>
+      <method name="Void AddStringTest_3()" attrs="129">
+        <size>175</size>
+      </method>
+      <method name="Void AddStringTest_4()" attrs="129">
+        <size>175</size>
+      </method>
+      <method name="Void AndTest()" attrs="129">
+        <size>141</size>
+      </method>
+      <method name="Void AndTest_2()" attrs="129">
+        <size>162</size>
+      </method>
+      <method name="Void AndTest_3()" attrs="129">
+        <size>162</size>
+      </method>
+      <method name="Void AndTest_4()" attrs="129">
+        <size>93</size>
+      </method>
+      <method name="Void AndNullableTest()" attrs="129">
+        <size>382</size>
+      </method>
+      <method name="Void AndNullableTest_2()" attrs="129">
+        <size>238</size>
+      </method>
+      <method name="Void AndNullableTest_3()" attrs="129">
+        <size>198</size>
+      </method>
+      <method name="Void AndAlsoTest()" attrs="129">
+        <size>97</size>
+      </method>
+      <method name="Void AndAlsoTest_2()" attrs="129">
+        <size>166</size>
+      </method>
+      <method name="Void AndAlsoTest_3()" attrs="129">
+        <size>109</size>
+      </method>
+      <method name="Void ArrayIndexTest()" attrs="129">
+        <size>146</size>
+      </method>
+      <method name="Void ArrayIndexTest_2()" attrs="129">
+        <size>116</size>
+      </method>
+      <method name="Void ArrayIndexTest_3()" attrs="129">
+        <size>200</size>
+      </method>
+      <method name="Void ArrayIndexTest_4()" attrs="129">
+        <size>244</size>
+      </method>
+      <method name="Void ArrayIndexTest_5()" attrs="129">
+        <size>109</size>
+      </method>
+      <method name="Void ArrayIndexTest_6()" attrs="129">
+        <size>123</size>
+      </method>
+      <method name="Void ArrayIndexTest_7()" attrs="129">
+        <size>127</size>
+      </method>
+      <method name="Void ArrayLengthTest()" attrs="129">
+        <size>100</size>
+      </method>
+      <method name="Void ArrayLengthTest_2()" attrs="129">
+        <size>92</size>
+      </method>
+      <method name="Void CallTest()" attrs="129">
+        <size>127</size>
+      </method>
+      <method name="Void CallTest_2()" attrs="129">
+        <size>108</size>
+      </method>
+      <method name="Void CallTest_3()" attrs="129">
+        <size>196</size>
+      </method>
+      <method name="Void CallTest_4()" attrs="129">
+        <size>110</size>
+      </method>
+      <method name="Void CallTest_5()" attrs="129">
+        <size>100</size>
+      </method>
+      <method name="Void CallTest_6()" attrs="129">
+        <size>71</size>
+      </method>
+      <method name="Void CallTest_7()" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void CallTest_8()" attrs="129">
+        <size>228</size>
+      </method>
+      <method name="Void CallTest_9()" attrs="129">
+        <size>89</size>
+      </method>
+      <method name="Void CoalesceTest()" attrs="129">
+        <size>121</size>
+      </method>
+      <method name="Void CoalesceTest_2()" attrs="129">
+        <size>172</size>
+      </method>
+      <method name="Void ConditionTest()" attrs="129">
+        <size>171</size>
+      </method>
+      <method name="Void ConditionTest_2()" attrs="129">
+        <size>302</size>
+      </method>
+      <method name="Void ConditionTest_3()" attrs="129">
+        <size>180</size>
+      </method>
+      <method name="Void ConditionTest_4()" attrs="129">
+        <size>184</size>
+      </method>
+      <method name="Void ConditionTest_5()" attrs="129">
+        <size>108</size>
+      </method>
+      <method name="Void ConstantTest()" attrs="129">
+        <size>60</size>
+      </method>
+      <method name="Void ConstantTest_2()" attrs="129">
+        <size>63</size>
+      </method>
+      <method name="Void ConstantTest_3()" attrs="129">
+        <size>55</size>
+      </method>
+      <method name="Void ConstantTest_4()" attrs="129">
+        <size>45</size>
+      </method>
+      <method name="Void ConstantTest_5()" attrs="129">
+        <size>60</size>
+      </method>
+      <method name="Void ConstantTest_6()" attrs="129">
+        <size>68</size>
+      </method>
+      <method name="Void ConstantTest_7()" attrs="129">
+        <size>63</size>
+      </method>
+      <method name="Void ConstantTest_8()" attrs="129">
+        <size>73</size>
+      </method>
+      <method name="Void ConstantTest_9()" attrs="129">
+        <size>73</size>
+      </method>
+      <method name="Void ConstantTest_10()" attrs="129">
+        <size>73</size>
+      </method>
+      <method name="Void ConstantTest_11()" attrs="129">
+        <size>60</size>
+      </method>
+      <method name="Void ConstantTest_13()" attrs="129">
+        <size>60</size>
+      </method>
+      <method name="Void ConstantTest_14()" attrs="129">
+        <size>73</size>
+      </method>
+      <method name="Void ConstantTest_15()" attrs="129">
+        <size>63</size>
+      </method>
+      <method name="Void ConvertTest()" attrs="129">
+        <size>83</size>
+      </method>
+      <method name="Void ConvertTest_2()" attrs="129">
+        <size>84</size>
+      </method>
+      <method name="Void ConvertTest_3()" attrs="129">
+        <size>94</size>
+      </method>
+      <method name="Void ConvertTest_4()" attrs="129">
+        <size>103</size>
+      </method>
+      <method name="Void ConvertTest_5()" attrs="129">
+        <size>110</size>
+      </method>
+      <method name="Void ConvertTest_6()" attrs="129">
+        <size>239</size>
+      </method>
+      <method name="Void ConvertTest_7()" attrs="129">
+        <size>108</size>
+      </method>
+      <method name="Void ConvertTest_8()" attrs="129">
+        <size>119</size>
+      </method>
+      <method name="Void ConvertTest_9()" attrs="129">
+        <size>98</size>
+      </method>
+      <method name="Void ConvertTest_10()" attrs="129">
+        <size>181</size>
+      </method>
+      <method name="Void ConvertTest_11()" attrs="129">
+        <size>102</size>
+      </method>
+      <method name="Void ConvertTest_12()" attrs="129">
+        <size>142</size>
+      </method>
+      <method name="Void ConvertTest_13()" attrs="129">
+        <size>87</size>
+      </method>
+      <method name="Void ConvertTest_14()" attrs="129">
+        <size>89</size>
+      </method>
+      <method name="Void ConvertTest_15()" attrs="129">
+        <size>133</size>
+      </method>
+      <method name="Void ConvertTest_16()" attrs="129">
+        <size>82</size>
+      </method>
+      <method name="Void ConvertCheckedTest()" attrs="129">
+        <size>83</size>
+      </method>
+      <method name="Void ConvertCheckedTest_2()" attrs="129">
+        <size>86</size>
+      </method>
+      <method name="Void ConvertCheckedTest_3()" attrs="129">
+        <size>96</size>
+      </method>
+      <method name="Void ConvertCheckedTest_4()" attrs="129">
+        <size>105</size>
+      </method>
+      <method name="Void DivideTest()" attrs="129">
+        <size>100</size>
+      </method>
+      <method name="Void DivideTest_2()" attrs="129">
+        <size>185</size>
+      </method>
+      <method name="Void DivideTest_3()" attrs="129">
+        <size>130</size>
+      </method>
+      <method name="Void DivideTest_4()" attrs="129">
+        <size>192</size>
+      </method>
+      <method name="Void DivideTest_5()" attrs="129">
+        <size>135</size>
+      </method>
+      <method name="Void DivideTest_6()" attrs="129">
+        <size>197</size>
+      </method>
+      <method name="Void DivideTest_7()" attrs="129">
+        <size>186</size>
+      </method>
+      <method name="Void EqualTest()" attrs="129">
+        <size>119</size>
+      </method>
+      <method name="Void EqualTest_2()" attrs="129">
+        <size>169</size>
+      </method>
+      <method name="Void EqualTest_3()" attrs="129">
+        <size>126</size>
+      </method>
+      <method name="Void EqualTest_4()" attrs="129">
+        <size>209</size>
+      </method>
+      <method name="Void EqualTest_5()" attrs="129">
+        <size>175</size>
+      </method>
+      <method name="Void EqualTest_6()" attrs="129">
+        <size>120</size>
+      </method>
+      <method name="Void EqualTest_7()" attrs="129">
+        <size>168</size>
+      </method>
+      <method name="Void EqualTest_8()" attrs="129">
+        <size>117</size>
+      </method>
+      <method name="Void EqualTest_9()" attrs="129">
+        <size>147</size>
+      </method>
+      <method name="Void EqualTest_10()" attrs="129">
+        <size>170</size>
+      </method>
+      <method name="Void EqualTest_11()" attrs="129">
+        <size>148</size>
+      </method>
+      <method name="Void EqualTest_12()" attrs="129">
+        <size>128</size>
+      </method>
+      <method name="Void EqualTest_13()" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void EqualTest_14()" attrs="129">
+        <size>132</size>
+      </method>
+      <method name="Void EqualTest_15()" attrs="129">
+        <size>160</size>
+      </method>
+      <method name="Void EqualTestDelegate()" attrs="129">
+        <size>114</size>
+      </method>
+      <method name="Void EqualTestDelegate_2()" attrs="129">
+        <size>313</size>
+      </method>
+      <method name="Void EqualTestDelegate_3()" attrs="129">
+        <size>230</size>
+      </method>
+      <method name="Void ExclusiveOrTest()" attrs="129">
+        <size>116</size>
+      </method>
+      <method name="Void ExclusiveOrTest_2()" attrs="129">
+        <size>184</size>
+      </method>
+      <method name="Void ExclusiveOrTest_3()" attrs="129">
+        <size>130</size>
+      </method>
+      <method name="Void ExclusiveOrTest_4()" attrs="129">
+        <size>192</size>
+      </method>
+      <method name="Void ExclusiveOrTest_5()" attrs="129">
+        <size>198</size>
+      </method>
+      <method name="Void ExclusiveOrTest_6()" attrs="129">
+        <size>162</size>
+      </method>
+      <method name="Void ExclusiveOrTest_7()" attrs="129">
+        <size>198</size>
+      </method>
+      <method name="Void ExclusiveOrTest_8()" attrs="129">
+        <size>179</size>
+      </method>
+      <method name="Void GreaterThanTest()" attrs="129">
+        <size>100</size>
+      </method>
+      <method name="Void GreaterThanTest_2()" attrs="129">
+        <size>155</size>
+      </method>
+      <method name="Void GreaterThanTest_3()" attrs="129">
+        <size>126</size>
+      </method>
+      <method name="Void GreaterThanTest_4()" attrs="129">
+        <size>209</size>
+      </method>
+      <method name="Void GreaterThanTest_5()" attrs="129">
+        <size>209</size>
+      </method>
+      <method name="Void GreaterThanTest_6()" attrs="129">
+        <size>103</size>
+      </method>
+      <method name="Void GreaterThanTest_7()" attrs="129">
+        <size>147</size>
+      </method>
+      <method name="Void GreaterThanTest_8()" attrs="129">
+        <size>170</size>
+      </method>
+      <method name="Void GreaterThanOrEqualTest()" attrs="129">
+        <size>100</size>
+      </method>
+      <method name="Void GreaterThanOrEqualTest_2()" attrs="129">
+        <size>170</size>
+      </method>
+      <method name="Void GreaterThanOrEqualTest_3()" attrs="129">
+        <size>131</size>
+      </method>
+      <method name="Void GreaterThanOrEqualTest_4()" attrs="129">
+        <size>209</size>
+      </method>
+      <method name="Void GreaterThanOrEqualTest_5()" attrs="129">
+        <size>209</size>
+      </method>
+      <method name="Void GreaterThanOrEqualTest_6()" attrs="129">
+        <size>103</size>
+      </method>
+      <method name="Void GreaterThanOrEqualTest_7()" attrs="129">
+        <size>147</size>
+      </method>
+      <method name="Void GreaterThanOrEqualTest_8()" attrs="129">
+        <size>170</size>
+      </method>
+      <method name="Void InvokeTest()" attrs="129">
+        <size>91</size>
+      </method>
+      <method name="Void InvokeTest_2()" attrs="129">
+        <size>139</size>
+      </method>
+      <method name="Void LambdaTest()" attrs="129">
+        <size>90</size>
+      </method>
+      <method name="Void LeftShiftTest()" attrs="129">
+        <size>156</size>
+      </method>
+      <method name="Void LeftShiftTest_2()" attrs="129">
+        <size>163</size>
+      </method>
+      <method name="Void LeftShiftTest_3()" attrs="129">
+        <size>169</size>
+      </method>
+      <method name="Void LeftShiftTest_4()" attrs="129">
+        <size>262</size>
+      </method>
+      <method name="Void LeftShiftTest_5()" attrs="129">
+        <size>111</size>
+      </method>
+      <method name="Void LeftShiftTest_6()" attrs="129">
+        <size>156</size>
+      </method>
+      <method name="Void LessThanTest()" attrs="129">
+        <size>100</size>
+      </method>
+      <method name="Void LessThanTest_2()" attrs="129">
+        <size>155</size>
+      </method>
+      <method name="Void LessThanTest_3()" attrs="129">
+        <size>126</size>
+      </method>
+      <method name="Void LessThanTest_4()" attrs="129">
+        <size>209</size>
+      </method>
+      <method name="Void LessThanTest_5()" attrs="129">
+        <size>209</size>
+      </method>
+      <method name="Void LessThanTest_6()" attrs="129">
+        <size>103</size>
+      </method>
+      <method name="Void LessThanTest_7()" attrs="129">
+        <size>147</size>
+      </method>
+      <method name="Void LessThanTest_8()" attrs="129">
+        <size>170</size>
+      </method>
+      <method name="Void LessThanOrEqualTest()" attrs="129">
+        <size>100</size>
+      </method>
+      <method name="Void LessThanOrEqualTest_2()" attrs="129">
+        <size>170</size>
+      </method>
+      <method name="Void LessThanOrEqualTest_3()" attrs="129">
+        <size>126</size>
+      </method>
+      <method name="Void LessThanOrEqualTest_4()" attrs="129">
+        <size>209</size>
+      </method>
+      <method name="Void LessThanOrEqualTest_5()" attrs="129">
+        <size>209</size>
+      </method>
+      <method name="Void LessThanOrEqualTest_6()" attrs="129">
+        <size>103</size>
+      </method>
+      <method name="Void LessThanOrEqualTest_7()" attrs="129">
+        <size>147</size>
+      </method>
+      <method name="Void LessThanOrEqualTest_8()" attrs="129">
+        <size>170</size>
+      </method>
+      <method name="Void ListInitTest()" attrs="129">
+        <size>405</size>
+      </method>
+      <method name="Void ListInitTest_2()" attrs="129">
+        <size>293</size>
+      </method>
+      <method name="Void MemberAccessTest()" attrs="129">
+        <size>133</size>
+      </method>
+      <method name="Void MemberAccessTest_2()" attrs="129">
+        <size>64</size>
+      </method>
+      <method name="Void MemberAccessTest_3()" attrs="129">
+        <size>114</size>
+      </method>
+      <method name="Void MemberAccessTest_4()" attrs="129">
+        <size>92</size>
+      </method>
+      <method name="Void MemberAccessTest_5()" attrs="129">
+        <size>40</size>
+      </method>
+      <method name="Void MemberAccessTest_6()" attrs="129">
+        <size>105</size>
+      </method>
+      <method name="Void MemberAccessTest_7()" attrs="129">
+        <size>110</size>
+      </method>
+      <method name="Void MemberAccessTest_8()" attrs="129">
+        <size>64</size>
+      </method>
+      <method name="Void MemberAccessTest_9()" attrs="129">
+        <size>92</size>
+      </method>
+      <method name="Void MemberInitTest()" attrs="129">
+        <size>303</size>
+      </method>
+      <method name="Void MemberInitTest_2()" attrs="129">
+        <size>251</size>
+      </method>
+      <method name="Void MemberInitTest_3()" attrs="129">
+        <size>125</size>
+      </method>
+      <method name="Void MemberInitTest_4()" attrs="129">
+        <size>67</size>
+      </method>
+      <method name="Void MemberInitTest_5()" attrs="129">
+        <size>119</size>
+      </method>
+      <method name="Void ModuloTest()" attrs="129">
+        <size>101</size>
+      </method>
+      <method name="Void ModuloTest_2()" attrs="129">
+        <size>185</size>
+      </method>
+      <method name="Void ModuloTest_3()" attrs="129">
+        <size>130</size>
+      </method>
+      <method name="Void ModuloTest_4()" attrs="129">
+        <size>192</size>
+      </method>
+      <method name="Void ModuloTest_5()" attrs="129">
+        <size>134</size>
+      </method>
+      <method name="Void ModuloTest_6()" attrs="129">
+        <size>201</size>
+      </method>
+      <method name="Void ModuloTest_7()" attrs="129">
+        <size>111</size>
+      </method>
+      <method name="Void MultiplyTest()" attrs="129">
+        <size>132</size>
+      </method>
+      <method name="Void MultiplyTest_2()" attrs="129">
+        <size>185</size>
+      </method>
+      <method name="Void MultiplyTest_3()" attrs="129">
+        <size>134</size>
+      </method>
+      <method name="Void MultiplyTest_4()" attrs="129">
+        <size>195</size>
+      </method>
+      <method name="Void MultiplyTest_5()" attrs="129">
+        <size>138</size>
+      </method>
+      <method name="Void MultiplyTest_6()" attrs="129">
+        <size>203</size>
+      </method>
+      <method name="Void MultiplyTest_7()" attrs="129">
+        <size>111</size>
+      </method>
+      <method name="Void MultiplyTest_8()" attrs="129">
+        <size>199</size>
+      </method>
+      <method name="Void MultiplyCheckedTest()" attrs="129">
+        <size>123</size>
+      </method>
+      <method name="Void MultiplyCheckedTest_2()" attrs="129">
+        <size>195</size>
+      </method>
+      <method name="Void MultiplyCheckedTest_3()" attrs="129">
+        <size>136</size>
+      </method>
+      <method name="Void MultiplyCheckedTest_4()" attrs="129">
+        <size>124</size>
+      </method>
+      <method name="Void MultiplyCheckedTest_5()" attrs="129">
+        <size>127</size>
+      </method>
+      <method name="Void NegateTest()" attrs="129">
+        <size>73</size>
+      </method>
+      <method name="Void NegateTest_2()" attrs="129">
+        <size>93</size>
+      </method>
+      <method name="Void NegateTest_3()" attrs="129">
+        <size>131</size>
+      </method>
+      <method name="Void NegateTest_4()" attrs="129">
+        <size>98</size>
+      </method>
+      <method name="Void NegateTest_5()" attrs="129">
+        <size>142</size>
+      </method>
+      <method name="Void NegateTest_6()" attrs="129">
+        <size>122</size>
+      </method>
+      <method name="Void NegateTest_7()" attrs="129">
+        <size>133</size>
+      </method>
+      <method name="Void NegateTest_8()" attrs="129">
+        <size>98</size>
+      </method>
+      <method name="Void NegateTest_9()" attrs="129">
+        <size>88</size>
+      </method>
+      <method name="Void NegateTestChecked()" attrs="129">
+        <size>92</size>
+      </method>
+      <method name="Void NegateTestChecked_2()" attrs="129">
+        <size>140</size>
+      </method>
+      <method name="Void NegateTestChecked_3()" attrs="129">
+        <size>100</size>
+      </method>
+      <method name="Void NegateTestChecked_4()" attrs="129">
+        <size>89</size>
+      </method>
+      <method name="Void NewArrayInitTest()" attrs="129">
+        <size>93</size>
+      </method>
+      <method name="Void NewArrayInitTest_2()" attrs="129">
+        <size>65</size>
+      </method>
+      <method name="Void NewArrayInitTest_3()" attrs="129">
+        <size>137</size>
+      </method>
+      <method name="Void NewArrayInitTest_4()" attrs="129">
+        <size>121</size>
+      </method>
+      <method name="Void NewArrayInitTest_5()" attrs="129">
+        <size>159</size>
+      </method>
+      <method name="Void NewArrayInitTest_6()" attrs="129">
+        <size>104</size>
+      </method>
+      <method name="Void NewArrayBoundsTest()" attrs="129">
+        <size>124</size>
+      </method>
+      <method name="Void NewArrayBoundsTest_2()" attrs="129">
+        <size>124</size>
+      </method>
+      <method name="Void NewArrayBoundsTest_3()" attrs="129">
+        <size>86</size>
+      </method>
+      <method name="Void NewArrayBoundsTest_4()" attrs="129">
+        <size>83</size>
+      </method>
+      <method name="Void NewTest()" attrs="129">
+        <size>94</size>
+      </method>
+      <method name="Void NewTest_2()" attrs="129">
+        <size>62</size>
+      </method>
+      <method name="Void NewTest_3()" attrs="129">
+        <size>99</size>
+      </method>
+      <method name="Void NewTest_4()" attrs="129">
+        <size>253</size>
+      </method>
+      <method name="Void NewTest_5()" attrs="129">
+        <size>376</size>
+      </method>
+      <method name="Void NewTest_6()" attrs="129">
+        <size>183</size>
+      </method>
+      <method name="Void NewTest_7()" attrs="129">
+        <size>54</size>
+      </method>
+      <method name="Void NotTest()" attrs="129">
+        <size>71</size>
+      </method>
+      <method name="Void NotTest_2()" attrs="129">
+        <size>114</size>
+      </method>
+      <method name="Void NotTest_3()" attrs="129">
+        <size>72</size>
+      </method>
+      <method name="Void NotTest_4()" attrs="129">
+        <size>106</size>
+      </method>
+      <method name="Void NotTest_5()" attrs="129">
+        <size>74</size>
+      </method>
+      <method name="Void NotTest_6()" attrs="129">
+        <size>105</size>
+      </method>
+      <method name="Void NotNullableTest()" attrs="129">
+        <size>115</size>
+      </method>
+      <method name="Void NotNullableTest_2()" attrs="129">
+        <size>135</size>
+      </method>
+      <method name="Void NotNullableTest_3()" attrs="129">
+        <size>131</size>
+      </method>
+      <method name="Void NotNullableTest_4()" attrs="129">
+        <size>150</size>
+      </method>
+      <method name="Void NotNullableTest_5()" attrs="129">
+        <size>149</size>
+      </method>
+      <method name="Void NotEqualTest()" attrs="129">
+        <size>119</size>
+      </method>
+      <method name="Void NotEqualTest_2()" attrs="129">
+        <size>167</size>
+      </method>
+      <method name="Void NotEqualTest_3()" attrs="129">
+        <size>126</size>
+      </method>
+      <method name="Void NotEqualTest_4()" attrs="129">
+        <size>209</size>
+      </method>
+      <method name="Void NotEqualTest_5()" attrs="129">
+        <size>175</size>
+      </method>
+      <method name="Void NotEqualTest_6()" attrs="129">
+        <size>120</size>
+      </method>
+      <method name="Void NotEqualTest_7()" attrs="129">
+        <size>168</size>
+      </method>
+      <method name="Void NotEqualTest_8()" attrs="129">
+        <size>117</size>
+      </method>
+      <method name="Void NotEqualTest_9()" attrs="129">
+        <size>147</size>
+      </method>
+      <method name="Void NotEqualTest_10()" attrs="129">
+        <size>170</size>
+      </method>
+      <method name="Void NotEqualTest_11()" attrs="129">
+        <size>148</size>
+      </method>
+      <method name="Void OrTest()" attrs="129">
+        <size>142</size>
+      </method>
+      <method name="Void OrTest_2()" attrs="129">
+        <size>130</size>
+      </method>
+      <method name="Void OrTest_3()" attrs="129">
+        <size>162</size>
+      </method>
+      <method name="Void OrNullableTest()" attrs="129">
+        <size>383</size>
+      </method>
+      <method name="Void OrNullableTest_2()" attrs="129">
+        <size>187</size>
+      </method>
+      <method name="Void OrNullableTest_3()" attrs="129">
+        <size>177</size>
+      </method>
+      <method name="Void OrNullableTest_4()" attrs="129">
+        <size>198</size>
+      </method>
+      <method name="Void OrElseTest()" attrs="129">
+        <size>98</size>
+      </method>
+      <method name="Void OrElseTest_2()" attrs="129">
+        <size>168</size>
+      </method>
+      <method name="Void ParameterTest()" attrs="129">
+        <size>74</size>
+      </method>
+      <method name="Void ParameterTest_2()" attrs="129">
+        <size>76</size>
+      </method>
+      <method name="Void ParameterTest_3()" attrs="129">
+        <size>74</size>
+      </method>
+      <method name="Void ParameterTest_4()" attrs="129">
+        <size>101</size>
+      </method>
+      <method name="Void QuoteTest()" attrs="129">
+        <size>86</size>
+      </method>
+      <method name="Void QuoteTest_2()" attrs="129">
+        <size>100</size>
+      </method>
+      <method name="Void RightShiftTest()" attrs="129">
+        <size>153</size>
+      </method>
+      <method name="Void RightShiftTest_2()" attrs="129">
+        <size>160</size>
+      </method>
+      <method name="Void RightShiftTest_3()" attrs="129">
+        <size>169</size>
+      </method>
+      <method name="Void RightShiftTest_4()" attrs="129">
+        <size>259</size>
+      </method>
+      <method name="Void RightShiftTest_5()" attrs="129">
+        <size>153</size>
+      </method>
+      <method name="Void RightShiftTest_6()" attrs="129">
+        <size>146</size>
+      </method>
+      <method name="Void SubtractTest()" attrs="129">
+        <size>101</size>
+      </method>
+      <method name="Void SubtractTest_2()" attrs="129">
+        <size>119</size>
+      </method>
+      <method name="Void SubtractTest_3()" attrs="129">
+        <size>131</size>
+      </method>
+      <method name="Void SubtractTest_4()" attrs="129">
+        <size>192</size>
+      </method>
+      <method name="Void SubtractTest_5()" attrs="129">
+        <size>135</size>
+      </method>
+      <method name="Void SubtractTest_6()" attrs="129">
+        <size>161</size>
+      </method>
+      <method name="Void SubtractTest_7()" attrs="129">
+        <size>114</size>
+      </method>
+      <method name="Void SubtractTest_8()" attrs="129">
+        <size>147</size>
+      </method>
+      <method name="Void SubtractTest_9()" attrs="129">
+        <size>143</size>
+      </method>
+      <method name="Void SubtractTest_10()" attrs="129">
+        <size>162</size>
+      </method>
+      <method name="Void SubtractTest_11()" attrs="129">
+        <size>158</size>
+      </method>
+      <method name="Void SubtractCheckedTest()" attrs="129">
+        <size>128</size>
+      </method>
+      <method name="Void SubtractCheckedTest_2()" attrs="129">
+        <size>188</size>
+      </method>
+      <method name="Void SubtractCheckedTest_3()" attrs="129">
+        <size>133</size>
+      </method>
+      <method name="Void SubtractCheckedTest_4()" attrs="129">
+        <size>124</size>
+      </method>
+      <method name="Void TypeAsTest()" attrs="129">
+        <size>81</size>
+      </method>
+      <method name="Void TypeAsTest_2()" attrs="129">
+        <size>145</size>
+      </method>
+      <method name="Void TypeAsTest_3()" attrs="129">
+        <size>86</size>
+      </method>
+      <method name="Void TypeAsTest_4()" attrs="129">
+        <size>114</size>
+      </method>
+      <method name="Void TypeIsTest()" attrs="129">
+        <size>104</size>
+      </method>
+      <method name="Void TypeIsTest_2()" attrs="129">
+        <size>104</size>
+      </method>
+      <method name="Void TypeIsTest_3()" attrs="129">
+        <size>86</size>
+      </method>
+      <method name="Void TypeIsTest_4()" attrs="129">
+        <size>81</size>
+      </method>
+      <method name="Void TypeIsTest_5()" attrs="129">
+        <size>75</size>
+      </method>
+      <method name="Void TypeIsTest_6()" attrs="129">
+        <size>112</size>
+      </method>
+      <method name="Void UnaryPlusTest()" attrs="129">
+        <size>68</size>
+      </method>
+      <method name="Void UnaryPlusTest_2()" attrs="129">
+        <size>48</size>
+      </method>
+      <method name="Void UnaryPlusTest_3()" attrs="129">
+        <size>98</size>
+      </method>
+      <method name="Void UnaryPlusTest_4()" attrs="129">
+        <size>142</size>
+      </method>
+      <method name="Void UnaryPlusTest_5()" attrs="129">
+        <size>141</size>
+      </method>
+      <method name="System.String InstanceMethod(System.String)" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="System.Object InstanceParamsMethod(Int32, System.Object[])" attrs="129">
+        <size>48</size>
+      </method>
+      <method name="Int32 TestInt()" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="T GenericMethod[T](T)" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Void RefMethod(Int32 ByRef)" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
+        <size>80</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>187</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+EmptyDelegate">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Tester+IntDelegate">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ConvertTest_9&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;MemberAccessTest&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;MemberAccessTest_3&gt;c__AnonStorey2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;MemberAccessTest_4&gt;c__AnonStorey3">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;MemberAccessTest_6&gt;c__AnonStorey4">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;MemberAccessTest_9&gt;c__AnonStorey5">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;A&gt;__T,&lt;Value&gt;__T]">
+      <method name="&lt;A&gt;__T get_A()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;Value&gt;__T get_Value()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;A&gt;__T, &lt;Value&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Void LessThanTest_9()" attrs="129">
+        <size>184</size>
+      </method>
+      <method name="Void AssertNodeType(System.Linq.Expressions.LambdaExpression, System.Linq.Expressions.ExpressionType)" attrs="145">
+        <size>57</size>
+      </method>
+    </type>
+    <type name="Tester+EmptyDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Tester+IntDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Void EqualTest_16()" attrs="129">
+        <size>185</size>
+      </method>
+      <method name="Void &lt;EqualTestDelegate_2&gt;m__0()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;EqualTestDelegate_2&gt;m__1()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;EqualTestDelegate_2&gt;m__2()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;EqualTestDelegate_2&gt;m__3()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;EqualTestDelegate_2&gt;m__4()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="System.String &lt;InvokeTest_2&gt;m__5(Int32)" attrs="145">
+        <size>25</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__6(System.Reflection.MethodInfo)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__7(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__8(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__9(Boolean)" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Void NewTest_8()" attrs="129">
+        <size>64</size>
+      </method>
+      <method name="Void CallTest_10()" attrs="129">
+        <size>137</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-02.cs">
+    <type name="M">
+      <method name="Void Foo[T](System.Linq.Expressions.Expression`1[System.Func`2[T,T]])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="System.String Param(System.String)" attrs="145">
+        <size>122</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>173</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M+&lt;Param&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-03.cs">
+    <type name="S`1[T]">
+      <method name="Int32 Test()" attrs="150">
+        <size>139</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-04.cs">
+    <type name="Foo">
+      <method name="Boolean op_GreaterThan(Foo, Foo)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Boolean op_LessThan(Foo, Foo)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Boolean op_Equality(Foo, Foo)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Boolean op_Inequality(Foo, Foo)" attrs="2198">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>495</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Foo op_Addition(Foo, Foo)" attrs="2198">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-05.cs">
+    <type name="C">
+      <method name="Void Assert[T](T, T)" attrs="145">
+        <size>48</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>358</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void AssertNodeType(System.Linq.Expressions.LambdaExpression, System.Linq.Expressions.ExpressionType)" attrs="145">
+        <size>57</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-06.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>53</size>
+      </method>
+      <method name="Int32 Value()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-07.cs">
+    <type name="EmptyDelegate">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="UnsafeDelegate">
+      <method name="Int32* Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Test()" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32* Foo()" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Void M()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Int32 TestInstance()" attrs="129">
+        <size>339</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>583</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="EmptyDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="UnsafeDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32* EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-08.cs">
+    <type name="Foo">
+      <method name="Int32 ThisMethod()" attrs="129">
+        <size>11</size>
+      </method>
+      <method name="Int32 Goo(Boolean)" attrs="134">
+        <size>231</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo+&lt;Goo&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-09.cs">
+    <type name="Mono.C">
+      <method name="Int32 Main()" attrs="150">
+        <size>296</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Mono.C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Mono.C">
+      <method name="Int64[] GetValues()" attrs="145">
+        <size>26</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-10.cs">
+    <type name="Foo`1[T]">
+      <method name="Boolean Contains(T)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>50</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1+&lt;ContainsAll&gt;c__AnonStorey0`1[T,U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="Boolean ContainsAll[U](System.Collections.Generic.IEnumerable`1[U])" attrs="134">
+        <size>200</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-11.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Invalid(Int32)" attrs="134">
+        <size>125</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Invalid&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Other(Int32[])" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-12.cs">
+    <type name="TestCase">
+      <method name="Boolean StaticMethodTakingAnExpression(System.Linq.Expressions.Expression`1[System.Func`2[System.Object,System.Boolean]])" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void DummyToMakeTheStaticsInitialize()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>68</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-13.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>66</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Test&gt;c__Iterator0`1[T]">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>148</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test[T](Int32)" attrs="145">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Test&gt;c__Iterator0`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Test&gt;c__Iterator0`1+&lt;Test&gt;c__AnonStorey1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-14.cs">
+    <type name="Person">
+      <method name="Int32 get_Age()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Age(Int32)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Repro">
+      <method name="Int32 Main()" attrs="150">
+        <size>67</size>
+      </method>
+      <method name="Boolean Test[T](T, System.Linq.Expressions.Expression`1[System.Func`2[T,System.Boolean]])" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Repro+&lt;GetPersons&gt;c__Iterator0`1[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>336</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>69</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Repro">
+      <method name="System.Collections.Generic.IEnumerable`1[T] GetPersons[T](System.Collections.Generic.IEnumerable`1[T], Int32)" attrs="145">
+        <size>37</size>
+      </method>
+    </type>
+    <type name="Repro+&lt;GetPersons&gt;c__Iterator0`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Repro+&lt;GetPersons&gt;c__Iterator0`1+&lt;GetPersons&gt;c__AnonStorey1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-15.cs">
+    <type name="Foo">
+      <method name="Int32 Helper(System.Linq.Expressions.Expression`1[System.Predicate`1[System.Int32]])" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>191</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-16.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>152</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-17.cs">
+    <type name="CompilerCrashTest.QueryCompiler">
+      <method name="D Compile[D](System.Linq.Expressions.Expression`1[D])" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="System.Delegate Compile(System.Linq.Expressions.LambdaExpression)" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-18.cs">
+    <type name="FooBase">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>156</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-19.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="T Value[T]()" attrs="145">
+        <size>86</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-20.cs">
+    <type name="S">
+      <method name="Int32 Main()" attrs="150">
+        <size>226</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="A op_Implicit(S)" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-22.cs">
+    <type name="FieldInfoBug.MonoRuntime">
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FieldInfoBug.GenericClass`1[T]">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>59</size>
+      </method>
+    </type>
+    <type name="FieldInfoBug.GenericClass`1+&lt;GenericClass&gt;c__AnonStorey0[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-23.cs">
+    <type name="Test.OrderBySpecification">
+      <method name="Void .ctor(Expression`1)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Test.RateOrderById">
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>45</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-24.cs">
+    <type name="NotifyingProperty">
+      <method name="Void CreateDependent[TValue](System.Linq.Expressions.Expression`1[System.Func`1[TValue]], System.Func`1[System.Object], System.Linq.Expressions.Expression`1[System.Func`1[System.Object]][])" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="NotifyingPropertyTest">
+      <method name="Void CreateDependent_NotifierNull()" attrs="134">
+        <size>59</size>
+      </method>
+      <method name="Void CreateDependent_DependentsNull()" attrs="134">
+        <size>84</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="NotifyingPropertyTest+&lt;CreateDependent_NotifierNull&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="NotifyingPropertyTest+&lt;CreateDependent_DependentsNull&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="NotifyingPropertyTest">
+      <method name="System.Object &lt;CreateDependent_DependentsNull&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-25.cs">
+    <type name="Foo">
+      <method name="Void OnBaz(IBaz)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void RunOnBaz(System.Action`1[IBaz])" attrs="486">
+        <size>9</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>222</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-26.cs">
+    <type name="A`1[TA]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+B`1[TA,TB]">
+      <method name="Void foo()" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+B`1+C`1[TA,TB,TC]">
+      <method name="Void bar()" attrs="145">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-27.cs">
+    <type name="Node">
+      <method name="System.String get_Name()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Name(System.String)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Node get_Parent()" attrs="2182">
+        <size>27</size>
+      </method>
+      <method name="Void set_Parent(Node)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="System.Collections.Generic.List`1[System.Int32] get_Values()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Values(System.Collections.Generic.List`1[System.Int32])" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>1210</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-28.cs">
+    <type name="Repro">
+      <method name="Void UseField()" attrs="129">
+        <size>70</size>
+      </method>
+      <method name="Void TakeExpression(System.Linq.Expressions.Expression`1[System.Action])" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-29.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>217</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-etree-30.cs">
+    <type name="C">
+      <method name="System.Action`2[System.Object,System.Object] get_TappedCallback()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_TappedCallback(System.Action`2[System.Object,System.Object])" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="System.String Create[T1,T2](System.Linq.Expressions.Expression`1[System.Func`2[T1,T2]])" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>76</size>
+      </method>
+      <method name="Void .ctor(Action`2)" attrs="6278">
+        <size>76</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-01.cs">
+    <type name="SimpleTest">
+      <method name="System.String Prefix(System.String, System.String)" attrs="150">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Int32 Main()" attrs="150">
+        <size>185</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-02.cs">
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.M">
+      <method name="Void Test2()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-03.cs">
+    <type name="A.A">
+      <method name="Int32 Foo(Int32)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo(Int32, System.String)" attrs="150">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="B.X">
+      <method name="Int32 Foo(Int32)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo(Int32, Boolean)" attrs="150">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="C.F">
+      <method name="Boolean Foo(Byte)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="C.D.F">
+      <method name="Int32 Foo(Int32)" attrs="150">
+        <size>11</size>
+      </method>
+      <method name="Void TestX()" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="C.M">
+      <method name="Int32 Foo(Int32)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>84</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-04.cs">
+    <type name="A.Test">
+      <method name="System.String Test_1(Boolean)" attrs="150">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="B.M">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-05.cs">
+    <type name="A.Test_A">
+      <method name="System.String Test_1(System.String)" attrs="150">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="A.Test_B">
+      <method name="System.String Test_2(System.String)" attrs="150">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="B.M">
+      <method name="Void Main()" attrs="150">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-06.cs">
+    <type name="Gen">
+      <method name="T Test_1[T](T)" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="System.String Test_1[T](System.String)" attrs="150">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="B.M">
+      <method name="Void Main()" attrs="150">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-07.cs">
+    <type name="E">
+      <method name="Void To(IA)" attrs="147">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="Void ToReadOnly[T](System.Collections.Generic.IEnumerable`1[T])" attrs="147">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Test(System.Collections.Generic.IEnumerable`1[System.Boolean])" attrs="150">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-08.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-09.cs">
+    <type name="Test">
+      <method name="Void Foo[T](System.String)" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-10.cs">
+    <type name="AExtensions">
+      <method name="Int32 Round(Double)" attrs="150">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="BExtensions">
+      <method name="T GetBy[T](T[], Double)" attrs="150">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-11.cs">
+    <type name="Test">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Lol">
+      <method name="Boolean OneEleven(System.Object)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-12.cs">
+    <type name="Program">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>64</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ChatClient">
+      <method name="Void Say(System.String, System.String)" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ChatExtensions">
+      <method name="Void Say(ChatClient, System.String, System.Collections.Specialized.StringCollection)" attrs="150">
+        <size>68</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-13.cs">
+    <type name="Foo">
+      <method name="Void Main()" attrs="150">
+        <size>24</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[T] Reverse[T](System.Collections.Generic.IEnumerable`1[T])" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-14.cs">
+    <type name="C">
+      <method name="Void Foo(IA)" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void Bar[U](IA)" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void Foo[T](IA)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-15.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="TAttribute GetCustomAttribute[TAttribute](System.Reflection.ICustomAttributeProvider)" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="TAttribute[] GetCustomAttributes[TAttribute](System.Reflection.ICustomAttributeProvider)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-16.cs">
+    <type name="Rocks">
+      <method name="Boolean Extension(System.String)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Boolean Extension(D)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.String Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void add_e(D)" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void remove_e(D)" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="System.String get_Item(Int32)" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="System.String get_Property()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>45</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-17.cs">
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>46</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-18.cs">
+    <type name="Foo">
+      <method name="Boolean get_IsBar()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FooExt">
+      <method name="Boolean IsBar(Foo)" attrs="150">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Repro">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-19.cs">
+    <type name="Rocks">
+      <method name="System.String Test_1(System.String)" attrs="150">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>173</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+D">
+      <method name="System.String Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Rocks">
+      <method name="Int32 Test_2[T](System.Collections.Generic.IEnumerable`1[T])" attrs="150">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="Test+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-20.cs">
+    <type name="Outer.Inner.Test">
+      <method name="Void M(I)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Outer.ExtensionMethods">
+      <method name="Void AddRange[T](I, System.Collections.Generic.IEnumerable`1[T])" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-21.cs">
+    <type name="Outer.Inner.Test">
+      <method name="Void M(I)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="External.ExtensionMethods">
+      <method name="Void AddRange(I)" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-22.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-23.cs">
+    <type name="T">
+      <method name="Void A(System.String, Int32)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-24.cs">
+    <type name="Bar">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-25.cs">
+    <type name="Bar">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-26.cs">
+    <type name="test.TypeExtensions">
+      <method name="Boolean IsNullable(System.Type)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="testmono.MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-27.cs">
+    <type name="Bar.Program">
+      <method name="Void Main()" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo.Extensions">
+      <method name="System.String AsString(System.Collections.Generic.IList`1[System.Byte])" attrs="150">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Bar.Program">
+      <method name="System.String Pan(Byte[])" attrs="147">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-28.cs">
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Extensions">
+      <method name="Boolean IsFoo(Foo)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Boolean IsBar(Bar)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-29.cs">
+    <type name="My">
+      <method name="Void set_ContentTransferEncoding(Boolean)" attrs="2177">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>58</size>
+      </method>
+      <method name="Int32 ContentTransferEncoding[T](My)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 ContentTransferEncoding(My)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-30.cs">
+    <type name="Test">
+      <method name="Int32 get_First()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Test()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] GetEnumerator()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-31.cs">
+    <type name="N.S">
+      <method name="Void Map[T](Int32, System.Func`2[T,System.String])" attrs="147">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="N2.S2">
+      <method name="Void Map(Int32, Int32)" attrs="147">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="M.C">
+      <method name="Void Main()" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-32.cs">
+    <type name="A">
+      <method name="Int32 get_Count()" attrs="2180">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="G`1[T]">
+      <method name="Void Test()" attrs="129">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Extensions">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Extensions">
+      <method name="Int32 Count(System.Collections.IEnumerable)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-33.cs">
+    <type name="Prop">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="HelperExtensions">
+      <method name="Void Foo(I, I)" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="I get_Prop()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void Test()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32[] get_Loc()" attrs="2182">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-34.cs">
+    <type name="Program">
+      <method name="Void Foo(System.Object)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-35.cs">
+    <type name="A">
+      <method name="Void Test(Int32)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-36.cs">
+    <type name="S">
+      <method name="System.String get_Prop()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="Int32 Prop(S)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 Prop(S2)" attrs="150">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-37.cs">
+    <type name="S">
+      <method name="Void Extension(A, System.String, Boolean)" attrs="150">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void Extension(System.String)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void TestMethod(System.Action`1[System.Boolean])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 TestMethod(System.Action`1[System.String])" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>46</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-38.cs">
+    <type name="Repro2.Color">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>38</size>
+      </method>
+    </type>
+    <type name="Repro2.MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Repro2.ExtensionMethods">
+      <method name="Repro2.Color Transparent(Repro2.Color)" attrs="150">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-39.cs">
+    <type name="Extra.S">
+      <method name="Int32 Prefix(System.String, System.String)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="SimpleTest">
+      <method name="Int32 Prefix(System.String, System.String, Boolean)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Int32 Main()" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-40.cs">
+    <type name="N.Extensions.s">
+      <method name="Void ShouldEqual(System.String, System.String, System.String, System.String, System.String)" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="N.Main.C">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-41.cs">
+    <type name="TT">
+      <method name="Void Test[U](U)" attrs="150">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TT">
+      <method name="Void Method[T](System.Collections.Generic.IEnumerable`1[T], System.Func`2[T,System.Boolean])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Boolean &lt;Test`1&gt;m__0[U](System.String)" attrs="145">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-42.cs">
+    <type name="C">
+      <method name="Void Foo(Int32)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Foo()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-43.cs">
+    <type name="AdapterType">
+      <method name="Void DoSomething()" attrs="452">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Extensions">
+      <method name="Void DoSomething(AdapterType)" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Dummy">
+      <method name="Boolean Refresh()" attrs="454">
+        <size>18</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-44.cs">
+    <type name="UnusedFieldWarningTest2.Repro">
+      <method name="Void Foo()" attrs="129">
+        <size>18</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>23</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-45.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-46.cs">
+    <type name="ExtensionTest.Two.AxFunc`2[T1,TResult]">
+      <method name="TResult Invoke(T1)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="ExtensionTest.MyClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="ExtensionTest.Two.Extensions">
+      <method name="Boolean Contains[T](System.Collections.Generic.IEnumerable`1[T], T)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Boolean All[T](System.Collections.Generic.IEnumerable`1[T], ExtensionTest.Two.AxFunc`2[T,System.Boolean])" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="ExtensionTest.Two.AxFunc`2[T1,TResult]">
+      <method name="System.IAsyncResult BeginInvoke(T1, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="TResult EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="ExtensionTest.MyClass">
+      <method name="Boolean IsCharacters(System.String, Char[])" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="Boolean Contains(System.String, System.String, System.StringComparison)" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-exmethod-47.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="Void Foo(Int32)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Extension">
+      <method name="Void Foo(S)" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-fixedbuffer-01.cs">
+    <type name="TestNew">
+      <method name="Void SetTest()" attrs="134">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Test()" attrs="145">
+        <size>368</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-fixedbuffer-02.cs">
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-fixedbuffer-03.cs">
+    <type name="Bug.RedSkyTimeCode">
+      <method name="Void CopyTo(Bug.xxx*)" attrs="134">
+        <size>102</size>
+      </method>
+      <method name="Void Convert(Bug.xxx*, UInt64*)" attrs="150">
+        <size>94</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-fixedbuffer-04.cs">
+    <type name="aClass">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-fixedbuffer-05.cs">
+    <type name="S2">
+      <method name="Void Test()" attrs="134">
+        <size>42</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-fixedbuffer-06.cs">
+    <type name="Bug.Demo">
+      <method name="Boolean Fixed()" attrs="129">
+        <size>23</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>88</size>
+      </method>
+      <method name="Boolean Foo(Int32[])" attrs="145">
+        <size>52</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-fixedbuffer-07.cs">
+    <type name="C">
+      <method name="Void Goo()" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-fixedbuffer-08.cs">
+    <type name="A">
+      <method name="Int32 Main()" attrs="150">
+        <size>198</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-fixedbuffer-09.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>151</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-fixedbuffer-10.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestStruct">
+      <method name="TestStruct get_Default()" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-friend-01.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-friend-02.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-friend-03.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-friend-04.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-friend-05.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-friend-06.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-friend-07.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-friend-08.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-friend-09.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-friend-10.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-friend-11.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-friend-12.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-friend-13.cs">
+    <type name="B">
+      <method name="Void Test()" attrs="197">
+        <size>2</size>
+      </method>
+      <method name="Void Test_2()" attrs="195">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-friend-14.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-implicitarray-01.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>329</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-implicitarray-02.cs">
+    <type name="MyString">
+      <method name="System.String op_Implicit(MyString)" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>63</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-implicitarray-03.cs">
+    <type name="InferArrayType">
+      <method name="Void foo(System.Func`2[System.Linq.Expressions.Expression,System.Boolean][])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void bar(System.Action`1[System.Linq.Expressions.Expression], System.Func`2[System.Linq.Expressions.Expression,System.Boolean])" attrs="150">
+        <size>45</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="InferArrayType+&lt;bar&gt;c__AnonStorey0">
+      <method name="Boolean &lt;&gt;m__0(System.Linq.Expressions.Expression)" attrs="131">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-initialize-01.cs">
+    <type name="MyClass">
+      <method name="Int32 get_Answer()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Answer(Int32)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>85</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-initialize-02.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>1280</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+Point">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+Line">
+      <method name="Void .ctor()" attrs="6278">
+        <size>29</size>
+      </method>
+    </type>
+    <type name="Test+Rectangle">
+      <method name="Void .ctor()" attrs="6278">
+        <size>51</size>
+      </method>
+    </type>
+    <type name="Test+Library">
+      <method name="Void .ctor()" attrs="6278">
+        <size>54</size>
+      </method>
+    </type>
+    <type name="Test+Thing">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+Box">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-initialize-03.cs">
+    <type name="Data">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void set_Prop(Data)" attrs="2193">
+        <size>2</size>
+      </method>
+      <method name="System.Object Foo()" attrs="134">
+        <size>23</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-initialize-04.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>34</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-initialize-05.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>271</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-initialize-06.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>57</size>
+      </method>
+      <method name="Void Foo(Point ByRef)" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-initialize-07.cs">
+    <type name="A">
+      <method name="System.String get_Name()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Name(System.String)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Boolean Matches(System.String)" attrs="134">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Int32 Main()" attrs="150">
+        <size>50</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-initialize-08.cs">
+    <type name="T">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Z[] get_Prop()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Prop(Z[])" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>71</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>71</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-initialize-09.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>66</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-initialize-10.cs">
+    <type name="Foo">
+      <method name="Int32 get_P()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_P(Int32)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Int32 Main()" attrs="150">
+        <size>51</size>
+      </method>
+      <method name="Boolean Do(Foo)" attrs="145">
+        <size>104</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-initialize-11.cs">
+    <type name="InlineAssignmentTest.Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="InlineAssignmentTest.MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-initialize-12.cs">
+    <type name="C">
+      <method name="Void set_Foo(Int32)" attrs="2246">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void set_Foo(Int32)" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void set_Foo(Int32)" attrs="2193">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-initialize-13.cs">
+    <type name="EventInitializerTest">
+      <method name="Void add_a(System.Action)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_a(System.Action)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void add_b(System.Action)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_b(System.Action)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void add_c(System.Action)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_c(System.Action)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>66</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-initialize-14.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>154</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-01.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+ArrayReadOnlyList`1[T]">
+      <method name="T get_Item(Int32)" attrs="2182">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C+ArrayReadOnlyList`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>143</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+ArrayReadOnlyList`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="134">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-02.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]] Test()" attrs="129">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.Generic.KeyValuePair`2[System.String,System.Object] System.Collections.Generic.IEnumerator&lt;System.Collections.Generic.KeyValuePair&lt;string,object&gt;&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-03.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Annotations&gt;c__Iterator0`1[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>204</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>69</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Annotations&gt;c__Iterator1">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>232</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>64</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.Generic.IEnumerable`1[T] Annotations[T]()" attrs="134">
+        <size>30</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.Object] Annotations(System.Type)" attrs="134">
+        <size>37</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Annotations&gt;c__Iterator0`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Annotations&gt;c__Iterator1">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Annotations&gt;c__Iterator0`1[T]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Annotations&gt;c__Iterator1">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-04.cs">
+    <type name="TestClass">
+      <method name="Void ToString(System.Object)" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void Test()" attrs="134">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestClass+&lt;TestEnumerator&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>38</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestClass">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Object] TestEnumerator()" attrs="134">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="TestClass+&lt;TestEnumerator&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-05.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="Void CreateItem[G]()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestRoutine&gt;c__Iterator0`1[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>197</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>69</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.Generic.IEnumerable`1[T] TestRoutine[T](System.Collections.Generic.IEnumerable`1[T], Foo`1[T])" attrs="150">
+        <size>37</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestRoutine&gt;c__Iterator0`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-06.cs">
+    <type name="Mono.Rocks.Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>128</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Mono.Rocks.Sequence+&lt;CreateUnfoldrIterator&gt;c__Iterator0`2[TSource,TResult]">
+      <method name="TResult System.Collections.Generic.IEnumerator&lt;TResult&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>192</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Mono.Rocks.KeyValuePair">
+      <method name="System.Nullable`1[System.Collections.Generic.KeyValuePair`2[TKey,TValue]] Just[TKey,TValue](TKey, TValue)" attrs="150">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="Mono.Rocks.Sequence">
+      <method name="System.Collections.Generic.IEnumerable`1[TResult] Unfoldr[TSource,TResult](TSource, System.Func`2[TSource,System.Nullable`1[System.Collections.Generic.KeyValuePair`2[TResult,TSource]]])" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[TResult] CreateUnfoldrIterator[TSource,TResult](TSource, System.Func`2[TSource,System.Nullable`1[System.Collections.Generic.KeyValuePair`2[TResult,TSource]]])" attrs="145">
+        <size>44</size>
+      </method>
+    </type>
+    <type name="Mono.Rocks.Sequence+&lt;CreateUnfoldrIterator&gt;c__Iterator0`2[TSource,TResult]">
+      <method name="System.Collections.Generic.IEnumerator`1[TResult] System.Collections.Generic.IEnumerable&lt;TResult&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Mono.Rocks.Test">
+      <method name="System.Nullable`1[System.Collections.Generic.KeyValuePair`2[System.Int32,System.Int32]] &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>37</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-07.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MySystem">
+      <method name="Void .ctor()" attrs="6278">
+        <size>35</size>
+      </method>
+    </type>
+    <type name="MySystem+&lt;&gt;c__Iterator0">
+      <method name="System.String System.Collections.Generic.IEnumerator&lt;string&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>197</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>64</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void TestFunction(System.Collections.Generic.IEnumerable`1[System.String])" attrs="150">
+        <size>36</size>
+      </method>
+    </type>
+    <type name="MySystem">
+      <method name="System.Collections.Generic.IEnumerable`1[System.String] get_Items()" attrs="2182">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="MySystem+&lt;&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.String] System.Collections.Generic.IEnumerable&lt;string&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-08.cs">
+    <type name="App">
+      <method name="Int32 Main()" attrs="150">
+        <size>137</size>
+      </method>
+      <method name="T TestType[T]()" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="System.Object TestType(System.Type)" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="App+&lt;QueryEnumerable&gt;c__Iterator0`1[T]">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>91</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="App">
+      <method name="System.Collections.IEnumerable QueryEnumerable[T]()" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="App+&lt;QueryEnumerable&gt;c__Iterator0`1[T]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-09.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>89</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Create&gt;c__Iterator0`1[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>137</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.Generic.IEnumerable`1[T] Create[T](T[,])" attrs="145">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Create&gt;c__Iterator0`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-10.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>185</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;FromTo&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>110</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] FromTo(Int32, Int32)" attrs="145">
+        <size>44</size>
+      </method>
+    </type>
+    <type name="Test+&lt;FromTo&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-11.cs">
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="System.String get_Name()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Name(System.String)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Collection`1[T]">
+      <method name="Void Add(T)" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="BarCollection">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>157</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Collection`1+&lt;GetEnumerator&gt;c__Iterator0[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>184</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>64</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Collection`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] GetEnumerator()" attrs="486">
+        <size>22</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-12.cs">
+    <type name="H">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="H+&lt;Merge&gt;c__Iterator0`1[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>124</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="H">
+      <method name="System.Collections.Generic.IEnumerable`1[T] Merge[T](System.Collections.Generic.IEnumerator`1[T])" attrs="150">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="H+&lt;Merge&gt;c__Iterator0`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-13.cs">
+    <type name="C`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>63</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1+&lt;Filter&gt;c__Iterator0[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>225</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>83</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1[T]">
+      <method name="System.Collections.Generic.IEnumerable`1[T] Filter(System.Func`2[T,System.Boolean])" attrs="134">
+        <size>37</size>
+      </method>
+    </type>
+    <type name="C`1+&lt;Filter&gt;c__Iterator0[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+    </type>
+    <type name="C`1[T]">
+      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="134">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="C`1+&lt;Filter&gt;c__Iterator0[T]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-14.cs">
+    <type name="A">
+      <method name="Int32 get_BaseM()" attrs="2500">
+        <size>10</size>
+      </method>
+      <method name="Void set_BaseM(Int32)" attrs="2500">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void set_BaseM(Int32)" attrs="2244">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="Int32 &lt;GetHashCode&gt;__BaseCallProxy0()" attrs="129">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void set_BaseM(Int32)" attrs="2244">
+        <size>12</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>145</size>
+      </method>
+      <method name="Int32 &lt;get_BaseM&gt;__BaseCallProxy0()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void &lt;set_BaseM&gt;__BaseCallProxy1(Int32)" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S+&lt;GetIt&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>82</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] GetIt()" attrs="134">
+        <size>35</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] GetIt()" attrs="129">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="S+&lt;GetIt&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>93</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S+&lt;GetIt&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-15.cs">
+    <type name="C`1[TFirst]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1+VSlot`1[TFirst,T]">
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>130</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1+&lt;GetEnumerable&gt;c__Iterator0`1[TFirst,V]">
+      <method name="V System.Collections.Generic.IEnumerator&lt;V&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>189</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>69</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1[TFirst]">
+      <method name="System.Collections.Generic.IEnumerable`1[V] GetEnumerable[V](System.Collections.Generic.IEnumerable`1[C`1+VSlot`1[TFirst,V]])" attrs="131">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="C`1+&lt;GetEnumerable&gt;c__Iterator0`1[TFirst,V]">
+      <method name="System.Collections.Generic.IEnumerator`1[V] System.Collections.Generic.IEnumerable&lt;V&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-16.cs">
+    <type name="Test.Base">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Derived">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.SpecialDerived">
+      <method name="Void Main()" attrs="150">
+        <size>65</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Base+&lt;GetStuff&gt;c__Iterator0">
+      <method name="Test.Base System.Collections.Generic.IEnumerator&lt;Test.Base&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>77</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Base">
+      <method name="System.Collections.Generic.IEnumerable`1[Test.Base] GetStuff(Int32)" attrs="454">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="Test.Derived">
+      <method name="System.Collections.Generic.IEnumerable`1[Test.Base] GetStuff(Int32)" attrs="198">
+        <size>37</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[Test.Base] &lt;GetStuff&gt;__BaseCallProxy0(Int32)" attrs="129">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test.SpecialDerived">
+      <method name="System.Collections.Generic.IEnumerable`1[Test.Base] GetStuff(Int32)" attrs="198">
+        <size>37</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[Test.Base] &lt;GetStuff&gt;__BaseCallProxy0(Int32)" attrs="129">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test.Base+&lt;GetStuff&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[Test.Base] System.Collections.Generic.IEnumerable&lt;Test.Base&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="Test.Derived+&lt;GetStuff&gt;c__Iterator0">
+      <method name="Test.Base System.Collections.Generic.IEnumerator&lt;Test.Base&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>195</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>69</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[Test.Base] System.Collections.Generic.IEnumerable&lt;Test.Base&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.SpecialDerived+&lt;GetStuff&gt;c__Iterator0">
+      <method name="Test.Base System.Collections.Generic.IEnumerator&lt;Test.Base&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>195</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>69</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[Test.Base] System.Collections.Generic.IEnumerable&lt;Test.Base&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Base+&lt;GetStuff&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Test.Derived+&lt;GetStuff&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Test.SpecialDerived+&lt;GetStuff&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-17.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestMethod&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>37</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] TestMethod()" attrs="134">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestMethod&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-18.cs">
+    <type name="c">
+      <method name="Void Main()" attrs="150">
+        <size>57</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="c+&lt;func&gt;c__Iterator0">
+      <method name="Char System.Collections.Generic.IEnumerator&lt;char&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>78</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="c">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Char] func()" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="c+&lt;func&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Char] System.Collections.Generic.IEnumerable&lt;char&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-19.cs">
+    <type name="IEnumerableTransform">
+      <method name="Int32 Main()" attrs="150">
+        <size>64</size>
+      </method>
+    </type>
+    <type name="IEnumerableTransform+EmitterFunc`1[TOut]">
+      <method name="Void Invoke(TOut ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="IEnumerableTransform+&lt;Transform&gt;c__Iterator0`1[TOut]">
+      <method name="TOut System.Collections.Generic.IEnumerator&lt;TOut&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>203</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>69</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="IEnumerableTransform+&lt;Emit&gt;c__AnonStorey1`1[TOut]">
+      <method name="Void &lt;&gt;m__0(TOut ByRef)" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="IEnumerableTransform+&lt;Transform&gt;c__Iterator0`1[TOut]">
+      <method name="System.Collections.Generic.IEnumerator`1[TOut] System.Collections.Generic.IEnumerable&lt;TOut&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+    </type>
+    <type name="IEnumerableTransform">
+      <method name="System.Collections.Generic.IEnumerable`1[TOut] Transform[TOut](System.Collections.Generic.IEnumerable`1[System.Int32], EmitterFunc`1)" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="EmitterFunc`1 Emit[TOut](TOut)" attrs="150">
+        <size>34</size>
+      </method>
+    </type>
+    <type name="IEnumerableTransform+EmitterFunc`1[TOut]">
+      <method name="System.IAsyncResult BeginInvoke(TOut ByRef, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(TOut ByRef, System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="IEnumerableTransform+&lt;Transform&gt;c__Iterator0`1[TOut]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-20.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>72</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetAll&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>77</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerable GetAll()" attrs="145">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetAll&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-21.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>72</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Void &lt;&gt;__Finally0()" attrs="129">
+        <size>29</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>150</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>57</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test()" attrs="129">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-22.cs">
+    <type name="D">
+      <method name="Void Dispose()" attrs="486">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>78</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>74</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test()" attrs="129">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-23.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>180</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>271</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_2&gt;c__Iterator1">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>200</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey2">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_2&gt;c__Iterator1+&lt;Test_2&gt;c__AnonStorey3">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test()" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test_2()" attrs="145">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_2&gt;c__Iterator1">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_2&gt;c__Iterator1+&lt;Test_2&gt;c__AnonStorey3">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_2&gt;c__Iterator1">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-24.cs">
+    <type name="B">
+      <method name="Void Dispose()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void DoSomething()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>71</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>170</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>53</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void &lt;&gt;__Finally0()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test()" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-25.cs">
+    <type name="Test.Program">
+      <method name="Void Main()" attrs="150">
+        <size>61</size>
+      </method>
+    </type>
+    <type name="Test.Program+&lt;Test&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>143</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>53</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void &lt;&gt;__Finally0()" attrs="129">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Program">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Object] Test()" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Test.Program+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-26.cs">
+    <type name="Test.Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>51</size>
+      </method>
+    </type>
+    <type name="Test.Program+&lt;Test&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>72</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Program">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Object] Test()" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Test.Program+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-27.cs">
+    <type name="CompilerBug">
+      <method name="Void Main()" attrs="150">
+        <size>61</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CompilerBug+&lt;Foo&gt;c__Iterator0">
+      <method name="System.String System.Collections.Generic.IEnumerator&lt;string&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>161</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CompilerBug">
+      <method name="System.Collections.Generic.IEnumerable`1[System.String] Foo()" attrs="145">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="CompilerBug+&lt;Foo&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.String] System.Collections.Generic.IEnumerable&lt;string&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-28.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+&lt;Test&gt;c__Iterator0">
+      <method name="System.String System.Collections.Generic.IEnumerator&lt;string&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>178</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey2">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>50</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="System.Collections.Generic.IEnumerable`1[System.String] Test(B)" attrs="134">
+        <size>37</size>
+      </method>
+    </type>
+    <type name="A+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.String] System.Collections.Generic.IEnumerable&lt;string&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-29.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Test2&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>21</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test2()" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Test2&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-30.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test()" attrs="134">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M+&lt;Test&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>101</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>57</size>
+      </method>
+    </type>
+    <type name="M+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="M+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-31.cs">
+    <type name="B">
+      <method name="System.Object Foo(System.Object)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>62</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.UInt16] Test()" attrs="129">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="UInt16 System.Collections.Generic.IEnumerator&lt;ushort&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>81</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.UInt16] System.Collections.Generic.IEnumerable&lt;ushort&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="System.Object &lt;&gt;m__0(System.String)" attrs="131">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-32.cs">
+    <type name="TestGoto">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>71</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.Boolean] setX()" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.Boolean] test()" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGoto+&lt;setX&gt;c__Iterator0">
+      <method name="Boolean System.Collections.Generic.IEnumerator&lt;bool&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>115</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>53</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Boolean] System.Collections.Generic.IEnumerable&lt;bool&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="Void &lt;&gt;__Finally0()" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGoto+&lt;test&gt;c__Iterator1">
+      <method name="Boolean System.Collections.Generic.IEnumerator&lt;bool&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>189</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>69</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Boolean] System.Collections.Generic.IEnumerable&lt;bool&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGoto+&lt;setX&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="TestGoto+&lt;test&gt;c__Iterator1">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-iter-33.cs">
+    <type name="Fun`2[A1,R]">
+      <method name="R Invoke(A1)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="MyTest">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>99</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[Rr] Map[Aa,Af,Rf,Rr](Fun`2[Af,Rf], System.Collections.Generic.IEnumerable`1[Aa])" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] FromTo(Int32, Int32)" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyTest+&lt;Map&gt;c__Iterator0`4[Aa,Af,Rf,Rr]">
+      <method name="Rr System.Collections.Generic.IEnumerator&lt;Rr&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>215</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>69</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[Rr] System.Collections.Generic.IEnumerable&lt;Rr&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyTest+&lt;FromTo&gt;c__Iterator1">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>125</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Fun`2[A1,R]">
+      <method name="System.IAsyncResult BeginInvoke(A1, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="R EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="MyTest+&lt;Map&gt;c__Iterator0`4[Aa,Af,Rf,Rr]">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="MyTest+&lt;FromTo&gt;c__Iterator1">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="MyTest">
+      <method name="System.String &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-01.cs">
+    <type name="IntFunc">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="VoidFunc">
+      <method name="Void Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>328</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6273">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0(Int32)" attrs="131">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="IntFunc">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="VoidFunc">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__2(Int32)" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-02.cs">
+    <type name="funcs">
+      <method name="System.String Invoke(System.String)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="funci">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Foo(funci)" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Void Foo(funcs)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="funcs">
+      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="funci">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.String &lt;Main&gt;m__0(System.String)" attrs="145">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-03.cs">
+    <type name="Func`2[TArg0,TResult]">
+      <method name="TResult Invoke(TArg0)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Demo">
+      <method name="Y F[X,Y](Int32, X, Func`2[X,Y])" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>62</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Func`2[TArg0,TResult]">
+      <method name="System.IAsyncResult BeginInvoke(TArg0, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="TResult EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Demo">
+      <method name="System.TimeSpan &lt;Main&gt;m__0(System.String)" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-04.cs">
+    <type name="Func`2[TArg0,TResult]">
+      <method name="TResult Invoke(TArg0)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Demo">
+      <method name="Z F[X,Y,Z](X, Func`2[X,Y], Func`2[Y,Z])" attrs="145">
+        <size>22</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>116</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Func`2[TArg0,TResult]">
+      <method name="System.IAsyncResult BeginInvoke(TArg0, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="TResult EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Demo">
+      <method name="System.TimeSpan &lt;Main&gt;m__0(System.String)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="Double &lt;Main&gt;m__1(System.TimeSpan)" attrs="145">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-05.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>147</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+di">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+ds">
+      <method name="System.String Invoke(System.String)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+db">
+      <method name="Boolean Invoke(Boolean)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="System.String &lt;&gt;m__0(System.String)" attrs="131">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey1">
+      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="131">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Boolean M(db)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="System.String M(ds)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="Int32 M(di)" attrs="145">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="C+di">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+ds">
+      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+db">
+      <method name="System.IAsyncResult BeginInvoke(Boolean, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Boolean EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.String &lt;Main&gt;m__0(System.String)" attrs="145">
+        <size>38</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>38</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-06.cs">
+    <type name="TestClass">
+      <method name="T And(T, T)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="F And(T, F)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="F And(F, T)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="F And(F, F)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="T Or(T, T)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="T Or(T, F)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="T Or(F, T)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="F Or(F, F)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="F Not(T)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="T Not(F)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Void StopTrue(T)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestClass+DT">
+      <method name="Void Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestClass+DF">
+      <method name="Void Invoke(F)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestClass+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestClass+&lt;Main&gt;c__AnonStorey0+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestClass+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0(T)" attrs="131">
+        <size>38</size>
+      </method>
+    </type>
+    <type name="TestClass+&lt;Main&gt;c__AnonStorey0+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0(F)" attrs="131">
+        <size>77</size>
+      </method>
+    </type>
+    <type name="TestClass">
+      <method name="Void P(DT)" attrs="145">
+        <size>27</size>
+      </method>
+      <method name="Void P(DF)" attrs="145">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="TestClass+DT">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestClass+DF">
+      <method name="System.IAsyncResult BeginInvoke(F, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestClass">
+      <method name="Void &lt;Main&gt;m__0(F)" attrs="145">
+        <size>31</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-07.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="Void Invoke(Boolean)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Test(D)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(System.Object, D)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(D, D)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test2(System.Object, E)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>208</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="System.IAsyncResult BeginInvoke(Boolean, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__1()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__2()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__3()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__4()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__5(Boolean)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-08.cs">
+    <type name="C">
+      <method name="Void Test[T,R](System.Func`2[T,R])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>344</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2(Int32)" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__3(Int32)" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__4(Int32)" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__5(Int32)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__6(Int32)" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-09.cs">
+    <type name="Func`1[TD]">
+      <method name="TD Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Func`2[TA,TR]">
+      <method name="TR Invoke(TA)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>114</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[T] Test[T](T)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[T] Test[T](Func`1[T])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[T] Test2[T](Func`2[T,T])" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Func`1[TD]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="TD EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Func`2[TA,TR]">
+      <method name="System.IAsyncResult BeginInvoke(TA, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="TR EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.String &lt;Main&gt;m__0()" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__1()" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__2(System.String)" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-10.cs">
+    <type name="C">
+      <method name="Void Foo[TCollection,TSource](System.Func`2[TCollection[],System.Collections.Generic.IEnumerable`1[TSource]])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>98</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Foo[TSource](System.Collections.Generic.IEnumerable`1[TSource])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Foo[TCollection,TSource](System.Collections.Generic.IEnumerable`1[TSource], System.Func`2[TSource,System.Collections.Generic.IEnumerable`1[TCollection]])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Foo[TCollection,TSource](System.Collections.Generic.IEnumerable`1[TSource], System.Func`3[TSource,TCollection[],System.Collections.Generic.IEnumerable`1[TCollection]])" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__0(Int32)" attrs="131">
+        <size>15</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__1(Int32, Int32[])" attrs="131">
+        <size>15</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__2(Int32[])" attrs="131">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-11.cs">
+    <type name="Pair`2[T1,T2]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Group`2[T1,T2]">
+      <method name="Pair`2[T1,T2] Invoke(T1)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Foo[TInput,TValue,TIntermediate](Group`2[TInput,TValue], System.Func`2[TValue,Group`2[TInput,TIntermediate]])" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="E`1[TI]">
+      <method name="Void Rep1[TV](Group`2[TI,TV])" attrs="134">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="E`1+&lt;Rep1&gt;c__AnonStorey0`1[TI,TV]">
+      <method name="Group`2[TI,TV] &lt;&gt;m__0(TV)" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Group`2[T1,T2]">
+      <method name="System.IAsyncResult BeginInvoke(T1, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Pair`2[T1,T2] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-12.cs">
+    <type name="Func`1[TA]">
+      <method name="Void Invoke(TA)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Demo">
+      <method name="Void F[T](T[], T, Func`1[T])" attrs="145">
+        <size>43</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>78</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Demo+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0(Int32)" attrs="131">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Func`1[TA]">
+      <method name="System.IAsyncResult BeginInvoke(TA, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-13.cs">
+    <type name="TestUnary">
+      <method name="Void Foo(System.Action`1[System.Int32])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Bar()" attrs="145">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Foo(System.Action`1[System.String])" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="T Foo[T](System.Func`2[System.String,T])" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="System.String Bar()" attrs="145">
+        <size>43</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>77</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestUnary">
+      <method name="Void &lt;Bar&gt;m__0(Int32)" attrs="145">
+        <size>6</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="System.String &lt;Bar&gt;m__0(System.String)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__1(System.String)" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__2(System.String)" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-14.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Foo[T]()" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="T &lt;Foo`1&gt;m__0[T](T)" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-15.cs">
+    <type name="Repro">
+      <method name="Int32 Main()" attrs="150">
+        <size>128</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Enumerable+&lt;Sum&gt;c__AnonStorey0`1[TSource]">
+      <method name="Int32 &lt;&gt;m__0(Int32, TSource)" attrs="131">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Enumerable">
+      <method name="Int32 Sum[TSource](System.Collections.Generic.IEnumerable`1[TSource], System.Func`2[TSource,System.Int32])" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="TR Sum[TA,TR](System.Collections.Generic.IEnumerable`1[TA], System.Func`3[TR,TA,TR])" attrs="145">
+        <size>139</size>
+      </method>
+    </type>
+    <type name="Repro">
+      <method name="Int32 &lt;Main&gt;m__0(System.String)" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-16.cs">
+    <type name="Repro">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Repro+Runner`1[T]">
+      <method name="Void .ctor(Action`1, T)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Repro+&lt;AssertFoo&gt;c__AnonStorey0`1[T]">
+      <method name="Void &lt;&gt;m__0(Int32)" attrs="131">
+        <size>58</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Repro">
+      <method name="Void AssertFoo[T](System.Collections.Generic.IList`1[T])" attrs="145">
+        <size>35</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-17.cs">
+    <type name="TestCase">
+      <method name="Void Testing()" attrs="134">
+        <size>76</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void &lt;Testing&gt;m__0()" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-18.cs">
+    <type name="Test">
+      <method name="Void Foo[T1,T2,TResult](T1, T2, System.Func`3[T1,T2,TResult])" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void Bar[T1,T2,TResult](T1, T2, System.Func`4[T1,T2,System.Int32,TResult])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Foo&gt;c__AnonStorey0`3[T1,T2,TResult]">
+      <method name="TResult &lt;&gt;m__0(T1, T2, Int32)" attrs="131">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-19.cs">
+    <type name="Crasher">
+      <method name="Void Crash()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void Do(System.Action)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Crasher+&lt;Crash&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-20.cs">
+    <type name="Z">
+      <method name="Void .ctor()" attrs="6278">
+        <size>38</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Boolean Foo()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestMethod">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Void &lt;Z&gt;m__0()" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-21.cs">
+    <type name="Program">
+      <method name="Void Foo(System.Action`1[System.String])" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="T Foo[T](System.Func`2[System.String,T])" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="System.String Bar()" attrs="145">
+        <size>43</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>108</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.String &lt;Bar&gt;m__0(System.String)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__1(System.String)" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__2(System.String)" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-22.cs">
+    <type name="Product">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>137</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;g&gt;__T,&lt;ExpensiveProducts&gt;__T]">
+      <method name="&lt;g&gt;__T get_g()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;ExpensiveProducts&gt;__T get_ExpensiveProducts()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;g&gt;__T, &lt;ExpensiveProducts&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Boolean &lt;&gt;m__0(Product)" attrs="131">
+        <size>60</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Int32 &lt;Main&gt;m__0(Product)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Product &lt;Main&gt;m__1(Product)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`2[System.Linq.IGrouping`2[System.Int32,Product],System.Collections.Generic.IEnumerable`1[Product]] &lt;Main&gt;m__2(System.Linq.IGrouping`2[System.Int32,Product])" attrs="145">
+        <size>56</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Main&gt;c__AnonStorey0">
+      <method name="System.Decimal &lt;&gt;m__1(Product)" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-23.cs">
+    <type name="C">
+      <method name="U Test[T,U](T[], System.Func`2[T,U])" attrs="145">
+        <size>22</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>90</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__0(System.String)" attrs="145">
+        <size>20</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-24.cs">
+    <type name="E">
+      <method name="System.String Test[T](C, T, System.Func`1[T])" attrs="150">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Test[T](T, System.Func`1[System.Boolean])" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="System.String Foo[T](T, System.Action`1[T])" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0(System.String)" attrs="131">
+        <size>24</size>
+      </method>
+      <method name="Void &lt;&gt;m__1(System.String)" attrs="131">
+        <size>47</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.String &lt;&gt;m__2()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-25.cs">
+    <type name="MonoBugs.Bar">
+      <method name="Void DoStuff[T](T, System.Action`1[T])" attrs="150">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="MonoBugs.Program">
+      <method name="Void Main()" attrs="150">
+        <size>60</size>
+      </method>
+    </type>
+    <type name="MonoBugs.Bar">
+      <method name="Void DoStuff[T](System.Nullable`1[T], System.Action`1[T])" attrs="150">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="MonoBugs.Program">
+      <method name="Void &lt;Main&gt;m__0(MonoBugs.Foo`1[System.Int32])" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-26.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void Execute(System.Action)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-27.cs">
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>72</size>
+      </method>
+      <method name="T[] Test1[T](System.Func`2[IB,T[]])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="IA`1[T][] Test2[T](System.Func`2[IB,IA`1[T][]])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.String[] &lt;Main&gt;m__0(IB)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="IA`1[System.String][] &lt;Main&gt;m__1(IB)" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-28.cs">
+    <type name="G`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="G`1[TResult] M[T,TResult](G`1[T][], System.Func`2[G`1[T][],TResult])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="G`1[System.Int32][] &lt;Main&gt;m__0(G`1[System.Int32][])" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-29.cs">
+    <type name="C`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>104</size>
+      </method>
+      <method name="Void M1[T](System.Action`1[T[][]])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void M2[T](System.Action`1[C`1[T][]])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void M3[T](System.Action`1[C`1[T[]][]])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__0(Int32[][])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__1(C`1[System.Int16][])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__2(C`1[System.Int16[]][])" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-30.cs">
+    <type name="C">
+      <method name="System.Object Method[T](System.Object[])" attrs="145">
+        <size>27</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Method&gt;c__AnonStorey0`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Object &lt;&gt;m__0(T)" attrs="131">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Func`2[T,System.Object] &lt;Method`1&gt;m__0[T](System.Object)" attrs="145">
+        <size>33</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-31.cs">
+    <type name="Test">
+      <method name="Int32 get_Prop()" attrs="2193">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>294</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-32.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Byte &lt;Main&gt;m__0()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-33.cs">
+    <type name="EnumSwitch">
+      <method name="System.Object SomeFunction[T](SomeEnum, System.Object, System.Linq.IQueryable`1[T])" attrs="134">
+        <size>96</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-34.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Boolean SomeMethod()" attrs="145">
+        <size>52</size>
+      </method>
+      <method name="Boolean F(System.Func`1[System.Boolean])" attrs="148">
+        <size>10</size>
+      </method>
+      <method name="Boolean F1(Int32, Int32 ByRef)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Boolean Ferror(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Boolean Fouter()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;SomeMethod&gt;c__AnonStorey0">
+      <method name="Boolean &lt;&gt;m__0()" attrs="131">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-35.cs">
+    <type name="C">
+      <method name="Int32 Foo(System.Func`1[System.Int16])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo(System.Func`1[System.Int32])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>161</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int16 &lt;Main&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int16 &lt;Main&gt;m__2()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-lambda-36.cs">
+    <type name="D`1[T]">
+      <method name="Void S[U,V](System.Func`1[U], System.Func`3[T,U,V])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="D`1[V] Factory[V](V)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="145">
+        <size>78</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__0()" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`1[System.String] &lt;Main&gt;m__1(&lt;&gt;__AnonType0`1[System.Int32], System.String)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`1[&lt;q&gt;__T]">
+      <method name="&lt;q&gt;__T get_q()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>39</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>63</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor(&lt;q&gt;__T)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType1`1[&lt;str&gt;__T]">
+      <method name="&lt;str&gt;__T get_str()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>39</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>63</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor(&lt;str&gt;__T)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-01.cs">
+    <type name="from.C">
+      <method name="Void Main()" attrs="150">
+        <size>2181</size>
+      </method>
+      <method name="Void Foo(Int32, Boolean)" attrs="129">
+        <size>16</size>
+      </method>
+      <method name="Void Do(System.String[])" attrs="129">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="from.D">
+      <method name="Boolean check(System.Object, System.Object)" attrs="134">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;i&gt;__T,&lt;j&gt;__T]">
+      <method name="&lt;i&gt;__T get_i()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;j&gt;__T get_j()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;i&gt;__T, &lt;j&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType1`2[&lt;i&gt;__T,&lt;l&gt;__T]">
+      <method name="&lt;i&gt;__T get_i()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;l&gt;__T get_l()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;i&gt;__T, &lt;l&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType2`2[&lt;&lt;&gt;__TranspIdent2&gt;__T,&lt;l2&gt;__T]">
+      <method name="&lt;&lt;&gt;__TranspIdent2&gt;__T get_&lt;&gt;__TranspIdent2()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;l2&gt;__T get_l2()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent2&gt;__T, &lt;l2&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType3`2[&lt;i9&gt;__T,&lt;i&gt;__T]">
+      <method name="&lt;i9&gt;__T get_i9()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;i&gt;__T get_i()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;i9&gt;__T, &lt;i&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType4`2[&lt;&lt;&gt;__TranspIdent7&gt;__T,&lt;l2&gt;__T]">
+      <method name="&lt;&lt;&gt;__TranspIdent7&gt;__T get_&lt;&gt;__TranspIdent7()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;l2&gt;__T get_l2()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent7&gt;__T, &lt;l2&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="from.C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FromProblems2.from">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FromProblems2.C">
+      <method name="Void M1()" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="FromProblems2.from M2()" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="from.C+&lt;Main&gt;c__AnonStorey0">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__0(Int32)" attrs="131">
+        <size>15</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__1(System.Linq.IGrouping`2[System.Int32,System.Int32])" attrs="131">
+        <size>15</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__2(System.Linq.IGrouping`2[System.Int32,System.Int32])" attrs="131">
+        <size>15</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__3(System.Linq.IGrouping`2[System.Int32,System.Int32])" attrs="131">
+        <size>15</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[System.Int32,System.Collections.Generic.IEnumerable`1[System.Int32]] &lt;&gt;m__4(Int32)" attrs="131">
+        <size>55</size>
+      </method>
+    </type>
+    <type name="from.C">
+      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="System.Nullable`1[System.Boolean] &lt;Main&gt;m__2(System.Nullable`1[System.Boolean])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__3(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__4(Int32, Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__5(Int32)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__6(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__7(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__8(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__9(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__A(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__B(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__C(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__D(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__E(from.ITest)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__F(Int32, from.ITest)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__10(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__11(from.ITest)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__12(Int32, from.ITest)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__13(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__14(from.ITest)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,from.ITest] &lt;Main&gt;m__15(Int32, from.ITest)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__16(&lt;&gt;__AnonType0`2[System.Int32,from.ITest])" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__17(from.ITest)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__18(&lt;&gt;__AnonType0`2[System.Int32,from.ITest], from.ITest)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__19(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1A(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1B(Int32, System.Collections.Generic.IEnumerable`1[System.Int32])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1C(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1D(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1E(Int32, System.Collections.Generic.IEnumerable`1[System.Int32])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1F(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__20(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__21(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__22(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="System.Linq.IGrouping`2[System.Int32,System.Int32] &lt;Main&gt;m__23(System.Linq.IGrouping`2[System.Int32,System.Int32])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[System.Int32,System.Int32] &lt;Main&gt;m__24(Int32)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__25(&lt;&gt;__AnonType1`2[System.Int32,System.Int32])" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[System.Int32,System.Int32] &lt;Main&gt;m__26(Int32)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__27(&lt;&gt;__AnonType1`2[System.Int32,System.Int32])" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__28(&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32])" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__29(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2A(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__2B(System.Linq.IGrouping`2[System.Int32,System.Int32], Int32)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2C(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2D(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__2E(System.Linq.IGrouping`2[System.Int32,System.Int32], Int32)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2F(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__30(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__31(System.Linq.IGrouping`2[System.Int32,System.Int32], Int32)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__32(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__33(&lt;&gt;__AnonType3`2[System.Linq.IGrouping`2[System.Int32,System.Int32],System.Int32])" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="System.Linq.IGrouping`2[System.Int32,System.Int32] &lt;Main&gt;m__34(System.Linq.IGrouping`2[System.Int32,System.Int32])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__35(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__36(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__37(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="&lt;&gt;__AnonType4`2[&lt;&gt;__AnonType1`2[System.Int32,System.Collections.Generic.IEnumerable`1[System.Int32]],System.Int32] &lt;Main&gt;m__38(&lt;&gt;__AnonType1`2[System.Int32,System.Collections.Generic.IEnumerable`1[System.Int32]])" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__39(&lt;&gt;__AnonType4`2[&lt;&gt;__AnonType1`2[System.Int32,System.Collections.Generic.IEnumerable`1[System.Int32]],System.Int32])" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="from.C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Int32 &lt;&gt;m__5(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-02.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>528</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__3(Int32)" attrs="145">
+        <size>11</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-03.cs">
+    <type name="WhereTest">
+      <method name="Int32 Main()" attrs="150">
+        <size>197</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2(Int32)" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-04.cs">
+    <type name="TestGroupBy">
+      <method name="Int32 Main()" attrs="150">
+        <size>589</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2(Int32)" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__3(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-05.cs">
+    <type name="OrderByTests">
+      <method name="Int32 Main()" attrs="150">
+        <size>1354</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="OrderByTests+Data">
+      <method name="Int32 get_ID()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_ID(Int32)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="System.String get_Name()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Name(System.String)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="OrderByTests">
+      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__3(Int32)" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__4(System.String)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__5(System.String)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__6(Data)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__7(Data)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__8(Data)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__9(Data)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__A(Data)" attrs="145">
+        <size>19</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__B(Data)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__C(Data)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__D(Data)" attrs="145">
+        <size>19</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__E(Data)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__F(Data)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Data &lt;Main&gt;m__10(Data)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-06.cs">
+    <type name="Let">
+      <method name="Int32 Main()" attrs="150">
+        <size>423</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;i&gt;__T,&lt;u&gt;__T]">
+      <method name="&lt;i&gt;__T get_i()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;u&gt;__T get_u()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;i&gt;__T, &lt;u&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType1`2[&lt;&lt;&gt;__TranspIdent1&gt;__T,&lt;v&gt;__T]">
+      <method name="&lt;&lt;&gt;__TranspIdent1&gt;__T get_&lt;&gt;__TranspIdent1()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;v&gt;__T get_v()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent1&gt;__T, &lt;v&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="Let">
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;Main&gt;m__2(Int32)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__3(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__4(&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.Int32],System.Int32])" attrs="145">
+        <size>26</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__5(&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.Int32],System.Int32])" attrs="145">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-07.cs">
+    <type name="SelectMany">
+      <method name="Int32 Main()" attrs="150">
+        <size>765</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;i1&gt;__T,&lt;i2&gt;__T]">
+      <method name="&lt;i1&gt;__T get_i1()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;i2&gt;__T get_i2()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;i1&gt;__T, &lt;i2&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType1`2[&lt;&lt;&gt;__TranspIdent0&gt;__T,&lt;i3&gt;__T]">
+      <method name="&lt;&lt;&gt;__TranspIdent0&gt;__T get_&lt;&gt;__TranspIdent0()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;i3&gt;__T get_i3()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent0&gt;__T, &lt;i3&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType2`3[&lt;pp&gt;__T,&lt;i1&gt;__T,&lt;i3&gt;__T]">
+      <method name="&lt;pp&gt;__T get_pp()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;i1&gt;__T get_i1()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;i3&gt;__T get_i3()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>96</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>109</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>199</size>
+      </method>
+      <method name="Void .ctor(&lt;pp&gt;__T, &lt;i1&gt;__T, &lt;i3&gt;__T)" attrs="6278">
+        <size>28</size>
+      </method>
+    </type>
+    <type name="SelectMany+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.String] &lt;&gt;m__0(Int32)" attrs="131">
+        <size>20</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.String] &lt;&gt;m__3(Int32)" attrs="131">
+        <size>15</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.String] &lt;&gt;m__1(Int32)" attrs="131">
+        <size>20</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__2(&lt;&gt;__AnonType0`2[System.Int32,System.String])" attrs="131">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="SelectMany">
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.String] &lt;Main&gt;m__0(Int32, System.String)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.String] &lt;Main&gt;m__2(Int32, System.String)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.String],System.Int32] &lt;Main&gt;m__3(&lt;&gt;__AnonType0`2[System.Int32,System.String], Int32)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__4(&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.String],System.Int32])" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="&lt;&gt;__AnonType2`3[System.Int32,System.Int32,System.Int32] &lt;Main&gt;m__5(&lt;&gt;__AnonType1`2[&lt;&gt;__AnonType0`2[System.Int32,System.String],System.Int32])" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.String] &lt;Main&gt;m__6(Int32, System.String)" attrs="145">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-08.cs">
+    <type name="TestA">
+      <method name="System.String Select[U](System.Func`2[TestA,U])" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="TestB">
+      <method name="TestA Where(TestA, System.Func`2[TestA,System.Boolean])" attrs="150">
+        <size>38</size>
+      </method>
+    </type>
+    <type name="CustomQueryExpressionPattern">
+      <method name="Int32 Main()" attrs="150">
+        <size>171</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="TestA &lt;Main&gt;m__0(TestA)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__1(TestA)" attrs="145">
+        <size>25</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-09.cs">
+    <type name="Data">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Join">
+      <method name="Int32 Main()" attrs="150">
+        <size>981</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`1[&lt;Result&gt;__T]">
+      <method name="&lt;Result&gt;__T get_Result()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>39</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>63</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor(&lt;Result&gt;__T)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType1`2[&lt;a&gt;__T,&lt;b&gt;__T]">
+      <method name="&lt;a&gt;__T get_a()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;b&gt;__T get_b()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;a&gt;__T, &lt;b&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="Join">
+      <method name="Int32 &lt;Main&gt;m__0(Data)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(Data)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`1[System.String] &lt;Main&gt;m__2(Data, Data)" attrs="145">
+        <size>31</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__3(Data)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__4(Data)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[Data,Data] &lt;Main&gt;m__5(Data, Data)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__6(&lt;&gt;__AnonType1`2[Data,Data])" attrs="145">
+        <size>30</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`1[System.String] &lt;Main&gt;m__7(&lt;&gt;__AnonType1`2[Data,Data])" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__8(Data)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__9(Data)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`1[System.String] &lt;Main&gt;m__A(Data, Data)" attrs="145">
+        <size>31</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__B(Data)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__C(Data)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[Data,Data] &lt;Main&gt;m__D(Data, Data)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__E(&lt;&gt;__AnonType1`2[Data,Data])" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Data &lt;Main&gt;m__F(&lt;&gt;__AnonType1`2[Data,Data])" attrs="145">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-10.cs">
+    <type name="DataA">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="DataB">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="GroupJoin">
+      <method name="Int32 Main()" attrs="150">
+        <size>781</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;a&gt;__T,&lt;ab&gt;__T]">
+      <method name="&lt;a&gt;__T get_a()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;ab&gt;__T get_ab()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;a&gt;__T, &lt;ab&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType1`2[&lt;a&gt;__T,&lt;b&gt;__T]">
+      <method name="&lt;a&gt;__T get_a()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;b&gt;__T get_b()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;a&gt;__T, &lt;b&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="GroupJoin">
+      <method name="Int32 &lt;Main&gt;m__0(DataA)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(DataB)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]] &lt;Main&gt;m__2(DataA, System.Collections.Generic.IEnumerable`1[DataB])" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[DataB] &lt;Main&gt;m__3(&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]])" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[System.String,System.String] &lt;Main&gt;m__4(&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]], DataB)" attrs="145">
+        <size>47</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__5(DataA)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__6(DataB)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]] &lt;Main&gt;m__7(DataA, System.Collections.Generic.IEnumerable`1[DataB])" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[DataB] &lt;Main&gt;m__8(&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]])" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[System.String,System.String] &lt;Main&gt;m__9(&lt;&gt;__AnonType0`2[DataA,System.Collections.Generic.IEnumerable`1[DataB]], DataB)" attrs="145">
+        <size>47</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__A(DataA)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__B(DataB)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="DataA &lt;Main&gt;m__C(DataA, System.Collections.Generic.IEnumerable`1[DataB])" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-11.cs">
+    <type name="IntoTest">
+      <method name="Int32 Main()" attrs="150">
+        <size>303</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2(Int32)" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__3(Int32)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__4(Int32)" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-12.cs">
+    <type name="NestedQuery">
+      <method name="Void XX()" attrs="134">
+        <size>109</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>502</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;values&gt;__T,&lt;length&gt;__T]">
+      <method name="&lt;values&gt;__T get_values()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;length&gt;__T get_length()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;values&gt;__T, &lt;length&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType1`2[&lt;type&gt;__T,&lt;x&gt;__T]">
+      <method name="&lt;type&gt;__T get_type()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;x&gt;__T get_x()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;type&gt;__T, &lt;x&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="NestedQuery+&lt;XX&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="NestedQuery+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="NestedQuery+&lt;XX&gt;c__AnonStorey0">
+      <method name="Boolean &lt;&gt;m__0(&lt;&gt;__AnonType1`2[System.Char,System.Int32])" attrs="131">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="NestedQuery+&lt;Main&gt;c__AnonStorey1">
+      <method name="Boolean &lt;&gt;m__0(&lt;&gt;__AnonType1`2[System.Char,System.Int32])" attrs="131">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="NestedQuery">
+      <method name="&lt;&gt;__AnonType0`2[System.String,System.Int32] &lt;XX&gt;m__0(System.String)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.Char] &lt;XX&gt;m__1(&lt;&gt;__AnonType0`2[System.String,System.Int32])" attrs="145">
+        <size>117</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__2(System.String)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.Char] &lt;Main&gt;m__3(System.String)" attrs="145">
+        <size>44</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`2[System.String,System.Int32] &lt;Main&gt;m__4(System.String)" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.Char] &lt;Main&gt;m__5(&lt;&gt;__AnonType0`2[System.String,System.Int32])" attrs="145">
+        <size>118</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[System.Char,System.Int32] &lt;XX&gt;m__6(Char)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Char &lt;XX&gt;m__7(&lt;&gt;__AnonType1`2[System.Char,System.Int32])" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__8(Char)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[System.Char,System.Int32] &lt;Main&gt;m__9(Char)" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Char &lt;Main&gt;m__A(&lt;&gt;__AnonType1`2[System.Char,System.Int32])" attrs="145">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-13.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Foo(TypeDefinition)" attrs="145">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MethodDefinition">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TypeDefinition">
+      <method name="MethodDefinitionCollection get_Methods()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Methods(MethodDefinitionCollection)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MethodDefinitionCollection">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Extension">
+      <method name="System.Collections.Generic.IEnumerable`1[T] Cast[T](IFoo)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="MethodDefinition &lt;Foo&gt;m__0(MethodDefinition)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-14.cs">
+    <type name="Person">
+      <method name="Style get_Style()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Style(Style)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Assert(System.Action)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Test(IObjectContainer, Style)" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>118</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Extensions">
+      <method name="IMarker`1[T] Cast[T](IObjectContainer)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="IMarker`1[T] Where[T](IMarker`1[T], System.Linq.Expressions.Expression`1[System.Func`2[T,System.Boolean]])" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-15.cs">
+    <type name="NameCollisionTest.Data">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="NameCollisionTest.C">
+      <method name="Void Main()" attrs="150">
+        <size>79</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="NameCollisionTest.Ex+&lt;Foo&gt;c__Iterator0`2[T,TR]">
+      <method name="TR System.Collections.Generic.IEnumerator&lt;TR&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>93</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="NameCollisionTest.Ex">
+      <method name="System.Collections.Generic.IEnumerable`1[TR] Foo[T,TR](System.Collections.Generic.IEnumerable`1[T], System.Func`2[T,TR])" attrs="150">
+        <size>37</size>
+      </method>
+    </type>
+    <type name="NameCollisionTest.Ex+&lt;Foo&gt;c__Iterator0`2[T,TR]">
+      <method name="System.Collections.Generic.IEnumerator`1[TR] System.Collections.Generic.IEnumerable&lt;TR&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="NameCollisionTest.C">
+      <method name="Int32 &lt;Main&gt;m__0(NameCollisionTest.Data)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-16.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void Test_1(Int32)" attrs="145">
+        <size>28</size>
+      </method>
+      <method name="Void Test_2()" attrs="145">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;a&gt;__T,&lt;b&gt;__T]">
+      <method name="&lt;a&gt;__T get_a()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;b&gt;__T get_b()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;a&gt;__T, &lt;b&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_1&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_2&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_1&gt;c__AnonStorey0">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__0()" attrs="131">
+        <size>74</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__2(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])" attrs="131">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_2&gt;c__AnonStorey1">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__0()" attrs="131">
+        <size>74</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__2(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])" attrs="131">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Func`1[System.Collections.Generic.IEnumerable`1[System.Int32]] &lt;Test_2&gt;m__0(Int32)" attrs="145">
+        <size>33</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_1&gt;c__AnonStorey0">
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;&gt;m__1(Int32)" attrs="145">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_2&gt;c__AnonStorey1">
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;&gt;m__1(Int32)" attrs="145">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-17.cs">
+    <type name="TestGroupBy">
+      <method name="Int32 Main()" attrs="150">
+        <size>169</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-18.cs">
+    <type name="C">
+      <method name="Boolean Test(System.Func`2[System.Int32,System.Boolean])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Boolean Test2(System.Func`2[System.Int32,System.Int32])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>658</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;ck&gt;__T,&lt;xy&gt;__T]">
+      <method name="&lt;ck&gt;__T get_ck()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;xy&gt;__T get_xy()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;ck&gt;__T, &lt;xy&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType1`2[&lt;i&gt;__T,&lt;l&gt;__T]">
+      <method name="&lt;i&gt;__T get_i()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;l&gt;__T get_l()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;i&gt;__T, &lt;l&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType2`2[&lt;&lt;&gt;__TranspIdent1&gt;__T,&lt;g&gt;__T]">
+      <method name="&lt;&lt;&gt;__TranspIdent1&gt;__T get_&lt;&gt;__TranspIdent1()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;g&gt;__T get_g()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;&lt;&gt;__TranspIdent1&gt;__T, &lt;g&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey3">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey4">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey5">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey6">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey7">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey8">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey9">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStoreyA">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
+        <size>17</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey1">
+      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey2">
+      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
+        <size>17</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey3">
+      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
+        <size>17</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey4">
+      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="131">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey5">
+      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="131">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey6">
+      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey7">
+      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
+        <size>17</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey8">
+      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
+        <size>17</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey9">
+      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
+        <size>17</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStoreyA">
+      <method name="Boolean &lt;&gt;m__0(Int32)" attrs="131">
+        <size>17</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Boolean] &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>50</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__1(&lt;&gt;__AnonType0`2[System.Int32,System.Boolean])" attrs="145">
+        <size>19</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__2(&lt;&gt;__AnonType0`2[System.Int32,System.Boolean])" attrs="145">
+        <size>39</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__3(Int32)" attrs="145">
+        <size>39</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__4(Int32)" attrs="145">
+        <size>39</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__5(Int32)" attrs="145">
+        <size>39</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__6(Int32)" attrs="145">
+        <size>39</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[System.Int32,System.Int32] &lt;Main&gt;m__7(Int32)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32] &lt;Main&gt;m__8(&lt;&gt;__AnonType1`2[System.Int32,System.Int32])" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__9(&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32])" attrs="145">
+        <size>39</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__A(&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32])" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__B(&lt;&gt;__AnonType2`2[&lt;&gt;__AnonType1`2[System.Int32,System.Int32],System.Int32])" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__C(Int32)" attrs="145">
+        <size>39</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__D(Int32)" attrs="145">
+        <size>39</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__E(Int32, Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__F(Int32)" attrs="145">
+        <size>39</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__10(Int32)" attrs="145">
+        <size>39</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__11(Int32, System.Collections.Generic.IEnumerable`1[System.Int32])" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-19.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>28</size>
+      </method>
+      <method name="Char &lt;E&gt;m__0(Char)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-20.cs">
+    <type name="Maybe`1[T]">
+      <method name="T get_Value()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Value(T)" attrs="2177">
+        <size>8</size>
+      </method>
+      <method name="Boolean get_HasValue()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_HasValue(Boolean)" attrs="2177">
+        <size>8</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>51</size>
+      </method>
+      <method name="Maybe`1[U] SelectMany[U](System.Func`2[T,Maybe`1[U]])" attrs="134">
+        <size>43</size>
+      </method>
+      <method name="Maybe`1[V] SelectMany[U,V](System.Func`2[T,Maybe`1[U]], System.Func`3[T,U,V])" attrs="134">
+        <size>89</size>
+      </method>
+      <method name="Void .ctor()" attrs="6273">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>22</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="MaybeExtensions">
+      <method name="Maybe`1[T] ToMaybe[T](T)" attrs="150">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>139</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;x&gt;__T,&lt;y&gt;__T]">
+      <method name="&lt;x&gt;__T get_x()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;y&gt;__T get_y()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;x&gt;__T, &lt;y&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Maybe`1[System.Int32] &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`2[System.Int32,System.Int32] &lt;Main&gt;m__1(Int32, Int32)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Maybe`1[System.Int32] &lt;Main&gt;m__2(&lt;&gt;__AnonType0`2[System.Int32,System.Int32])" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__3(&lt;&gt;__AnonType0`2[System.Int32,System.Int32], Int32)" attrs="145">
+        <size>24</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-21.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>98</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey0">
+      <method name="System.Action &lt;&gt;m__1(Int32, Int32)" attrs="131">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey0+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey0">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] &lt;&gt;m__0(Int32)" attrs="131">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey0+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>49</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-22.cs">
+    <type name="Test.MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>59</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;item&gt;__T,&lt;parsed&gt;__T]">
+      <method name="&lt;item&gt;__T get_item()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;parsed&gt;__T get_parsed()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;item&gt;__T, &lt;parsed&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="Test.MainClass+&lt;Main&gt;c__AnonStorey0">
+      <method name="&lt;&gt;__AnonType0`2[System.Char,System.Boolean] &lt;&gt;m__0(Char)" attrs="131">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.DateTime &lt;&gt;m__1(&lt;&gt;__AnonType0`2[System.Char,System.Boolean])" attrs="131">
+        <size>36</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-23.cs">
+    <type name="OrderByBugExample.Foo">
+      <method name="System.String get_Name()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Name(System.String)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Int32 get_Value1()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Value1(Int32)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Int32 get_Value2()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Value2(Int32)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="OrderByBugExample.Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>362</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__0(OrderByBugExample.Foo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(OrderByBugExample.Foo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2(OrderByBugExample.Foo)" attrs="145">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-24.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="A[] get_Prop()" attrs="2177">
+        <size>23</size>
+      </method>
+      <method name="Void Test()" attrs="129">
+        <size>57</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 &lt;Test&gt;m__0(A)" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-25.cs">
+    <type name="A">
+      <method name="System.String get_Header()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="System.String get_Name()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void Test(System.Action)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;c&gt;__T,&lt;p&gt;__T]">
+      <method name="&lt;c&gt;__T get_c()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;p&gt;__T get_p()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;c&gt;__T, &lt;p&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType1`2[&lt;C&gt;__T,&lt;P&gt;__T]">
+      <method name="&lt;C&gt;__T get_C()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;P&gt;__T get_P()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;C&gt;__T, &lt;P&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>162</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[B] &lt;Main&gt;m__1(A)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="&lt;&gt;__AnonType0`2[A,B] &lt;Main&gt;m__2(A, B)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__3(&lt;&gt;__AnonType0`2[A,B])" attrs="145">
+        <size>75</size>
+      </method>
+      <method name="&lt;&gt;__AnonType1`2[A,B] &lt;Main&gt;m__4(&lt;&gt;__AnonType0`2[A,B])" attrs="145">
+        <size>26</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-26.cs">
+    <type name="Test.S`1[T]">
+      <method name="System.String Where(System.Func`2[Test.C,System.String])" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Test.C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Extension">
+      <method name="System.String Is(Test.C)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Test.Program">
+      <method name="Void Main()" attrs="150">
+        <size>80</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__0(Test.C)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__1(Test.C)" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-27.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>152</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;b&gt;__T,&lt;t&gt;__T]">
+      <method name="&lt;b&gt;__T get_b()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;t&gt;__T get_t()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;b&gt;__T, &lt;t&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Boolean] &lt;&gt;m__0(System.String)" attrs="131">
+        <size>82</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0+&lt;Main&gt;c__AnonStorey1">
+      <method name="Boolean &lt;&gt;m__0(Char)" attrs="131">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.String &lt;Main&gt;m__0(System.String)" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="&lt;&gt;__AnonType0`2[System.String,System.Boolean] &lt;&gt;m__1(System.String)" attrs="145">
+        <size>55</size>
+      </method>
+      <method name="Boolean &lt;&gt;m__2(&lt;&gt;__AnonType0`2[System.String,System.Boolean])" attrs="145">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-linq-28.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>222</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`2[&lt;m&gt;__T,&lt;n&gt;__T]">
+      <method name="&lt;m&gt;__T get_m()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="&lt;n&gt;__T get_n()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>69</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>86</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor(&lt;m&gt;__T, &lt;n&gt;__T)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="&lt;&gt;__AnonType0`2[System.Char,System.Collections.Generic.IEnumerable`1[System.Char]] &lt;Main&gt;m__0(Char)" attrs="145">
+        <size>54</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.Char] &lt;Main&gt;m__1(&lt;&gt;__AnonType0`2[System.Char,System.Collections.Generic.IEnumerable`1[System.Char]])" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Char &lt;Main&gt;m__2(Char)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-named-01.cs">
+    <type name="C">
+      <method name="Int32 Test(Int32, Int32, System.String)" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="T Foo[T](T, Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void Lambda(System.Func`2[System.Int32,System.Int32])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>201</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="131">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-named-02.cs">
+    <type name="D">
+      <method name="Void Foo(Int32)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-named-03.cs">
+    <type name="C">
+      <method name="Int32 Foo(Int32, Int32, Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32, Int32, Int32)" attrs="2177">
+        <size>22</size>
+      </method>
+      <method name="Int32 get_Item(Int32, Int32, Int32)" attrs="2177">
+        <size>15</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>100</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-named-04.cs">
+    <type name="Test">
+      <method name="Int32 f(Int32)" attrs="145">
+        <size>31</size>
+      </method>
+      <method name="Void m(Int32, Int32, Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void m(Int32, Int32, Int32, Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>336</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-named-05.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void M(System.String, System.String)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void M2(Int32 ByRef, System.String, System.String)" attrs="145">
+        <size>5</size>
+      </method>
+      <method name="System.String F()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-named-06.cs">
+    <type name="X">
+      <method name="Int32 T1(Int32)" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Int32 T1_Foo(Int32)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-01.cs">
+    <type name="C">
+      <method name="Void TestA(Int32)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void TestB(Int64)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>378</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void TestC(System.Decimal)" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-02.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>160</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Boolean Test3(System.Nullable`1[System.Int32])" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="Boolean Test2(System.Nullable`1[System.Int32])" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Int32 Test(System.Nullable`1[System.Int32])" attrs="150">
+        <size>35</size>
+      </method>
+      <method name="Int64 Test4(System.Nullable`1[System.Int64])" attrs="150">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-03.cs">
+    <type name="C">
+      <method name="Int32 Test(Int32, System.String, Boolean, UInt16)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>289</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-04.cs">
+    <type name="C">
+      <method name="Void Foo[T](T, T)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void TestParams(Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="System.String get_Item(Int32, System.String)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Item(Int32, System.String, System.String)" attrs="2182">
+        <size>5</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>158</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void TestStruct(System.Nullable`1[System.Int32])" attrs="145">
+        <size>25</size>
+      </method>
+      <method name="Void TestStruct2(System.Nullable`1[S])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void TestParams(Int32[])" attrs="145">
+        <size>7</size>
+      </method>
+      <method name="Void TestParams2(System.String, Int32[])" attrs="145">
+        <size>7</size>
+      </method>
+      <method name="Void TestParams2(System.String, Int32)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-05.cs">
+    <type name="Blah">
+      <method name="Int32 Foo(Int32, Int32)" attrs="134">
+        <size>12</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>59</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Blah+MyDelegate">
+      <method name="Int32 Invoke(Int32, Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32, Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-06.cs">
+    <type name="D">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Foo(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-07.cs">
+    <type name="Tests">
+      <method name="Void foo(Foo)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-08.cs">
+    <type name="Tests">
+      <method name="Int32 Main()" attrs="150">
+        <size>49</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6273">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-09.cs">
+    <type name="Program">
+      <method name="Int32 Test_1(Int32, SByte)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_1[T](T)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_1(Int32, Int64)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_2(Int16)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_2(Int32, SByte)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_3(System.String)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_3(System.String, SByte)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_4(System.Object)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_4(System.Object[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_5()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_5(Int32, System.Object[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_6(System.Object[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_6(Int32, System.Object[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_7(Boolean, System.Object[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_7(Boolean, Int32, System.Object[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>192</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 Test_8(System.Type, Boolean, Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_8(System.Type, Int32[])" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-10.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program`1[T]">
+      <method name="Void .ctor(Generic`1)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Generic`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-11.cs">
+    <type name="C">
+      <method name="Int32 TestA(Int32)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="T TestB[T](T, T)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="System.Object TestC(System.Object)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 TestD(Int32, Int32)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>274</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-12.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 M(System.String, Int32, Int32[])" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-13.cs">
+    <type name="A">
+      <method name="Int32 Foo(Int32)" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo2(Int32)" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Int32 get_Item(System.String, Int32)" attrs="2502">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 Foo(Int32)" attrs="198">
+        <size>12</size>
+      </method>
+      <method name="Int32 Foo2(Int32)" attrs="134">
+        <size>11</size>
+      </method>
+      <method name="Int32 get_Item(System.String, Int32)" attrs="2246">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>175</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-14.cs">
+    <type name="C">
+      <method name="Void M(Int32, Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void M[T](T, Int32)" attrs="145">
+        <size>7</size>
+      </method>
+      <method name="Void M2[T,U](T, System.Func`2[T,U], Int32)" attrs="145">
+        <size>7</size>
+      </method>
+      <method name="Void M2[T,U](T, System.Func`2[T,System.Threading.Tasks.Task`1[U]], Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="145">
+        <size>45</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-15.cs">
+    <type name="Program">
+      <method name="Void Test(S)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>81</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-16.cs">
+    <type name="MainClass">
+      <method name="Int32 TestParams(System.Object, System.Object[])" attrs="145">
+        <size>79</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>57</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-17.cs">
+    <type name="BI">
+      <method name="BI op_Implicit(Int32)" attrs="2198">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void M(BI)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void M2(System.Object)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>114</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-18.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Test(System.Decimal)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-19.cs">
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>72</size>
+      </method>
+      <method name="Void Wrap[T](System.Func`2[IPackageRepository,T], T)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="IPackage &lt;Main&gt;m__0(IPackageRepository)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="IPackage &lt;Main&gt;m__1(IPackageRepository)" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-20.cs">
+    <type name="C">
+      <method name="Void Test[T](T, System.Func`2[System.Object,T])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-21.cs">
+    <type name="C">
+      <method name="Void Foo(C, C)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Foo2(C)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-22.cs">
+    <type name="CallerMemberTest">
+      <method name="Void I.Explicit()" attrs="481">
+        <size>18</size>
+      </method>
+      <method name="Void GenericMethod[T]()" attrs="134">
+        <size>18</size>
+      </method>
+      <method name="Void set_Item(System.String, Int32)" attrs="2182">
+        <size>18</size>
+      </method>
+      <method name="Boolean get_Property()" attrs="2182">
+        <size>26</size>
+      </method>
+      <method name="CallerMemberTest op_Implicit(Int32)" attrs="2198">
+        <size>30</size>
+      </method>
+      <method name="Void Trace(System.String, System.String)" attrs="134">
+        <size>27</size>
+      </method>
+      <method name="System.Object TraceStatic(System.String, System.Object)" attrs="150">
+        <size>56</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>282</size>
+      </method>
+      <method name="Void .ctor()" attrs="6273">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor(Object)" attrs="6273">
+        <size>29</size>
+      </method>
+    </type>
+    <type name="CallerMemberTest+&lt;Enumerator&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>88</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`1[&lt;OO&gt;__T]">
+      <method name="&lt;OO&gt;__T get_OO()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>39</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>63</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor(&lt;OO&gt;__T)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="CallerMemberTest+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CallerMemberTest">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Enumerator()" attrs="145">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="CallerMemberTest+&lt;Enumerator&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="CallerMemberTest">
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="System.Object &lt;Main&gt;m__1(Char)" attrs="145">
+        <size>24</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-23.cs">
+    <type name="CallerLineNumberTest">
+      <method name="System.Object TraceStatic(Int32, Int32)" attrs="150">
+        <size>56</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>75</size>
+      </method>
+      <method name="Void .ctor()" attrs="6273">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor(Object)" attrs="6273">
+        <size>21</size>
+      </method>
+      <method name="Void TraceStatic2(Double, System.Decimal)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>11</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-24.cs">
+    <type name="CallerFilePathTest">
+      <method name="Void TraceStatic2(System.Object)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void TraceStatic(System.String, System.String)" attrs="150">
+        <size>46</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-25.cs">
+    <type name="Usage">
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bug">
+      <method name="TValue[] MethodWithOptionalParameter[TValue](Int32, TValue[])" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-26.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-27.cs">
+    <type name="EnumWrapperCtor`1[T]">
+      <method name="Void .ctor(Test)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="EnumWrapperCtor`1[T]">
+      <method name="Test getValue()" attrs="134">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-28.cs">
+    <type name="NoTypeOptionalParameters">
+      <method name="Void Lambda(Boolean, System.Func`2[System.String,System.Boolean][])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void MethodGroup(Boolean, System.Func`2[System.String,System.Boolean][])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Boolean Foo(System.String)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Boolean FooInstance(System.String)" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>148</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__0(System.String)" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-29.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor(Int32, String[])" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Int32, List`1)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-30.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>28</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-31.cs">
+    <type name="Test">
+      <method name="Int32 M(Boolean)" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Int32 M(System.String[])" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-32.cs">
+    <type name="A">
+      <method name="Int32[] Foo(Int32[])" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32[] Foo(Int32[])" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-33.cs">
+    <type name="TestCallerLineNumber">
+      <method name="Void Test(System.Object)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(System.Decimal)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Double)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Single)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(UInt32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Int64)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(UInt64)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(System.Nullable`1[System.Decimal])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(System.Nullable`1[System.Double])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(System.Nullable`1[System.Single])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(System.Nullable`1[System.Int32])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(System.Nullable`1[System.UInt32])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(System.Nullable`1[System.Int64])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(System.Nullable`1[System.UInt64])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-34.cs">
+    <type name="S">
+      <method name="Void .ctor(Double, Double)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-optional-35.cs">
+    <type name="MainClass">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="MainClass+FooDelegate">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-partial-01.cs">
+    <type name="B`1[U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-partial-010.cs">
+    <type name="A.C">
+      <method name="Int32 A.IA&lt;A.C.NA&gt;.Foo(NA)" attrs="481">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 A.IA&lt;A.C.NB&gt;.Foo(NB)" attrs="481">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.C+NA">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.C+NB">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-partial-02.cs">
+    <type name="A`1[T]">
+      <method name="Void Test()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="T get_CurrentItem()" attrs="2177">
+        <size>14</size>
+      </method>
+      <method name="Void set_CurrentItem(T)" attrs="2177">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-partial-03.cs">
+    <type name="Variable">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`1[T]">
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="CC">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-partial-04.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-partial-05.cs">
+    <type name="Driver">
+      <method name="Void Foo[T](T)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-partial-06.cs">
+    <type name="Test">
+      <method name="Void Baz[U]()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Bar[U](U)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-partial-07.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+B[T]">
+      <method name="Void Test()" attrs="134">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X`1[U]">
+      <method name="Void Foo(U)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-partial-08.cs">
+    <type name="N.A`2[T1,T2]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.A`2+D[T1,T2]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.A`2+D+C[T1,T2]">
+      <method name="Void Test()" attrs="134">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.A`2+D2`1[T1,T2,U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.A`2+D2`1+C2[T1,T2,U]">
+      <method name="Void Test()" attrs="134">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.X2`1[W]">
+      <method name="Void Foo(W)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.X">
+      <method name="Void Foo()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-partial-09.cs">
+    <type name="A.B`1[T]">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.B`1+C[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.B`1+C+A[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.Bar">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.Test">
+      <method name="Void Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-var-04.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>246</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-1.cs">
+    <type name="Foo">
+      <method name="System.String get_Bar()" attrs="2534">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>75</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-10.cs">
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 I&lt;string&gt;.get_Count()" attrs="2529">
+        <size>10</size>
+      </method>
+      <method name="Int32 I&lt;Foo&gt;.get_Count()" attrs="2529">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>42</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-11.cs">
+    <type name="D">
+      <method name="Int32 Main()" attrs="150">
+        <size>137</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Boolean Contra[T](IContravariant`1[T], IContravariant`1[T])" attrs="150">
+        <size>49</size>
+      </method>
+      <method name="Boolean Covariant[T](ICovariant`1[T], ICovariant`1[T])" attrs="150">
+        <size>49</size>
+      </method>
+      <method name="Boolean CovContCont[T](ICovariant`1[T], IContravariant`1[T], IContravariant`1[T])" attrs="150">
+        <size>49</size>
+      </method>
+      <method name="Boolean ContCovContCov[T](IContravariant`1[T], ICovariant`1[T], IContravariant`1[T], ICovariant`1[T])" attrs="150">
+        <size>49</size>
+      </method>
+      <method name="Boolean CovCovCont[T](ICovariant`1[T], ICovariant`1[T], IContravariant`1[T])" attrs="150">
+        <size>49</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-12.cs">
+    <type name="D`1[T]">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void add_field(D`1[System.String])" attrs="2534">
+        <size>42</size>
+      </method>
+      <method name="Void remove_field(D`1[System.String])" attrs="2534">
+        <size>42</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>64</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-13.cs">
+    <type name="A">
+      <method name="Void Test()" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void Foo[T](T, System.Collections.Generic.IList`1[T])" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Foo[T](T, I`1[T])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test[U](U, I`1[U])" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-14.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+D`1[T]">
+      <method name="Void Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+D`2[T,U]">
+      <method name="T Invoke(U)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+D`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+D`2[T,U]">
+      <method name="System.IAsyncResult BeginInvoke(U, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="T EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-15.cs">
+    <type name="C">
+      <method name="Void MethodArg(System.Object)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>61</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+D`1[T]">
+      <method name="Void Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void M[T](T ByRef, D`1)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="Void M2[T](T, D`1)" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C+D`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void &lt;Main&gt;m__0(System.Object)" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-16.cs">
+    <type name="S">
+      <method name="System.String op_Implicit(S)" attrs="2198">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>58</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="T Foo[T](T, I`1[T])" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-17.cs">
+    <type name="A">
+      <method name="Void InterfaceContravariat&lt;int&gt;.set_Prop(Int32)" attrs="2529">
+        <size>7</size>
+      </method>
+      <method name="Void InterfaceContravariat&lt;int&gt;.set_Item(Int32, Int32)" attrs="2529">
+        <size>7</size>
+      </method>
+      <method name="Int64 InterfaceCovariant&lt;long&gt;.get_Prop()" attrs="2529">
+        <size>7</size>
+      </method>
+      <method name="Int64 InterfaceCovariant&lt;long&gt;.get_Item(Int32)" attrs="2529">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-18.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-19.cs">
+    <type name="Test">
+      <method name="Void Bla[T,U]()" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-2.cs">
+    <type name="Foo">
+      <method name="System.String Bar(System.Object)" attrs="486">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>110</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-20.cs">
+    <type name="DocAttribute">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Func`2[T1,TR]">
+      <method name="TR Invoke(T1)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Func`2[T1,TR]">
+      <method name="System.IAsyncResult BeginInvoke(T1, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="TR EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-21.cs">
+    <type name="C">
+      <method name="Boolean M[T]()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-3.cs">
+    <type name="Foo`1[T]">
+      <method name="T Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>69</size>
+      </method>
+      <method name="Int32 Bar(Foo`1[System.Object])" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Main&gt;c__AnonStorey0">
+      <method name="System.String &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="T EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-4.cs">
+    <type name="Foo`1[T]">
+      <method name="Int32 Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>71</size>
+      </method>
+      <method name="Int32 Bar(Foo`1[System.String], System.String)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 &lt;Main&gt;m__0(System.Object)" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-5.cs">
+    <type name="BothVariants`2[T1,T2]">
+      <method name="T1 get_Foo()" attrs="2534">
+        <size>14</size>
+      </method>
+      <method name="Void set_Foo(T1)" attrs="2177">
+        <size>8</size>
+      </method>
+      <method name="Int32 Bar(T2)" attrs="486">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor(T1)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Invariant`1[T]">
+      <method name="T get_Foo()" attrs="2534">
+        <size>14</size>
+      </method>
+      <method name="Int32 Bar(T)" attrs="486">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="System.String get_Fruit()" attrs="2502">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="System.String get_Fruit()" attrs="2246">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.String get_Fruit()" attrs="2246">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>136</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-6.cs">
+    <type name="Cov1`1[U]">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov2`1[U]">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov3`1[U]">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov4`1[U]">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov5`1[U]">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra5`1[U]">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra6`1[U]">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra7`1[U]">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra8`1[U]">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Cov1`1[U]">
+      <method name="ICovariant`1[U] Invoke(IContravariant`1[U])" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov2`1[U]">
+      <method name="ICovariant`1[U] Invoke(IContravariant`1[ICovariant`1[U]])" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov3`1[U]">
+      <method name="ICovariant`1[IContravariant`1[IContravariant`1[U]]] Invoke(IContravariant`1[IContravariant`1[IContravariant`1[ICovariant`1[U]]]])" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov4`1[U]">
+      <method name="ICovariant`1[System.Int32] Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov5`1[U]">
+      <method name="IContravariant`1[System.Int32] Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra5`1[U]">
+      <method name="IContravariant`1[U[]] Invoke(U, ICovariant`1[U])" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra6`1[U]">
+      <method name="IContravariant`1[U[]] Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra7`1[U]">
+      <method name="IContravariant`1[U] Invoke(U, ICovariant`1[U])" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra8`1[U]">
+      <method name="IContravariant`1[ICovariant`1[U]] Invoke(U, ICovariant`1[U])" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov1`1[U]">
+      <method name="System.IAsyncResult BeginInvoke(IContravariant`1[U], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1[U] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov2`1[U]">
+      <method name="System.IAsyncResult BeginInvoke(IContravariant`1[ICovariant`1[U]], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1[U] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov3`1[U]">
+      <method name="System.IAsyncResult BeginInvoke(IContravariant`1[IContravariant`1[IContravariant`1[ICovariant`1[U]]]], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1[IContravariant`1[IContravariant`1[U]]] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov4`1[U]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="ICovariant`1[System.Int32] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Cov5`1[U]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1[System.Int32] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra5`1[U]">
+      <method name="System.IAsyncResult BeginInvoke(U, ICovariant`1[U], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1[U[]] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra6`1[U]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1[U[]] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra7`1[U]">
+      <method name="System.IAsyncResult BeginInvoke(U, ICovariant`1[U], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1[U] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra8`1[U]">
+      <method name="System.IAsyncResult BeginInvoke(U, ICovariant`1[U], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="IContravariant`1[ICovariant`1[U]] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-7.cs">
+    <type name="Covariant`1[T]">
+      <method name="T Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra`1[T]">
+      <method name="Void Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="CoContra`2[TR,T]">
+      <method name="TR Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="None`1[T]">
+      <method name="Void Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test`1[U]">
+      <method name="Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]] Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test2`1[U]">
+      <method name="Contra`1[Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]]] Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test3`1[U]">
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Contra`1[Contra`1[U]]]]]]]] Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test4`1[U]">
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[Contra`1[U]]]]]]]] Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test5`1[U]">
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[U]]]]]]] Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test6`1[U]">
+      <method name="Void Invoke(Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]])" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both`2[U,V]">
+      <method name="Void Invoke(CoContra`2[U,V])" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both2`2[U,V]">
+      <method name="Void Invoke(CoContra`2[U,Contra`1[U]])" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both3`2[U,V]">
+      <method name="Void Invoke(CoContra`2[U,Contra`1[System.Int32]])" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both4`2[U,V]">
+      <method name="Void Invoke(Both`2[V,U])" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both5`2[U,V]">
+      <method name="Void Invoke(Both`2[V,System.Int32])" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Covariant`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="T EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Contra`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="CoContra`2[TR,T]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="TR EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="None`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test`1[U]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test2`1[U]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Contra`1[Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]]] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test3`1[U]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Contra`1[Contra`1[U]]]]]]]] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test4`1[U]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[Contra`1[U]]]]]]]] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test5`1[U]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Contra`1[Contra`1[Covariant`1[Covariant`1[Contra`1[Contra`1[Contra`1[U]]]]]]] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test6`1[U]">
+      <method name="System.IAsyncResult BeginInvoke(Covariant`1[Contra`1[Contra`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[Covariant`1[U]]]]]]]], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both`2[U,V]">
+      <method name="System.IAsyncResult BeginInvoke(CoContra`2[U,V], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both2`2[U,V]">
+      <method name="System.IAsyncResult BeginInvoke(CoContra`2[U,Contra`1[U]], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both3`2[U,V]">
+      <method name="System.IAsyncResult BeginInvoke(CoContra`2[U,Contra`1[System.Int32]], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both4`2[U,V]">
+      <method name="System.IAsyncResult BeginInvoke(Both`2[V,U], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Both5`2[U,V]">
+      <method name="System.IAsyncResult BeginInvoke(Both`2[V,System.Int32], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-8.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>165</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="gtest-variance-9.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Foo(IIn`1[System.String])" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-1.cs">
+    <type name="X">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-10.cs">
+    <type name="X">
+      <method name="Void asbyte(Byte, UInt16, UInt32, UInt64, Char)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void bsbyte()" attrs="129">
+        <size>36</size>
+      </method>
+      <method name="Void abyte(SByte, Char)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void bbyte()" attrs="129">
+        <size>23</size>
+      </method>
+      <method name="Void ashort(SByte, Byte, UInt16, UInt32, UInt64, Char)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void bshort()" attrs="129">
+        <size>40</size>
+      </method>
+      <method name="Void aushort(SByte, Byte, Int16, Char)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void bushort()" attrs="129">
+        <size>30</size>
+      </method>
+      <method name="Void aint(SByte, Byte, Int16, UInt16, UInt32, UInt64, Char)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void bint()" attrs="129">
+        <size>43</size>
+      </method>
+      <method name="Void auint(SByte, Byte, Int16, UInt16, Int32, Char)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void buint()" attrs="129">
+        <size>39</size>
+      </method>
+      <method name="Void along(SByte, Byte, Int16, UInt16, Int32, UInt32, UInt64, Char)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void blong()" attrs="129">
+        <size>48</size>
+      </method>
+      <method name="Void aulong(SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, Char)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void bulong()" attrs="129">
+        <size>48</size>
+      </method>
+      <method name="Void achar(SByte, Byte, Int16)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void bchar()" attrs="129">
+        <size>28</size>
+      </method>
+      <method name="Void bfloat()" attrs="129">
+        <size>68</size>
+      </method>
+      <method name="Void bdouble()" attrs="129">
+        <size>76</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test2">
+      <method name="Void ExtraTst()" attrs="129">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void afloat(SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, Char, System.Decimal)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void adouble(SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, Char, Single, System.Decimal)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void TestDecimal(System.Decimal)" attrs="129">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-100.cs">
+    <type name="GLib.Object">
+      <method name="Int32 get_Raw()" attrs="2180">
+        <size>10</size>
+      </method>
+      <method name="Void set_Raw(Int32)" attrs="2180">
+        <size>9</size>
+      </method>
+      <method name="Void GetProperty()" attrs="134">
+        <size>13</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-101.cs">
+    <type name="Test.MyAttribute">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="Test.My2Attribute">
+      <method name="Void .ctor(String, Int32)" attrs="6278">
+        <size>32</size>
+      </method>
+    </type>
+    <type name="Test.Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>114</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-102.cs">
+    <type name="N1.MineAttribute">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="N1.ReturnAttribute">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="N1.Foo">
+      <method name="Int32 Main()" attrs="150">
+        <size>292</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-103.cs">
+    <type name="A">
+      <method name="Int32 Foo()" attrs="1476">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 Foo()" attrs="196">
+        <size>10</size>
+      </method>
+      <method name="Int32 M()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-104.cs">
+    <type name="Test">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-105.cs">
+    <type name="Test">
+      <method name="Int32 F(Int32)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>427</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+SimpleDelegate">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void async_callback(System.IAsyncResult)" attrs="145">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Test+SimpleDelegate">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-107.cs">
+    <type name="Test">
+      <method name="Int32 F(Int32)" attrs="145">
+        <size>28</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>97</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+SimpleDelegate">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void async_callback(System.IAsyncResult)" attrs="145">
+        <size>101</size>
+      </method>
+    </type>
+    <type name="Test+SimpleDelegate">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-108.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>107</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-109.cs">
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-11.cs">
+    <type name="Test">
+      <method name="Int32 boxtest()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-110.cs">
+    <type name="test.test">
+      <method name="Int32 test_method(Int32)" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-111.cs">
+    <type name="T">
+      <method name="System.Object get_obj()" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-112.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32[] g()" attrs="145">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-113.cs">
+    <type name="X">
+      <method name="Void g_object_get(IntPtr, System.String, System.String ByRef, IntPtr)" attrs="129">
+        <size>5</size>
+      </method>
+      <method name="Void GetProperty(System.String, System.String ByRef)" attrs="134">
+        <size>22</size>
+      </method>
+      <method name="Void g_object_get(IntPtr, System.String, Boolean ByRef, IntPtr)" attrs="129">
+        <size>5</size>
+      </method>
+      <method name="Void GetProperty(System.String, Boolean ByRef)" attrs="134">
+        <size>22</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-114.cs">
+    <type name="MyClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyClass+IsAnything">
+      <method name="Boolean Invoke(Char)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Char, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Boolean EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-115.cs">
+    <type name="A">
+      <method name="X op_Explicit(A)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="blah">
+      <method name="Int32 Main()" attrs="150">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-116.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-117.cs">
+    <type name="Blah">
+      <method name="Int32 Main()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-118.cs">
+    <type name="Container">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-119.cs">
+    <type name="Value">
+      <method name="Int32 op_Explicit(Value)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="MyObject op_Explicit(Value)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="UInt32 op_Explicit(Value)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyObject">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Derived">
+      <method name="Derived Blah()" attrs="129">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>45</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-12.cs">
+    <type name="X">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>322</size>
+      </method>
+      <method name="System.String s(System.String, Int32)" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="System.String x(System.String, System.Object)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-120.cs">
+    <type name="test">
+      <method name="Int32 Main()" attrs="150">
+        <size>154</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-121.cs">
+    <type name="X">
+      <method name="Int32 g()" attrs="145">
+        <size>22</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>104</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-122.cs">
+    <type name="A">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+B">
+      <method name="Void Foo()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-123.cs">
+    <type name="X">
+      <method name="System.Object get_non_null()" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="System.Object get_null()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>115</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-124.cs">
+    <type name="t">
+      <method name="Void a()" attrs="129">
+        <size>21</size>
+      </method>
+      <method name="Void b()" attrs="129">
+        <size>21</size>
+      </method>
+      <method name="Void c()" attrs="129">
+        <size>31</size>
+      </method>
+      <method name="Void d()" attrs="129">
+        <size>37</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-125.cs">
+    <type name="Fraction">
+      <method name="Fraction op_Implicit(Int32)" attrs="2198">
+        <size>25</size>
+      </method>
+      <method name="Int32 op_Explicit(Fraction)" attrs="2198">
+        <size>32</size>
+      </method>
+      <method name="Boolean op_Equality(Fraction, Fraction)" attrs="2198">
+        <size>62</size>
+      </method>
+      <method name="Boolean op_Inequality(Fraction, Fraction)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>50</size>
+      </method>
+      <method name="Fraction op_Addition(Fraction, Fraction)" attrs="2198">
+        <size>116</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>55</size>
+      </method>
+      <method name="Void .ctor(Int32, Int32)" attrs="6278">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>32</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Int32 Main()" attrs="150">
+        <size>158</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-126.cs">
+    <type name="X">
+      <method name="Void Iface.Method()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>46</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-127.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>45</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-128.cs">
+    <type name="SimpleAttribute">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="MineAttribute">
+      <method name="Void .ctor(Type[])" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Int32 MM()" attrs="150">
+        <size>194</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Blah">
+      <method name="Int32 get_Value()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Value(Int32)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Int32 Another()" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-129.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>156</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-13.cs">
+    <type name="Foo">
+      <method name="Boolean MyMethod()" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Blah">
+      <method name="Int32 Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-130.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>20</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-131.cs">
+    <type name="SimpleAttribute">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Blah">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-132.cs">
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>75</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-133.cs">
+    <type name="T">
+      <method name="Void DecodeOp(UInt16, OpCode ByRef, OpFlags ByRef)" attrs="145">
+        <size>22</size>
+      </method>
+      <method name="Void get_struct(S ByRef)" attrs="145">
+        <size>25</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>103</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-134.cs">
+    <type name="AA">
+      <method name="Void A()" attrs="486">
+        <size>9</size>
+      </method>
+      <method name="Void B()" attrs="486">
+        <size>9</size>
+      </method>
+      <method name="Void C()" attrs="486">
+        <size>9</size>
+      </method>
+      <method name="Boolean get_OK()" attrs="2182">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BB">
+      <method name="Void A()" attrs="486">
+        <size>19</size>
+      </method>
+      <method name="Void B()" attrs="486">
+        <size>9</size>
+      </method>
+      <method name="Void C()" attrs="486">
+        <size>9</size>
+      </method>
+      <method name="Boolean get_OK()" attrs="2182">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Void A()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void B()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>94</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-135.cs">
+    <type name="A">
+      <method name="Void doh()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="IA IB.get_Prop()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="A get_Prop()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>50</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-136.cs">
+    <type name="MyCar">
+      <method name="Void IDiagnostic.Stop()" attrs="481">
+        <size>9</size>
+      </method>
+      <method name="Void IAutomobile.Stop()" attrs="481">
+        <size>9</size>
+      </method>
+      <method name="Void Stop()" attrs="134">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestConflict">
+      <method name="Int32 Main()" attrs="150">
+        <size>92</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-137.cs">
+    <type name="C">
+      <method name="Void X()" attrs="486">
+        <size>16</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>123</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-138.cs">
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-139.cs">
+    <type name="T">
+      <method name="Void one()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void two(T)" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void three(T ByRef)" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>39</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-14.cs">
+    <type name="Obj.A">
+      <method name="Int32 F()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 G()" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Int32 H()" attrs="486">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Obj.B">
+      <method name="Int32 F()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 G()" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Int32 H()" attrs="134">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Obj.Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>192</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-140.cs">
+    <type name="BreakTest">
+      <method name="Void B()" attrs="150">
+        <size>50</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-141.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>61</size>
+      </method>
+      <method name="Boolean Test1()" attrs="145">
+        <size>36</size>
+      </method>
+      <method name="Boolean Test2()" attrs="145">
+        <size>37</size>
+      </method>
+      <method name="Boolean Test3()" attrs="145">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-142.cs">
+    <type name="TestClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor(EventHandler)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="TestBaseClass">
+      <method name="Void add_Blah(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Blah(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-143.cs">
+    <type name="MonoEnumInfo">
+      <method name="Void stuff()" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Int32 GetInfo(MonoEnumInfo ByRef)" attrs="145">
+        <size>28</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>50</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-144.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-145.cs">
+    <type name="JagArrayTest">
+      <method name="Void Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>25</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-146.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>352</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-147.cs">
+    <type name="X">
+      <method name="X Foo()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="X Bar()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="X Baz()" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="UInt32 get_Property()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="UInt32 get_StaticProperty()" attrs="2198">
+        <size>11</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>15</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Y Foo()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Y Bar()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Y Baz()" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="UInt32 get_Property()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="UInt32 get_StaticProperty()" attrs="2198">
+        <size>11</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>15</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Int32 Test()" attrs="134">
+        <size>132</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>346</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-148.cs">
+    <type name="Y">
+      <method name="Int32 X.get_Foo(Int32)" attrs="2529">
+        <size>10</size>
+      </method>
+      <method name="Int32 get_Bar(Int32)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Int64 get_Bar(Double)" attrs="2182">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Int64 get_Whatever(Double)" attrs="2182">
+        <size>11</size>
+      </method>
+      <method name="Single get_Whatever(Int64, Int32)" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Int32 InstanceTest()" attrs="134">
+        <size>72</size>
+      </method>
+      <method name="Int32 Test()" attrs="150">
+        <size>429</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>107</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Z+MyArray">
+      <method name="System.Object get_Item(Int32)" attrs="2246">
+        <size>16</size>
+      </method>
+      <method name="Void set_Item(Int32, System.Object)" attrs="2246">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Int32 get_Monkey(Int32)" attrs="2182">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int64 get_Item(Int64, Int32)" attrs="2182">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Int64 get_Item(Int64, Int32)" attrs="2182">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="System.String get_g()" attrs="2502">
+        <size>14</size>
+      </method>
+      <method name="Void set_g(System.String)" attrs="2502">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="F">
+      <method name="System.String get_g()" attrs="2246">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="DisposableNotifyList">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ChildList">
+      <method name="Void Test()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-149.cs">
+    <type name="MyDelegate">
+      <method name="Int64 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void X.add_Foo(System.EventHandler)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Void X.remove_Foo(System.EventHandler)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Void add_Foo(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Foo(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void add_TestEvent(MyDelegate)" attrs="2534">
+        <size>42</size>
+      </method>
+      <method name="Void remove_TestEvent(MyDelegate)" attrs="2534">
+        <size>42</size>
+      </method>
+      <method name="Int32 Test()" attrs="134">
+        <size>162</size>
+      </method>
+      <method name="Void callback1(System.Object, System.EventArgs)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Int64 callback2(Int32)" attrs="145">
+        <size>27</size>
+      </method>
+      <method name="Void callback3(System.Object, System.EventArgs)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Int32 a()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>100</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Z+SomeEventHandler">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Static">
+      <method name="Void add_Test(System.EventHandler)" attrs="2198">
+        <size>40</size>
+      </method>
+      <method name="Void remove_Test(System.EventHandler)" attrs="2198">
+        <size>40</size>
+      </method>
+      <method name="Void Fire()" attrs="134">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyDelegate">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int64 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Void add_BuildStarted(SomeEventHandler)" attrs="2198">
+        <size>40</size>
+      </method>
+      <method name="Void remove_BuildStarted(SomeEventHandler)" attrs="2198">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="Z+SomeEventHandler">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-15.cs">
+    <type name="Implementor">
+      <method name="Int32 A()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="StructImplementor">
+      <method name="Int32 A()" attrs="486">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Run">
+      <method name="Int32 Main()" attrs="150">
+        <size>73</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-150.cs">
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-151.cs">
+    <type name="A.Iface">
+      <method name="Void bah()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.my">
+      <method name="Void doit(System.Object)" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-152.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>115</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-153.cs">
+    <type name="Z">
+      <method name="Void Test2(System.String, System.Object[])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Test(System.String, System.Object[])" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>94</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-154.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void test1(Single ByRef)" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void test2(Int32, Single ByRef)" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Int32 test4(Int32, Single ByRef)" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Int32 test5(Single ByRef, Int64)" attrs="150">
+        <size>81</size>
+      </method>
+      <method name="Int32 test6(Single ByRef)" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Int64 test8(Int32)" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Int64 test9(Int32)" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void test10(Int32, Single ByRef)" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="Int64 test11(Int32)" attrs="150">
+        <size>55</size>
+      </method>
+      <method name="Void test12(Single ByRef)" attrs="150">
+        <size>24</size>
+      </method>
+      <method name="Void test13(Int32, Single ByRef)" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Int64 test14(Int32, Single ByRef)" attrs="150">
+        <size>77</size>
+      </method>
+      <method name="Int32 test15(Int32, Single ByRef)" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void test16()" attrs="150">
+        <size>66</size>
+      </method>
+      <method name="Void test17()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void test18(Int32, Int32 ByRef)" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="Int32 test19()" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Int32 test20()" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 test21()" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="Int32 test22()" attrs="145">
+        <size>31</size>
+      </method>
+      <method name="Int32 test23(System.Object, Int32, Boolean ByRef)" attrs="145">
+        <size>44</size>
+      </method>
+      <method name="Int64 test24(Int32)" attrs="145">
+        <size>89</size>
+      </method>
+      <method name="Int64 test25(Int32)" attrs="145">
+        <size>48</size>
+      </method>
+      <method name="Void test26()" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Int32 test27()" attrs="145">
+        <size>22</size>
+      </method>
+      <method name="Void test28(System.Object ByRef)" attrs="145">
+        <size>24</size>
+      </method>
+      <method name="Boolean test29(Int32 ByRef)" attrs="145">
+        <size>26</size>
+      </method>
+      <method name="System.String test30(System.String ByRef)" attrs="134">
+        <size>41</size>
+      </method>
+      <method name="System.String test31(Int32)" attrs="134">
+        <size>94</size>
+      </method>
+      <method name="Void test32()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Int32 test33()" attrs="134">
+        <size>12</size>
+      </method>
+      <method name="Void test34()" attrs="134">
+        <size>26</size>
+      </method>
+      <method name="Void test35(Int32, Boolean)" attrs="150">
+        <size>35</size>
+      </method>
+      <method name="Void test36()" attrs="150">
+        <size>46</size>
+      </method>
+      <method name="Void test37()" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Int32 test38()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 test40(Int32)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void test41()" attrs="134">
+        <size>44</size>
+      </method>
+      <method name="Void test42(Int32)" attrs="134">
+        <size>73</size>
+      </method>
+      <method name="Void test3(Int64[], Int32)" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Int64 test7(Int32[], Int32)" attrs="150">
+        <size>75</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-155.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>52</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+TestClass">
+      <method name="System.String test(System.String)" attrs="486">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-156.cs">
+    <type name="Internal">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Public">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+NestedPublic">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+NestedAssembly">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+NestedFamilyAndAssembly">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+NestedFamily">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+NestedPrivate">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="F">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void Test(YI)" attrs="131">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y+YA">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y+YB">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y+YC">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y+YD">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y+YE">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y+YF">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y+YG">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y+YH">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Z+P">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="W">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="W+WA">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="W+WB">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="W+WC">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="W+WD">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="W+WE">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="W+WCA">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="W+WCB">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="W+WCB+WCD">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="W+WCB+WCD+WCE">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="G">
+      <method name="Void Test(X)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="G+I">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="G+I+J">
+      <method name="Void Test(Foo)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="H">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Hello(System.String)" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="H">
+      <method name="Void Test(Int32[])" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-157.cs">
+    <type name="Test.MyAttribute">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="Test.Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>233</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-158.cs">
+    <type name="My">
+      <method name="Void .ctor(Object)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="My+Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>109</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-159.cs">
+    <type name="A.Iface">
+      <method name="Void bah()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.my">
+      <method name="Void doit(System.Object)" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-16.cs">
+    <type name="Mine.Blah">
+      <method name="Int32 op_Addition(Mine.Blah, Mine.Blah)" attrs="2198">
+        <size>20</size>
+      </method>
+      <method name="Int32 op_Implicit(Mine.Blah)" attrs="2198">
+        <size>20</size>
+      </method>
+      <method name="Byte op_Implicit(Mine.Blah)" attrs="2198">
+        <size>20</size>
+      </method>
+      <method name="Int16 op_Implicit(Mine.Blah)" attrs="2198">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Mine.Foo">
+      <method name="Int32 Main()" attrs="150">
+        <size>134</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-160.cs">
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Int32 blah(System.Object)" attrs="145">
+        <size>70</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-161.cs">
+    <type name="ZipEntry">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor(ZipEntry)" attrs="6278">
+        <size>19</size>
+      </method>
+      <method name="System.DateTime get_DateTime()" attrs="2182">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-162.cs">
+    <type name="A">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>28</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor(Int64)" attrs="6278">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void test_output(A)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void test_output(B)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void test_output(E)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void test_output(F)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void test1()" attrs="145">
+        <size>22</size>
+      </method>
+      <method name="Void test2()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Void test3()" attrs="145">
+        <size>22</size>
+      </method>
+      <method name="Void test4(A)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void test5(A ByRef)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void test6(B ByRef)" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void test7()" attrs="145">
+        <size>29</size>
+      </method>
+      <method name="Void test8()" attrs="145">
+        <size>51</size>
+      </method>
+      <method name="Void test9()" attrs="145">
+        <size>27</size>
+      </method>
+      <method name="Void test10()" attrs="145">
+        <size>83</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-163.cs">
+    <type name="Blah">
+      <method name="Int32 Foo(System.String)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo(System.Object)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-164.cs">
+    <type name="X">
+      <method name="Int32 Foo()" attrs="452">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="X+FooDelegate">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Int32 Foo()" attrs="196">
+        <size>10</size>
+      </method>
+      <method name="Int32 Hello()" attrs="129">
+        <size>20</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>47</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="X+FooDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-165.cs">
+    <type name="Testing">
+      <method name="Int32 TestEnumInit(Fruit)" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>90</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-166.cs">
+    <type name="Test">
+      <method name="Int32 ITest.get_Item(Int32)" attrs="2529">
+        <size>10</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Int32 get_TargetIntegerSize()" attrs="2534">
+        <size>10</size>
+      </method>
+      <method name="Int32 Hello(IInferior)" attrs="129">
+        <size>15</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>84</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-167.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>62</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 Test(Foo[])" attrs="145">
+        <size>41</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-168.cs">
+    <type name="X">
+      <method name="System.String op_Implicit(X)" attrs="2198">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-169.cs">
+    <type name="basec">
+      <method name="System.String get_Message()" attrs="2502">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="der">
+      <method name="System.String get_Message()" attrs="2246">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Base">
+      <method name="Int32 get_Thingy()" attrs="2502">
+        <size>15</size>
+      </method>
+      <method name="Void set_Thingy(Int32)" attrs="2502">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Derived">
+      <method name="Int32 get_BaseThingy()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Thingy(Int32)" attrs="2246">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Int32 Main()" attrs="150">
+        <size>120</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-17.cs">
+    <type name="Blah">
+      <method name="Int32 Main()" attrs="150">
+        <size>53</size>
+      </method>
+      <method name="Byte op_Implicit(Blah)" attrs="2198">
+        <size>20</size>
+      </method>
+      <method name="Int16 op_Implicit(Blah)" attrs="2198">
+        <size>20</size>
+      </method>
+      <method name="Int32 op_Implicit(Blah)" attrs="2198">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-170.cs">
+    <type name="X">
+      <method name="Int32 get_prop()" attrs="2502">
+        <size>15</size>
+      </method>
+      <method name="Void set_prop(Int32)" attrs="2502">
+        <size>9</size>
+      </method>
+      <method name="Void set_AAA(Int32)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Int32 get_prop()" attrs="2246">
+        <size>15</size>
+      </method>
+      <method name="Void set_prop(Int32)" attrs="2246">
+        <size>9</size>
+      </method>
+      <method name="Int32 A()" attrs="129">
+        <size>56</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-171.cs">
+    <type name="IntPtr_Conv.Class1">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-172.cs">
+    <type name="X">
+      <method name="Boolean ff()" attrs="145">
+        <size>22</size>
+      </method>
+      <method name="Boolean tt()" attrs="145">
+        <size>22</size>
+      </method>
+      <method name="Int32 test_if()" attrs="145">
+        <size>741</size>
+      </method>
+      <method name="Int32 test_while()" attrs="145">
+        <size>499</size>
+      </method>
+      <method name="Int32 test_inline()" attrs="145">
+        <size>42</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>132</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>49</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-173.cs">
+    <type name="Base">
+      <method name="Int32 get_Value()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6276">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor(UInt32)" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor(Int64)" attrs="6278">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor(UInt64)" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor(Int16)" attrs="6278">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor(UInt16)" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void .ctor(SByte)" attrs="6278">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor(Byte)" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="E op_Implicit(Int64)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int64)" attrs="6278">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor(E)" attrs="6278">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="F">
+      <method name="F op_Implicit(Int32)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor(F)" attrs="6278">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Test()" attrs="145">
+        <size>297</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-174.cs">
+    <type name="ProtectedAccessToPropertyOnChild">
+      <method name="Int32 Main()" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6273">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="TestAccessToPrivateMemberInParentClass">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="TestAccessToPrivateMemberInParentClass+CholeskyDecomposition">
+      <method name="Void .ctor(TestAccessToPrivateMemberInParentClass)" attrs="6278">
+        <size>38</size>
+      </method>
+    </type>
+    <type name="TestAccessToProtectedOnChildInstanceFromParent">
+      <method name="Int32 Test()" attrs="134">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="TestAccessToProtectedOnChildInstanceFromParent+Parent">
+      <method name="Void .ctor()" attrs="6276">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="TestAccessToProtectedOnChildInstanceFromParent+Child">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestAccessToPrivateMemberInParentClass">
+      <method name="Double[][] get_Array()" attrs="2177">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="TestAccessToProtectedOnChildInstanceFromParent+Parent">
+      <method name="Int32 TestAccessToProtected(Child)" attrs="134">
+        <size>28</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-175.cs">
+    <type name="RVA">
+      <method name="RVA op_Implicit(UInt32)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="UInt32 op_Implicit(RVA)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor(UInt32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>77</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-176.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-177.cs">
+    <type name="MethodAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ReturnAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Method()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-178.cs">
+    <type name="BrowsableClass">
+      <method name="BrowsableClass op_Increment(BrowsableClass)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-179.cs">
+    <type name="A">
+      <method name="Void set_Item(Double, Double)" attrs="2182">
+        <size>16</size>
+      </method>
+      <method name="Double get_Item(Double)" attrs="2182">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void set_Item(Double, Double)" attrs="2182">
+        <size>16</size>
+      </method>
+      <method name="Double get_Item(Double)" attrs="2182">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void set_Item(System.String, System.String)" attrs="2182">
+        <size>16</size>
+      </method>
+      <method name="System.String get_Item(System.String)" attrs="2182">
+        <size>44</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32)" attrs="2182">
+        <size>16</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="EntryPoint">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>173</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-18.cs">
+    <type name="X">
+      <method name="Void m()" attrs="145">
+        <size>63</size>
+      </method>
+      <method name="Int32 ret(Int32)" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>90</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-180.cs">
+    <type name="Testing">
+      <method name="Void Main()" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-181.cs">
+    <type name="Test">
+      <method name="Void test()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>178</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void test2()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void test3()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void test4()" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-182.cs">
+    <type name="TS">
+      <method name="Int64 get_Ticks()" attrs="2182">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="DT">
+      <method name="Int64 get_Ticks()" attrs="2182">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-183.cs">
+    <type name="Test">
+      <method name="Int32 M(Int32, Int32 ByRef)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>89</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+D">
+      <method name="Int32 Invoke(Int32, Int32 ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32, Int32 ByRef, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(Int32 ByRef, System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-184.cs">
+    <type name="Struct">
+      <method name="Int32 get_X()" attrs="2534">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="User">
+      <method name="Void .ctor(Interface)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6273">
+        <size>56</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-185.cs">
+    <type name="X">
+      <method name="Int32 Test(Int32)" attrs="150">
+        <size>50</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>47</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-186.cs">
+    <type name="TestBUG.myAttribute">
+      <method name="Void .ctor(String, String, String, Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="TestBUG.Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-187.cs">
+    <type name="MyClass">
+      <method name="Container get_Item(System.String)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Item(System.String, Container)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Container">
+      <method name="Container op_Addition(Container, System.Object)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void A(System.Collections.Specialized.NameValueCollection, MyClass, System.Object)" attrs="145">
+        <size>66</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-188.cs">
+    <type name="Enumerator">
+      <method name="Boolean MoveNext()" attrs="134">
+        <size>29</size>
+      </method>
+      <method name="Char get_Current()" attrs="2182">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="RealEnumerator">
+      <method name="Void Dispose()" attrs="486">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor(Coll)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Coll">
+      <method name="Enumerator GetEnumerator()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>93</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-189.cs">
+    <type name="MyTest">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>81</size>
+      </method>
+      <method name="Int32 m(Int32, Double)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoTest">
+      <method name="Int32 method1(System.String, System.Object[])" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Void testmethod()" attrs="134">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoTest2">
+      <method name="Int32 method1(System.String, System.Object[])" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void testmethod2()" attrs="134">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyTest">
+      <method name="Int32 m(Int32, Int32[])" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-19.cs">
+    <type name="I">
+      <method name="System.String fn(System.String)" attrs="145">
+        <size>25</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="I+GetTextFn">
+      <method name="System.String Invoke(System.String)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Thread_func()" attrs="129">
+        <size>12</size>
+      </method>
+      <method name="Int32 Func(Int32, Int32)" attrs="134">
+        <size>12</size>
+      </method>
+      <method name="Void Bar()" attrs="134">
+        <size>45</size>
+      </method>
+      <method name="Boolean MyFilter(System.Reflection.MemberInfo, System.Object)" attrs="145">
+        <size>26</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>337</size>
+      </method>
+      <method name="Int32 multiply_by_three(Int32)" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+Foo">
+      <method name="Int32 Invoke(Int32, Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="NameSpace.TestDelegate">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestNamespace.TestClass">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestNamespace.TestClass+NotWorkingDelegate">
+      <method name="Single Invoke(Single, System.Object[])" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="I+GetTextFn">
+      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+Foo">
+      <method name="System.IAsyncResult BeginInvoke(Int32, Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="NameSpace.TestDelegate">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestNamespace.TestClass+NotWorkingDelegate">
+      <method name="System.IAsyncResult BeginInvoke(Single, System.Object[], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Single EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-190.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="A+B">
+      <method name="Void Test()" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+C">
+      <method name="Void Test(A)" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-191.cs">
+    <type name="X">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+E">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+D+P">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y+Op">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="R">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-192.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>4</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-193.cs">
+    <type name="A">
+      <method name="Int32 Test(Int32)" attrs="145">
+        <size>93</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-194.cs">
+    <type name="TestParams">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>56</size>
+      </method>
+      <method name="Int32 Params(System.Object[])" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-195.cs">
+    <type name="Y">
+      <method name="Int32 C()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6273">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6273">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-196.cs">
+    <type name="X">
+      <method name="Void Bug1()" attrs="129">
+        <size>16</size>
+      </method>
+      <method name="Void Bug2()" attrs="129">
+        <size>16</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-197.cs">
+    <type name="X">
+      <method name="Void Foo()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Void Foo()" attrs="198">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-198.cs">
+    <type name="N1.N3.N4.Bar">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N1.N2.Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N5.N6.Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N5.N7.N8.Bar">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FirstOuter.FirstInner.First">
+      <method name="System.String get_MyIdentity()" attrs="2182">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FirstOuter.Second">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FirstOuter.SecondInner.Third">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FirstOuter.FirstInner.Fourth">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Fifth">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M1.M2.M3.Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="P1.P2.Bar">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-199.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N1.Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N1.Foo+Foo2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N1.Bar2">
+      <method name="Int32 Talk()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N2.Bar">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N2.Bar+Bar2">
+      <method name="Int32 Talk()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-2.cs">
+    <type name="X">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-20.cs">
+    <type name="A">
+      <method name="Void X()" attrs="134">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void X()" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void TestB()" attrs="134">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Ax">
+      <method name="Void A()" attrs="454">
+        <size>9</size>
+      </method>
+      <method name="Void B()" attrs="454">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bx">
+      <method name="Void A()" attrs="198">
+        <size>9</size>
+      </method>
+      <method name="Void B()" attrs="134">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>123</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-200.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>130</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-201.cs">
+    <type name="Parent">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Child">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Child+Nested">
+      <method name="Void .ctor()" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="Collide">
+      <method name="Int32 Main()" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>15</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-202.cs">
+    <type name="X.X">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.B.C.D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-203.cs">
+    <type name="Foo">
+      <method name="Modifiers get_Modifiers()" attrs="2179">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-204.cs">
+    <type name="X">
+      <method name="System.String ToString()" attrs="198">
+        <size>30</size>
+      </method>
+      <method name="X op_BitwiseAnd(X, X)" attrs="2198">
+        <size>27</size>
+      </method>
+      <method name="X op_BitwiseOr(X, X)" attrs="2198">
+        <size>27</size>
+      </method>
+      <method name="Boolean op_True(X)" attrs="2198">
+        <size>23</size>
+      </method>
+      <method name="Boolean op_False(X)" attrs="2198">
+        <size>20</size>
+      </method>
+      <method name="Int32 Test()" attrs="150">
+        <size>187</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-205.cs">
+    <type name="A">
+      <method name="Void .ctor(Object)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-206.cs">
+    <type name="X">
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>92</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32[] get_Item(Int32[])" attrs="2534">
+        <size>47</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-207.cs">
+    <type name="Test">
+      <method name="Void Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void hello(Int32)" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void world(Int32)" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>161</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-208.cs">
+    <type name="X">
+      <method name="System.String get_Item(System.String)" attrs="2534">
+        <size>10</size>
+      </method>
+      <method name="Void Test()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-209.cs">
+    <type name="A">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 get_Foo()" attrs="2182">
+        <size>17</size>
+      </method>
+      <method name="Void set_Foo(Int32)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void set_Item(System.String, System.String)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void set_Bar(System.String)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="A get_A()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_A(A)" attrs="2182">
+        <size>13</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>85</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-21.cs">
+    <type name="Blah">
+      <method name="Int32 Main()" attrs="150">
+        <size>60</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Blah+Foo">
+      <method name="Int32 Bar(Int32, Int32)" attrs="134">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-210.cs">
+    <type name="FooHandler">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void foo()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FooHandler">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-211.cs">
+    <type name="X">
+      <method name="X op_Implicit(Int32)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Y op_Implicit(X)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(X)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Z op_Implicit(Y)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor(Y)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-212.cs">
+    <type name="Problem">
+      <method name="Problem op_Implicit(Int32)" attrs="2198">
+        <size>30</size>
+      </method>
+      <method name="Int32 Multi(Int32, Problem[])" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>84</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-213.cs">
+    <type name="MyTest">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="Void Print()" attrs="486">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-214.cs">
+    <type name="N2.Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N1.C1">
+      <method name="Void Foo()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-215.cs">
+    <type name="Test">
+      <method name="N1.C1 get_C1()" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N1.C1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-216.cs">
+    <type name="OnWhateverDelegate">
+      <method name="Void Invoke(System.String)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="cls">
+      <method name="Void add_OnWhatever(OnWhateverDelegate)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_OnWhatever(OnWhateverDelegate)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void CallMyDel(System.String)" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="cls+nestedcls">
+      <method name="Void CallParentDel(cls, System.String)" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoEmbed">
+      <method name="Void Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void Whatever(System.String)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="OnWhateverDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-217.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>226</size>
+      </method>
+      <method name="System.Object compare_gte(Int32, Int32)" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="System.Object compare_lte(Int32, Int32)" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-218.cs">
+    <type name="T">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void compareQueryQuery1(System.Object)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="T+foo">
+      <method name="Void Invoke(System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-219.cs">
+    <type name="TestAttribute">
+      <method name="System.Type get_Type()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Type)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>79</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-22.cs">
+    <type name="S">
+      <method name="T GetT()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void Init()" attrs="134">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Int32 Main()" attrs="150">
+        <size>81</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-220.cs">
+    <type name="MonoBUG.Bug">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>164</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoBUG.Foo">
+      <method name="System.String get_Name()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="MonoBUG.FooList">
+      <method name="Void Add(MonoBUG.Foo)" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="MonoBUG.FooList+FooEnumerator">
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>36</size>
+      </method>
+      <method name="Boolean System.Collections.IEnumerator.MoveNext()" attrs="481">
+        <size>20</size>
+      </method>
+      <method name="Void System.Collections.IEnumerator.Reset()" attrs="481">
+        <size>13</size>
+      </method>
+      <method name="MonoBUG.Foo get_Current()" attrs="2182">
+        <size>54</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void Reset()" attrs="134">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor(FooList)" attrs="6278">
+        <size>32</size>
+      </method>
+    </type>
+    <type name="MonoBUG.FooList">
+      <method name="FooEnumerator GetEnumerator()" attrs="134">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-221.cs">
+    <type name="A">
+      <method name="Int32 get_Blah()" attrs="2502">
+        <size>10</size>
+      </method>
+      <method name="Void set_Blah(Int32)" attrs="2502">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 get_Blah()" attrs="2246">
+        <size>10</size>
+      </method>
+      <method name="Boolean Test()" attrs="150">
+        <size>72</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 get_Blah()" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void set_Blah(Int32)" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Int32 get_Blah()" attrs="2246">
+        <size>10</size>
+      </method>
+      <method name="Void set_Blah(Int32)" attrs="2246">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="Int32 get_Blah()" attrs="2246">
+        <size>15</size>
+      </method>
+      <method name="Boolean Test()" attrs="150">
+        <size>72</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="F">
+      <method name="Int32 IBlah.get_Item(Int32)" attrs="2529">
+        <size>10</size>
+      </method>
+      <method name="Void IBlah.set_Item(Int32, Int32)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Int32 IBlah.get_Blah()" attrs="2529">
+        <size>10</size>
+      </method>
+      <method name="Void IBlah.set_Blah(Int32)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_Blah()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Blah(Int32)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Boolean Test()" attrs="150">
+        <size>134</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Driver">
+      <method name="Int32 Main()" attrs="150">
+        <size>61</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-222.cs">
+    <type name="Class_1">
+      <method name="UIntPtr Valid()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-223.cs">
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>89</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-224.cs">
+    <type name="XmlMemberArrayAttribute">
+      <method name="System.String get_Name()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Name(System.String)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Boolean get_IsRequired()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_IsRequired(Boolean)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>39</size>
+      </method>
+    </type>
+    <type name="t">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="XmlMemberArrayAttribute">
+      <method name="Char[] get_Separator()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Separator(Char[])" attrs="2182">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-225.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 foo()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-226.cs">
+    <type name="Test226">
+      <method name="Void Test()" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-227.cs">
+    <type name="A.T">
+      <method name="Void Main()" attrs="150">
+        <size>4</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-228.cs">
+    <type name="BadRefTest.CtorInc">
+      <method name="Int32 IncByRef(Int32 ByRef)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Boolean Results(Int32)" attrs="150">
+        <size>106</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>31</size>
+      </method>
+    </type>
+    <type name="BadRefTest.Runner">
+      <method name="Int32 Main()" attrs="150">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-229.cs">
+    <type name="List">
+      <method name="Void Add(Int32)" attrs="134">
+        <size>27</size>
+      </method>
+      <method name="MyEnumerator GetEnumerator()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="List+MyEnumerator">
+      <method name="System.Object get_Current()" attrs="2534">
+        <size>32</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>39</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor(List)" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="UberList">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>46</size>
+      </method>
+      <method name="Boolean One()" attrs="145">
+        <size>76</size>
+      </method>
+      <method name="Boolean Two()" attrs="145">
+        <size>76</size>
+      </method>
+      <method name="Boolean Three()" attrs="145">
+        <size>76</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="List">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>20</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-23.cs">
+    <type name="X">
+      <method name="Int32 get_Value()" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="Void set_Value(Int32)" attrs="2198">
+        <size>8</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>213</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="System.String get_Value()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Value(System.String)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Int32 get_IVal()" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="Void set_IVal(Int32)" attrs="2198">
+        <size>8</size>
+      </method>
+      <method name="Int32 get_XVal()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_XVal(Int32)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-230.cs">
+    <type name="TestClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>70</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-231.cs">
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>48</size>
+      </method>
+      <method name="Void Foo()" attrs="129">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-232.cs">
+    <type name="CtorInfoTest">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>978</size>
+      </method>
+      <method name="Void Assert(System.Object, System.Object)" attrs="145">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-233.cs">
+    <type name="Tests">
+      <method name="Int32 Main()" attrs="150">
+        <size>24</size>
+      </method>
+      <method name="Int32 test_0_beq()" attrs="145">
+        <size>42</size>
+      </method>
+      <method name="Int32 test_0_bne_un()" attrs="145">
+        <size>42</size>
+      </method>
+      <method name="Int32 test_0_conv_r8()" attrs="145">
+        <size>42</size>
+      </method>
+      <method name="Int32 test_0_conv_i()" attrs="145">
+        <size>111</size>
+      </method>
+      <method name="Int32 test_5_conv_r4()" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Int32 test_5_double_conv_r4()" attrs="145">
+        <size>24</size>
+      </method>
+      <method name="Int32 test_5_float_conv_r8()" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Int32 test_5_conv_r8()" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Int32 test_5_add()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 test_5_sub()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 test_24_mul()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 test_4_div()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 test_2_rem()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 test_2_neg()" attrs="145">
+        <size>22</size>
+      </method>
+      <method name="Int32 test_46_float_add_spill()" attrs="145">
+        <size>139</size>
+      </method>
+      <method name="Int32 test_362880_float_mul_spill()" attrs="145">
+        <size>139</size>
+      </method>
+      <method name="Int32 test_4_long_cast()" attrs="145">
+        <size>42</size>
+      </method>
+      <method name="Int32 test_16_float_cmp()" attrs="145">
+        <size>423</size>
+      </method>
+      <method name="Int32 test_15_float_cmp_un()" attrs="145">
+        <size>397</size>
+      </method>
+      <method name="Int32 test_15_float_branch()" attrs="145">
+        <size>302</size>
+      </method>
+      <method name="Int32 test_15_float_branch_un()" attrs="145">
+        <size>302</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestDriver">
+      <method name="Int32 RunTests(System.Type, System.String[])" attrs="150">
+        <size>599</size>
+      </method>
+      <method name="Int32 RunTests(System.Type)" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-234.cs">
+    <type name="T">
+      <method name="Void Main()" attrs="150">
+        <size>700</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-235.cs">
+    <type name="T">
+      <method name="Void Foo(T, T)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Foo(System.Object[])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-236.cs">
+    <type name="Tests.Test">
+      <method name="System.Object Tests.IIndexer.get_Item(Int32)" attrs="2529">
+        <size>17</size>
+      </method>
+      <method name="Void Tests.IIndexer.set_Item(Int32, System.Object)" attrs="2529">
+        <size>11</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-237.cs">
+    <type name="Params">
+      <method name="Void foo(System.String, System.Object[])" attrs="150">
+        <size>133</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>46</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>96</size>
+      </method>
+    </type>
+    <type name="Params+FOO">
+      <method name="Void Invoke(System.String, System.Object[])" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(System.String, System.Object[], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-238.cs">
+    <type name="TestClass">
+      <method name="Void ConditionalMethod()" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-239.cs">
+    <type name="BaseClass">
+      <method name="Void ConditionalMethod()" attrs="454">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestClass">
+      <method name="Void ConditionalMethod()" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-24.cs">
+    <type name="X">
+      <method name="System.String get_S()" attrs="2193">
+        <size>14</size>
+      </method>
+      <method name="Void set_S(System.String)" attrs="2193">
+        <size>8</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>115</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-240.cs">
+    <type name="TestClass">
+      <method name="Void ConditionalMethod()" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-241.cs">
+    <type name="Foo">
+      <method name="Int32 get_SomeProperty()" attrs="2500">
+        <size>11</size>
+      </method>
+      <method name="Int32 M()" attrs="452">
+        <size>11</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo+FooPrivate">
+      <method name="Int32 get_SomeProperty()" attrs="2244">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor(Foo)" attrs="6275">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-242.cs">
+    <type name="BaseClass">
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Derived">
+      <method name="Int32 get_Location()" attrs="2182">
+        <size>11</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-243.cs">
+    <type name="X">
+      <method name="Boolean Resolve(System.String)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="System.String Test()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-244.cs">
+    <type name="Foo">
+      <method name="Int32 Main()" attrs="150">
+        <size>164</size>
+      </method>
+      <method name="MyBool get_t()" attrs="2193">
+        <size>37</size>
+      </method>
+      <method name="MyBool get_f()" attrs="2193">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="MyBool">
+      <method name="MyBool op_BitwiseAnd(MyBool, MyBool)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="MyBool op_BitwiseOr(MyBool, MyBool)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="Boolean op_True(MyBool)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Boolean op_False(MyBool)" attrs="2198">
+        <size>19</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor(Boolean)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-245.cs">
+    <type name="Class2">
+      <method name="System.String get_def_kind()" attrs="2182">
+        <size>20</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-246.cs">
+    <type name="Blah">
+      <method name="Void Dispose()" attrs="486">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-247.cs">
+    <type name="B">
+      <method name="Void Main()" attrs="150">
+        <size>73</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Blah">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-248.cs">
+    <type name="T">
+      <method name="Foo GetFoo()" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-249.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-25.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>264</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-250.cs">
+    <type name="Test.foo3">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Tests">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-251.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-252.cs">
+    <type name="Foo">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void add_Bar(Foo)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Bar(Foo)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void m1()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>69</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-253.cs">
+    <type name="AccessibleAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyClass">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>80</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-254.cs">
+    <type name="TestAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test_1">
+      <method name="Void Test(Int32)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test_delegate">
+      <method name="System.Delegate Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test_2">
+      <method name="Int32 get_Test()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Test(Int32)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void set_Test2(Boolean)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test_3">
+      <method name="Void add_e_1(test_delegate)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_e_1(test_delegate)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void add_e_2(test_delegate)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_e_2(test_delegate)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test_4">
+      <method name="Void add_e_1(test_delegate)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void remove_e_1(test_delegate)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void add_e_2(test_delegate)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void remove_e_2(test_delegate)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void add_e_3(test_delegate)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void remove_e_3(test_delegate)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ClassMain">
+      <method name="Void Assert(System.Object[], Boolean, Int32)" attrs="145">
+        <size>80</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>1169</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test_delegate">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.Delegate EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-255.cs">
+    <type name="TestAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Method()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-256.cs">
+    <type name="TableColumn">
+      <method name="System.Object get_MagicValue()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_MagicValue(System.Object)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bug">
+      <method name="Int32 get_TInt()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-257.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Void call(Int32 ByRef)" attrs="145">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-258.cs">
+    <type name="MyTest.Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyTest.Test2">
+      <method name="Void MyTest.Test.Inner.Foo()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-259.cs">
+    <type name="Testing">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-26.cs">
+    <type name="Blah">
+      <method name="Int32 Foo(Int32, Int32)" attrs="134">
+        <size>12</size>
+      </method>
+      <method name="Int32 Test1()" attrs="150">
+        <size>130</size>
+      </method>
+      <method name="Int32 Test2()" attrs="150">
+        <size>59</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>58</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Blah+MyDelegate">
+      <method name="Int32 Invoke(Int32, Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Blah+List">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Blah">
+      <method name="Int32 Adder(Int32[])" attrs="150">
+        <size>45</size>
+      </method>
+    </type>
+    <type name="Blah+MyDelegate">
+      <method name="System.IAsyncResult BeginInvoke(Int32, Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Blah+List">
+      <method name="Int32 Invoke(Int32[])" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32[], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-260.cs">
+    <type name="x.Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="y.Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="b.a">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-261.cs">
+    <type name="T">
+      <method name="T get_Me()" attrs="2177">
+        <size>24</size>
+      </method>
+      <method name="T GetMe()" attrs="129">
+        <size>24</size>
+      </method>
+      <method name="Int32 Test(T)" attrs="145">
+        <size>134</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>35</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-262.cs">
+    <type name="n1.Attribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="n3.A">
+      <method name="Void Attribute()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void X()" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-263.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.String GetString(Byte[])" attrs="134">
+        <size>31</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-264.cs">
+    <type name="Proef">
+      <method name="Void add_OnDoSomething(System.EventHandler)" attrs="2182">
+        <size>25</size>
+      </method>
+      <method name="Void remove_OnDoSomething(System.EventHandler)" attrs="2182">
+        <size>25</size>
+      </method>
+      <method name="Void Temp(System.Object, System.EventArgs)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-265.cs">
+    <type name="ClassFormatError">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(String, Object[])" attrs="6275">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="UnsupportedClassVersionError">
+      <method name="Void .ctor(String)" attrs="6275">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-266.cs">
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-267.cs">
+    <type name="X">
+      <method name="System.String Text()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-268.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+Nested">
+      <method name="MyEnum D()" attrs="131">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-269.cs">
+    <type name="Result">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="Class1">
+      <method name="Int32 AddABunchOfInts(...)" attrs="145">
+        <size>75</size>
+      </method>
+      <method name="Int32 AddASecondBunchOfInts(Int32, ...)" attrs="145">
+        <size>75</size>
+      </method>
+      <method name="Result VtAddABunchOfInts(...)" attrs="145">
+        <size>80</size>
+      </method>
+      <method name="Result VtAddASecondBunchOfInts(Int32, ...)" attrs="145">
+        <size>80</size>
+      </method>
+      <method name="Int32 InstAddABunchOfInts(...)" attrs="129">
+        <size>75</size>
+      </method>
+      <method name="Int32 InstAddASecondBunchOfInts(Int32, ...)" attrs="129">
+        <size>75</size>
+      </method>
+      <method name="Result InstVtAddABunchOfInts(...)" attrs="129">
+        <size>80</size>
+      </method>
+      <method name="Result InstVtAddASecondBunchOfInts(Int32, ...)" attrs="129">
+        <size>80</size>
+      </method>
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>415</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-27.cs">
+    <type name="Foo">
+      <method name="Boolean MyMethod(Int32)" attrs="486">
+        <size>25</size>
+      </method>
+      <method name="Int32 AnotherMethod(Int32)" attrs="486">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Blah">
+      <method name="Void Bar(Int32, Int32)" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>144</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Blah+MyDelegate">
+      <method name="Void Invoke(Int32, Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32, Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-270.cs">
+    <type name="X">
+      <method name="Int32 Test(System.String, System.Object[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test(System.String, ...)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>93</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-271.cs">
+    <type name="T">
+      <method name="C X()" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>65</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T+C">
+      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="486">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-272.cs">
+    <type name="BazAttribute">
+      <method name="Void set_foo3(Foo)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Foo get_foo3()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Foo)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void f0()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void f1()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void f2()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void f3()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-273.cs">
+    <type name="FooAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tests">
+      <method name="Void Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-274.cs">
+    <type name="MyClass">
+      <method name="Void .ctor(String[])" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="ChildClass">
+      <method name="Void .ctor()" attrs="6278">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-275.cs">
+    <type name="DelType">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="Void add_MyEvent(DelType)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_MyEvent(DelType)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void add_MyEventStatic(DelType)" attrs="2198">
+        <size>40</size>
+      </method>
+      <method name="Void remove_MyEventStatic(DelType)" attrs="2198">
+        <size>40</size>
+      </method>
+      <method name="Int32 RunInstance()" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Int32 RunStatic()" attrs="134">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>129</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="DelType">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 &lt;Main&gt;m__0()" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-276.cs">
+    <type name="EventTestClass">
+      <method name="Void add_Elapsed(System.EventHandler)" attrs="2534">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Elapsed(System.EventHandler)" attrs="2534">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-277.cs">
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Int32 X(Byte)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 X(Int16)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-278.cs">
+    <type name="Rect">
+      <method name="Int32 get_X()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_X(Int32)" attrs="2182">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>81</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-279.cs">
+    <type name="FlagsAttributeDemo">
+      <method name="Int32 Main()" attrs="150">
+        <size>55</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-28.cs">
+    <type name="A">
+      <method name="Int32 get_Item(Int32)" attrs="3524">
+        <size>0</size>
+      </method>
+      <method name="Int32 EmulateIndexer(Int32)" attrs="134">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 get_Item(Int32)" attrs="2244">
+        <size>10</size>
+      </method>
+      <method name="Int32 M()" attrs="134">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 get_Item(Int32)" attrs="2177">
+        <size>33</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32)" attrs="2177">
+        <size>27</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>152</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-280.cs">
+    <type name="AppFramework.Util.Logic">
+      <method name="Boolean EnumInSet(System.Enum, System.Enum[])" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-281.cs">
+    <type name="Foo.Hello">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar.Hello">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Test.Test1">
+      <method name="Int32 World()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Test2">
+      <method name="Int32 World()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>47</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-282.cs">
+    <type name="integer">
+      <method name="integer op_Implicit(Int32)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Double op_Implicit(integer)" attrs="2198">
+        <size>21</size>
+      </method>
+      <method name="integer op_Addition(integer, integer)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Object Add(integer, System.Object)" attrs="150">
+        <size>83</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>86</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-283.cs">
+    <type name="X">
+      <method name="Int32 Foo()" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Int32 Foo()" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>70</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y+D">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="D GetIt()" attrs="129">
+        <size>21</size>
+      </method>
+      <method name="D GetIt2()" attrs="129">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="Y+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-284.cs">
+    <type name="App">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-285.cs">
+    <type name="Test">
+      <method name="Int32 test1()" attrs="145">
+        <size>73</size>
+      </method>
+      <method name="Int32 test2()" attrs="145">
+        <size>73</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>46</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-286.cs">
+    <type name="MethodWrapper">
+      <method name="Void SetDeclaredExceptions(MapXml.Throws[])" attrs="131">
+        <size>62</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MapXml.Throws">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-287.cs">
+    <type name="StaticClass">
+      <method name="System.String Name()" attrs="150">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="StaticClass+D">
+      <method name="System.Object Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>103</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="StaticClass+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.Object EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-288.cs">
+    <type name="Test.BookAboutMovie">
+      <method name="System.String GetItem(Int32)" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="System.String get_Item(Int32)" attrs="2534">
+        <size>15</size>
+      </method>
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>65</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>26</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-289.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void set_Value(System.String)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void set_Value()" attrs="134">
+        <size>7</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32, Boolean)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32)" attrs="2177">
+        <size>2</size>
+      </method>
+      <method name="Boolean get_Item(Boolean)" attrs="2177">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-29.cs">
+    <type name="Base">
+      <method name="Void Add(Int32)" attrs="134">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Derived">
+      <method name="Void Add(Double)" attrs="134">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Demo">
+      <method name="Int32 Main()" attrs="150">
+        <size>69</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-290.cs">
+    <type name="EntryPoint">
+      <method name="Void bar_f(System.Object)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="EntryPoint+EventHandler">
+      <method name="Void Invoke(System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="EntryPoint">
+      <method name="Void add_FooEvent(EventHandler)" attrs="2193">
+        <size>40</size>
+      </method>
+      <method name="Void remove_FooEvent(EventHandler)" attrs="2193">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="EntryPoint+EventHandler">
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-291.cs">
+    <type name="Test">
+      <method name="Void Method()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-292.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-293.cs">
+    <type name="A">
+      <method name="System.String get_Warning()" attrs="2502">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="System.String get_Warning()" attrs="2246">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-294.cs">
+    <type name="ObsoleteClass">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.String get_Name()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Name(System.String)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor(String, Boolean)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="DerivedTest">
+      <method name="System.String Method()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void T2()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>17</size>
+      </method>
+    </type>
+    <type name="ObsoleteClass2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ObsoleteClass3">
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="ObsoleteClass4">
+      <method name="Void T()" attrs="134">
+        <size>78</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-295.cs">
+    <type name="MyAttribute">
+      <method name="System.Object get_my()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Object)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="MyConstructorBuilder">
+      <method name="Int32 Main()" attrs="150">
+        <size>147</size>
+      </method>
+      <method name="System.Type MyCreateCallee(System.AppDomain)" attrs="145">
+        <size>345</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-296.cs">
+    <type name="GetElementTypeTest">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>49</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-297.cs">
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>378</size>
+      </method>
+      <method name="Void Login(System.String)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="My">
+      <method name="Void .ctor(Object)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-298.cs">
+    <type name="A">
+      <method name="Int32 op_Addition(Int16, A)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int32 op_UnaryNegation(A)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 op_Addition(Int32, B)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int32 op_UnaryNegation(B)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-299.cs">
+    <type name="SampleClass">
+      <method name="SuperClass op_Increment(SampleClass)" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SuperClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-3.cs">
+    <type name="TestIntOps">
+      <method name="SByte sbyte_add(SByte, SByte)" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Int16 short_add(Int16, Int16)" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Double double_add(Double, Double)" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Int32 int_add(Int32, Int32)" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Int32 int_sub(Int32, Int32)" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Int32 int_mul(Int32, Int32)" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>268</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-30.cs">
+    <type name="X">
+      <method name="Void IA.Draw()" attrs="481">
+        <size>9</size>
+      </method>
+      <method name="Void IB.Draw()" attrs="481">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test">
+      <method name="Int32 Main()" attrs="150">
+        <size>220</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-300.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>515</size>
+      </method>
+    </type>
+    <type name="A+B+C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-301.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>231</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-302.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="A+B+C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-303.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+C">
+      <method name="Void System.IDisposable.Dispose()" attrs="481">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>34</size>
+      </method>
+    </type>
+    <type name="A+B+C">
+      <method name="Void System.IDisposable.Dispose()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-304.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>515</size>
+      </method>
+    </type>
+    <type name="A+B+C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-305.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>231</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-306.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="A+B+C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-307.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+D">
+      <method name="Void System.IDisposable.Dispose()" attrs="481">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>34</size>
+      </method>
+    </type>
+    <type name="A+B+C">
+      <method name="Void System.IDisposable.Dispose()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-308.cs">
+    <type name="Program">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-309.cs">
+    <type name="MonoBASIC.Parser">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoBASIC.Parser+StateMachine">
+      <method name="Void HandleToken(Token)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-31.cs">
+    <type name="Base">
+      <method name="Void A()" attrs="454">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Derived">
+      <method name="Void A()" attrs="454">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-310.cs">
+    <type name="test.Impl">
+      <method name="System.String GetType(Int32)" attrs="486">
+        <size>14</size>
+      </method>
+      <method name="Boolean IsDone()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test.myclass">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-311.cs">
+    <type name="Program">
+      <method name="System.String get_Message()" attrs="18582">
+        <size>14</size>
+      </method>
+      <method name="Void set_Message(System.String)" attrs="18582">
+        <size>8</size>
+      </method>
+      <method name="Boolean DenyMethod()" attrs="16513">
+        <size>10</size>
+      </method>
+      <method name="Void Test2()" attrs="16518">
+        <size>2</size>
+      </method>
+      <method name="Void Test3()" attrs="16518">
+        <size>2</size>
+      </method>
+      <method name="Void Test4()" attrs="16518">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main(System.String[])" attrs="16534">
+        <size>213</size>
+      </method>
+      <method name="Void .ctor()" attrs="22662">
+        <size>39</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="Test2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-312.cs">
+    <type name="PointF">
+      <method name="Void .ctor(Single, Single)" attrs="6278">
+        <size>48</size>
+      </method>
+    </type>
+    <type name="Point">
+      <method name="PointF op_Implicit(Point)" attrs="2198">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor(Int32, Int32)" attrs="6278">
+        <size>38</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Boolean Method(PointF)" attrs="145">
+        <size>85</size>
+      </method>
+      <method name="Boolean Call_constructor_and_implicit()" attrs="145">
+        <size>37</size>
+      </method>
+      <method name="Boolean Init_with_implicit_conv()" attrs="145">
+        <size>65</size>
+      </method>
+      <method name="Boolean Init_ValueType()" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="Boolean InstanceAssignTest()" attrs="145">
+        <size>88</size>
+      </method>
+      <method name="Int32 T()" attrs="145">
+        <size>82</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-313.cs">
+    <type name="D">
+      <method name="Void A.B.METHOD()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>167</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-314.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>75</size>
+      </method>
+      <method name="Void .ctor()" attrs="6273">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6273">
+        <size>29</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-315.cs">
+    <type name="GuardedCollectionValue">
+      <method name="IDirectedEnumerable IDirectedEnumerable.Backwards()" attrs="481">
+        <size>10</size>
+      </method>
+      <method name="IDirectedCollectionValue Backwards()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="GuardedSequenced">
+      <method name="IDirectedCollectionValue Test()" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-316.cs">
+    <type name="D">
+      <method name="Int32 IA.Add(Int32)" attrs="481">
+        <size>10</size>
+      </method>
+      <method name="Int32 IB.Add(Int32)" attrs="481">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="Int32 IA.Add(Int32)" attrs="481">
+        <size>10</size>
+      </method>
+      <method name="Int32 IB.Add(Int32)" attrs="481">
+        <size>10</size>
+      </method>
+      <method name="Void doom()" attrs="486">
+        <size>7</size>
+      </method>
+      <method name="System.Object Clone()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Test(IC)" attrs="145">
+        <size>72</size>
+      </method>
+      <method name="Void Test2(IE)" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-317.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-318.cs">
+    <type name="Ev">
+      <method name="Void add_Disposed(System.EventHandler)" attrs="2182">
+        <size>20</size>
+      </method>
+      <method name="Void remove_Disposed(System.EventHandler)" attrs="2182">
+        <size>20</size>
+      </method>
+      <method name="Void OnClick(System.EventArgs)" attrs="134">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>29</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void EventInterface.add_Event(System.EventHandler)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Void EventInterface.remove_Event(System.EventHandler)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void my_from_fixed(Int32 ByRef)" attrs="150">
+        <size>5</size>
+      </method>
+      <method name="Void month_from_fixed(Int32)" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Int32 CreateFromString(Int32)" attrs="147">
+        <size>18</size>
+      </method>
+      <method name="Double* GetValue(Double)" attrs="134">
+        <size>13</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-319.cs">
+    <type name="ConstFields">
+      <method name="Int32 Main()" attrs="150">
+        <size>352</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>148</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-32.cs">
+    <type name="Blah">
+      <method name="Int32 Main()" attrs="150">
+        <size>60</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-320.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor(SByte*, Int32, Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-321.cs">
+    <type name="X">
+      <method name="Void Dispose()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>31</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-322.cs">
+    <type name="Y">
+      <method name="Int32 op_Implicit(Y)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Byte)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-323.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-324.cs">
+    <type name="A">
+      <method name="Void DoStuff()" attrs="134">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Boolean get_Val()" attrs="2182">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="Driver">
+      <method name="Void Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-325.cs">
+    <type name="RequestAttribute">
+      <method name="Void .ctor(String, String, String[])" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="MyClass">
+      <method name="Int32 SomeRequest()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-326.cs">
+    <type name="Mapper">
+      <method name="Double Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Mapper">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Double EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Double &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-327.cs">
+    <type name="X2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.B.Tester">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-328.cs">
+    <type name="A.B.Tester">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-329.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>92</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Object)" attrs="6278">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-33.cs">
+    <type name="FirstOuter.FirstInner.First">
+      <method name="System.String get_MyIdentity()" attrs="2182">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FirstOuter.Second">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FirstOuter.SecondInner.Third">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FirstOuter.FirstInner.Fourth">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Fifth">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Application">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>149</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-330.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-331.cs">
+    <type name="T">
+      <method name="Byte* get_Ptr()" attrs="2179">
+        <size>15</size>
+      </method>
+      <method name="Void set_Ptr(Byte*)" attrs="2179">
+        <size>9</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-332.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-333.cs">
+    <type name="Foo">
+      <method name="Void Something()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="Void Something()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-334.cs">
+    <type name="Test.Foo.Index.CompoundFileReader">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Foo.Store.Directory">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-335.cs">
+    <type name="X">
+      <method name="Void A(Int32, Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void C(Int32 ByRef)" attrs="145">
+        <size>5</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>71</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+B">
+      <method name="Void Invoke(Int32, Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+D">
+      <method name="Void Invoke(Int32 ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+B">
+      <method name="System.IAsyncResult BeginInvoke(Int32, Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+D">
+      <method name="System.IAsyncResult BeginInvoke(Int32 ByRef, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(Int32 ByRef, System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-336.cs">
+    <type name="Foo">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="Void Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Test()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor(Foo)" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Bar)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-337.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-338.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y+Z">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Z fz()" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-339.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>98</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>17</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-34.cs">
+    <type name="FancyInt">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Blah">
+      <method name="Void Foo(Int32 ByRef, Int32 ByRef)" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void Foo(Int32, Int32)" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void In(Int32 ByRef)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Void Out(Int32 ByRef)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Int32 AddFancy(FancyInt[])" attrs="145">
+        <size>47</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>319</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 Bar(Int32, Int32[])" attrs="150">
+        <size>74</size>
+      </method>
+      <method name="Int32 AddArray(Int32[])" attrs="145">
+        <size>38</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-340.cs">
+    <type name="FLMID.Bugs.BoolOne.A">
+      <method name="Void Add(Boolean, Boolean, UInt32, Boolean)" attrs="486">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FLMID.Bugs.BoolOne.B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FLMID.Bugs.BoolOne.Test">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-341.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Libs">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-342.cs">
+    <type name="A">
+      <method name="Void Foo(Int32)" attrs="454">
+        <size>2</size>
+      </method>
+      <method name="Void Foo(Double)" attrs="454">
+        <size>12</size>
+      </method>
+      <method name="Boolean get_Item(Int32)" attrs="2502">
+        <size>10</size>
+      </method>
+      <method name="Boolean get_Item(Double)" attrs="2502">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Foo(Double)" attrs="198">
+        <size>12</size>
+      </method>
+      <method name="Boolean get_Item(Double)" attrs="2246">
+        <size>12</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-343.cs">
+    <type name="X">
+      <method name="Void Concat(System.String, System.String, System.String)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Concat(System.String[])" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-344.cs">
+    <type name="Y">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void add_y(Y)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_y(Y)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void Foo()" attrs="129">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Foo&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-345.cs">
+    <type name="EntryPoint">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-346.cs">
+    <type name="TestMethods.Class1">
+      <method name="Int32 Main()" attrs="150">
+        <size>101</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestMethods.ParamClass">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestMethods.TestParam">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestMethods.BaseClass">
+      <method name="Int32 AddItem(TestMethods.ParamClass)" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestMethods.TestClass">
+      <method name="Int32 AddItem(System.Object)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 AddItem(TestMethods.ParamClass)" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-347.cs">
+    <type name="Whatever.Core.Project">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Whatever.Core.A">
+      <method name="Whatever.Core.Project get_Project()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SomethingElse.Core.Project">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Whatever.App.B">
+      <method name="System.String Execute()" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-348.cs">
+    <type name="BoundAttribute">
+      <method name="Void .ctor(Double, Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-349.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void add_Ev1(D)" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Ev1(D)" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void add_Ev1(D)" attrs="2198">
+        <size>40</size>
+      </method>
+      <method name="Void remove_Ev1(D)" attrs="2198">
+        <size>40</size>
+      </method>
+      <method name="Void add_Ev2(D)" attrs="2198">
+        <size>40</size>
+      </method>
+      <method name="Void remove_Ev2(D)" attrs="2198">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>1</size>
+      </method>
+    </type>
+    <type name="X2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>63</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-35.cs">
+    <type name="X">
+      <method name="Void a()" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Void w(Int32)" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>310</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-350.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+BAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-351.cs">
+    <type name="Test.Foo">
+      <method name="Void Invoke(System.String, System.Object[])" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test.Testee">
+      <method name="Void Bar(System.String, System.Object[])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>243</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.String, System.Object[], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-352.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-353.cs">
+    <type name="Three">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="One">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Two">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-354.cs">
+    <type name="MYAttr">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-355.cs">
+    <type name="Level1.Level1.Level2.MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-356.cs">
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-357.cs">
+    <type name="SD.Sd">
+      <method name="Void F(Boolean)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo.Bar">
+      <method name="Void Main()" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="Foo.Bar+f_t">
+      <method name="Void Invoke(Boolean)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Boolean, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-358.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>57</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-359.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-36.cs">
+    <type name="Y">
+      <method name="Int32 Main()" attrs="150">
+        <size>311</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="134">
+        <size>43</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-360.cs">
+    <type name="Application">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-361.cs">
+    <type name="X">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-362.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void Test()" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-363.cs">
+    <type name="Location">
+      <method name="Void .ctor()" attrs="6273">
+        <size>8</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="Element">
+      <method name="Location get_Location()" attrs="2500">
+        <size>15</size>
+      </method>
+      <method name="Void set_Location(Location)" attrs="2500">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-364.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>52</size>
+      </method>
+      <method name="Int32 t1(Int32)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Int32 t2(Int32)" attrs="145">
+        <size>55</size>
+      </method>
+      <method name="Void Main2(System.String[])" attrs="150">
+        <size>75</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+Foo">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Delegable">
+      <method name="Void add_MyDelegate(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_MyDelegate(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;t1&gt;c__AnonStorey0">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;t2&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main2&gt;c__AnonStorey2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;t2&gt;c__AnonStorey1">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main2&gt;c__AnonStorey2">
+      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
+        <size>34</size>
+      </method>
+    </type>
+    <type name="X+Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-365.cs">
+    <type name="C">
+      <method name="Void set_LiteralType(LiteralType)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-366.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-367.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-368.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-369.cs">
+    <type name="Test">
+      <method name="Boolean op_Equality(Test, Test)" attrs="2198">
+        <size>22</size>
+      </method>
+      <method name="Boolean op_Inequality(Test, Test)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-37.cs">
+    <type name="X">
+      <method name="Int32 test_int_single_dim()" attrs="145">
+        <size>108</size>
+      </method>
+      <method name="Int32 simple_test_double_dim()" attrs="145">
+        <size>96</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void m(Int32[])" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-370.cs">
+    <type name="Test.Application">
+      <method name="Int32 ParseType(System.String)" attrs="145">
+        <size>152</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>72</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-371.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(Boolean&amp;)" attrs="6278">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void .ctor(Boolean&amp;)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-372.cs">
+    <type name="GenericNode">
+      <method name="Int32 GetStat()" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="GenericFileNode">
+      <method name="Int32 NotUsed()" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="WorkingTest">
+      <method name="Int32 GetStat()" attrs="198">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FailingTest">
+      <method name="Int32 GetStat()" attrs="198">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestWrapper">
+      <method name="Boolean Test(Node, System.String)" attrs="145">
+        <size>54</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>57</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-373.cs">
+    <type name="Test">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-374.cs">
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Rest">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-375.cs">
+    <type name="a">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="a+b">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="c">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="c+d">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-376.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>99</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-377.cs">
+    <type name="Tests">
+      <method name="Void test()" attrs="134">
+        <size>11</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-378.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-379.cs">
+    <type name="DeadCode">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="System.String SomeFunc(System.String)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-38.cs">
+    <type name="X">
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>33</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32)" attrs="2182">
+        <size>27</size>
+      </method>
+      <method name="Int32 Foo()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 get_Bar()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Bar(Int32)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="UInt32 get_Item(UInt32)" attrs="2182">
+        <size>33</size>
+      </method>
+      <method name="Void set_Item(UInt32, UInt32)" attrs="2182">
+        <size>27</size>
+      </method>
+      <method name="UInt32 Foo()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="UInt32 get_Bar()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Bar(UInt32)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>320</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-380.cs">
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-381.cs">
+    <type name="Application">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-382.cs">
+    <type name="Dec">
+      <method name="Void Main()" attrs="150">
+        <size>109</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-383.cs">
+    <type name="X">
+      <method name="X testme(Int32 ByRef)" attrs="134">
+        <size>13</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>38</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-384.cs">
+    <type name="X">
+      <method name="Void Test()" attrs="145">
+        <size>43</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-385.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>56</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-386.cs">
+    <type name="SuperDecimal">
+      <method name="Void Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor(Decimal)" attrs="6278">
+        <size>15</size>
+      </method>
+      <method name="SuperDecimal op_Implicit(System.Decimal)" attrs="2198">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-387.cs">
+    <type name="ObjectID">
+      <method name="Int64 op_Implicit(ObjectID)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="ObjectID op_Implicit(Int64)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor(Int64)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-388.cs">
+    <type name="Schemas.basefieldtype">
+      <method name="System.Object Instantiate()" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Schemas.fieldtype">
+      <method name="System.Object Instantiate()" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Schemas.compoundfield">
+      <method name="System.Object Instantiate()" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Schemas.field">
+      <method name="System.Object Instantiate()" attrs="134">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Schemas.formdata">
+      <method name="System.Object Instantiate()" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Schemas.M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-389.cs">
+    <type name="Schemas.basefieldtype">
+      <method name="System.Object Instantiate()" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Schemas.fieldtype">
+      <method name="System.Object Instantiate()" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Schemas.compoundfield">
+      <method name="System.Object Instantiate()" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Schemas.field">
+      <method name="System.Object Instantiate()" attrs="134">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Schemas.formdata">
+      <method name="System.Object Instantiate()" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Schemas.M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-39.cs">
+    <type name="SimpleAttribute">
+      <method name="System.String get_AnotherArg()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_AnotherArg(System.String)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Int64 get_LongValue()" attrs="2182">
+        <size>11</size>
+      </method>
+      <method name="Void set_LongValue(Int64)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="Blah2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Blah3">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Blah">
+      <method name="Int32 Main()" attrs="150">
+        <size>204</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SimpleAttribute">
+      <method name="Int64[] get_ArrayValue()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_ArrayValue(Int64[])" attrs="2182">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-390.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+O">
+      <method name="Void Foo()" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+N">
+      <method name="Void Foo()" attrs="454">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+M">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-391.cs">
+    <type name="C">
+      <method name="Void Foo(Int32)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Foo(Int32 ByRef)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Bar(Boolean ByRef)" attrs="129">
+        <size>5</size>
+      </method>
+      <method name="Void Bar(Boolean)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-392.cs">
+    <type name="C">
+      <method name="Int32 Test()" attrs="129">
+        <size>93</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="C+S">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-393.cs">
+    <type name="A">
+      <method name="System.String get_Name()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="A MethodSampleA(System.String)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="B MethodSampleB(System.String)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="C MethodSampleC(System.String)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>165</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+MethodHandler">
+      <method name="A Invoke(System.String)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="A EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-394.cs">
+    <type name="A">
+      <method name="System.String get_Name()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.String get_Value()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(String, String)" attrs="6278">
+        <size>32</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="System.String MethodSampleA(A)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="System.String MethodSampleB(B)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="System.String MethodSampleC(C)" attrs="145">
+        <size>31</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>180</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+MethodHandler">
+      <method name="System.String Invoke(C)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(C, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-395.cs">
+    <type name="A">
+      <method name="System.String get_Name()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.String get_Value()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(String, String)" attrs="6278">
+        <size>32</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Void MethodSample(B, A, C)" attrs="145">
+        <size>56</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>89</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+MethodHandler">
+      <method name="Void Invoke(C, C, C)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(C, C, C, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-396.cs">
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-397.cs">
+    <type name="TypeCheckAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="PropertyCheckAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="AccessorCheckAttribute">
+      <method name="Void .ctor(MethodAttributes)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>151</size>
+      </method>
+      <method name="Void CheckFlags(System.Reflection.PropertyInfo, System.Reflection.MethodInfo)" attrs="145">
+        <size>159</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Int32 get_Value1()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Value1(Int32)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_Value2()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Value2(Int32)" attrs="2181">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_Value3()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Value3(Int32)" attrs="2180">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_Value4()" attrs="2179">
+        <size>10</size>
+      </method>
+      <method name="Void set_Value4(Int32)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_Value5()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Value5(Int32)" attrs="2177">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AccessorCheckAttribute">
+      <method name="System.Reflection.MethodAttributes get_Attributes()" attrs="2182">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-398.cs">
+    <type name="Tester">
+      <method name="Void Main()" attrs="150">
+        <size>119</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Int32 get_Count()" attrs="2502">
+        <size>15</size>
+      </method>
+      <method name="Void set_Count(Int32)" attrs="2500">
+        <size>9</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2502">
+        <size>10</size>
+      </method>
+      <method name="System.String get_Message()" attrs="2502">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void set_Count(Int32)" attrs="2244">
+        <size>2</size>
+      </method>
+      <method name="Void SetCount(Int32)" attrs="134">
+        <size>9</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2246">
+        <size>16</size>
+      </method>
+      <method name="System.String get_Message()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Message(System.String)" attrs="2179">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-399.cs">
+    <type name="TestVararg">
+      <method name="Void G(...)" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>394</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void F(System.RuntimeArgumentHandle)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-4.cs">
+    <type name="X">
+      <method name="Void test(SByte)" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void test(Int32)" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>126</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-40.cs">
+    <type name="Blah">
+      <method name="Int32 Main()" attrs="150">
+        <size>258</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-400.cs">
+    <type name="X">
+      <method name="Int32 TestDereference()" attrs="145">
+        <size>107</size>
+      </method>
+      <method name="Int32 TestPtrAdd()" attrs="145">
+        <size>106</size>
+      </method>
+      <method name="Int32 TestPtrAssign()" attrs="145">
+        <size>256</size>
+      </method>
+      <method name="Int32 TestPtrArithmetic()" attrs="145">
+        <size>277</size>
+      </method>
+      <method name="Int32 TestMultiple()" attrs="145">
+        <size>111</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>115</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>52</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-401.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>206</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-402.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-403.cs">
+    <type name="Foo">
+      <method name="Int32 Main()" attrs="150">
+        <size>106</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-404.cs">
+    <type name="X">
+      <method name="Int32* get_v()" attrs="145">
+        <size>29</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>71</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-405.cs">
+    <type name="testapp.LibTestAPI">
+      <method name="Void Create()" attrs="134">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="testapp.TestApp">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-406.cs">
+    <type name="TestCase.Test">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>228</size>
+      </method>
+      <method name="UInt32 DoOp(UInt32*)" attrs="145">
+        <size>19</size>
+      </method>
+      <method name="UInt32 DoOp2(UInt32*)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-407.cs">
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-408.cs">
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>59</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-409.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>40</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-41.cs">
+    <type name="X">
+      <method name="Void A(Int32 ByRef, UInt32 ByRef, SByte ByRef, Byte ByRef, Int64 ByRef, UInt64 ByRef, Int16 ByRef, UInt16 ByRef, Char ByRef, X ByRef, Single ByRef, Double ByRef)" attrs="145">
+        <size>189</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>310</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-410.cs">
+    <type name="B">
+      <method name="Int32 Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-411.cs">
+    <type name="QtSamples.QtClass">
+      <method name="Void pressEvent()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="QtSamples.Testing">
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-412.cs">
+    <type name="Foo.Baz">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-413.cs">
+    <type name="Driver">
+      <method name="Void Main()" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-414.cs">
+    <type name="BB">
+      <method name="System.String get_Data()" attrs="2244">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-415.cs">
+    <type name="MyTestExtended">
+      <method name="System.String GetName()" attrs="196">
+        <size>14</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-416.cs">
+    <type name="ModTest">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="n1.Adder">
+      <method name="Int32 Add(Int32, Int32)" attrs="134">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-417.cs">
+    <type name="blah2.MyClass">
+      <method name="Void add_DoSomething(blah.MyFunnyDelegate)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_DoSomething(blah.MyFunnyDelegate)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void DoSomethingFunny()" attrs="134">
+        <size>47</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-418.cs">
+    <type name="M3">
+      <method name="Int32 Main()" attrs="150">
+        <size>172</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="M1">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="M2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-419.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-42.cs">
+    <type name="X">
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>22</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32)" attrs="2182">
+        <size>16</size>
+      </method>
+      <method name="Int32 get_P()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_P(Int32)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Z get_P()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_P(Z)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Z op_Increment(Z)" attrs="2198">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Int32 p_pre_increment(X)" attrs="145">
+        <size>26</size>
+      </method>
+      <method name="Int32 p_post_increment(X)" attrs="145">
+        <size>26</size>
+      </method>
+      <method name="Int32 i_pre_increment(X)" attrs="145">
+        <size>32</size>
+      </method>
+      <method name="Int32 i_post_increment(X)" attrs="145">
+        <size>32</size>
+      </method>
+      <method name="Z overload_increment(Z)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Z overload_pre_increment(Z)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Z ugly(Z)" attrs="145">
+        <size>29</size>
+      </method>
+      <method name="Int32 simple(Int32)" attrs="145">
+        <size>90</size>
+      </method>
+      <method name="Int32 arrays()" attrs="145">
+        <size>265</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>214</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-420.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-421.cs">
+    <type name="A">
+      <method name="Void SetObject(System.String)" attrs="454">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void SetObject(System.String)" attrs="198">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-422.cs">
+    <type name="HelloWorld.MainClass">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Boolean CheckTrueThat()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>17</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-423.cs">
+    <type name="Test">
+      <method name="Void lowLevelCall(Int32*)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Func(Int32 ByRef)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-424.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>49</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-425.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-426.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-427.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-428.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-429.cs">
+    <type name="Foo.A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-43.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>332</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 test_single(Int32[])" attrs="145">
+        <size>45</size>
+      </method>
+      <method name="Int32 test_continue(Int32[])" attrs="145">
+        <size>70</size>
+      </method>
+      <method name="Boolean test_double(Double[])" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Int32 test_break(Int32[])" attrs="145">
+        <size>70</size>
+      </method>
+      <method name="Boolean test_multi(Int32[,])" attrs="145">
+        <size>100</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-430.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-431.cs">
+    <type name="Foo.A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-432.cs">
+    <type name="Foo.A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-433.cs">
+    <type name="Foo.A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-434.cs">
+    <type name="Foo.A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-435.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-436.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-437.cs">
+    <type name="T2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>76</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-438.cs">
+    <type name="Program">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-439.cs">
+    <type name="LayerMask">
+      <method name="Int32 op_Implicit(LayerMask)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="LayerMask op_Implicit(Int32)" attrs="2198">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>46</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-44.cs">
+    <type name="X">
+      <method name="Int32 count(System.Object)" attrs="145">
+        <size>50</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>154</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 dob(Int32[,])" attrs="145">
+        <size>94</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-440.cs">
+    <type name="A">
+      <method name="Double op_Implicit(A)" attrs="2198">
+        <size>18</size>
+      </method>
+      <method name="Int32 op_Implicit(A)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-441.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-442.cs">
+    <type name="ConsoleApplication1.Program">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>73</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-444.cs">
+    <type name="쯠쯡쯢">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void P̀ः०‿()" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-445.cs">
+    <type name="ConvFromInt">
+      <method name="ConvFromInt op_Implicit(Int32)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>17</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void Main()" attrs="150">
+        <size>112</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>45</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-446.cs">
+    <type name="FooTest">
+      <method name="Void Main()" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Void Foo(UInt64)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-447.cs">
+    <type name="System.MonoTODOAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="System.Web.HttpBrowserCapabilities">
+      <method name="System.Version get_A()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-448.cs">
+    <type name="MonoDivideProblem">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>17</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-449.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Z()" attrs="129">
+        <size>20</size>
+      </method>
+      <method name="Void &lt;Z&gt;m__0(System.Object)" attrs="129">
+        <size>26</size>
+      </method>
+      <method name="Void &lt;Z&gt;m__1(System.Object)" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-45.cs">
+    <type name="Blah">
+      <method name="Int32 Main()" attrs="150">
+        <size>882</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>97</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-450.cs">
+    <type name="A">
+      <method name="Byte op_Implicit(A)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="A op_Implicit(Int32)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>71</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6273">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-451.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-452.cs">
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-453.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-454.cs">
+    <type name="FooAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>260</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-455.cs">
+    <type name="Foo">
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-456.cs">
+    <type name="Foo">
+      <method name="Void foo()" attrs="134">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-457.cs">
+    <type name="Number">
+      <method name="Void IDouble.Add(Double)" attrs="481">
+        <size>12</size>
+      </method>
+      <method name="Void IInteger.Add(Int32)" attrs="481">
+        <size>12</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>60</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-458.cs">
+    <type name="MyAttr">
+      <method name="Void .ctor()" attrs="6275">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Type)" attrs="6275">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6275">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6275">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="ClassA">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ClassB">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ClassC">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ClassD">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Top">
+      <method name="Int32 Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-459.cs">
+    <type name="CC">
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CC+IfElseStateMachine">
+      <method name="Void HandleToken(Token)" attrs="134">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-46.cs">
+    <type name="X">
+      <method name="Int32 cast_int(System.Object)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="UInt32 cast_uint(System.Object)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int16 cast_short(System.Object)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Char cast_char(System.Object)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="UInt16 cast_ushort(System.Object)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Byte cast_byte(System.Object)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="SByte cast_sbyte(System.Object)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int64 cast_long(System.Object)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="UInt64 cast_ulong(System.Object)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Single cast_float(System.Object)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Double cast_double(System.Object)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean cast_bool(System.Object)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>1364</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-460.cs">
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-461.cs">
+    <type name="Value">
+      <method name="System.Object get_Val()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="System.Enum get_Val2()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Object)" attrs="6278">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Valtest">
+      <method name="Int32 Main()" attrs="150">
+        <size>63</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-462.cs">
+    <type name="X">
+      <method name="Void Method(X)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Method(System.String)" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-463.cs">
+    <type name="PropertySorter">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="PathItemBase">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="PathItemBase+TypeConverter">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-464.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>103</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-465.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>103</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-466.cs">
+    <type name="A.X.Test">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-467.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+D">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Foo()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="B+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-469.cs">
+    <type name="Del">
+      <method name="Void Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Lambda">
+      <method name="Void f(Int32)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Del[] Make2(Int32)" attrs="145">
+        <size>58</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>86</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Lambda+&lt;Make2&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0(Int32)" attrs="131">
+        <size>24</size>
+      </method>
+      <method name="Void &lt;&gt;m__1(Int32)" attrs="131">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Del">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-47.cs">
+    <type name="X">
+      <method name="Boolean f()" attrs="145">
+        <size>32</size>
+      </method>
+      <method name="Boolean t()" attrs="145">
+        <size>32</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>511</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-470.cs">
+    <type name="X">
+      <method name="System.String get_ASTNodeTypeName()" attrs="2182">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Demo">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-471.cs">
+    <type name="AAttribute">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>52</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-472.cs">
+    <type name="Test">
+      <method name="Int32 get_Prop()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Prop(Int32)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>97</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-473.cs">
+    <type name="SignalHandler">
+      <method name="Void Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="UnixMarshal">
+      <method name="Void Default(Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="System.String GetDescription(Error)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="UnixMarshal2">
+      <method name="System.String GetDescription(Error)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Stdlib">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestConst">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="XX">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Syscall">
+      <method name="Int32 poll(Pollfd[], UInt32, Int32)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="PS">
+      <method name="Void GetDescription(Error)" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="EnumWrapper">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Value">
+      <method name="EnumWrapper op_Explicit(Value)" attrs="2198">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SignalHandler">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-474.cs">
+    <type name="Z">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void TestPreinc(Int32)" attrs="145">
+        <size>58</size>
+      </method>
+      <method name="Void TestPostinc(Int32)" attrs="145">
+        <size>58</size>
+      </method>
+      <method name="Void Assert(Int32, Int32)" attrs="145">
+        <size>73</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Z+X">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Z+&lt;TestPreinc&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Z+&lt;TestPostinc&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>39</size>
+      </method>
+    </type>
+    <type name="Z+X">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-475.cs">
+    <type name="MyDelegate">
+      <method name="Void Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void add_e(MyDelegate)" attrs="2193">
+        <size>40</size>
+      </method>
+      <method name="Void remove_e(MyDelegate)" attrs="2193">
+        <size>40</size>
+      </method>
+      <method name="Void Test(Int32)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>41</size>
+      </method>
+    </type>
+    <type name="MyDelegate">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-476.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-477.cs">
+    <type name="C">
+      <method name="Void Test(Int32 ByRef)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-478.cs">
+    <type name="Test.MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.TestAttribute">
+      <method name="Void .ctor(TestEnum2)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Test.Test2Attribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-479.cs">
+    <type name="Test.Test">
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-48.cs">
+    <type name="Blah">
+      <method name="Int32 Main()" attrs="150">
+        <size>70</size>
+      </method>
+      <method name="Void Test_1()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-480.cs">
+    <type name="A">
+      <method name="Void Dispose()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Test(System.Object)" attrs="145">
+        <size>290</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+D">
+      <method name="Void Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void &lt;Test&gt;m__0(Int32)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-481.cs">
+    <type name="TestDelegate">
+      <method name="Void Invoke(Int32 ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>50</size>
+      </method>
+    </type>
+    <type name="TestDelegate">
+      <method name="System.IAsyncResult BeginInvoke(Int32 ByRef, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(Int32 ByRef, System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestClass">
+      <method name="Void &lt;Main&gt;m__0(Int32 ByRef)" attrs="145">
+        <size>5</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-482.cs">
+    <type name="X">
+      <method name="Void M4(Int32)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void M4(Int32, ...)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-483.cs">
+    <type name="Tests">
+      <method name="Void Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="System.Object clone()" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-484.cs">
+    <type name="Test.TestBit">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-485.cs">
+    <type name="MonoBUG">
+      <method name="Int32 Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-486.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>132</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-487.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor(Object)" attrs="6273">
+        <size>73</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-488.cs">
+    <type name="P">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Q">
+      <method name="Void .ctor(P)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>169</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.IEnumerable foo()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-489.cs">
+    <type name="test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-49.cs">
+    <type name="X">
+      <method name="Int32 s(Byte)" attrs="145">
+        <size>3468</size>
+      </method>
+      <method name="Int32 test(Int32)" attrs="145">
+        <size>91</size>
+      </method>
+      <method name="Int32 tests(System.String)" attrs="145">
+        <size>135</size>
+      </method>
+      <method name="Int32 tests2(System.String)" attrs="145">
+        <size>63</size>
+      </method>
+      <method name="Int32 testn(System.String)" attrs="145">
+        <size>44</size>
+      </method>
+      <method name="Int32 testm(System.String)" attrs="145">
+        <size>45</size>
+      </method>
+      <method name="Int32 testo(System.String)" attrs="145">
+        <size>52</size>
+      </method>
+      <method name="Int32 testp(System.String)" attrs="145">
+        <size>83</size>
+      </method>
+      <method name="Int32 test_def(System.String)" attrs="145">
+        <size>88</size>
+      </method>
+      <method name="Int32 test_coverage(Int32)" attrs="145">
+        <size>29</size>
+      </method>
+      <method name="Int32 test_goto(Int32)" attrs="145">
+        <size>55</size>
+      </method>
+      <method name="Int32 test_memberaccess(System.String)" attrs="145">
+        <size>44</size>
+      </method>
+      <method name="Int32 test_string_multiple_targets(System.String)" attrs="145">
+        <size>106</size>
+      </method>
+      <method name="Int32 test_casts(Int32)" attrs="145">
+        <size>28</size>
+      </method>
+      <method name="Int32 testSwitchEnumLong(TestEnum)" attrs="150">
+        <size>72</size>
+      </method>
+      <method name="Int32 test_long_enum_switch()" attrs="145">
+        <size>94</size>
+      </method>
+      <method name="Int32 tests_default(System.String)" attrs="145">
+        <size>76</size>
+      </method>
+      <method name="Int32 tests_default_2(System.String)" attrs="145">
+        <size>93</size>
+      </method>
+      <method name="Void test_76590(System.String)" attrs="145">
+        <size>60</size>
+      </method>
+      <method name="Void test_77964()" attrs="145">
+        <size>36</size>
+      </method>
+      <method name="Boolean bug_78860()" attrs="145">
+        <size>84</size>
+      </method>
+      <method name="Void test_1597()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>1525</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 LongStringSwitch(System.String)" attrs="145">
+        <size>571</size>
+      </method>
+      <method name="Boolean SwitchSingleSection(System.String)" attrs="145">
+        <size>171</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-490.cs">
+    <type name="T">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>39</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-491.cs">
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AttrA">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AttrB">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-492.cs">
+    <type name="Test.My1Attribute">
+      <method name="Void .ctor(Object)" attrs="6278">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="Test.My2Attribute">
+      <method name="Void .ctor(String[])" attrs="6278">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="Test.My3Attribute">
+      <method name="Void .ctor(Byte)" attrs="6278">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="Test.Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>75</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-493.cs">
+    <type name="A">
+      <method name="Int32 get_f()" attrs="2180">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 bar()" attrs="129">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-494.cs">
+    <type name="Agresso.Foundation.Function">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Agresso.Foundation.Translate">
+      <method name="Void Invoke(Agresso.Foundation.Function, System.Text.StringBuilder ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Agresso.Foundation.Function, System.Text.StringBuilder ByRef, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.Text.StringBuilder ByRef, System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-495.cs">
+    <type name="plj.aClass">
+      <method name="plj.aClass op_Implicit(plj.fromClass)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="plj.realClass1">
+      <method name="plj.realClass1 op_Implicit(plj.fromClass)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="plj.fromClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-496.cs">
+    <type name="Baz">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-497.cs">
+    <type name="PlotMenuItem">
+      <method name="Int32 Main()" attrs="150">
+        <size>63</size>
+      </method>
+      <method name="Void MenuItem_Click(System.Object, System.EventArgs)" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="System.EventHandler get_Callback()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Callback(System.EventHandler)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(EventHandler)" attrs="6278">
+        <size>55</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-498.cs">
+    <type name="A">
+      <method name="Int32 get_Foo()" attrs="2182">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Single)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>99</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-499.cs">
+    <type name="A">
+      <method name="Int32 switch1(UInt64)" attrs="145">
+        <size>122</size>
+      </method>
+      <method name="Int32 switch2(SByte)" attrs="145">
+        <size>42</size>
+      </method>
+      <method name="Int32 switch3(Int64)" attrs="145">
+        <size>45</size>
+      </method>
+      <method name="Int32 switch4(UInt64)" attrs="145">
+        <size>50</size>
+      </method>
+      <method name="Int32 switch5(UInt64)" attrs="145">
+        <size>35</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>154</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-5.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>45</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-500.cs">
+    <type name="SomeCustomAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>136</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-501.cs">
+    <type name="Tests">
+      <method name="Void foo(Boolean ByRef)" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tests+FilterStackFrame">
+      <method name="Boolean Invoke(System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Tests">
+      <method name="Void DumpException(FilterStackFrame)" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Tests+FilterStackFrame">
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Boolean EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Tests">
+      <method name="Boolean &lt;foo&gt;m__0(System.Object)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-502.cs">
+    <type name="Base">
+      <method name="Int32 get_Property()" attrs="2182">
+        <size>11</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Derived">
+      <method name="Int32 get_Property()" attrs="134">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BaseClass">
+      <method name="Int32 get_Value()" attrs="2500">
+        <size>10</size>
+      </method>
+      <method name="Void set_Value(Int32)" attrs="2500">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="DerivedClass">
+      <method name="Int32 get_Value()" attrs="132">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ErrorClass">
+      <method name="Int32 get_Value()" attrs="2244">
+        <size>10</size>
+      </method>
+      <method name="Void set_Value(Int32)" attrs="2244">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-503.cs">
+    <type name="Foo">
+      <method name="Int32 Main()" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-504.cs">
+    <type name="Foo">
+      <method name="Int32 f()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>46</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+      <method name="System.String Test_2()" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void Test_3()" attrs="145">
+        <size>20</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-505.cs">
+    <type name="T">
+      <method name="Int32 f()" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-506.cs">
+    <type name="ProtectedSetter.BaseClass">
+      <method name="System.String get_Name()" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void set_Name(System.String)" attrs="3523">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ProtectedSetter.DerivedClass">
+      <method name="System.String get_Name()" attrs="2246">
+        <size>10</size>
+      </method>
+      <method name="Void set_Name(System.String)" attrs="2243">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-507.cs">
+    <type name="NewslotVirtualFinal.NewslotVirtualFinal">
+      <method name="Void SomeMethod()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void SomeMethod2()" attrs="454">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6273">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="NewslotVirtualFinal.C">
+      <method name="Int32 Main()" attrs="150">
+        <size>101</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-508.cs">
+    <type name="OutputParam">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void Method(Int32 ByRef)" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-509.cs">
+    <type name="DelegateHandler">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="BaseClass">
+      <method name="Void add_OnEvent(DelegateHandler)" attrs="2534">
+        <size>42</size>
+      </method>
+      <method name="Void remove_OnEvent(DelegateHandler)" attrs="2534">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ExtendingClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="DelegateHandler">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-51.cs">
+    <type name="Base">
+      <method name="Int32 get_b_int_property()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_b_int_property(Int32)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="System.String b_get_id()" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="Derived">
+      <method name="Int32 get_b_int_property()" attrs="2177">
+        <size>15</size>
+      </method>
+      <method name="Void set_b_int_property(Int32)" attrs="2177">
+        <size>9</size>
+      </method>
+      <method name="Int32 Test()" attrs="134">
+        <size>181</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="boot">
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-510.cs">
+    <type name="Foo">
+      <method name="Void test39(Int32 ByRef)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-511.cs">
+    <type name="Foo">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void f()" attrs="145">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-512.cs">
+    <type name="Foo">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void f()" attrs="145">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-513.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>326</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-514.cs">
+    <type name="X">
+      <method name="Void HandleConflict(Int32)" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>56</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-515.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-516.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-517.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-518.cs">
+    <type name="Foo">
+      <method name="Int32 Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-519.cs">
+    <type name="Foo">
+      <method name="Int32 Main()" attrs="150">
+        <size>52</size>
+      </method>
+      <method name="Void f()" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void f2()" attrs="145">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-52.cs">
+    <type name="Y">
+      <method name="Boolean MoveNext()" attrs="134">
+        <size>36</size>
+      </method>
+      <method name="System.Object get_Current()" attrs="2182">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Y GetEnumerator()" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>548</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>36</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-520.cs">
+    <type name="FakeInt">
+      <method name="Int64 op_Implicit(FakeInt)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int64)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-521.cs">
+    <type name="Tests">
+      <method name="Void CallWithContextN(System.Object, System.Object[])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tests+CallTargetWithContextN">
+      <method name="Void Invoke(System.Object, System.Object[])" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.Object[], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-522.cs">
+    <type name="Const">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-523.cs">
+    <type name="T">
+      <method name="Int32 stuff()" attrs="129">
+        <size>17</size>
+      </method>
+      <method name="Int32 stuff2()" attrs="129">
+        <size>35</size>
+      </method>
+      <method name="Int32 stuff3()" attrs="129">
+        <size>35</size>
+      </method>
+      <method name="Void stuff4()" attrs="129">
+        <size>12</size>
+      </method>
+      <method name="Void stuff_finally()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-524.cs">
+    <type name="Foo">
+      <method name="Int32 Main()" attrs="150">
+        <size>114</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-525.cs">
+    <type name="X">
+      <method name="Void Finalize()" attrs="196">
+        <size>37</size>
+      </method>
+      <method name="Int32 Test1()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void Test2()" attrs="150">
+        <size>61</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-526.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Foo(IListCounter)" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void Foo2(IC)" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void Foo3(ICC)" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void Foo4(IM2)" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-527.cs">
+    <type name="Repro">
+      <method name="Int32 Main()" attrs="150">
+        <size>56</size>
+      </method>
+      <method name="Void foo()" attrs="134">
+        <size>62</size>
+      </method>
+      <method name="Int32 bar()" attrs="129">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-528.cs">
+    <type name="MicroFocus.MONO.Bugs.Odd">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>25</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-529.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-53.cs">
+    <type name="MyDispose">
+      <method name="Void Dispose()" attrs="486">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>288</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-530.cs">
+    <type name="X">
+      <method name="Void e(System.Object[])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-531.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-532.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>47</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-533.cs">
+    <type name="Test">
+      <method name="Void True(Boolean)" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Void False(Boolean)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>62</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-535.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>77</size>
+      </method>
+      <method name="Void Compile()" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Void M(Int64)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void M(UInt64)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void M(System.Object)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-536.cs">
+    <type name="FooHandler">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void OnFooTest()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void add_Foo(FooHandler)" attrs="2198">
+        <size>40</size>
+      </method>
+      <method name="Void remove_Foo(FooHandler)" attrs="2198">
+        <size>40</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>32</size>
+      </method>
+    </type>
+    <type name="FooHandler">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>36</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-537.cs">
+    <type name="Base">
+      <method name="System.String get_H()" attrs="2180">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+Derived">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+Derived+Nested">
+      <method name="Void G()" attrs="134">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Derived">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Derived+Nested">
+      <method name="Void G()" attrs="134">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-538.cs">
+    <type name="testDelegate">
+      <method name="IInterface Invoke(concrete)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="concrete">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="concrete getConcrete(IInterface)" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="testDelegate">
+      <method name="System.IAsyncResult BeginInvoke(concrete, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="IInterface EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-539.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>84</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-54.cs">
+    <type name="X">
+      <method name="Boolean v()" attrs="129">
+        <size>19</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-540.cs">
+    <type name="A">
+      <method name="Byte op_Implicit(A)" attrs="2198">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Constraint">
+      <method name="Constraint op_LogicalNot(Constraint)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Constraint op_UnaryPlus(Constraint)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Constraint op_OnesComplement(Constraint)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Constraint op_UnaryNegation(Constraint)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void Foo(System.Object)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>109</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-541.cs">
+    <type name="ClassMain">
+      <method name="Void Main()" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void set_test(Boolean)" attrs="2193">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ClassMain+D">
+      <method name="Void Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="ClassMain">
+      <method name="Void &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-542.cs">
+    <type name="ARec">
+      <method name="Void .ctor(Decimal)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ARec">
+      <method name="System.Decimal Round(Int32)" attrs="129">
+        <size>21</size>
+      </method>
+      <method name="System.Decimal Round(System.Decimal, Int32)" attrs="145">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-543.cs">
+    <type name="BetterMethod">
+      <method name="System.String get_Item(Boolean, System.Object)" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Int32 get_Item(Int32, System.String[])" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Item(Int32, System.String[], Int32)" attrs="2182">
+        <size>41</size>
+      </method>
+      <method name="System.Object get_Item(Int32, System.Object[])" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Item(Int32, System.Object[], System.Object)" attrs="2182">
+        <size>41</size>
+      </method>
+      <method name="Boolean get_Item(Int32, Boolean, System.Object[])" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Item(Int32, Boolean, System.Object[], Boolean)" attrs="2182">
+        <size>41</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>259</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BetterMethod">
+      <method name="Int32 get_Item(Boolean[])" attrs="2182">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-544.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-545.cs">
+    <type name="Dingus">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-546.cs">
+    <type name="NameSpace.C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-547.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-548.cs">
+    <type name="Bugs.Bug0">
+      <method name="Int32 Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bugs.Bug0+MyBoolean">
+      <method name="MyBoolean op_Implicit(Boolean)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Boolean op_Implicit(MyBoolean)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor(Boolean)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-549.cs">
+    <type name="Get">
+      <method name="System.Object Invoke(Do)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Do">
+      <method name="Void Register(Get)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Register(System.Object)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="System.Object MyGet(Do)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void X()" attrs="134">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="User">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Get">
+      <method name="System.IAsyncResult BeginInvoke(Do, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.Object EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-55.cs">
+    <type name="A.B.C">
+      <method name="Void Hola()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X.Y.Z.W">
+      <method name="Void Ahoj()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo.System">
+      <method name="Void X()" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="App">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-550.cs">
+    <type name="Bla.Blub.Fo‿o">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-551.cs">
+    <type name="System.Int32">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-552.cs">
+    <type name="C">
+      <method name="Void Test(C)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-553.cs">
+    <type name="A">
+      <method name="Void Add(System.Object)" attrs="454">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Boolean Add(System.Object)" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-554.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>169</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-555.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>361</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-556.cs">
+    <type name="S">
+      <method name="Void Frobnikator()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void CharToX()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-557.cs">
+    <type name="Test">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-558.cs">
+    <type name="TestClass">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void TestMethod(Int32)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestClass+OneDelegate">
+      <method name="Void Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-559.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void add_TestEvent(TestDelegate)" attrs="2246">
+        <size>42</size>
+      </method>
+      <method name="Void remove_TestEvent(TestDelegate)" attrs="2246">
+        <size>42</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-56.cs">
+    <type name="A">
+      <method name="Int32 get_P()" attrs="2534">
+        <size>15</size>
+      </method>
+      <method name="Void set_P(Int32)" attrs="2534">
+        <size>9</size>
+      </method>
+      <method name="Int32 get_Q()" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void set_Q(Int32)" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Int32 get_R()" attrs="2502">
+        <size>15</size>
+      </method>
+      <method name="Void set_R(Int32)" attrs="2502">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 get_P()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_P(Int32)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Int32 get_Q()" attrs="2246">
+        <size>15</size>
+      </method>
+      <method name="Void set_Q(Int32)" attrs="2246">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 get_Q()" attrs="2246">
+        <size>15</size>
+      </method>
+      <method name="Void set_Q(Int32)" attrs="2246">
+        <size>9</size>
+      </method>
+      <method name="Int32 get_R()" attrs="2246">
+        <size>15</size>
+      </method>
+      <method name="Void set_R(Int32)" attrs="2246">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Int32 Main()" attrs="150">
+        <size>279</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-560.cs">
+    <type name="Bugs.Bug2">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>82</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bugs.Bug2+MyByte">
+      <method name="MyByte op_Implicit(Byte)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Byte op_Implicit(MyByte)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor(Byte)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Bugs.Bug2+MyInt">
+      <method name="MyInt op_Implicit(Int32)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Int32 op_Implicit(MyInt)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-561.cs">
+    <type name="A">
+      <method name="Void I.M()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void M()" attrs="1476">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void M()" attrs="196">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-562.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>58</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-563.cs">
+    <type name="Test">
+      <method name="System.Object TestMethod(TestCollection)" attrs="131">
+        <size>74</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-564.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-565.cs">
+    <type name="T">
+      <method name="Boolean Equals(System.Object)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-566.cs">
+    <type name="Test">
+      <method name="System.String get_Spec()" attrs="2182">
+        <size>20</size>
+      </method>
+      <method name="Void Foo(C)" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="Void Foo2(CC)" attrs="129">
+        <size>13</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CA">
+      <method name="Void set_Spec(System.String)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CB">
+      <method name="Void set_Spec(System.String)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CC">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-567.cs">
+    <type name="preservesig_test.Class1">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>166</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="preservesig_test.TestClass">
+      <method name="Int32 DoFoo()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 get_Foo()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="preservesig_test.TestClass+D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="preservesig_test.TestClass">
+      <method name="Void add_e(D)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_e(D)" attrs="2182">
+        <size>42</size>
+      </method>
+    </type>
+    <type name="preservesig_test.TestClass+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-568.cs">
+    <type name="B">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-569.cs">
+    <type name="MyAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SubAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test">
+      <method name="Void method()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-57.cs">
+    <type name="EventHandler">
+      <method name="Void Invoke(Int32, Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Button">
+      <method name="Void add_Click(EventHandler)" attrs="2182">
+        <size>25</size>
+      </method>
+      <method name="Void remove_Click(EventHandler)" attrs="2182">
+        <size>25</size>
+      </method>
+      <method name="Void OnClick(Int32, Int32)" attrs="134">
+        <size>42</size>
+      </method>
+      <method name="Void Reset()" attrs="134">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Blah">
+      <method name="Void Connect()" attrs="134">
+        <size>60</size>
+      </method>
+      <method name="Void Button1_Click(Int32, Int32)" attrs="134">
+        <size>35</size>
+      </method>
+      <method name="Void Foo_Click(Int32, Int32)" attrs="134">
+        <size>35</size>
+      </method>
+      <method name="Void Disconnect()" attrs="134">
+        <size>35</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>74</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="EventHandler">
+      <method name="System.IAsyncResult BeginInvoke(Int32, Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-570.cs">
+    <type name="Bar">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-571.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-572.cs">
+    <type name="Color">
+      <method name="Color From(Int32)" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Int32 ToArgb()" attrs="134">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Color get_Color()" attrs="2182">
+        <size>18</size>
+      </method>
+      <method name="Void ResetCustomColors()" attrs="129">
+        <size>17</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-573.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-574.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-575.cs">
+    <type name="Program">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-576.cs">
+    <type name="Foo">
+      <method name="Void Main()" attrs="150">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-577.cs">
+    <type name="C">
+      <method name="Void IA.add_e_a(System.EventHandler)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Void IA.remove_e_a(System.EventHandler)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Void IA.add_e_b(System.EventHandler)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Void IA.remove_e_b(System.EventHandler)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-578.cs">
+    <type name="Test1.TestDelegate1">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test1.TestItem1">
+      <method name="Int32 Test()" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void add_OnUpdate(Test1.TestDelegate1)" attrs="2502">
+        <size>35</size>
+      </method>
+      <method name="Void remove_OnUpdate(Test1.TestDelegate1)" attrs="2502">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Test1.TestItem2">
+      <method name="Void add_OnUpdate(Test1.TestDelegate1)" attrs="2246">
+        <size>19</size>
+      </method>
+      <method name="Void remove_OnUpdate(Test1.TestDelegate1)" attrs="2246">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Test1.CC">
+      <method name="Int32 Main()" attrs="150">
+        <size>70</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test1.TestDelegate1">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test1.CC">
+      <method name="Int32 &lt;Main&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-579.cs">
+    <type name="TestCase">
+      <method name="Int32 Main()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 Test1()" attrs="145">
+        <size>49</size>
+      </method>
+      <method name="Int32 Test2()" attrs="145">
+        <size>48</size>
+      </method>
+      <method name="Int32 Test3()" attrs="145">
+        <size>47</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-58.cs">
+    <type name="Blah">
+      <method name="Int32 Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-580.cs">
+    <type name="Bla">
+      <method name="Void BuildNode(System.String ByRef)" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void BuildNode(System.String[] ByRef)" attrs="150">
+        <size>59</size>
+      </method>
+      <method name="Void BuildNode_B(System.Object ByRef)" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="System.String BuildNode_C(System.String ByRef)" attrs="150">
+        <size>90</size>
+      </method>
+      <method name="System.String BuildNode_D()" attrs="150">
+        <size>179</size>
+      </method>
+      <method name="Void BuildNode_E(System.String[,] ByRef)" attrs="150">
+        <size>84</size>
+      </method>
+      <method name="Boolean Test_Object()" attrs="145">
+        <size>184</size>
+      </method>
+      <method name="Boolean Test_Decimal()" attrs="145">
+        <size>141</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>346</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-581.cs">
+    <type name="TestParams">
+      <method name="System.Object get_Item(System.String[])" attrs="2177">
+        <size>12</size>
+      </method>
+      <method name="Void set_Item(System.String[], System.Object)" attrs="2177">
+        <size>41</size>
+      </method>
+      <method name="Void TestMethod()" attrs="134">
+        <size>174</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestNonParams">
+      <method name="System.Object get_Item(System.String)" attrs="2177">
+        <size>10</size>
+      </method>
+      <method name="Void set_Item(System.String, System.Object)" attrs="2177">
+        <size>41</size>
+      </method>
+      <method name="Void TestMethod()" attrs="134">
+        <size>72</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Int32 Main()" attrs="150">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-582.cs">
+    <type name="TrueClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-583.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ObjectContainerBase">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-584.cs">
+    <type name="Style">
+      <method name="Style get_CurrentStyle()" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void set_CurrentStyle(Style)" attrs="2198">
+        <size>2</size>
+      </method>
+      <method name="Boolean LoadCurrentStyle()" attrs="145">
+        <size>28</size>
+      </method>
+      <method name="Style Load()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-585.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-586.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>112</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+MyColor">
+      <method name="Single get_Value()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="MyColor op_Addition(MyColor, MyColor)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor(Single)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-587.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-588.cs">
+    <type name="TestNamespace.TestClass">
+      <method name="Void HelloWorld()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SuperClass">
+      <method name="TestNamespace.TestClass get_TestClass()" attrs="2177">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="SubClass">
+      <method name="Void .ctor()" attrs="6278">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="App">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-589.cs">
+    <type name="TestNamespace.TestClass">
+      <method name="Void HelloWorld()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SuperClass">
+      <method name="TestNamespace.TestClass get_TestClass()" attrs="2177">
+        <size>15</size>
+      </method>
+      <method name="Void set_TestClass(TestNamespace.TestClass)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="SubClass">
+      <method name="Void .ctor()" attrs="6278">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="App">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-59.cs">
+    <type name="X">
+      <method name="Int32 test_explicit()" attrs="145">
+        <size>294</size>
+      </method>
+      <method name="Int32 test_implicit()" attrs="145">
+        <size>136</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>75</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-590.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="System.String Foo()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="System.String get_Prop()" attrs="2177">
+        <size>15</size>
+      </method>
+      <method name="Void set_Prop(System.String)" attrs="2177">
+        <size>9</size>
+      </method>
+      <method name="System.String get_Item(Int32)" attrs="2177">
+        <size>15</size>
+      </method>
+      <method name="Void set_Item(Int32, System.String)" attrs="2177">
+        <size>9</size>
+      </method>
+      <method name="Int32 Do(System.String, System.String, System.String)" attrs="129">
+        <size>363</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-591.cs">
+    <type name="C1">
+      <method name="Void Foo(System.String)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C2">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-592.cs">
+    <type name="T">
+      <method name="Int32 fib(Int32)" attrs="145">
+        <size>69</size>
+      </method>
+      <method name="Int32 xx(Int32)" attrs="145">
+        <size>46</size>
+      </method>
+      <method name="Void foo(Int32)" attrs="129">
+        <size>40</size>
+      </method>
+      <method name="Void XXXA()" attrs="145">
+        <size>7</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-593.cs">
+    <type name="MainClass">
+      <method name="Void Foo(I)" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-594.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>112</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-595.cs">
+    <type name="AttributesCollection">
+      <method name="System.Object get_Item(SymbolId)" attrs="2534">
+        <size>10</size>
+      </method>
+      <method name="Void set_Item(SymbolId, System.Object)" attrs="2534">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="System.Object SetDictionaryValue(System.Object, SymbolId, System.Object)" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-596.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-597.cs">
+    <type name="TestNS.Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestNS.XElement">
+      <method name="TestNS.Bar get_Document()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="System.Object get_CrashHere()" attrs="2182">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestNS.Element">
+      <method name="TestNS.Foo get_Document()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestNS.Bar">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestNS.C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestNS.Bar">
+      <method name="TestNS.IHoge get_Root()" attrs="2182">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-598.cs">
+    <type name="V">
+      <method name="Void set_Item(Int32, Int32)" attrs="2182">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="V get_v()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>36</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-599.cs">
+    <type name="Test.String">
+      <method name="Test.String op_Implicit(System.String)" attrs="2198">
+        <size>28</size>
+      </method>
+      <method name="System.String op_Implicit(Test.String)" attrs="2198">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="TestCompiler.MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>93</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-6.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>45</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-60.cs">
+    <type name="ns5.Y">
+      <method name="Void Run()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-600.cs">
+    <type name="Test.Regression">
+      <method name="Int32 Main()" attrs="150">
+        <size>124</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-601.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+MarkerUpdatedVMDelegate">
+      <method name="Void Invoke(IntPtr, IntPtr)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(IntPtr, IntPtr, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-602.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>118</size>
+      </method>
+      <method name="Int32 Error(System.String, System.Object[])" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Int32 Format(System.String, System.Object)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Format(System.String, System.Object[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Format(System.String, System.Object, System.Object[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_A(System.String)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_A(System.String, System.Object[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 Test_C(System.Type, Int32[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test_C(System.Type, Int32[], Int32[])" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-603.cs">
+    <type name="ConsoleApplication1.Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>65</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-604.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>102</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+ImplementingExplicitInterfacesMembers">
+      <method name="Void Program.Iface1.IfaceMethod1()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void Program.Iface2.IfaceMethod2()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-605.cs">
+    <type name="TestA">
+      <method name="System.String get_Method()" attrs="2502">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestB">
+      <method name="System.String get_Method()" attrs="2177">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-606.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>194</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Info">
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>10</size>
+      </method>
+      <method name="Boolean System.Collections.IEnumerator.MoveNext()" attrs="481">
+        <size>10</size>
+      </method>
+      <method name="Void System.Collections.IEnumerator.Reset()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="System.Object Mono.Test.ITest.get_Item(Int32)" attrs="2529">
+        <size>10</size>
+      </method>
+      <method name="Void Mono.Test.ITest.set_Item(Int32, System.Object)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-607.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>143</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-608.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>61</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-609.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-61.cs">
+    <type name="X">
+      <method name="Int32 get_Property()" attrs="2177">
+        <size>12</size>
+      </method>
+      <method name="Void set_Property(Int32)" attrs="2177">
+        <size>4</size>
+      </method>
+      <method name="Int32 get_P2()" attrs="2177">
+        <size>10</size>
+      </method>
+      <method name="Void set_P3(Int32)" attrs="2177">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+MyEvent">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void add_XX(MyEvent)" attrs="2182">
+        <size>4</size>
+      </method>
+      <method name="Void remove_XX(MyEvent)" attrs="2182">
+        <size>4</size>
+      </method>
+    </type>
+    <type name="X+MyEvent">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-610.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+C+D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.B+C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.B+C+E">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.B+A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.B+A+D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-611.cs">
+    <type name="T">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T+Protected">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D+Private">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D2+P">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D2+P+Private">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D+Private">
+      <method name="Void Stuff(Protected)" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="D2+P+Private">
+      <method name="Void Stuff(Protected)" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-612.cs">
+    <type name="Abcdefghijklmnopqrstuvwxyz">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="OO">
+      <method name="Void D()" attrs="129">
+        <size>5294</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Zyxwvutsrqp">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="XXX">
+      <method name="Boolean IsAltered()" attrs="134">
+        <size>872</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-613.cs">
+    <type name="M">
+      <method name="Boolean g()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>80</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-614.cs">
+    <type name="C">
+      <method name="Void And()" attrs="147">
+        <size>74</size>
+      </method>
+      <method name="Void Or()" attrs="147">
+        <size>142</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>88</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-615.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-617.cs">
+    <type name="MyDelegate">
+      <method name="Int64 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void X.add_Foo(MyDelegate)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Void X.remove_Foo(MyDelegate)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Int32 X.get_Prop()" attrs="2529">
+        <size>10</size>
+      </method>
+      <method name="Void add_Foo(MyDelegate)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Foo(MyDelegate)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>104</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int64 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-618.cs">
+    <type name="C">
+      <method name="Void ZeroBasedReductions()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void ZeroBasedReductionsWithConversion()" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-619.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-62.cs">
+    <type name="X">
+      <method name="X[] GetX()" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32[] getInt()" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Int32[,,] getMoreInt()" attrs="129">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-620.cs">
+    <type name="X">
+      <method name="Void A(Int32 ByRef)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Void B(Int32 ByRef)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-621.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>130</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-622.cs">
+    <type name="A">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Foo(A ByRef)" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void Foo(System.Object ByRef)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-623.cs">
+    <type name="X">
+      <method name="Void a()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void a()" attrs="198">
+        <size>17</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-624.cs">
+    <type name="X">
+      <method name="Int32 get_Type()" attrs="2177">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>4</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-625.cs">
+    <type name="Location">
+      <method name="Int32 get_Null()" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6273">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-626.cs">
+    <type name="X">
+      <method name="Void A()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-627.cs">
+    <type name="B">
+      <method name="Void X.B()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void A.B()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void N(System.Object)" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-628.cs">
+    <type name="N1.B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-629.cs">
+    <type name="Foo">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo+Nested">
+      <method name="Int32 get_Bar()" attrs="2198">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-63.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>98</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-630.cs">
+    <type name="MyEx">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Ex">
+      <method name="Int32 test(Int32)" attrs="150">
+        <size>30</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>98</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-631.cs">
+    <type name="A">
+      <method name="SByte op_Implicit(A)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Byte op_Implicit(A)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int16 op_Implicit(A)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="UInt16 op_Implicit(A)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int32 op_Implicit(A)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="UInt32 op_Implicit(A)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int64 op_Implicit(A)" attrs="2198">
+        <size>11</size>
+      </method>
+      <method name="UInt64 op_Implicit(A)" attrs="2198">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A2">
+      <method name="SByte op_Implicit(A2)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Byte op_Implicit(A2)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int16 op_Implicit(A2)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="UInt32 op_Implicit(A2)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int64 op_Implicit(A2)" attrs="2198">
+        <size>11</size>
+      </method>
+      <method name="UInt64 op_Implicit(A2)" attrs="2198">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A3">
+      <method name="SByte op_Implicit(A3)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="UInt32 op_Implicit(A3)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int64 op_Implicit(A3)" attrs="2198">
+        <size>11</size>
+      </method>
+      <method name="UInt64 op_Implicit(A3)" attrs="2198">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A4">
+      <method name="UInt32 op_Implicit(A4)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int64 op_Implicit(A4)" attrs="2198">
+        <size>11</size>
+      </method>
+      <method name="UInt64 op_Implicit(A4)" attrs="2198">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A5">
+      <method name="UInt32 op_Implicit(A5)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int32 op_Implicit(A5)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A6">
+      <method name="Byte op_Implicit(A6)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyDecimal">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Constraint">
+      <method name="Int32 Main()" attrs="150">
+        <size>387</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyDecimal">
+      <method name="System.Decimal op_Implicit(MyDecimal)" attrs="2198">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-632.cs">
+    <type name="Bug379822">
+      <method name="Void Assert(Boolean, Boolean)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Void TestAnd(Boolean)" attrs="145">
+        <size>80</size>
+      </method>
+      <method name="Void TestOr(Boolean)" attrs="145">
+        <size>89</size>
+      </method>
+      <method name="Void Test(Boolean)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-633.cs">
+    <type name="Test.C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-634.cs">
+    <type name="Test">
+      <method name="Void TestFunc()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestFunc&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-635.cs">
+    <type name="ShortCircuitFold">
+      <method name="Boolean get_False()" attrs="2193">
+        <size>22</size>
+      </method>
+      <method name="Boolean get_True()" attrs="2193">
+        <size>22</size>
+      </method>
+      <method name="Void a(Boolean, Boolean)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Void c(Int32)" attrs="145">
+        <size>68</size>
+      </method>
+      <method name="Boolean f()" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>168</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-636.cs">
+    <type name="Foo">
+      <method name="Boolean get_False()" attrs="2193">
+        <size>22</size>
+      </method>
+      <method name="Void ping()" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="Int32 test_while(Int32)" attrs="145">
+        <size>64</size>
+      </method>
+      <method name="Int32 test_do_while(Int32)" attrs="145">
+        <size>63</size>
+      </method>
+      <method name="Int32 test_for(Int32)" attrs="145">
+        <size>74</size>
+      </method>
+      <method name="Void test_for_empty()" attrs="145">
+        <size>36</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-637.cs">
+    <type name="A">
+      <method name="System.Type get_Value()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Value(System.Type)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Object)" attrs="6278">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="TestProp">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>124</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-638.cs">
+    <type name="Fail">
+      <method name="Void Main()" attrs="150">
+        <size>111</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Fail+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-639.cs">
+    <type name="Foo">
+      <method name="System.String get_s()" attrs="2177">
+        <size>21</size>
+      </method>
+      <method name="Void set_s(System.String)" attrs="2177">
+        <size>35</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-64.cs">
+    <type name="Operator">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Blah">
+      <method name="Void .ctor(Operator)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-640.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>139</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-641.cs">
+    <type name="Identifier">
+      <method name="Boolean op_Equality(Identifier, Identifier)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_Inequality(Identifier, Identifier)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Identifier op_Implicit(System.String)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="System.String op_Implicit(Identifier)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>73</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="System.Decimal op_Implicit(Identifier)" attrs="2198">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-642.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-643.cs">
+    <type name="PointerArithmeticTest">
+      <method name="Int32 Main()" attrs="150">
+        <size>137</size>
+      </method>
+      <method name="Int32* Conversions(Int64)" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Int32 CheckAdd(Byte*, Int32)" attrs="145">
+        <size>27</size>
+      </method>
+      <method name="Int32 CheckSub(Int16*, Int32)" attrs="145">
+        <size>29</size>
+      </method>
+      <method name="Int32 CheckSub2(Int16*, Int32)" attrs="145">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-644.cs">
+    <type name="Program">
+      <method name="System.Object M(Int32)" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Void Test_1()" attrs="129">
+        <size>60</size>
+      </method>
+      <method name="Boolean Test_2()" attrs="134">
+        <size>32</size>
+      </method>
+      <method name="Boolean Test_3()" attrs="134">
+        <size>32</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>98</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+D">
+      <method name="System.Object Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Boolean Test_4(D)" attrs="134">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="Program+D">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.Object EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-645.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-646.cs">
+    <type name="Program">
+      <method name="Int64 CastUIntPtrToInt64(UIntPtr)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="UInt32 CastIntPtrToUInt32(IntPtr)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>145</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-647.cs">
+    <type name="Foo">
+      <method name="Void Main()" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-648.cs">
+    <type name="ParamMismatch.TestCase">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void add_Culprit(System.EventHandler)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void remove_Culprit(System.EventHandler)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void Finalize()" attrs="196">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-649.cs">
+    <type name="MainClass">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>610</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+Decimal2">
+      <method name="Decimal2 op_Explicit(Double)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Double)" attrs="6278">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor(Decimal)" attrs="6278">
+        <size>9</size>
+      </method>
+      <method name="Decimal2 op_Explicit(System.Decimal)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="System.Decimal op_Implicit(Decimal2)" attrs="2198">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-65.cs">
+    <type name="X">
+      <method name="Void receiver(S)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="System.Object BoxS()" attrs="145">
+        <size>29</size>
+      </method>
+      <method name="S Plain()" attrs="145">
+        <size>24</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>132</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-650.cs">
+    <type name="App">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-651.cs">
+    <type name="Foo">
+      <method name="Void Open(System.Collections.ArrayList ByRef)" attrs="129">
+        <size>21</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Open(System.Collections.IList)" attrs="129">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-652.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Int32 Test()" attrs="150">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-653.cs">
+    <type name="C">
+      <method name="Int32 Test()" attrs="145">
+        <size>43</size>
+      </method>
+      <method name="Void Test2()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Void Test2(SByte, Int16, Int32, Int64, UInt64)" attrs="145">
+        <size>40</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-654.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Int32 Test(SByte*)" attrs="145">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-655.cs">
+    <type name="D">
+      <method name="Byte get_Item(Int32)" attrs="2177">
+        <size>15</size>
+      </method>
+      <method name="Void set_Item(Int32, Byte)" attrs="2177">
+        <size>9</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>76</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-656.cs">
+    <type name="Goo">
+      <method name="Void Main()" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-657.cs">
+    <type name="TestDebug.C">
+      <method name="Void Method()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestDebug.Program">
+      <method name="Void Excluded()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-658.cs">
+    <type name="A">
+      <method name="Int32 get_Thread()" attrs="2177">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Thread">
+      <method name="Void Foo()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Main()" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-659.cs">
+    <type name="MySubClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void set_BB(Int32, Boolean)" attrs="2534">
+        <size>2</size>
+      </method>
+      <method name="Void Iface.set_AA(Int32, Boolean)" attrs="993">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-66.cs">
+    <type name="Y">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void FillOne()" attrs="145">
+        <size>19</size>
+      </method>
+      <method name="Void FillSingle()" attrs="145">
+        <size>42</size>
+      </method>
+      <method name="Void FillDouble()" attrs="145">
+        <size>60</size>
+      </method>
+      <method name="Void FillObject()" attrs="145">
+        <size>55</size>
+      </method>
+      <method name="Void FillDoubleObject()" attrs="145">
+        <size>84</size>
+      </method>
+      <method name="Int32 TestSingle()" attrs="145">
+        <size>62</size>
+      </method>
+      <method name="Int32 TestDouble()" attrs="145">
+        <size>82</size>
+      </method>
+      <method name="Int32 TestObjectSingle()" attrs="145">
+        <size>63</size>
+      </method>
+      <method name="Int32 TestObjectDouble()" attrs="145">
+        <size>87</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>108</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>53</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-660.cs">
+    <type name="Status">
+      <method name="Status op_Implicit(Code)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Code op_Implicit(Status)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor(Code)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-661.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void TestMethod()" attrs="134">
+        <size>16</size>
+      </method>
+      <method name="SummaryInfo GetSummary()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-662.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-663.cs">
+    <type name="A">
+      <method name="Int32 op_Implicit(A)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_Implicit(A)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-664.cs">
+    <type name="C">
+      <method name="Boolean Test(System.String)" attrs="145">
+        <size>159</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>72</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-665.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Int32 Method(System.Object)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-666.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-667.cs">
+    <type name="CA">
+      <method name="Void IA.M()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CC">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-668.cs">
+    <type name="Bar">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-669.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>4</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-670.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-671.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="Boolean Bar(System.Object)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-672.cs">
+    <type name="X">
+      <method name="Int32* get_Foo()" attrs="2177">
+        <size>11</size>
+      </method>
+      <method name="S* get_Foo2()" attrs="2177">
+        <size>11</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-673.cs">
+    <type name="Test">
+      <method name="Void Foo()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>103</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-674.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>64</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+D">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-675.cs">
+    <type name="B">
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_Equality(B, B)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_Inequality(B, B)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-676.cs">
+    <type name="N.Item">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="N.Test">
+      <method name="N.Item get_Item(N.Test)" attrs="2177">
+        <size>10</size>
+      </method>
+      <method name="Void Foo(ItemSlot)" attrs="129">
+        <size>26</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-677.cs">
+    <type name="InvokeWindow">
+      <method name="Void add_E(D)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_E(D)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void Run()" attrs="134">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Void OnDeleteEvent()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void OnDeleteEvent(Int32)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-678.cs">
+    <type name="NaNTest">
+      <method name="Int32 Main()" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor(Double, Double)" attrs="6278">
+        <size>172</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-68.cs">
+    <type name="Y">
+      <method name="Void .ctor()" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>204</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-680.cs">
+    <type name="AsStringProblem.MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>95</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-681.cs">
+    <type name="BugClass">
+      <method name="Void .cctor()" attrs="6289">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="BugClass+Foo">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Bug">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="BugClass">
+      <method name="Void FooImplementation(Void*)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="BugClass+Foo">
+      <method name="Void Invoke(Void*)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Void*, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-682.cs">
+    <type name="broken_cast">
+      <method name="Void report(System.String)" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void conv_ovf_i(Int64, Boolean)" attrs="150">
+        <size>78</size>
+      </method>
+      <method name="Void conv_ovf_i_un(Int64, Boolean)" attrs="150">
+        <size>78</size>
+      </method>
+      <method name="Void conv_ovf_u(Int64, Boolean)" attrs="150">
+        <size>78</size>
+      </method>
+      <method name="Void conv_ovf_u_un(Int64, Boolean)" attrs="150">
+        <size>78</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>191</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-683.cs">
+    <type name="broken_cast">
+      <method name="Int32 Main()" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-684.cs">
+    <type name="mono_bug.Program">
+      <method name="Void Main()" attrs="150">
+        <size>78</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Double[][,] ReturnArray()" attrs="145">
+        <size>70</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-685.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-686.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>53</size>
+      </method>
+      <method name="Void Foo()" attrs="145">
+        <size>150</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-687.cs">
+    <type name="XUnit">
+      <method name="XUnit op_Implicit(Double)" attrs="2198">
+        <size>18</size>
+      </method>
+      <method name="Double op_Implicit(XUnit)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor(Double)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Unit">
+      <method name="Unit op_Implicit(Double)" attrs="2198">
+        <size>18</size>
+      </method>
+      <method name="Double op_Implicit(Unit)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor(Double)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>64</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-688.cs">
+    <type name="Test">
+      <method name="Byte* GetFoo()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Byte* GetFoo2()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>64</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-689.cs">
+    <type name="Sample">
+      <method name="Void Foo(Byte*, Byte*)" attrs="150">
+        <size>43</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>4</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-69.cs">
+    <type name="Blah">
+      <method name="Void Start_internal(IntPtr)" attrs="129">
+        <size>0</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-690.cs">
+    <type name="Test.Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-691.cs">
+    <type name="ConsoleApplication6.Program">
+      <method name="Void Main()" attrs="150">
+        <size>133</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>23</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-692.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>169</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void test1(System.DateTime ByRef)" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Void test2(System.DateTime ByRef)" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-693.cs">
+    <type name="ConstTest">
+      <method name="Int32 Main()" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-694.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-695.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>766</size>
+      </method>
+      <method name="System.String get_BaseDirectory()" attrs="2193">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>53</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-696.cs">
+    <type name="S">
+      <method name="S op_Implicit(C)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void f(S)" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-697.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-698.cs">
+    <type name="test">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-699.cs">
+    <type name="D">
+      <method name="System.String get_message()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>26</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-7.cs">
+    <type name="Mine.MyBoolean">
+      <method name="Boolean op_Implicit(Mine.MyBoolean)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Mine.MyTrueFalse">
+      <method name="Boolean op_True(Mine.MyTrueFalse)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_False(Mine.MyTrueFalse)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Mine.Blah">
+      <method name="Int32 Main()" attrs="150">
+        <size>478</size>
+      </method>
+      <method name="Mine.Blah op_Addition(Mine.Blah, Mine.Blah)" attrs="2198">
+        <size>39</size>
+      </method>
+      <method name="Mine.Blah op_UnaryPlus(Mine.Blah)" attrs="2198">
+        <size>30</size>
+      </method>
+      <method name="Mine.Blah op_UnaryNegation(Mine.Blah)" attrs="2198">
+        <size>31</size>
+      </method>
+      <method name="Mine.Blah op_Subtraction(Mine.Blah, Mine.Blah)" attrs="2198">
+        <size>39</size>
+      </method>
+      <method name="Int32 op_Multiply(Mine.Blah, Mine.Blah)" attrs="2198">
+        <size>32</size>
+      </method>
+      <method name="Int32 op_Division(Mine.Blah, Mine.Blah)" attrs="2198">
+        <size>32</size>
+      </method>
+      <method name="Int32 op_Modulus(Mine.Blah, Mine.Blah)" attrs="2198">
+        <size>32</size>
+      </method>
+      <method name="Mine.Blah op_OnesComplement(Mine.Blah)" attrs="2198">
+        <size>31</size>
+      </method>
+      <method name="Boolean op_LogicalNot(Mine.Blah)" attrs="2198">
+        <size>28</size>
+      </method>
+      <method name="Mine.Blah op_Increment(Mine.Blah)" attrs="2198">
+        <size>34</size>
+      </method>
+      <method name="Mine.Blah op_Decrement(Mine.Blah)" attrs="2198">
+        <size>34</size>
+      </method>
+      <method name="Boolean op_True(Mine.Blah)" attrs="2198">
+        <size>28</size>
+      </method>
+      <method name="Boolean op_False(Mine.Blah)" attrs="2198">
+        <size>31</size>
+      </method>
+      <method name="Int32 op_Implicit(Mine.Blah)" attrs="2198">
+        <size>25</size>
+      </method>
+      <method name="Double op_Explicit(Mine.Blah)" attrs="2198">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-70.cs">
+    <type name="X">
+      <method name="Int32 get_A()" attrs="2502">
+        <size>10</size>
+      </method>
+      <method name="Int32 B()" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Int32 get_A()" attrs="2246">
+        <size>17</size>
+      </method>
+      <method name="Int32 B()" attrs="198">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Int32 Main()" attrs="150">
+        <size>98</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-700.cs">
+    <type name="FooAttribute">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-701.cs">
+    <type name="Foo">
+      <method name="UInt16 ToUint16()" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-702.cs">
+    <type name="S">
+      <method name="Void Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor(String, Int32)" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-703.cs">
+    <type name="A">
+      <method name="Void add_Finished(System.EventHandler)" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void remove_Finished(System.EventHandler)" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void test(A)" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void TestA(System.Object, System.EventArgs)" attrs="134">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void add_Finished(System.EventHandler)" attrs="2246">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Finished(System.EventHandler)" attrs="2246">
+        <size>42</size>
+      </method>
+      <method name="Void TestB(System.Object, System.EventArgs)" attrs="134">
+        <size>26</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>50</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-704.cs">
+    <type name="NObjective.Program">
+      <method name="Void ArglistMethod(...)" attrs="145">
+        <size>52</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-705.cs">
+    <type name="Test">
+      <method name="Nested GetEnumerator()" attrs="134">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+Nested">
+      <method name="Void System.IDisposable.Dispose()" attrs="481">
+        <size>14</size>
+      </method>
+      <method name="Int32 get_Current()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void Reset()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Dispose()" attrs="134">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>88</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-706.cs">
+    <type name="Test.CustomParentAttribute">
+      <method name="Void DoSomething()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.MyClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.MyClass+CustomChildAttribute">
+      <method name="Void DoSomething()" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-707.cs">
+    <type name="Tzap">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tzap+Baz">
+      <method name="Void Gazonk()" attrs="134">
+        <size>8</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tzap+Bar">
+      <method name="Void Foo()" attrs="452">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-708.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+ADelegate">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="ADelegate Delegate2(Boolean)" attrs="150">
+        <size>50</size>
+      </method>
+    </type>
+    <type name="A+ADelegate">
+      <method name="ADelegate Invoke(Boolean)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Boolean, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="ADelegate EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-709.cs">
+    <type name="C">
+      <method name="Void CharCopy(Char*, Char*, Int32)" attrs="145">
+        <size>36</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>71</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void CopyTo(Int32, Char[], Int32, Int32)" attrs="145">
+        <size>71</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-71.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MethodSignature">
+      <method name="Void .ctor(String, Type, Type[])" attrs="6278">
+        <size>23</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-710.cs">
+    <type name="Z">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-711.cs">
+    <type name="N.Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-712.cs">
+    <type name="Hello">
+      <method name="Void Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-713.cs">
+    <type name="DispBar">
+      <method name="Void Dispose()" attrs="486">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Boolean TryThing()" attrs="150">
+        <size>43</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IDisposable GetBar()" attrs="134">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-714.cs">
+    <type name="Hello">
+      <method name="Void IBar.Test()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-715.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-716.cs">
+    <type name="SS">
+      <method name="Void .cctor()" attrs="6289">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="SSS">
+      <method name="Void .cctor()" attrs="6289">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CC">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="CCC">
+      <method name="Void .cctor()" attrs="6289">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>230</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-717.cs">
+    <type name="AA">
+      <method name="Int32 Foo(Int32)" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Int32 Foo(Byte)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo(Int32)" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 Foo(Int32)" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void Foo(System.String)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.String ToString()" attrs="198">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="MyClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>83</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-718.cs">
+    <type name="A">
+      <method name="Void Foo(Int32, Int32)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Main()" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Void Foo(Int32)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-719.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-72.cs">
+    <type name="outer">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="outer+inner">
+      <method name="Void meth(System.Object)" attrs="134">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-720.cs">
+    <type name="N.Program">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.Parent">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.Parent+ExampleHandler">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="N.Child">
+      <method name="Void OnExample()" attrs="134">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.Parent">
+      <method name="Void add_Example(ExampleHandler)" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void remove_Example(ExampleHandler)" attrs="3526">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="N.Parent+ExampleHandler">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="N.Child">
+      <method name="Void add_Example(ExampleHandler)" attrs="2246">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Example(ExampleHandler)" attrs="2246">
+        <size>42</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-721.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Control">
+      <method name="Void set_Foo(Int32)" attrs="2502">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-722.cs">
+    <type name="S">
+      <method name="Void set_Prop(Int32)" attrs="2534">
+        <size>9</size>
+      </method>
+      <method name="Void M[T](T)" attrs="129">
+        <size>19</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>61</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-723.cs">
+    <type name="Test">
+      <method name="Int32 get_Count()" attrs="2534">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Maine">
+      <method name="Int32 Main()" attrs="150">
+        <size>34</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-724.cs">
+    <type name="Test">
+      <method name="Int32 DoTest(System.String, System.String, System.String, Int32)" attrs="145">
+        <size>43</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>118</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Concrete">
+      <method name="System.String A.get_Spec()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.String B.get_Spec()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.String get_Spec()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-725.cs">
+    <type name="D">
+      <method name="Int32 Invoke(Int32 ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 Main()" attrs="150">
+        <size>217</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(Int32 ByRef, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(Int32 ByRef, System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-726.cs">
+    <type name="CS0102">
+      <method name="System.Object IFoo.Clone()" attrs="481">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CS0102+Clone">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-727.cs">
+    <type name="IDisposableTest.MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>126</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="IDisposableTest.Foo">
+      <method name="Void Dispose()" attrs="486">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>65</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-728.cs">
+    <type name="Tests">
+      <method name="Int32 Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-729.cs">
+    <type name="Primes.MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>146</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-73.cs">
+    <type name="Abstract">
+      <method name="Int32 A()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Concrete">
+      <method name="Int32 A()" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-730.cs">
+    <type name="Demo">
+      <method name="Void Test(System.Object)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Int32 Test(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 GetPhones()" attrs="129">
+        <size>47</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Demo+D">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-731.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-732.cs">
+    <type name="C">
+      <method name="Int32 op_Explicit(C)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int32 op_Implicit(C, Boolean)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-733.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>103</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-734.cs">
+    <type name="M">
+      <method name="Void Run()" attrs="134">
+        <size>23</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>72</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-735.cs">
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+C+X">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-736.cs">
+    <type name="TestGeneric`1[T]">
+      <method name="Void add_Event(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Event(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void Raise()" attrs="134">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGeneric2`1[T]">
+      <method name="Void Raise()" attrs="134">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGeneric2`1+GenericHandler[T]">
+      <method name="Void Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void add_Event(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Event(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void Raise()" attrs="134">
+        <size>19</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGeneric2`1[T]">
+      <method name="Void add_Event(GenericHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Event(GenericHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+    </type>
+    <type name="TestGeneric2`1+GenericHandler[T]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-737.cs">
+    <type name="Breaks">
+      <method name="Double get_Item(Int32, Int32)" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32, Double)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor(Double)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Int32 Main()" attrs="150">
+        <size>85</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-738.cs">
+    <type name="TestNamespace.ResumableInputStream">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-739.cs">
+    <type name="X">
+      <method name="Void Finalize()" attrs="196">
+        <size>20</size>
+      </method>
+      <method name="Void Foo()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>105</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-74.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>198</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-740.cs">
+    <type name="FixedTest">
+      <method name="Int32 Main()" attrs="150">
+        <size>361</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FixedTest+TValue">
+      <method name="System.String ToString()" attrs="198">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor(Int64)" attrs="6278">
+        <size>29</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-741.cs">
+    <type name="Test">
+      <method name="Void test()" attrs="129">
+        <size>19</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-742.cs">
+    <type name="Test">
+      <method name="Test Set(C)" attrs="150">
+        <size>28</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Driver">
+      <method name="Int32 Main()" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-743.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void Test()" attrs="129">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-744.cs">
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M+Nested">
+      <method name="Void Extra()" attrs="196">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void AMethod()" attrs="1476">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void BMethod()" attrs="1476">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void AMethod()" attrs="196">
+        <size>2</size>
+      </method>
+      <method name="Void BMethod()" attrs="196">
+        <size>2</size>
+      </method>
+      <method name="Void Extra()" attrs="1476">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-745.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-746.cs">
+    <type name="Test">
+      <method name="Void Foo(IListCounter)" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-747.cs">
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+BNested">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AA">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AA+ANested">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-748.cs">
+    <type name="M">
+      <method name="RealTest.Foo Test()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Local.M">
+      <method name="RealTest.Foo Test()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="RealTest.Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-749.cs">
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-75.cs">
+    <type name="X">
+      <method name="X op_Addition(X, X)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="driver">
+      <method name="Int32 Main()" attrs="150">
+        <size>47</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-750.cs">
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-751.cs">
+    <type name="LocalNS.Compiler">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="System.Local.M">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-752.cs">
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-753.cs">
+    <type name="AI2">
+      <method name="System.String IA.get_val()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Void IA.set_val(System.String)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_val()" attrs="2534">
+        <size>11</size>
+      </method>
+      <method name="Void set_val(Int32)" attrs="2534">
+        <size>2</size>
+      </method>
+      <method name="Void stuff(IAI2)" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-754.cs">
+    <type name="Bug.D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Bug.A">
+      <method name="Void add_E(Bug.D)" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void remove_E(Bug.D)" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bug.B">
+      <method name="Void add_E(Bug.D)" attrs="2246">
+        <size>2</size>
+      </method>
+      <method name="Void remove_E(Bug.D)" attrs="2246">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bug.M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bug.D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-755.cs">
+    <type name="Item">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Item+Builder">
+      <method name="Int32 get_Foo()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="System.Object get_Item(Int32)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="System.Object get_Item(Int32, Int32)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-756.cs">
+    <type name="UnsafeTest">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-757.cs">
+    <type name="TestClass1">
+      <method name="Void Test()" attrs="129">
+        <size>35</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-758.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void Finalize()" attrs="196">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-759.cs">
+    <type name="B">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-76.cs">
+    <type name="foo">
+      <method name="System.String strcat(System.String[])" attrs="145">
+        <size>60</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>165</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-760.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-761.cs">
+    <type name="C">
+      <method name="Int32 get_I()" attrs="2177">
+        <size>14</size>
+      </method>
+      <method name="Void set_I(Int32)" attrs="2177">
+        <size>8</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-762.cs">
+    <type name="N1.Derived.Dummy">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N2.Derived.Dummy">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="DerivedAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-763.cs">
+    <type name="StaticDelegateWithSameNameAsInstance">
+      <method name="Void StaticCallback()" attrs="134">
+        <size>49</size>
+      </method>
+      <method name="Void StaticCallback(System.String)" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>49</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="StaticDelegateWithSameNameAsInstance+Provider">
+      <method name="Void Invoke(System.String)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="StaticDelegateWithSameNameAsInstance">
+      <method name="Void set_MyProvider(Provider)" attrs="2177">
+        <size>38</size>
+      </method>
+    </type>
+    <type name="StaticDelegateWithSameNameAsInstance+Provider">
+      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-764.cs">
+    <type name="Item">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="Caller">
+      <method name="System.String get_Item(System.String)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void Foo()" attrs="134">
+        <size>13</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-765.cs">
+    <type name="B">
+      <method name="Void Foo(Int32)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void Foo(System.String)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-766.cs">
+    <type name="A.Color">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B.Color">
+      <method name="Void .cctor()" attrs="6289">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="A.Color">
+      <method name="B.Color get_Base()" attrs="2180">
+        <size>14</size>
+      </method>
+      <method name="B.Color get_NewBase()" attrs="2180">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="B.Color">
+      <method name="B.Color From(Int32)" attrs="150">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-767.cs">
+    <type name="Test">
+      <method name="Int32 Foo()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="Test get_Test()" attrs="2177">
+        <size>14</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-768.cs">
+    <type name="A.N.Wrong">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X.TestClass">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-769.cs">
+    <type name="C">
+      <method name="Void I.Clear()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void Clear()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>132</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-77.cs">
+    <type name="XX">
+      <method name="Int32 Main()" attrs="150">
+        <size>443</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-770.cs">
+    <type name="MyClass">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyClass+A">
+      <method name="Void add_MouseClick(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_MouseClick(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyClass+B">
+      <method name="Void add_MouseClick(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_MouseClick(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyClass+C">
+      <method name="Void MouseClick()" attrs="134">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-771.cs">
+    <type name="InternalAccess.Base">
+      <method name="System.String get_Prop()" attrs="2179">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6275">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="InternalAccess.DerivedInternalExample">
+      <method name="System.String get_Prop()" attrs="2179">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="InternalAccess.DerivedProtectedExample">
+      <method name="System.String get_Prop()" attrs="2180">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="InternalAccess.MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>78</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-772.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void .ctor(Object)" attrs="6278">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor(String, Object[])" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-773.cs">
+    <type name="Foo">
+      <method name="Int32 get_Item(Int32)" attrs="2534">
+        <size>11</size>
+      </method>
+      <method name="Int32 IFoo.get_Bar(Int32)" attrs="993">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="Int32 get_Baz(Int32)" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Babar">
+      <method name="Int32 get_Baz(Int32)" attrs="2246">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>86</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-774.cs">
+    <type name="C">
+      <method name="Int32 I.get_Item(Int32)" attrs="2529">
+        <size>10</size>
+      </method>
+      <method name="Void I.set_Item(Int32, Int32)" attrs="2529">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32)" attrs="2177">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-775.cs">
+    <type name="C">
+      <method name="Void A.add_Member(System.EventHandler)" attrs="2529">
+        <size>35</size>
+      </method>
+      <method name="Void A.remove_Member(System.EventHandler)" attrs="2529">
+        <size>25</size>
+      </method>
+      <method name="Void add_Member(System.EventHandler)" attrs="2534">
+        <size>35</size>
+      </method>
+      <method name="Void remove_Member(System.EventHandler)" attrs="2534">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Int32 TestMe()" attrs="134">
+        <size>178</size>
+      </method>
+      <method name="Void f(System.Object, System.EventArgs)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-776.cs">
+    <type name="First">
+      <method name="System.Object get_Item(System.String)" attrs="2502">
+        <size>14</size>
+      </method>
+      <method name="Void set_Item(System.String, System.Object)" attrs="2502">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Second">
+      <method name="System.Object get_Item(System.String)" attrs="2246">
+        <size>14</size>
+      </method>
+      <method name="Void set_Item(System.String, System.Object)" attrs="2246">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Third">
+      <method name="System.Object get_Item(System.String)" attrs="2246">
+        <size>16</size>
+      </method>
+      <method name="Void set_Item(System.String, System.Object)" attrs="2246">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="a">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-777.cs">
+    <type name="MediaStore">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MediaStore+Thing">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-778.cs">
+    <type name="A">
+      <method name="Int32 Test()" attrs="454">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 Test()" attrs="198">
+        <size>20</size>
+      </method>
+      <method name="Void Test(System.Object[])" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test(System.Object[], System.String)" attrs="454">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Test(System.Object[], System.String)" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Int32 Test()" attrs="198">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-779.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Boolean test1(Int64, Int64)" attrs="145">
+        <size>27</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-78.cs">
+    <type name="N1.B">
+      <method name="Boolean ShortCasting()" attrs="145">
+        <size>32</size>
+      </method>
+      <method name="Boolean IntCasting()" attrs="145">
+        <size>31</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-780.cs">
+    <type name="MonoVirtuals.X">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoVirtuals.Y">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoVirtuals.A">
+      <method name="Int32 f(MonoVirtuals.X)" attrs="454">
+        <size>20</size>
+      </method>
+      <method name="Int32 f(MonoVirtuals.Y)" attrs="454">
+        <size>21</size>
+      </method>
+      <method name="Int32 get_Item(MonoVirtuals.X)" attrs="2502">
+        <size>20</size>
+      </method>
+      <method name="Int32 get_Item(MonoVirtuals.Y)" attrs="2502">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoVirtuals.B">
+      <method name="Int32 f(MonoVirtuals.X)" attrs="198">
+        <size>20</size>
+      </method>
+      <method name="Int32 get_Item(MonoVirtuals.X)" attrs="2246">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoVirtuals.C">
+      <method name="Int32 f(MonoVirtuals.X)" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Int32 f(MonoVirtuals.Y)" attrs="198">
+        <size>26</size>
+      </method>
+      <method name="Int32 get_Item(MonoVirtuals.X)" attrs="2246">
+        <size>26</size>
+      </method>
+      <method name="Int32 get_Item(MonoVirtuals.Y)" attrs="2246">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoVirtuals.MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>64</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-781.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="Void add_temp(D)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_temp(D)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="E get_Prop()" attrs="2177">
+        <size>14</size>
+      </method>
+      <method name="Void Test()" attrs="129">
+        <size>42</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void &lt;Test&gt;m__0()" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-782.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-783.cs">
+    <type name="C">
+      <method name="Void M(E)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Test(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test(E)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>116</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-784.cs">
+    <type name="A">
+      <method name="Int32 get_Item(Int32)" attrs="2502">
+        <size>7</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32)" attrs="2502">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 get_Item(Int32)" attrs="2246">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 get_Item(Int32)" attrs="2246">
+        <size>16</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32)" attrs="2246">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>64</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-785.cs">
+    <type name="Base">
+      <method name="Int32 get_Prop()" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void set_Prop(Int32)" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Void TestVoid()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void TestInt(Int32)" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="DeriveVTable">
+      <method name="Int32 get_Prop()" attrs="2246">
+        <size>10</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2246">
+        <size>10</size>
+      </method>
+      <method name="Void TestVoid()" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void TestInt(Int32)" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="NewVTable">
+      <method name="Int32 get_Prop()" attrs="3526">
+        <size>0</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void TestVoid()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void TestInt(Int32)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Overload()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Overload(Int32)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-786.cs">
+    <type name="A">
+      <method name="System.String op_Implicit(A)" attrs="2198">
+        <size>26</size>
+      </method>
+      <method name="System.Delegate op_Implicit(A)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="System.String op_Implicit(B)" attrs="2198">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.Delegate op_Implicit(D)" attrs="2198">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="Boolean op_Implicit(E)" attrs="2198">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="F">
+      <method name="Boolean op_Implicit(F)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>410</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-787.cs">
+    <type name="A">
+      <method name="Void set_Prop(System.String)" attrs="2502">
+        <size>2</size>
+      </method>
+      <method name="System.String get_Prop()" attrs="2502">
+        <size>10</size>
+      </method>
+      <method name="Int32 Field()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void set_Prop(System.String)" attrs="2246">
+        <size>2</size>
+      </method>
+      <method name="System.String get_Prop()" attrs="2246">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-788.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="System.String get_Message()" attrs="2502">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="System.String get_Message()" attrs="2177">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-789.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>77</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-79.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-790.cs">
+    <type name="S">
+      <method name="Void .ctor(Double)" attrs="6278">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Verify_1(Test ByRef, Test ByRef)" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="Void Verify_2(S ByRef, S ByRef)" attrs="145">
+        <size>29</size>
+      </method>
+      <method name="Void Verify_3(E ByRef, E ByRef)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>39</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-791.cs">
+    <type name="testApp.TestApp">
+      <method name="Int32 Main()" attrs="150">
+        <size>81</size>
+      </method>
+      <method name="Boolean GetEnumerator()" attrs="486">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>20</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-792.cs">
+    <type name="Program">
+      <method name="Void Test()" attrs="129">
+        <size>36</size>
+      </method>
+      <method name="Void Test2(IMemberDelayed)" attrs="129">
+        <size>20</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-793.cs">
+    <type name="MonoPointerBugTest.Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>60</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-794.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void TestCallOnly()" attrs="129">
+        <size>66</size>
+      </method>
+      <method name="Void SomeMethod()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-795.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>120</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>25</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-796.cs">
+    <type name="Program">
+      <method name="Void Test()" attrs="129">
+        <size>20</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FooAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C2">
+      <method name="Void Foo()" attrs="129">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-797.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-798.cs">
+    <type name="A">
+      <method name="Void Foo(Int32 ByRef)" attrs="134">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Foo(Int32 ByRef)" attrs="134">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-799.cs">
+    <type name="Test2">
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test2+Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test2+Bar">
+      <method name="Void .ctor(Foo)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-8.cs">
+    <type name="X">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>173</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-80.cs">
+    <type name="X">
+      <method name="Int32 Add(Int32, Int32)" attrs="486">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Int32 Main()" attrs="150">
+        <size>47</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-800.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-801.cs">
+    <type name="C">
+      <method name="E op_Implicit(C)" attrs="2198">
+        <size>11</size>
+      </method>
+      <method name="Int32 op_Implicit(C)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>199</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-802.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-803.cs">
+    <type name="A">
+      <method name="Int32 Main()" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-804.cs">
+    <type name="A">
+      <method name="Int32 get_Foo()" attrs="2534">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="System.String get_Foo()" attrs="2534">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Char IB_2.get_Foo()" attrs="2529">
+        <size>11</size>
+      </method>
+      <method name="Byte get_Foo()" attrs="2534">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-805.cs">
+    <type name="TestClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>49</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 ReturnValue()" attrs="131">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="G`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-806.cs">
+    <type name="A1">
+      <method name="Void .ctor(Single)" attrs="6278">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(UInt64)" attrs="6278">
+        <size>17</size>
+      </method>
+    </type>
+    <type name="T1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>104</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-807.cs">
+    <type name="AException">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>69</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-808.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>70</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-809.cs">
+    <type name="Z">
+      <method name="Int32 Main()" attrs="150">
+        <size>65</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-81.cs">
+    <type name="N1.A">
+      <method name="Void Bar()" attrs="129">
+        <size>45</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>89</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-810.cs">
+    <type name="C">
+      <method name="IA Test(IC)" attrs="134">
+        <size>12</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-811.cs">
+    <type name="C">
+      <method name="Void TestRefValue(...)" attrs="145">
+        <size>69</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-812.cs">
+    <type name="N.C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-813.cs">
+    <type name="NS.System.A">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-814.cs">
+    <type name="Test">
+      <method name="System.String get_A()" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="System.String get_B()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>224</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-815.cs">
+    <type name="D">
+      <method name="Int32 get_DUUU(Int32)" attrs="2534">
+        <size>10</size>
+      </method>
+      <method name="Int32 IS.get_Hello(Int32)" attrs="993">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>38</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-816.cs">
+    <type name="System.Int32">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="System.Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>71</size>
+      </method>
+      <method name="System.Reflection.Assembly CurrentDomain_TypeResolve(System.Object, System.ResolveEventArgs)" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-817.cs">
+    <type name="System.Program">
+      <method name="Void Main()" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-818.cs">
+    <type name="A.CAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B.CAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo.Foo">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-819.cs">
+    <type name="AAttribute">
+      <method name="Int32 Main()" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6276">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="AAttribute+BAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-82.cs">
+    <type name="N1.N2.B">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N1.N3.B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N1.N2.B">
+      <method name="Void Method(N1.A ByRef)" attrs="129">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="N1.N3.B">
+      <method name="Void Method(N1.A ByRef)" attrs="129">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-820.cs">
+    <type name="NS.C">
+      <method name="Void Main()" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-821.cs">
+    <type name="S">
+      <method name="T Test[T]()" attrs="129">
+        <size>18</size>
+      </method>
+      <method name="Void M()" attrs="134">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Int32 Main()" attrs="150">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-822.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-823.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-824.cs">
+    <type name="Context">
+      <method name="Void Foo(IBBB)" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void Foo(IAAA)" attrs="486">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-825.cs">
+    <type name="Test">
+      <method name="Void WriteLine(System.String)" attrs="147">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-826.cs">
+    <type name="A">
+      <method name="Int32 I.Foo()" attrs="481">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AA">
+      <method name="Int32 Foo()" attrs="486">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 Foo()" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>120</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-827.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-828.cs">
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-829.cs">
+    <type name="C">
+      <method name="Void Test(Boolean, S ByRef)" attrs="145">
+        <size>70</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Test2(Boolean)" attrs="145">
+        <size>74</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-83.cs">
+    <type name="PersonArrivedHandler">
+      <method name="Void Invoke(System.Object, PersonArrivedArgs)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="PersonArrivedArgs">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Greeter">
+      <method name="Void HandlePersonArrived(System.Object, PersonArrivedArgs)" attrs="134">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Room">
+      <method name="Void add_PersonArrived(PersonArrivedHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_PersonArrived(PersonArrivedHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void AddPerson(System.String)" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="DelegateTest">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="PersonArrivedHandler">
+      <method name="System.IAsyncResult BeginInvoke(System.Object, PersonArrivedArgs, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-830.cs">
+    <type name="MC">
+      <method name="Int32 Main()" attrs="150">
+        <size>158</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-831.cs">
+    <type name="C">
+      <method name="Void Test()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-832.cs">
+    <type name="A">
+      <method name="Int32 Main()" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void Test()" attrs="129">
+        <size>22</size>
+      </method>
+      <method name="S get_Properties()" attrs="2179">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="C get_P2()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-833.cs">
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>141</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+DC">
+      <method name="Void .ctor(Guid)" attrs="6278">
+        <size>9</size>
+      </method>
+      <method name="System.Guid get_Id()" attrs="2182">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-834.cs">
+    <type name="A">
+      <method name="Int32 Test(System.Object)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 Test(Int32)" attrs="132">
+        <size>10</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2180">
+        <size>10</size>
+      </method>
+      <method name="Int32 get_Item(System.Object)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor(Object)" attrs="6278">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6276">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 Main()" attrs="150">
+        <size>109</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-835.cs">
+    <type name="AA">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AA+D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-836.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-837.cs">
+    <type name="TT.GG">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TT.A.X.Y.X">
+      <method name="Void Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-838.cs">
+    <type name="N2.Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N2.G`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N2.C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-839.cs">
+    <type name="N1.M">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N2.D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N3.C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N3.C+Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N3.C+IndexingChain">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-84.cs">
+    <type name="Ghost">
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-840.cs">
+    <type name="R">
+      <method name="Boolean op_LessThan(R, R)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_GreaterThan(R, R)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Single op_Implicit(R)" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="R op_Implicit(Single)" attrs="2198">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>50</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-841.cs">
+    <type name="R">
+      <method name="R op_Implicit(Int32)" attrs="2198">
+        <size>18</size>
+      </method>
+      <method name="Double op_Implicit(R)" attrs="2198">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>134</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-842.cs">
+    <type name="Foo">
+      <method name="System.String IA.get_Item(Int32)" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Void IA.set_Item(Int32, System.String)" attrs="2529">
+        <size>9</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-843.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-844.cs">
+    <type name="C">
+      <method name="Int32 get_Prop()" attrs="2177">
+        <size>10</size>
+      </method>
+      <method name="Int32 get_Item(Char)" attrs="2177">
+        <size>10</size>
+      </method>
+      <method name="Void Foo(Int32 ByRef)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Method(Int32)" attrs="134">
+        <size>33</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-845.cs">
+    <type name="C1">
+      <method name="Int32 Foo()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C2">
+      <method name="Int32 Foo()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C1">
+      <method name="Int32 Foo2()" attrs="486">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="C2">
+      <method name="Int32 Foo2()" attrs="486">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-846.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-847.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-848.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Foo[TEventArgs,TEventHandler](A`1[TEventHandler], System.Action`2[System.Object,TEventArgs])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__0(System.Object, System.String)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-849.cs">
+    <type name="ConditionalPromotions">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>311</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 Test(Boolean, Int16)" attrs="150">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-85.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-850.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Int32 F(System.String, System.String[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 F(System.String[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-851.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-852.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-853.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-854.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>69</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-855.cs">
+    <type name="Test.BaseClass">
+      <method name="System.String Get(System.String, System.String)" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Int32 Get(System.String, Int32)" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test.Subclass">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-856.cs">
+    <type name="A">
+      <method name="Void Dispose()" attrs="454">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Dispose()" attrs="129">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void Dispose()" attrs="198">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-857.cs">
+    <type name="Outer">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TypeHiding">
+      <method name="Boolean Test1(Outer)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Boolean Test2()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-858.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>108</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-859.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-86.cs">
+    <type name="T.T">
+      <method name="Int32 method1(System.Type, Int32)" attrs="145">
+        <size>31</size>
+      </method>
+      <method name="Int32 method1(System.Type, System.Type[])" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Int32 method2(System.Type, Int32)" attrs="145">
+        <size>31</size>
+      </method>
+      <method name="Int32 method2(System.Type, System.Type[])" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-860.cs">
+    <type name="ConditionalAttributeTesting.MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Int32 HelloWorld()" attrs="150">
+        <size>52</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ConditionalAttributeTesting.SomeAttribute">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-861.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void is_numer_parser_test()" attrs="129">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-862.cs">
+    <type name="op_Addition">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="op_Addition+Builder">
+      <method name="Int32 get_Foo()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 op_Addition(Builder, Builder)" attrs="2198">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-863.cs">
+    <type name="TestRefKeywords">
+      <method name="Int32 Main()" attrs="145">
+        <size>86</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-864.cs">
+    <type name="MainClass">
+      <method name="Int32 Foo(Double)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo(Int32)" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>82</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Int32 op_Implicit(A)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 op_Implicit(B)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A2">
+      <method name="Double op_Implicit(A2)" attrs="2198">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B2">
+      <method name="Int32 op_Implicit(B2)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-865.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="IA Create(Boolean)" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-866.cs">
+    <type name="C">
+      <method name="Boolean op_Addition(C, Int16)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_Addition(C, Int64)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Boolean op_Addition(B, System.String)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-867.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="User">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BaseController">
+      <method name="IUser get_User()" attrs="2502">
+        <size>14</size>
+      </method>
+      <method name="Void set_User(IUser)" attrs="2502">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BaseJobController">
+      <method name="User get_User()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_User(User)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="JobController">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-868.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>224</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-869.cs">
+    <type name="C">
+      <method name="C op_BitwiseAnd(C, E)" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="E op_Implicit(C)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="FooClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>77</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-87.cs">
+    <type name="Top">
+      <method name="Int32 Main()" attrs="150">
+        <size>81</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Top+X">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Top+Y">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Top+XA">
+      <method name="Int32 get_one()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Top+XB">
+      <method name="Int32 get_one()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Int32 get_two()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Other">
+      <method name="Void X()" attrs="134">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-870.cs">
+    <type name="Test">
+      <method name="Void Foo(UInt16)" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-871.cs">
+    <type name="D">
+      <method name="D op_BitwiseAnd(D, D)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Boolean op_False(D)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_True(D)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="D op_Implicit(Boolean)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>80</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-872.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>66</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-873.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="145">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-874.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-875.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-876.cs">
+    <type name="T">
+      <method name="Int32 Main()" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Test1()" attrs="145">
+        <size>57</size>
+      </method>
+      <method name="Void Test2()" attrs="145">
+        <size>50</size>
+      </method>
+      <method name="UInt32 Test3(Int32, UInt32)" attrs="145">
+        <size>60</size>
+      </method>
+      <method name="Void Test4()" attrs="145">
+        <size>25</size>
+      </method>
+      <method name="Void Test5()" attrs="145">
+        <size>65</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-877.cs">
+    <type name="S">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-878.cs">
+    <type name="Tests">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void Test1()" attrs="129">
+        <size>12</size>
+      </method>
+      <method name="Void Test2()" attrs="129">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-879.cs">
+    <type name="AStruct">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tests">
+      <method name="Int32 Main()" attrs="150">
+        <size>83</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-88.cs">
+    <type name="X">
+      <method name="Void f(System.String)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>71</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-880.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Test1()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Void Test2()" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="Void Test3()" attrs="145">
+        <size>27</size>
+      </method>
+      <method name="Void Test4()" attrs="145">
+        <size>42</size>
+      </method>
+      <method name="Void Test5()" attrs="145">
+        <size>72</size>
+      </method>
+      <method name="Void Test6()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Boolean Test7()" attrs="145">
+        <size>37</size>
+      </method>
+      <method name="Boolean OutCall(Int32 ByRef)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Boolean Call(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Boolean Foo(System.Object[])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Test8()" attrs="145">
+        <size>51</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-881.cs">
+    <type name="A.XAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B.XAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C.Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-882.cs">
+    <type name="MyUInt32">
+      <method name="UInt32 op_Implicit(MyUInt32)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Int64 op_Implicit(MyUInt32)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="MyUInt32 op_Implicit(UInt32)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="MyUInt32 op_Implicit(Int64)" attrs="2198">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor(UInt32)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="MyUInt32 test1(MyUInt32)" attrs="145">
+        <size>25</size>
+      </method>
+      <method name="MyUInt32 test2(MyUInt32)" attrs="145">
+        <size>25</size>
+      </method>
+      <method name="MyUInt32 test3(MyUInt32)" attrs="145">
+        <size>25</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>109</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-884.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="145">
+        <size>6</size>
+      </method>
+      <method name="Void AddEH[T]()" attrs="145">
+        <size>25</size>
+      </method>
+      <method name="Void EHandler()" attrs="145">
+        <size>1</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+E`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+E`1+EMethod[T]">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+E`1[T]">
+      <method name="Void add_EEvent(EMethod)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_EEvent(EMethod)" attrs="2182">
+        <size>42</size>
+      </method>
+    </type>
+    <type name="C+E`1+EMethod[T]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-885.cs">
+    <type name="A">
+      <method name="Void .ctor(Double)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="145">
+        <size>92</size>
+      </method>
+      <method name="Boolean Foo(Double)" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-886.cs">
+    <type name="A">
+      <method name="A Get()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void M()" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-889.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-89.cs">
+    <type name="X">
+      <method name="X F(Int32)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>117</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6273">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-890.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>206</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-891.cs">
+    <type name="B">
+      <method name="Int32 I.get_P()" attrs="2529">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 get_P()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-892.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>66</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-893.cs">
+    <type name="A">
+      <method name="Boolean TryAssign(Int32 ByRef)" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-894.cs">
+    <type name="A1Attribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A2Attribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-895.cs">
+    <type name="X">
+      <method name="Void Test(Int32, Int32 ByRef)" attrs="134">
+        <size>47</size>
+      </method>
+      <method name="Int32 Foo(System.Object)" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-896.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-897.cs">
+    <type name="X">
+      <method name="Int32 Foo()" attrs="145">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>61</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-899.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>49</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-9.cs">
+    <type name="X">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>138</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-90.cs">
+    <type name="N1.Blah">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-900.cs">
+    <type name="D">
+      <method name="D op_Implicit(System.Action)" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main()" attrs="145">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-901.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-902.cs">
+    <type name="A">
+      <method name="Void M(B[])" attrs="454">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void M(B[])" attrs="198">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test2">
+      <method name="Void Main()" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-903.cs">
+    <type name="C">
+      <method name="S op_Implicit(C)" attrs="2198">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>155</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-904.cs">
+    <type name="Test">
+      <method name="Boolean Foo(Int32 ByRef)" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void Main()" attrs="145">
+        <size>172</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-905.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-907.cs">
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-908.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-909.cs">
+    <type name="S">
+      <method name="Int32 get_A()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_A(Int32)" attrs="2177">
+        <size>8</size>
+      </method>
+      <method name="Void add_eh(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_eh(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-91.cs">
+    <type name="Abstract">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Plain">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void MyProtectedInternal()" attrs="149">
+        <size>2</size>
+      </method>
+      <method name="Void MyInternal()" attrs="147">
+        <size>2</size>
+      </method>
+      <method name="Void MyPublic()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void MyPrivate()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>288</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-910.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-911.cs">
+    <type name="N">
+      <method name="Void Foo()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-912.cs">
+    <type name="Bar">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-913.cs">
+    <type name="N.A">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.A+B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.A+C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-914.cs">
+    <type name="ClassMain">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-915.cs">
+    <type name="ClassMain">
+      <method name="Void Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-916.cs">
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo+Nested">
+      <method name="Int32 bar()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-917.cs">
+    <type name="Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo+Nested">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="Foo+Nested+bar">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-918.cs">
+    <type name="Test">
+      <method name="Void Foo()" attrs="129">
+        <size>30</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-919.cs">
+    <type name="Test">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void Outer(System.String)" attrs="145">
+        <size>29</size>
+      </method>
+      <method name="Void Inner(Char* ByRef, Char*)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-92.cs">
+    <type name="Outer">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Outer+Inner">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="InnerBase">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-920.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+Adapter">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 get_Adapter()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Adapter(Int32)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-921.cs">
+    <type name="A">
+      <method name="Void Foo(Reference.IA)" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-922.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+D">
+      <method name="C get_Property()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Property(C)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-923.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Location ByRef)" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void Test(LocationWrapper)" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Void Test(LocationWrapper ByRef)" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-924.cs">
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+DataFrame">
+      <method name="Boolean op_Equality(DataFrame, DataFrame)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Boolean op_Inequality(DataFrame, DataFrame)" attrs="2198">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-925.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>104</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyAttribute2Attribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyClass">
+      <method name="System.String get_Item(Int32, Int32)" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32, System.String)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-926.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyClass">
+      <method name="Int32 get_Item(Int32)" attrs="2500">
+        <size>10</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32)" attrs="2501">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Derived">
+      <method name="Int32 get_Item(Int32)" attrs="2244">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-93.cs">
+    <type name="N1.C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N1.C">
+      <method name="Void method(N1.B ByRef)" attrs="129">
+        <size>16</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-94.cs">
+    <type name="Base">
+      <method name="Int32 IVehicle.Start()" attrs="481">
+        <size>10</size>
+      </method>
+      <method name="Int32 Stop()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Int32 Turn()" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Derived1">
+      <method name="Int32 Turn()" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Derived2">
+      <method name="Int32 IVehicle.Start()" attrs="481">
+        <size>10</size>
+      </method>
+      <method name="Int32 IVehicle.Turn()" attrs="481">
+        <size>10</size>
+      </method>
+      <method name="Int32 Stop()" attrs="486">
+        <size>10</size>
+      </method>
+      <method name="Int32 Turn()" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>128</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-95.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor()" attrs="6273">
+        <size>23</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-96.cs">
+    <type name="N1.A">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N1.C">
+      <method name="Void Invoke(System.Object, N1.A)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(System.Object, N1.A, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-97.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-98.cs">
+    <type name="X">
+      <method name="Void b()" attrs="129">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-99.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>126</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-01.cs">
+    <type name="S">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-02.cs">
+    <type name="S">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>175</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>114</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-03.cs">
+    <type name="S">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>60</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-04.cs">
+    <type name="S">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>60</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-05.cs">
+    <type name="S">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>227</size>
+      </method>
+      <method name="Boolean t(Int32, Int32)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>77</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-06.cs">
+    <type name="S">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>135</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-07.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>143</size>
+      </method>
+      <method name="Boolean t(Int32, Int32)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>19</size>
+      </method>
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-08.cs">
+    <type name="S">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-09.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>77</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>50</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-10.cs">
+    <type name="S">
+      <method name="Void Test()" attrs="134">
+        <size>101</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>79</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S+T">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="S+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>87</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S+T">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-100.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>18</size>
+      </method>
+      <method name="Void &lt;f&gt;m__0()" attrs="145">
+        <size>27</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-101.cs">
+    <type name="Foo">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Hello[U](U)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test[T](T)" attrs="134">
+        <size>65</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0`1[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-102.cs">
+    <type name="Simple">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Simple Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Hello[U](U)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test[T](T)" attrs="134">
+        <size>72</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0`1[T]">
+      <method name="Simple &lt;&gt;m__0()" attrs="131">
+        <size>63</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Simple">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0`1+&lt;Test&gt;c__AnonStorey1[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-103.cs">
+    <type name="Foo`1[S]">
+      <method name="Void Invoke(S)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Hello[U](U)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test[T](T)" attrs="134">
+        <size>29</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void &lt;Test`1&gt;m__0[T](T)" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[S]">
+      <method name="System.IAsyncResult BeginInvoke(S, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-104.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>63</size>
+      </method>
+      <method name="Int32 GetItem()" attrs="150">
+        <size>59</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;GetItems&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>76</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] GetItems()" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Test+&lt;GetItems&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-105.cs">
+    <type name="Hello">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void Hello(Int32)" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>82</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo+&lt;Test&gt;c__Iterator0">
+      <method name="Foo System.Collections.Generic.IEnumerator&lt;Foo&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>113</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.Collections.Generic.IEnumerable`1[Foo] Test(Foo)" attrs="134">
+        <size>42</size>
+      </method>
+    </type>
+    <type name="Foo+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[Foo] System.Collections.Generic.IEnumerable&lt;Foo&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+    </type>
+    <type name="Hello">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-106.cs">
+    <type name="Foo`2[R,S]">
+      <method name="Void Invoke(R, S)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Hello[U,V](U, V)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test[A,B,C](A, B, C)" attrs="134">
+        <size>50</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0`3[A,B,C]">
+      <method name="Void &lt;&gt;m__0(A, Int32)" attrs="131">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`2[R,S]">
+      <method name="System.IAsyncResult BeginInvoke(R, S, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-107.cs">
+    <type name="MyDisposable">
+      <method name="Void Dispose()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_ID()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>62</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>181</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>57</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;__Finally0()" attrs="129">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test(Int32)" attrs="150">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-108.cs">
+    <type name="Foo">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void Test[R](R, Int32)" attrs="150">
+        <size>91</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0`1[R]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey1`1[R]">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-109.cs">
+    <type name="Foo">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Foo op_Implicit(Test)" attrs="2198">
+        <size>38</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>82</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;op_Addition&gt;c__Iterator0">
+      <method name="Test System.Collections.Generic.IEnumerator&lt;Test&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>113</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;&gt;c__Iterator1">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>72</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] get_Foo()" attrs="2182">
+        <size>23</size>
+      </method>
+      <method name="Void set_Foo(System.Collections.Generic.IEnumerable`1[System.Int32])" attrs="2182">
+        <size>12</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[Test] op_Addition(Test, Test)" attrs="2198">
+        <size>37</size>
+      </method>
+    </type>
+    <type name="Test+&lt;op_Addition&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[Test] System.Collections.Generic.IEnumerable&lt;Test&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+    </type>
+    <type name="Test+&lt;&gt;c__Iterator1">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test+&lt;op_Addition&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Test+&lt;&gt;c__Iterator1">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void &lt;op_Implicit&gt;m__0()" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-11.cs">
+    <type name="D">
+      <method name="Void Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="Void Invoke(Int32 ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="F">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>132</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="System.IAsyncResult BeginInvoke(Int32 ByRef, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(Int32 ByRef, System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="F">
+      <method name="Void Invoke(Int32[])" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32[], System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__2(Int32[])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__3(Int32[])" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-110.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>110</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__Iterator0`1[T]">
+      <method name="T System.Collections.Generic.IEnumerator&lt;T&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>125</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.Generic.IEnumerable`1[T] Test[T](T, T)" attrs="134">
+        <size>44</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__Iterator0`1[T]">
+      <method name="System.Collections.Generic.IEnumerator`1[T] System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-111.cs">
+    <type name="Foo">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test`1[R]">
+      <method name="Void World[S,T](S, T)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Hello[U,V](U, V)" attrs="134">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`1+&lt;Hello&gt;c__AnonStorey0`2[R,U,V]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-112.cs">
+    <type name="Foo">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="World`1[T]">
+      <method name="Void Hello[U](U)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test(T)" attrs="134">
+        <size>47</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="World`1+&lt;Test&gt;c__AnonStorey0[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-113.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+ModuleBinder`1[T]">
+      <method name="T Invoke(System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="ModuleBinder`1 CreateMethodUnscoped[TDelegate]()" attrs="134">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="X+ModuleBinder`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="T EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="TDelegate &lt;CreateMethodUnscoped`1&gt;m__0[TDelegate](System.Object)" attrs="145">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-114.cs">
+    <type name="T">
+      <method name="Void SomeMethod(System.Converter`2[System.Int32,System.Int32])" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void SomeCaller()" attrs="129">
+        <size>37</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 &lt;SomeCaller&gt;m__0(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-115.cs">
+    <type name="Foo`1[V]">
+      <method name="Void Invoke(V)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Bar`1[W]">
+      <method name="Void Invoke(W)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test`1[T]">
+      <method name="Void Hello[S](T, S)" attrs="150">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test`1+&lt;Hello&gt;c__AnonStorey1`1[T,S]">
+      <method name="Void &lt;&gt;m__0(Int64)" attrs="131">
+        <size>58</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[V]">
+      <method name="System.IAsyncResult BeginInvoke(V, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Bar`1[W]">
+      <method name="System.IAsyncResult BeginInvoke(W, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test`1+&lt;Hello&gt;c__AnonStorey1`1+&lt;Hello&gt;c__AnonStorey0[T,S]">
+      <method name="Void &lt;&gt;m__0(T)" attrs="131">
+        <size>66</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-116.cs">
+    <type name="TestFunc`1[T]">
+      <method name="Void Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(TestFunc`1)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="TestClass">
+      <method name="Void Func[T](TestFunc`1[T])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>47</size>
+      </method>
+    </type>
+    <type name="TestFunc`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestClass">
+      <method name="Void &lt;a&gt;m__0(Int32)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-117.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>76</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+Func`1[T]">
+      <method name="T Invoke(T)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Test[T,U](Func`1, U)" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="C+Func`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(T, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="T EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-118.cs">
+    <type name="C">
+      <method name="Void Test2[T]()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>101</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+Func`2[TR,TA]">
+      <method name="TR Invoke(TA)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="TR Test[TR,TA](Func`2)" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="TR Test[TR,TA,TB](Func`2, Func`2)" attrs="150">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="C+Func`2[TR,TA]">
+      <method name="System.IAsyncResult BeginInvoke(TA, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="TR EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="T &lt;Test2`1&gt;m__0[T](T)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>24</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__2(Int32)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__3(Int32)" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-119.cs">
+    <type name="Test">
+      <method name="Void TestNaturalSort()" attrs="145">
+        <size>32</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestNaturalSort&gt;c__AnonStorey0">
+      <method name="System.String &lt;&gt;m__1(System.Text.RegularExpressions.Match)" attrs="131">
+        <size>120</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.String &lt;&gt;m__0(System.Text.RegularExpressions.Match)" attrs="131">
+        <size>120</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 &lt;TestNaturalSort&gt;m__0(System.String, System.String)" attrs="145">
+        <size>114</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-12.cs">
+    <type name="predicate">
+      <method name="Boolean Invoke(System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>283</size>
+      </method>
+      <method name="System.Collections.ArrayList Find(predicate, System.Collections.ArrayList)" attrs="145">
+        <size>96</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="predicate">
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Boolean EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Boolean &lt;Main&gt;m__0(System.Object)" attrs="145">
+        <size>20</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-120.cs">
+    <type name="C`1[T]">
+      <method name="Void Foo[U](U)" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void Run()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1[T]">
+      <method name="Void &lt;Foo`1&gt;m__0[U]()" attrs="145">
+        <size>6</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-121.cs">
+    <type name="EmptyDelegate">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="BaseObject">
+      <method name="Int32 Main()" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Void Closure(EmptyDelegate)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="T MakeSomething[T]()" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BaseObject+&lt;Query&gt;c__AnonStorey0`1[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BaseObject">
+      <method name="System.Collections.Generic.List`1[T] Query[T](System.Nullable`1[System.Int32] ByRef)" attrs="145">
+        <size>61</size>
+      </method>
+    </type>
+    <type name="EmptyDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-122.cs">
+    <type name="D1">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="D2">
+      <method name="Int64 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Foo(D1)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo(D2)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 FooE(System.Linq.Expressions.Expression`1[D1])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 FooE(System.Linq.Expressions.Expression`1[D2])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>95</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D1">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="D2">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int64 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 &lt;Main&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-123.cs">
+    <type name="MemberAccessData">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void BaseM()" attrs="452">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Test(System.Action`1[E])" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void InstanceTests()" attrs="129">
+        <size>19</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>247</size>
+      </method>
+      <method name="Void &lt;BaseM&gt;__BaseCallProxy0()" attrs="129">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;InstanceTests&gt;m__0()" attrs="129">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MemberAccessData">
+      <method name="Void set_MyTypeProperty(System.Nullable`1[System.Int32])" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="System.Nullable`1[System.Int32] get_MyTypeProperty()" attrs="2182">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>49</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Test(D)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="C+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void &lt;Main&gt;m__1()" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__2()" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__3()" attrs="145">
+        <size>62</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__4()" attrs="145">
+        <size>54</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__5(E)" attrs="145">
+        <size>35</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-124.cs">
+    <type name="Disposable`1[T]">
+      <method name="Void Dispose()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CA`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Func`1[T[]] For[T](System.Collections.Generic.List`1[T])" attrs="145">
+        <size>46</size>
+      </method>
+      <method name="System.Func`1[T] Throw[T](T)" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="System.Func`1[System.Type] TypeOf[T](T)" attrs="145">
+        <size>46</size>
+      </method>
+      <method name="System.Func`1[T] Do[T](T)" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="System.Func`1[T] Lock[T](T)" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="System.Func`1[T] Catch[T](T)" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="System.Func`1[T] Finally[T](T)" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="System.Func`1[T] Using[T](T)" attrs="145">
+        <size>54</size>
+      </method>
+      <method name="System.Func`1[T] Switch[T](T)" attrs="145">
+        <size>46</size>
+      </method>
+      <method name="System.Func`1[System.Collections.Generic.List`1[T]] ForForeach[T](T[])" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="Void ArrayMutate[T](T[])" attrs="134">
+        <size>28</size>
+      </method>
+      <method name="System.Func`1[T[][]] ArrayMultiMutate[T](T[][])" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="System.Func`1[System.Int32] ArrayMultiMutate[T](T[,])" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="System.Func`1[T[]] NestedTypeMutate[T]()" attrs="145">
+        <size>42</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>683</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;For&gt;c__AnonStorey0`1[T]">
+      <method name="T[] &lt;&gt;m__0()" attrs="131">
+        <size>66</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Throw&gt;c__AnonStorey1`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TypeOf&gt;c__AnonStorey2`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Do&gt;c__AnonStorey3`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Lock&gt;c__AnonStorey4`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Catch&gt;c__AnonStorey5`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;ArrayMultiMutate&gt;c__AnonStoreyC`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Func`1[T] Catch_2[T](T)" attrs="145">
+        <size>34</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Catch_2&gt;c__AnonStorey6`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Finally&gt;c__AnonStorey7`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Using&gt;c__AnonStorey8`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Switch&gt;c__AnonStorey9`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;ForForeach&gt;c__AnonStoreyA`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;ArrayMutate&gt;c__AnonStoreyB`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;ArrayMultiMutate&gt;c__AnonStoreyD`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;NestedTypeMutate&gt;c__AnonStoreyE`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Throw&gt;c__AnonStorey1`1[T]">
+      <method name="T &lt;&gt;m__0()" attrs="131">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TypeOf&gt;c__AnonStorey2`1[T]">
+      <method name="System.Type &lt;&gt;m__0()" attrs="131">
+        <size>64</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Do&gt;c__AnonStorey3`1[T]">
+      <method name="T &lt;&gt;m__0()" attrs="131">
+        <size>38</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Lock&gt;c__AnonStorey4`1[T]">
+      <method name="T &lt;&gt;m__0()" attrs="131">
+        <size>69</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Catch&gt;c__AnonStorey5`1[T]">
+      <method name="T &lt;&gt;m__0()" attrs="131">
+        <size>41</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Catch_2&gt;c__AnonStorey6`1[T]">
+      <method name="T &lt;&gt;m__0()" attrs="131">
+        <size>42</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Finally&gt;c__AnonStorey7`1[T]">
+      <method name="T &lt;&gt;m__0()" attrs="131">
+        <size>62</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Using&gt;c__AnonStorey8`1[T]">
+      <method name="T &lt;&gt;m__0()" attrs="131">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Switch&gt;c__AnonStorey9`1[T]">
+      <method name="T &lt;&gt;m__0()" attrs="131">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="Test+&lt;ForForeach&gt;c__AnonStoreyA`1[T]">
+      <method name="System.Collections.Generic.List`1[T] &lt;&gt;m__0()" attrs="131">
+        <size>67</size>
+      </method>
+    </type>
+    <type name="Test+&lt;ArrayMutate&gt;c__AnonStoreyB`1[T]">
+      <method name="Void &lt;&gt;m__0(Int32)" attrs="131">
+        <size>39</size>
+      </method>
+    </type>
+    <type name="Test+&lt;ArrayMultiMutate&gt;c__AnonStoreyC`1[T]">
+      <method name="T[][] &lt;&gt;m__0()" attrs="131">
+        <size>58</size>
+      </method>
+    </type>
+    <type name="Test+&lt;ArrayMultiMutate&gt;c__AnonStoreyD`1[T]">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>35</size>
+      </method>
+    </type>
+    <type name="Test+&lt;NestedTypeMutate&gt;c__AnonStoreyE`1[T]">
+      <method name="T[] &lt;&gt;m__0()" attrs="131">
+        <size>45</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-125.cs">
+    <type name="HS`1[T]">
+      <method name="Void .ctor(IEqualityComparer`1)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Foo&gt;c__AnonStorey0`1[T]">
+      <method name="HS`1[T] &lt;&gt;m__0()" attrs="131">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Foo[T](System.Collections.Generic.IEqualityComparer`1[T])" attrs="145">
+        <size>28</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-126.cs">
+    <type name="MonoBugs.BrokenGenericCast">
+      <method name="System.Converter`2[TSource,TDest] GetUpcaster[TSource,TDest]()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="System.Converter`2[TSource,TDest] GetDowncaster[TSource,TDest]()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="TDest &lt;GetUpcaster`2&gt;m__0[TSource,TDest](TSource)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="TDest &lt;GetDowncaster`2&gt;m__1[TSource,TDest](TSource)" attrs="145">
+        <size>20</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-127.cs">
+    <type name="BaseDataObjectFactory">
+      <method name="T GetBusinessQueryObjectFromReader[T]()" attrs="148">
+        <size>16</size>
+      </method>
+      <method name="T[] GetQueryObjects[T](System.String)" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BusinessQueryObject">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MySqlDataObjectFactory">
+      <method name="T[] GetQueryObjects[T](System.String)" attrs="198">
+        <size>71</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MySqlDataObjectFactory+PerformActionWithReader">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MySqlDataObjectFactory+&lt;GetQueryObjects&gt;c__AnonStorey0`1[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MySqlDataObjectFactory">
+      <method name="Void ExecuteReader(Int32, PerformActionWithReader)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="MySqlDataObjectFactory+PerformActionWithReader">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-128.cs">
+    <type name="A">
+      <method name="Void Foo[T]()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Foo[T]()" attrs="198">
+        <size>15</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Foo`1&gt;m__0[T]()" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+Del">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-129.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+Creator`1[T]">
+      <method name="T Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Func1&gt;c__AnonStorey0`1[T]">
+      <method name="T &lt;&gt;m__0()" attrs="131">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Boolean Func1[T](System.Collections.Generic.IList`1[T], Boolean, T ByRef)" attrs="145">
+        <size>40</size>
+      </method>
+      <method name="T Item[T](System.Collections.Generic.IList`1[T])" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="T GetSingleItem[T](System.Collections.Generic.IList`1[T])" attrs="150">
+        <size>18</size>
+      </method>
+      <method name="Boolean TryAction[T](Creator`1, T ByRef)" attrs="145">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="Test+Creator`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="T EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-13.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>43</size>
+      </method>
+      <method name="D T()" attrs="129">
+        <size>23</size>
+      </method>
+      <method name="System.String CALL()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void &lt;T&gt;m__0()" attrs="129">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6273">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-130.cs">
+    <type name="Simple">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Simple Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Hello[U](U)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test[T](T)" attrs="134">
+        <size>49</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0`1[T]">
+      <method name="Simple &lt;&gt;m__0()" attrs="131">
+        <size>63</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Simple">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0`1+&lt;Test&gt;c__AnonStorey1[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-131.cs">
+    <type name="A">
+      <method name="Void Fail[X]()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="A+&lt;Fail&gt;c__AnonStorey0`1[X]">
+      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__1(System.Object, System.EventArgs)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-132.cs">
+    <type name="Program">
+      <method name="Void Assert(System.Action`1[System.Int32])" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Foo&gt;c__AnonStorey0`1[T]">
+      <method name="Void &lt;&gt;m__0(Int32)" attrs="131">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Foo[T](System.Collections.Generic.IList`1[T])" attrs="150">
+        <size>32</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-133.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="IEnumerableRocks+&lt;Implode&gt;c__AnonStorey0`2[TSource,TResult]">
+      <method name="Void &lt;&gt;m__0(System.Text.StringBuilder, TSource)" attrs="131">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="IEnumerableRocks">
+      <method name="System.String Implode[TSource,TResult](System.Collections.Generic.IEnumerable`1[TSource], System.String, System.Func`2[TSource,TResult])" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="System.String Implode[TSource](System.Collections.Generic.IEnumerable`1[TSource], System.String, System.Action`2[System.Text.StringBuilder,TSource])" attrs="150">
+        <size>146</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.String &lt;Main&gt;m__0(System.String)" attrs="145">
+        <size>24</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-134.cs">
+    <type name="MyClass">
+      <method name="Int32 get_Answer()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Answer(Int32)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>100</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-135.cs">
+    <type name="C`1[T]">
+      <method name="System.Func`1[T] XX()" attrs="145">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C2`1[T]">
+      <method name="System.Func`1[C`1[T]] XX()" attrs="145">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N1">
+      <method name="System.Func`1[T] XX[T]()" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>121</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1[T]">
+      <method name="T &lt;XX&gt;m__0()" attrs="145">
+        <size>17</size>
+      </method>
+    </type>
+    <type name="C2`1[T]">
+      <method name="C`1[T] &lt;XX&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="N1">
+      <method name="T &lt;XX`1&gt;m__0[T]()" attrs="145">
+        <size>17</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-136.cs">
+    <type name="Handler`1[T]">
+      <method name="Void Invoke(System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="Void add_handler(Handler`1[T])" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void remove_handler(Handler`1[T])" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void add_Handler(Handler`1[T])" attrs="2182">
+        <size>51</size>
+      </method>
+      <method name="Void remove_Handler(Handler`1[T])" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void &lt;add_Handler&gt;m__0(System.Object)" attrs="129">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Handler`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-137.cs">
+    <type name="Wrap`1[U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Run[T](Wrap`1[T])" attrs="134">
+        <size>64</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Run&gt;c__AnonStorey0`1[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-138.cs">
+    <type name="Foo`1[T]">
+      <method name="Boolean Contains(T)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>50</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1+&lt;ContainsAll&gt;c__AnonStorey0`1[T,U]">
+      <method name="Boolean &lt;&gt;m__0()" attrs="131">
+        <size>210</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo`1[T]">
+      <method name="Boolean ContainsAll[U](System.Collections.Generic.IEnumerable`1[U])" attrs="134">
+        <size>48</size>
+      </method>
+    </type>
+    <type name="Foo`1+&lt;ContainsAll&gt;c__AnonStorey0`1+&lt;ContainsAll&gt;c__AnonStorey1[T,U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-139.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Void Test_1[T](T)" attrs="134">
+        <size>34</size>
+      </method>
+      <method name="T Test_3[T](System.Object)" attrs="134">
+        <size>59</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Test_1&gt;c__AnonStorey0`1[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Test_2&gt;c__AnonStorey1`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Test_3&gt;c__AnonStorey2`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Test_2[T](System.Nullable`1[T])" attrs="134">
+        <size>34</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Test_2&gt;c__AnonStorey1`1[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>86</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Test_3&gt;c__AnonStorey2`1[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="Test+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-14.cs">
+    <type name="X">
+      <method name="Void Method()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>66</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+T">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void add_Click(T)" attrs="2193">
+        <size>40</size>
+      </method>
+      <method name="Void remove_Click(T)" attrs="2193">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="X+T">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-140.cs">
+    <type name="RunTests">
+      <method name="Int32 Main()" attrs="150">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test1.Foo">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test1.X">
+      <method name="Void Test1[R](R, Int32)" attrs="150">
+        <size>153</size>
+      </method>
+      <method name="Void Run()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test1.X+&lt;Test1&gt;c__AnonStorey2`1[R]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test1.X+&lt;Test1&gt;c__AnonStorey0`1[R]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test1.X+&lt;Test1&gt;c__AnonStorey1`1[R]">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>79</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test1.Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-141.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="TResult Average[TElement,TAggregate,TResult](System.Collections.Generic.IEnumerable`1[TElement], System.Func`3[TAggregate,TElement,TAggregate], System.Func`3[TAggregate,TElement,TResult])" attrs="145">
+        <size>7</size>
+      </method>
+      <method name="System.Decimal Average[TSource](System.Collections.Generic.IEnumerable`1[TSource], System.Func`2[TSource,System.Decimal])" attrs="150">
+        <size>45</size>
+      </method>
+      <method name="System.Decimal &lt;Average`1&gt;m__0[TSource](System.Decimal, System.Decimal)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="System.Decimal &lt;Average`1&gt;m__1[TSource](System.Decimal, System.Decimal)" attrs="145">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-142.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void Test_3[T]()" attrs="134">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void &lt;Test_3`1&gt;m__0[T]()" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-143.cs">
+    <type name="TestC">
+      <method name="Int32 Main()" attrs="150">
+        <size>94</size>
+      </method>
+      <method name="System.Func`1[System.Type] Test[T]()" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Type &lt;Test`1&gt;m__0[T]()" attrs="145">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-144.cs">
+    <type name="UiaAtkBridgeTest.Test">
+      <method name="Void Invoke(System.EventHandler)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="UiaAtkBridgeTest.GailTester">
+      <method name="Void ThisCausesACrash[I]()" attrs="134">
+        <size>19</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;ThisCausesACrash`1&gt;m__0[I](System.Object, System.EventArgs)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-145.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void AnyMethod[T]()" attrs="134">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;AnyMethod&gt;c__AnonStorey0`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0(System.String)" attrs="131">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void &lt;AnyMethod`1&gt;m__0[T]()" attrs="145">
+        <size>32</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-146.cs">
+    <type name="TheClass">
+      <method name="Void Foo[T](T, System.Func`2[T,T])" attrs="145">
+        <size>42</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TheClass+&lt;Foo&gt;c__AnonStorey0`1[T]">
+      <method name="System.Func`1[T] &lt;&gt;m__0()" attrs="131">
+        <size>45</size>
+      </method>
+      <method name="T &lt;&gt;m__1()" attrs="131">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-147.cs">
+    <type name="C">
+      <method name="System.Func`2[T1,System.Func`2[T2,System.Action`1[T3]]] Curry[T1,T2,T3](System.Action`3[T1,T2,T3])" attrs="150">
+        <size>34</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Curry&gt;c__AnonStorey0`3[T1,T2,T3]">
+      <method name="System.Func`2[T2,System.Action`1[T3]] &lt;&gt;m__0(T1)" attrs="131">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Curry&gt;c__AnonStorey0`3+&lt;Curry&gt;c__AnonStorey1[T1,T2,T3]">
+      <method name="System.Action`1[T3] &lt;&gt;m__0(T2)" attrs="131">
+        <size>52</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Curry&gt;c__AnonStorey0`3+&lt;Curry&gt;c__AnonStorey1+&lt;Curry&gt;c__AnonStorey2[T1,T2,T3]">
+      <method name="Void &lt;&gt;m__0(T3)" attrs="131">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void &lt;Main&gt;m__0(Int32, Int32, Int32)" attrs="145">
+        <size>24</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-148.cs">
+    <type name="Func`1[TResult]">
+      <method name="TResult Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="GeneratorNext`1[T]">
+      <method name="Void Invoke(T ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="GeneratorEnumerable`1[T]">
+      <method name="Void .ctor(Func`1)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="GeneratorExpression">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="GeneratorInvoker">
+      <method name="Void Invoke[T](T ByRef)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(GeneratorExpression)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Interpreter">
+      <method name="System.Object InterpretGenerator[T](GeneratorExpression)" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="Interpreter+&lt;InterpretGenerator&gt;c__AnonStorey0`1[T]">
+      <method name="GeneratorNext`1[T] &lt;&gt;m__0()" attrs="131">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Func`1[TResult]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="TResult EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="GeneratorNext`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(T ByRef, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(T ByRef, System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-149.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void DetermineLinkedCells()" attrs="129">
+        <size>79</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;DetermineLinkedCells&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;DetermineLinkedCells&gt;c__AnonStorey1">
+      <method name="Boolean &lt;&gt;m__0(System.Object)" attrs="131">
+        <size>26</size>
+      </method>
+      <method name="Boolean &lt;&gt;m__1(System.Object)" attrs="131">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-15.cs">
+    <type name="Foo">
+      <method name="Void Main()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo+foo_fn">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo+Inner">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Foo+foo_fn">
+      <method name="Inner Invoke(System.String)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Inner EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Inner &lt;Main&gt;m__0(System.String)" attrs="145">
+        <size>21</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-150.cs">
+    <type name="M">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SomeGenericClass`1[SomeType]">
+      <method name="Void FailsToCompile()" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void &lt;FailsToCompile&gt;m__0()" attrs="129">
+        <size>45</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SomeGenericClass`1+SomeHandlerType[SomeType]">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="SomeGenericClass`1+&lt;FailsToCompile&gt;c__AnonStorey0[SomeType]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="SomeGenericClass`1[SomeType]">
+      <method name="Void Invoke(SomeHandlerType)" attrs="129">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="SomeGenericClass`1+SomeHandlerType[SomeType]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-151.cs">
+    <type name="Bla">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Driver">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void P(Int32, Int32)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Repro()" attrs="129">
+        <size>101</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Driver+&lt;Repro&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bla">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-152.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+B[T]">
+      <method name="Void W[R](System.String, System.Func`2[T,R])" attrs="132">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+B+&lt;W&gt;c__AnonStorey0`1[T,R]">
+      <method name="Void &lt;&gt;m__0(T[])" attrs="131">
+        <size>56</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-153.cs">
+    <type name="TestComp.Program">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestComp.Program+MyClass">
+      <method name="Void UseATemplate()" attrs="134">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestComp.Program+MyClass+MyDelegate">
+      <method name="Void Invoke(System.Collections.Generic.List`1[System.Int32] ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestComp.Program+MyClass">
+      <method name="Void MyTemplate(MyDelegate)" attrs="129">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="TestComp.Program+MyClass+MyDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.Collections.Generic.List`1[System.Int32] ByRef, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.Collections.Generic.List`1[System.Int32] ByRef, System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestComp.Program+MyClass">
+      <method name="Void &lt;UseATemplate&gt;m__0(System.Collections.Generic.List`1[System.Int32] ByRef)" attrs="145">
+        <size>17</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-154.cs">
+    <type name="Class">
+      <method name="System.String get_Property()" attrs="2177">
+        <size>14</size>
+      </method>
+      <method name="System.String Method()" attrs="129">
+        <size>52</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>52</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Class+&lt;Method&gt;c__AnonStorey0">
+      <method name="System.String &lt;&gt;m__0()" attrs="131">
+        <size>64</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Class+&lt;Method&gt;c__AnonStorey0+&lt;Method&gt;c__AnonStorey2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Class+&lt;Method&gt;c__AnonStorey0+&lt;Method&gt;c__AnonStorey2+&lt;Method&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Class+&lt;Method&gt;c__AnonStorey0+&lt;Method&gt;c__AnonStorey2">
+      <method name="System.String &lt;&gt;m__0(System.String)" attrs="131">
+        <size>60</size>
+      </method>
+    </type>
+    <type name="Class+&lt;Method&gt;c__AnonStorey0+&lt;Method&gt;c__AnonStorey2+&lt;Method&gt;c__AnonStorey1">
+      <method name="System.String &lt;&gt;m__0()" attrs="131">
+        <size>46</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-155.cs">
+    <type name="Thing`1[TFirst]">
+      <method name="Thing`1[TFirst] Create[TSecond](System.Func`2[TFirst,TSecond])" attrs="150">
+        <size>39</size>
+      </method>
+      <method name="Void SomeAction()" attrs="134">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor(Action`1)" attrs="6273">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>43</size>
+      </method>
+    </type>
+    <type name="Thing`1+&lt;Create&gt;c__AnonStorey0`1[TFirst,TSecond]">
+      <method name="Void &lt;&gt;m__0(TFirst)" attrs="131">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="System.Object &lt;Main&gt;m__0(System.Object)" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-156.cs">
+    <type name="G`1[T]">
+      <method name="T def()" attrs="134">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void foo(System.Object)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void cf[T]()" attrs="145">
+        <size>36</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+DF">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+&lt;cf&gt;c__AnonStorey0`1[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+DF">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-157.cs">
+    <type name="Foo">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X`1[T]">
+      <method name="Void IFoo&lt;T&gt;.Test()" attrs="481">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X`1[T]">
+      <method name="Void &lt;Test&gt;m__0()" attrs="145">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-158.cs">
+    <type name="Test">
+      <method name="X Foo[X](Boolean)" attrs="134">
+        <size>54</size>
+      </method>
+      <method name="X FooNested[X](Boolean)" attrs="134">
+        <size>75</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Foo&gt;c__AnonStorey0`1[X]">
+      <method name="X &lt;&gt;m__0()" attrs="131">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;FooNested&gt;c__AnonStorey1`1[X]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Call`1[X] &lt;&gt;m__0()" attrs="131">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-159.cs">
+    <type name="TestGenericsSubtypeMatching.Sender`1[T]">
+      <method name="Void DoSend[TMessage](System.Action`1[T])" attrs="134">
+        <size>86</size>
+      </method>
+      <method name="Void Send(System.Action`1[T])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void ActionOnObject(System.Object)" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGenericsSubtypeMatching.C">
+      <method name="Void Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGenericsSubtypeMatching.Sender`1+&lt;DoSend&gt;c__AnonStorey0`1[T,TMessage]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGenericsSubtypeMatching.Sender`1+&lt;DoSend&gt;c__AnonStorey1`1[T,TMessage]">
+      <method name="Void &lt;&gt;m__0(T)" attrs="131">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGenericsSubtypeMatching.C">
+      <method name="Void &lt;Main&gt;m__0(System.String)" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-16.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>43</size>
+      </method>
+      <method name="D T()" attrs="129">
+        <size>23</size>
+      </method>
+      <method name="Void &lt;T&gt;m__0()" attrs="129">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6273">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-160.cs">
+    <type name="TestGenericsSubtypeMatching.Sender`1[T]">
+      <method name="Void DoSend[TMessage](System.Action`1[T])" attrs="134">
+        <size>86</size>
+      </method>
+      <method name="Void Send(System.Action`1[T])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void ActionOnObject(System.Object)" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGenericsSubtypeMatching.C">
+      <method name="Int32 Main()" attrs="150">
+        <size>49</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGenericsSubtypeMatching.Sender`1+&lt;DoSend&gt;c__AnonStorey0`1[T,TMessage]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGenericsSubtypeMatching.Sender`1+&lt;DoSend&gt;c__AnonStorey1`1[T,TMessage]">
+      <method name="Void &lt;&gt;m__0(T)" attrs="131">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGenericsSubtypeMatching.C">
+      <method name="Void &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-161.cs">
+    <type name="TestCase">
+      <method name="Void Main()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestCase+&lt;Test&gt;c__AnonStorey0`1[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>47</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestCase">
+      <method name="Void Test[T](System.Collections.Generic.IList`1[System.Collections.Generic.IList`1[T]])" attrs="150">
+        <size>34</size>
+      </method>
+    </type>
+    <type name="TestCase+&lt;Test&gt;c__AnonStorey0`1[T]">
+      <method name="Int32 &lt;&gt;m__1(System.Collections.Generic.IList`1[System.Collections.Generic.IList`1[T]])" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-162.cs">
+    <type name="D">
+      <method name="Void Invoke(System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Void Assert(System.Object)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Execute(System.Action)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="D GetD[T](System.Object)" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T+&lt;GetD&gt;c__AnonStorey2`1[T]">
+      <method name="Void &lt;&gt;m__0(System.Object)" attrs="131">
+        <size>75</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="T+&lt;GetD&gt;c__AnonStorey2`1+&lt;GetD&gt;c__AnonStorey0[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T+&lt;GetD&gt;c__AnonStorey2`1+&lt;GetD&gt;c__AnonStorey1[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>52</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-163.cs">
+    <type name="A">
+      <method name="Void Foo[T](T, System.String[])" attrs="454">
+        <size>2</size>
+      </method>
+      <method name="Void Foo2[T]()" attrs="452">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Test(Int32)" attrs="134">
+        <size>41</size>
+      </method>
+      <method name="Void Test2[T](T)" attrs="134">
+        <size>35</size>
+      </method>
+      <method name="Void Test3()" attrs="131">
+        <size>60</size>
+      </method>
+      <method name="Void &lt;Foo&gt;__BaseCallProxy0[T](T, System.String[])" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="Void &lt;Foo2&gt;__BaseCallProxy1[T]()" attrs="129">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+&lt;Test2&gt;c__AnonStorey1`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+&lt;Test3&gt;c__AnonStorey2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="T Foo4[T]()" attrs="454">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="T Test4[T]()" attrs="134">
+        <size>28</size>
+      </method>
+      <method name="T &lt;Foo4&gt;__BaseCallProxy2[T]()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="T &lt;Test4`1&gt;m__0[T]()" attrs="129">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="B+&lt;Test2&gt;c__AnonStorey1`1[T]">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="B+&lt;Test3&gt;c__AnonStorey2">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>20</size>
+      </method>
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>20</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-164.cs">
+    <type name="C`1[T]">
+      <method name="Void Foo[U](U)" attrs="150">
+        <size>86</size>
+      </method>
+      <method name="Void Run(T)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="E">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1+&lt;Foo&gt;c__AnonStorey0`1[T,U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C`1+&lt;Foo&gt;c__AnonStorey1`1[T,U]">
+      <method name="U &lt;&gt;m__0()" attrs="131">
+        <size>19</size>
+      </method>
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-165.cs">
+    <type name="C">
+      <method name="Void Foo[T]()" attrs="129">
+        <size>28</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__AnonStorey0`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="T &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="T &lt;Foo`1&gt;m__0[T](T)" attrs="145">
+        <size>77</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-166.cs">
+    <type name="A">
+      <method name="Void Test[T,U]()" attrs="129">
+        <size>21</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+&lt;Test&gt;c__AnonStorey0`2[T,U]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void &lt;Test`2&gt;m__0[T,U]()" attrs="145">
+        <size>39</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-167.cs">
+    <type name="Foo">
+      <method name="Void Bar(System.Threading.ThreadStart)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Baz(Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>89</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-168.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>113</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+RunDelegate">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Run(RunDelegate)" attrs="134">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Test+RunDelegate">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>51</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>46</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__2(Int32)" attrs="145">
+        <size>42</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-169.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>521</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Main&gt;c__AnonStorey0">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Char &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-17.cs">
+    <type name="ClickEvent">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Button">
+      <method name="Void add_Clicked(ClickEvent)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Clicked(ClickEvent)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void DoClick()" attrs="134">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>74</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ClickEvent">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-170.cs">
+    <type name="MyClass">
+      <method name="Int32 Test(Int32)" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Void Run()" attrs="134">
+        <size>42</size>
+      </method>
+      <method name="Void Run2()" attrs="134">
+        <size>42</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void &lt;Run&gt;m__0(Int32)" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="Void &lt;Run&gt;m__1(Int32)" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="Void &lt;Run2&gt;m__2(Int32)" attrs="129">
+        <size>40</size>
+      </method>
+      <method name="Void &lt;Run2&gt;m__3(Int32)" attrs="129">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyClass+&lt;Run&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyClass+&lt;Run&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyClass+&lt;Run2&gt;c__AnonStorey2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyClass+&lt;Run2&gt;c__AnonStorey3">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyClass+&lt;Run&gt;c__AnonStorey0">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="MyClass+&lt;Run&gt;c__AnonStorey1">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="MyClass+&lt;Run2&gt;c__AnonStorey2">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="MyClass+&lt;Run2&gt;c__AnonStorey3">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>25</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-171.cs">
+    <type name="TestAnonSwitch.MyClass">
+      <method name="Void add_FirstEvent(System.EventHandler`1[System.EventArgs])" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_FirstEvent(System.EventHandler`1[System.EventArgs])" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void add_SecondEvent(System.EventHandler`1[System.EventArgs])" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_SecondEvent(System.EventHandler`1[System.EventArgs])" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void Trigger()" attrs="134">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestAnonSwitch.Tester">
+      <method name="Void Test()" attrs="134">
+        <size>157</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestAnonSwitch.MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestAnonSwitch.Tester+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
+        <size>23</size>
+      </method>
+      <method name="Void &lt;&gt;m__1(System.Object, System.EventArgs)" attrs="131">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-172.cs">
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>133</size>
+      </method>
+      <method name="Void GenerateCodeCall[T1](System.Reflection.Emit.ILGenerator, System.Action`1[T1])" attrs="145">
+        <size>19</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-173.cs">
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void SomeMethod(System.Action)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>36</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-174.cs">
+    <type name="F">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void Main()" attrs="145">
+        <size>38</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-175.cs">
+    <type name="F">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void Main()" attrs="145">
+        <size>38</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-176.cs">
+    <type name="TestDelegateFinallyOut.Test">
+      <method name="Void CallDelegate(System.Action)" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Boolean TestMethod(Int32 ByRef)" attrs="145">
+        <size>75</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>32</size>
+      </method>
+      <method name="Void &lt;TestMethod&gt;m__0()" attrs="145">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-177.cs">
+    <type name="X">
+      <method name="Void Execute[TArg](TArg)" attrs="150">
+        <size>21</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void &lt;Execute`1&gt;m__0[TArg]()" attrs="145">
+        <size>58</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Execute&gt;c__AnonStorey0`1[TArg]">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Object] &lt;&gt;m__0(System.String)" attrs="131">
+        <size>26</size>
+      </method>
+      <method name="System.Object &lt;&gt;m__1(Char)" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-18.cs">
+    <type name="A">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="DelegateTest">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>87</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="DelegateTest+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-19.cs">
+    <type name="S">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>248</size>
+      </method>
+      <method name="Boolean t(Int32, Int32)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>94</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-20.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="D MainHost()" attrs="145">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;MainHost&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;MainHost&gt;c__AnonStorey0+&lt;MainHost&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>53</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-21.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>81</size>
+      </method>
+      <method name="Void M()" attrs="129">
+        <size>45</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;M&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>49</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;M&gt;c__AnonStorey0+&lt;M&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>82</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-22.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="D T()" attrs="145">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;T&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;T&gt;c__AnonStorey0+&lt;T&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>53</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-23.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>81</size>
+      </method>
+      <method name="Void M()" attrs="129">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;M&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;M&gt;c__AnonStorey0+&lt;M&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-24.cs">
+    <type name="D">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>30</size>
+      </method>
+      <method name="D T(Int32)" attrs="145">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;T&gt;c__AnonStorey0">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-25.cs">
+    <type name="D">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>56</size>
+      </method>
+      <method name="D T(Int32)" attrs="145">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;T&gt;c__AnonStorey0">
+      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="131">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-26.cs">
+    <type name="TestGotoLabels.GotoLabelsTest">
+      <method name="Int32 Main()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestGotoLabels.GotoLabelsTest+MyDelegate">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestGotoLabels.GotoLabelsTest">
+      <method name="Void TestMethod2(MyDelegate)" attrs="150">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="TestGotoLabels.GotoLabelsTest+MyDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestGotoLabels.GotoLabelsTest">
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-27.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>151</size>
+      </method>
+      <method name="Void M(Int32)" attrs="129">
+        <size>60</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;M&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>39</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;M&gt;c__AnonStorey0+&lt;M&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>51</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-28.cs">
+    <type name="Delegable">
+      <method name="Void add_MyDelegate(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_MyDelegate(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="DelegateTest">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>59</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="DelegateTest+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-29.cs">
+    <type name="X">
+      <method name="System.String Hello()" attrs="134">
+        <size>28</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="System.String &lt;Hello&gt;m__0()" attrs="129">
+        <size>217</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>108</size>
+      </method>
+    </type>
+    <type name="X+Foo">
+      <method name="System.String Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+Bar">
+      <method name="Void Invoke(System.String)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+Bar">
+      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void &lt;Hello&gt;m__1(System.String)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Void &lt;Hello&gt;m__2(System.String)" attrs="145">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-30.cs">
+    <type name="X">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>39</size>
+      </method>
+    </type>
+    <type name="Program+D">
+      <method name="Void Invoke(X)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0(X)" attrs="131">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void add_E(D)" attrs="2193">
+        <size>40</size>
+      </method>
+      <method name="Void remove_E(D)" attrs="2193">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="Program+D">
+      <method name="System.IAsyncResult BeginInvoke(X, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-31.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+test">
+      <method name="System.Object Invoke(System.Reflection.MethodInfo)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void DoCall(test)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="X+test">
+      <method name="System.IAsyncResult BeginInvoke(System.Reflection.MethodInfo, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.Object EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Object &lt;Main&gt;m__0(System.Reflection.MethodInfo)" attrs="145">
+        <size>26</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-32.cs">
+    <type name="StringSender">
+      <method name="Void Invoke(System.String)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="VoidDelegate">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Void SimpleCallback(MainClass, System.String)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>26</size>
+      </method>
+      <method name="Void &lt;&gt;m__1(System.String)" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="StringSender">
+      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="VoidDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-33.cs">
+    <type name="Do">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Void doit(Int32)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>171</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="T+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Do">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-34.cs">
+    <type name="Delegates.Space">
+      <method name="Void Leak(Boolean, Int32)" attrs="134">
+        <size>97</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Delegates.Space+DoCopy">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Delegates.Program">
+      <method name="Void SpaceLeak()" attrs="145">
+        <size>38</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Delegates.Space+&lt;Leak&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Delegates.Space+&lt;Leak&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Delegates.Space+&lt;Leak&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="Delegates.Space+DoCopy">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-35.cs">
+    <type name="ExceptionWithAnonMethod">
+      <method name="Int32 Main()" attrs="150">
+        <size>108</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ExceptionWithAnonMethod+EmptyCallback">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="ExceptionWithAnonMethod+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ExceptionWithAnonMethod">
+      <method name="Void AnonHandler(EmptyCallback)" attrs="150">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="ExceptionWithAnonMethod+EmptyCallback">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-36.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor(TestMethod)" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(TestMethod2)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="TestMethod">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestMethod2">
+      <method name="Void Invoke(System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestMethod">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestMethod2">
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-37.cs">
+    <type name="DelegateInit">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="DelegateInit+FooDelegate">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="DelegateInit">
+      <method name="Void &lt;_print&gt;m__0()" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-38.cs">
+    <type name="Simple">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Simple Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Hello(Int64, Int64)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Int32)" attrs="134">
+        <size>68</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0">
+      <method name="Simple &lt;&gt;m__0()" attrs="131">
+        <size>72</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>35</size>
+      </method>
+    </type>
+    <type name="Simple">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-39.cs">
+    <type name="Simple">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Simple Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Hello(Int64)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Int32)" attrs="134">
+        <size>66</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0">
+      <method name="Simple &lt;&gt;m__0()" attrs="131">
+        <size>38</size>
+      </method>
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Simple">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-40.cs">
+    <type name="Simple">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Simple Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Hello(Int64)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Int32)" attrs="134">
+        <size>66</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0">
+      <method name="Simple &lt;&gt;m__0()" attrs="131">
+        <size>38</size>
+      </method>
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Simple">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-41.cs">
+    <type name="Simple">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Simple Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Hello(Int64)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Int32)" attrs="134">
+        <size>66</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0">
+      <method name="Simple &lt;&gt;m__0()" attrs="131">
+        <size>63</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>36</size>
+      </method>
+    </type>
+    <type name="Simple">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-42.cs">
+    <type name="Simple">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Simple Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Hello(Int64)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Int32)" attrs="150">
+        <size>52</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Simple">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Simple &lt;Test&gt;m__0()" attrs="145">
+        <size>45</size>
+      </method>
+      <method name="Void &lt;Test&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-43.cs">
+    <type name="Simple">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Simple Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Hello(Int64, Int64)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Int32)" attrs="134">
+        <size>55</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0">
+      <method name="Simple &lt;&gt;m__0()" attrs="131">
+        <size>72</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>35</size>
+      </method>
+    </type>
+    <type name="Simple">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-44.cs">
+    <type name="Simple">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Simple Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Hello(Int64)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Int32)" attrs="134">
+        <size>69</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0">
+      <method name="Simple &lt;&gt;m__0()" attrs="131">
+        <size>59</size>
+      </method>
+      <method name="Simple &lt;&gt;m__1()" attrs="131">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__2()" attrs="131">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="Simple">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Simple EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-45.cs">
+    <type name="TestFunc">
+      <method name="Void Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void .ctor(TestFunc)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="TestClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>29</size>
+      </method>
+    </type>
+    <type name="TestFunc">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestClass">
+      <method name="Void &lt;a&gt;m__0(Int32)" attrs="145">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-46.cs">
+    <type name="Foo">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="World">
+      <method name="Void Hello(Int64)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Int32)" attrs="134">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="World+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-47.cs">
+    <type name="Foo">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="World">
+      <method name="Void Hello(Int64)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Int32)" attrs="134">
+        <size>142</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="World+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="World+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="World+&lt;Test&gt;c__AnonStorey2">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-48.cs">
+    <type name="Foo">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="World">
+      <method name="Void Hello(Int64)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Int32)" attrs="134">
+        <size>190</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="World+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="World+&lt;Test&gt;c__AnonStorey2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="World+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>79</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-49.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>207</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>83</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="134">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-50.cs">
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>252</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Foo&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>135</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.IEnumerable Foo(Int32)" attrs="134">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Foo&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-51.cs">
+    <type name="FooDelegate">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="FooDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void &lt;Print&gt;m__0()" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-52.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+A">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>242</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0+&lt;GetIt&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerator GetIt(Int32[])" attrs="145">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="X+A">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-53.cs">
+    <type name="Foo">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>40</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>34</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-54.cs">
+    <type name="Hello">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void Test(Foo)" attrs="134">
+        <size>46</size>
+      </method>
+      <method name="Void Hello(Int32)" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>30</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Hello">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-55.cs">
+    <type name="Foo">
+      <method name="Void Private()" attrs="129">
+        <size>12</size>
+      </method>
+      <method name="Void Test()" attrs="134">
+        <size>20</size>
+      </method>
+      <method name="Void &lt;Test&gt;m__0()" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo+Hello">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void Test(Hello)" attrs="132">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Foo+Hello">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-56.cs">
+    <type name="QueueHandler">
+      <method name="Void Invoke(Observable)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Observable">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="QueueHandler">
+      <method name="System.IAsyncResult BeginInvoke(Observable, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Observable">
+      <method name="Void &lt;Main&gt;m__0(Observable)" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-57.cs">
+    <type name="X">
+      <method name="Int32 Test()" attrs="150">
+        <size>293</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+TestDelegate">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>90</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+TestDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-58.cs">
+    <type name="X">
+      <method name="Int32 Test(Int32)" attrs="150">
+        <size>390</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+TestDelegate">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>163</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+TestDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-59.cs">
+    <type name="X">
+      <method name="Int32 Test(Int32)" attrs="150">
+        <size>574</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+TestDelegate">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey3">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey2">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>225</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+TestDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-60.cs">
+    <type name="X">
+      <method name="Int32 Test(Int32)" attrs="150">
+        <size>632</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>54</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+TestDelegate">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey3">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey2">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>348</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey2+&lt;Test&gt;c__AnonStorey4">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>125</size>
+      </method>
+    </type>
+    <type name="X+TestDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-61.cs">
+    <type name="X">
+      <method name="Int32 Test()" attrs="134">
+        <size>374</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+TestDelegate">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>173</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+TestDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-62.cs">
+    <type name="FooHandler">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void .ctor(Z)" attrs="6278">
+        <size>57</size>
+      </method>
+    </type>
+    <type name="Z">
+      <method name="Void Hello()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y+&lt;Y&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FooHandler">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-63.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+A">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>281</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0+&lt;GetIt&gt;c__AnonStorey2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0+&lt;GetIt&gt;c__AnonStorey1">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>57</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerator GetIt(Int32[])" attrs="145">
+        <size>22</size>
+      </method>
+    </type>
+    <type name="X+A">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-64.cs">
+    <type name="Source">
+      <method name="Void add_ChildSourceAdded(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_ChildSourceAdded(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void add_ChildSourceRemoved(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_ChildSourceRemoved(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Source FindSource(Source)" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Void AddSource(Source, Int32, System.Object)" attrs="129">
+        <size>106</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Source+&lt;AddSource&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Source">
+      <method name="Void &lt;AddSource&gt;m__0(System.Object, System.EventArgs)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-65.cs">
+    <type name="BaseClass">
+      <method name="Void .ctor(SomeDelegate)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="BaseClass+SomeDelegate">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="TestClass">
+      <method name="Int32 Main(System.String[])" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>33</size>
+      </method>
+    </type>
+    <type name="TestClass+&lt;TestClass&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BaseClass+SomeDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-66.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+TestEventHandler">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test+&lt;&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void add_testEvent(TestEventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_testEvent(TestEventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void add_TestEvent(TestEventHandler)" attrs="2182">
+        <size>34</size>
+      </method>
+      <method name="Void remove_TestEvent(TestEventHandler)" attrs="2182">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Test+TestEventHandler">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-67.cs">
+    <type name="ClassOne">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(ReturnStringDelegate)" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>33</size>
+      </method>
+    </type>
+    <type name="ClassOne+ReturnStringDelegate">
+      <method name="System.String Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="ClassOne+&lt;ClassOne&gt;c__AnonStorey0">
+      <method name="System.String &lt;&gt;m__0()" attrs="131">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ClassOne+ReturnStringDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.String EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-68.cs">
+    <type name="D1">
+      <method name="Void Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="D2">
+      <method name="Void Invoke(System.String ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void T(D1)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void T(D2)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>70</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D1">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="D2">
+      <method name="System.IAsyncResult BeginInvoke(System.String ByRef, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.String ByRef, System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__1(System.String ByRef)" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-69.cs">
+    <type name="TargetAccessDelegate">
+      <method name="System.Object Invoke(System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="SingleSteppingEngine">
+      <method name="System.Object SendCommand(TargetAccessDelegate)" attrs="129">
+        <size>16</size>
+      </method>
+      <method name="Void Detach()" attrs="134">
+        <size>21</size>
+      </method>
+      <method name="System.Object &lt;Detach&gt;m__0(System.Object)" attrs="129">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TargetAccessDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.Object EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-70.cs">
+    <type name="UnsafeClass">
+      <method name="Int32* GetUnsafeValue()" attrs="134">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void UnsafeTests()" attrs="145">
+        <size>70</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>99</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+&lt;UnsafeTests&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>49</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Test(D)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="C+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void &lt;UnsafeTests&gt;m__0()" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__1()" attrs="145">
+        <size>17</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-71.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+FdCb">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Program+&lt;OnReadHandle&gt;c__AnonStorey0">
+      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="131">
+        <size>55</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Errno ProcessFile(System.String, FdCb)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Errno OnReadHandle(System.String, Byte[], Int64)" attrs="132">
+        <size>42</size>
+      </method>
+    </type>
+    <type name="Program+FdCb">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-72.cs">
+    <type name="Test">
+      <method name="Boolean TryGetValue(System.Object, System.Object ByRef)" attrs="134">
+        <size>13</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Foo()" attrs="129">
+        <size>20</size>
+      </method>
+      <method name="Boolean &lt;Foo&gt;m__0(System.Object, System.Object ByRef)" attrs="129">
+        <size>46</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+UnaryOperator">
+      <method name="Boolean Invoke(System.Object, System.Object ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void AddOperator(UnaryOperator)" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Test+UnaryOperator">
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.Object ByRef, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Boolean EndInvoke(System.Object ByRef, System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-73.cs">
+    <type name="D">
+      <method name="Void Invoke(System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Void Main()" attrs="150">
+        <size>32</size>
+      </method>
+      <method name="Void Test_1()" attrs="145">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.Object, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="T">
+      <method name="Void &lt;Main&gt;m__0(System.Object)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Void &lt;Test_1&gt;m__1(System.Object)" attrs="145">
+        <size>32</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-74.cs">
+    <type name="Foo">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>36</size>
+      </method>
+    </type>
+    <type name="Foo+SimpleDelegate">
+      <method name="System.String[,] Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="Void Baz(SimpleDelegate)" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Foo+SimpleDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.String[,] EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.String[,] &lt;Main&gt;m__0()" attrs="145">
+        <size>42</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-75.cs">
+    <type name="D">
+      <method name="Boolean Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Data">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Foo(Int32, D)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void TestMe()" attrs="129">
+        <size>152</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestMe&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestMe&gt;c__AnonStorey0">
+      <method name="Boolean &lt;&gt;m__1()" attrs="131">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Boolean &lt;&gt;m__0()" attrs="131">
+        <size>67</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Boolean EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Boolean &lt;TestMe&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-76.cs">
+    <type name="FactoryDelegate">
+      <method name="System.Object Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void set_Item(System.String, FactoryDelegate)" attrs="2177">
+        <size>9</size>
+      </method>
+      <method name="FactoryDelegate get_Item(System.String)" attrs="2177">
+        <size>15</size>
+      </method>
+      <method name="Void X()" attrs="134">
+        <size>25</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>83</size>
+      </method>
+      <method name="System.Object &lt;X&gt;m__0()" attrs="129">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="FactoryDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.Object EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-77.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="y">
+      <method name="Boolean get_Item(Int32)" attrs="2182">
+        <size>36</size>
+      </method>
+      <method name="Void set_Item(Int32, Boolean)" attrs="2182">
+        <size>11</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="y+&lt;&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-78.cs">
+    <type name="D1">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="D2">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="DelegateTest">
+      <method name="Void Foo(D1)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Void Foo(D2)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>63</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="D1">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="D2">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="DelegateTest">
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-79.cs">
+    <type name="Test">
+      <method name="Void Foo()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;add_Changed&gt;m__0()" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void add_E(D)" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void remove_E(D)" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void add_Changed(D)" attrs="2177">
+        <size>31</size>
+      </method>
+      <method name="Void remove_Changed(D)" attrs="2177">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="Test+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-80.cs">
+    <type name="MonoBug.MyTest">
+      <method name="Int32 Main()" attrs="150">
+        <size>190</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MonoBug.MyTest+EventHandlers">
+      <method name="System.EventHandler get_DoNothingEventHandler()" attrs="2198">
+        <size>38</size>
+      </method>
+      <method name="System.EventHandler get_DoSomethingEventHandler()" attrs="2182">
+        <size>21</size>
+      </method>
+      <method name="System.EventHandler get_Handler()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Handler(System.EventHandler)" attrs="2182">
+        <size>9</size>
+      </method>
+      <method name="Void &lt;get_DoSomethingEventHandler&gt;m__1(System.Object, System.EventArgs)" attrs="129">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+      <method name="Void &lt;get_DoNothingEventHandler&gt;m__0(System.Object, System.EventArgs)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-81.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Int32 Test()" attrs="129">
+        <size>35</size>
+      </method>
+      <method name="Int32 &lt;Test&gt;m__0()" attrs="129">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+Cmd">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+Cmd2">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey1+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>45</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey1+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Foo2(Cmd2)" attrs="129">
+        <size>15</size>
+      </method>
+      <method name="Void Foo(Cmd)" attrs="129">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C+Cmd">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+Cmd2">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-82.cs">
+    <type name="StringSender">
+      <method name="Void Invoke(System.String)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="VoidDelegate">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>88</size>
+      </method>
+      <method name="Void Test2(Int32)" attrs="129">
+        <size>32</size>
+      </method>
+      <method name="Void Test3(Int32)" attrs="129">
+        <size>58</size>
+      </method>
+      <method name="Void Test4()" attrs="129">
+        <size>32</size>
+      </method>
+      <method name="Void Test5(Int32)" attrs="129">
+        <size>28</size>
+      </method>
+      <method name="Void SimpleCallback(MainClass, System.String)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+D">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Test3&gt;c__AnonStorey2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Test5&gt;c__AnonStorey4">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Test2&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Test4&gt;c__AnonStorey3">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__1(System.String)" attrs="131">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Test3&gt;c__AnonStorey2">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Test5&gt;c__AnonStorey4">
+      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="131">
+        <size>54</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Test2&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Test4&gt;c__AnonStorey3">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>15</size>
+      </method>
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="StringSender">
+      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="VoidDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="MainClass+D">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Void &lt;Test2&gt;m__0(System.String)" attrs="145">
+        <size>28</size>
+      </method>
+      <method name="Void &lt;Test3&gt;m__1()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;Test4&gt;m__2()" attrs="145">
+        <size>32</size>
+      </method>
+      <method name="Void &lt;Test4&gt;m__3()" attrs="145">
+        <size>29</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Test5&gt;c__AnonStorey4">
+      <method name="Int32 &lt;&gt;m__1(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-83.cs">
+    <type name="C">
+      <method name="Void add_MyDelegate(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_MyDelegate(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void DoSomething(Boolean)" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>42</size>
+      </method>
+      <method name="Void &lt;MyDelegate&gt;m__0(System.Object, System.EventArgs)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-84.cs">
+    <type name="D">
+      <method name="C Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor(D)" attrs="6278">
+        <size>43</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="C EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="C &lt;field&gt;m__0(Int32)" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-85.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-86.cs">
+    <type name="Bug.A">
+      <method name="Void Test()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>51</size>
+      </method>
+    </type>
+    <type name="Bug.B">
+      <method name="Int32 get_Prop()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Bug.EventHandler">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Bug.A+&lt;A&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bug.EventHandler">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-87.cs">
+    <type name="Bug.D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Bug.AA">
+      <method name="Void TestMe()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor(BB)" attrs="6278">
+        <size>52</size>
+      </method>
+    </type>
+    <type name="Bug.BB">
+      <method name="Void Foo()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="Bug.AA+&lt;AA&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bug.D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-88.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void Test()" attrs="129">
+        <size>102</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey2">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>70</size>
+      </method>
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey2+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey2+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>21</size>
+      </method>
+    </type>
+    <type name="C+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey2">
+      <method name="Void &lt;&gt;m__2()" attrs="145">
+        <size>4</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-89.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="System.Object get_GdkWindow()" attrs="2177">
+        <size>10</size>
+      </method>
+      <method name="Void set_GdkWindow(System.Object)" attrs="2177">
+        <size>2</size>
+      </method>
+      <method name="Void Test()" attrs="129">
+        <size>74</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>113</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>32</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Invoke(D)" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="C+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-90.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void Foo()" attrs="129">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>69</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__AnonStorey0+&lt;Foo&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__AnonStorey0+&lt;Foo&gt;c__AnonStorey2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>33</size>
+      </method>
+    </type>
+    <type name="C+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-91.cs">
+    <type name="A">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>28</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void SelectCommand(Int32)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Test()" attrs="129">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>116</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="C+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-92.cs">
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>76</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Void Test(System.Collections.IEnumerable)" attrs="145">
+        <size>34</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-93.cs">
+    <type name="BaseTest.MainClass">
+      <method name="Void add_MyEvent(System.EventHandler)" attrs="2182">
+        <size>56</size>
+      </method>
+      <method name="Void remove_MyEvent(System.EventHandler)" attrs="2182">
+        <size>56</size>
+      </method>
+      <method name="Void RaiseMyEvent(System.Object, System.EventArgs)" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BaseTest.MainClass+&lt;&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BaseTest.MainClass+&lt;&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0(System.Object, System.EventArgs)" attrs="131">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="BaseTest.MainClass">
+      <method name="Void &lt;Main&gt;m__0(System.Object, System.EventArgs)" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-94.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>97</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+BaseClass">
+      <method name="Void Print()" attrs="454">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+Derived">
+      <method name="Void Print()" attrs="198">
+        <size>21</size>
+      </method>
+      <method name="Void &lt;Print&gt;__BaseCallProxy0()" attrs="129">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;Print&gt;m__0()" attrs="129">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+DerivedLibrary">
+      <method name="Void Print(Int32)" attrs="198">
+        <size>21</size>
+      </method>
+      <method name="Void &lt;Print&gt;__BaseCallProxy0(Int32)" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+BaseClass">
+      <method name="Void TestOut(Int32 ByRef)" attrs="454">
+        <size>5</size>
+      </method>
+    </type>
+    <type name="Program+Derived">
+      <method name="Void TestOut(Int32 ByRef)" attrs="198">
+        <size>50</size>
+      </method>
+      <method name="Void &lt;TestOut&gt;__BaseCallProxy1(Int32 ByRef)" attrs="129">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Program+Derived+&lt;TestOut&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+DerivedLibrary">
+      <method name="Void &lt;Print&gt;m__0()" attrs="129">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Program+Derived+&lt;TestOut&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>30</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-95.cs">
+    <type name="D">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void add_Event(D)" attrs="3524">
+        <size>0</size>
+      </method>
+      <method name="Void remove_Event(D)" attrs="3524">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void add_Event(D)" attrs="2244">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Event(D)" attrs="2244">
+        <size>42</size>
+      </method>
+      <method name="Int32 Run()" attrs="132">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Test(Int32)" attrs="129">
+        <size>54</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void &lt;add_Event&gt;__BaseCallProxy0(D)" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>24</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-96.cs">
+    <type name="P">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Extra()" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Int32 Run(Int32)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>110</size>
+      </method>
+    </type>
+    <type name="Program+D">
+      <method name="Int32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Get&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Get&gt;c__AnonStorey1">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>31</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="131">
+        <size>31</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__2()" attrs="131">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="D Get(Int32)" attrs="145">
+        <size>146</size>
+      </method>
+    </type>
+    <type name="Program+D">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-97.cs">
+    <type name="Space">
+      <method name="Void Leak(Boolean, Int32)" attrs="134">
+        <size>81</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Space+DoCopy">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Space+&lt;Leak&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Space+&lt;Leak&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>24</size>
+      </method>
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>70</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Space+DoCopy">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-98.cs">
+    <type name="Foo">
+      <method name="Void Finalize()" attrs="196">
+        <size>40</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo+&lt;Finalize&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-anon-99.cs">
+    <type name="C">
+      <method name="Void Test()" attrs="129">
+        <size>38</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>72</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__AnonStorey0+&lt;Test&gt;c__AnonStorey2">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void &lt;Test&gt;m__0()" attrs="145">
+        <size>63</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-01.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>131</size>
+      </method>
+      <method name="Void TestAsync()" attrs="145">
+        <size>27</size>
+      </method>
+      <method name="System.Threading.Tasks.Task RunAsync()" attrs="145">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Program+&lt;TestAsync&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>221</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void &lt;RunAsync&gt;m__0()" attrs="145">
+        <size>62</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-02.cs">
+    <type name="C">
+      <method name="System.Threading.Tasks.Task TestTask()" attrs="134">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task TestTask2()" attrs="134">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task Call()" attrs="129">
+        <size>31</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestTaskGeneric()" attrs="134">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] CallGeneric()" attrs="129">
+        <size>31</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>316</size>
+      </method>
+      <method name="Void &lt;Call&gt;m__0()" attrs="129">
+        <size>29</size>
+      </method>
+      <method name="Int32 &lt;CallGeneric&gt;m__1()" attrs="129">
+        <size>27</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestTask&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>171</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestTask2&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>176</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestTaskGeneric&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>178</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestTask&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestTask2&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestTaskGeneric&gt;c__async2">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-03.cs">
+    <type name="S">
+      <method name="A GetAwaiter(Int32)" attrs="150">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Boolean get_IsCompleted()" attrs="2177">
+        <size>10</size>
+      </method>
+      <method name="Int32 GetResult()" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Test1()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Test2()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task Test3()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>88</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+&lt;Test1&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>233</size>
+      </method>
+    </type>
+    <type name="A+&lt;Test2&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>161</size>
+      </method>
+    </type>
+    <type name="A+&lt;Test3&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>153</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void System.Runtime.CompilerServices.INotifyCompletion.OnCompleted(System.Action)" attrs="481">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="A+&lt;Test1&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="A+&lt;Test2&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="A+&lt;Test3&gt;c__async2">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-04.cs">
+    <type name="C">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestTaskGeneric()" attrs="134">
+        <size>41</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>141</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>31</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestTaskGeneric&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>196</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 &lt;TestTaskGeneric&gt;m__0()" attrs="129">
+        <size>39</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestTaskGeneric&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-05.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Threading.Tasks.Task SynchronousCall(Int32)" attrs="134">
+        <size>49</size>
+      </method>
+      <method name="System.Threading.Tasks.Task AnotherTask(Int32)" attrs="129">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="C+&lt;SynchronousCall&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>79</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-06.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>482</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>35</size>
+      </method>
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>35</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.String] &lt;&gt;m__2(System.String)" attrs="131">
+        <size>49</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>225</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>225</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async3">
+      <method name="Void MoveNext()" attrs="486">
+        <size>251</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__5()" attrs="131">
+        <size>34</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async5">
+      <method name="Void MoveNext()" attrs="486">
+        <size>251</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async3+&lt;Main&gt;c__AnonStorey4">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async5+&lt;Main&gt;c__AnonStorey6">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__async7">
+      <method name="Void MoveNext()" attrs="486">
+        <size>69</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__4()" attrs="131">
+        <size>34</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async3+&lt;Main&gt;c__AnonStorey4">
+      <method name="System.String &lt;&gt;m__0()" attrs="131">
+        <size>52</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1">
+      <method name="System.Threading.Tasks.Task`1[System.Decimal] &lt;&gt;m__3(System.Decimal)" attrs="131">
+        <size>49</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async2">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async3">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async5">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async5+&lt;Main&gt;c__AnonStorey6">
+      <method name="System.Decimal &lt;&gt;m__0()" attrs="131">
+        <size>52</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__async7">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="System.Threading.Tasks.Task`1[System.Decimal] &lt;Main&gt;m__0(System.Decimal)" attrs="145">
+        <size>41</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-07.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>358</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1">
+      <method name="System.Threading.Tasks.Task`1[System.String] &lt;&gt;m__0(System.String)" attrs="131">
+        <size>49</size>
+      </method>
+      <method name="System.Threading.Tasks.Task &lt;&gt;m__1()" attrs="131">
+        <size>41</size>
+      </method>
+      <method name="Void &lt;&gt;m__3()" attrs="131">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>238</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async3">
+      <method name="Void MoveNext()" attrs="486">
+        <size>191</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async5">
+      <method name="Void MoveNext()" attrs="486">
+        <size>191</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async0+&lt;Main&gt;c__AnonStorey2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__async4">
+      <method name="Void MoveNext()" attrs="486">
+        <size>68</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__2()" attrs="131">
+        <size>35</size>
+      </method>
+      <method name="Void &lt;&gt;m__4()" attrs="131">
+        <size>46</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async0+&lt;Main&gt;c__AnonStorey2">
+      <method name="System.String &lt;&gt;m__0()" attrs="131">
+        <size>52</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async3">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey1+&lt;Main&gt;c__async5">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__async4">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="System.Threading.Tasks.Task`1[System.Int16] &lt;Main&gt;m__0(Int16)" attrs="145">
+        <size>41</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-08.cs">
+    <type name="AsyncTypeInference">
+      <method name="Int32 Main()" attrs="150">
+        <size>146</size>
+      </method>
+      <method name="System.Threading.Tasks.Task TT()" attrs="145">
+        <size>48</size>
+      </method>
+      <method name="Void Test[T](System.Func`2[System.Int32,System.Threading.Tasks.Task`1[T]])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void Test2[T](System.Func`2[System.Int32,T])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AsyncTypeInference+&lt;Main&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>196</size>
+      </method>
+    </type>
+    <type name="AsyncTypeInference+&lt;Main&gt;c__async5">
+      <method name="Void MoveNext()" attrs="486">
+        <size>197</size>
+      </method>
+    </type>
+    <type name="AsyncTypeInference+&lt;Main&gt;c__async8">
+      <method name="Void MoveNext()" attrs="486">
+        <size>156</size>
+      </method>
+    </type>
+    <type name="AsyncTypeInference+&lt;Main&gt;c__asyncB">
+      <method name="Void MoveNext()" attrs="486">
+        <size>67</size>
+      </method>
+    </type>
+    <type name="AsyncTypeInference+&lt;Main&gt;c__async2">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="AsyncTypeInference+&lt;Main&gt;c__async5">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="AsyncTypeInference+&lt;Main&gt;c__async8">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="AsyncTypeInference+&lt;Main&gt;c__asyncB">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="AsyncTypeInference">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Main&gt;m__1(Int32)" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task &lt;Main&gt;m__2(Int32)" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task &lt;Main&gt;m__3(Int32)" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 &lt;TT&gt;m__4()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="AsyncTypeInference+&lt;Main&gt;c__async2">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="AsyncTypeInference+&lt;Main&gt;c__async5">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-09.cs">
+    <type name="Test">
+      <method name="Int32 Foo[T](System.Func`2[T,System.Threading.Tasks.Task`1[System.Int32]])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo[T](System.Func`2[T,System.Threading.Tasks.Task`1[System.Int16]])" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>57</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Main&gt;c__async3">
+      <method name="Void MoveNext()" attrs="486">
+        <size>63</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Threading.Tasks.Task`1[System.Int16] &lt;Main&gt;m__0(System.String)" attrs="145">
+        <size>33</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-10.cs">
+    <type name="C">
+      <method name="System.Threading.Tasks.Task`1[System.String] TestCompositionCall_1()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.String] TestCompositionCall_2()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestCompositionCall_3()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestCompositionPair_1()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestCompositionPair_2()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestCompositionPair_3()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestCompositionPair_4()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Byte] M(Byte)" attrs="145">
+        <size>44</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>458</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionCall_1&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>338</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionCall_2&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>257</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionCall_3&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>310</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionPair_1&gt;c__async3">
+      <method name="Void MoveNext()" attrs="486">
+        <size>208</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionPair_2&gt;c__async4">
+      <method name="Void MoveNext()" attrs="486">
+        <size>329</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionPair_3&gt;c__async5">
+      <method name="Void MoveNext()" attrs="486">
+        <size>209</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionPair_4&gt;c__async6">
+      <method name="Void MoveNext()" attrs="486">
+        <size>467</size>
+      </method>
+    </type>
+    <type name="C+&lt;M&gt;c__AnonStorey7">
+      <method name="Byte &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionCall_1&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionCall_2&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionCall_3&gt;c__async2">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionPair_1&gt;c__async3">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionPair_2&gt;c__async4">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionPair_3&gt;c__async5">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionPair_4&gt;c__async6">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionCall_1&gt;c__async0">
+      <method name="System.String &lt;&gt;m__0()" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="System.String &lt;&gt;m__1()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionCall_2&gt;c__async1">
+      <method name="System.String &lt;&gt;m__0()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionCall_3&gt;c__async2">
+      <method name="Byte &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionPair_1&gt;c__async3">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionPair_2&gt;c__async4">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionPair_3&gt;c__async5">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestCompositionPair_4&gt;c__async6">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__2()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-11.cs">
+    <type name="G`1[T]">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_1(T)" attrs="134">
+        <size>49</size>
+      </method>
+      <method name="Int32 Call(T, T, T ByRef, Int32)" attrs="129">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 get_Prop()" attrs="2177">
+        <size>29</size>
+      </method>
+      <method name="Void set_Prop(Int32)" attrs="2177">
+        <size>16</size>
+      </method>
+      <method name="Int32 TestCall(Int32 ByRef, System.Type, System.Object, UInt64, Int32)" attrs="129">
+        <size>90</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_1()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 TestCall2[T1,T2,T3,T4,T5,T6,T7](T1, T2, T3, T4, T5, T6, T7)" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_2(UInt64)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_3()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 TestCall3(S ByRef, S ByRef, Int32, Int32)" attrs="145">
+        <size>26</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_4()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 TestCall4(E, S, C, Int32)" attrs="145">
+        <size>61</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestStack_5()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>370</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="G`1+&lt;TestStack_1&gt;c__async0[T]">
+      <method name="Void MoveNext()" attrs="486">
+        <size>266</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestStack_1&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>327</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestStack_2&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>302</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestStack_3&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>467</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestStack_4&gt;c__async3">
+      <method name="Void MoveNext()" attrs="486">
+        <size>323</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestStack_5&gt;c__async4">
+      <method name="Void MoveNext()" attrs="486">
+        <size>347</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestStack_5&gt;c__async4+&lt;TestStack_5&gt;c__AnonStorey5">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>48</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="G`1+&lt;TestStack_1&gt;c__async0[T]">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestStack_1&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestStack_2&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestStack_3&gt;c__async2">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestStack_4&gt;c__async3">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestStack_5&gt;c__async4">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="G`1+&lt;TestStack_1&gt;c__async0[T]">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestStack_1&gt;c__async0">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestStack_2&gt;c__async1">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestStack_3&gt;c__async2">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestStack_4&gt;c__async3">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-12.cs">
+    <type name="C">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestNested_1()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 Call(Int32, Int32, Int32)" attrs="145">
+        <size>53</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>76</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestNested_1&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>455</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__2()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-13.cs">
+    <type name="S">
+      <method name="Void SetValue(Int32)" attrs="134">
+        <size>9</size>
+      </method>
+      <method name="S op_Implicit(Base)" attrs="2198">
+        <size>24</size>
+      </method>
+      <method name="S op_Addition(S, S)" attrs="2198">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor(Int32, String)" attrs="6278">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="Base">
+      <method name="Void add_Event(System.Action)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Event(System.Action)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Boolean get_PropertyBool()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Int32 get_PropertyInt()" attrs="2182">
+        <size>17</size>
+      </method>
+      <method name="Void set_PropertyInt(Int32)" attrs="2182">
+        <size>20</size>
+      </method>
+      <method name="Base get_PropertyThis()" attrs="2180">
+        <size>24</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32)" attrs="2182">
+        <size>18</size>
+      </method>
+      <method name="Boolean op_True(Base)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Boolean op_False(Base)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Base op_BitwiseAnd(Base, Base)" attrs="2198">
+        <size>26</size>
+      </method>
+      <method name="Base op_BitwiseOr(Base, Base)" attrs="2198">
+        <size>29</size>
+      </method>
+      <method name="Int32 Call(Int32, Int32, Int32)" attrs="132">
+        <size>53</size>
+      </method>
+      <method name="Int32 Call(Char ByRef, Int32)" attrs="132">
+        <size>14</size>
+      </method>
+      <method name="Void CallBool(Boolean)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Int32 CallS(S)" attrs="134">
+        <size>16</size>
+      </method>
+      <method name="T[] CreateArray[T](Int32)" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Int32 CallNamed(Int32, Int32)" attrs="132">
+        <size>12</size>
+      </method>
+      <method name="Void CallEvent()" attrs="132">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Int32, Int32)" attrs="6278">
+        <size>17</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_2()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_3()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_4()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_5()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_6()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_7()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_8()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] ArrayAccessTest_9()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] AssignTest_1()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] AssignTest_2()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] AssignTest_3()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_2()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_3()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_4()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] CallTest_1()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] CallTest_2()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] CallTest_3()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] CallTest_4()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] CallTest_5()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] CastTest_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] CastTest_2()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] CoalescingTest_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] CoalescingTest_2()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] ConditionalTest_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] ConditionalTest_2()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] ConditionalTest_3()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] ConditionalTest_4()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] DelegateInvoke_4()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] EventInvoke_1()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] FieldTest_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] IndexerTest_1()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] IndexerTest_2()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] IndexerTest_3()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] IndexerTest_4()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] IndexerTest_5()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] IndexerTest_6()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] IndexerTest_7()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] IsTest_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] IsTest_2()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] LogicalUserOperator_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] LogicalUserOperator_2()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] LogicalUserOperator_3()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] NewTest_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] NewTest_2()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] NewInitTest_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] NewInitTest_2()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] NewArrayInitTest_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] NewArrayInitTest_2()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] NewArrayInitTest_3()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] NewArrayInitTest_4()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] NewArrayInitTest_5()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] NewArrayInitTest_6()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] PropertyTest_1()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] PropertyTest_2()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] PropertyTest_3()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] StringConcatTest_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] UnaryTest_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] UnaryTest_2()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] UnaryTest_3()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] VariableInitializer_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
+        <size>247</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>187</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_1&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>335</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_2&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>740</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_3&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>1090</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_4&gt;c__async3">
+      <method name="Void MoveNext()" attrs="486">
+        <size>421</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_5&gt;c__async4">
+      <method name="Void MoveNext()" attrs="486">
+        <size>409</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_6&gt;c__async5">
+      <method name="Void MoveNext()" attrs="486">
+        <size>257</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_7&gt;c__async6">
+      <method name="Void MoveNext()" attrs="486">
+        <size>426</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_8&gt;c__async7">
+      <method name="Void MoveNext()" attrs="486">
+        <size>792</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_9&gt;c__async8">
+      <method name="Void MoveNext()" attrs="486">
+        <size>1209</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] BinaryTest_5()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] BinaryTest_6()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="Tester &lt;CastTest_2&gt;m__4()" attrs="129">
+        <size>9</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] NewArrayInitTest_7()" attrs="129">
+        <size>33</size>
+      </method>
+    </type>
+    <type name="Base">
+      <method name="Void CallRefParams(Int32 ByRef, Int32[])" attrs="148">
+        <size>5</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_1&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_2&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_3&gt;c__async2">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_4&gt;c__async3">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_5&gt;c__async4">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_6&gt;c__async5">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_7&gt;c__async6">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_8&gt;c__async7">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_9&gt;c__async8">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] NewDelegate_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Func`1[System.Int32]] NewDelegate_1_0()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_10()" attrs="129">
+        <size>33</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_10&gt;c__async9">
+      <method name="Void MoveNext()" attrs="486">
+        <size>232</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] ArrayAccessTest_11()" attrs="129">
+        <size>33</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_11&gt;c__asyncA">
+      <method name="Void MoveNext()" attrs="486">
+        <size>413</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;AssignTest_1&gt;c__asyncB">
+      <method name="Void MoveNext()" attrs="486">
+        <size>223</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;AssignTest_2&gt;c__asyncC">
+      <method name="Void MoveNext()" attrs="486">
+        <size>273</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;AssignTest_3&gt;c__asyncD">
+      <method name="Void MoveNext()" attrs="486">
+        <size>364</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;BinaryTest_1&gt;c__asyncE">
+      <method name="Void MoveNext()" attrs="486">
+        <size>435</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;BinaryTest_2&gt;c__asyncF">
+      <method name="Void MoveNext()" attrs="486">
+        <size>507</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;BinaryTest_3&gt;c__async10">
+      <method name="Void MoveNext()" attrs="486">
+        <size>1137</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;BinaryTest_4&gt;c__async11">
+      <method name="Void MoveNext()" attrs="486">
+        <size>872</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;BinaryTest_5&gt;c__async12">
+      <method name="Void MoveNext()" attrs="486">
+        <size>298</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;BinaryTest_6&gt;c__async13">
+      <method name="Void MoveNext()" attrs="486">
+        <size>209</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CallTest_1&gt;c__async14">
+      <method name="Void MoveNext()" attrs="486">
+        <size>430</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CallTest_2&gt;c__async15">
+      <method name="Void MoveNext()" attrs="486">
+        <size>267</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CallTest_3&gt;c__async16">
+      <method name="Void MoveNext()" attrs="486">
+        <size>237</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CallTest_4&gt;c__async17">
+      <method name="Void MoveNext()" attrs="486">
+        <size>240</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CallTest_5&gt;c__async18">
+      <method name="Void MoveNext()" attrs="486">
+        <size>250</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CastTest_1&gt;c__async19">
+      <method name="Void MoveNext()" attrs="486">
+        <size>246</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CastTest_2&gt;c__async1A">
+      <method name="Void MoveNext()" attrs="486">
+        <size>233</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CoalescingTest_1&gt;c__async1B">
+      <method name="Void MoveNext()" attrs="486">
+        <size>358</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CoalescingTest_2&gt;c__async1C">
+      <method name="Void MoveNext()" attrs="486">
+        <size>364</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ConditionalTest_1&gt;c__async1D">
+      <method name="Void MoveNext()" attrs="486">
+        <size>197</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ConditionalTest_2&gt;c__async1E">
+      <method name="Void MoveNext()" attrs="486">
+        <size>329</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ConditionalTest_3&gt;c__async1F">
+      <method name="Void MoveNext()" attrs="486">
+        <size>347</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ConditionalTest_4&gt;c__async20">
+      <method name="Void MoveNext()" attrs="486">
+        <size>243</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;DelegateInvoke_4&gt;c__async21">
+      <method name="Void MoveNext()" attrs="486">
+        <size>271</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;EventInvoke_1&gt;c__async22">
+      <method name="Void MoveNext()" attrs="486">
+        <size>260</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;FieldTest_1&gt;c__async23">
+      <method name="Void MoveNext()" attrs="486">
+        <size>535</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_1&gt;c__async24">
+      <method name="Void MoveNext()" attrs="486">
+        <size>225</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_2&gt;c__async25">
+      <method name="Void MoveNext()" attrs="486">
+        <size>335</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_3&gt;c__async26">
+      <method name="Void MoveNext()" attrs="486">
+        <size>402</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_4&gt;c__async27">
+      <method name="Void MoveNext()" attrs="486">
+        <size>442</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_5&gt;c__async28">
+      <method name="Void MoveNext()" attrs="486">
+        <size>548</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_6&gt;c__async29">
+      <method name="Void MoveNext()" attrs="486">
+        <size>544</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_7&gt;c__async2A">
+      <method name="Void MoveNext()" attrs="486">
+        <size>295</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IsTest_1&gt;c__async2B">
+      <method name="Void MoveNext()" attrs="486">
+        <size>233</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IsTest_2&gt;c__async2C">
+      <method name="Void MoveNext()" attrs="486">
+        <size>233</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;LogicalUserOperator_1&gt;c__async2D">
+      <method name="Void MoveNext()" attrs="486">
+        <size>391</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;LogicalUserOperator_2&gt;c__async2E">
+      <method name="Void MoveNext()" attrs="486">
+        <size>299</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;LogicalUserOperator_3&gt;c__async2F">
+      <method name="Void MoveNext()" attrs="486">
+        <size>390</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewTest_1&gt;c__async30">
+      <method name="Void MoveNext()" attrs="486">
+        <size>260</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewTest_2&gt;c__async31">
+      <method name="Void MoveNext()" attrs="486">
+        <size>348</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewDelegate_1&gt;c__async32">
+      <method name="Void MoveNext()" attrs="486">
+        <size>212</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewDelegate_1_0&gt;c__async33">
+      <method name="Void MoveNext()" attrs="486">
+        <size>226</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewInitTest_1&gt;c__async34">
+      <method name="Void MoveNext()" attrs="486">
+        <size>1030</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewInitTest_2&gt;c__async35">
+      <method name="Void MoveNext()" attrs="486">
+        <size>739</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewArrayInitTest_1&gt;c__async36">
+      <method name="Void MoveNext()" attrs="486">
+        <size>240</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewArrayInitTest_2&gt;c__async37">
+      <method name="Void MoveNext()" attrs="486">
+        <size>355</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewArrayInitTest_3&gt;c__async38">
+      <method name="Void MoveNext()" attrs="486">
+        <size>246</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewArrayInitTest_4&gt;c__async39">
+      <method name="Void MoveNext()" attrs="486">
+        <size>427</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewArrayInitTest_5&gt;c__async3A">
+      <method name="Void MoveNext()" attrs="486">
+        <size>264</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewArrayInitTest_6&gt;c__async3B">
+      <method name="Void MoveNext()" attrs="486">
+        <size>266</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewArrayInitTest_7&gt;c__async3C">
+      <method name="Void MoveNext()" attrs="486">
+        <size>299</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;PropertyTest_1&gt;c__async3D">
+      <method name="Void MoveNext()" attrs="486">
+        <size>222</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;PropertyTest_2&gt;c__async3E">
+      <method name="Void MoveNext()" attrs="486">
+        <size>295</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;PropertyTest_3&gt;c__async3F">
+      <method name="Void MoveNext()" attrs="486">
+        <size>645</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;StringConcatTest_1&gt;c__async40">
+      <method name="Void MoveNext()" attrs="486">
+        <size>455</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;UnaryTest_1&gt;c__async41">
+      <method name="Void MoveNext()" attrs="486">
+        <size>233</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;UnaryTest_2&gt;c__async42">
+      <method name="Void MoveNext()" attrs="486">
+        <size>339</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;UnaryTest_3&gt;c__async43">
+      <method name="Void MoveNext()" attrs="486">
+        <size>372</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;VariableInitializer_1&gt;c__async44">
+      <method name="Void MoveNext()" attrs="486">
+        <size>348</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_5&gt;c__async4+&lt;ArrayAccessTest_5&gt;c__AnonStorey45">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;BinaryTest_2&gt;c__asyncF+&lt;BinaryTest_2&gt;c__AnonStorey46">
+      <method name="Boolean &lt;&gt;m__0()" attrs="131">
+        <size>24</size>
+      </method>
+      <method name="Boolean &lt;&gt;m__1()" attrs="131">
+        <size>24</size>
+      </method>
+      <method name="Boolean &lt;&gt;m__2()" attrs="131">
+        <size>24</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CallTest_5&gt;c__async18+&lt;CallTest_5&gt;c__AnonStorey47">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;EventInvoke_1&gt;c__async22+&lt;EventInvoke_1&gt;c__AnonStorey48">
+      <method name="System.Action &lt;&gt;m__0()" attrs="131">
+        <size>23</size>
+      </method>
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_3&gt;c__async26+&lt;IndexerTest_3&gt;c__AnonStorey49">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_4&gt;c__async27+&lt;IndexerTest_4&gt;c__AnonStorey4A">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_5&gt;c__async28+&lt;IndexerTest_5&gt;c__AnonStorey4B">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_7&gt;c__async2A+&lt;IndexerTest_7&gt;c__AnonStorey4C">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;UnaryTest_2&gt;c__async42+&lt;UnaryTest_2&gt;c__AnonStorey4D">
+      <method name="System.Nullable`1[System.Int16] &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Boolean &lt;Main&gt;m__0(System.Reflection.MethodInfo)" attrs="145">
+        <size>45</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__1(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__2(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__3(Boolean)" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_1&gt;c__async0">
+      <method name="Boolean &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_2&gt;c__async1">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__2()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Double &lt;&gt;m__3()" attrs="145">
+        <size>17</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_3&gt;c__async2">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="System.Decimal &lt;&gt;m__2()" attrs="145">
+        <size>19</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__3()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="System.Decimal &lt;&gt;m__4()" attrs="145">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_4&gt;c__async3">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="System.String &lt;&gt;m__1()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_5&gt;c__async4">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_6&gt;c__async5">
+      <method name="Int64 &lt;&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_7&gt;c__async6">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_8&gt;c__async7">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Byte &lt;&gt;m__1()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_9&gt;c__async8">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__2()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__3()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__4()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__5()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="S &lt;&gt;m__6()" attrs="145">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_10&gt;c__async9">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ArrayAccessTest_11&gt;c__asyncA">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;AssignTest_1&gt;c__asyncB">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;AssignTest_2&gt;c__asyncC">
+      <method name="System.Nullable`1[System.SByte] &lt;&gt;m__0()" attrs="145">
+        <size>17</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;AssignTest_3&gt;c__asyncD">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;BinaryTest_1&gt;c__asyncE">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__2()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;BinaryTest_3&gt;c__async10">
+      <method name="System.Nullable`1[System.Boolean] &lt;&gt;m__0()" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="System.Nullable`1[System.Boolean] &lt;&gt;m__1()" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="System.Nullable`1[System.Boolean] &lt;&gt;m__2()" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="System.Nullable`1[System.Boolean] &lt;&gt;m__3()" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="System.Nullable`1[System.Boolean] &lt;&gt;m__4()" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="System.Nullable`1[System.Boolean] &lt;&gt;m__5()" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;BinaryTest_4&gt;c__async11">
+      <method name="System.Nullable`1[System.Int16] &lt;&gt;m__0()" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="System.Nullable`1[System.Byte] &lt;&gt;m__1()" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="System.Nullable`1[System.Decimal] &lt;&gt;m__2()" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="System.Nullable`1[System.Decimal] &lt;&gt;m__3()" attrs="145">
+        <size>17</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CallTest_1&gt;c__async14">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__2()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CallTest_2&gt;c__async15">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>17</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CallTest_3&gt;c__async16">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CallTest_4&gt;c__async17">
+      <method name="E &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CastTest_1&gt;c__async19">
+      <method name="System.Decimal &lt;&gt;m__0()" attrs="145">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CoalescingTest_1&gt;c__async1B">
+      <method name="System.String &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="System.String &lt;&gt;m__1()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;CoalescingTest_2&gt;c__async1C">
+      <method name="System.Nullable`1[System.Int16] &lt;&gt;m__0()" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Byte &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ConditionalTest_1&gt;c__async1D">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ConditionalTest_2&gt;c__async1E">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ConditionalTest_3&gt;c__async1F">
+      <method name="Boolean &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;ConditionalTest_4&gt;c__async20">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;DelegateInvoke_4&gt;c__async21">
+      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;FieldTest_1&gt;c__async23">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_1&gt;c__async24">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_2&gt;c__async25">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_3&gt;c__async26">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_4&gt;c__async27">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_5&gt;c__async28">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IndexerTest_6&gt;c__async29">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__2()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IsTest_1&gt;c__async2B">
+      <method name="Tester &lt;&gt;m__0()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;IsTest_2&gt;c__async2C">
+      <method name="System.Nullable`1[System.UInt32] &lt;&gt;m__0()" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;LogicalUserOperator_1&gt;c__async2D">
+      <method name="Base &lt;&gt;m__0()" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Base &lt;&gt;m__1()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;LogicalUserOperator_2&gt;c__async2E">
+      <method name="Base &lt;&gt;m__0()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;LogicalUserOperator_3&gt;c__async2F">
+      <method name="Base &lt;&gt;m__0()" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Base &lt;&gt;m__1()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewTest_1&gt;c__async30">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewTest_2&gt;c__async31">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="System.String &lt;&gt;m__1()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewDelegate_1_0&gt;c__async33">
+      <method name="Void &lt;&gt;m__0()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewInitTest_1&gt;c__async34">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__2()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__3()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__4()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__5()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewInitTest_2&gt;c__async35">
+      <method name="System.String &lt;&gt;m__0()" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="System.String &lt;&gt;m__1()" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__2()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__3()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewArrayInitTest_1&gt;c__async36">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewArrayInitTest_2&gt;c__async37">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewArrayInitTest_3&gt;c__async38">
+      <method name="Byte &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewArrayInitTest_4&gt;c__async39">
+      <method name="UInt16 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="UInt16 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewArrayInitTest_5&gt;c__async3A">
+      <method name="S &lt;&gt;m__0()" attrs="145">
+        <size>25</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewArrayInitTest_6&gt;c__async3B">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;PropertyTest_1&gt;c__async3D">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;PropertyTest_2&gt;c__async3E">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;PropertyTest_3&gt;c__async3F">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__2()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;StringConcatTest_1&gt;c__async40">
+      <method name="System.String &lt;&gt;m__0()" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="System.String &lt;&gt;m__1()" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="System.String &lt;&gt;m__2()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;UnaryTest_1&gt;c__async41">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;UnaryTest_3&gt;c__async43">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;VariableInitializer_1&gt;c__async44">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-14.cs">
+    <type name="C">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestResult()" attrs="134">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>214</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestResult&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>222</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>232</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestResult&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Main&gt;m__0()" attrs="145">
+        <size>33</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestResult&gt;c__async0">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C+&lt;Main&gt;c__async1">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-15.cs">
+    <type name="S">
+      <method name="Int32 get_Value()" attrs="2534">
+        <size>14</size>
+      </method>
+      <method name="Void set_Value(Int32)" attrs="2534">
+        <size>8</size>
+      </method>
+      <method name="Void SetValue(Int32)" attrs="134">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor(Int32, String)" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="System.Threading.Tasks.Task`1[T] NewInitTestGen[T]()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>107</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewInitTestGen&gt;c__async0`1[T]">
+      <method name="Void MoveNext()" attrs="486">
+        <size>308</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="S2">
+      <method name="Void Add(Int32)" attrs="134">
+        <size>36</size>
+      </method>
+      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="486">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] NewInitCol()" attrs="145">
+        <size>33</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewInitCol&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>370</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewInitTestGen&gt;c__async0`1[T]">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;NewInitCol&gt;c__async1">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-16.cs">
+    <type name="Base">
+      <method name="Void Dispose()" attrs="486">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] SwitchTest_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Using_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Foreach_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
+        <size>247</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>187</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;SwitchTest_1&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>336</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Using_1&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>809</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Foreach_1&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>331</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;SwitchTest_1&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Using_1&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Foreach_1&gt;c__async2">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Boolean &lt;Main&gt;m__0(System.Reflection.MethodInfo)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__1(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__2(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__3(Boolean)" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;SwitchTest_1&gt;c__async0">
+      <method name="System.String &lt;&gt;m__0()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Using_1&gt;c__async1">
+      <method name="Base &lt;&gt;m__0()" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Tester &lt;&gt;m__1()" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Base &lt;&gt;m__2()" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Base &lt;&gt;m__3()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Foreach_1&gt;c__async2">
+      <method name="System.Collections.Generic.List`1[System.Int32] &lt;&gt;m__0()" attrs="145">
+        <size>36</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-17.cs">
+    <type name="Tester">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestException_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task TestException_2()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task TestException_3()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestException_4()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestException_5()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestException_6()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
+        <size>223</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>187</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_1&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>207</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_2&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>199</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_3&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>206</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_4&gt;c__async3">
+      <method name="Void MoveNext()" attrs="486">
+        <size>239</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_5&gt;c__async4">
+      <method name="Void MoveNext()" attrs="486">
+        <size>289</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_6&gt;c__async5">
+      <method name="Void MoveNext()" attrs="486">
+        <size>243</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestException_7()" attrs="129">
+        <size>33</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_7&gt;c__async6">
+      <method name="Void MoveNext()" attrs="486">
+        <size>272</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_3&gt;c__async2+&lt;TestException_3&gt;c__async7">
+      <method name="Void MoveNext()" attrs="486">
+        <size>203</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_1&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_2&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_3&gt;c__async2">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_4&gt;c__async3">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_5&gt;c__async4">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_6&gt;c__async5">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_7&gt;c__async6">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_3&gt;c__async2+&lt;TestException_3&gt;c__async7">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Boolean &lt;Main&gt;m__0(System.Reflection.MethodInfo)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__1(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__2(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__3(Boolean)" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_1&gt;c__async0">
+      <method name="Void &lt;&gt;m__0()" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_2&gt;c__async1">
+      <method name="Void &lt;&gt;m__0()" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_3&gt;c__async2">
+      <method name="System.Threading.Tasks.Task &lt;&gt;m__0()" attrs="145">
+        <size>33</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_4&gt;c__async3">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_5&gt;c__async4">
+      <method name="Void &lt;&gt;m__0()" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_6&gt;c__async5">
+      <method name="Void &lt;&gt;m__0()" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_7&gt;c__async6">
+      <method name="Void &lt;&gt;m__0()" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;TestException_3&gt;c__async2+&lt;TestException_3&gt;c__async7">
+      <method name="Void &lt;&gt;m__0()" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-18.cs">
+    <type name="Tester">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Lambda_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Lambda_2()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Lambda_3[T]()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>203</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Lambda_1&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>277</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Lambda_2&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>330</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Lambda_3&gt;c__async2`1[T]">
+      <method name="Void MoveNext()" attrs="486">
+        <size>277</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Lambda_1&gt;c__async0+&lt;Lambda_1&gt;c__AnonStorey3">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Lambda_2&gt;c__async1+&lt;Lambda_2&gt;c__AnonStorey5">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Lambda_2&gt;c__async1+&lt;Lambda_2&gt;c__AnonStorey4">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Lambda_1&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Lambda_2&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Lambda_3&gt;c__async2`1[T]">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Lambda_3&gt;c__async2`1+&lt;Lambda_3&gt;c__AnonStorey6[T]">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-19.cs">
+    <type name="C">
+      <method name="Void Test(System.Threading.ManualResetEvent)" attrs="145">
+        <size>35</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>96</size>
+      </method>
+      <method name="Void CurrentDomain_UnhandledException(System.Object, System.UnhandledExceptionEventArgs)" attrs="145">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>227</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__async0+&lt;Test&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-20.cs">
+    <type name="Base">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] Add_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] AssignCompound_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] Convert_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] Invocation_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="Boolean RunTest(System.Reflection.MethodInfo)" attrs="145">
+        <size>183</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>187</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Add_1&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>492</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;AssignCompound_1&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>1229</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Convert_1&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>344</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Invocation_1&gt;c__async3">
+      <method name="Void MoveNext()" attrs="486">
+        <size>596</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Add_1&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;AssignCompound_1&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Convert_1&gt;c__async2">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Invocation_1&gt;c__async3">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="Boolean &lt;Main&gt;m__0(System.Reflection.MethodInfo)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="System.String &lt;Main&gt;m__1(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__2(System.Reflection.MethodInfo)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__3(Boolean)" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Add_1&gt;c__async0">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;AssignCompound_1&gt;c__async1">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Convert_1&gt;c__async2">
+      <method name="System.Object &lt;&gt;m__0()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;Invocation_1&gt;c__async3">
+      <method name="System.Object &lt;&gt;m__0()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-21.cs">
+    <type name="S">
+      <method name="A GetAwaiter()" attrs="134">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void System.Runtime.CompilerServices.INotifyCompletion.OnCompleted(System.Action)" attrs="481">
+        <size>8</size>
+      </method>
+      <method name="Boolean get_IsCompleted()" attrs="2177">
+        <size>10</size>
+      </method>
+      <method name="Int32 GetResult()" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Test1()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>58</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+&lt;Test1&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>604</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-22.cs">
+    <type name="A">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] async()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task async(Int32)" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+async">
+      <method name="Void .ctor(async)" attrs="6273">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="async">
+      <method name="Void .ctor(async)" attrs="6273">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="await">
+      <method name="Void .ctor(await)" attrs="6273">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="asyncAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="asyncAttribute+async">
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="A+&lt;async&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>63</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void CastTest()" attrs="129">
+        <size>35</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Test(Boolean)" attrs="145">
+        <size>20</size>
+      </method>
+      <method name="Int32 get_Prop()" attrs="2193">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AsyncNS.Classes">
+      <method name="Void M()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AsyncNS.Classes+async">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AwaitNS.Formals">
+      <method name="Void M1()" attrs="145">
+        <size>92</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AwaitNS.Formals+D">
+      <method name="Void Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="AwaitNS.Methods">
+      <method name="Void await()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void M(AwaitNS.Methods)" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AwaitNS.Classes">
+      <method name="Void M()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AwaitNS.Classes+await">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AwaitNS.AnonTypes">
+      <method name="Void M()" attrs="145">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AwaitNS.Initializer">
+      <method name="Void M()" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;&gt;__AnonType0`1[&lt;await&gt;__T]">
+      <method name="&lt;await&gt;__T get_await()" attrs="2182">
+        <size>7</size>
+      </method>
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>39</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>63</size>
+      </method>
+      <method name="System.String ToString()" attrs="198">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor(&lt;await&gt;__T)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void Iasync.async()" attrs="481">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="A+&lt;async&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>62</size>
+      </method>
+    </type>
+    <type name="A+&lt;CastTest&gt;c__async3">
+      <method name="Void MoveNext()" attrs="486">
+        <size>285</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="System.Threading.Tasks.Task M()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D+&lt;M&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>61</size>
+      </method>
+    </type>
+    <type name="asyncAttribute+async">
+      <method name="async Invoke(async)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(async, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="async EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="AwaitNS.Formals+D">
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="A+&lt;async&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="A+&lt;async&gt;c__async2">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="A+&lt;CastTest&gt;c__async3">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="D+&lt;M&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="AwaitNS.MemberAccess">
+      <method name="Void M()" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AwaitNS.TypeChecks">
+      <method name="Void M(System.Object)" attrs="145">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AwaitNS.Formals">
+      <method name="Void &lt;M1&gt;m__0(Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;M1&gt;m__1(Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void &lt;M1&gt;m__2(Int32)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="A+&lt;Iasync_async&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>61</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-23.cs">
+    <type name="MyContext">
+      <method name="Void OperationStarted()" attrs="198">
+        <size>22</size>
+      </method>
+      <method name="Void OperationCompleted()" attrs="198">
+        <size>22</size>
+      </method>
+      <method name="Void Post(System.Threading.SendOrPostCallback, System.Object)" attrs="198">
+        <size>36</size>
+      </method>
+      <method name="Void Send(System.Threading.SendOrPostCallback, System.Object)" attrs="198">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="TestPostContext">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Test()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>170</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestPostContext+&lt;Test&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>197</size>
+      </method>
+    </type>
+    <type name="MyContext">
+      <method name="Void .ctor(ManualResetEvent)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="TestPostContext+&lt;Test&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>21</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-24.cs">
+    <type name="Struct">
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] AsyncMethod()" attrs="134">
+        <size>46</size>
+      </method>
+      <method name="Void .ctor(Object)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>80</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Struct+&lt;AsyncMethod&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>275</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-25.cs">
+    <type name="Program">
+      <method name="Void CompilationTestOnly()" attrs="145">
+        <size>66</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;CompilationTestOnly&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;&gt;m__0()" attrs="131">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 &lt;CompilationTestOnly&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-26.cs">
+    <type name="ConsoleApplication1.Program">
+      <method name="System.Threading.Tasks.Task`1[TResult] Run[TResult](System.Func`1[System.Threading.Tasks.Task`1[TResult]])" attrs="150">
+        <size>27</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[TResult] GetTaskResult[TResult](System.Threading.Tasks.Task`1[System.Threading.Tasks.Task`1[TResult]])" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>95</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ConsoleApplication1.Program+&lt;GetTaskResult&gt;c__async0`1[TResult]">
+      <method name="Void MoveNext()" attrs="486">
+        <size>169</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="ConsoleApplication1.Program">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Main&gt;m__0()" attrs="145">
+        <size>47</size>
+      </method>
+      <method name="Int32 &lt;Main&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-27.cs">
+    <type name="MainClass">
+      <method name="System.Threading.Tasks.Task AsyncTest()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;AsyncTest&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>196</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-28.cs">
+    <type name="C">
+      <method name="System.Threading.Tasks.Task Test()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>282</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-29.cs">
+    <type name="C">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Test()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>331</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-30.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>214</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="System.String System.Collections.Generic.IEnumerator&lt;string&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>138</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test2&gt;c__Iterator1">
+      <method name="System.String System.Collections.Generic.IEnumerator&lt;string&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>137</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey3">
+      <method name="System.Threading.Tasks.Task`1[System.String] &lt;&gt;m__0()" attrs="131">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey3+&lt;Test&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>183</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test2&gt;c__Iterator1+&lt;Test2&gt;c__AnonStorey5">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test2&gt;c__Iterator1+&lt;Test2&gt;c__AnonStorey5+&lt;Test2&gt;c__async4">
+      <method name="Void MoveNext()" attrs="486">
+        <size>183</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Collections.Generic.IEnumerable`1[System.String] Test(System.String)" attrs="129">
+        <size>30</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerable`1[System.String] Test2()" attrs="129">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.String] System.Collections.Generic.IEnumerable&lt;string&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test2&gt;c__Iterator1">
+      <method name="System.Collections.Generic.IEnumerator`1[System.String] System.Collections.Generic.IEnumerable&lt;string&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test2&gt;c__Iterator1+&lt;Test2&gt;c__AnonStorey5">
+      <method name="System.Threading.Tasks.Task`1[System.String] &lt;&gt;m__0()" attrs="131">
+        <size>41</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test2&gt;c__Iterator1">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0+&lt;Test&gt;c__AnonStorey3+&lt;Test&gt;c__async2">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test2&gt;c__Iterator1+&lt;Test2&gt;c__AnonStorey5+&lt;Test2&gt;c__async4">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-31.cs">
+    <type name="C">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] M(Int32)" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] M2(Int32, Int32)" attrs="129">
+        <size>49</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;M&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>354</size>
+      </method>
+    </type>
+    <type name="C+&lt;M2&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>469</size>
+      </method>
+    </type>
+    <type name="C+&lt;M&gt;c__async0+&lt;M&gt;c__AnonStorey3">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;M&gt;c__async0+&lt;M&gt;c__AnonStorey2">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1()" attrs="131">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;M2&gt;c__async1+&lt;M2&gt;c__AnonStorey4">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="C+&lt;M&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;M2&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-32.cs">
+    <type name="Program">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestCanceled()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task TestCanceled_2()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestException()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>274</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;TestCanceled&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>160</size>
+      </method>
+    </type>
+    <type name="Program+&lt;TestCanceled_2&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>159</size>
+      </method>
+    </type>
+    <type name="Program+&lt;TestException&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>160</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__AnonStorey3">
+      <method name="Void &lt;&gt;m__0(System.Threading.Tasks.Task`1[System.Int32])" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void &lt;&gt;m__1(System.Threading.Tasks.Task)" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void &lt;&gt;m__2(System.Threading.Tasks.Task`1[System.Int32])" attrs="131">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;TestCanceled&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Program+&lt;TestCanceled_2&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Program+&lt;TestException&gt;c__async2">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-33.cs">
+    <type name="A">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Foo(Int32)" attrs="454">
+        <size>15</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] get_Prop()" attrs="2502">
+        <size>14</size>
+      </method>
+      <method name="Void set_Prop(System.Threading.Tasks.Task`1[System.Int32])" attrs="2502">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] get_Prop()" attrs="2246">
+        <size>7</size>
+      </method>
+      <method name="Void set_Prop(System.Threading.Tasks.Task`1[System.Int32])" attrs="2246">
+        <size>7</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Foo(Int32)" attrs="198">
+        <size>49</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Foo2(Int32)" attrs="134">
+        <size>49</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Foo&gt;__BaseCallProxy0(Int32)" attrs="129">
+        <size>15</size>
+      </method>
+      <method name="Void &lt;set_Prop&gt;__BaseCallProxy1(System.Threading.Tasks.Task`1[System.Int32])" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;get_Prop&gt;__BaseCallProxy2()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>76</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+&lt;Foo&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>177</size>
+      </method>
+    </type>
+    <type name="B+&lt;Foo2&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>191</size>
+      </method>
+    </type>
+    <type name="B+&lt;Foo&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="B+&lt;Foo2&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-34.cs">
+    <type name="C">
+      <method name="System.Threading.Tasks.Task Test(Boolean)" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task Test2(Boolean)" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>66</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>186</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test2&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>89</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test2&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-35.cs">
+    <type name="N.M.C">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] AsyncMethod()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>409</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.M.C+&lt;AsyncMethod&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>165</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="N.M.C">
+      <method name="System.Threading.Tasks.Task NestedAsyncAnonymousMethod()" attrs="150">
+        <size>33</size>
+      </method>
+    </type>
+    <type name="N.M.C+&lt;NestedAsyncAnonymousMethod&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>194</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="N.M.C+&lt;NestedAsyncAnonymousMethod&gt;c__async1+&lt;NestedAsyncAnonymousMethod&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>159</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="N.M.C+&lt;Main&gt;c__async3">
+      <method name="Void MoveNext()" attrs="486">
+        <size>162</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="N.M.C">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Main&gt;m__0()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__1(System.Reflection.MethodInfo)" attrs="145">
+        <size>24</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__2(System.Type)" attrs="145">
+        <size>24</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__3(System.Reflection.MethodInfo)" attrs="145">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="N.M.C+&lt;NestedAsyncAnonymousMethod&gt;c__async1">
+      <method name="Void &lt;&gt;m__0()" attrs="145">
+        <size>27</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-36.cs">
+    <type name="X">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] ExecuteInternalAsync()" attrs="131">
+        <size>15</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Object] ExecuteReaderAsync()" attrs="134">
+        <size>41</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;ExecuteReaderAsync&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>176</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-37.cs">
+    <type name="C">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Test()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>272</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-38.cs">
+    <type name="C">
+      <method name="Void Test()" attrs="129">
+        <size>22</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] GetResultsAsync(System.Object)" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Test&gt;m__0()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>172</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-39.cs">
+    <type name="CompilerBug">
+      <method name="Void Main()" attrs="150">
+        <size>24</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.String] Foo()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CompilerBug+&lt;Foo&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>220</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-40.cs">
+    <type name="Program">
+      <method name="Void F(System.Action`1[Program+C])" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+C">
+      <method name="Void M()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>196</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void &lt;Main&gt;m__0(C)" attrs="145">
+        <size>35</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Main&gt;c__async1">
+      <method name="Void &lt;&gt;m__0()" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-41.cs">
+    <type name="AmbiguousGeneric">
+      <method name="Void NestedVoidTestSuccess()" attrs="134">
+        <size>35</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] ReturnOne()" attrs="145">
+        <size>43</size>
+      </method>
+      <method name="System.Threading.Tasks.Task Run2(System.Func`1[System.Threading.Tasks.Task])" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="System.Threading.Tasks.Task Run2[T](System.Func`1[T])" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AmbiguousGeneric+&lt;NestedVoidTestSuccess&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>191</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="AmbiguousGeneric+&lt;NestedVoidTestSuccess&gt;c__async0+&lt;NestedVoidTestSuccess&gt;c__async5">
+      <method name="Void MoveNext()" attrs="486">
+        <size>162</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="AmbiguousGeneric">
+      <method name="Int32 &lt;ReturnOne&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="AmbiguousGeneric+&lt;NestedVoidTestSuccess&gt;c__async0">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;&gt;m__0()" attrs="145">
+        <size>33</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-42.cs">
+    <type name="A">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] OpenAsync()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="A get_Connection()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Foo()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="T Test[T](System.Func`1[T])" attrs="129">
+        <size>15</size>
+      </method>
+      <method name="System.Threading.Tasks.Task &lt;Foo&gt;m__0()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>189</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__async3">
+      <method name="Void MoveNext()" attrs="486">
+        <size>168</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__async3">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-43.cs">
+    <type name="A">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] GetValue(Int32)" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="A get_Instance()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Foo()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="T Test[T](Int32, System.Func`1[T])" attrs="129">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>242</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__async0+&lt;Foo&gt;c__AnonStorey4">
+      <method name="System.Threading.Tasks.Task &lt;&gt;m__0()" attrs="131">
+        <size>54</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__async0+&lt;Foo&gt;c__AnonStorey4+&lt;Foo&gt;c__async3">
+      <method name="Void MoveNext()" attrs="486">
+        <size>184</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__async0+&lt;Foo&gt;c__AnonStorey4+&lt;Foo&gt;c__async3">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-44.cs">
+    <type name="A">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] GetValue(Int32)" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="A get_Instance()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Foo()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Int32 Bar()" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="T Test[T](Int32, System.Func`1[T])" attrs="129">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>240</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__async0+&lt;Foo&gt;c__AnonStorey4">
+      <method name="System.Threading.Tasks.Task &lt;&gt;m__0()" attrs="131">
+        <size>54</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__async0+&lt;Foo&gt;c__AnonStorey4+&lt;Foo&gt;c__async3">
+      <method name="Void MoveNext()" attrs="486">
+        <size>213</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;Foo&gt;c__async0+&lt;Foo&gt;c__AnonStorey4+&lt;Foo&gt;c__async3">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-45.cs">
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>44</size>
+      </method>
+      <method name="System.Threading.Tasks.Task Connect(System.String[])" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+&lt;Connect&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>272</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-46.cs">
+    <type name="X">
+      <method name="Void Foo()" attrs="129">
+        <size>27</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Foo&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>158</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-47.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void Test()" attrs="129">
+        <size>32</size>
+      </method>
+      <method name="Void &lt;Test&gt;m__0(System.Object, System.EventArgs)" attrs="129">
+        <size>35</size>
+      </method>
+      <method name="Void &lt;Test&gt;m__1()" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="View">
+      <method name="Void add_Click(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Click(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void Run()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Builder">
+      <method name="Void SetButton(System.Action)" attrs="134">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>90</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-48.cs">
+    <type name="App">
+      <method name="System.Threading.Tasks.Task Test()" attrs="134">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task &lt;Test&gt;m__0()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="App+&lt;Test&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>173</size>
+      </method>
+    </type>
+    <type name="App+&lt;Test&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>76</size>
+      </method>
+    </type>
+    <type name="App+&lt;Test&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="App+&lt;Test&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-49.cs">
+    <type name="TodoItem">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MobileServiceTable2`1[T]">
+      <method name="System.Threading.Tasks.Task`1[System.Collections.Generic.List`1[T]] ToListAsync()" attrs="134">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tests">
+      <method name="Int32 foo(System.Action)" attrs="129">
+        <size>16</size>
+      </method>
+      <method name="Void OnTap(TodoItem)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="System.Threading.Tasks.Task RefreshAsync()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="Int32 &lt;RefreshAsync&gt;m__0(TodoItem)" attrs="129">
+        <size>46</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tests+&lt;RefreshAsync&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>213</size>
+      </method>
+    </type>
+    <type name="Tests+&lt;RefreshAsync&gt;c__AnonStorey1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="Tests+&lt;RefreshAsync&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-50.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="145">
+        <size>19</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] AnimateAsync(System.Action)" attrs="129">
+        <size>21</size>
+      </method>
+      <method name="Void SecondLevel(System.Action)" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="System.Threading.Tasks.Task Run()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void &lt;Run&gt;m__0()" attrs="129">
+        <size>20</size>
+      </method>
+      <method name="Void &lt;Run&gt;m__1()" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Run&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>185</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-51.cs">
+    <type name="Program">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="System.Threading.Tasks.Task LoadPlayers()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="Program+Model">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+Player">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;LoadPlayers&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>117</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="System.Action`1[Program+Player] &lt;LoadPlayers&gt;m__0(System.Action`1[Program+Player])" attrs="129">
+        <size>20</size>
+      </method>
+      <method name="Void &lt;LoadPlayers&gt;m__1(Player)" attrs="129">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Program+Model">
+      <method name="Player get_SelectedPlayer()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_SelectedPlayer(Player)" attrs="2182">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Program+&lt;LoadPlayers&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+      <method name="Void &lt;&gt;m__0(Player)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-52.cs">
+    <type name="ActualValueDelegate`1[T]">
+      <method name="T Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Boolean Matches[T](ActualValueDelegate`1[T])" attrs="145">
+        <size>30</size>
+      </method>
+      <method name="System.Threading.Tasks.Task Throw()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Throw&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>157</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__async3">
+      <method name="Void MoveNext()" attrs="486">
+        <size>160</size>
+      </method>
+    </type>
+    <type name="ActualValueDelegate`1[T]">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="T EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;Throw&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__async3">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Threading.Tasks.Task &lt;Main&gt;m__0()" attrs="145">
+        <size>33</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-53.cs">
+    <type name="Y">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void add_E(System.Action`2[System.Int32,System.String])" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_E(System.Action`2[System.Int32,System.String])" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void Foo()" attrs="129">
+        <size>54</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Foo&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0(Int32, System.String)" attrs="131">
+        <size>35</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Foo&gt;c__AnonStorey1+&lt;Foo&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>73</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-54.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>79</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestMethod(System.Exception)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task Foo(System.Exception)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestMethod&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>226</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Foo&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>159</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestMethod&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Foo&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-55.cs">
+    <type name="MyContext">
+      <method name="Void Post(System.Threading.SendOrPostCallback, System.Object)" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void Send(System.Threading.SendOrPostCallback, System.Object)" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>232</size>
+      </method>
+      <method name="System.Threading.Tasks.Task ExecuteAsync()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;ExecuteAsync&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>278</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-56.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>70</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestMethod()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestMethod&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>169</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-57.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="System.Threading.Tasks.Task TestAsync()" attrs="132">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="X+&lt;TestAsync&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>172</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-58.cs">
+    <type name="A">
+      <method name="Int32 Get()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] GetAsync()" attrs="134">
+        <size>41</size>
+      </method>
+      <method name="Void Main()" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B+&lt;GetAsync&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>74</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-59.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>119</size>
+      </method>
+      <method name="Void TaskScheduler_UnobservedTaskException(System.Object, System.Threading.Tasks.UnobservedTaskExceptionEventArgs)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="System.Threading.Tasks.Task Test()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task ThrowAsync()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>190</size>
+      </method>
+    </type>
+    <type name="X+&lt;ThrowAsync&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>163</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="X+&lt;ThrowAsync&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-60.cs">
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>19</size>
+      </method>
+      <method name="System.Threading.Tasks.Task AlignTwoItems()" attrs="134">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task MoveItemBy(System.Object, Int32, Int32)" attrs="129">
+        <size>15</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[B] AddItemAt(Int32, Int32)" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;AlignTwoItems&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>469</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="X+&lt;AddItemAt&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>68</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-61.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="System.Threading.Tasks.Task Foo()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void Invoke(System.Action)" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="System.Threading.Tasks.Task &lt;Foo&gt;m__0()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Foo&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>173</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="X+&lt;Foo&gt;c__async6">
+      <method name="Void MoveNext()" attrs="486">
+        <size>142</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="X+&lt;Foo&gt;c__async6+&lt;Foo&gt;c__AnonStorey7">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-62.cs">
+    <type name="Model">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tests`1[X]">
+      <method name="System.Threading.Tasks.Task DeleteClient(Model)" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="System.Threading.Tasks.Task Delete[T](System.Collections.Generic.IEnumerable`1[T])" attrs="134">
+        <size>49</size>
+      </method>
+      <method name="System.Threading.Tasks.Task &lt;Delete`1&gt;m__0[T](T)" attrs="129">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="O">
+      <method name="Void Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tests`1+&lt;Delete&gt;c__async0`1[X,T]">
+      <method name="Void MoveNext()" attrs="486">
+        <size>184</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-63.cs">
+    <type name="C">
+      <method name="System.Threading.Tasks.Task TestSingleAwait(Boolean)" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task TestDoubleAwait(Boolean)" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task Call()" attrs="145">
+        <size>48</size>
+      </method>
+      <method name="Void HH()" attrs="129">
+        <size>12</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>152</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestSingleAwait&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>274</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestDoubleAwait&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>419</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Boolean &lt;Call&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-64.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="T Invoke[T](System.Func`1[System.Threading.Tasks.Task`1[T]])" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>167</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] &lt;Main&gt;m__0()" attrs="145">
+        <size>33</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-65.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>161</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;TestRethrow&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>363</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Threading.Tasks.Task TestRethrow(System.Exception)" attrs="150">
+        <size>41</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-66.cs">
+    <type name="TestFinally">
+      <method name="System.Threading.Tasks.Task Test(Boolean)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>95</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestFinally+&lt;Test&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>277</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-67.cs">
+    <type name="Test">
+      <method name="System.Threading.Tasks.Task`1[System.Int32[]] Run()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>53</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Run&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>239</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-68.cs">
+    <type name="X">
+      <method name="System.Threading.Tasks.Task ReturnsTaskAsync(System.Threading.Tasks.Task)" attrs="134">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Threading.Tasks.Task] ReturnsTaskOfTaskAsync()" attrs="134">
+        <size>41</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;ReturnsTaskAsync&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>157</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="X+&lt;ReturnsTaskOfTaskAsync&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>217</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-69.cs">
+    <type name="Test">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] YieldValue(Int32)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestFinallyWithReturn(Int32)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task TestFinallyWithReturnNoValue(Int32)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestFinallyWithGoto(Int32)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestFinallyWithGotoAndReturn(Int32)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>390</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;YieldValue&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>172</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestFinallyWithReturn&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>377</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestFinallyWithReturnNoValue&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>347</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestFinallyWithGoto&gt;c__async3">
+      <method name="Void MoveNext()" attrs="486">
+        <size>370</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestFinallyWithGotoAndReturn&gt;c__async4">
+      <method name="Void MoveNext()" attrs="486">
+        <size>407</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-70.cs">
+    <type name="Test">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] YieldValue(Int32)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestNestedReturn(Int32)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestNestedGoto(Int32)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>109</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;YieldValue&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>172</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestNestedReturn&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>845</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestNestedGoto&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>848</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-71.cs">
+    <type name="UnsafeContext">
+      <method name="Int32 Main()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestUnsafe(Int32)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="UnsafeContext+&lt;TestUnsafe&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>178</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-72.cs">
+    <type name="Test">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] YieldValue(Int32)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] BreakTest()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] ContinueTest()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>64</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;YieldValue&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>172</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Test+&lt;BreakTest&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>898</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Test+&lt;ContinueTest&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>898</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-73.cs">
+    <type name="X">
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Foo()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Throws()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>32</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Foo&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>214</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="X+&lt;Throws&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>63</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-74.cs">
+    <type name="AwaitGotoBug">
+      <method name="System.Threading.Tasks.Task Test()" attrs="134">
+        <size>33</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="AwaitGotoBug+&lt;Test&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>337</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-75.cs">
+    <type name="CorrectEncodingOfNestedTypes">
+      <method name="System.Threading.Tasks.Task`1[T] GetAsync[T](System.String)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>91</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CorrectEncodingOfNestedTypes+&lt;GetAsync&gt;c__async0`1[T]">
+      <method name="Void MoveNext()" attrs="486">
+        <size>218</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="CorrectEncodingOfNestedTypes+&lt;GetAsync&gt;c__async0`1+&lt;GetAsync&gt;c__AnonStorey5[T]">
+      <method name="System.Threading.Tasks.Task`1[T] &lt;&gt;m__0()" attrs="131">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CorrectEncodingOfNestedTypes+&lt;GetAsync&gt;c__async0`1+&lt;GetAsync&gt;c__AnonStorey5+&lt;GetAsync&gt;c__async4[T]">
+      <method name="Void MoveNext()" attrs="486">
+        <size>190</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-76.cs">
+    <type name="N.C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.X">
+      <method name="Void N.I&lt;N.C&gt;.Foo(N.C)" attrs="481">
+        <size>27</size>
+      </method>
+      <method name="Void PrintType(Mono.Cecil.TypeDefinition, Int32)" attrs="145">
+        <size>138</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="N.X+&lt;N_I&lt;N_C&gt;_Foo&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>157</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="N.X">
+      <method name="Int32 Main()" attrs="150">
+        <size>153</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-77.cs">
+    <type name="Class1">
+      <method name="Void InvokeAction(System.Action)" attrs="132">
+        <size>8</size>
+      </method>
+      <method name="Void Bar()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="System.Threading.Tasks.Task Test()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>17</size>
+      </method>
+      <method name="System.Threading.Tasks.Task &lt;Test&gt;m__0()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Class1+CIInterface1">
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] Foo(System.Action`1[System.String])" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Class1+ServiceLocator">
+      <method name="TService GetImplementor[TService]()" attrs="150">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="Class1+&lt;Test&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>88</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Class1+&lt;Test&gt;c__async6">
+      <method name="Void MoveNext()" attrs="486">
+        <size>264</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Class1+&lt;Test&gt;c__async6+&lt;Test&gt;c__AnonStorey7">
+      <method name="Void &lt;&gt;m__0(System.String)" attrs="131">
+        <size>8</size>
+      </method>
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-78.cs">
+    <type name="ExceptionHelper">
+      <method name="System.Threading.Tasks.Task ConditionalCatchExceptThreadAbortAsync(System.Func`1[System.Threading.Tasks.Task], System.Action`1[System.Exception])" attrs="150">
+        <size>41</size>
+      </method>
+    </type>
+    <type name="ATask">
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] OnDoWorkAsync()" attrs="134">
+        <size>41</size>
+      </method>
+      <method name="System.Threading.Tasks.Task &lt;OnDoWorkAsync&gt;m__0()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="Tests">
+      <method name="Void Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ExceptionHelper+&lt;ConditionalCatchExceptThreadAbortAsync&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>73</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="ATask+&lt;OnDoWorkAsync&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>182</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="ATask+&lt;OnDoWorkAsync&gt;c__async4">
+      <method name="Void MoveNext()" attrs="486">
+        <size>248</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="ATask+&lt;OnDoWorkAsync&gt;c__async4+&lt;OnDoWorkAsync&gt;c__AnonStorey7">
+      <method name="System.Threading.Tasks.Task &lt;&gt;m__0()" attrs="131">
+        <size>46</size>
+      </method>
+      <method name="Void &lt;&gt;m__1(System.Exception)" attrs="131">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ATask+&lt;OnDoWorkAsync&gt;c__async4+&lt;OnDoWorkAsync&gt;c__AnonStorey7+&lt;OnDoWorkAsync&gt;c__async6">
+      <method name="Void MoveNext()" attrs="486">
+        <size>82</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-async-79.cs">
+    <type name="Test">
+      <method name="System.Threading.Tasks.Task ExecuteCore()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>81</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;ExecuteCore&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>380</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+      <method name="System.Threading.Tasks.Task &lt;&gt;m__0()" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-cls-00.cs">
+    <type name="CLSCLass_6">
+      <method name="Void add_Disposed(Delegate)" attrs="2182">
+        <size>20</size>
+      </method>
+      <method name="Void remove_Disposed(Delegate)" attrs="2182">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+    <type name="Delegate">
+      <method name="CLSDelegate Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="CLSDelegate">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSClass_5">
+      <method name="UInt32 Test()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSClass_4">
+      <method name="UInt32 Test()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSClass_3">
+      <method name="UInt32 Test_3()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSClass_2">
+      <method name="SByte get_XX()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSClass_1">
+      <method name="UInt32 Valid()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSClass">
+      <method name="UInt64 Valid()" attrs="129">
+        <size>11</size>
+      </method>
+      <method name="Byte get_XX()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="UInt32 FooInternal()" attrs="131">
+        <size>10</size>
+      </method>
+      <method name="UInt64 Foo()" attrs="129">
+        <size>11</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSClass+C1">
+      <method name="Int64 Foo2()" attrs="132">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSClass+C1+C11">
+      <method name="UInt64 Foo3()" attrs="132">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSClass+CLSClass_2">
+      <method name="SByte get_XX()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Delegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="CLSDelegate EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-cls-01.cs">
+    <type name="CLSClass">
+      <method name="Byte get_XX()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Big">
+      <method name="Big op_Implicit(UInt32)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C1">
+      <method name="Void method(UInt32)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-cls-02.cs">
+    <type name="CLSClass">
+      <method name="Void set_X_0(UInt64)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void set_Item(UInt64, UInt64)" attrs="2180">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(UInt64)" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(UInt32)" attrs="6275">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="InnerTypeClasss">
+      <method name="Struct Method()" attrs="134">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-cls-03.cs">
+    <type name="CLSClass">
+      <method name="I1 Foo()" attrs="133">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-cls-05.cs">
+    <type name="X1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X3">
+      <method name="Void bb(Boolean)" attrs="131">
+        <size>2</size>
+      </method>
+      <method name="Void BB()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X4">
+      <method name="Void method(Int32)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void method(Boolean)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Boolean method()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="BaseClass">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSClass">
+      <method name="CLSClass op_Implicit(Boolean)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="CLSClass op_Implicit(Int32)" attrs="2198">
+        <size>15</size>
+      </method>
+      <method name="Void Method()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Int32 Method(Boolean)" attrs="131">
+        <size>10</size>
+      </method>
+      <method name="Void methoD()" attrs="131">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="oBject">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.C1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B.c1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="c1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSClass_2">
+      <method name="Void Method()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void method()" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="System.sByte">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="System.Web.HttpBrowserCapabilities">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-cls-06.cs">
+    <type name="MyDelegate">
+      <method name="UInt32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="CLSClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSClass+MyDelegate">
+      <method name="UInt32 Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="CLSClass_2">
+      <method name="Void .ctor(Int32[,,])" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Int32[,])" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="X1">
+      <method name="Void M2(Int32)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X2">
+      <method name="Void M2(Int32 ByRef)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="UInt32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="CLSClass+MyDelegate">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="UInt32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="CLSClass_2">
+      <method name="Void Test(Int32[,], Int32)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Test(Int32[,,], Boolean)" attrs="134">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-cls-07.cs">
+    <type name="aa.I1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-cls-10.cs">
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-cls-11.cs">
+    <type name="CLSClass">
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSCLass_2">
+      <method name="Void Test()" attrs="1478">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSClass_3">
+      <method name="Void Test()" attrs="1475">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSClass">
+      <method name="Void Test(System.IComparable)" attrs="1478">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-cls-12.cs">
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-cls-14.cs">
+    <type name="CLSClass">
+      <method name="CLSClass op_Implicit(Byte)" attrs="2198">
+        <size>14</size>
+      </method>
+      <method name="Void Error(Boolean)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-cls-15.cs">
+    <type name="CLSAttribute_1">
+      <method name="Void .ctor(Int32[])" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="CLSAttribute_2">
+      <method name="Void .ctor(Int32)" attrs="6273">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="CLSAttribute_3">
+      <method name="Void .ctor(Int32[])" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="CLSAttribute_4">
+      <method name="Void .ctor(Int32[])" attrs="6273">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="ClassMain">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-cls-16.cs">
+    <type name="CLSAttribute">
+      <method name="Void .ctor(Boolean[])" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="ClassMain">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-cls-17.cs">
+    <type name="Foo">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-cls-18.cs">
+    <type name="Base">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CLSClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Base">
+      <method name="Void Test(Int32[])" attrs="454">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="CLSClass">
+      <method name="Void Test(Int32[])" attrs="198">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-cls-19.cs">
+    <type name="A">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+PartialClass">
+      <method name="Void Method1(Int32)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Method2(UInt32)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void Method3(UInt32)" attrs="134">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-com-01.cs">
+    <type name="CorMetaDataDispenserExClass">
+      <method name="Void .ctor()" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void XXX()" attrs="150">
+        <size>13</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-com-02.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(ITopic)" attrs="6278">
+        <size>32</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-com-03.cs">
+    <type name="X">
+      <method name="Void Test_PropertyOptionalParameters(C)" attrs="129">
+        <size>46</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>23</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-01.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-02.cs">
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="C2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="C3">
+      <method name="Void .ctor()" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="C4">
+      <method name="Void .ctor()" attrs="6278">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6273">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-03.cs">
+    <type name="C">
+      <method name="Void .cctor()" attrs="6289">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="C2">
+      <method name="Void .cctor()" attrs="6289">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-04.cs">
+    <type name="C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="C2">
+      <method name="Void .ctor()" attrs="6273">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-05.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>6</size>
+      </method>
+      <method name="Void Hidden()" attrs="129">
+        <size>12</size>
+      </method>
+      <method name="Void HiddenRecurse()" attrs="129">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-06.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void TryCatch_1()" attrs="129">
+        <size>17</size>
+      </method>
+      <method name="Void TryCatch_2()" attrs="129">
+        <size>19</size>
+      </method>
+      <method name="Void TryCatch_3()" attrs="129">
+        <size>26</size>
+      </method>
+      <method name="Void TryFinally_1()" attrs="129">
+        <size>12</size>
+      </method>
+      <method name="Void TryFinally_2()" attrs="129">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-07.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Int32 Foo2()" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo3()" attrs="129">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-08.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>1</size>
+      </method>
+      <method name="Void Foo()" attrs="129">
+        <size>1</size>
+      </method>
+      <method name="Int32 Foo2()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Int32 Foo3()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-09.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void add_e(System.Action)" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void remove_e(System.Action)" attrs="2177">
+        <size>42</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-10.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Int32 get_Prop()" attrs="2193">
+        <size>10</size>
+      </method>
+      <method name="Void set_Prop(Int32)" attrs="2193">
+        <size>2</size>
+      </method>
+      <method name="Int32 get_PropAuto()" attrs="2193">
+        <size>13</size>
+      </method>
+      <method name="Void set_PropAuto(Int32)" attrs="2193">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-11.cs">
+    <type name="S">
+      <method name="Void Dispose()" attrs="486">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void If(System.String)" attrs="129">
+        <size>27</size>
+      </method>
+      <method name="Void If_2(System.String)" attrs="129">
+        <size>50</size>
+      </method>
+      <method name="Void If_3(Int32)" attrs="129">
+        <size>18</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Using_1()" attrs="129">
+        <size>31</size>
+      </method>
+      <method name="Void Using_2()" attrs="129">
+        <size>58</size>
+      </method>
+      <method name="Void Using_3()" attrs="129">
+        <size>53</size>
+      </method>
+      <method name="Void Lock()" attrs="129">
+        <size>31</size>
+      </method>
+      <method name="Void Lock_2()" attrs="129">
+        <size>30</size>
+      </method>
+      <method name="Void Switch_1(Int32)" attrs="129">
+        <size>61</size>
+      </method>
+      <method name="Void Switch_3(System.String)" attrs="129">
+        <size>211</size>
+      </method>
+      <method name="Void Switch_4(System.String)" attrs="129">
+        <size>60</size>
+      </method>
+      <method name="Void Checked()" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Void DoWhile(Int32)" attrs="129">
+        <size>24</size>
+      </method>
+      <method name="Void DoWhile_2()" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Void While_2()" attrs="129">
+        <size>19</size>
+      </method>
+      <method name="Void For_1()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="Void For_2()" attrs="129">
+        <size>15</size>
+      </method>
+      <method name="Void ForEach_2(System.Collections.Generic.List`1[System.Object])" attrs="129">
+        <size>56</size>
+      </method>
+      <method name="Void ForEach_3(S)" attrs="129">
+        <size>61</size>
+      </method>
+      <method name="Void Using_4()" attrs="129">
+        <size>38</size>
+      </method>
+      <method name="Void Switch_2(System.Nullable`1[System.Int32])" attrs="129">
+        <size>57</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="486">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void ForEach(Int32[])" attrs="129">
+        <size>31</size>
+      </method>
+      <method name="Void ForEach_4(Int32[,])" attrs="129">
+        <size>78</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-12.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-13.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Iter_1&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>72</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Iter_2&gt;c__Iterator1">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>26</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Iter_1()" attrs="129">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="C+&lt;Iter_1&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="C+&lt;Iter_2&gt;c__Iterator1">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Collections.IEnumerable Iter_2()" attrs="129">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="C+&lt;Iter_1&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="C+&lt;Iter_2&gt;c__Iterator1">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-14.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Test_1()" attrs="129">
+        <size>32</size>
+      </method>
+      <method name="Void Test_2()" attrs="129">
+        <size>32</size>
+      </method>
+      <method name="Void Test_3()" attrs="129">
+        <size>32</size>
+      </method>
+      <method name="Void Test_Capturing_1(Int32)" attrs="129">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_Capturing_1&gt;c__AnonStorey0">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void &lt;Test_1&gt;m__0()" attrs="145">
+        <size>6</size>
+      </method>
+      <method name="Void &lt;Test_2&gt;m__1()" attrs="145">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;Test_3&gt;m__2()" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-15.cs">
+    <type name="Foo">
+      <method name="Void Finalize()" attrs="196">
+        <size>29</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-16.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Test_1()" attrs="129">
+        <size>34</size>
+      </method>
+      <method name="Void Test_2()" attrs="129">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-17.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Test_1()" attrs="129">
+        <size>76</size>
+      </method>
+      <method name="Void Test_2()" attrs="129">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-18.cs">
+    <type name="C">
+      <method name="Void add_OutEvent(System.Func`1[System.Int32])" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void remove_OutEvent(System.Func`1[System.Int32])" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void M[U,V](U ByRef, V ByRef)" attrs="134">
+        <size>17</size>
+      </method>
+      <method name="Void Test_1()" attrs="129">
+        <size>169</size>
+      </method>
+      <method name="Void Test_2()" attrs="129">
+        <size>91</size>
+      </method>
+      <method name="Void Test_3()" attrs="129">
+        <size>130</size>
+      </method>
+      <method name="Void Test_4()" attrs="129">
+        <size>485</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_3&gt;c__DynamicSite2+Container0">
+      <method name="Void Invoke(System.Runtime.CompilerServices.CallSite, System.Object, System.Object ByRef, System.Object ByRef)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 &lt;Test_4&gt;m__0()" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-19.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Test_1()" attrs="145">
+        <size>27</size>
+      </method>
+      <method name="System.Threading.Tasks.Task RunAsync()" attrs="145">
+        <size>48</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Test_2()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] RunAsync_2()" attrs="145">
+        <size>48</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Boolean] Test_3()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_1&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>156</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_2&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>163</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_3&gt;c__async2">
+      <method name="Void MoveNext()" attrs="486">
+        <size>1229</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_1&gt;c__async0">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_2&gt;c__async1">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_3&gt;c__async2">
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void &lt;RunAsync&gt;m__0()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 &lt;RunAsync_2&gt;m__1()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test_3&gt;c__async2">
+      <method name="Int32 &lt;&gt;m__0()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-20.cs">
+    <type name="S`1[T]">
+      <method name="Void .ctor(T)" attrs="6278">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-21.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Void &lt;&gt;__Finally0()" attrs="129">
+        <size>13</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>150</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>57</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] Test()" attrs="129">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-22.cs">
+    <type name="A">
+      <method name="Int32 Foo()" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Foo()" attrs="198">
+        <size>7</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Int32 &lt;Foo&gt;__BaseCallProxy0()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;GetIter&gt;c__Iterator0">
+      <method name="Int32 System.Collections.Generic.IEnumerator&lt;int&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>19</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>82</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] GetIter()" attrs="134">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="C+&lt;GetIter&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Int32] System.Collections.Generic.IEnumerable&lt;int&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-23.cs">
+    <type name="Program">
+      <method name="Void Test_1()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void Test_2()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void Test_3()" attrs="129">
+        <size>13</size>
+      </method>
+      <method name="Void Test_4()" attrs="129">
+        <size>44</size>
+      </method>
+      <method name="Int32 BindCore()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Program Prog()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Program get_Prop()" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Program &lt;Test_4&gt;m__0()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-24.cs">
+    <type name="C">
+      <method name="Void Test_1()" attrs="129">
+        <size>14</size>
+      </method>
+      <method name="Void Test_2()" attrs="129">
+        <size>23</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-25.cs">
+    <type name="TestClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-26.cs">
+    <type name="P">
+      <method name="Void Foo()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-27.cs">
+    <type name="S">
+      <method name="Int32 op_Implicit(S)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 A()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Int32 B(C)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="C Test()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="System.String Foo()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void Test_1()" attrs="129">
+        <size>46</size>
+      </method>
+      <method name="Void Test_2()" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Void Test_3()" attrs="129">
+        <size>32</size>
+      </method>
+      <method name="Void Test_4()" attrs="129">
+        <size>13</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-debug-28.cs">
+    <type name="StatementsAsBlocks">
+      <method name="Void ForEach(System.String[])" attrs="145">
+        <size>64</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-decl-expr-01.cs">
+    <type name="DeclarationExpression">
+      <method name="Int32 Main()" attrs="150">
+        <size>223</size>
+      </method>
+      <method name="Boolean Out(Int32 ByRef)" attrs="145">
+        <size>13</size>
+      </method>
+      <method name="Boolean Out2(Int32 ByRef, System.String)" attrs="145">
+        <size>14</size>
+      </method>
+      <method name="Void Out3[T](T ByRef)" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Void Ref(Int32 ByRef)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-decl-expr-02.cs">
+    <type name="DeclarationExpressions">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void M2()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Int32 Test(Int32)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-dictinit-01.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="145">
+        <size>181</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 get_Item(System.String)" attrs="2182">
+        <size>21</size>
+      </method>
+      <method name="Void set_Item(System.String, Int32)" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-dictinit-02.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="145">
+        <size>182</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="C get_Item(System.String)" attrs="2182">
+        <size>50</size>
+      </method>
+      <method name="Void set_Item(System.String, C)" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-dictinit-03.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="145">
+        <size>135</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>20</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-dictinit-04.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="145">
+        <size>84</size>
+      </method>
+      <method name="Void .ctor(Int32*)" attrs="6273">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-ex-filter-01.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>46</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-ex-filter-02.cs">
+    <type name="X">
+      <method name="Int32 TestGeneral()" attrs="145">
+        <size>77</size>
+      </method>
+      <method name="Int32 TestSpecific()" attrs="145">
+        <size>157</size>
+      </method>
+      <method name="Boolean Foo(System.Action)" attrs="145">
+        <size>16</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>61</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;TestSpecific&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>13</size>
+      </method>
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-ex-filter-03.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>52</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-ex-filter-04.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>253</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] Test(Int32, System.Exception)" attrs="145">
+        <size>49</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestGeneric(Int32)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>281</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="X+&lt;TestGeneric&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>250</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-ex-filter-05.cs">
+    <type name="Test">
+      <method name="Boolean Verify(System.Func`1[System.Boolean])" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.Int32] TestCapturedException(System.Exception)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>64</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestCapturedException&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>491</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestCapturedException&gt;c__async0+&lt;TestCapturedException&gt;c__AnonStorey1">
+      <method name="Boolean &lt;&gt;m__0()" attrs="131">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;TestCapturedException&gt;c__async0+&lt;TestCapturedException&gt;c__AnonStorey2">
+      <method name="Boolean &lt;&gt;m__0()" attrs="131">
+        <size>25</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-ex-filter-06.cs">
+    <type name="C">
+      <method name="Int32 Test[T]()" attrs="145">
+        <size>61</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>49</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-expression-bodied-01.cs">
+    <type name="C">
+      <method name="System.String Test1(System.String, System.String)" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void Test2(Int32)" attrs="129">
+        <size>8</size>
+      </method>
+      <method name="System.Func`1[System.Int32] Test3(Int32)" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.String op_Implicit(C)" attrs="2198">
+        <size>13</size>
+      </method>
+      <method name="System.String get_Prop()" attrs="2180">
+        <size>30</size>
+      </method>
+      <method name="System.Func`1[System.String] get_Prop2()" attrs="2193">
+        <size>37</size>
+      </method>
+      <method name="Int32 get_Item(Int32, Int32)" attrs="2182">
+        <size>11</size>
+      </method>
+      <method name="Int32 Check()" attrs="129">
+        <size>213</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>29</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test3&gt;c__AnonStorey0">
+      <method name="Int32 &lt;&gt;m__0()" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.String &lt;get_Prop2&gt;m__0()" attrs="145">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-externalias-01.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>92</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-externalias-02.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>92</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-externalias-03.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>92</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-externalias-04.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>92</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-externalias-05.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-externalias-06.cs">
+    <type name="MyAssembly01.Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyAssembly01.Namespace1.Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyAssembly02.Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyAssembly02.Namespace1.Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-externalias-07.cs">
+    <type name="NS.MyClass">
+      <method name="Int32 GetInt()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-externalias-08.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>82</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-externalias-09.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-interpolation-01.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>581</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-interpolation-02.cs">
+    <type name="ConversionTest">
+      <method name="Int32 Main()" attrs="145">
+        <size>110</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-interpolation-03.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>36</size>
+      </method>
+      <method name="Void RunTest(System.Action)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Void &lt;Main&gt;m__0()" attrs="145">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-interpolation-04.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>88</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-interpolation-05.cs">
+    <type name="ParserTest">
+      <method name="Void Test1()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void Test2()" attrs="129">
+        <size>12</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-interpolation-06.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>134</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-interpolation-07.cs">
+    <type name="CloningTests">
+      <method name="Void Do(System.Action)" attrs="145">
+        <size>8</size>
+      </method>
+      <method name="Void SetupBAD()" attrs="145">
+        <size>32</size>
+      </method>
+      <method name="Void Main()" attrs="145">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CloningTests+&lt;SetupBAD&gt;c__AnonStorey0">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>19</size>
+      </method>
+      <method name="Void &lt;&gt;m__1()" attrs="131">
+        <size>38</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-interpolation-08.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>73</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-01.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>199</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>149</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt2&gt;c__Iterator1">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>149</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerator GetIt()" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="System.Collections.IEnumerable GetIt2()" attrs="145">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt2&gt;c__Iterator1">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-02.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>103</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetRange&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>196</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerator GetRange()" attrs="145">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-03.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>275</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>159</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetMulti&gt;c__Iterator1">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>246</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetMulti&gt;c__Iterator1">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerable GetIt(Int32[])" attrs="145">
+        <size>30</size>
+      </method>
+      <method name="System.Collections.IEnumerable GetMulti(Int32[,])" attrs="145">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetMulti&gt;c__Iterator1">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-04.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>104</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetRange&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>130</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerable GetRange(Int32, Int32)" attrs="145">
+        <size>37</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetRange&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-05.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>119</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="List">
+      <method name="Void Add(Int32)" attrs="134">
+        <size>27</size>
+      </method>
+      <method name="MyEnumerator GetEnumerator()" attrs="134">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>27</size>
+      </method>
+    </type>
+    <type name="List+MyEnumerator">
+      <method name="System.Object get_Current()" attrs="2534">
+        <size>32</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>39</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor(List)" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>191</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerable GetIt()" attrs="145">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="List">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>20</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-06.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>449</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S+&lt;Get&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>198</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S+&lt;GetS&gt;c__Iterator1">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>159</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S+&lt;Get&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+    </type>
+    <type name="S+&lt;GetS&gt;c__Iterator1">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="X+&lt;Get&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>154</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetS&gt;c__Iterator1">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>159</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="System.Collections.IEnumerable Get(Int32)" attrs="134">
+        <size>42</size>
+      </method>
+      <method name="System.Collections.IEnumerable GetS(Int32)" attrs="150">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerable Get(Int32)" attrs="129">
+        <size>30</size>
+      </method>
+      <method name="System.Collections.IEnumerable GetS(Int32)" attrs="145">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="S+&lt;Get&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="S+&lt;GetS&gt;c__Iterator1">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="X+&lt;Get&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetS&gt;c__Iterator1">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-07.cs">
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>464</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Foo&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>264</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>107</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void &lt;&gt;__Finally0()" attrs="129">
+        <size>13</size>
+      </method>
+      <method name="Void &lt;&gt;__Finally1()" attrs="129">
+        <size>13</size>
+      </method>
+      <method name="Void &lt;&gt;__Finally2()" attrs="129">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.IEnumerable Foo(Int32)" attrs="134">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="Test+&lt;Foo&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-08.cs">
+    <type name="Foo">
+      <method name="Void Dispose()" attrs="486">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>210</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>377</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>93</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;__Finally0()" attrs="129">
+        <size>23</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerable Test(Int32, Int32)" attrs="150">
+        <size>37</size>
+      </method>
+    </type>
+    <type name="X+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-09.cs">
+    <type name="Tester">
+      <method name="Void .ctor()" attrs="6278">
+        <size>154</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>282</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester+&lt;GetEnumerator&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>693</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>103</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Tester">
+      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="134">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-10.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>211</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>149</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;&gt;c__Iterator1">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>168</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerator get_GetIt()" attrs="2193">
+        <size>15</size>
+      </method>
+      <method name="Void set_GetIt(System.Collections.IEnumerator)" attrs="2193">
+        <size>2</size>
+      </method>
+      <method name="System.Collections.IEnumerable get_Item(Int32)" attrs="2177">
+        <size>30</size>
+      </method>
+      <method name="Void set_Item(Int32, System.Collections.IEnumerable)" attrs="2177">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="X+&lt;&gt;c__Iterator1">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-11.cs">
+    <type name="X">
+      <method name="Void add_Hook(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_Hook(System.EventHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void M(System.Object, System.EventArgs)" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>57</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Pipeline&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>131</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerator Pipeline()" attrs="134">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-12.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;a&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>190</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>57</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void &lt;&gt;__Finally0()" attrs="129">
+        <size>20</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerable a()" attrs="129">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="X+&lt;a&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-13.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="Test+Yp">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;syntax_error&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>27</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.IEnumerable syntax_error(System.Object, System.Object)" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Test+Yp">
+      <method name="System.Collections.IEnumerable fail()" attrs="134">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Test+&lt;syntax_error&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-14.cs">
+    <type name="XX">
+      <method name="Void Metodo(System.Exception)" attrs="145">
+        <size>42</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>69</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="XX+&lt;X&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>98</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="XX">
+      <method name="System.Collections.IEnumerable X()" attrs="145">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="XX+&lt;X&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-15.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void Run()" attrs="129">
+        <size>180</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>142</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="134">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-16.cs">
+    <type name="Foo">
+      <method name="Int32 Main()" attrs="150">
+        <size>78</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo+&lt;foo&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>38</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="Foo">
+      <method name="System.Collections.IEnumerable foo()" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Foo+&lt;foo&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-17.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="150">
+        <size>62</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>168</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="System.Collections.IEnumerable get_Empty()" attrs="2198">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Program+&lt;&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-18.cs">
+    <type name="test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="reflect">
+      <method name="Void Main(System.String[])" attrs="150">
+        <size>127</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="test+&lt;testen&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>214</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="test">
+      <method name="System.Collections.IEnumerable testen(Int32)" attrs="134">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="test+&lt;testen&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-19.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>84</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="134">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-20.cs">
+    <type name="CustomDict">
+      <method name="Void .ctor()" attrs="6278">
+        <size>70</size>
+      </method>
+    </type>
+    <type name="Tests">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CustomDict+&lt;GetEnumerator&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>93</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CustomDict">
+      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="134">
+        <size>22</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-21.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>138</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+A">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>242</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0+&lt;GetIt&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>40</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerable GetIt(Int32[])" attrs="145">
+        <size>30</size>
+      </method>
+    </type>
+    <type name="X+A">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-22.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;GetEnumerator&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>207</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>83</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="System.Collections.IEnumerator GetEnumerator()" attrs="134">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-23.cs">
+    <type name="X">
+      <method name="Int32 Delay()" attrs="145">
+        <size>28</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>141</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt2&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>117</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;Main&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0(System.Object)" attrs="131">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt2&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Collections.IEnumerable GetIt2()" attrs="145">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="X+&lt;GetIt2&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-25.cs">
+    <type name="D">
+      <method name="Void Dispose()" attrs="486">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="UploadAction">
+      <method name="Void RunOnThread(System.Action)" attrs="150">
+        <size>8</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="UploadAction+&lt;TagsError&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>60</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="UploadAction+&lt;TagsError&gt;c__Iterator0+&lt;TagsError&gt;c__AnonStorey1">
+      <method name="Void &lt;&gt;m__0()" attrs="131">
+        <size>44</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="UploadAction">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Object] TagsError()" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="UploadAction+&lt;TagsError&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-iter-26.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>101</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>52</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.Collections.IEnumerable Test(Boolean, Int32)" attrs="150">
+        <size>37</size>
+      </method>
+    </type>
+    <type name="C+&lt;Test&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-named-01.cs">
+    <type name="A">
+      <method name="Void set_Item(Int32, Int32)" attrs="2502">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor(Object)" attrs="6276">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void set_Item(Int32, Int32)" attrs="2246">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="XAttribute">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="M">
+      <method name="Void Foo(Int32)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>61</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-named-02.cs">
+    <type name="A">
+      <method name="Void set_Item(Int32, Int32)" attrs="2182">
+        <size>30</size>
+      </method>
+      <method name="Int32 get_Item(Int32)" attrs="2182">
+        <size>36</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyPoint">
+      <method name="Void .ctor(Int32, Int32)" attrs="6278">
+        <size>16</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.String Bar(Int32, System.String, Char)" attrs="145">
+        <size>34</size>
+      </method>
+      <method name="Int32 Test(Int32, Int32)" attrs="145">
+        <size>38</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>334</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Decimal Foo(System.Decimal, System.Decimal)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-named-03.cs">
+    <type name="C">
+      <method name="Int32 TestInt(Int32)" attrs="145">
+        <size>11</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>31</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C+IntDelegate">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-named-04.cs">
+    <type name="Program">
+      <method name="Void Foo2(Int32, Int32 ByRef)" attrs="145">
+        <size>41</size>
+      </method>
+      <method name="Void Test[T](T[])" attrs="145">
+        <size>23</size>
+      </method>
+      <method name="Void Foo[T](T, T ByRef)" attrs="145">
+        <size>9</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>311</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-named-05.cs">
+    <type name="A">
+      <method name="Int32 Foo(Int32)" attrs="454">
+        <size>10</size>
+      </method>
+      <method name="Int32 get_Item(Int32, System.String)" attrs="2502">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Int32 Foo(Int32)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 get_Item(Int32, System.String)" attrs="2182">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>131</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-named-06.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>38</size>
+      </method>
+      <method name="Int32 Foo(Int32, Int64, System.String)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo(Int32, Int64, System.String[])" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo(Int64, Int32)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-named-07.cs">
+    <type name="C">
+      <method name="Int32 Foo(System.Object, Boolean, Boolean, Boolean, System.Object)" attrs="145">
+        <size>97</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-named-08.cs">
+    <type name="C">
+      <method name="Int32 Foo(System.String, Int32)" attrs="145">
+        <size>18</size>
+      </method>
+      <method name="Int32 Foo(System.String, Int32, Boolean, Boolean)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Foo(Double, Boolean, Boolean, Boolean)" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-named-09.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>11</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-nameof-01.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-nameof-02.cs">
+    <type name="A`1[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A`1+B[T]">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int64 get_Prop()" attrs="2177">
+        <size>14</size>
+      </method>
+      <method name="Void set_Prop(Int64)" attrs="2177">
+        <size>8</size>
+      </method>
+      <method name="Void add_ev(System.Action)" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Void remove_ev(System.Action)" attrs="2177">
+        <size>42</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>83</size>
+      </method>
+      <method name="Void GenMethod[T,U,V]()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 SimpleName[T](T)" attrs="129">
+        <size>17</size>
+      </method>
+      <method name="Int32 MemberAccess()" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Int32 QualifiedName()" attrs="129">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-nameof-03.cs">
+    <type name="T2">
+      <method name="Int32 nameof(System.String)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>37</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-nameof-04.cs">
+    <type name="Ambiguous">
+      <method name="Int32 Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-null-operator-01.cs">
+    <type name="S">
+      <method name="Int32 get_Prop()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Prop(Int32)" attrs="2182">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="CI">
+      <method name="Int32 Method()" attrs="486">
+        <size>11</size>
+      </method>
+      <method name="Int32 get_Prop()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Prop(Int32)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="System.String get_Prop()" attrs="2193">
+        <size>22</size>
+      </method>
+      <method name="Int32 TestArray()" attrs="145">
+        <size>477</size>
+      </method>
+      <method name="Int32 TestReferenceType()" attrs="145">
+        <size>229</size>
+      </method>
+      <method name="Int32 TestGeneric[T](T)" attrs="145">
+        <size>118</size>
+      </method>
+      <method name="Int32 TestNullable()" attrs="145">
+        <size>386</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>120</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-null-operator-02.cs">
+    <type name="CI">
+      <method name="Int32 get_Prop()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Prop(Int32)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="System.Nullable`1[System.Byte] get_PropNullable()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_PropNullable(System.Nullable`1[System.Byte])" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="System.Object get_PropReference()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_PropReference(System.Object)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void add_ev1(System.Action)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_ev1(System.Action)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 TestProperty()" attrs="145">
+        <size>359</size>
+      </method>
+      <method name="Int32 TestField()" attrs="145">
+        <size>351</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>64</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-null-operator-03.cs">
+    <type name="C">
+      <method name="Int32 Test1()" attrs="129">
+        <size>82</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>62</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-null-operator-04.cs">
+    <type name="D">
+      <method name="Void Foo()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>26</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-null-operator-05.cs">
+    <type name="CI">
+      <method name="Void set_Item(System.String, System.String)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="System.String get_Item(System.String)" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Item(Int32, System.Nullable`1[System.Int32])" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="System.Nullable`1[System.Int32] get_Item(Int32)" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 TestArrayAccess()" attrs="145">
+        <size>263</size>
+      </method>
+      <method name="Int32 TestIndexerAccess()" attrs="145">
+        <size>188</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>64</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-null-operator-06.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="145">
+        <size>459</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-null-operator-07.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="145">
+        <size>93</size>
+      </method>
+      <method name="System.String EM(System.Object)" attrs="145">
+        <size>26</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-null-operator-08.cs">
+    <type name="Program">
+      <method name="Void M[T](T)" attrs="145">
+        <size>88</size>
+      </method>
+      <method name="Void M2[T](T[])" attrs="145">
+        <size>64</size>
+      </method>
+      <method name="Void M2_2[T](T[])" attrs="145">
+        <size>114</size>
+      </method>
+      <method name="Void M3[T](System.Nullable`1[T])" attrs="145">
+        <size>106</size>
+      </method>
+      <method name="Void Main()" attrs="145">
+        <size>165</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="Void Foo(Boolean)" attrs="486">
+        <size>38</size>
+      </method>
+    </type>
+    <type name="Program">
+      <method name="Void TestAddress_1[T](T)" attrs="145">
+        <size>56</size>
+      </method>
+      <method name="Void TestAddress_2[T](T[])" attrs="145">
+        <size>82</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-null-operator-09.cs">
+    <type name="D">
+      <method name="Int32 Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>88</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>42</size>
+      </method>
+      <method name="Int32 &lt;d&gt;m__0(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-null-operator-10.cs">
+    <type name="Event">
+      <method name="System.String get_Name()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Name(System.String)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="System.String get_Foo()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Foo(System.String)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>50</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-null-operator-11.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>60</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="B get_b()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_b(B)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="C get_c()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_c(C)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="D get_d()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_d(D)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-null-operator-12.cs">
+    <type name="Test">
+      <method name="Boolean Working()" attrs="134">
+        <size>61</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-null-operator-13.cs">
+    <type name="Crash">
+      <method name="X GetFoo()" attrs="145">
+        <size>10</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>49</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Y ToLower()" attrs="134">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="SS">
+      <method name="Int32 ToUpper(Y)" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-null-operator-14.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="145">
+        <size>79</size>
+      </method>
+      <method name="Void Test_1[T](T)" attrs="145">
+        <size>22</size>
+      </method>
+      <method name="Void Test_2[T](T)" attrs="145">
+        <size>21</size>
+      </method>
+      <method name="Void Test_3[T](T[])" attrs="145">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Ext">
+      <method name="Void Call[T](T)" attrs="150">
+        <size>17</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-null-operator-15.cs">
+    <type name="MM">
+      <method name="System.Collections.Generic.IEnumerable`1[System.Int32] get_myEnumerable()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_myEnumerable(System.Collections.Generic.IEnumerable`1[System.Int32])" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>65</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-01.cs">
+    <type name="Foo.Hello">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar.Hello">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="X.Test">
+      <method name="Int32 FooWorld()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Int32 BarWorld()" attrs="150">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Int32 Main()" attrs="150">
+        <size>47</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-02.cs">
+    <type name="Test1.Base">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test1.Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test2.Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="ReflectedType">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-03.cs">
+    <type name="Test">
+      <method name="Int32 TestFoo()" attrs="134">
+        <size>21</size>
+      </method>
+      <method name="Int32 TestIFoo(IFoo)" attrs="134">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="Test+Foo">
+      <method name="Int32 Test.IFoo.Hello(Test)" attrs="481">
+        <size>10</size>
+      </method>
+      <method name="Int32 Hello(Test)" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>60</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-04.cs">
+    <type name="B.Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B.Test">
+      <method name="Void A.IFoo.Hello(A.IFoo)" attrs="481">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-05.cs">
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A2">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-06.cs">
+    <type name="Foo">
+      <method name="Void Finalize()" attrs="196">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-07.cs">
+    <type name="Test">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestAttribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test2Attribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>80</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-08.cs">
+    <type name="Foo">
+      <method name="System.String get_Id()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="PartialAbstractCompilationError">
+      <method name="Int32 Main()" attrs="150">
+        <size>67</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-09.cs">
+    <type name="Foo">
+      <method name="System.String get_Id()" attrs="2182">
+        <size>15</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Bar">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="PartialAbstractCompilationError">
+      <method name="Void Main()" attrs="150">
+        <size>22</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-10.cs">
+    <type name="Test2.Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test3.Foo">
+      <method name="Void .cctor()" attrs="6289">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>96</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-11.cs">
+    <type name="StaticClass">
+      <method name="System.String Name()" attrs="150">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="MainClass">
+      <method name="Boolean IsStatic(System.Type)" attrs="145">
+        <size>93</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>74</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-12.cs">
+    <type name="Test1.Foo">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>112</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test1.Foo+&lt;E&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>76</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>15</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="Test1.Foo">
+      <method name="System.Collections.IEnumerable E()" attrs="147">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Test1.Foo+&lt;E&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-13.cs">
+    <type name="Test.Test">
+      <method name="Boolean Equals(System.Object)" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Int32 GetHashCode()" attrs="198">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-14.cs">
+    <type name="T">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="partial">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A">
+      <method name="Void partial(partial)" attrs="134">
+        <size>4</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-15.cs">
+    <type name="Foo.X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo.X+&lt;Attempts2&gt;c__Iterator0">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>32</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo.X+&lt;&gt;c__Iterator1">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>32</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo.X+&lt;&gt;c__Iterator2">
+      <method name="System.Object System.Collections.Generic.IEnumerator&lt;object&gt;.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="System.Object System.Collections.IEnumerator.get_Current()" attrs="2529">
+        <size>14</size>
+      </method>
+      <method name="Boolean MoveNext()" attrs="486">
+        <size>32</size>
+      </method>
+      <method name="Void Dispose()" attrs="486">
+        <size>1</size>
+      </method>
+      <method name="Void Reset()" attrs="486">
+        <size>6</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Foo.X+&lt;Attempts2&gt;c__Iterator0">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="Foo.X+&lt;&gt;c__Iterator1">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="Foo.X+&lt;&gt;c__Iterator2">
+      <method name="System.Collections.Generic.IEnumerator`1[System.Object] System.Collections.Generic.IEnumerable&lt;object&gt;.GetEnumerator()" attrs="481">
+        <size>26</size>
+      </method>
+    </type>
+    <type name="Foo.X">
+      <method name="System.Collections.IEnumerable get_Attempts()" attrs="2198">
+        <size>23</size>
+      </method>
+      <method name="System.Collections.IEnumerable get_Item(Int32)" attrs="2182">
+        <size>23</size>
+      </method>
+      <method name="System.Collections.IEnumerable Attempts2()" attrs="150">
+        <size>23</size>
+      </method>
+    </type>
+    <type name="Foo.X+&lt;Attempts2&gt;c__Iterator0">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Foo.X+&lt;&gt;c__Iterator1">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="Foo.X+&lt;&gt;c__Iterator2">
+      <method name="System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()" attrs="481">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-16.cs">
+    <type name="A.C">
+      <method name="Void .ctor()" attrs="6278">
+        <size>23</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="B.C2">
+      <method name="Boolean Test()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="System.Object Test_I()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-17.cs">
+    <type name="Test">
+      <method name="Boolean Check(System.String, System.String[])" attrs="150">
+        <size>58</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-18.cs">
+    <type name="N.Foo">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>18</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-19.cs">
+    <type name="Bug.GL">
+      <method name="Void Main()" attrs="150">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Bug.GL+Core">
+      <method name="Boolean A()" attrs="147">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-20.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>56</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-21.cs">
+    <type name="Mono.Sms.Main">
+      <method name="Void Test()" attrs="134">
+        <size>43</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Mono.Sms.Contacts">
+      <method name="Void Test()" attrs="134">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Mono.Sms.Contacts+ContactsHandler">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Mono.Sms.Core.Agenda">
+      <method name="Void AddContact()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Mono.Sms.Contacts">
+      <method name="Void add_ContactsEventHandler(ContactsHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+      <method name="Void remove_ContactsEventHandler(ContactsHandler)" attrs="2182">
+        <size>42</size>
+      </method>
+    </type>
+    <type name="Mono.Sms.Contacts+ContactsHandler">
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Mono.Sms.Main">
+      <method name="Void &lt;Test&gt;m__0()" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-22.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-23.cs">
+    <type name="C">
+      <method name="Void Partial_A()" attrs="129">
+        <size>16</size>
+      </method>
+      <method name="Void Partial_B()" attrs="129">
+        <size>16</size>
+      </method>
+      <method name="Void Partial_S()" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>70</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-24.cs">
+    <type name="N.C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Foo()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-25.cs">
+    <type name="C">
+      <method name="Void Partial(Int32)" attrs="145">
+        <size>15</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-26.cs">
+    <type name="TestAttributesCollecting.A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestAttributesCollecting.X">
+      <method name="Void Foo[T](Int32)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestAttributesCollecting.Y">
+      <method name="Void Foo()" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestAttributesCollecting.Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>151</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-27.cs">
+    <type name="C">
+      <method name="Int32 Main()" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-28.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestCase">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-29.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+    </type>
+    <type name="D">
+      <method name="Void Method(Int32)" attrs="145">
+        <size>2</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-30.cs">
+    <type name="PartialProblems.Classes">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="PartialProblems.Classes+partial">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="PartialProblems.Classes">
+      <method name="Void M1(partial)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="partial M3()" attrs="129">
+        <size>10</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-31.cs">
+    <type name="TestPartialOverride.BaseNamespace.Base">
+      <method name="Void OverrideMe()" attrs="452">
+        <size>17</size>
+      </method>
+      <method name="Void .ctor()" attrs="6276">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestPartialOverride.Outer.Nested.Namespace.Inherits">
+      <method name="Void OverrideMe()" attrs="196">
+        <size>17</size>
+      </method>
+      <method name="Void DoesSomethignElse()" attrs="134">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="TestPartialOverride.Outer.C">
+      <method name="Void Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-32.cs">
+    <type name="A.C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.C+N">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X.C1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X.C1+N1">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-33.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-partial-34.cs">
+    <type name="A">
+      <method name="Void PartialMethodWith_NoAttr_Decl(System.String)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void PartialMethodWith_AAttr_Decl(System.String)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void PartialMethodWith_BAttr_Decl(System.String)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void PartialMethodWith_AAttr_Defn(System.String)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void PartialMethodWith_BAttr_Defn(System.String)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void PartialMethodWith_ABAttr(System.String)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void PartialMethodWith_BAAttr(System.String)" attrs="129">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="CustomAttributes.AttributeA">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="CustomAttributes.AttributeB">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-pattern-01.cs">
+    <type name="TypePattern">
+      <method name="Int32 Main()" attrs="150">
+        <size>227</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-pattern-02.cs">
+    <type name="ConstantPattern">
+      <method name="Int32 Main()" attrs="150">
+        <size>609</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;PatternMatchingHelper&gt;">
+      <method name="Boolean NumberMatcher(System.Object, System.Object, Boolean)" attrs="150">
+        <size>69</size>
+      </method>
+    </type>
+    <type name="ConstantPattern">
+      <method name="Boolean Generic[T](T)" attrs="145">
+        <size>28</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-pattern-03.cs">
+    <type name="WildcardPattern">
+      <method name="Int32 Main()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-pattern-04.cs">
+    <type name="RecursivePattern">
+      <method name="Int32 Main()" attrs="145">
+        <size>750</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C1">
+      <method name="Boolean op_Is(C1, Int32 ByRef)" attrs="2198">
+        <size>13</size>
+      </method>
+      <method name="Boolean op_Is(C1, C1 ByRef, C1 ByRef)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="Boolean op_Is(S, System.Nullable`1[System.Int32] ByRef, System.Decimal ByRef)" attrs="2198">
+        <size>34</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-pattern-05.cs">
+    <type name="RecursiveNamedPattern">
+      <method name="Int32 Main()" attrs="150">
+        <size>204</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Boolean op_Is(C, Int64 ByRef, System.String ByRef)" attrs="2198">
+        <size>22</size>
+      </method>
+      <method name="Boolean op_Is(C)" attrs="2198">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-pattern-06.cs">
+    <type name="RecursiveNamedPattern">
+      <method name="Int32 Main()" attrs="150">
+        <size>159</size>
+      </method>
+      <method name="Int32 Switch_1(System.Object)" attrs="145">
+        <size>53</size>
+      </method>
+      <method name="Int32 Switch_2(C1)" attrs="145">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="C1">
+      <method name="Boolean op_Is(C1, Int32 ByRef)" attrs="2198">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="&lt;PatternMatchingHelper&gt;">
+      <method name="Boolean NumberMatcher(System.Object, System.Object, Boolean)" attrs="150">
+        <size>69</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-pattern-07.cs">
+    <type name="PropertyPattern">
+      <method name="Int32 Main()" attrs="145">
+        <size>684</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Object get_Field()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Field(System.Object)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Y">
+      <method name="Char get_Prop()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Prop(Char)" attrs="2182">
+        <size>8</size>
+      </method>
+      <method name="Boolean op_Is(Y, Int32 ByRef)" attrs="2198">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Object get_Value()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Value(System.Object)" attrs="2182">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="&lt;PatternMatchingHelper&gt;">
+      <method name="Boolean NumberMatcher(System.Object, System.Object, Boolean)" attrs="150">
+        <size>69</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="System.Nullable`1[System.Int64] get_NullableValue()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_NullableValue(System.Nullable`1[System.Int64])" attrs="2182">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-pragma-unrecognized.cs">
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-primary-ctor-01.cs">
+    <type name="Simple">
+      <method name="Int32 get_Property()" attrs="2177">
+        <size>14</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>89</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="S">
+      <method name="Void .ctor(Decimal)" attrs="6278">
+        <size>8</size>
+      </method>
+      <method name="System.Decimal get_Property()" attrs="2179">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-primary-ctor-02.cs">
+    <type name="Part">
+      <method name="Int32 get_Property()" attrs="2177">
+        <size>14</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>41</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>20</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-primary-ctor-03.cs">
+    <type name="D">
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="Base">
+      <method name="System.String get_Prop()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor(Object)" attrs="6276">
+        <size>19</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>49</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-primary-ctor-04.cs">
+    <type name="Derived">
+      <method name="Void .ctor(Int32, Byte&amp;, Int32&amp;)" attrs="6278">
+        <size>24</size>
+      </method>
+    </type>
+    <type name="Base">
+      <method name="Void .ctor(Int32&amp;)" attrs="6275">
+        <size>11</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>74</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-primary-ctor-05.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 get_P()" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>63</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>21</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-primary-ctor-06.cs">
+    <type name="ID">
+      <method name="Void System.IDisposable.Dispose()" attrs="481">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-primary-ctor-07.cs">
+    <type name="S">
+      <method name="Void .ctor(Char)" attrs="6278">
+        <size>9</size>
+      </method>
+      <method name="Void .cctor()" attrs="6289">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>180</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="S2">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+    <type name="S3">
+      <method name="Void .ctor(Int32, String)" attrs="6278">
+        <size>9</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>8</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-primary-ctor-08.cs">
+    <type name="S">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>62</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-primary-ctor-09.cs">
+    <type name="A">
+      <method name="Void .ctor(Func`2)" attrs="6278">
+        <size>14</size>
+      </method>
+    </type>
+    <type name="PC">
+      <method name="Void .ctor(Int32)" attrs="6278">
+        <size>50</size>
+      </method>
+    </type>
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>70</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="PC+&lt;f1&gt;c__AnonStorey0">
+      <method name="Int32 &lt;&gt;m__0(Int32)" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Int32 &lt;&gt;m__1(Int32)" attrs="131">
+        <size>14</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-static-using-01.cs">
+    <type name="A.B.X">
+      <method name="Int32 Test()" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="C.M">
+      <method name="Int32 Main()" attrs="150">
+        <size>28</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-static-using-02.cs">
+    <type name="A.B.X">
+      <method name="Int32 Test(System.Object)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="A.C.X">
+      <method name="Int32 Test(Int32)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="C.M">
+      <method name="Int32 Main()" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-static-using-03.cs">
+    <type name="A.B.X">
+      <method name="Int32 Test(Int32)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="A.C.X">
+      <method name="Int32 Test(Int32)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="C.M">
+      <method name="Int32 Main()" attrs="150">
+        <size>29</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-static-using-04.cs">
+    <type name="A.B.X">
+      <method name="Int32 Test(System.Object)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="A.C.X">
+      <method name="Int32 Test(Int32)" attrs="145">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="C.M">
+      <method name="Int32 Main()" attrs="150">
+        <size>34</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-static-using-05.cs">
+    <type name="Test">
+      <method name="Void Main()" attrs="145">
+        <size>56</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+      <method name="Boolean &lt;Main&gt;m__0(Int32)" attrs="145">
+        <size>14</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-static-using-06.cs">
+    <type name="A.B.X">
+      <method name="Int32 Test(System.Object)" attrs="150">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="A.C.X">
+      <method name="Int32 Test[T](T)" attrs="150">
+        <size>47</size>
+      </method>
+    </type>
+    <type name="C.M">
+      <method name="Int32 Main()" attrs="150">
+        <size>33</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-static-using-07.cs">
+    <type name="S">
+      <method name="Int32 Foo()" attrs="147">
+        <size>10</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>72</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-static-using-08.cs">
+    <type name="A">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A+N">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Void Main()" attrs="150">
+        <size>4</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-static-using-09.cs">
+    <type name="Program">
+      <method name="Void Main()" attrs="145">
+        <size>9</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-static-using-10.cs">
+    <type name="A.T">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="A.T+N">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="B.Program">
+      <method name="Void Main()" attrs="145">
+        <size>19</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-var-01.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>70</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-var-02.cs">
+    <type name="Class1">
+      <method name="Boolean Method()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>164</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+Class2">
+      <method name="Boolean Method()" attrs="134">
+        <size>10</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-var-03.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>201</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-var-04.cs">
+    <type name="Test.A">
+      <method name="Int32 Main()" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-var-05.cs">
+    <type name="MyClass">
+      <method name="Void Dispose()" attrs="486">
+        <size>13</size>
+      </method>
+      <method name="Void .ctor(String)" attrs="6278">
+        <size>15</size>
+      </method>
+    </type>
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>72</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-var-06.cs">
+    <type name="Test">
+      <method name="Int32 Main()" attrs="150">
+        <size>68</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-var-07.cs">
+    <type name="Test">
+      <method name="Void var()" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>51</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="var">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-var-08.cs">
+    <type name="X">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor(Int32, Int32)" attrs="6278">
+        <size>11</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-var-09.cs">
+    <type name="A">
+      <method name="Int32 Main()" attrs="150">
+        <size>20</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-xml-042.cs">
+    <type name="TestNamespace.TestClass">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void FunctionWithParameter(Int32 ByRef, Int32 ByRef)" attrs="134">
+        <size>8</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+</tests>
\ No newline at end of file
index 08761871fd6c2ce4e517009daf8b127357828edf..c65d3037c8e64b6960bf38b312bc2e801aaac43b 100644 (file)
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
+using System;
+using System.Linq;
 using System.IO;
 using System.Reflection;
+using System.Xml;
 using System.Xml.XPath;
 
 using Mono.Cecil;
@@ -44,10 +47,37 @@ namespace Mono.Linker.Steps {
                protected override void Process ()
                {
                        foreach (string name in Assembly.GetExecutingAssembly ().GetManifestResourceNames ()) {
-                               if (!IsReferenced (GetAssemblyName (name)))
+                               if (Path.GetExtension (name) != ".xml" || !IsReferenced (GetAssemblyName (name)))
                                        continue;
 
-                               Context.Pipeline.AddStepAfter (typeof (TypeMapStep), GetResolveStep (name));
+                               try {
+                                       if (Context.LogInternalExceptions)
+                                               Console.WriteLine ("Processing resource linker descriptor: {0}", name);
+                                       Context.Pipeline.AddStepAfter (typeof (TypeMapStep), GetResolveStep (name));
+                               } catch (XmlException ex) {
+                                       /* This could happen if some broken XML file is included. */
+                                       if (Context.LogInternalExceptions)
+                                               Console.WriteLine ("Error processing {0}: {1}", name, ex);
+                               }
+                       }
+
+                       foreach (var rsc in Context.GetAssemblies ()
+                                                               .SelectMany (asm => asm.Modules)
+                                                               .SelectMany (mod => mod.Resources)
+                                                               .Where (res => res.ResourceType == ResourceType.Embedded)
+                                                               .Where (res => Path.GetExtension (res.Name) == ".xml")
+                                                               .Where (res => IsReferenced (GetAssemblyName (res.Name)))
+                                                               .Cast<EmbeddedResource> ()) {
+                               try {
+                                       if (Context.LogInternalExceptions)
+                                               Console.WriteLine ("Processing embedded resource linker descriptor: {0}", rsc.Name);
+
+                                       Context.Pipeline.AddStepAfter (typeof (TypeMapStep), GetExternalResolveStep (rsc));
+                               } catch (XmlException ex) {
+                                       /* This could happen if some broken XML file is embedded. */
+                                       if (Context.LogInternalExceptions)
+                                               Console.WriteLine ("Error processing {0}: {1}", rsc.Name, ex);
+                               }
                        }
                }
 
@@ -69,11 +99,23 @@ namespace Mono.Linker.Steps {
                        return false;
                }
 
+               static ResolveFromXmlStep GetExternalResolveStep (EmbeddedResource resource)
+               {
+                       return new ResolveFromXmlStep (GetExternalDescriptor (resource));
+               }
+
                static ResolveFromXmlStep GetResolveStep (string descriptor)
                {
                        return new ResolveFromXmlStep (GetDescriptor (descriptor));
                }
 
+               static XPathDocument GetExternalDescriptor (EmbeddedResource resource)
+               {
+                       using (var sr = new StreamReader (resource.GetResourceStream ())) {
+                               return new XPathDocument (new StringReader (sr.ReadToEnd ()));
+                       }
+               }
+
                static XPathDocument GetDescriptor (string descriptor)
                {
                        using (StreamReader sr = new StreamReader (GetResource (descriptor))) {
index 20e63171588d6f96cfe645fb72fafa11864437b4..c9b66af44ab1d6d16bed8dae33b598a1c3be3da0 100644 (file)
@@ -514,6 +514,8 @@ namespace Mono.Linker.Steps {
                                MarkMethodsIf (type.Methods, IsStaticConstructorPredicate);
                        }
 
+                       DoAdditionalTypeProcessing (type);
+
                        Annotations.Mark (type);
 
                        ApplyPreserveInfo (type);
@@ -521,6 +523,11 @@ namespace Mono.Linker.Steps {
                        return type;
                }
 
+               // Allow subclassers to mark additional things when marking a method
+               protected virtual void DoAdditionalTypeProcessing (TypeDefinition method)
+               {
+               }
+
                void MarkTypeSpecialCustomAttributes (TypeDefinition type)
                {
                        if (!type.HasCustomAttributes)
@@ -570,17 +577,21 @@ namespace Mono.Linker.Steps {
                        return argument != null;
                }
 
-               protected void MarkNamedMethod (TypeDefinition type, string method_name)
+               protected int MarkNamedMethod (TypeDefinition type, string method_name)
                {
                        if (!type.HasMethods)
-                               return;
+                               return 0;
 
+                       int count = 0;
                        foreach (MethodDefinition method in type.Methods) {
                                if (method.Name != method_name)
                                        continue;
 
                                MarkMethod (method);
+                               count++;
                        }
+
+                       return count;
                }
 
                void MarkSoapHeader (MethodDefinition method, CustomAttribute attribute)
@@ -957,11 +968,18 @@ namespace Mono.Linker.Steps {
                        if (ShouldParseMethodBody (method))
                                MarkMethodBody (method.Body);
 
+                       DoAdditionalMethodProcessing (method);
+
                        Annotations.Mark (method);
 
                        ApplyPreserveMethods (method);
                }
 
+               // Allow subclassers to mark additional things when marking a method
+               protected virtual void DoAdditionalMethodProcessing (MethodDefinition method)
+               {
+               }
+
                void MarkBaseMethods (MethodDefinition method)
                {
                        IList base_methods = Annotations.GetBaseMethods (method);
index 70dafad7fd2e8190862b326744e7b4f5d5ef28fd..a0fe3934cac49a2b6e37f020a10d14b5033355bb 100644 (file)
@@ -57,6 +57,12 @@ namespace Mono.Linker.Steps {
                {
                        XPathNavigator nav = _document.CreateNavigator ();
                        nav.MoveToFirstChild ();
+
+                       // This step can be created with XML files that aren't necessarily
+                       // linker descriptor files. So bail if we don't have a <linker> element.
+                       if (nav.LocalName != "linker")
+                               return;
+
                        ProcessAssemblies (Context, nav.SelectChildren ("assembly", _ns));
                }
 
index 808d09255fee42e448b185b621eed23aa55de6cc..386028acad43daafa4dd5d81fc945d5c0114bea5 100644 (file)
@@ -42,8 +42,17 @@ namespace Mono.Linker.Steps {
                protected override void Process ()
                {
                        assemblies = Context.GetAssemblies ();
-                       foreach (var assembly in assemblies)
+                       foreach (var assembly in assemblies) {
                                SweepAssembly (assembly);
+                               if (Annotations.GetAction (assembly) == AssemblyAction.Copy) {
+                                       // Copy assemblies can still contain Type references with
+                                       // type forwarders from Delete assemblies
+                                       // thus try to resolve all the type references and see
+                                       // if some changed the scope. if yes change the action to Save
+                                       if (ResolveAllTypeReferences (assembly))
+                                               Annotations.SetAction (assembly, AssemblyAction.Save);
+                               }
+                       }
                }
 
                void SweepAssembly (AssemblyDefinition assembly)
@@ -124,15 +133,16 @@ namespace Mono.Linker.Steps {
                        }
                }
 
-               void ResolveAllTypeReferences (AssemblyDefinition assembly)
+               bool ResolveAllTypeReferences (AssemblyDefinition assembly)
                {
                        if (resolvedTypeReferences == null)
                                resolvedTypeReferences = new HashSet<AssemblyDefinition> ();
                        if (resolvedTypeReferences.Contains (assembly))
-                               return;
+                               return false;
                        resolvedTypeReferences.Add (assembly);
 
                        var hash = new Dictionary<TypeReference,IMetadataScope> ();
+                       bool changes = false;
 
                        foreach (TypeReference tr in assembly.MainModule.GetTypeReferences ()) {
                                if (hash.ContainsKey (tr))
@@ -141,8 +151,11 @@ namespace Mono.Linker.Steps {
                                IMetadataScope scope = tr.Scope;
                                // at this stage reference might include things that can't be resolved
                                // and if it is (resolved) it needs to be kept only if marked (#16213)
-                               if ((td != null) && Annotations.IsMarked (td))
+                               if ((td != null) && Annotations.IsMarked (td)) {
                                        scope = assembly.MainModule.Import (td).Scope;
+                                       if (tr.Scope != scope)
+                                               changes = true;
+                               }
                                hash.Add (tr, scope);
                        }
                        if (assembly.MainModule.HasExportedTypes) {
@@ -163,6 +176,8 @@ namespace Mono.Linker.Steps {
                        foreach (var e in hash) {
                                e.Key.Scope = e.Value;
                        }
+
+                       return changes;
                }
 
                void SweepType (TypeDefinition type)
index 6b0ddafedfd57ad3cd97a2ca7e957e1724c85e29..4f0e2eeaaee1c8a73fc39e71e370ad57d515f442 100644 (file)
@@ -179,81 +179,118 @@ namespace Mono.Linker.Steps {
                        if (!type.HasMethods)
                                return null;
 
-                       foreach (MethodDefinition candidate in type.Methods)
-                               if (MethodMatch (candidate, method))
+                       Dictionary<string,string> gp = null;
+                       foreach (MethodDefinition candidate in type.Methods) {
+                               if (MethodMatch (candidate, method, ref gp))
                                        return candidate;
+                               if (gp != null)
+                                       gp.Clear ();
+                       }
 
                        return null;
                }
 
-               static bool MethodMatch (MethodDefinition candidate, MethodDefinition method)
+               static bool MethodMatch (MethodDefinition candidate, MethodDefinition method, ref Dictionary<string,string> genericParameters)
                {
                        if (!candidate.IsVirtual)
                                return false;
 
+                       if (candidate.HasParameters != method.HasParameters)
+                               return false;
+
                        if (candidate.Name != method.Name)
                                return false;
 
-                       if (!TypeMatch (candidate.ReturnType, method.ReturnType))
+                       if (candidate.HasGenericParameters != method.HasGenericParameters)
                                return false;
 
-                       if (candidate.Parameters.Count != method.Parameters.Count)
+                       // we need to track what the generic parameter represent - as we cannot allow it to
+                       // differ between the return type or any parameter
+                       if (!TypeMatch (candidate.ReturnType, method.ReturnType, ref genericParameters))
+                               return false;
+
+                       if (!candidate.HasParameters)
+                               return true;
+
+                       var cp = candidate.Parameters;
+                       var mp = method.Parameters;
+                       if (cp.Count != mp.Count)
                                return false;
 
-                       for (int i = 0; i < candidate.Parameters.Count; i++)
-                               if (!TypeMatch (candidate.Parameters [i].ParameterType, method.Parameters [i].ParameterType))
+                       for (int i = 0; i < cp.Count; i++) {
+                               if (!TypeMatch (cp [i].ParameterType, mp [i].ParameterType, ref genericParameters))
                                        return false;
+                       }
 
                        return true;
                }
 
-               static bool TypeMatch (IModifierType a, IModifierType b)
+               static bool TypeMatch (IModifierType a, IModifierType b, ref Dictionary<string,string> gp)
                {
-                       if (!TypeMatch (a.ModifierType, b.ModifierType))
+                       if (!TypeMatch (a.ModifierType, b.ModifierType, ref gp))
                                return false;
 
-                       return TypeMatch (a.ElementType, b.ElementType);
+                       return TypeMatch (a.ElementType, b.ElementType, ref gp);
                }
 
-               static bool TypeMatch (TypeSpecification a, TypeSpecification b)
+               static bool TypeMatch (TypeSpecification a, TypeSpecification b, ref Dictionary<string,string> gp)
                {
-                       if (a is GenericInstanceType)
-                               return TypeMatch ((GenericInstanceType) a, (GenericInstanceType) b);
+                       var gita = a as GenericInstanceType;
+                       if (gita != null)
+                               return TypeMatch (gita, (GenericInstanceType) b, ref gp);
 
-                       if (a is IModifierType)
-                               return TypeMatch ((IModifierType) a, (IModifierType) b);
+                       var mta = a as IModifierType;
+                       if (mta != null)
+                               return TypeMatch (mta, (IModifierType) b, ref gp);
 
-                       return TypeMatch (a.ElementType, b.ElementType);
+                       return TypeMatch (a.ElementType, b.ElementType, ref gp);
                }
 
-               static bool TypeMatch (GenericInstanceType a, GenericInstanceType b)
+               static bool TypeMatch (GenericInstanceType a, GenericInstanceType b, ref Dictionary<string,string> gp)
                {
-                       if (!TypeMatch (a.ElementType, b.ElementType))
+                       if (!TypeMatch (a.ElementType, b.ElementType, ref gp))
                                return false;
 
-                       if (a.GenericArguments.Count != b.GenericArguments.Count)
+                       if (a.HasGenericArguments != b.HasGenericArguments)
                                return false;
 
-                       if (a.GenericArguments.Count == 0)
+                       if (!a.HasGenericArguments)
                                return true;
 
-                       for (int i = 0; i < a.GenericArguments.Count; i++)
-                               if (!TypeMatch (a.GenericArguments [i], b.GenericArguments [i]))
+                       var gaa = a.GenericArguments;
+                       var gab = b.GenericArguments;
+                       if (gaa.Count != gab.Count)
+                               return false;
+
+                       for (int i = 0; i < gaa.Count; i++) {
+                               if (!TypeMatch (gaa [i], gab [i], ref gp))
                                        return false;
+                       }
 
                        return true;
                }
 
-               static bool TypeMatch (TypeReference a, TypeReference b)
+               static bool TypeMatch (TypeReference a, TypeReference b, ref Dictionary<string,string> gp)
                {
-                       if (a is GenericParameter)
-                               return true;
+                       var gpa = a as GenericParameter;
+                       if (gpa != null) {
+                               if (gp == null)
+                                       gp = new Dictionary<string, string> ();
+                               string match;
+                               if (!gp.TryGetValue (gpa.FullName, out match)) {
+                                       // first use, we assume it will always be used this way
+                                       gp.Add (gpa.FullName, b.ToString ());
+                                       return true;
+                               }
+                               // re-use, it should match the previous usage
+                               return match == b.ToString ();
+                       }
 
                        if (a is TypeSpecification || b is TypeSpecification) {
                                if (a.GetType () != b.GetType ())
                                        return false;
 
-                               return TypeMatch ((TypeSpecification) a, (TypeSpecification) b);
+                               return TypeMatch ((TypeSpecification) a, (TypeSpecification) b, ref gp);
                        }
 
                        return a.FullName == b.FullName;
index c4d71083cd531805cb93116ea521ac956623fff0..417206ce0798843fb35d1584fbb132cd8e74e21b 100644 (file)
@@ -93,6 +93,8 @@ namespace Mono.Linker {
                        set { _symbolWriterProvider = value; }
                }
 
+               public bool LogInternalExceptions { get; set; } = false;
+
                public LinkContext (Pipeline pipeline)
                        : this (pipeline, new AssemblyResolver ())
                {
index ab95b1437c5686e1a8a21abee976d823aa435ba2..a5bced66881cd52641c18ff1b705b88477814ec6 100644 (file)
@@ -127,6 +127,9 @@ Test/DocTest.dll-v2:
        -rm -f Test/DocTest.dll
        $(MAKE) TEST_CSCFLAGS=$(TEST_CSCFLAGS) Test/DocTest.dll
 
+Test/DocTest-enumerations.dll: 
+       $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:$@ Test/DocTest-enumerations.cs
+
 check-monodocer-addNonGeneric: $(PROGRAM)
        -rm -Rf Test/en.actual
        # first, make a docset with the generic method
@@ -176,6 +179,12 @@ check-monodocer-internal-interface: $(PROGRAM)
        $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual Test/DocTest-InternalInterface.dll
        diff --exclude=.svn -rup Test/en.expected-internal-interface Test/en.actual
 
+check-monodocer-enumerations: $(PROGRAM)
+       -rm -Rf Test/en.actual
+       $(MAKE) Test/DocTest-enumerations.dll
+       $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual Test/DocTest-enumerations.dll
+       diff --exclude=.svn -rup Test/en.expected-enumerations Test/en.actual
+
 check-monodocer-update: $(PROGRAM)
        find Test/en.expected -name \*.xml -exec rm "{}" \;
        $(MAKE) Test/DocTest.dll-v1
@@ -335,6 +344,7 @@ check-doc-tools-update: check-monodocer-since-update \
        check-monodocer-dropns-classic \
        check-monodocer-dropns-classic-withsecondary \
        check-monodocer-internal-interface \
+       check-monodocer-enumerations \
        check-monodocer-delete-update \
        check-mdoc-export-html-update \
        check-mdoc-export-msxdoc-update \
index 8cdf5e7e519470d8bab0ee646a7c8b18984068b4..81bcc850c5671d9a038c7d1f6677fdb1d41952e7 100644 (file)
@@ -2347,40 +2347,27 @@ class MDocUpdater : MDocCommand
 
        public static string MakeAttributesValueString (object v, TypeReference valueType)
        {
-               if (v == null)
-                       return "null";
-                       if (valueType.FullName == "System.Type") {
-                               var vTypeRef = v as TypeReference;
-                               if (vTypeRef != null)
-                                       return "typeof(" + NativeTypeManager.GetTranslatedName (vTypeRef) + ")"; // TODO: drop NS handling
-                               else
-                                       return "typeof(" + v.ToString () + ")";
+               var formatters = new [] { 
+                       new AttributeValueFormatter (), 
+                       new ApplePlatformEnumFormatter (), 
+                       new StandardFlagsEnumFormatter (), 
+                       new DefaultAttributeValueFormatter (),
+               };
+
+               ResolvedTypeInfo type = new ResolvedTypeInfo (valueType);
+               foreach (var formatter in formatters) {
+                       string formattedValue;
+                       if (formatter.TryFormatValue (v, type, out formattedValue)) {
+                               return formattedValue;
                        }
-               if (valueType.FullName == "System.String")
-                       return "\"" + v.ToString () + "\"";
-               if (valueType.FullName == "System.Char")
-                       return "'" + v.ToString () + "'";
-               if (v is Boolean)
-                       return (bool)v ? "true" : "false";
-               TypeDefinition valueDef = valueType.Resolve ();
-               if (valueDef == null || !valueDef.IsEnum)
-                       return v.ToString ();
-               string typename = GetDocTypeFullName (valueType);
-               var values = GetEnumerationValues (valueDef);
-               long c = ToInt64 (v);
-               if (values.ContainsKey (c))
-                       return typename + "." + values [c];
-               if (valueDef.CustomAttributes.Any (ca => ca.AttributeType.FullName == "System.FlagsAttribute")) {
-                       return string.Join (" | ",
-                                       (from i in values.Keys
-                                        where (c & i) != 0
-                                        select typename + "." + values [i])
-                                       .DefaultIfEmpty (v.ToString ()).ToArray ());
                }
-               return "(" + GetDocTypeFullName (valueType) + ") " + v.ToString ();
+
+               // this should never occur because the DefaultAttributeValueFormatter will always
+               // successfully format the value ... but this is needed to satisfy the compiler :)
+               throw new InvalidDataException (string.Format ("Unable to format attribute value ({0})", v.ToString ()));
        }
 
-       private static Dictionary<long, string> GetEnumerationValues (TypeDefinition type)
+       internal static IDictionary<long, string> GetEnumerationValues (TypeDefinition type)
        {
                var values = new Dictionary<long, string> ();
                foreach (var f in 
@@ -2392,7 +2379,7 @@ class MDocUpdater : MDocCommand
                return values;
        }
 
-       static long ToInt64 (object value)
+       internal static long ToInt64 (object value)
        {
                if (value is ulong)
                        return (long) (ulong) value;
@@ -5662,4 +5649,190 @@ class FileNameMemberFormatter : SlashDocMemberFormatter {
        }
 }
 
+class ResolvedTypeInfo {
+       TypeDefinition typeDef;
+
+       public ResolvedTypeInfo (TypeReference value) {
+               Reference = value;
+       }
+
+       public TypeReference Reference { get; private set; }
+
+       public TypeDefinition Definition {
+               get {
+                       if (typeDef == null) {
+                               typeDef = Reference.Resolve ();
+                       }
+                       return typeDef;
+               }
+       }
+}
+
+/// <summary>Formats attribute values. Should return true if it is able to format the value.</summary>
+class AttributeValueFormatter {
+       public virtual bool TryFormatValue (object v, ResolvedTypeInfo type, out string returnvalue)
+       {
+               TypeReference valueType = type.Reference;
+               if (v == null) {
+                       returnvalue = "null";
+                       return true;
+               }
+               if (valueType.FullName == "System.Type") {
+                       var vTypeRef = v as TypeReference;
+                       if (vTypeRef != null) 
+                               returnvalue = "typeof(" + NativeTypeManager.GetTranslatedName (vTypeRef) + ")"; // TODO: drop NS handling
+                       else
+                               returnvalue = "typeof(" + v.ToString () + ")";
+                       
+                       return true;
+               }
+               if (valueType.FullName == "System.String") {
+                       returnvalue = "\"" + v.ToString () + "\"";
+                       return true;
+               }
+               if (valueType.FullName == "System.Char") {
+                       returnvalue = "'" + v.ToString () + "'";
+                       return true;
+               }
+               if (v is Boolean) {
+                       returnvalue = (bool)v ? "true" : "false";
+                       return true;
+               }
+
+               TypeDefinition valueDef = type.Definition;
+               if (valueDef == null || !valueDef.IsEnum) {
+                       returnvalue = v.ToString ();
+                       return true;
+               }
+
+               string typename = MDocUpdater.GetDocTypeFullName (valueType);
+               var values = MDocUpdater.GetEnumerationValues (valueDef);
+               long c = MDocUpdater.ToInt64 (v);
+               if (values.ContainsKey (c)) {
+                       returnvalue = typename + "." + values [c];
+                       return true;
+               }
+
+               returnvalue = null;
+               return false;
+       }
+}
+
+/// <summary>The final value formatter in the pipeline ... if no other formatter formats the value,
+/// then this one will serve as the default implementation.</summary>
+class DefaultAttributeValueFormatter : AttributeValueFormatter {
+       public override bool TryFormatValue (object v, ResolvedTypeInfo type, out string returnvalue)
+       {
+               returnvalue = "(" + MDocUpdater.GetDocTypeFullName (type.Reference) + ") " + v.ToString ();
+               return true;
+       }
+}
+
+/// <summary>Flags enum formatter that assumes powers of two values.</summary>
+/// <remarks>As described here: https://msdn.microsoft.com/en-us/library/vstudio/ms229062(v=vs.100).aspx</remarks>
+class StandardFlagsEnumFormatter : AttributeValueFormatter {
+       public override bool TryFormatValue (object v, ResolvedTypeInfo type, out string returnvalue)
+       {
+               TypeReference valueType = type.Reference;
+               TypeDefinition valueDef = type.Definition;
+               if (valueDef.CustomAttributes.Any (ca => ca.AttributeType.FullName == "System.FlagsAttribute")) {
+
+                       string typename = MDocUpdater.GetDocTypeFullName (valueType);
+                       var values = MDocUpdater.GetEnumerationValues (valueDef);
+                       long c = MDocUpdater.ToInt64 (v);
+                       returnvalue = string.Join (" | ",
+                               (from i in values.Keys
+                                where (c & i) == i && i != 0
+                                select typename + "." + values [i])
+                               .DefaultIfEmpty (c.ToString ()).ToArray ());
+                       
+                       return true;
+               }
+
+               returnvalue = null;
+               return false;
+       }
+}
+
+/// <summary>A custom formatter for the ObjCRuntime.Platform enumeration.</summary>
+class ApplePlatformEnumFormatter : AttributeValueFormatter {
+       public override bool TryFormatValue (object v, ResolvedTypeInfo type, out string returnvalue)
+       {
+               TypeReference valueType = type.Reference;
+               string typename = MDocUpdater.GetDocTypeFullName (valueType);
+               TypeDefinition valueDef = type.Definition;
+               if (typename.Contains ("ObjCRuntime.Platform") && valueDef.CustomAttributes.Any (ca => ca.AttributeType.FullName == "System.FlagsAttribute")) {
+
+                       var values = MDocUpdater.GetEnumerationValues (valueDef);
+                       long c = MDocUpdater.ToInt64 (v);
+
+                       returnvalue = Format (c, values, typename);
+                       return true;
+               }
+
+               returnvalue = null;
+               return false;
+       }
+
+       string Format (long c, IDictionary<long, string> values, string typename)
+       {
+               int iosarch, iosmajor, iosminor, iossubminor;
+               int macarch, macmajor, macminor, macsubminor;
+               GetEncodingiOS (c, out iosarch, out iosmajor, out iosminor, out iossubminor);
+               GetEncodingMac ((ulong)c, out macarch, out macmajor, out macminor, out macsubminor);
+
+               if (iosmajor == 0 & iosminor == 0 && iossubminor == 0) {
+                       return FormatValues ("Mac", macarch, macmajor, macminor, macsubminor);
+               }
+
+               if (macmajor == 0 & macminor == 0 && macsubminor == 0) {
+                       return FormatValues ("iOS", iosarch, iosmajor, iosminor, iossubminor);
+               }
+
+               return string.Format ("(Platform){0}", c);
+       }
+
+       string FormatValues (string plat, int arch, int major, int minor, int subminor) 
+       {
+               string archstring = "";
+               switch (arch) {
+               case 1:
+                       archstring = "32";
+                       break;
+               case 2:
+                       archstring = "64";
+                       break;
+               }
+               return string.Format ("Platform.{4}_{0}_{1}{2} | Platform.{4}_Arch{3}",
+                       major,
+                       minor,
+                       subminor == 0 ? "" : "_" + subminor.ToString (),
+                       archstring,
+                       plat
+               );
+       }
+
+       void GetEncodingiOS (long entireLong, out int archindex, out int major, out int minor, out int subminor)
+       {
+               long lowerBits = entireLong & 0xffffffff; 
+               int lowerBitsAsInt = (int) lowerBits;
+               GetEncoding (lowerBitsAsInt, out archindex, out major, out minor, out subminor);
+       }
+
+       void GetEncodingMac (ulong entireLong, out int archindex, out int major, out int minor, out int subminor)
+       {
+               ulong higherBits = entireLong & 0xffffffff00000000; 
+               int higherBitsAsInt = (int) ((higherBits) >> 32);
+               GetEncoding (higherBitsAsInt, out archindex, out major, out minor, out subminor);
+       }
+
+       void GetEncoding (Int32 encodedBits, out int archindex, out int major, out int minor, out int subminor)
+       {
+               // format is AAJJNNSS
+               archindex = (int)((encodedBits & 0xFF000000) >> 24);
+               major = (int)((encodedBits & 0x00FF0000) >> 16);
+               minor = (int)((encodedBits & 0x0000FF00) >> 8);
+               subminor = (int)((encodedBits & 0x000000FF) >> 0);
+       }
+}
 }
diff --git a/mcs/tools/mdoc/Test/DocTest-enumerations.cs b/mcs/tools/mdoc/Test/DocTest-enumerations.cs
new file mode 100644 (file)
index 0000000..a77d497
--- /dev/null
@@ -0,0 +1,79 @@
+using System;
+using ObjCRuntime;
+namespace ObjCRuntime {
+       [Flags]
+       public enum Platform : ulong {
+               None = 0,
+               iOS_2_0 =               0x0000000000020000,
+               iOS_2_2 =               0x0000000000020200,
+               iOS_3_0 =               0x0000000000030000,
+               iOS_3_1 =               0x0000000000030100,
+               iOS_3_2 =               0x0000000000030200,
+               iOS_4_0 =               0x0000000000040000,
+               iOS_4_1 =               0x0000000000040100,
+               iOS_4_2 =               0x0000000000040200,
+               iOS_4_3 =               0x0000000000040300,
+               iOS_5_0 =               0x0000000000050000,
+               iOS_5_1 =               0x0000000000050100,
+               iOS_6_0 =               0x0000000000060000,
+               iOS_6_1 =               0x0000000000060100,
+               iOS_7_0 =               0x0000000000070000,
+               iOS_7_1 =               0x0000000000070100,
+               iOS_8_0 =               0x0000000000080000,
+               iOS_8_1 =               0x0000000000080100,
+               iOS_8_2 =               0x0000000000080200,
+               iOS_8_3 =               0x0000000000080300,
+               Mac_10_0 =              0x000A000000000000,
+               Mac_10_1 =              0x000A010000000000,
+               Mac_10_2 =              0x000A020000000000,
+               Mac_10_3 =              0x000A030000000000,
+               Mac_10_4 =              0x000A040000000000,
+               Mac_10_5 =              0x000A050000000000,
+               Mac_10_6 =              0x000A060000000000,
+               Mac_10_7 =              0x000A070000000000,
+               Mac_10_8 =              0x000A080000000000,
+               Mac_10_9 =              0x000A090000000000,
+               Mac_10_10 =     0x000A0A0000000000,
+               iOS_Version =   0x0000000000FFFFFF,
+               Mac_Version =   0x00FFFFFF00000000,
+               Mac_Arch32 =    0x0100000000000000,
+               Mac_Arch64 =    0x0200000000000000,
+               Mac_Arch =              0xFF00000000000000,
+               iOS_Arch32 =    0x0000000001000000,
+               iOS_Arch64 =    0x0000000002000000,
+               iOS_Arch =              0x00000000FF000000
+       }
+}
+namespace MyNamespace {
+       public enum MyEnum {
+               One,
+               Two,
+               Three
+       }
+       public class MyFlagEnumAttribute : Attribute {
+               public Platform Enum {get;set;}
+               public MyFlagEnumAttribute(){}
+               public MyFlagEnumAttribute (Platform value) {
+                       this.Enum = value;
+               }
+       }
+       public class MyEnumAttribute : Attribute {
+               public MyEnum Enum {get;set;}
+               public MyEnumAttribute(){}
+               public MyEnumAttribute (MyEnum value) {
+                       this.Enum = value;
+               }
+       }
+       public class MyClass {
+               [MyFlagEnum(value: Platform.None)]
+               public string None() { return string.Empty; }
+               [MyFlagEnum(value: Platform.Mac_10_8 | Platform.Mac_Arch64)]
+               public string MacMethod() { return string.Empty; }
+               [MyFlagEnum(value: Platform.iOS_Arch32 | Platform.iOS_4_2)]
+               public string iOSMethod() { return string.Empty; }
+               [MyEnum(value: MyEnum.One)]
+               public string RegularEnum() { return string.Empty; }
+               [MyEnum(value: (MyEnum)234234)]
+               public string UnknownEnumValue() { return string.Empty; }
+       }
+}
diff --git a/mcs/tools/mdoc/Test/en.expected-enumerations/MyNamespace/MyClass.xml b/mcs/tools/mdoc/Test/en.expected-enumerations/MyNamespace/MyClass.xml
new file mode 100644 (file)
index 0000000..a52ae97
--- /dev/null
@@ -0,0 +1,141 @@
+<Type Name="MyClass" FullName="MyNamespace.MyClass">
+  <TypeSignature Language="C#" Value="public class MyClass" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyClass extends System.Object" />
+  <AssemblyInfo>
+    <AssemblyName>DocTest-enumerations</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Object</BaseTypeName>
+  </Base>
+  <Interfaces />
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName=".ctor">
+      <MemberSignature Language="C#" Value="public MyClass ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
+      <MemberType>Constructor</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="iOSMethod">
+      <MemberSignature Language="C#" Value="public string iOSMethod ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance string iOSMethod() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <Attributes>
+        <Attribute>
+          <AttributeName>MyNamespace.MyFlagEnum(Platform.iOS_4_2 | Platform.iOS_Arch32)</AttributeName>
+        </Attribute>
+      </Attributes>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="MacMethod">
+      <MemberSignature Language="C#" Value="public string MacMethod ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance string MacMethod() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <Attributes>
+        <Attribute>
+          <AttributeName>MyNamespace.MyFlagEnum(Platform.Mac_10_8 | Platform.Mac_Arch64)</AttributeName>
+        </Attribute>
+      </Attributes>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="None">
+      <MemberSignature Language="C#" Value="public string None ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance string None() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <Attributes>
+        <Attribute>
+          <AttributeName>MyNamespace.MyFlagEnum(ObjCRuntime.Platform.None)</AttributeName>
+        </Attribute>
+      </Attributes>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="RegularEnum">
+      <MemberSignature Language="C#" Value="public string RegularEnum ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance string RegularEnum() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <Attributes>
+        <Attribute>
+          <AttributeName>MyNamespace.MyEnum(MyNamespace.MyEnum.One)</AttributeName>
+        </Attribute>
+      </Attributes>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="UnknownEnumValue">
+      <MemberSignature Language="C#" Value="public string UnknownEnumValue ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance string UnknownEnumValue() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <Attributes>
+        <Attribute>
+          <AttributeName>MyNamespace.MyEnum((MyNamespace.MyEnum) 234234)</AttributeName>
+        </Attribute>
+      </Attributes>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
diff --git a/mcs/tools/mdoc/Test/en.expected-enumerations/MyNamespace/MyEnum.xml b/mcs/tools/mdoc/Test/en.expected-enumerations/MyNamespace/MyEnum.xml
new file mode 100644 (file)
index 0000000..8bbe13f
--- /dev/null
@@ -0,0 +1,59 @@
+<Type Name="MyEnum" FullName="MyNamespace.MyEnum">
+  <TypeSignature Language="C#" Value="public enum MyEnum" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed MyEnum extends System.Enum" />
+  <AssemblyInfo>
+    <AssemblyName>DocTest-enumerations</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Enum</BaseTypeName>
+  </Base>
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="One">
+      <MemberSignature Language="C#" Value="One" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype MyNamespace.MyEnum One = int32(0)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>MyNamespace.MyEnum</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Three">
+      <MemberSignature Language="C#" Value="Three" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype MyNamespace.MyEnum Three = int32(2)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>MyNamespace.MyEnum</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Two">
+      <MemberSignature Language="C#" Value="Two" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype MyNamespace.MyEnum Two = int32(1)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>MyNamespace.MyEnum</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
diff --git a/mcs/tools/mdoc/Test/en.expected-enumerations/MyNamespace/MyEnumAttribute.xml b/mcs/tools/mdoc/Test/en.expected-enumerations/MyNamespace/MyEnumAttribute.xml
new file mode 100644 (file)
index 0000000..0d155e6
--- /dev/null
@@ -0,0 +1,63 @@
+<Type Name="MyEnumAttribute" FullName="MyNamespace.MyEnumAttribute">
+  <TypeSignature Language="C#" Value="public class MyEnumAttribute : Attribute" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyEnumAttribute extends System.Attribute" />
+  <AssemblyInfo>
+    <AssemblyName>DocTest-enumerations</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Attribute</BaseTypeName>
+  </Base>
+  <Interfaces />
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName=".ctor">
+      <MemberSignature Language="C#" Value="public MyEnumAttribute ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
+      <MemberType>Constructor</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName=".ctor">
+      <MemberSignature Language="C#" Value="public MyEnumAttribute (MyNamespace.MyEnum value);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(valuetype MyNamespace.MyEnum value) cil managed" />
+      <MemberType>Constructor</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <Parameters>
+        <Parameter Name="value" Type="MyNamespace.MyEnum" />
+      </Parameters>
+      <Docs>
+        <param name="value">To be added.</param>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Enum">
+      <MemberSignature Language="C#" Value="public MyNamespace.MyEnum Enum { get; set; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance valuetype MyNamespace.MyEnum Enum" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>MyNamespace.MyEnum</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
diff --git a/mcs/tools/mdoc/Test/en.expected-enumerations/MyNamespace/MyFlagEnumAttribute.xml b/mcs/tools/mdoc/Test/en.expected-enumerations/MyNamespace/MyFlagEnumAttribute.xml
new file mode 100644 (file)
index 0000000..f2c2162
--- /dev/null
@@ -0,0 +1,63 @@
+<Type Name="MyFlagEnumAttribute" FullName="MyNamespace.MyFlagEnumAttribute">
+  <TypeSignature Language="C#" Value="public class MyFlagEnumAttribute : Attribute" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyFlagEnumAttribute extends System.Attribute" />
+  <AssemblyInfo>
+    <AssemblyName>DocTest-enumerations</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Attribute</BaseTypeName>
+  </Base>
+  <Interfaces />
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName=".ctor">
+      <MemberSignature Language="C#" Value="public MyFlagEnumAttribute ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
+      <MemberType>Constructor</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName=".ctor">
+      <MemberSignature Language="C#" Value="public MyFlagEnumAttribute (ObjCRuntime.Platform value);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(valuetype ObjCRuntime.Platform value) cil managed" />
+      <MemberType>Constructor</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <Parameters>
+        <Parameter Name="value" Type="ObjCRuntime.Platform" />
+      </Parameters>
+      <Docs>
+        <param name="value">To be added.</param>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Enum">
+      <MemberSignature Language="C#" Value="public ObjCRuntime.Platform Enum { get; set; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance valuetype ObjCRuntime.Platform Enum" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
diff --git a/mcs/tools/mdoc/Test/en.expected-enumerations/ObjCRuntime/Platform.xml b/mcs/tools/mdoc/Test/en.expected-enumerations/ObjCRuntime/Platform.xml
new file mode 100644 (file)
index 0000000..25ada27
--- /dev/null
@@ -0,0 +1,568 @@
+<Type Name="Platform" FullName="ObjCRuntime.Platform">
+  <TypeSignature Language="C#" Value="public enum Platform" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed Platform extends System.Enum" />
+  <AssemblyInfo>
+    <AssemblyName>DocTest-enumerations</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Enum</BaseTypeName>
+  </Base>
+  <Attributes>
+    <Attribute>
+      <AttributeName>System.Flags</AttributeName>
+    </Attribute>
+  </Attributes>
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="iOS_2_0">
+      <MemberSignature Language="C#" Value="iOS_2_0" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_2_0 = unsigned int64(131072)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_2_2">
+      <MemberSignature Language="C#" Value="iOS_2_2" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_2_2 = unsigned int64(131584)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_3_0">
+      <MemberSignature Language="C#" Value="iOS_3_0" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_3_0 = unsigned int64(196608)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_3_1">
+      <MemberSignature Language="C#" Value="iOS_3_1" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_3_1 = unsigned int64(196864)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_3_2">
+      <MemberSignature Language="C#" Value="iOS_3_2" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_3_2 = unsigned int64(197120)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_4_0">
+      <MemberSignature Language="C#" Value="iOS_4_0" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_4_0 = unsigned int64(262144)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_4_1">
+      <MemberSignature Language="C#" Value="iOS_4_1" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_4_1 = unsigned int64(262400)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_4_2">
+      <MemberSignature Language="C#" Value="iOS_4_2" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_4_2 = unsigned int64(262656)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_4_3">
+      <MemberSignature Language="C#" Value="iOS_4_3" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_4_3 = unsigned int64(262912)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_5_0">
+      <MemberSignature Language="C#" Value="iOS_5_0" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_5_0 = unsigned int64(327680)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_5_1">
+      <MemberSignature Language="C#" Value="iOS_5_1" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_5_1 = unsigned int64(327936)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_6_0">
+      <MemberSignature Language="C#" Value="iOS_6_0" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_6_0 = unsigned int64(393216)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_6_1">
+      <MemberSignature Language="C#" Value="iOS_6_1" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_6_1 = unsigned int64(393472)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_7_0">
+      <MemberSignature Language="C#" Value="iOS_7_0" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_7_0 = unsigned int64(458752)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_7_1">
+      <MemberSignature Language="C#" Value="iOS_7_1" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_7_1 = unsigned int64(459008)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_8_0">
+      <MemberSignature Language="C#" Value="iOS_8_0" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_8_0 = unsigned int64(524288)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_8_1">
+      <MemberSignature Language="C#" Value="iOS_8_1" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_8_1 = unsigned int64(524544)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_8_2">
+      <MemberSignature Language="C#" Value="iOS_8_2" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_8_2 = unsigned int64(524800)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_8_3">
+      <MemberSignature Language="C#" Value="iOS_8_3" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_8_3 = unsigned int64(525056)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_Arch">
+      <MemberSignature Language="C#" Value="iOS_Arch" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_Arch = unsigned int64(4278190080)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_Arch32">
+      <MemberSignature Language="C#" Value="iOS_Arch32" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_Arch32 = unsigned int64(16777216)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_Arch64">
+      <MemberSignature Language="C#" Value="iOS_Arch64" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_Arch64 = unsigned int64(33554432)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="iOS_Version">
+      <MemberSignature Language="C#" Value="iOS_Version" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_Version = unsigned int64(16777215)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Mac_10_0">
+      <MemberSignature Language="C#" Value="Mac_10_0" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_0 = unsigned int64(2814749767106560)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Mac_10_1">
+      <MemberSignature Language="C#" Value="Mac_10_1" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_1 = unsigned int64(2815849278734336)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Mac_10_10">
+      <MemberSignature Language="C#" Value="Mac_10_10" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_10 = unsigned int64(2825744883384320)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Mac_10_2">
+      <MemberSignature Language="C#" Value="Mac_10_2" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_2 = unsigned int64(2816948790362112)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Mac_10_3">
+      <MemberSignature Language="C#" Value="Mac_10_3" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_3 = unsigned int64(2818048301989888)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Mac_10_4">
+      <MemberSignature Language="C#" Value="Mac_10_4" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_4 = unsigned int64(2819147813617664)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Mac_10_5">
+      <MemberSignature Language="C#" Value="Mac_10_5" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_5 = unsigned int64(2820247325245440)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Mac_10_6">
+      <MemberSignature Language="C#" Value="Mac_10_6" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_6 = unsigned int64(2821346836873216)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Mac_10_7">
+      <MemberSignature Language="C#" Value="Mac_10_7" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_7 = unsigned int64(2822446348500992)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Mac_10_8">
+      <MemberSignature Language="C#" Value="Mac_10_8" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_8 = unsigned int64(2823545860128768)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Mac_10_9">
+      <MemberSignature Language="C#" Value="Mac_10_9" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_9 = unsigned int64(2824645371756544)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Mac_Arch">
+      <MemberSignature Language="C#" Value="Mac_Arch" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_Arch = unsigned int64(18374686479671623680)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Mac_Arch32">
+      <MemberSignature Language="C#" Value="Mac_Arch32" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_Arch32 = unsigned int64(72057594037927936)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Mac_Arch64">
+      <MemberSignature Language="C#" Value="Mac_Arch64" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_Arch64 = unsigned int64(144115188075855872)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Mac_Version">
+      <MemberSignature Language="C#" Value="Mac_Version" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_Version = unsigned int64(72057589742960640)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="None">
+      <MemberSignature Language="C#" Value="None" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform None = unsigned int64(0)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>ObjCRuntime.Platform</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
diff --git a/mcs/tools/mdoc/Test/en.expected-enumerations/index.xml b/mcs/tools/mdoc/Test/en.expected-enumerations/index.xml
new file mode 100644 (file)
index 0000000..d46426c
--- /dev/null
@@ -0,0 +1,28 @@
+<Overview>
+  <Assemblies>
+    <Assembly Name="DocTest-enumerations" Version="0.0.0.0">
+      <Attributes>
+        <Attribute>
+          <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+        </Attribute>
+        <Attribute>
+          <AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
+        </Attribute>
+      </Attributes>
+    </Assembly>
+  </Assemblies>
+  <Remarks>To be added.</Remarks>
+  <Copyright>To be added.</Copyright>
+  <Types>
+    <Namespace Name="MyNamespace">
+      <Type Name="MyClass" Kind="Class" />
+      <Type Name="MyEnum" Kind="Enumeration" />
+      <Type Name="MyEnumAttribute" Kind="Class" />
+      <Type Name="MyFlagEnumAttribute" Kind="Class" />
+    </Namespace>
+    <Namespace Name="ObjCRuntime">
+      <Type Name="Platform" Kind="Enumeration" />
+    </Namespace>
+  </Types>
+  <Title>DocTest-enumerations</Title>
+</Overview>
diff --git a/mcs/tools/mdoc/Test/en.expected-enumerations/ns-MyNamespace.xml b/mcs/tools/mdoc/Test/en.expected-enumerations/ns-MyNamespace.xml
new file mode 100644 (file)
index 0000000..bd8d431
--- /dev/null
@@ -0,0 +1,6 @@
+<Namespace Name="MyNamespace">
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+</Namespace>
diff --git a/mcs/tools/mdoc/Test/en.expected-enumerations/ns-ObjCRuntime.xml b/mcs/tools/mdoc/Test/en.expected-enumerations/ns-ObjCRuntime.xml
new file mode 100644 (file)
index 0000000..b69f121
--- /dev/null
@@ -0,0 +1,6 @@
+<Namespace Name="ObjCRuntime">
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+</Namespace>
index 2dc2bf799d94c473556fc5796cc6f619e2b5e27b..ec5c1f10aabad6e73e5b4e84fa54d1b42b21a954 100755 (executable)
@@ -156,6 +156,13 @@ class MakeBundle {
                                }
                                ctor_func = args [++i];
                                break;
+                       case "--dos2unix":
+                       case "--dos2unix=true":
+                               use_dos2unix = true;
+                               break;
+                       case "--dos2unix=false":
+                               use_dos2unix = false;
+                               break;
                        default:
                                sources.Add (args [i]);
                                break;
@@ -651,6 +658,10 @@ void          mono_register_config_for_assembly (const char* assembly_name, cons
                                   "    -L path             Adds `path' to the search path for assemblies\n" +
                                   "    --nodeps            Turns off automatic dependency embedding (default)\n" +
                                   "    --deps              Turns on automatic dependency embedding\n" +
+                                  "    --dos2unix[=true|false]\n" +
+                                  "                        When no value provided, or when `true` specified\n" +
+                                  "                        `dos2unix` will be invoked to convert paths on Windows.\n" +
+                                  "                        When `--dos2unix=false` used, dos2unix is NEVER used.\n" +
                                   "    --keeptemp          Keeps the temporary files\n" +
                                   "    --config F          Bundle system config file `F'\n" +
                                   "    --config-dir D      Set MONO_CFG_DIR to `D'\n" +
@@ -704,7 +715,6 @@ void          mono_register_config_for_assembly (const char* assembly_name, cons
                        return system (cmdLine);
                }
                
-#if XAMARIN_ANDROID
                // on Windows, we have to pipe the output of a
                // `cmd` interpolation to dos2unix, because the shell does not
                // strip the CRLFs generated by the native pkg-config distributed
@@ -733,7 +743,6 @@ void          mono_register_config_for_assembly (const char* assembly_name, cons
                }
                // and if there is no dos2unix, just run cmd /c.
                if (use_dos2unix == false) {
-#endif
                        Console.WriteLine (cmdLine);
                        ProcessStartInfo dos2unix = new ProcessStartInfo ();
                        dos2unix.UseShellExecute = false;
@@ -744,19 +753,15 @@ void          mono_register_config_for_assembly (const char* assembly_name, cons
                                p.WaitForExit ();
                                return p.ExitCode;
                        }
-#if XAMARIN_ANDROID
                }
-#endif
 
                StringBuilder b = new StringBuilder ();
                int count = 0;
                for (int i = 0; i < cmdLine.Length; i++) {
                        if (cmdLine [i] == '`') {
-#if XAMARIN_ANDROID
                                if (count % 2 != 0) {
                                        b.Append ("|dos2unix");
                                }
-#endif
                                count++;
                        }
                        b.Append (cmdLine [i]);
index 6fc37c34271a59f7da5163add23b049f802fdfa5..52ecbbb3fb53f719e83c8f14d9518385d0a148fa 100644 (file)
@@ -13,4 +13,4 @@ run-test-local : basic-tests
 
 basic-tests:
        for type in System.Array System.String 'System.Collections.Generic.List`1'; do \
-       echo $$type; $(RUNTIME) $(build_lib) $$type >/dev/null || exit 1; done
\ No newline at end of file
+       echo $$type; MONO_PATH="$(topdir)/class/lib/$(PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(build_lib) $$type >/dev/null || exit 1; done
index 2450c069400bc162aa937dd231ef84613a29ba21..9b1b20feeef5979efe0f15b1163bb17304f67498 100644 (file)
@@ -6,7 +6,7 @@ PROGRAM = resgen.exe
 
 CLEAN_FILES = resgen.exe
 
-INSTALL_PROFILE := $(filter net_4_5, $(PROFILE))
+INSTALL_PROFILE := $(filter $(DEFAULT_PROFILE), $(PROFILE))
 ifndef INSTALL_PROFILE
 NO_INSTALL = yes
 endif
index 11b40d66a9b51c6c6696def143aea14a91bf6e79..1d111a1cf66d3201a71ed68f67c803fbcf239884 100644 (file)
@@ -96,7 +96,7 @@
                        WarningLevel="$(WarningLevel)"
                        WarningsAsErrors="$(WarningsAsErrors)"
                        WarningsNotAsErrors="$(WarningsNotAsErrors)"
-                       Win32Icon="$(Win32Icon)"
+                       Win32Icon="$(ApplicationIcon)"
                        Win32Resource="$(Win32Resource)"
                        Resources="@(ManifestResourceWithNoCulture);@(ManifestNonResxWithNoCultureOnDisk);@(CompiledLicenseFile)"
                        ToolExe="$(CscToolExe)"
index 11b40d66a9b51c6c6696def143aea14a91bf6e79..1d111a1cf66d3201a71ed68f67c803fbcf239884 100644 (file)
@@ -96,7 +96,7 @@
                        WarningLevel="$(WarningLevel)"
                        WarningsAsErrors="$(WarningsAsErrors)"
                        WarningsNotAsErrors="$(WarningsNotAsErrors)"
-                       Win32Icon="$(Win32Icon)"
+                       Win32Icon="$(ApplicationIcon)"
                        Win32Resource="$(Win32Resource)"
                        Resources="@(ManifestResourceWithNoCulture);@(ManifestNonResxWithNoCultureOnDisk);@(CompiledLicenseFile)"
                        ToolExe="$(CscToolExe)"
index 114e862c88c897ee2574cab27ff9f6c14026268c..29bd5d826aed56752aab8e74daa46868be68ec70 100644 (file)
@@ -65,7 +65,7 @@
                        WarningLevel="$(WarningLevel)"
                        WarningsAsErrors="$(WarningsAsErrors)"
                        WarningsNotAsErrors="$(WarningsNotAsErrors)"
-                       Win32Icon="$(Win32Icon)"
+                       Win32Icon="$(ApplicationIcon)"
                        Win32Resource="$(Win32Resource)"
                        Resources="@(ManifestResourceWithNoCulture);@(ManifestNonResxWithNoCultureOnDisk);@(CompiledLicenseFile)"
                        ToolExe="$(CscToolExe)"
index 114e862c88c897ee2574cab27ff9f6c14026268c..29bd5d826aed56752aab8e74daa46868be68ec70 100644 (file)
@@ -65,7 +65,7 @@
                        WarningLevel="$(WarningLevel)"
                        WarningsAsErrors="$(WarningsAsErrors)"
                        WarningsNotAsErrors="$(WarningsNotAsErrors)"
-                       Win32Icon="$(Win32Icon)"
+                       Win32Icon="$(ApplicationIcon)"
                        Win32Resource="$(Win32Resource)"
                        Resources="@(ManifestResourceWithNoCulture);@(ManifestNonResxWithNoCultureOnDisk);@(CompiledLicenseFile)"
                        ToolExe="$(CscToolExe)"
index 11b40d66a9b51c6c6696def143aea14a91bf6e79..1d111a1cf66d3201a71ed68f67c803fbcf239884 100644 (file)
@@ -96,7 +96,7 @@
                        WarningLevel="$(WarningLevel)"
                        WarningsAsErrors="$(WarningsAsErrors)"
                        WarningsNotAsErrors="$(WarningsNotAsErrors)"
-                       Win32Icon="$(Win32Icon)"
+                       Win32Icon="$(ApplicationIcon)"
                        Win32Resource="$(Win32Resource)"
                        Resources="@(ManifestResourceWithNoCulture);@(ManifestNonResxWithNoCultureOnDisk);@(CompiledLicenseFile)"
                        ToolExe="$(CscToolExe)"
index dc2b0e6d61f20b86ba043739a30b2e2f42230fcd..cf35f82519790874f31eae46c1a94ac19d4e9096 100644 (file)
        <Import Project="Microsoft.Common.targets" />
 
        <PropertyGroup>
-               <VbcToolExe Condition="'$(VbcToolExe)' == '' and '$(TargetFrameworkVersion)' != 'v4.0' and '$(OS)' != 'Windows_NT'">vbnc2</VbcToolExe>
-               <VbcToolExe Condition="'$(VbcToolExe)' == '' and '$(TargetFrameworkVersion)' != 'v4.0' and '$(OS)' == 'Windows_NT'">vbnc2.bat</VbcToolExe>
-
-               <VbcToolExe Condition="'$(VbcToolExe)' == '' and '$(TargetFrameworkVersion)' == 'v4.0' and '$(OS)' != 'Windows_NT'">vbnc</VbcToolExe>
-               <VbcToolExe Condition="'$(VbcToolExe)' == '' and '$(TargetFrameworkVersion)' == 'v4.0' and '$(OS)' == 'Windows_NT'">vbnc.bat</VbcToolExe>
+               <VbcToolExe Condition="'$(VbcToolExe)' == ''">vbnc.exe</VbcToolExe>
        </PropertyGroup>
 
 </Project>
index 60ce6eb43d55aadc09f16ece69720a36e21d6d7d..9dcf0987ec86b7daeadd7c92e899af2c823b82ea 100644 (file)
@@ -27,7 +27,7 @@ copy-targets: copy-targets-$(XBUILD_VERSION)
 
 clean-targets: clean-targets-$(XBUILD_VERSION)
 
-XBUILD_4_0_PROFILE_DIR=$(topdir)/class/lib/net_4_5
+XBUILD_4_0_PROFILE_DIR=$(topdir)/class/lib/net_4_x
 XBUILD_12_0_PROFILE_DIR=$(topdir)/class/lib/xbuild_12
 XBUILD_14_0_PROFILE_DIR=$(topdir)/class/lib/xbuild_14
 
@@ -69,7 +69,7 @@ clean-targets-14.0:
 
 #allow tests to find older versions of libs and targets
 ifneq (4.0, $(XBUILD_VERSION))
-TEST_MONO_PATH := $(topdir)/class/lib/net_4_5$(PLATFORM_PATH_SEPARATOR)$(TEST_MONO_PATH)
+TEST_MONO_PATH := $(topdir)/class/lib/net_4_x$(PLATFORM_PATH_SEPARATOR)$(TEST_MONO_PATH)
 copy-targets: copy-targets-4.0
 clean-targets: clean-targets-4.0
 endif
diff --git a/mono/arch/arm/tramp.c b/mono/arch/arm/tramp.c
deleted file mode 100644 (file)
index f736c7a..0000000
+++ /dev/null
@@ -1,710 +0,0 @@
-/*
- * Create trampolines to invoke arbitrary functions.
- * Copyright (c) 2002 Sergey Chaban <serge@wildwestsoftware.com>
- *
- * Contributions by Malte Hildingson
- */
-
-#include "arm-codegen.h"
-#include "arm-dis.h"
-
-#if defined(_WIN32_WCE) || defined (UNDER_CE)
-#      include <windows.h>
-#else
-#include <unistd.h>
-#include <sys/mman.h>
-#endif
-
-#if !defined(PLATFORM_MACOSX)
-#include <errno.h>
-
-#include "mono/metadata/class.h"
-#include "mono/metadata/tabledefs.h"
-#include "mono/interpreter/interp.h"
-#include "mono/metadata/appdomain.h"
-
-
-#if 0
-#      define ARM_DUMP_DISASM 1
-#endif
-
-/* prototypes for private functions (to avoid compiler warnings) */
-void flush_icache (void);
-void* alloc_code_buff (int num_instr);
-
-
-
-/*
- * The resulting function takes the form:
- * void func (void (*callme)(), void *retval, void *this_obj, stackval *arguments);
- * NOTE: all args passed in ARM registers (A1-A4),
- *       then copied to R4-R7 (see definitions below).
- */
-
-#define REG_FUNC_ADDR ARMREG_R4
-#define REG_RETVAL    ARMREG_R5
-#define REG_THIS      ARMREG_R6
-#define REG_ARGP      ARMREG_R7
-
-
-#define ARG_SIZE sizeof(stackval)
-
-
-
-
-void flush_icache ()
-{
-#if defined(_WIN32)
-       FlushInstructionCache(GetCurrentProcess(), NULL, 0);
-#else
-# if 0
-       asm ("mov r0, r0");
-       asm ("mov r0, #0");
-       asm ("mcr p15, 0, r0, c7, c7, 0");
-# else
-       /* TODO: use (movnv  pc, rx) method */
-# endif
-#endif
-}
-
-
-void* alloc_code_buff (int num_instr)
-{
-       void* code_buff;
-       int code_size = num_instr * sizeof(arminstr_t);
-
-#if defined(_WIN32) || defined(UNDER_CE)
-       int old_prot = 0;
-
-       code_buff = malloc(code_size);
-       VirtualProtect(code_buff, code_size, PAGE_EXECUTE_READWRITE, &old_prot);
-#else
-       int page_size = sysconf(_SC_PAGESIZE);
-       int new_code_size;
-
-       new_code_size = code_size + page_size - 1;
-       code_buff = malloc(new_code_size);
-       code_buff = (void *) (((int) code_buff + page_size - 1) & ~(page_size - 1));
-
-       if (mprotect(code_buff, code_size, PROT_READ|PROT_WRITE|PROT_EXEC) != 0) {
-               g_critical (G_GNUC_PRETTY_FUNCTION
-                               ": mprotect error: %s", g_strerror (errno));
-       }
-#endif
-
-       return code_buff;
-}
-
-
-/*
- * Refer to ARM Procedure Call Standard (APCS) for more info.
- */
-MonoPIFunc mono_arch_create_trampoline (MonoMethodSignature *sig, gboolean string_ctor)
-{
-       MonoType* param;
-       MonoPIFunc code_buff;
-       arminstr_t* p;
-       guint32 code_size, stack_size;
-       guint32 simple_type;
-       int i, hasthis, aregs, regc, stack_offs;
-       int this_loaded;
-       guchar reg_alloc [ARM_NUM_ARG_REGS];
-
-       /* pessimistic estimation for prologue/epilogue size */
-       code_size = 16 + 16;
-       /* push/pop work regs */
-       code_size += 2; 
-       /* call */
-       code_size += 2;
-       /* handle retval */
-       code_size += 2;
-
-       stack_size = 0;
-       hasthis = sig->hasthis ? 1 : 0;
-
-       aregs = ARM_NUM_ARG_REGS - hasthis;
-
-       for (i = 0, regc = aregs; i < sig->param_count; ++i) {
-               param = sig->params [i];
-
-               /* keep track of argument sizes */
-               if (i < ARM_NUM_ARG_REGS) reg_alloc [i] = 0;
-
-               if (param->byref) {
-                       if (regc > 0) {
-                               code_size += 1;
-                               reg_alloc [i] = regc;
-                               --regc;
-                       } else {
-                               code_size += 2;
-                               stack_size += sizeof(gpointer);
-                       }
-               } else {
-                       simple_type = param->type;
-enum_calc_size:
-                       switch (simple_type) {
-                       case MONO_TYPE_BOOLEAN:
-                       case MONO_TYPE_CHAR:
-                       case MONO_TYPE_I1:
-                       case MONO_TYPE_U1:
-                       case MONO_TYPE_I2:
-                       case MONO_TYPE_U2:
-                       case MONO_TYPE_I4:
-                       case MONO_TYPE_U4:
-                       case MONO_TYPE_I:
-                       case MONO_TYPE_U:
-                       case MONO_TYPE_PTR:
-                       case MONO_TYPE_R4:
-                       case MONO_TYPE_SZARRAY:
-                       case MONO_TYPE_CLASS:
-                       case MONO_TYPE_OBJECT:
-                       case MONO_TYPE_STRING:
-                               if (regc > 0) {
-                                       /* register arg */
-                                       code_size += 1;
-                                       reg_alloc [i] = regc;
-                                       --regc;
-                               } else {
-                                       /* stack arg */
-                                       code_size += 2;
-                                       stack_size += 4;
-                               }
-                               break;
-                       case MONO_TYPE_I8:
-                       case MONO_TYPE_U8:
-                       case MONO_TYPE_R8:
-                               /* keep track of argument sizes */
-                               if (regc > 1) {
-                                       /* fits into registers, two LDRs */
-                                       code_size += 2;
-                                       reg_alloc [i] = regc;
-                                       regc -= 2;
-                               } else if (regc > 0) {
-                                       /* first half fits into register, one LDR */
-                                       code_size += 1;
-                                       reg_alloc [i] = regc;
-                                       --regc;
-                                       /* the rest on the stack, LDR/STR */
-                                       code_size += 2;
-                                       stack_size += 4;
-                               } else {
-                                       /* stack arg, 4 instrs - 2x(LDR/STR) */
-                                       code_size += 4;
-                                       stack_size += 2 * 4;
-                               }
-                               break;
-                       case MONO_TYPE_VALUETYPE:
-                               if (param->data.klass->enumtype) {
-                                       simple_type = param->data.klass->enum_basetype->type;
-                                       goto enum_calc_size;
-                               }
-
-                               if (mono_class_value_size(param->data.klass, NULL) != 4) {
-                                       g_error("can only marshal enums, not generic structures (size: %d)", mono_class_value_size(param->data.klass, NULL));
-                               }
-                               if (regc > 0) {
-                                       /* register arg */
-                                       code_size += 1;
-                                       reg_alloc [i] = regc;
-                                       --regc;
-                               } else {
-                                       /* stack arg */
-                                       code_size += 2;
-                                       stack_size += 4;
-                               }
-                               break;
-                       default :
-                               break;
-                       }
-               }
-       }
-
-       code_buff = (MonoPIFunc)alloc_code_buff(code_size);
-       p = (arminstr_t*)code_buff;
-
-       /* prologue */
-       p = arm_emit_lean_prologue(p, stack_size,
-               /* save workset (r4-r7) */
-               (1 << ARMREG_R4) | (1 << ARMREG_R5) | (1 << ARMREG_R6) | (1 << ARMREG_R7));
-
-
-       /* copy args into workset */
-       /* callme - always present */
-       ARM_MOV_REG_REG(p, ARMREG_R4, ARMREG_A1);
-       /* retval */
-       if (sig->ret->byref || string_ctor || (sig->ret->type != MONO_TYPE_VOID)) {
-               ARM_MOV_REG_REG(p, ARMREG_R5, ARMREG_A2);
-       }
-       /* this_obj */
-       if (sig->hasthis) {
-               this_loaded = 0;
-               if (stack_size == 0) {
-                       ARM_MOV_REG_REG(p, ARMREG_A1, ARMREG_A3);
-                       this_loaded = 1;
-               } else {
-                       ARM_MOV_REG_REG(p, ARMREG_R6, ARMREG_A3);
-               }
-       }
-       /* args */
-       if (sig->param_count != 0) {
-               ARM_MOV_REG_REG(p, ARMREG_R7, ARMREG_A4);
-       }
-
-       stack_offs = stack_size;
-
-       /* handle arguments */
-       /* in reverse order so we could use r0 (arg1) for memory transfers */
-       for (i = sig->param_count; --i >= 0;) {
-               param = sig->params [i];
-               if (param->byref) {
-                       if (i < aregs && reg_alloc[i] > 0) {
-                               ARM_LDR_IMM(p, ARMREG_A1 + i, REG_ARGP, i*ARG_SIZE);
-                       } else {
-                               stack_offs -= sizeof(armword_t);
-                               ARM_LDR_IMM(p, ARMREG_R0, REG_ARGP, i*ARG_SIZE);
-                               ARM_STR_IMM(p, ARMREG_R0, ARMREG_SP, stack_offs);
-                       }
-               } else {
-                       simple_type = param->type;
-enum_marshal:
-                       switch (simple_type) {
-                       case MONO_TYPE_BOOLEAN:
-                       case MONO_TYPE_CHAR:
-                       case MONO_TYPE_I1:
-                       case MONO_TYPE_U1:
-                       case MONO_TYPE_I2:
-                       case MONO_TYPE_U2:
-                       case MONO_TYPE_I4:
-                       case MONO_TYPE_U4:
-                       case MONO_TYPE_I:
-                       case MONO_TYPE_U:
-                       case MONO_TYPE_PTR:
-                       case MONO_TYPE_R4:
-                       case MONO_TYPE_SZARRAY:
-                       case MONO_TYPE_CLASS:
-                       case MONO_TYPE_OBJECT:
-                       case MONO_TYPE_STRING:
-                               if (i < aregs && reg_alloc [i] > 0) {
-                                       /* pass in register */
-                                       ARM_LDR_IMM(p, ARMREG_A1 + hasthis + (aregs - reg_alloc [i]), REG_ARGP, i*ARG_SIZE);
-                               } else {
-                                       stack_offs -= sizeof(armword_t);
-                                       ARM_LDR_IMM(p, ARMREG_R0, REG_ARGP, i*ARG_SIZE);
-                                       ARM_STR_IMM(p, ARMREG_R0, ARMREG_SP, stack_offs);
-                               }
-                               break;
-                       case MONO_TYPE_I8:
-                       case MONO_TYPE_U8:
-                       case MONO_TYPE_R8:
-                               if (i < aregs && reg_alloc [i] > 0) {
-                                       if (reg_alloc [i] > 1) {
-                                               /* pass in registers */
-                                               ARM_LDR_IMM(p, ARMREG_A1 + hasthis + (aregs - reg_alloc [i]), REG_ARGP, i*ARG_SIZE);
-                                               ARM_LDR_IMM(p, ARMREG_A1 + hasthis + (aregs - reg_alloc [i]) + 1, REG_ARGP, i*ARG_SIZE + 4);
-                                       } else {
-                                               stack_offs -= sizeof(armword_t);
-                                               ARM_LDR_IMM(p, ARMREG_R0, REG_ARGP, i*ARG_SIZE + 4);
-                                               ARM_STR_IMM(p, ARMREG_R0, ARMREG_SP, stack_offs);
-                                               ARM_LDR_IMM(p, ARMREG_A1 + hasthis + (aregs - reg_alloc [i]), REG_ARGP, i*ARG_SIZE);
-                                       }
-                               } else {
-                                       /* two words transferred on the stack */
-                                       stack_offs -= 2*sizeof(armword_t);
-                                       ARM_LDR_IMM(p, ARMREG_R0, REG_ARGP, i*ARG_SIZE);
-                                       ARM_STR_IMM(p, ARMREG_R0, ARMREG_SP, stack_offs);
-                                       ARM_LDR_IMM(p, ARMREG_R0, REG_ARGP, i*ARG_SIZE + 4);
-                                       ARM_STR_IMM(p, ARMREG_R0, ARMREG_SP, stack_offs + 4);
-                               }
-                               break;
-                       case MONO_TYPE_VALUETYPE:
-                               if (param->data.klass->enumtype) {
-                                       /* it's an enum value, proceed based on its base type */
-                                       simple_type = param->data.klass->enum_basetype->type;
-                                       goto enum_marshal;
-                               } else {
-                                       if (i < aregs && reg_alloc[i] > 0) {
-                                               int vtreg = ARMREG_A1 + hasthis +
-                                                               hasthis + (aregs - reg_alloc[i]);
-                                               ARM_LDR_IMM(p, vtreg, REG_ARGP, i * ARG_SIZE);
-                                               ARM_LDR_IMM(p, vtreg, vtreg, 0);
-                                       } else {
-                                               stack_offs -= sizeof(armword_t);
-                                               ARM_LDR_IMM(p, ARMREG_R0, REG_ARGP, i * ARG_SIZE);
-                                               ARM_LDR_IMM(p, ARMREG_R0, ARMREG_R0, 0);
-                                               ARM_STR_IMM(p, ARMREG_R0, ARMREG_SP, stack_offs);
-                                       }
-                               }
-                               break;
-
-                       default:
-                               break;
-                       }
-               }
-       }
-
-       if (sig->hasthis && !this_loaded) {
-               /* [this] always passed in A1, regardless of sig->call_convention */
-               ARM_MOV_REG_REG(p, ARMREG_A1, REG_THIS);
-       }
-
-       /* call [func] */
-       ARM_MOV_REG_REG(p, ARMREG_LR, ARMREG_PC);
-       ARM_MOV_REG_REG(p, ARMREG_PC, REG_FUNC_ADDR);
-
-       /* handle retval */
-       if (sig->ret->byref || string_ctor) {
-               ARM_STR_IMM(p, ARMREG_R0, REG_RETVAL, 0);
-       } else {
-               simple_type = sig->ret->type;
-enum_retvalue:
-               switch (simple_type) {
-               case MONO_TYPE_BOOLEAN:
-               case MONO_TYPE_I1:
-               case MONO_TYPE_U1:
-                       ARM_STRB_IMM(p, ARMREG_R0, REG_RETVAL, 0);
-                       break;
-               case MONO_TYPE_CHAR:
-               case MONO_TYPE_I2:
-               case MONO_TYPE_U2:
-                       ARM_STRH_IMM(p, ARMREG_R0, REG_RETVAL, 0);
-                       break;
-               /*
-                * A 32-bit integer and integer-equivalent return value
-                * is returned in R0.
-                * Single-precision floating-point values are returned in R0.
-                */
-               case MONO_TYPE_I:
-               case MONO_TYPE_U:
-               case MONO_TYPE_I4:
-               case MONO_TYPE_U4:
-               case MONO_TYPE_R4:
-               case MONO_TYPE_OBJECT:
-               case MONO_TYPE_CLASS:
-               case MONO_TYPE_ARRAY:
-               case MONO_TYPE_SZARRAY:
-               case MONO_TYPE_STRING:
-                       ARM_STR_IMM(p, ARMREG_R0, REG_RETVAL, 0);
-                       break;
-               /*
-                * A 64-bit integer is returned in R0 and R1.
-                * Double-precision floating-point values are returned in R0 and R1.
-                */
-               case MONO_TYPE_I8:
-               case MONO_TYPE_U8:
-               case MONO_TYPE_R8:
-                       ARM_STR_IMM(p, ARMREG_R0, REG_RETVAL, 0);
-                       ARM_STR_IMM(p, ARMREG_R1, REG_RETVAL, 4);
-                       break;
-               case MONO_TYPE_VALUETYPE:
-                       if (sig->ret->data.klass->enumtype) {
-                               simple_type = sig->ret->data.klass->enum_basetype->type;
-                               goto enum_retvalue;
-                       }
-                       break;
-               case MONO_TYPE_VOID:
-                       break;
-               default:
-                       break;
-               }
-       }
-       
-       p = arm_emit_std_epilogue(p, stack_size,
-               /* restore R4-R7 */
-               (1 << ARMREG_R4) | (1 << ARMREG_R5) | (1 << ARMREG_R6) | (1 << ARMREG_R7));
-
-       flush_icache();
-
-#ifdef ARM_DUMP_DISASM
-       _armdis_decode((arminstr_t*)code_buff, ((guint8*)p) - ((guint8*)code_buff));
-#endif
-
-       return code_buff;
-}
-
-
-
-#define MINV_OFFS(member) G_STRUCT_OFFSET(MonoInvocation, member)
-
-
-
-/*
- * Returns a pointer to a native function that can be used to
- * call the specified method.
- * The function created will receive the arguments according
- * to the call convention specified in the method.
- * This function works by creating a MonoInvocation structure,
- * filling the fields in and calling ves_exec_method on it.
- * Still need to figure out how to handle the exception stuff
- * across the managed/unmanaged boundary.
- */
-void* mono_arch_create_method_pointer (MonoMethod* method)
-{
-       MonoMethodSignature* sig;
-       guchar* p, * p_method, * p_stackval_from_data, * p_exec;
-       void* code_buff;
-       int i, stack_size, arg_pos, arg_add, stackval_pos, offs;
-       int areg, reg_args, shift, pos;
-       MonoJitInfo *ji;
-
-       code_buff = alloc_code_buff(128);
-       p = (guchar*)code_buff;
-
-       sig = method->signature;
-
-       ARM_B(p, 3);
-
-       /* embed magic number followed by method pointer */
-       *p++ = 'M';
-       *p++ = 'o';
-       *p++ = 'n';
-       *p++ = 'o';
-       /* method ptr */
-       *(void**)p = method;
-       p_method = p;
-       p += 4;
-
-       /* call table */
-       *(void**)p = stackval_from_data;
-       p_stackval_from_data = p;
-       p += 4;
-       *(void**)p = ves_exec_method;
-       p_exec = p;
-       p += 4;
-
-       stack_size = sizeof(MonoInvocation) + ARG_SIZE*(sig->param_count + 1) + ARM_NUM_ARG_REGS*2*sizeof(armword_t);
-
-       /* prologue */
-       p = (guchar*)arm_emit_lean_prologue((arminstr_t*)p, stack_size,
-           (1 << ARMREG_R4) |
-           (1 << ARMREG_R5) |
-           (1 << ARMREG_R6) |
-           (1 << ARMREG_R7));
-
-       /* R7 - ptr to stack args */
-       ARM_MOV_REG_REG(p, ARMREG_R7, ARMREG_IP);
-
-       /*
-        * Initialize MonoInvocation fields, first the ones known now.
-        */
-       ARM_MOV_REG_IMM8(p, ARMREG_R4, 0);
-       ARM_STR_IMM(p, ARMREG_R4, ARMREG_SP, MINV_OFFS(ex));
-       ARM_STR_IMM(p, ARMREG_R4, ARMREG_SP, MINV_OFFS(ex_handler));
-       ARM_STR_IMM(p, ARMREG_R4, ARMREG_SP, MINV_OFFS(parent));
-
-       /* Set the method pointer. */
-       ARM_LDR_IMM(p, ARMREG_R4, ARMREG_PC, -(int)(p - p_method + sizeof(arminstr_t)*2));
-       ARM_STR_IMM(p, ARMREG_R4, ARMREG_SP, MINV_OFFS(method));
-
-       if (sig->hasthis) {
-               /* [this] in A1 */
-               ARM_STR_IMM(p, ARMREG_A1, ARMREG_SP, MINV_OFFS(obj));
-       } else {
-               /* else set minv.obj to NULL */
-               ARM_STR_IMM(p, ARMREG_R4, ARMREG_SP, MINV_OFFS(obj));
-       }
-
-       /* copy args from registers to stack */
-       areg = ARMREG_A1 + sig->hasthis;
-       arg_pos = -(int)(ARM_NUM_ARG_REGS - sig->hasthis) * 2 * sizeof(armword_t);
-       arg_add = 0;
-       for (i = 0; i < sig->param_count; ++i) {
-               if (areg >= ARM_NUM_ARG_REGS) break;
-               ARM_STR_IMM(p, areg, ARMREG_R7, arg_pos);
-               ++areg;
-               if (!sig->params[i]->byref) {
-                       switch (sig->params[i]->type) {
-                       case MONO_TYPE_I8:
-                       case MONO_TYPE_U8:
-                       case MONO_TYPE_R8:
-                               if (areg >= ARM_NUM_ARG_REGS) {
-                                       /* load second half of 64-bit arg */
-                                       ARM_LDR_IMM(p, ARMREG_R4, ARMREG_R7, 0);
-                                       ARM_STR_IMM(p, ARMREG_R4, ARMREG_R7, arg_pos + sizeof(armword_t));
-                                       arg_add = sizeof(armword_t);
-                               } else {
-                                       /* second half is already the register */
-                                       ARM_STR_IMM(p, areg, ARMREG_R7, arg_pos + sizeof(armword_t));
-                                       ++areg;
-                               }
-                               break;
-                       case MONO_TYPE_VALUETYPE:
-                               /* assert */
-                       default:
-                               break;
-                       }
-               }
-               arg_pos += 2 * sizeof(armword_t);
-       }
-       /* number of args passed in registers */
-       reg_args = i;
-
-
-
-       /*
-        * Calc and save stack args ptr,
-        * args follow MonoInvocation struct on the stack.
-        */
-       ARM_ADD_REG_IMM8(p, ARMREG_R1, ARMREG_SP, sizeof(MonoInvocation));
-       ARM_STR_IMM(p, ARMREG_R1, ARMREG_SP, MINV_OFFS(stack_args));
-
-       /* convert method args to stackvals */
-       arg_pos = -(int)(ARM_NUM_ARG_REGS - sig->hasthis) * 2 * sizeof(armword_t);
-       stackval_pos = sizeof(MonoInvocation);
-       for (i = 0; i < sig->param_count; ++i) {
-               if (i < reg_args) {
-                       ARM_SUB_REG_IMM8(p, ARMREG_A3, ARMREG_R7, -arg_pos);
-                       arg_pos += 2 * sizeof(armword_t);
-               } else {
-                       if (arg_pos < 0) arg_pos = 0;
-                       pos = arg_pos + arg_add;
-                       if (pos <= 0xFF) {
-                               ARM_ADD_REG_IMM8(p, ARMREG_A3, ARMREG_R7, pos);
-                       } else {
-                               if (is_arm_const((armword_t)pos)) {
-                                       shift = calc_arm_mov_const_shift((armword_t)pos);
-                                       ARM_ADD_REG_IMM(p, ARMREG_A3, ARMREG_R7, pos >> ((32 - shift) & 31), shift >> 1);
-                               } else {
-                                       p = (guchar*)arm_mov_reg_imm32((arminstr_t*)p, ARMREG_R6, (armword_t)pos);
-                                       ARM_ADD_REG_REG(p, ARMREG_A2, ARMREG_R7, ARMREG_R6);
-                               }
-                       }
-                       arg_pos += sizeof(armword_t);
-                       if (!sig->params[i]->byref) {
-                               switch (sig->params[i]->type) {
-                               case MONO_TYPE_I8:
-                               case MONO_TYPE_U8:
-                               case MONO_TYPE_R8:
-                                       arg_pos += sizeof(armword_t);
-                                       break;
-                               case MONO_TYPE_VALUETYPE:
-                                       /* assert */
-                               default:
-                                       break;
-                               }
-                       }
-               }
-
-               /* A2 = result */
-               if (stackval_pos <= 0xFF) {
-                       ARM_ADD_REG_IMM8(p, ARMREG_A2, ARMREG_SP, stackval_pos);
-               } else {
-                       if (is_arm_const((armword_t)stackval_pos)) {
-                               shift = calc_arm_mov_const_shift((armword_t)stackval_pos);
-                               ARM_ADD_REG_IMM(p, ARMREG_A2, ARMREG_SP, stackval_pos >> ((32 - shift) & 31), shift >> 1);
-                       } else {
-                               p = (guchar*)arm_mov_reg_imm32((arminstr_t*)p, ARMREG_R6, (armword_t)stackval_pos);
-                               ARM_ADD_REG_REG(p, ARMREG_A2, ARMREG_SP, ARMREG_R6);
-                       }
-               }
-
-               /* A1 = type */
-               p = (guchar*)arm_mov_reg_imm32((arminstr_t*)p, ARMREG_A1, (armword_t)sig->params [i]);
-
-               stackval_pos += ARG_SIZE;
-
-               offs = -(p + 2*sizeof(arminstr_t) - p_stackval_from_data);
-               /* load function address */
-               ARM_LDR_IMM(p, ARMREG_R4, ARMREG_PC, offs);
-               /* call stackval_from_data */
-               ARM_MOV_REG_REG(p, ARMREG_LR, ARMREG_PC);
-               ARM_MOV_REG_REG(p, ARMREG_PC, ARMREG_R4);
-       }
-
-       /* store retval ptr */
-       p = (guchar*)arm_mov_reg_imm32((arminstr_t*)p, ARMREG_R5, (armword_t)stackval_pos);
-       ARM_ADD_REG_REG(p, ARMREG_R5, ARMREG_SP, ARMREG_R4);
-       ARM_STR_IMM(p, ARMREG_R5, ARMREG_SP, MINV_OFFS(retval));
-
-       /*
-        * Call the method.
-        */
-       /* A1 = MonoInvocation ptr */
-       ARM_MOV_REG_REG(p, ARMREG_A1, ARMREG_SP);
-       offs = -(p + 2*sizeof(arminstr_t) - p_exec);
-       /* load function address */
-       ARM_LDR_IMM(p, ARMREG_R4, ARMREG_PC, offs);
-       /* call ves_exec */
-       ARM_MOV_REG_REG(p, ARMREG_LR, ARMREG_PC);
-       ARM_MOV_REG_REG(p, ARMREG_PC, ARMREG_R4);
-
-
-       /*
-        * Move retval into reg.
-        */
-       if (sig->ret->byref) {
-               ARM_LDR_IMM(p, ARMREG_R0, ARMREG_R5, 0);
-       } else {
-               switch (sig->ret->type) {
-               case MONO_TYPE_BOOLEAN:
-               case MONO_TYPE_I1:
-               case MONO_TYPE_U1:
-                       ARM_LDRB_IMM(p, ARMREG_R0, ARMREG_R5, 0);
-                       break;
-               case MONO_TYPE_CHAR:
-               case MONO_TYPE_I2:
-               case MONO_TYPE_U2:
-                       ARM_LDRH_IMM(p, ARMREG_R0, ARMREG_R5, 0);
-                       break;
-               case MONO_TYPE_I:
-               case MONO_TYPE_U:
-               case MONO_TYPE_I4:
-               case MONO_TYPE_U4:
-               case MONO_TYPE_R4:
-               case MONO_TYPE_OBJECT:
-               case MONO_TYPE_CLASS:
-               case MONO_TYPE_ARRAY:
-               case MONO_TYPE_SZARRAY:
-                       ARM_LDR_IMM(p, ARMREG_R0, ARMREG_R5, 0);
-                       break;
-               case MONO_TYPE_I8:
-               case MONO_TYPE_U8:
-               case MONO_TYPE_R8:
-                       ARM_LDR_IMM(p, ARMREG_R0, ARMREG_R5, 0);
-                       ARM_LDR_IMM(p, ARMREG_R1, ARMREG_R5, 4);
-                       break;
-               case MONO_TYPE_VOID:
-               default:
-                       break;
-               }
-       }
-
-
-       p = (guchar*)arm_emit_std_epilogue((arminstr_t*)p, stack_size,
-           (1 << ARMREG_R4) |
-           (1 << ARMREG_R5) |
-           (1 << ARMREG_R6) |
-           (1 << ARMREG_R7));
-
-       flush_icache();
-
-#ifdef ARM_DUMP_DISASM
-       _armdis_decode((arminstr_t*)code_buff, ((guint8*)p) - ((guint8*)code_buff));
-#endif
-
-       ji = g_new0(MonoJitInfo, 1);
-       ji->method = method;
-       ji->code_size = ((guint8 *) p) - ((guint8 *) code_buff);
-       ji->code_start = (gpointer) code_buff;
-
-       mono_jit_info_table_add(mono_get_root_domain (), ji);
-
-       return code_buff;
-}
-
-
-/*
- * mono_create_method_pointer () will insert a pointer to the MonoMethod
- * so that the interp can easily get at the data: this function will retrieve 
- * the method from the code stream.
- */
-MonoMethod* mono_method_pointer_get (void* code)
-{
-       unsigned char* c = code;
-       /* check out magic number that follows unconditional branch */
-       if (c[4] == 'M' &&
-           c[5] == 'o' &&
-           c[6] == 'n' &&
-           c[7] == 'o') return ((MonoMethod**)code)[2];
-       return NULL;
-}
-#endif
index 05e83101039c2aef3d8c99a8bf48206ddf948650..9e219a3b61f84fd86b40dd52f95fc3a15847360e 100644 (file)
@@ -242,6 +242,14 @@ typedef struct {
        char    r2 : 4;
 } RRF_Format_3;
 
+typedef struct {
+       short   op;
+       char    m3 : 4;
+       char    m4 : 4;
+       char    r1 : 4;
+       char    r2 : 4;
+} RRF_Format_4;
+
 typedef struct {
        char    op;
        char    r1 : 4;
@@ -502,6 +510,8 @@ typedef struct {
 
 #define S390_RRF_3(c,opc,g1,g2,k4,g3)  s390_emit32(c, (opc << 16 | (g3) << 12 | (k4) << 8 | (g1) << 4 | g2))
 
+#define S390_RRF_4(c,opc,g1,m3,g2,m4)  s390_emit32(c, (opc << 16 | (m3) << 12 | (m4) << 8 | (g1) << 4 | g2))
+
 #define S390_RX(c,opc,g1,n2,s2,p2)     s390_emit32(c, (opc << 24 | (g1) << 20 | (n2) << 16 | (s2) << 12 | ((p2) & 0xfff)))
 
 #define S390_RXE(c,opc,g1,n2,s2,p2) do                         \
@@ -712,6 +722,7 @@ typedef struct {
 #define s390_ar(c, r1, r2)             S390_RR(c, 0x1a, r1, r2)
 #define s390_ark(c, r1, r2, r3)                S390_RRF_1(c, 0xb9f8, r1, r2, r3)
 #define s390_asi(c, r, v)              S390_SIY(c, 0xeb6a, r, v)
+#define s390_axbr(c, r1, r2)           S390_RRE(c, 0xb34a, r1, r2)
 #define s390_ay(c, r, x, b, d)         S390_RXY(c, 0xe35a, r, x, b, d)
 #define s390_basr(c, r1, r2)           S390_RR(c, 0x0d, r1, r2)
 #define s390_bctr(c, r1, r2)           S390_RR(c, 0x06, r1, r2)
@@ -729,6 +740,8 @@ typedef struct {
 #define s390_cdbr(c, r1, r2)           S390_RRE(c, 0xb319, r1, r2)
 #define s390_cdfbr(c, r1, r2)          S390_RRE(c, 0xb395, r1, r2)
 #define s390_cdgbr(c, r1, r2)          S390_RRE(c, 0xb3a5, r1, r2)
+#define s390_cdlfbr(c, r1, m3, r2, m4) S390_RRF_4(c, 0xb391, r1, m3, r2, m4)
+#define s390_cdlgbr(c, r1, m3, r2, m4) S390_RRF_4(c, 0xb3a1, r1, m3, r2, m4)
 #define s390_cds(c, r1, r2, b, d)      S390_RX(c, 0xbb, r1, r2, b, d)
 #define s390_cdsg(c, r1, r2, b, d)     S390_RSY_1(c, 0xeb3e, r1, r2, b, d)
 #define s390_cdsy(c, r1, r2, b, d)     S390_RSY_1(c, 0xeb31, r1, r2, b, d)
@@ -753,10 +766,12 @@ typedef struct {
 #define s390_cij(c, r, i, m, d)                S390_RIE_3(c, 0xec7e, r, i, m, d)
 #define s390_cit(c, r, i, m)           S390_RIE_4(c, 0xec72, r, i m);
 #define s390_cl(c, r, x, b, d)         S390_RX(c, 0x55, r, x, b, d)
+#define s390_clfdbr(c, r1, m3, r2, m4) S390_RRF_4(c, 0xb39d, r1, m3, r2, m4)
 #define s390_clg(c, r, x, b, d)                S390_RXY(c, 0xe321, r, x, b, d)
 #define s390_clgib(c, r, i, m, b, d)   S390_RIS(c, 0xecfd, r, i, m, b, d)
 #define s390_clgij(c, r, i, b)         S390_RIE_3(c, 0xec7d, r, i, m, d)
 #define s390_clgr(c, r1, r2)           S390_RRE(c, 0xb921, r1, r2)
+#define s390_clgdbr(c, r1, m3, r2, m4) S390_RRF_4(c, 0xb3ad, r1, m3, r2, m4)
 #define s390_clgrj(c, r1, r2, m, v)    S390_RIE_2(c, 0xec65, r1, r2, m, v)
 #define s390_clgrb(c, r1, r2, m3, b, d)        S390_RRS(c, 0xece5, r1, r2, m3, b, d)
 #define s390_cli(c, b, d, v)           S390_SI(c, 0x95, b, d, v)
@@ -775,6 +790,7 @@ typedef struct {
 #define s390_csg(c, r1, r2, b, d)      S390_RSY_1(c, 0xeb30, r1, r2, b, d)
 #define s390_csst(c, d1, b1, d2, b2, r)        S390_SSF(c, 0xc82, b1, d1, b2, d2, r)
 #define s390_csy(c, r1, r2, b, d)      S390_RSY_1(c, 0xeb14, r1, r2, b, d)
+#define s390_cxgbr(c, r1, r2)          S390_RRE(c, 0xb3a6, r1, r2)
 #define s390_ddbr(c, r1, r2)           S390_RRE(c, 0xb31d, r1, r2)
 #define s390_debr(c, r1, r2)           S390_RRE(c, 0xb30d, r1, r2)
 #define s390_didbr(c, r1, r2, m, r3)    S390_RRF_3(c, 0xb35b, r1, r2, m, r3)
@@ -848,6 +864,7 @@ typedef struct {
 #define s390_ldeb(c, r, x, b, d)       S390_RXE(c, 0xed04, r, x, b, d)
 #define s390_ldebr(c, r1, r2)          S390_RRE(c, 0xb304, r1, r2)
 #define s390_ldgr(c, r1, r2)           S390_RRE(c, 0xb3c1, r1, r2)
+#define s390_ldxbr(c, r1, r2)          S390_RRE(c, 0xb345, r1, r2)
 #define s390_ldr(c, r1, r2)            S390_RR(c, 0x28, r1, r2)
 #define s390_le(c, f, x, b, d)         S390_RX(c, 0x78, f, x, b, d)
 #define s390_ledbr(c, r1, r2)          S390_RRE(c, 0xb344, r1, r2)
@@ -941,7 +958,7 @@ typedef struct {
 #define s390_oihl(c, r, v)             S390_RI(c, 0xa59, r, v)
 #define s390_oilf(c, r, v)             S390_RIL_1(c, 0xc0d, r, v)
 #define s390_oilh(c, r, v)             S390_RI(c, 0xa5a, r, v)
-#define s390_oill(c, r, v)             S390_RI(c, 0xa5b` r, v)
+#define s390_oill(c, r, v)             S390_RI(c, 0xa5b, r, v)
 #define s390_oiy(c, b, d, v)           S390_SIY(c, 0xeb56 b, d, v) 
 #define s390_og(c, r, x, b, d)         S390_RXY(c, 0xe381, r, x, b, d)
 #define s390_ogr(c, r1, r2)            S390_RRE(c, 0xb981, r1, r2)
index c938f9e4bbb9de64fcd9db711cf891aa6fdd6e68..c5d4fbeb70e94f400e7824cc1db1373a6f465094 100644 (file)
@@ -79,11 +79,8 @@ extern gboolean _wapi_handle_count_signalled_handles (guint32 numhandles,
                                                      guint32 *lowest);
 extern void _wapi_handle_unlock_handles (guint32 numhandles,
                                         gpointer *handles);
-extern int _wapi_handle_wait_signal (gboolean poll);
-extern int _wapi_handle_timedwait_signal (struct timespec *timeout, gboolean poll);
-extern int _wapi_handle_wait_signal_handle (gpointer handle, gboolean alertable);
-extern int _wapi_handle_timedwait_signal_handle (gpointer handle,
-                                                                                                struct timespec *timeout, gboolean alertable, gboolean poll);
+extern int _wapi_handle_timedwait_signal (struct timespec *timeout, gboolean poll, gboolean *alerted);
+extern int _wapi_handle_timedwait_signal_handle (gpointer handle, struct timespec *timeout, gboolean alertable, gboolean poll, gboolean *alerted);
 extern gboolean _wapi_handle_get_or_set_share (guint64 device, guint64 inode,
                                               guint32 new_sharemode,
                                               guint32 new_access,
index c6657dea405fae40128ca2d373287dabc312e384..63d225aab6cfa63cf1e7ad9f665a894e4b54bfb3 100644 (file)
@@ -45,6 +45,7 @@
 
 #include <mono/utils/mono-mutex.h>
 #include <mono/utils/mono-proclib.h>
+#include <mono/utils/mono-threads.h>
 #undef DEBUG_REFS
 
 #if 0
@@ -1537,29 +1538,50 @@ static int timedwait_signal_poll_cond (pthread_cond_t *cond, mono_mutex_t *mutex
        return(ret);
 }
 
-int _wapi_handle_wait_signal (gboolean poll)
+int
+_wapi_handle_timedwait_signal (struct timespec *timeout, gboolean poll, gboolean *alerted)
 {
-       return _wapi_handle_timedwait_signal_handle (_wapi_global_signal_handle, NULL, TRUE, poll);
+       return _wapi_handle_timedwait_signal_handle (_wapi_global_signal_handle, timeout, TRUE, poll, alerted);
 }
 
-int _wapi_handle_timedwait_signal (struct timespec *timeout, gboolean poll)
+static void
+signal_handle_and_unref (gpointer handle)
 {
-       return _wapi_handle_timedwait_signal_handle (_wapi_global_signal_handle, timeout, TRUE, poll);
-}
+       pthread_cond_t *cond;
+       mono_mutex_t *mutex;
+       guint32 idx;
 
-int _wapi_handle_wait_signal_handle (gpointer handle, gboolean alertable)
-{
-       DEBUG ("%s: waiting for %p", __func__, handle);
-       
-       return _wapi_handle_timedwait_signal_handle (handle, NULL, alertable, FALSE);
+       g_assert (handle);
+
+       /* If we reach here, then interrupt token is set to the flag value, which
+        * means that the target thread is either
+        * - before the first CAS in timedwait, which means it won't enter the wait.
+        * - it is after the first CAS, so it is already waiting, or it will enter
+        *    the wait, and it will be interrupted by the broadcast. */
+       idx = GPOINTER_TO_UINT (handle);
+       cond = &_WAPI_PRIVATE_HANDLES (idx).signal_cond;
+       mutex = &_WAPI_PRIVATE_HANDLES (idx).signal_mutex;
+
+       mono_mutex_lock (mutex);
+       mono_cond_broadcast (cond);
+       mono_mutex_unlock (mutex);
+
+       _wapi_handle_unref (handle);
 }
 
-int _wapi_handle_timedwait_signal_handle (gpointer handle,
-                                                                                 struct timespec *timeout, gboolean alertable, gboolean poll)
+int
+_wapi_handle_timedwait_signal_handle (gpointer handle, struct timespec *timeout,
+               gboolean alertable, gboolean poll, gboolean *alerted)
 {
        DEBUG ("%s: waiting for %p (type %s)", __func__, handle,
                   _wapi_handle_typename[_wapi_handle_type (handle)]);
-       
+
+       if (alertable)
+               g_assert (alerted);
+
+       if (alerted)
+               *alerted = FALSE;
+
        if (_WAPI_SHARED_HANDLE (_wapi_handle_type (handle))) {
                if (WAPI_SHARED_HANDLE_DATA(handle).signalled == TRUE) {
                        return (0);
@@ -1593,8 +1615,12 @@ int _wapi_handle_timedwait_signal_handle (gpointer handle,
                pthread_cond_t *cond;
                mono_mutex_t *mutex;
 
-               if (alertable && !wapi_thread_set_wait_handle (handle))
-                       return 0;
+               if (alertable) {
+                       mono_thread_info_install_interrupt (signal_handle_and_unref, handle, alerted);
+                       if (*alerted)
+                               return 0;
+                       _wapi_handle_ref (handle);
+               }
 
                cond = &_WAPI_PRIVATE_HANDLES (idx).signal_cond;
                mutex = &_WAPI_PRIVATE_HANDLES (idx).signal_mutex;
@@ -1609,8 +1635,13 @@ int _wapi_handle_timedwait_signal_handle (gpointer handle,
                                res = mono_cond_wait (cond, mutex);
                }
 
-               if (alertable)
-                       wapi_thread_clear_wait_handle (handle);
+               if (alertable) {
+                       mono_thread_info_uninstall_interrupt (alerted);
+                       if (!*alerted) {
+                               /* if it is alerted, then the handle is unref in the interrupt callback */
+                               _wapi_handle_unref (handle);
+                       }
+               }
 
                return res;
        }
@@ -1787,7 +1818,7 @@ static void _wapi_handle_check_share_by_pid (struct _WapiFileShare *share_info)
 {
 #if defined(__native_client__)
        g_assert_not_reached ();
-#else
+#elif defined(HAVE_KILL)
        if (kill (share_info->opened_by_pid, 0) == -1 &&
            (errno == ESRCH ||
             errno == EPERM)) {
index a57d8aaeb7ad287a7eebf321b6ddf9e2b5c648ad..48a9687782942f77254e57fa0b6bed58ea884cbc 100644 (file)
@@ -178,7 +178,9 @@ is_pid_valid (pid_t pid)
 {
        gboolean result = FALSE;
 
-#if defined(PLATFORM_MACOSX) || defined(__OpenBSD__) || defined(__FreeBSD__)
+#if defined(HOST_WATCHOS)
+       result = TRUE; // TODO: Rewrite using sysctl
+#elif defined(PLATFORM_MACOSX) || defined(__OpenBSD__) || defined(__FreeBSD__)
        if (((kill(pid, 0) == 0) || (errno == EPERM)) && pid != 0)
                result = TRUE;
 #elif defined(__HAIKU__)
@@ -552,6 +554,7 @@ gboolean CreateProcess (const gunichar2 *appname, const gunichar2 *cmdline,
                        WapiStartupInfo *startup,
                        WapiProcessInformation *process_info)
 {
+#if defined (HAVE_FORK) && defined (HAVE_EXECVE)
        char *cmd = NULL, *prog = NULL, *full_prog = NULL, *args = NULL, *args_after_prog = NULL;
        char *dir = NULL, **env_strings = NULL, **argv = NULL;
        guint32 i, env_count = 0;
@@ -815,11 +818,11 @@ gboolean CreateProcess (const gunichar2 *appname, const gunichar2 *cmdline,
 
                if (newapp != NULL) {
                        if (appname != NULL) {
-                               newcmd = utf16_concat (newapp, utf16_space,
+                               newcmd = utf16_concat (utf16_quote, newapp, utf16_quote, utf16_space,
                                                       appname, utf16_space,
                                                       cmdline, NULL);
                        } else {
-                               newcmd = utf16_concat (newapp, utf16_space,
+                               newcmd = utf16_concat (utf16_quote, newapp, utf16_quote, utf16_space,
                                                       cmdline, NULL);
                        }
                        
@@ -1096,6 +1099,10 @@ free_strings:
        mono_processes_cleanup ();
        
        return ret;
+#else
+       SetLastError (ERROR_NOT_SUPPORTED);
+       return FALSE;
+#endif // defined (HAVE_FORK) && defined (HAVE_EXECVE)
 }
                
 static void
@@ -1862,7 +1869,31 @@ get_process_name_from_proc (pid_t pid)
        /* No proc name on OSX < 10.5 nor ppc nor iOS */
        memset (buf, '\0', sizeof(buf));
        proc_name (pid, buf, sizeof(buf));
-       if (strlen (buf) > 0)
+
+       // Fixes proc_name triming values to 15 characters #32539
+       if (strlen (buf) >= MAXCOMLEN - 1) {
+               char path_buf [PROC_PIDPATHINFO_MAXSIZE];
+               char *name_buf;
+               int path_len;
+
+               memset (path_buf, '\0', sizeof(path_buf));
+               path_len = proc_pidpath (pid, path_buf, sizeof(path_buf));
+
+               if (path_len > 0 && path_len < sizeof(path_buf)) {
+                       name_buf = path_buf + path_len;
+                       for(;name_buf > path_buf; name_buf--) {
+                               if (name_buf [0] == '/') {
+                                       name_buf++;
+                                       break;
+                               }
+                       }
+
+                       if (memcmp (buf, name_buf, MAXCOMLEN - 1) == 0)
+                               ret = g_strdup (name_buf);
+               }
+       }
+
+       if (ret == NULL && strlen (buf) > 0)
                ret = g_strdup (buf);
 #else
        if (sysctl(mib, 4, NULL, &size, NULL, 0) < 0)
@@ -2169,6 +2200,44 @@ get_module_name (gpointer process, gpointer module,
        return 0;
 }
 
+static guint32
+get_module_filename (gpointer process, gpointer module,
+                                        gunichar2 *basename, guint32 size)
+{
+       int pid, len;
+       gsize bytes;
+       char *path;
+       gunichar2 *proc_path;
+       
+       pid = GetProcessId (process);
+
+       path = wapi_process_get_path (pid);
+       if (path == NULL)
+               return 0;
+
+       proc_path = mono_unicode_from_external (path, &bytes);
+       if (proc_path == NULL)
+               return 0;
+
+       len = (bytes / 2);
+       
+       /* Add the terminator */
+       bytes += 2;
+
+       if (size < bytes) {
+               DEBUG ("%s: Size %d smaller than needed (%ld); truncating", __func__, size, bytes);
+
+               memcpy (basename, proc_path, size);
+       } else {
+               DEBUG ("%s: Size %d larger than needed (%ld)",
+                          __func__, size, bytes);
+
+               memcpy (basename, proc_path, bytes);
+       }
+
+       return len;
+}
+
 guint32
 GetModuleBaseName (gpointer process, gpointer module,
                                   gunichar2 *basename, guint32 size)
@@ -2180,7 +2249,7 @@ guint32
 GetModuleFileNameEx (gpointer process, gpointer module,
                                         gunichar2 *filename, guint32 size)
 {
-       return get_module_name (process, module, filename, size, FALSE);
+       return get_module_filename (process, module, filename, size);
 }
 
 gboolean
@@ -2313,6 +2382,7 @@ SetProcessWorkingSetSize (gpointer process, size_t min, size_t max)
 gboolean
 TerminateProcess (gpointer process, gint32 exitCode)
 {
+#if defined(HAVE_KILL)
        WapiHandle_process *process_handle;
        int signo;
        int ret;
@@ -2350,6 +2420,10 @@ TerminateProcess (gpointer process, gint32 exitCode)
        }
        
        return (ret == 0);
+#else
+       g_error ("kill() is not supported by this platform");
+       return FALSE;
+#endif
 }
 
 guint32
index e9f8f9c8813af499e66b6191b97b1c37e6c400c8..3ea1af1197884f7efaa31af5c52d7e52b970c7d5 100644 (file)
 
 extern struct _WapiHandleOps _wapi_thread_ops;
 
-#define INTERRUPTION_REQUESTED_HANDLE (gpointer)0xFFFFFFFE
-
 struct _WapiHandle_thread
 {
        pthread_t id;
        GPtrArray *owned_mutexes;
-       /* 
-     * Handle this thread waits on. If this is INTERRUPTION_REQUESTED_HANDLE,
-        * it means the thread is interrupted by another thread, and shouldn't enter
-        * a wait.
-        * This also acts as a reference for the handle.
-        */
-       gpointer wait_handle;
 };
 
 typedef struct _WapiHandle_thread WapiHandle_thread;
 
-extern gboolean _wapi_thread_apc_pending (gpointer handle);
 extern gboolean _wapi_thread_cur_apc_pending (void);
 extern void _wapi_thread_own_mutex (gpointer mutex);
 extern void _wapi_thread_disown_mutex (gpointer mutex);
index 13b6bd1401f0b9192d258690f512272d7176e71e..a756a40fb64a7f42dd96e4b70bcda5252afd34eb 100644 (file)
@@ -30,14 +30,6 @@ extern gsize GetCurrentThreadId(void); /* NB return is 32bit in MS API */
 extern void Sleep(guint32 ms);
 extern guint32 SleepEx(guint32 ms, gboolean alertable);
 
-void wapi_clear_interruption (void);
-gboolean wapi_thread_set_wait_handle (gpointer handle);
-void wapi_thread_clear_wait_handle (gpointer handle);
-void wapi_self_interrupt (void);
-
-gpointer wapi_prepare_interrupt_thread (gpointer thread_handle);
-void wapi_finish_interrupt_thread (gpointer wait_handle);
-
 gpointer wapi_create_thread_handle (void);
 void wapi_thread_handle_set_exited (gpointer handle, guint32 exitstatus);
 void wapi_ref_thread_handle (gpointer handle);
index 8bdf39bdbf8ac54d05257c7365b73feb8b902b94..42fc96fe4fb6ad14bdeb451437b48b1bc0b0ac53 100644 (file)
@@ -130,12 +130,10 @@ guint32 WaitForSingleObjectEx(gpointer handle, guint32 timeout,
 
                ret = _wapi_handle_ops_special_wait (handle, timeout, alertable);
        
-               if (alertable && _wapi_thread_apc_pending (current_thread)) {
-                       apc_pending = TRUE;
+               if (alertable && _wapi_thread_cur_apc_pending ())
                        ret = WAIT_IO_COMPLETION;
-               }
 
-               goto check_pending;
+               return ret;
        }
        
        
@@ -153,13 +151,7 @@ guint32 WaitForSingleObjectEx(gpointer handle, guint32 timeout,
                        goto done;
                }
        }
-       
-       if (alertable && _wapi_thread_apc_pending (current_thread)) {
-               apc_pending = TRUE;
-               ret = WAIT_IO_COMPLETION;
-               goto done;
-       }
-       
+
        if (own_if_signalled (handle) == TRUE) {
                DEBUG ("%s: handle %p already signalled", __func__,
                           handle);
@@ -189,15 +181,8 @@ guint32 WaitForSingleObjectEx(gpointer handle, guint32 timeout,
                        ret = WAIT_OBJECT_0;
                        goto done;
                }
-                       
-               if (timeout == INFINITE) {
-                       waited = _wapi_handle_wait_signal_handle (handle, alertable);
-               } else {
-                       waited = _wapi_handle_timedwait_signal_handle (handle, &abstime, alertable, FALSE);
-               }
-       
-               if (alertable)
-                       apc_pending = _wapi_thread_apc_pending (current_thread);
+
+               waited = _wapi_handle_timedwait_signal_handle (handle, timeout == INFINITE ? NULL : &abstime, alertable, FALSE, &apc_pending);
 
                if(waited==0 && !apc_pending) {
                        /* Condition was signalled, so hopefully
@@ -220,19 +205,15 @@ guint32 WaitForSingleObjectEx(gpointer handle, guint32 timeout,
        DEBUG ("%s: wait on handle %p error: %s", __func__, handle,
                   strerror (waited));
 
-       ret = WAIT_TIMEOUT;
-       
+       ret = apc_pending ? WAIT_IO_COMPLETION : WAIT_TIMEOUT;
+
 done:
 
        DEBUG ("%s: unlocking handle %p", __func__, handle);
        
        thr_ret = _wapi_handle_unlock_handle (handle);
        g_assert (thr_ret == 0);
-       
-check_pending:
-       if (apc_pending)
-               ret = WAIT_IO_COMPLETION;
-               
+
        return(ret);
 }
 
@@ -351,13 +332,7 @@ guint32 SignalObjectAndWait(gpointer signal_handle, gpointer wait,
                        goto done;
                }
        }
-       
-       if (alertable && _wapi_thread_apc_pending (current_thread)) {
-               apc_pending = TRUE;
-               ret = WAIT_IO_COMPLETION;
-               goto done;
-       }
-       
+
        if (own_if_signalled (wait)) {
                DEBUG ("%s: handle %p already signalled", __func__, wait);
 
@@ -381,16 +356,8 @@ guint32 SignalObjectAndWait(gpointer signal_handle, gpointer wait,
                        ret = WAIT_OBJECT_0;
                        goto done;
                }
-               
-               if (timeout == INFINITE) {
-                       waited = _wapi_handle_wait_signal_handle (wait, alertable);
-               } else {
-                       waited = _wapi_handle_timedwait_signal_handle (wait, &abstime, alertable, FALSE);
-               }
 
-               if (alertable) {
-                       apc_pending = _wapi_thread_apc_pending (current_thread);
-               }
+               waited = _wapi_handle_timedwait_signal_handle (wait, timeout == INFINITE ? NULL : &abstime, alertable, FALSE, &apc_pending);
 
                if (waited==0 && !apc_pending) {
                        /* Condition was signalled, so hopefully
@@ -413,8 +380,8 @@ guint32 SignalObjectAndWait(gpointer signal_handle, gpointer wait,
        DEBUG ("%s: wait on handle %p error: %s", __func__, wait,
                   strerror (ret));
 
-       ret = WAIT_TIMEOUT;
-       
+       ret = apc_pending ? WAIT_IO_COMPLETION : WAIT_TIMEOUT;
+
 done:
 
        DEBUG ("%s: unlocking handle %p", __func__, wait);
@@ -422,9 +389,6 @@ done:
        thr_ret = _wapi_handle_unlock_handle (wait);
        g_assert (thr_ret == 0);
 
-       if (apc_pending)
-               ret = WAIT_IO_COMPLETION;
-       
        return(ret);
 }
 
@@ -500,6 +464,7 @@ guint32 WaitForMultipleObjectsEx(guint32 numobjects, gpointer *handles,
        guint32 retval;
        gboolean poll;
        gpointer sorted_handles [MAXIMUM_WAIT_OBJECTS];
+       gboolean apc_pending = FALSE;
        
        if (current_thread == NULL) {
                SetLastError (ERROR_INVALID_HANDLE);
@@ -590,9 +555,6 @@ guint32 WaitForMultipleObjectsEx(guint32 numobjects, gpointer *handles,
                _wapi_calc_timeout (&abstime, timeout);
        }
 
-       if (alertable && _wapi_thread_apc_pending (current_thread))
-               return WAIT_IO_COMPLETION;
-       
        for (i = 0; i < numobjects; i++) {
                /* Add a reference, as we need to ensure the handle wont
                 * disappear from under us while we're waiting in the loop
@@ -633,11 +595,7 @@ guint32 WaitForMultipleObjectsEx(guint32 numobjects, gpointer *handles,
                
                if (!done) {
                        /* Enter the wait */
-                       if (timeout == INFINITE) {
-                               ret = _wapi_handle_wait_signal (poll);
-                       } else {
-                               ret = _wapi_handle_timedwait_signal (&abstime, poll);
-                       }
+                       ret = _wapi_handle_timedwait_signal (timeout == INFINITE ? NULL : &abstime, poll, &apc_pending);
                } else {
                        /* No need to wait */
                        ret = 0;
@@ -648,7 +606,7 @@ guint32 WaitForMultipleObjectsEx(guint32 numobjects, gpointer *handles,
                thr_ret = _wapi_handle_unlock_signal_mutex (NULL);
                g_assert (thr_ret == 0);
                
-               if (alertable && _wapi_thread_apc_pending (current_thread)) {
+               if (alertable && apc_pending) {
                        retval = WAIT_IO_COMPLETION;
                        break;
                }
index 90a8cc4ffa855b6690c0895b78f9778b096f8b1b..910cb9af35920e3edf5933eb1939a13ea0bc4a09 100644 (file)
@@ -243,7 +243,7 @@ SleepEx (guint32 ms, gboolean alertable)
        if (alertable) {
                current_thread = get_current_thread_handle ();
                
-               if (_wapi_thread_apc_pending (current_thread))
+               if (_wapi_thread_cur_apc_pending ())
                        return WAIT_IO_COMPLETION;
        }
        
@@ -271,7 +271,7 @@ SleepEx (guint32 ms, gboolean alertable)
        while (TRUE) {
                ret = clock_nanosleep (CLOCK_MONOTONIC, TIMER_ABSTIME, &target, NULL);
 
-               if (alertable && _wapi_thread_apc_pending (current_thread))
+               if (alertable && _wapi_thread_cur_apc_pending ())
                        return WAIT_IO_COMPLETION;
 
                if (ret == 0)
@@ -288,7 +288,7 @@ again:
        memset (&rem, 0, sizeof (rem));
        ret=nanosleep(&req, &rem);
 
-       if (alertable && _wapi_thread_apc_pending (current_thread))
+       if (alertable && _wapi_thread_cur_apc_pending ())
                return WAIT_IO_COMPLETION;
        
        if(ret==-1) {
@@ -316,182 +316,7 @@ Sleep(guint32 ms)
 gboolean
 _wapi_thread_cur_apc_pending (void)
 {
-       return _wapi_thread_apc_pending (get_current_thread_handle ());
-}
-
-gboolean
-_wapi_thread_apc_pending (gpointer handle)
-{
-       WapiHandle_thread *thread;
-
-       thread = lookup_thread (handle);
-       
-       return thread->wait_handle == INTERRUPTION_REQUESTED_HANDLE;
-}
-
-/*
- * wapi_interrupt_thread:
- *
- * The state of the thread handle HANDLE is set to 'interrupted' which means that
- * if the thread calls one of the WaitFor functions, the function will return with 
- * WAIT_IO_COMPLETION instead of waiting. Also, if the thread was waiting when
- * this function was called, the wait will be broken.
- * It is possible that the wait functions return WAIT_IO_COMPLETION, but the
- * target thread didn't receive the interrupt signal yet, in this case it should
- * call the wait function again. This essentially means that the target thread will
- * busy wait until it is ready to process the interruption.
- */
-gpointer
-wapi_prepare_interrupt_thread (gpointer thread_handle)
-{
-       WapiHandle_thread *thread;
-       gpointer prev_handle, wait_handle;
-
-       thread = lookup_thread (thread_handle); /* FIXME this is wrong, move this whole thing to MonoThreads where it can be done lockfree */
-
-       while (TRUE) {
-               wait_handle = thread->wait_handle;
-
-               /* 
-                * Atomically obtain the handle the thread is waiting on, and
-                * change it to a flag value.
-                */
-               prev_handle = InterlockedCompareExchangePointer (&thread->wait_handle,
-                                                                                                                INTERRUPTION_REQUESTED_HANDLE, wait_handle);
-               if (prev_handle == INTERRUPTION_REQUESTED_HANDLE)
-                       /* Already interrupted */
-                       return 0;
-               if (prev_handle == wait_handle)
-                       break;
-
-               /* Try again */
-       }
-
-       WAIT_DEBUG (printf ("%p: state -> INTERRUPTED.\n", thread->id););
-
-       return wait_handle;
-}
-
-void
-wapi_finish_interrupt_thread (gpointer wait_handle)
-{
-       pthread_cond_t *cond;
-       mono_mutex_t *mutex;
-       guint32 idx;
-
-       if (!wait_handle)
-               /* Not waiting */
-               return;
-
-       /* If we reach here, then wait_handle is set to the flag value, 
-        * which means that the target thread is either
-        * - before the first CAS in timedwait, which means it won't enter the
-        * wait.
-        * - it is after the first CAS, so it is already waiting, or it will 
-        * enter the wait, and it will be interrupted by the broadcast.
-        */
-       idx = GPOINTER_TO_UINT(wait_handle);
-       cond = &_WAPI_PRIVATE_HANDLES(idx).signal_cond;
-       mutex = &_WAPI_PRIVATE_HANDLES(idx).signal_mutex;
-
-       mono_mutex_lock (mutex);
-       mono_cond_broadcast (cond);
-       mono_mutex_unlock (mutex);
-
-       /* ref added by set_wait_handle */
-       _wapi_handle_unref (wait_handle);
-}
-
-/*
- * wapi_self_interrupt:
- *
- *   This is not part of the WIN32 API.
- * Set the 'interrupted' state of the calling thread if it's NULL.
- */
-void
-wapi_self_interrupt (void)
-{
-       gpointer wait_handle;
-
-       wait_handle = wapi_prepare_interrupt_thread (get_current_thread_handle ());
-       if (wait_handle)
-               /* ref added by set_wait_handle */
-               _wapi_handle_unref (wait_handle);
-}
-
-/*
- * wapi_clear_interruption:
- *
- *   This is not part of the WIN32 API. 
- * Clear the 'interrupted' state of the calling thread.
- * This function is signal safe
- */
-void
-wapi_clear_interruption (void)
-{
-       WapiHandle_thread *thread;
-       gpointer prev_handle;
-
-       thread = get_current_thread ();
-
-       prev_handle = InterlockedCompareExchangePointer (&thread->wait_handle,
-                                                                                                        NULL, INTERRUPTION_REQUESTED_HANDLE);
-       if (prev_handle == INTERRUPTION_REQUESTED_HANDLE)
-               WAIT_DEBUG (printf ("%p: state -> NORMAL.\n", GetCurrentThreadId ()););
-}
-
-/**
- * wapi_thread_set_wait_handle:
- *
- *   Set the wait handle for the current thread to HANDLE. Return TRUE on success, FALSE
- * if the thread is in interrupted state, and cannot start waiting.
- */
-gboolean
-wapi_thread_set_wait_handle (gpointer handle)
-{
-       WapiHandle_thread *thread;
-       gpointer prev_handle;
-
-       thread = get_current_thread ();
-
-       prev_handle = InterlockedCompareExchangePointer (&thread->wait_handle,
-                                                                                                        handle, NULL);
-       if (prev_handle == NULL) {
-               /* thread->wait_handle acts as an additional reference to the handle */
-               _wapi_handle_ref (handle);
-
-               WAIT_DEBUG (printf ("%p: state -> WAITING.\n", GetCurrentThreadId ()););
-       } else {
-               g_assert (prev_handle == INTERRUPTION_REQUESTED_HANDLE);
-               WAIT_DEBUG (printf ("%p: unable to set state to WAITING.\n", GetCurrentThreadId ()););
-       }
-
-       return prev_handle == NULL;
-}
-
-/**
- * wapi_thread_clear_wait_handle:
- *
- *   Clear the wait handle of the current thread.
- */
-void
-wapi_thread_clear_wait_handle (gpointer handle)
-{
-       WapiHandle_thread *thread;
-       gpointer prev_handle;
-
-       thread = get_current_thread ();
-
-       prev_handle = InterlockedCompareExchangePointer (&thread->wait_handle,
-                                                                                                        NULL, handle);
-       if (prev_handle == handle) {
-               _wapi_handle_unref (handle);
-               WAIT_DEBUG (printf ("%p: state -> NORMAL.\n", GetCurrentThreadId ()););
-       } else {
-               /*It can be NULL if it was asynchronously cleared*/
-               g_assert (prev_handle == INTERRUPTION_REQUESTED_HANDLE || prev_handle == NULL);
-               WAIT_DEBUG (printf ("%p: finished waiting.\n", GetCurrentThreadId ()););
-       }
+       return mono_thread_info_is_interrupt_state (mono_thread_info_current ());
 }
 
 void
@@ -524,31 +349,20 @@ wapi_current_thread_desc (void)
        WapiHandle_thread *thread;
        gpointer thread_handle;
        int i;
-       gpointer handle;
        GString* text;
        char *res;
 
        thread_handle = get_current_thread_handle ();
        thread = lookup_thread (thread_handle);
 
-       handle = thread->wait_handle;
        text = g_string_new (0);
        g_string_append_printf (text, "thread handle %p state : ", thread_handle);
 
-       if (!handle)
-               g_string_append_printf (text, "not waiting");
-       else if (handle == INTERRUPTION_REQUESTED_HANDLE)
-               g_string_append_printf (text, "interrupted state");
-       else
-               g_string_append_printf (text, "waiting on %p : %s ", handle, _wapi_handle_typename[_wapi_handle_type (handle)]);
+       mono_thread_info_describe_interrupt_token (mono_thread_info_current (), text);
+
        g_string_append_printf (text, " owns (");
-       for (i = 0; i < thread->owned_mutexes->len; i++) {
-               gpointer mutex = g_ptr_array_index (thread->owned_mutexes, i);
-               if (i > 0)
-                       g_string_append_printf (text, ", %p", mutex);
-               else
-                       g_string_append_printf (text, "%p", mutex);
-       }
+       for (i = 0; i < thread->owned_mutexes->len; i++)
+               g_string_append_printf (text, i > 0 ? ", %p" : "%p", g_ptr_array_index (thread->owned_mutexes, i));
        g_string_append_printf (text, ")");
 
        res = text->str;
index daef6ba5ecdd05eb45aab60bcd2ed5dc23391a51..d0e6fc2fa576554f18eb5aa1984da3d40d3f4d17 100644 (file)
@@ -103,7 +103,6 @@ common_sources = \
        assembly.c              \
        attach.h                \
        attach.c                \
-       char-conversions.h      \
        cil-coff.h              \
        class.c                 \
        class-internals.h       \
@@ -153,8 +152,6 @@ common_sources = \
        mono-basic-block.c      \
        mono-basic-block.h      \
        mono-config.c           \
-       mono-cq.c               \
-       mono-cq.h               \
        mono-debug.h            \
        mono-debug.c            \
        mono-debug-debugger.h   \
@@ -169,8 +166,6 @@ common_sources = \
        mono-ptr-array.h        \
        mono-route.c            \
        mono-route.h            \
-       mono-wsq.c              \
-       mono-wsq.h              \
        monitor.h               \
        nacl-stub.c             \
        normalization-tables.h  \
@@ -203,14 +198,10 @@ common_sources = \
        tabledefs.h             \
        threads.c               \
        threads-types.h         \
-       threadpool.c            \
-       threadpool.h            \
-       threadpool-internals.h  \
        threadpool-ms.c \
        threadpool-ms.h \
        threadpool-ms-io.c      \
        threadpool-ms-io.h      \
-       tpool-poll.c    \
        verify.c                \
        verify-internals.h      \
        wrapper-types.h \
@@ -243,6 +234,7 @@ sgen_sources = \
        sgen-os-posix.c         \
        sgen-os-mach.c          \
        sgen-os-win32.c         \
+       sgen-os-coop.c          \
        sgen-bridge.c           \
        sgen-bridge.h           \
        sgen-bridge-internal.h  \
@@ -328,5 +320,4 @@ endif
 endif
 
 EXTRA_DIST = $(win32_sources) $(unix_sources) $(null_sources) runtime.h \
-               tpool-poll.c tpool-epoll.c tpool-kqueue.c \
                threadpool-ms-io-poll.c threadpool-ms-io-epoll.c threadpool-ms-io-kqueue.c
index b3742cb943fceff38b5601b7ae8662ff2c7f2c63..4140a02deaec74b0e1f3be88c7b57e3cf34e050b 100644 (file)
 #include <mono/metadata/assembly.h>
 #include <mono/metadata/exception.h>
 #include <mono/metadata/threads.h>
+#include <mono/metadata/threadpool-ms.h>
 #include <mono/metadata/socket-io.h>
 #include <mono/metadata/tabledefs.h>
 #include <mono/metadata/gc-internal.h>
 #include <mono/metadata/mono-gc.h>
 #include <mono/metadata/marshal.h>
 #include <mono/metadata/monitor.h>
-#include <mono/metadata/threadpool.h>
 #include <mono/metadata/mono-debug.h>
 #include <mono/metadata/mono-debug-debugger.h>
 #include <mono/metadata/attach.h>
@@ -54,6 +54,7 @@
 #include <mono/metadata/console-io.h>
 #include <mono/metadata/threads-types.h>
 #include <mono/metadata/tokentype.h>
+#include <mono/metadata/profiler-private.h>
 #include <mono/utils/mono-uri.h>
 #include <mono/utils/mono-logger-internal.h>
 #include <mono/utils/mono-path.h>
@@ -78,7 +79,7 @@
  * Changes which are already detected at runtime, like the addition
  * of icalls, do not require an increment.
  */
-#define MONO_CORLIB_VERSION 134
+#define MONO_CORLIB_VERSION 135
 
 typedef struct
 {
@@ -88,8 +89,6 @@ typedef struct
        gchar *filename;
 } RuntimeConfig;
 
-mono_mutex_t mono_delegate_section;
-
 static gunichar2 process_guid [36];
 static gboolean process_guid_set = FALSE;
 
@@ -232,7 +231,6 @@ mono_runtime_init (MonoDomain *domain, MonoThreadStartCB start_cb,
        
        mono_gc_base_init ();
        mono_monitor_init ();
-       mono_thread_pool_init ();
        mono_marshal_init ();
 
        mono_install_assembly_preload_hook (mono_domain_assembly_preload, GUINT_TO_POINTER (FALSE));
@@ -255,8 +253,6 @@ mono_runtime_init (MonoDomain *domain, MonoThreadStartCB start_cb,
        domain->domain = ad;
        domain->setup = setup;
 
-       mono_mutex_init_recursive (&mono_delegate_section);
-       
        mono_thread_attach (domain);
 
        mono_type_initialization_init ();
@@ -482,6 +478,8 @@ mono_domain_create_appdomain_internal (char *friendly_name, MonoAppDomainSetup *
        data->domain = ad;
        data->friendly_name = g_strdup (friendly_name);
 
+       mono_profiler_appdomain_name (data, data->friendly_name);
+
        if (!setup->application_base) {
                /* Inherit from the root domain since MS.NET does this */
                MonoDomain *root = mono_get_root_domain ();
@@ -622,9 +620,9 @@ ves_icall_System_AppDomain_GetData (MonoAppDomain *ad, MonoString *name)
 
        MONO_CHECK_ARG_NULL (name, NULL);
 
-       g_assert (ad != NULL);
+       g_assert (ad);
        add = ad->data;
-       g_assert (add != NULL);
+       g_assert (add);
 
        str = mono_string_to_utf8 (name);
 
@@ -667,9 +665,9 @@ ves_icall_System_AppDomain_SetData (MonoAppDomain *ad, MonoString *name, MonoObj
 
        MONO_CHECK_ARG_NULL (name,);
 
-       g_assert (ad != NULL);
+       g_assert (ad);
        add = ad->data;
-       g_assert (add != NULL);
+       g_assert (add);
 
        mono_domain_lock (add);
 
@@ -681,8 +679,8 @@ ves_icall_System_AppDomain_SetData (MonoAppDomain *ad, MonoString *name, MonoObj
 MonoAppDomainSetup *
 ves_icall_System_AppDomain_getSetup (MonoAppDomain *ad)
 {
-       g_assert (ad != NULL);
-       g_assert (ad->data != NULL);
+       g_assert (ad);
+       g_assert (ad->data);
 
        return ad->data->setup;
 }
@@ -690,8 +688,8 @@ ves_icall_System_AppDomain_getSetup (MonoAppDomain *ad)
 MonoString *
 ves_icall_System_AppDomain_getFriendlyName (MonoAppDomain *ad)
 {
-       g_assert (ad != NULL);
-       g_assert (ad->data != NULL);
+       g_assert (ad);
+       g_assert (ad->data);
 
        return mono_string_new (ad->data, ad->data->friendly_name);
 }
@@ -1960,7 +1958,7 @@ ves_icall_System_AppDomain_LoadAssembly (MonoAppDomain *ad,  MonoString *assRef,
        gchar *name;
        gboolean parsed;
 
-       g_assert (assRef != NULL);
+       g_assert (assRef);
 
        name = mono_string_to_utf8 (assRef);
        parsed = mono_assembly_name_parse (name, &aname);
@@ -2277,7 +2275,7 @@ unload_thread_main (void *arg)
                goto failure;
        }
 
-       if (!mono_thread_pool_remove_domain_jobs (domain, -1)) {
+       if (!mono_threadpool_ms_remove_domain_jobs (domain, -1)) {
                data->failure_reason = g_strdup_printf ("Cleanup of threadpool jobs of domain %s timed out.", domain->friendly_name);
                goto failure;
        }
@@ -2364,9 +2362,9 @@ guarded_wait (HANDLE handle, guint32 timeout, gboolean alertable)
 {
        guint32 result;
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        result = WaitForSingleObjectEx (handle, timeout, alertable);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        return result;
 }
index e0c2f671c2e839e8cc2a90515587741ac7cd27c7..c80b87842734362655c1f71309ff30d0a5be390b 100644 (file)
@@ -78,6 +78,9 @@ mono_domain_get_by_id      (int32_t domainid);
 MONO_API int32_t
 mono_domain_get_id         (MonoDomain *domain);
 
+MONO_API const char *
+mono_domain_get_friendly_name (MonoDomain *domain);
+
 MONO_API mono_bool
 mono_domain_set            (MonoDomain *domain, mono_bool force);
 
@@ -126,6 +129,12 @@ mono_context_set                              (MonoAppContext *new_context);
 MONO_API MonoAppContext * 
 mono_context_get                                  (void);
 
+MONO_API int32_t
+mono_context_get_id         (MonoAppContext *context);
+
+MONO_API int32_t
+mono_context_get_domain_id  (MonoAppContext *context);
+
 MONO_API MonoJitInfo *
 mono_jit_info_table_find   (MonoDomain *domain, char *addr);
 
index 646700eb95858a6fba57bddbd338e70a81b0a2e7..45038289621a96ef7e59243a0f0d311c988e586b 100644 (file)
@@ -88,6 +88,8 @@ static const AssemblyVersionMap framework_assemblies [] = {
        {"I18N.Other", 0},
        {"I18N.Rare", 0},
        {"I18N.West", 0},
+       {"Microsoft.Build.Engine", 2},
+       {"Microsoft.Build.Framework", 2},
        {"Microsoft.VisualBasic", 1},
        {"Microsoft.VisualC", 1},
        {"Mono.Cairo", 0},
@@ -177,6 +179,8 @@ mono_set_corlib_data (void *data, size_t size)
 
 #endif
 
+static char* unquote (const char *str);
+
 /* This protects loaded_assemblies and image->references */
 #define mono_assemblies_lock() mono_mutex_lock (&assemblies_mutex)
 #define mono_assemblies_unlock() mono_mutex_unlock (&assemblies_mutex)
@@ -2076,11 +2080,19 @@ gboolean
 mono_assembly_name_parse_full (const char *name, MonoAssemblyName *aname, gboolean save_public_key, gboolean *is_version_defined, gboolean *is_token_defined)
 {
        gchar *dllname;
+       gchar *dllname_uq;
        gchar *version = NULL;
+       gchar *version_uq;
        gchar *culture = NULL;
+       gchar *culture_uq;
        gchar *token = NULL;
+       gchar *token_uq;
        gchar *key = NULL;
+       gchar *key_uq;
        gchar *retargetable = NULL;
+       gchar *retargetable_uq;
+       gchar *procarch;
+       gchar *procarch_uq;
        gboolean res;
        gchar *value, *part_name;
        guint32 part_name_len;
@@ -2152,29 +2164,42 @@ mono_assembly_name_parse_full (const char *name, MonoAssemblyName *aname, gboole
 
                if (part_name_len == 12 && !g_ascii_strncasecmp (part_name, "Retargetable", part_name_len)) {
                        retargetable = value;
-                       if (strlen (retargetable) == 0) {
-                               goto cleanup_and_fail;
-                       }
+                       retargetable_uq = unquote (retargetable);
+                       if (retargetable_uq != NULL)
+                               retargetable = retargetable_uq;
+
                        if (!g_ascii_strcasecmp (retargetable, "yes")) {
                                flags |= ASSEMBLYREF_RETARGETABLE_FLAG;
                        } else if (g_ascii_strcasecmp (retargetable, "no")) {
+                               free (retargetable_uq);
                                goto cleanup_and_fail;
                        }
+
+                       free (retargetable_uq);
                        tmp++;
                        continue;
                }
 
                if (part_name_len == 21 && !g_ascii_strncasecmp (part_name, "ProcessorArchitecture", part_name_len)) {
-                       if (!g_ascii_strcasecmp (value, "MSIL"))
+                       procarch = value;
+                       procarch_uq = unquote (procarch);
+                       if (procarch_uq != NULL)
+                               procarch = procarch_uq;
+
+                       if (!g_ascii_strcasecmp (procarch, "MSIL"))
                                arch = MONO_PROCESSOR_ARCHITECTURE_MSIL;
-                       else if (!g_ascii_strcasecmp (value, "X86"))
+                       else if (!g_ascii_strcasecmp (procarch, "X86"))
                                arch = MONO_PROCESSOR_ARCHITECTURE_X86;
-                       else if (!g_ascii_strcasecmp (value, "IA64"))
+                       else if (!g_ascii_strcasecmp (procarch, "IA64"))
                                arch = MONO_PROCESSOR_ARCHITECTURE_IA64;
-                       else if (!g_ascii_strcasecmp (value, "AMD64"))
+                       else if (!g_ascii_strcasecmp (procarch, "AMD64"))
                                arch = MONO_PROCESSOR_ARCHITECTURE_AMD64;
-                       else
+                       else {
+                               free (procarch_uq);
                                goto cleanup_and_fail;
+                       }
+
+                       free (procarch_uq);
                        tmp++;
                        continue;
                }
@@ -2188,8 +2213,26 @@ mono_assembly_name_parse_full (const char *name, MonoAssemblyName *aname, gboole
                goto cleanup_and_fail;
        }
 
-       res = build_assembly_name (dllname, version, culture, token, key, flags, arch,
-               aname, save_public_key);
+       dllname_uq = unquote (dllname);
+       version_uq = unquote (version);
+       culture_uq = unquote (culture);
+       token_uq = unquote (token);
+       key_uq = unquote (key);
+
+       res = build_assembly_name (
+               dllname_uq == NULL ? dllname : dllname_uq,
+               version_uq == NULL ? version : version_uq,
+               culture_uq == NULL ? culture : culture_uq,
+               token_uq == NULL ? token : token_uq,
+               key_uq == NULL ? key : key_uq,
+               flags, arch, aname, save_public_key);
+
+       free (dllname_uq);
+       free (version_uq);
+       free (culture_uq);
+       free (token_uq);
+       free (key_uq);
+
        g_strfreev (parts);
        return res;
 
@@ -2198,6 +2241,29 @@ cleanup_and_fail:
        return FALSE;
 }
 
+static char*
+unquote (const char *str)
+{
+       gint slen;
+       const char *end;
+
+       if (str == NULL)
+               return NULL;
+
+       slen = strlen (str);
+       if (slen < 2)
+               return NULL;
+
+       if (*str != '\'' && *str != '\"')
+               return NULL;
+
+       end = str + slen - 1;
+       if (*str != *end)
+               return NULL;
+
+       return g_strndup (str + 1, slen - 2);
+}
+
 /**
  * mono_assembly_name_parse:
  * @name: name to parse
@@ -3254,6 +3320,20 @@ mono_assembly_get_image (MonoAssembly *assembly)
        return assembly->image;
 }
 
+/**
+ * mono_assembly_get_name:
+ * @assembly: The assembly to retrieve the name from
+ *
+ * The returned name's lifetime is the same as @assembly's.
+ *
+ * Returns: the MonoAssemblyName associated with this assembly.
+ */
+MonoAssemblyName *
+mono_assembly_get_name (MonoAssembly *assembly)
+{
+       return &assembly->aname;
+}
+
 void
 mono_register_bundled_assemblies (const MonoBundledAssembly **assemblies)
 {
index 50488658fa246c55abeefa31507ad5da390e64fc..bdf3d75f62cad49400ac2545f601d00fbfdef79f 100644 (file)
@@ -40,6 +40,7 @@ MONO_API void       mono_assembly_foreach    (MonoFunc func, void* user_data);
 MONO_API void          mono_assembly_set_main   (MonoAssembly *assembly);
 MONO_API MonoAssembly *mono_assembly_get_main   (void);
 MONO_API MonoImage    *mono_assembly_get_image  (MonoAssembly *assembly);
+MONO_API MonoAssemblyName *mono_assembly_get_name (MonoAssembly *assembly);
 MONO_API mono_bool      mono_assembly_fill_assembly_name (MonoImage *image, MonoAssemblyName *aname);
 MONO_API mono_bool      mono_assembly_names_equal (MonoAssemblyName *l, MonoAssemblyName *r);
 MONO_API char*         mono_stringify_assembly_name (MonoAssemblyName *aname);
diff --git a/mono/metadata/char-conversions.h b/mono/metadata/char-conversions.h
deleted file mode 100644 (file)
index 8cc5ae7..0000000
+++ /dev/null
@@ -1,421 +0,0 @@
-#ifndef _MONO_METADATA_CHAR_CONVERSIONS_H_
-#define _MONO_METADATA_CHAR_CONVERSIONS_H_ 1
-
-#include <glib.h>
-
-static const guint16 ToLowerDataLow [] = {
-        0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,
-        50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,91,92,93,94,95,96,97,98,99,
-        100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,
-        150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,224,225,226,227,228,229,230,231,
-        232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,215,248,249,250,251,252,253,254,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,
-        250,251,252,253,254,255,257,257,259,259,261,261,263,263,265,265,267,267,269,269,271,271,273,273,275,275,277,277,279,279,281,281,283,283,285,285,287,287,289,289,291,291,293,293,295,295,297,297,299,299,
-        301,301,303,303,304,305,307,307,309,309,311,311,312,314,314,316,316,318,318,320,320,322,322,324,324,326,326,328,328,329,331,331,333,333,335,335,337,337,339,339,341,341,343,343,345,345,347,347,349,349,
-        351,351,353,353,355,355,357,357,359,359,361,361,363,363,365,365,367,367,369,369,371,371,373,373,375,375,255,378,378,380,380,382,382,383,384,595,387,387,389,389,596,392,392,598,599,396,396,397,477,601,
-        603,402,402,608,611,405,617,616,409,409,410,411,623,626,414,629,417,417,419,419,421,421,422,424,424,643,426,427,429,429,648,432,432,650,651,436,436,438,438,658,441,441,442,443,445,445,446,447,448,449,
-        450,451,454,453,454,457,456,457,460,459,460,462,462,464,464,466,466,468,468,470,470,472,472,474,474,476,476,477,479,479,481,481,483,483,485,485,487,487,489,489,491,491,493,493,495,495,496,499,498,499,
-        501,501,502,503,504,505,507,507,509,509,511,511,513,513,515,515,517,517,519,519,521,521,523,523,525,525,527,527,529,529,531,531,533,533,535,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,
-        550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,
-        600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,
-        650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,
-        700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,
-        750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,
-        800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,
-        850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,
-        900,901,940,903,941,942,943,907,972,909,973,974,912,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,930,963,964,965,966,967,968,969,970,971,940,941,942,943,944,945,946,947,948,949,
-        950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,995,995,997,997,999,999,
-        1001,1001,1003,1003,1005,1005,1007,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1037,1118,1119,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,
-        1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,
-        1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1121,1121,1123,1123,1125,1125,1127,1127,1129,1129,1131,1131,1133,1133,1135,1135,1137,1137,1139,1139,1141,1141,1143,1143,1145,1145,1147,1147,1149,1149,
-        1151,1151,1153,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1169,1169,1171,1171,1173,1173,1175,1175,1177,1177,1179,1179,1181,1181,1183,1183,1185,1185,1187,1187,1189,1189,1191,1191,1193,1193,1195,1195,1197,1197,1199,1199,
-        1201,1201,1203,1203,1205,1205,1207,1207,1209,1209,1211,1211,1213,1213,1215,1215,1216,1218,1218,1220,1220,1221,1222,1224,1224,1225,1226,1228,1228,1229,1230,1231,1233,1233,1235,1235,1237,1237,1239,1239,1241,1241,1243,1243,1245,1245,1247,1247,1249,1249,
-        1251,1251,1253,1253,1255,1255,1257,1257,1259,1259,1260,1261,1263,1263,1265,1265,1267,1267,1269,1269,1270,1271,1273,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,
-        1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,
-        1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,
-        1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,
-        1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,
-        1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,
-        1550,1551,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,
-        1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,
-        1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,
-        1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,
-        1750,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,
-        1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,
-        1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,
-        1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,
-        1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,
-        2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,
-        2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,
-        2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2147,2148,2149,
-        2150,2151,2152,2153,2154,2155,2156,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2176,2177,2178,2179,2180,2181,2182,2183,2184,2185,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,
-        2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2229,2230,2231,2232,2233,2234,2235,2236,2237,2238,2239,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,
-        2250,2251,2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,
-        2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2341,2342,2343,2344,2345,2346,2347,2348,2349,
-        2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,2361,2362,2363,2364,2365,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,2393,2394,2395,2396,2397,2398,2399,
-        2400,2401,2402,2403,2404,2405,2406,2407,2408,2409,2410,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2434,2435,2436,2437,2438,2439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,
-        2450,2451,2452,2453,2454,2455,2456,2457,2458,2459,2460,2461,2462,2463,2464,2465,2466,2467,2468,2469,2470,2471,2472,2473,2474,2475,2476,2477,2478,2479,2480,2481,2482,2483,2484,2485,2486,2487,2488,2489,2490,2491,2492,2493,2494,2495,2496,2497,2498,2499,
-        2500,2501,2502,2503,2504,2505,2506,2507,2508,2509,2510,2511,2512,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544,2545,2546,2547,2548,2549,
-        2550,2551,2552,2553,2554,2555,2556,2557,2558,2559,2560,2561,2562,2563,2564,2565,2566,2567,2568,2569,2570,2571,2572,2573,2574,2575,2576,2577,2578,2579,2580,2581,2582,2583,2584,2585,2586,2587,2588,2589,2590,2591,2592,2593,2594,2595,2596,2597,2598,2599,
-        2600,2601,2602,2603,2604,2605,2606,2607,2608,2609,2610,2611,2612,2613,2614,2615,2616,2617,2618,2619,2620,2621,2622,2623,2624,2625,2626,2627,2628,2629,2630,2631,2632,2633,2634,2635,2636,2637,2638,2639,2640,2641,2642,2643,2644,2645,2646,2647,2648,2649,
-        2650,2651,2652,2653,2654,2655,2656,2657,2658,2659,2660,2661,2662,2663,2664,2665,2666,2667,2668,2669,2670,2671,2672,2673,2674,2675,2676,2677,2678,2679,2680,2681,2682,2683,2684,2685,2686,2687,2688,2689,2690,2691,2692,2693,2694,2695,2696,2697,2698,2699,
-        2700,2701,2702,2703,2704,2705,2706,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2717,2718,2719,2720,2721,2722,2723,2724,2725,2726,2727,2728,2729,2730,2731,2732,2733,2734,2735,2736,2737,2738,2739,2740,2741,2742,2743,2744,2745,2746,2747,2748,2749,
-        2750,2751,2752,2753,2754,2755,2756,2757,2758,2759,2760,2761,2762,2763,2764,2765,2766,2767,2768,2769,2770,2771,2772,2773,2774,2775,2776,2777,2778,2779,2780,2781,2782,2783,2784,2785,2786,2787,2788,2789,2790,2791,2792,2793,2794,2795,2796,2797,2798,2799,
-        2800,2801,2802,2803,2804,2805,2806,2807,2808,2809,2810,2811,2812,2813,2814,2815,2816,2817,2818,2819,2820,2821,2822,2823,2824,2825,2826,2827,2828,2829,2830,2831,2832,2833,2834,2835,2836,2837,2838,2839,2840,2841,2842,2843,2844,2845,2846,2847,2848,2849,
-        2850,2851,2852,2853,2854,2855,2856,2857,2858,2859,2860,2861,2862,2863,2864,2865,2866,2867,2868,2869,2870,2871,2872,2873,2874,2875,2876,2877,2878,2879,2880,2881,2882,2883,2884,2885,2886,2887,2888,2889,2890,2891,2892,2893,2894,2895,2896,2897,2898,2899,
-        2900,2901,2902,2903,2904,2905,2906,2907,2908,2909,2910,2911,2912,2913,2914,2915,2916,2917,2918,2919,2920,2921,2922,2923,2924,2925,2926,2927,2928,2929,2930,2931,2932,2933,2934,2935,2936,2937,2938,2939,2940,2941,2942,2943,2944,2945,2946,2947,2948,2949,
-        2950,2951,2952,2953,2954,2955,2956,2957,2958,2959,2960,2961,2962,2963,2964,2965,2966,2967,2968,2969,2970,2971,2972,2973,2974,2975,2976,2977,2978,2979,2980,2981,2982,2983,2984,2985,2986,2987,2988,2989,2990,2991,2992,2993,2994,2995,2996,2997,2998,2999,
-        3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,3020,3021,3022,3023,3024,3025,3026,3027,3028,3029,3030,3031,3032,3033,3034,3035,3036,3037,3038,3039,3040,3041,3042,3043,3044,3045,3046,3047,3048,3049,
-        3050,3051,3052,3053,3054,3055,3056,3057,3058,3059,3060,3061,3062,3063,3064,3065,3066,3067,3068,3069,3070,3071,3072,3073,3074,3075,3076,3077,3078,3079,3080,3081,3082,3083,3084,3085,3086,3087,3088,3089,3090,3091,3092,3093,3094,3095,3096,3097,3098,3099,
-        3100,3101,3102,3103,3104,3105,3106,3107,3108,3109,3110,3111,3112,3113,3114,3115,3116,3117,3118,3119,3120,3121,3122,3123,3124,3125,3126,3127,3128,3129,3130,3131,3132,3133,3134,3135,3136,3137,3138,3139,3140,3141,3142,3143,3144,3145,3146,3147,3148,3149,
-        3150,3151,3152,3153,3154,3155,3156,3157,3158,3159,3160,3161,3162,3163,3164,3165,3166,3167,3168,3169,3170,3171,3172,3173,3174,3175,3176,3177,3178,3179,3180,3181,3182,3183,3184,3185,3186,3187,3188,3189,3190,3191,3192,3193,3194,3195,3196,3197,3198,3199,
-        3200,3201,3202,3203,3204,3205,3206,3207,3208,3209,3210,3211,3212,3213,3214,3215,3216,3217,3218,3219,3220,3221,3222,3223,3224,3225,3226,3227,3228,3229,3230,3231,3232,3233,3234,3235,3236,3237,3238,3239,3240,3241,3242,3243,3244,3245,3246,3247,3248,3249,
-        3250,3251,3252,3253,3254,3255,3256,3257,3258,3259,3260,3261,3262,3263,3264,3265,3266,3267,3268,3269,3270,3271,3272,3273,3274,3275,3276,3277,3278,3279,3280,3281,3282,3283,3284,3285,3286,3287,3288,3289,3290,3291,3292,3293,3294,3295,3296,3297,3298,3299,
-        3300,3301,3302,3303,3304,3305,3306,3307,3308,3309,3310,3311,3312,3313,3314,3315,3316,3317,3318,3319,3320,3321,3322,3323,3324,3325,3326,3327,3328,3329,3330,3331,3332,3333,3334,3335,3336,3337,3338,3339,3340,3341,3342,3343,3344,3345,3346,3347,3348,3349,
-        3350,3351,3352,3353,3354,3355,3356,3357,3358,3359,3360,3361,3362,3363,3364,3365,3366,3367,3368,3369,3370,3371,3372,3373,3374,3375,3376,3377,3378,3379,3380,3381,3382,3383,3384,3385,3386,3387,3388,3389,3390,3391,3392,3393,3394,3395,3396,3397,3398,3399,
-        3400,3401,3402,3403,3404,3405,3406,3407,3408,3409,3410,3411,3412,3413,3414,3415,3416,3417,3418,3419,3420,3421,3422,3423,3424,3425,3426,3427,3428,3429,3430,3431,3432,3433,3434,3435,3436,3437,3438,3439,3440,3441,3442,3443,3444,3445,3446,3447,3448,3449,
-        3450,3451,3452,3453,3454,3455,3456,3457,3458,3459,3460,3461,3462,3463,3464,3465,3466,3467,3468,3469,3470,3471,3472,3473,3474,3475,3476,3477,3478,3479,3480,3481,3482,3483,3484,3485,3486,3487,3488,3489,3490,3491,3492,3493,3494,3495,3496,3497,3498,3499,
-        3500,3501,3502,3503,3504,3505,3506,3507,3508,3509,3510,3511,3512,3513,3514,3515,3516,3517,3518,3519,3520,3521,3522,3523,3524,3525,3526,3527,3528,3529,3530,3531,3532,3533,3534,3535,3536,3537,3538,3539,3540,3541,3542,3543,3544,3545,3546,3547,3548,3549,
-        3550,3551,3552,3553,3554,3555,3556,3557,3558,3559,3560,3561,3562,3563,3564,3565,3566,3567,3568,3569,3570,3571,3572,3573,3574,3575,3576,3577,3578,3579,3580,3581,3582,3583,3584,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3595,3596,3597,3598,3599,
-        3600,3601,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623,3624,3625,3626,3627,3628,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,3639,3640,3641,3642,3643,3644,3645,3646,3647,3648,3649,
-        3650,3651,3652,3653,3654,3655,3656,3657,3658,3659,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3670,3671,3672,3673,3674,3675,3676,3677,3678,3679,3680,3681,3682,3683,3684,3685,3686,3687,3688,3689,3690,3691,3692,3693,3694,3695,3696,3697,3698,3699,
-        3700,3701,3702,3703,3704,3705,3706,3707,3708,3709,3710,3711,3712,3713,3714,3715,3716,3717,3718,3719,3720,3721,3722,3723,3724,3725,3726,3727,3728,3729,3730,3731,3732,3733,3734,3735,3736,3737,3738,3739,3740,3741,3742,3743,3744,3745,3746,3747,3748,3749,
-        3750,3751,3752,3753,3754,3755,3756,3757,3758,3759,3760,3761,3762,3763,3764,3765,3766,3767,3768,3769,3770,3771,3772,3773,3774,3775,3776,3777,3778,3779,3780,3781,3782,3783,3784,3785,3786,3787,3788,3789,3790,3791,3792,3793,3794,3795,3796,3797,3798,3799,
-        3800,3801,3802,3803,3804,3805,3806,3807,3808,3809,3810,3811,3812,3813,3814,3815,3816,3817,3818,3819,3820,3821,3822,3823,3824,3825,3826,3827,3828,3829,3830,3831,3832,3833,3834,3835,3836,3837,3838,3839,3840,3841,3842,3843,3844,3845,3846,3847,3848,3849,
-        3850,3851,3852,3853,3854,3855,3856,3857,3858,3859,3860,3861,3862,3863,3864,3865,3866,3867,3868,3869,3870,3871,3872,3873,3874,3875,3876,3877,3878,3879,3880,3881,3882,3883,3884,3885,3886,3887,3888,3889,3890,3891,3892,3893,3894,3895,3896,3897,3898,3899,
-        3900,3901,3902,3903,3904,3905,3906,3907,3908,3909,3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3921,3922,3923,3924,3925,3926,3927,3928,3929,3930,3931,3932,3933,3934,3935,3936,3937,3938,3939,3940,3941,3942,3943,3944,3945,3946,3947,3948,3949,
-        3950,3951,3952,3953,3954,3955,3956,3957,3958,3959,3960,3961,3962,3963,3964,3965,3966,3967,3968,3969,3970,3971,3972,3973,3974,3975,3976,3977,3978,3979,3980,3981,3982,3983,3984,3985,3986,3987,3988,3989,3990,3991,3992,3993,3994,3995,3996,3997,3998,3999,
-        4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,4012,4013,4014,4015,4016,4017,4018,4019,4020,4021,4022,4023,4024,4025,4026,4027,4028,4029,4030,4031,4032,4033,4034,4035,4036,4037,4038,4039,4040,4041,4042,4043,4044,4045,4046,4047,4048,4049,
-        4050,4051,4052,4053,4054,4055,4056,4057,4058,4059,4060,4061,4062,4063,4064,4065,4066,4067,4068,4069,4070,4071,4072,4073,4074,4075,4076,4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096,4097,4098,4099,
-        4100,4101,4102,4103,4104,4105,4106,4107,4108,4109,4110,4111,4112,4113,4114,4115,4116,4117,4118,4119,4120,4121,4122,4123,4124,4125,4126,4127,4128,4129,4130,4131,4132,4133,4134,4135,4136,4137,4138,4139,4140,4141,4142,4143,4144,4145,4146,4147,4148,4149,
-        4150,4151,4152,4153,4154,4155,4156,4157,4158,4159,4160,4161,4162,4163,4164,4165,4166,4167,4168,4169,4170,4171,4172,4173,4174,4175,4176,4177,4178,4179,4180,4181,4182,4183,4184,4185,4186,4187,4188,4189,4190,4191,4192,4193,4194,4195,4196,4197,4198,4199,
-        4200,4201,4202,4203,4204,4205,4206,4207,4208,4209,4210,4211,4212,4213,4214,4215,4216,4217,4218,4219,4220,4221,4222,4223,4224,4225,4226,4227,4228,4229,4230,4231,4232,4233,4234,4235,4236,4237,4238,4239,4240,4241,4242,4243,4244,4245,4246,4247,4248,4249,
-        4250,4251,4252,4253,4254,4255,4304,4305,4306,4307,4308,4309,4310,4311,4312,4313,4314,4315,4316,4317,4318,4319,4320,4321,4322,4323,4324,4325,4326,4327,4328,4329,4330,4331,4332,4333,4334,4335,4336,4337,4338,4339,4340,4341,4294,4295,4296,4297,4298,4299,
-        4300,4301,4302,4303,4304,4305,4306,4307,4308,4309,4310,4311,4312,4313,4314,4315,4316,4317,4318,4319,4320,4321,4322,4323,4324,4325,4326,4327,4328,4329,4330,4331,4332,4333,4334,4335,4336,4337,4338,4339,4340,4341,4342,4343,4344,4345,4346,4347,4348,4349,
-        4350,4351,4352,4353,4354,4355,4356,4357,4358,4359,4360,4361,4362,4363,4364,4365,4366,4367,4368,4369,4370,4371,4372,4373,4374,4375,4376,4377,4378,4379,4380,4381,4382,4383,4384,4385,4386,4387,4388,4389,4390,4391,4392,4393,4394,4395,4396,4397,4398,4399,
-        4400,4401,4402,4403,4404,4405,4406,4407,4408,4409,4410,4411,4412,4413,4414,4415,4416,4417,4418,4419,4420,4421,4422,4423,4424,4425,4426,4427,4428,4429,4430,4431,4432,4433,4434,4435,4436,4437,4438,4439,4440,4441,4442,4443,4444,4445,4446,4447,4448,4449,
-        4450,4451,4452,4453,4454,4455,4456,4457,4458,4459,4460,4461,4462,4463,4464,4465,4466,4467,4468,4469,4470,4471,4472,4473,4474,4475,4476,4477,4478,4479,4480,4481,4482,4483,4484,4485,4486,4487,4488,4489,4490,4491,4492,4493,4494,4495,4496,4497,4498,4499,
-        4500,4501,4502,4503,4504,4505,4506,4507,4508,4509,4510,4511,4512,4513,4514,4515,4516,4517,4518,4519,4520,4521,4522,4523,4524,4525,4526,4527,4528,4529,4530,4531,4532,4533,4534,4535,4536,4537,4538,4539,4540,4541,4542,4543,4544,4545,4546,4547,4548,4549,
-        4550,4551,4552,4553,4554,4555,4556,4557,4558,4559,4560,4561,4562,4563,4564,4565,4566,4567,4568,4569,4570,4571,4572,4573,4574,4575,4576,4577,4578,4579,4580,4581,4582,4583,4584,4585,4586,4587,4588,4589,4590,4591,4592,4593,4594,4595,4596,4597,4598,4599,
-        4600,4601,4602,4603,4604,4605,4606,4607,4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4626,4627,4628,4629,4630,4631,4632,4633,4634,4635,4636,4637,4638,4639,4640,4641,4642,4643,4644,4645,4646,4647,4648,4649,
-        4650,4651,4652,4653,4654,4655,4656,4657,4658,4659,4660,4661,4662,4663,4664,4665,4666,4667,4668,4669,4670,4671,4672,4673,4674,4675,4676,4677,4678,4679,4680,4681,4682,4683,4684,4685,4686,4687,4688,4689,4690,4691,4692,4693,4694,4695,4696,4697,4698,4699,
-        4700,4701,4702,4703,4704,4705,4706,4707,4708,4709,4710,4711,4712,4713,4714,4715,4716,4717,4718,4719,4720,4721,4722,4723,4724,4725,4726,4727,4728,4729,4730,4731,4732,4733,4734,4735,4736,4737,4738,4739,4740,4741,4742,4743,4744,4745,4746,4747,4748,4749,
-        4750,4751,4752,4753,4754,4755,4756,4757,4758,4759,4760,4761,4762,4763,4764,4765,4766,4767,4768,4769,4770,4771,4772,4773,4774,4775,4776,4777,4778,4779,4780,4781,4782,4783,4784,4785,4786,4787,4788,4789,4790,4791,4792,4793,4794,4795,4796,4797,4798,4799,
-        4800,4801,4802,4803,4804,4805,4806,4807,4808,4809,4810,4811,4812,4813,4814,4815,4816,4817,4818,4819,4820,4821,4822,4823,4824,4825,4826,4827,4828,4829,4830,4831,4832,4833,4834,4835,4836,4837,4838,4839,4840,4841,4842,4843,4844,4845,4846,4847,4848,4849,
-        4850,4851,4852,4853,4854,4855,4856,4857,4858,4859,4860,4861,4862,4863,4864,4865,4866,4867,4868,4869,4870,4871,4872,4873,4874,4875,4876,4877,4878,4879,4880,4881,4882,4883,4884,4885,4886,4887,4888,4889,4890,4891,4892,4893,4894,4895,4896,4897,4898,4899,
-        4900,4901,4902,4903,4904,4905,4906,4907,4908,4909,4910,4911,4912,4913,4914,4915,4916,4917,4918,4919,4920,4921,4922,4923,4924,4925,4926,4927,4928,4929,4930,4931,4932,4933,4934,4935,4936,4937,4938,4939,4940,4941,4942,4943,4944,4945,4946,4947,4948,4949,
-        4950,4951,4952,4953,4954,4955,4956,4957,4958,4959,4960,4961,4962,4963,4964,4965,4966,4967,4968,4969,4970,4971,4972,4973,4974,4975,4976,4977,4978,4979,4980,4981,4982,4983,4984,4985,4986,4987,4988,4989,4990,4991,4992,4993,4994,4995,4996,4997,4998,4999,
-        5000,5001,5002,5003,5004,5005,5006,5007,5008,5009,5010,5011,5012,5013,5014,5015,5016,5017,5018,5019,5020,5021,5022,5023,5024,5025,5026,5027,5028,5029,5030,5031,5032,5033,5034,5035,5036,5037,5038,5039,5040,5041,5042,5043,5044,5045,5046,5047,5048,5049,
-        5050,5051,5052,5053,5054,5055,5056,5057,5058,5059,5060,5061,5062,5063,5064,5065,5066,5067,5068,5069,5070,5071,5072,5073,5074,5075,5076,5077,5078,5079,5080,5081,5082,5083,5084,5085,5086,5087,5088,5089,5090,5091,5092,5093,5094,5095,5096,5097,5098,5099,
-        5100,5101,5102,5103,5104,5105,5106,5107,5108,5109,5110,5111,5112,5113,5114,5115,5116,5117,5118,5119,5120,5121,5122,5123,5124,5125,5126,5127,5128,5129,5130,5131,5132,5133,5134,5135,5136,5137,5138,5139,5140,5141,5142,5143,5144,5145,5146,5147,5148,5149,
-        5150,5151,5152,5153,5154,5155,5156,5157,5158,5159,5160,5161,5162,5163,5164,5165,5166,5167,5168,5169,5170,5171,5172,5173,5174,5175,5176,5177,5178,5179,5180,5181,5182,5183,5184,5185,5186,5187,5188,5189,5190,5191,5192,5193,5194,5195,5196,5197,5198,5199,
-        5200,5201,5202,5203,5204,5205,5206,5207,5208,5209,5210,5211,5212,5213,5214,5215,5216,5217,5218,5219,5220,5221,5222,5223,5224,5225,5226,5227,5228,5229,5230,5231,5232,5233,5234,5235,5236,5237,5238,5239,5240,5241,5242,5243,5244,5245,5246,5247,5248,5249,
-        5250,5251,5252,5253,5254,5255,5256,5257,5258,5259,5260,5261,5262,5263,5264,5265,5266,5267,5268,5269,5270,5271,5272,5273,5274,5275,5276,5277,5278,5279,5280,5281,5282,5283,5284,5285,5286,5287,5288,5289,5290,5291,5292,5293,5294,5295,5296,5297,5298,5299,
-        5300,5301,5302,5303,5304,5305,5306,5307,5308,5309,5310,5311,5312,5313,5314,5315,5316,5317,5318,5319,5320,5321,5322,5323,5324,5325,5326,5327,5328,5329,5330,5331,5332,5333,5334,5335,5336,5337,5338,5339,5340,5341,5342,5343,5344,5345,5346,5347,5348,5349,
-        5350,5351,5352,5353,5354,5355,5356,5357,5358,5359,5360,5361,5362,5363,5364,5365,5366,5367,5368,5369,5370,5371,5372,5373,5374,5375,5376,5377,5378,5379,5380,5381,5382,5383,5384,5385,5386,5387,5388,5389,5390,5391,5392,5393,5394,5395,5396,5397,5398,5399,
-        5400,5401,5402,5403,5404,5405,5406,5407,5408,5409,5410,5411,5412,5413,5414,5415,5416,5417,5418,5419,5420,5421,5422,5423,5424,5425,5426,5427,5428,5429,5430,5431,5432,5433,5434,5435,5436,5437,5438,5439,5440,5441,5442,5443,5444,5445,5446,5447,5448,5449,
-        5450,5451,5452,5453,5454,5455,5456,5457,5458,5459,5460,5461,5462,5463,5464,5465,5466,5467,5468,5469,5470,5471,5472,5473,5474,5475,5476,5477,5478,5479,5480,5481,5482,5483,5484,5485,5486,5487,5488,5489,5490,5491,5492,5493,5494,5495,5496,5497,5498,5499,
-        5500,5501,5502,5503,5504,5505,5506,5507,5508,5509,5510,5511,5512,5513,5514,5515,5516,5517,5518,5519,5520,5521,5522,5523,5524,5525,5526,5527,5528,5529,5530,5531,5532,5533,5534,5535,5536,5537,5538,5539,5540,5541,5542,5543,5544,5545,5546,5547,5548,5549,
-        5550,5551,5552,5553,5554,5555,5556,5557,5558,5559,5560,5561,5562,5563,5564,5565,5566,5567,5568,5569,5570,5571,5572,5573,5574,5575,5576,5577,5578,5579,5580,5581,5582,5583,5584,5585,5586,5587,5588,5589,5590,5591,5592,5593,5594,5595,5596,5597,5598,5599,
-        5600,5601,5602,5603,5604,5605,5606,5607,5608,5609,5610,5611,5612,5613,5614,5615,5616,5617,5618,5619,5620,5621,5622,5623,5624,5625,5626,5627,5628,5629,5630,5631,5632,5633,5634,5635,5636,5637,5638,5639,5640,5641,5642,5643,5644,5645,5646,5647,5648,5649,
-        5650,5651,5652,5653,5654,5655,5656,5657,5658,5659,5660,5661,5662,5663,5664,5665,5666,5667,5668,5669,5670,5671,5672,5673,5674,5675,5676,5677,5678,5679,5680,5681,5682,5683,5684,5685,5686,5687,5688,5689,5690,5691,5692,5693,5694,5695,5696,5697,5698,5699,
-        5700,5701,5702,5703,5704,5705,5706,5707,5708,5709,5710,5711,5712,5713,5714,5715,5716,5717,5718,5719,5720,5721,5722,5723,5724,5725,5726,5727,5728,5729,5730,5731,5732,5733,5734,5735,5736,5737,5738,5739,5740,5741,5742,5743,5744,5745,5746,5747,5748,5749,
-        5750,5751,5752,5753,5754,5755,5756,5757,5758,5759,5760,5761,5762,5763,5764,5765,5766,5767,5768,5769,5770,5771,5772,5773,5774,5775,5776,5777,5778,5779,5780,5781,5782,5783,5784,5785,5786,5787,5788,5789,5790,5791,5792,5793,5794,5795,5796,5797,5798,5799,
-        5800,5801,5802,5803,5804,5805,5806,5807,5808,5809,5810,5811,5812,5813,5814,5815,5816,5817,5818,5819,5820,5821,5822,5823,5824,5825,5826,5827,5828,5829,5830,5831,5832,5833,5834,5835,5836,5837,5838,5839,5840,5841,5842,5843,5844,5845,5846,5847,5848,5849,
-        5850,5851,5852,5853,5854,5855,5856,5857,5858,5859,5860,5861,5862,5863,5864,5865,5866,5867,5868,5869,5870,5871,5872,5873,5874,5875,5876,5877,5878,5879,5880,5881,5882,5883,5884,5885,5886,5887,5888,5889,5890,5891,5892,5893,5894,5895,5896,5897,5898,5899,
-        5900,5901,5902,5903,5904,5905,5906,5907,5908,5909,5910,5911,5912,5913,5914,5915,5916,5917,5918,5919,5920,5921,5922,5923,5924,5925,5926,5927,5928,5929,5930,5931,5932,5933,5934,5935,5936,5937,5938,5939,5940,5941,5942,5943,5944,5945,5946,5947,5948,5949,
-        5950,5951,5952,5953,5954,5955,5956,5957,5958,5959,5960,5961,5962,5963,5964,5965,5966,5967,5968,5969,5970,5971,5972,5973,5974,5975,5976,5977,5978,5979,5980,5981,5982,5983,5984,5985,5986,5987,5988,5989,5990,5991,5992,5993,5994,5995,5996,5997,5998,5999,
-        6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,6011,6012,6013,6014,6015,6016,6017,6018,6019,6020,6021,6022,6023,6024,6025,6026,6027,6028,6029,6030,6031,6032,6033,6034,6035,6036,6037,6038,6039,6040,6041,6042,6043,6044,6045,6046,6047,6048,6049,
-        6050,6051,6052,6053,6054,6055,6056,6057,6058,6059,6060,6061,6062,6063,6064,6065,6066,6067,6068,6069,6070,6071,6072,6073,6074,6075,6076,6077,6078,6079,6080,6081,6082,6083,6084,6085,6086,6087,6088,6089,6090,6091,6092,6093,6094,6095,6096,6097,6098,6099,
-        6100,6101,6102,6103,6104,6105,6106,6107,6108,6109,6110,6111,6112,6113,6114,6115,6116,6117,6118,6119,6120,6121,6122,6123,6124,6125,6126,6127,6128,6129,6130,6131,6132,6133,6134,6135,6136,6137,6138,6139,6140,6141,6142,6143,6144,6145,6146,6147,6148,6149,
-        6150,6151,6152,6153,6154,6155,6156,6157,6158,6159,6160,6161,6162,6163,6164,6165,6166,6167,6168,6169,6170,6171,6172,6173,6174,6175,6176,6177,6178,6179,6180,6181,6182,6183,6184,6185,6186,6187,6188,6189,6190,6191,6192,6193,6194,6195,6196,6197,6198,6199,
-        6200,6201,6202,6203,6204,6205,6206,6207,6208,6209,6210,6211,6212,6213,6214,6215,6216,6217,6218,6219,6220,6221,6222,6223,6224,6225,6226,6227,6228,6229,6230,6231,6232,6233,6234,6235,6236,6237,6238,6239,6240,6241,6242,6243,6244,6245,6246,6247,6248,6249,
-        6250,6251,6252,6253,6254,6255,6256,6257,6258,6259,6260,6261,6262,6263,6264,6265,6266,6267,6268,6269,6270,6271,6272,6273,6274,6275,6276,6277,6278,6279,6280,6281,6282,6283,6284,6285,6286,6287,6288,6289,6290,6291,6292,6293,6294,6295,6296,6297,6298,6299,
-        6300,6301,6302,6303,6304,6305,6306,6307,6308,6309,6310,6311,6312,6313,6314,6315,6316,6317,6318,6319,6320,6321,6322,6323,6324,6325,6326,6327,6328,6329,6330,6331,6332,6333,6334,6335,6336,6337,6338,6339,6340,6341,6342,6343,6344,6345,6346,6347,6348,6349,
-        6350,6351,6352,6353,6354,6355,6356,6357,6358,6359,6360,6361,6362,6363,6364,6365,6366,6367,6368,6369,6370,6371,6372,6373,6374,6375,6376,6377,6378,6379,6380,6381,6382,6383,6384,6385,6386,6387,6388,6389,6390,6391,6392,6393,6394,6395,6396,6397,6398,6399,
-        6400,6401,6402,6403,6404,6405,6406,6407,6408,6409,6410,6411,6412,6413,6414,6415,6416,6417,6418,6419,6420,6421,6422,6423,6424,6425,6426,6427,6428,6429,6430,6431,6432,6433,6434,6435,6436,6437,6438,6439,6440,6441,6442,6443,6444,6445,6446,6447,6448,6449,
-        6450,6451,6452,6453,6454,6455,6456,6457,6458,6459,6460,6461,6462,6463,6464,6465,6466,6467,6468,6469,6470,6471,6472,6473,6474,6475,6476,6477,6478,6479,6480,6481,6482,6483,6484,6485,6486,6487,6488,6489,6490,6491,6492,6493,6494,6495,6496,6497,6498,6499,
-        6500,6501,6502,6503,6504,6505,6506,6507,6508,6509,6510,6511,6512,6513,6514,6515,6516,6517,6518,6519,6520,6521,6522,6523,6524,6525,6526,6527,6528,6529,6530,6531,6532,6533,6534,6535,6536,6537,6538,6539,6540,6541,6542,6543,6544,6545,6546,6547,6548,6549,
-        6550,6551,6552,6553,6554,6555,6556,6557,6558,6559,6560,6561,6562,6563,6564,6565,6566,6567,6568,6569,6570,6571,6572,6573,6574,6575,6576,6577,6578,6579,6580,6581,6582,6583,6584,6585,6586,6587,6588,6589,6590,6591,6592,6593,6594,6595,6596,6597,6598,6599,
-        6600,6601,6602,6603,6604,6605,6606,6607,6608,6609,6610,6611,6612,6613,6614,6615,6616,6617,6618,6619,6620,6621,6622,6623,6624,6625,6626,6627,6628,6629,6630,6631,6632,6633,6634,6635,6636,6637,6638,6639,6640,6641,6642,6643,6644,6645,6646,6647,6648,6649,
-        6650,6651,6652,6653,6654,6655,6656,6657,6658,6659,6660,6661,6662,6663,6664,6665,6666,6667,6668,6669,6670,6671,6672,6673,6674,6675,6676,6677,6678,6679,6680,6681,6682,6683,6684,6685,6686,6687,6688,6689,6690,6691,6692,6693,6694,6695,6696,6697,6698,6699,
-        6700,6701,6702,6703,6704,6705,6706,6707,6708,6709,6710,6711,6712,6713,6714,6715,6716,6717,6718,6719,6720,6721,6722,6723,6724,6725,6726,6727,6728,6729,6730,6731,6732,6733,6734,6735,6736,6737,6738,6739,6740,6741,6742,6743,6744,6745,6746,6747,6748,6749,
-        6750,6751,6752,6753,6754,6755,6756,6757,6758,6759,6760,6761,6762,6763,6764,6765,6766,6767,6768,6769,6770,6771,6772,6773,6774,6775,6776,6777,6778,6779,6780,6781,6782,6783,6784,6785,6786,6787,6788,6789,6790,6791,6792,6793,6794,6795,6796,6797,6798,6799,
-        6800,6801,6802,6803,6804,6805,6806,6807,6808,6809,6810,6811,6812,6813,6814,6815,6816,6817,6818,6819,6820,6821,6822,6823,6824,6825,6826,6827,6828,6829,6830,6831,6832,6833,6834,6835,6836,6837,6838,6839,6840,6841,6842,6843,6844,6845,6846,6847,6848,6849,
-        6850,6851,6852,6853,6854,6855,6856,6857,6858,6859,6860,6861,6862,6863,6864,6865,6866,6867,6868,6869,6870,6871,6872,6873,6874,6875,6876,6877,6878,6879,6880,6881,6882,6883,6884,6885,6886,6887,6888,6889,6890,6891,6892,6893,6894,6895,6896,6897,6898,6899,
-        6900,6901,6902,6903,6904,6905,6906,6907,6908,6909,6910,6911,6912,6913,6914,6915,6916,6917,6918,6919,6920,6921,6922,6923,6924,6925,6926,6927,6928,6929,6930,6931,6932,6933,6934,6935,6936,6937,6938,6939,6940,6941,6942,6943,6944,6945,6946,6947,6948,6949,
-        6950,6951,6952,6953,6954,6955,6956,6957,6958,6959,6960,6961,6962,6963,6964,6965,6966,6967,6968,6969,6970,6971,6972,6973,6974,6975,6976,6977,6978,6979,6980,6981,6982,6983,6984,6985,6986,6987,6988,6989,6990,6991,6992,6993,6994,6995,6996,6997,6998,6999,
-        7000,7001,7002,7003,7004,7005,7006,7007,7008,7009,7010,7011,7012,7013,7014,7015,7016,7017,7018,7019,7020,7021,7022,7023,7024,7025,7026,7027,7028,7029,7030,7031,7032,7033,7034,7035,7036,7037,7038,7039,7040,7041,7042,7043,7044,7045,7046,7047,7048,7049,
-        7050,7051,7052,7053,7054,7055,7056,7057,7058,7059,7060,7061,7062,7063,7064,7065,7066,7067,7068,7069,7070,7071,7072,7073,7074,7075,7076,7077,7078,7079,7080,7081,7082,7083,7084,7085,7086,7087,7088,7089,7090,7091,7092,7093,7094,7095,7096,7097,7098,7099,
-        7100,7101,7102,7103,7104,7105,7106,7107,7108,7109,7110,7111,7112,7113,7114,7115,7116,7117,7118,7119,7120,7121,7122,7123,7124,7125,7126,7127,7128,7129,7130,7131,7132,7133,7134,7135,7136,7137,7138,7139,7140,7141,7142,7143,7144,7145,7146,7147,7148,7149,
-        7150,7151,7152,7153,7154,7155,7156,7157,7158,7159,7160,7161,7162,7163,7164,7165,7166,7167,7168,7169,7170,7171,7172,7173,7174,7175,7176,7177,7178,7179,7180,7181,7182,7183,7184,7185,7186,7187,7188,7189,7190,7191,7192,7193,7194,7195,7196,7197,7198,7199,
-        7200,7201,7202,7203,7204,7205,7206,7207,7208,7209,7210,7211,7212,7213,7214,7215,7216,7217,7218,7219,7220,7221,7222,7223,7224,7225,7226,7227,7228,7229,7230,7231,7232,7233,7234,7235,7236,7237,7238,7239,7240,7241,7242,7243,7244,7245,7246,7247,7248,7249,
-        7250,7251,7252,7253,7254,7255,7256,7257,7258,7259,7260,7261,7262,7263,7264,7265,7266,7267,7268,7269,7270,7271,7272,7273,7274,7275,7276,7277,7278,7279,7280,7281,7282,7283,7284,7285,7286,7287,7288,7289,7290,7291,7292,7293,7294,7295,7296,7297,7298,7299,
-        7300,7301,7302,7303,7304,7305,7306,7307,7308,7309,7310,7311,7312,7313,7314,7315,7316,7317,7318,7319,7320,7321,7322,7323,7324,7325,7326,7327,7328,7329,7330,7331,7332,7333,7334,7335,7336,7337,7338,7339,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,
-        7350,7351,7352,7353,7354,7355,7356,7357,7358,7359,7360,7361,7362,7363,7364,7365,7366,7367,7368,7369,7370,7371,7372,7373,7374,7375,7376,7377,7378,7379,7380,7381,7382,7383,7384,7385,7386,7387,7388,7389,7390,7391,7392,7393,7394,7395,7396,7397,7398,7399,
-        7400,7401,7402,7403,7404,7405,7406,7407,7408,7409,7410,7411,7412,7413,7414,7415,7416,7417,7418,7419,7420,7421,7422,7423,7424,7425,7426,7427,7428,7429,7430,7431,7432,7433,7434,7435,7436,7437,7438,7439,7440,7441,7442,7443,7444,7445,7446,7447,7448,7449,
-        7450,7451,7452,7453,7454,7455,7456,7457,7458,7459,7460,7461,7462,7463,7464,7465,7466,7467,7468,7469,7470,7471,7472,7473,7474,7475,7476,7477,7478,7479,7480,7481,7482,7483,7484,7485,7486,7487,7488,7489,7490,7491,7492,7493,7494,7495,7496,7497,7498,7499,
-        7500,7501,7502,7503,7504,7505,7506,7507,7508,7509,7510,7511,7512,7513,7514,7515,7516,7517,7518,7519,7520,7521,7522,7523,7524,7525,7526,7527,7528,7529,7530,7531,7532,7533,7534,7535,7536,7537,7538,7539,7540,7541,7542,7543,7544,7545,7546,7547,7548,7549,
-        7550,7551,7552,7553,7554,7555,7556,7557,7558,7559,7560,7561,7562,7563,7564,7565,7566,7567,7568,7569,7570,7571,7572,7573,7574,7575,7576,7577,7578,7579,7580,7581,7582,7583,7584,7585,7586,7587,7588,7589,7590,7591,7592,7593,7594,7595,7596,7597,7598,7599,
-        7600,7601,7602,7603,7604,7605,7606,7607,7608,7609,7610,7611,7612,7613,7614,7615,7616,7617,7618,7619,7620,7621,7622,7623,7624,7625,7626,7627,7628,7629,7630,7631,7632,7633,7634,7635,7636,7637,7638,7639,7640,7641,7642,7643,7644,7645,7646,7647,7648,7649,
-        7650,7651,7652,7653,7654,7655,7656,7657,7658,7659,7660,7661,7662,7663,7664,7665,7666,7667,7668,7669,7670,7671,7672,7673,7674,7675,7676,7677,7678,7679,7681,7681,7683,7683,7685,7685,7687,7687,7689,7689,7691,7691,7693,7693,7695,7695,7697,7697,7699,7699,
-        7701,7701,7703,7703,7705,7705,7707,7707,7709,7709,7711,7711,7713,7713,7715,7715,7717,7717,7719,7719,7721,7721,7723,7723,7725,7725,7727,7727,7729,7729,7731,7731,7733,7733,7735,7735,7737,7737,7739,7739,7741,7741,7743,7743,7745,7745,7747,7747,7749,7749,
-        7751,7751,7753,7753,7755,7755,7757,7757,7759,7759,7761,7761,7763,7763,7765,7765,7767,7767,7769,7769,7771,7771,7773,7773,7775,7775,7777,7777,7779,7779,7781,7781,7783,7783,7785,7785,7787,7787,7789,7789,7791,7791,7793,7793,7795,7795,7797,7797,7799,7799,
-        7801,7801,7803,7803,7805,7805,7807,7807,7809,7809,7811,7811,7813,7813,7815,7815,7817,7817,7819,7819,7821,7821,7823,7823,7825,7825,7827,7827,7829,7829,7830,7831,7832,7833,7834,7835,7836,7837,7838,7839,7841,7841,7843,7843,7845,7845,7847,7847,7849,7849,
-        7851,7851,7853,7853,7855,7855,7857,7857,7859,7859,7861,7861,7863,7863,7865,7865,7867,7867,7869,7869,7871,7871,7873,7873,7875,7875,7877,7877,7879,7879,7881,7881,7883,7883,7885,7885,7887,7887,7889,7889,7891,7891,7893,7893,7895,7895,7897,7897,7899,7899,
-        7901,7901,7903,7903,7905,7905,7907,7907,7909,7909,7911,7911,7913,7913,7915,7915,7917,7917,7919,7919,7921,7921,7923,7923,7925,7925,7927,7927,7929,7929,7930,7931,7932,7933,7934,7935,7936,7937,7938,7939,7940,7941,7942,7943,7936,7937,7938,7939,7940,7941,
-        7942,7943,7952,7953,7954,7955,7956,7957,7958,7959,7952,7953,7954,7955,7956,7957,7966,7967,7968,7969,7970,7971,7972,7973,7974,7975,7968,7969,7970,7971,7972,7973,7974,7975,7984,7985,7986,7987,7988,7989,7990,7991,7984,7985,7986,7987,7988,7989,7990,7991,
-        8000,8001,8002,8003,8004,8005,8006,8007,8000,8001,8002,8003,8004,8005,8014,8015,8016,8017,8018,8019,8020,8021,8022,8023,8024,8017,8026,8019,8028,8021,8030,8023,8032,8033,8034,8035,8036,8037,8038,8039,8032,8033,8034,8035,8036,8037,8038,8039,8048,8049,
-        8050,8051,8052,8053,8054,8055,8056,8057,8058,8059,8060,8061,8062,8063,8064,8065,8066,8067,8068,8069,8070,8071,8072,8073,8074,8075,8076,8077,8078,8079,8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,8091,8092,8093,8094,8095,8096,8097,8098,8099,
-        8100,8101,8102,8103,8104,8105,8106,8107,8108,8109,8110,8111,8112,8113,8114,8115,8116,8117,8118,8119,8112,8113,8048,8049,8124,8125,8126,8127,8128,8129,8130,8131,8132,8133,8134,8135,8050,8051,8052,8053,8140,8141,8142,8143,8144,8145,8146,8147,8148,8149,
-        8150,8151,8144,8145,8054,8055,8156,8157,8158,8159,8160,8161,8162,8163,8164,8165,8166,8167,8160,8161,8058,8059,8165,8173,8174,8175,8176,8177,8178,8179,8180,8181,8182,8183,8056,8057,8060,8061,8188,8189,8190,8191,8192,8193,8194,8195,8196,8197,8198,8199,
-        8200,8201,8202,8203,8204,8205,8206,8207,8208,8209,8210,8211,8212,8213,8214,8215,8216,8217,8218,8219,8220,8221,8222,8223,8224,8225,8226,8227,8228,8229,8230,8231,8232,8233,8234,8235,8236,8237,8238,8239,8240,8241,8242,8243,8244,8245,8246,8247,8248,8249,
-        8250,8251,8252,8253,8254,8255,8256,8257,8258,8259,8260,8261,8262,8263,8264,8265,8266,8267,8268,8269,8270,8271,8272,8273,8274,8275,8276,8277,8278,8279,8280,8281,8282,8283,8284,8285,8286,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,
-        8300,8301,8302,8303,8304,8305,8306,8307,8308,8309,8310,8311,8312,8313,8314,8315,8316,8317,8318,8319,8320,8321,8322,8323,8324,8325,8326,8327,8328,8329,8330,8331,8332,8333,8334,8335,8336,8337,8338,8339,8340,8341,8342,8343,8344,8345,8346,8347,8348,8349,
-        8350,8351,8352,8353,8354,8355,8356,8357,8358,8359,8360,8361,8362,8363,8364,8365,8366,8367,8368,8369,8370,8371,8372,8373,8374,8375,8376,8377,8378,8379,8380,8381,8382,8383,8384,8385,8386,8387,8388,8389,8390,8391,8392,8393,8394,8395,8396,8397,8398,8399,
-        8400,8401,8402,8403,8404,8405,8406,8407,8408,8409,8410,8411,8412,8413,8414,8415,8416,8417,8418,8419,8420,8421,8422,8423,8424,8425,8426,8427,8428,8429,8430,8431,8432,8433,8434,8435,8436,8437,8438,8439,8440,8441,8442,8443,8444,8445,8446,8447,8448,8449,
-        8450,8451,8452,8453,8454,8455,8456,8457,8458,8459,8460,8461,8462,8463,8464,8465,8466,8467,8468,8469,8470,8471,8472,8473,8474,8475,8476,8477,8478,8479,8480,8481,8482,8483,8484,8485,8486,8487,8488,8489,8490,8491,8492,8493,8494,8495,8496,8497,8498,8499,
-        8500,8501,8502,8503,8504,8505,8506,8507,8508,8509,8510,8511,8512,8513,8514,8515,8516,8517,8518,8519,8520,8521,8522,8523,8524,8525,8526,8527,8528,8529,8530,8531,8532,8533,8534,8535,8536,8537,8538,8539,8540,8541,8542,8543,8560,8561,8562,8563,8564,8565,
-        8566,8567,8568,8569,8570,8571,8572,8573,8574,8575,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,8570,8571,8572,8573,8574,8575,8576,8577,8578,8579,8580,8581,8582,8583,8584,8585,8586,8587,8588,8589,8590,8591,8592,8593,8594,8595,8596,8597,8598,8599,
-        8600,8601,8602,8603,8604,8605,8606,8607,8608,8609,8610,8611,8612,8613,8614,8615,8616,8617,8618,8619,8620,8621,8622,8623,8624,8625,8626,8627,8628,8629,8630,8631,8632,8633,8634,8635,8636,8637,8638,8639,8640,8641,8642,8643,8644,8645,8646,8647,8648,8649,
-        8650,8651,8652,8653,8654,8655,8656,8657,8658,8659,8660,8661,8662,8663,8664,8665,8666,8667,8668,8669,8670,8671,8672,8673,8674,8675,8676,8677,8678,8679,8680,8681,8682,8683,8684,8685,8686,8687,8688,8689,8690,8691,8692,8693,8694,8695,8696,8697,8698,8699,
-        8700,8701,8702,8703,8704,8705,8706,8707,8708,8709,8710,8711,8712,8713,8714,8715,8716,8717,8718,8719,8720,8721,8722,8723,8724,8725,8726,8727,8728,8729,8730,8731,8732,8733,8734,8735,8736,8737,8738,8739,8740,8741,8742,8743,8744,8745,8746,8747,8748,8749,
-        8750,8751,8752,8753,8754,8755,8756,8757,8758,8759,8760,8761,8762,8763,8764,8765,8766,8767,8768,8769,8770,8771,8772,8773,8774,8775,8776,8777,8778,8779,8780,8781,8782,8783,8784,8785,8786,8787,8788,8789,8790,8791,8792,8793,8794,8795,8796,8797,8798,8799,
-        8800,8801,8802,8803,8804,8805,8806,8807,8808,8809,8810,8811,8812,8813,8814,8815,8816,8817,8818,8819,8820,8821,8822,8823,8824,8825,8826,8827,8828,8829,8830,8831,8832,8833,8834,8835,8836,8837,8838,8839,8840,8841,8842,8843,8844,8845,8846,8847,8848,8849,
-        8850,8851,8852,8853,8854,8855,8856,8857,8858,8859,8860,8861,8862,8863,8864,8865,8866,8867,8868,8869,8870,8871,8872,8873,8874,8875,8876,8877,8878,8879,8880,8881,8882,8883,8884,8885,8886,8887,8888,8889,8890,8891,8892,8893,8894,8895,8896,8897,8898,8899,
-        8900,8901,8902,8903,8904,8905,8906,8907,8908,8909,8910,8911,8912,8913,8914,8915,8916,8917,8918,8919,8920,8921,8922,8923,8924,8925,8926,8927,8928,8929,8930,8931,8932,8933,8934,8935,8936,8937,8938,8939,8940,8941,8942,8943,8944,8945,8946,8947,8948,8949,
-        8950,8951,8952,8953,8954,8955,8956,8957,8958,8959,8960,8961,8962,8963,8964,8965,8966,8967,8968,8969,8970,8971,8972,8973,8974,8975,8976,8977,8978,8979,8980,8981,8982,8983,8984,8985,8986,8987,8988,8989,8990,8991,8992,8993,8994,8995,8996,8997,8998,8999,
-        9000,9001,9002,9003,9004,9005,9006,9007,9008,9009,9010,9011,9012,9013,9014,9015,9016,9017,9018,9019,9020,9021,9022,9023,9024,9025,9026,9027,9028,9029,9030,9031,9032,9033,9034,9035,9036,9037,9038,9039,9040,9041,9042,9043,9044,9045,9046,9047,9048,9049,
-        9050,9051,9052,9053,9054,9055,9056,9057,9058,9059,9060,9061,9062,9063,9064,9065,9066,9067,9068,9069,9070,9071,9072,9073,9074,9075,9076,9077,9078,9079,9080,9081,9082,9083,9084,9085,9086,9087,9088,9089,9090,9091,9092,9093,9094,9095,9096,9097,9098,9099,
-        9100,9101,9102,9103,9104,9105,9106,9107,9108,9109,9110,9111,9112,9113,9114,9115,9116,9117,9118,9119,9120,9121,9122,9123,9124,9125,9126,9127,9128,9129,9130,9131,9132,9133,9134,9135,9136,9137,9138,9139,9140,9141,9142,9143,9144,9145,9146,9147,9148,9149,
-        9150,9151,9152,9153,9154,9155,9156,9157,9158,9159,9160,9161,9162,9163,9164,9165,9166,9167,9168,9169,9170,9171,9172,9173,9174,9175,9176,9177,9178,9179,9180,9181,9182,9183,9184,9185,9186,9187,9188,9189,9190,9191,9192,9193,9194,9195,9196,9197,9198,9199,
-        9200,9201,9202,9203,9204,9205,9206,9207,9208,9209,9210,9211,9212,9213,9214,9215,9216,9217,9218,9219,9220,9221,9222,9223,9224,9225,9226,9227,9228,9229,9230,9231,9232,9233,9234,9235,9236,9237,9238,9239,9240,9241,9242,9243,9244,9245,9246,9247,9248,9249,
-        9250,9251,9252,9253,9254,9255,9256,9257,9258,9259,9260,9261,9262,9263,9264,9265,9266,9267,9268,9269,9270,9271,9272,9273,9274,9275,9276,9277,9278,9279,9280,9281,9282,9283,9284,9285,9286,9287,9288,9289,9290,9291,9292,9293,9294,9295,9296,9297,9298,9299,
-        9300,9301,9302,9303,9304,9305,9306,9307,9308,9309,9310,9311,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9322,9323,9324,9325,9326,9327,9328,9329,9330,9331,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345,9346,9347,9348,9349,
-        9350,9351,9352,9353,9354,9355,9356,9357,9358,9359,9360,9361,9362,9363,9364,9365,9366,9367,9368,9369,9370,9371,9372,9373,9374,9375,9376,9377,9378,9379,9380,9381,9382,9383,9384,9385,9386,9387,9388,9389,9390,9391,9392,9393,9394,9395,9396,9397,9424,9425,
-        9426,9427,9428,9429,9430,9431,9432,9433,9434,9435,9436,9437,9438,9439,9440,9441,9442,9443,9444,9445,9446,9447,9448,9449
-};
-
-static const guint16 ToLowerDataHigh [] = {
-        65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,65339,65340,65341,65342,65343,65344,65345,65346,65347,65348,65349,
-        65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,65371,65372,65373,65374,65375,65376,65377,65378,65379,65380,65381,65382,65383,65384,65385,65386,65387,65388,65389,65390,65391,65392,65393,65394,65395,65396,65397,65398,65399,
-        65400,65401,65402,65403,65404,65405,65406,65407,65408,65409,65410,65411,65412,65413,65414,65415,65416,65417,65418,65419,65420,65421,65422,65423,65424,65425,65426,65427,65428,65429,65430,65431,65432,65433,65434,65435,65436,65437,65438,65439,65440,65441,65442,65443,65444,65445,65446,65447,65448,65449,
-        65450,65451,65452,65453,65454,65455,65456,65457,65458,65459,65460,65461,65462,65463,65464,65465,65466,65467,65468,65469,65470,65471,65472,65473,65474,65475,65476,65477,65478,65479,65480,65481,65482,65483,65484,65485,65486,65487,65488,65489,65490,65491,65492,65493,65494,65495,65496,65497,65498,65499,
-        65500,65501,65502,65503,65504,65505,65506,65507,65508,65509,65510,65511,65512,65513,65514,65515,65516,65517,65518,65519,65520,65521,65522,65523,65524,65525,65526,65527,65528,65529,65530,65531,65532,65533,65534,65535
-};
-
-static const guint16 ToUpperDataLow [] = {
-        0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,
-        50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,65,66,67,
-        68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,
-        150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,
-        200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,247,216,217,
-        218,219,220,221,222,376,256,256,258,258,260,260,262,262,264,264,266,266,268,268,270,270,272,272,274,274,276,276,278,278,280,280,282,282,284,284,286,286,288,288,290,290,292,292,294,294,296,296,298,298,
-        300,300,302,302,304,305,306,306,308,308,310,310,312,313,313,315,315,317,317,319,319,321,321,323,323,325,325,327,327,329,330,330,332,332,334,334,336,336,338,338,340,340,342,342,344,344,346,346,348,348,
-        350,350,352,352,354,354,356,356,358,358,360,360,362,362,364,364,366,366,368,368,370,370,372,372,374,374,376,377,377,379,379,381,381,383,384,385,386,386,388,388,390,391,391,393,394,395,395,397,398,399,
-        400,401,401,403,404,405,406,407,408,408,410,411,412,413,414,415,416,416,418,418,420,420,422,423,423,425,426,427,428,428,430,431,431,433,434,435,435,437,437,439,440,440,442,443,444,444,446,447,448,449,
-        450,451,452,453,452,455,456,455,458,459,458,461,461,463,463,465,465,467,467,469,469,471,471,473,473,475,475,398,478,478,480,480,482,482,484,484,486,486,488,488,490,490,492,492,494,494,496,497,498,497,
-        500,500,502,503,504,505,506,506,508,508,510,510,512,512,514,514,516,516,518,518,520,520,522,522,524,524,526,526,528,528,530,530,532,532,534,534,536,537,538,539,540,541,542,543,544,545,546,547,548,549,
-        550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,385,390,597,393,394,
-        600,399,602,400,604,605,606,607,403,609,610,404,612,613,614,615,407,406,618,619,620,621,622,412,624,625,413,627,628,415,630,631,632,633,634,635,636,637,638,639,640,641,642,425,644,645,646,647,430,649,
-        433,434,652,653,654,655,656,657,439,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,
-        700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,
-        750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,
-        800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,
-        850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,
-        900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,902,904,905,906,944,913,914,915,916,917,
-        918,919,920,921,922,923,924,925,926,927,928,929,931,931,932,933,934,935,936,937,938,939,908,910,911,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,994,996,996,998,998,
-        1000,1000,1002,1002,1004,1004,1006,1006,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,
-        1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,
-        1068,1069,1070,1071,1104,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1117,1038,1039,1120,1120,1122,1122,1124,1124,1126,1126,1128,1128,1130,1130,1132,1132,1134,1134,1136,1136,1138,1138,1140,1140,1142,1142,1144,1144,1146,1146,1148,1148,
-        1150,1150,1152,1152,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1168,1170,1170,1172,1172,1174,1174,1176,1176,1178,1178,1180,1180,1182,1182,1184,1184,1186,1186,1188,1188,1190,1190,1192,1192,1194,1194,1196,1196,1198,1198,
-        1200,1200,1202,1202,1204,1204,1206,1206,1208,1208,1210,1210,1212,1212,1214,1214,1216,1217,1217,1219,1219,1221,1222,1223,1223,1225,1226,1227,1227,1229,1230,1231,1232,1232,1234,1234,1236,1236,1238,1238,1240,1240,1242,1242,1244,1244,1246,1246,1248,1248,
-        1250,1250,1252,1252,1254,1254,1256,1256,1258,1258,1260,1261,1262,1262,1264,1264,1266,1266,1268,1268,1270,1271,1272,1272,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,
-        1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,
-        1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,
-        1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,
-        1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,
-        1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,
-        1550,1551,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,
-        1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,
-        1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,
-        1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,
-        1750,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,
-        1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,
-        1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,
-        1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,
-        1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,
-        2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,
-        2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,
-        2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2147,2148,2149,
-        2150,2151,2152,2153,2154,2155,2156,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2176,2177,2178,2179,2180,2181,2182,2183,2184,2185,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,
-        2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2229,2230,2231,2232,2233,2234,2235,2236,2237,2238,2239,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,
-        2250,2251,2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,
-        2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2341,2342,2343,2344,2345,2346,2347,2348,2349,
-        2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,2361,2362,2363,2364,2365,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,2393,2394,2395,2396,2397,2398,2399,
-        2400,2401,2402,2403,2404,2405,2406,2407,2408,2409,2410,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2434,2435,2436,2437,2438,2439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,
-        2450,2451,2452,2453,2454,2455,2456,2457,2458,2459,2460,2461,2462,2463,2464,2465,2466,2467,2468,2469,2470,2471,2472,2473,2474,2475,2476,2477,2478,2479,2480,2481,2482,2483,2484,2485,2486,2487,2488,2489,2490,2491,2492,2493,2494,2495,2496,2497,2498,2499,
-        2500,2501,2502,2503,2504,2505,2506,2507,2508,2509,2510,2511,2512,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544,2545,2546,2547,2548,2549,
-        2550,2551,2552,2553,2554,2555,2556,2557,2558,2559,2560,2561,2562,2563,2564,2565,2566,2567,2568,2569,2570,2571,2572,2573,2574,2575,2576,2577,2578,2579,2580,2581,2582,2583,2584,2585,2586,2587,2588,2589,2590,2591,2592,2593,2594,2595,2596,2597,2598,2599,
-        2600,2601,2602,2603,2604,2605,2606,2607,2608,2609,2610,2611,2612,2613,2614,2615,2616,2617,2618,2619,2620,2621,2622,2623,2624,2625,2626,2627,2628,2629,2630,2631,2632,2633,2634,2635,2636,2637,2638,2639,2640,2641,2642,2643,2644,2645,2646,2647,2648,2649,
-        2650,2651,2652,2653,2654,2655,2656,2657,2658,2659,2660,2661,2662,2663,2664,2665,2666,2667,2668,2669,2670,2671,2672,2673,2674,2675,2676,2677,2678,2679,2680,2681,2682,2683,2684,2685,2686,2687,2688,2689,2690,2691,2692,2693,2694,2695,2696,2697,2698,2699,
-        2700,2701,2702,2703,2704,2705,2706,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2717,2718,2719,2720,2721,2722,2723,2724,2725,2726,2727,2728,2729,2730,2731,2732,2733,2734,2735,2736,2737,2738,2739,2740,2741,2742,2743,2744,2745,2746,2747,2748,2749,
-        2750,2751,2752,2753,2754,2755,2756,2757,2758,2759,2760,2761,2762,2763,2764,2765,2766,2767,2768,2769,2770,2771,2772,2773,2774,2775,2776,2777,2778,2779,2780,2781,2782,2783,2784,2785,2786,2787,2788,2789,2790,2791,2792,2793,2794,2795,2796,2797,2798,2799,
-        2800,2801,2802,2803,2804,2805,2806,2807,2808,2809,2810,2811,2812,2813,2814,2815,2816,2817,2818,2819,2820,2821,2822,2823,2824,2825,2826,2827,2828,2829,2830,2831,2832,2833,2834,2835,2836,2837,2838,2839,2840,2841,2842,2843,2844,2845,2846,2847,2848,2849,
-        2850,2851,2852,2853,2854,2855,2856,2857,2858,2859,2860,2861,2862,2863,2864,2865,2866,2867,2868,2869,2870,2871,2872,2873,2874,2875,2876,2877,2878,2879,2880,2881,2882,2883,2884,2885,2886,2887,2888,2889,2890,2891,2892,2893,2894,2895,2896,2897,2898,2899,
-        2900,2901,2902,2903,2904,2905,2906,2907,2908,2909,2910,2911,2912,2913,2914,2915,2916,2917,2918,2919,2920,2921,2922,2923,2924,2925,2926,2927,2928,2929,2930,2931,2932,2933,2934,2935,2936,2937,2938,2939,2940,2941,2942,2943,2944,2945,2946,2947,2948,2949,
-        2950,2951,2952,2953,2954,2955,2956,2957,2958,2959,2960,2961,2962,2963,2964,2965,2966,2967,2968,2969,2970,2971,2972,2973,2974,2975,2976,2977,2978,2979,2980,2981,2982,2983,2984,2985,2986,2987,2988,2989,2990,2991,2992,2993,2994,2995,2996,2997,2998,2999,
-        3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,3020,3021,3022,3023,3024,3025,3026,3027,3028,3029,3030,3031,3032,3033,3034,3035,3036,3037,3038,3039,3040,3041,3042,3043,3044,3045,3046,3047,3048,3049,
-        3050,3051,3052,3053,3054,3055,3056,3057,3058,3059,3060,3061,3062,3063,3064,3065,3066,3067,3068,3069,3070,3071,3072,3073,3074,3075,3076,3077,3078,3079,3080,3081,3082,3083,3084,3085,3086,3087,3088,3089,3090,3091,3092,3093,3094,3095,3096,3097,3098,3099,
-        3100,3101,3102,3103,3104,3105,3106,3107,3108,3109,3110,3111,3112,3113,3114,3115,3116,3117,3118,3119,3120,3121,3122,3123,3124,3125,3126,3127,3128,3129,3130,3131,3132,3133,3134,3135,3136,3137,3138,3139,3140,3141,3142,3143,3144,3145,3146,3147,3148,3149,
-        3150,3151,3152,3153,3154,3155,3156,3157,3158,3159,3160,3161,3162,3163,3164,3165,3166,3167,3168,3169,3170,3171,3172,3173,3174,3175,3176,3177,3178,3179,3180,3181,3182,3183,3184,3185,3186,3187,3188,3189,3190,3191,3192,3193,3194,3195,3196,3197,3198,3199,
-        3200,3201,3202,3203,3204,3205,3206,3207,3208,3209,3210,3211,3212,3213,3214,3215,3216,3217,3218,3219,3220,3221,3222,3223,3224,3225,3226,3227,3228,3229,3230,3231,3232,3233,3234,3235,3236,3237,3238,3239,3240,3241,3242,3243,3244,3245,3246,3247,3248,3249,
-        3250,3251,3252,3253,3254,3255,3256,3257,3258,3259,3260,3261,3262,3263,3264,3265,3266,3267,3268,3269,3270,3271,3272,3273,3274,3275,3276,3277,3278,3279,3280,3281,3282,3283,3284,3285,3286,3287,3288,3289,3290,3291,3292,3293,3294,3295,3296,3297,3298,3299,
-        3300,3301,3302,3303,3304,3305,3306,3307,3308,3309,3310,3311,3312,3313,3314,3315,3316,3317,3318,3319,3320,3321,3322,3323,3324,3325,3326,3327,3328,3329,3330,3331,3332,3333,3334,3335,3336,3337,3338,3339,3340,3341,3342,3343,3344,3345,3346,3347,3348,3349,
-        3350,3351,3352,3353,3354,3355,3356,3357,3358,3359,3360,3361,3362,3363,3364,3365,3366,3367,3368,3369,3370,3371,3372,3373,3374,3375,3376,3377,3378,3379,3380,3381,3382,3383,3384,3385,3386,3387,3388,3389,3390,3391,3392,3393,3394,3395,3396,3397,3398,3399,
-        3400,3401,3402,3403,3404,3405,3406,3407,3408,3409,3410,3411,3412,3413,3414,3415,3416,3417,3418,3419,3420,3421,3422,3423,3424,3425,3426,3427,3428,3429,3430,3431,3432,3433,3434,3435,3436,3437,3438,3439,3440,3441,3442,3443,3444,3445,3446,3447,3448,3449,
-        3450,3451,3452,3453,3454,3455,3456,3457,3458,3459,3460,3461,3462,3463,3464,3465,3466,3467,3468,3469,3470,3471,3472,3473,3474,3475,3476,3477,3478,3479,3480,3481,3482,3483,3484,3485,3486,3487,3488,3489,3490,3491,3492,3493,3494,3495,3496,3497,3498,3499,
-        3500,3501,3502,3503,3504,3505,3506,3507,3508,3509,3510,3511,3512,3513,3514,3515,3516,3517,3518,3519,3520,3521,3522,3523,3524,3525,3526,3527,3528,3529,3530,3531,3532,3533,3534,3535,3536,3537,3538,3539,3540,3541,3542,3543,3544,3545,3546,3547,3548,3549,
-        3550,3551,3552,3553,3554,3555,3556,3557,3558,3559,3560,3561,3562,3563,3564,3565,3566,3567,3568,3569,3570,3571,3572,3573,3574,3575,3576,3577,3578,3579,3580,3581,3582,3583,3584,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3595,3596,3597,3598,3599,
-        3600,3601,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623,3624,3625,3626,3627,3628,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,3639,3640,3641,3642,3643,3644,3645,3646,3647,3648,3649,
-        3650,3651,3652,3653,3654,3655,3656,3657,3658,3659,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3670,3671,3672,3673,3674,3675,3676,3677,3678,3679,3680,3681,3682,3683,3684,3685,3686,3687,3688,3689,3690,3691,3692,3693,3694,3695,3696,3697,3698,3699,
-        3700,3701,3702,3703,3704,3705,3706,3707,3708,3709,3710,3711,3712,3713,3714,3715,3716,3717,3718,3719,3720,3721,3722,3723,3724,3725,3726,3727,3728,3729,3730,3731,3732,3733,3734,3735,3736,3737,3738,3739,3740,3741,3742,3743,3744,3745,3746,3747,3748,3749,
-        3750,3751,3752,3753,3754,3755,3756,3757,3758,3759,3760,3761,3762,3763,3764,3765,3766,3767,3768,3769,3770,3771,3772,3773,3774,3775,3776,3777,3778,3779,3780,3781,3782,3783,3784,3785,3786,3787,3788,3789,3790,3791,3792,3793,3794,3795,3796,3797,3798,3799,
-        3800,3801,3802,3803,3804,3805,3806,3807,3808,3809,3810,3811,3812,3813,3814,3815,3816,3817,3818,3819,3820,3821,3822,3823,3824,3825,3826,3827,3828,3829,3830,3831,3832,3833,3834,3835,3836,3837,3838,3839,3840,3841,3842,3843,3844,3845,3846,3847,3848,3849,
-        3850,3851,3852,3853,3854,3855,3856,3857,3858,3859,3860,3861,3862,3863,3864,3865,3866,3867,3868,3869,3870,3871,3872,3873,3874,3875,3876,3877,3878,3879,3880,3881,3882,3883,3884,3885,3886,3887,3888,3889,3890,3891,3892,3893,3894,3895,3896,3897,3898,3899,
-        3900,3901,3902,3903,3904,3905,3906,3907,3908,3909,3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3921,3922,3923,3924,3925,3926,3927,3928,3929,3930,3931,3932,3933,3934,3935,3936,3937,3938,3939,3940,3941,3942,3943,3944,3945,3946,3947,3948,3949,
-        3950,3951,3952,3953,3954,3955,3956,3957,3958,3959,3960,3961,3962,3963,3964,3965,3966,3967,3968,3969,3970,3971,3972,3973,3974,3975,3976,3977,3978,3979,3980,3981,3982,3983,3984,3985,3986,3987,3988,3989,3990,3991,3992,3993,3994,3995,3996,3997,3998,3999,
-        4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,4012,4013,4014,4015,4016,4017,4018,4019,4020,4021,4022,4023,4024,4025,4026,4027,4028,4029,4030,4031,4032,4033,4034,4035,4036,4037,4038,4039,4040,4041,4042,4043,4044,4045,4046,4047,4048,4049,
-        4050,4051,4052,4053,4054,4055,4056,4057,4058,4059,4060,4061,4062,4063,4064,4065,4066,4067,4068,4069,4070,4071,4072,4073,4074,4075,4076,4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096,4097,4098,4099,
-        4100,4101,4102,4103,4104,4105,4106,4107,4108,4109,4110,4111,4112,4113,4114,4115,4116,4117,4118,4119,4120,4121,4122,4123,4124,4125,4126,4127,4128,4129,4130,4131,4132,4133,4134,4135,4136,4137,4138,4139,4140,4141,4142,4143,4144,4145,4146,4147,4148,4149,
-        4150,4151,4152,4153,4154,4155,4156,4157,4158,4159,4160,4161,4162,4163,4164,4165,4166,4167,4168,4169,4170,4171,4172,4173,4174,4175,4176,4177,4178,4179,4180,4181,4182,4183,4184,4185,4186,4187,4188,4189,4190,4191,4192,4193,4194,4195,4196,4197,4198,4199,
-        4200,4201,4202,4203,4204,4205,4206,4207,4208,4209,4210,4211,4212,4213,4214,4215,4216,4217,4218,4219,4220,4221,4222,4223,4224,4225,4226,4227,4228,4229,4230,4231,4232,4233,4234,4235,4236,4237,4238,4239,4240,4241,4242,4243,4244,4245,4246,4247,4248,4249,
-        4250,4251,4252,4253,4254,4255,4256,4257,4258,4259,4260,4261,4262,4263,4264,4265,4266,4267,4268,4269,4270,4271,4272,4273,4274,4275,4276,4277,4278,4279,4280,4281,4282,4283,4284,4285,4286,4287,4288,4289,4290,4291,4292,4293,4294,4295,4296,4297,4298,4299,
-        4300,4301,4302,4303,4304,4305,4306,4307,4308,4309,4310,4311,4312,4313,4314,4315,4316,4317,4318,4319,4320,4321,4322,4323,4324,4325,4326,4327,4328,4329,4330,4331,4332,4333,4334,4335,4336,4337,4338,4339,4340,4341,4342,4343,4344,4345,4346,4347,4348,4349,
-        4350,4351,4352,4353,4354,4355,4356,4357,4358,4359,4360,4361,4362,4363,4364,4365,4366,4367,4368,4369,4370,4371,4372,4373,4374,4375,4376,4377,4378,4379,4380,4381,4382,4383,4384,4385,4386,4387,4388,4389,4390,4391,4392,4393,4394,4395,4396,4397,4398,4399,
-        4400,4401,4402,4403,4404,4405,4406,4407,4408,4409,4410,4411,4412,4413,4414,4415,4416,4417,4418,4419,4420,4421,4422,4423,4424,4425,4426,4427,4428,4429,4430,4431,4432,4433,4434,4435,4436,4437,4438,4439,4440,4441,4442,4443,4444,4445,4446,4447,4448,4449,
-        4450,4451,4452,4453,4454,4455,4456,4457,4458,4459,4460,4461,4462,4463,4464,4465,4466,4467,4468,4469,4470,4471,4472,4473,4474,4475,4476,4477,4478,4479,4480,4481,4482,4483,4484,4485,4486,4487,4488,4489,4490,4491,4492,4493,4494,4495,4496,4497,4498,4499,
-        4500,4501,4502,4503,4504,4505,4506,4507,4508,4509,4510,4511,4512,4513,4514,4515,4516,4517,4518,4519,4520,4521,4522,4523,4524,4525,4526,4527,4528,4529,4530,4531,4532,4533,4534,4535,4536,4537,4538,4539,4540,4541,4542,4543,4544,4545,4546,4547,4548,4549,
-        4550,4551,4552,4553,4554,4555,4556,4557,4558,4559,4560,4561,4562,4563,4564,4565,4566,4567,4568,4569,4570,4571,4572,4573,4574,4575,4576,4577,4578,4579,4580,4581,4582,4583,4584,4585,4586,4587,4588,4589,4590,4591,4592,4593,4594,4595,4596,4597,4598,4599,
-        4600,4601,4602,4603,4604,4605,4606,4607,4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4626,4627,4628,4629,4630,4631,4632,4633,4634,4635,4636,4637,4638,4639,4640,4641,4642,4643,4644,4645,4646,4647,4648,4649,
-        4650,4651,4652,4653,4654,4655,4656,4657,4658,4659,4660,4661,4662,4663,4664,4665,4666,4667,4668,4669,4670,4671,4672,4673,4674,4675,4676,4677,4678,4679,4680,4681,4682,4683,4684,4685,4686,4687,4688,4689,4690,4691,4692,4693,4694,4695,4696,4697,4698,4699,
-        4700,4701,4702,4703,4704,4705,4706,4707,4708,4709,4710,4711,4712,4713,4714,4715,4716,4717,4718,4719,4720,4721,4722,4723,4724,4725,4726,4727,4728,4729,4730,4731,4732,4733,4734,4735,4736,4737,4738,4739,4740,4741,4742,4743,4744,4745,4746,4747,4748,4749,
-        4750,4751,4752,4753,4754,4755,4756,4757,4758,4759,4760,4761,4762,4763,4764,4765,4766,4767,4768,4769,4770,4771,4772,4773,4774,4775,4776,4777,4778,4779,4780,4781,4782,4783,4784,4785,4786,4787,4788,4789,4790,4791,4792,4793,4794,4795,4796,4797,4798,4799,
-        4800,4801,4802,4803,4804,4805,4806,4807,4808,4809,4810,4811,4812,4813,4814,4815,4816,4817,4818,4819,4820,4821,4822,4823,4824,4825,4826,4827,4828,4829,4830,4831,4832,4833,4834,4835,4836,4837,4838,4839,4840,4841,4842,4843,4844,4845,4846,4847,4848,4849,
-        4850,4851,4852,4853,4854,4855,4856,4857,4858,4859,4860,4861,4862,4863,4864,4865,4866,4867,4868,4869,4870,4871,4872,4873,4874,4875,4876,4877,4878,4879,4880,4881,4882,4883,4884,4885,4886,4887,4888,4889,4890,4891,4892,4893,4894,4895,4896,4897,4898,4899,
-        4900,4901,4902,4903,4904,4905,4906,4907,4908,4909,4910,4911,4912,4913,4914,4915,4916,4917,4918,4919,4920,4921,4922,4923,4924,4925,4926,4927,4928,4929,4930,4931,4932,4933,4934,4935,4936,4937,4938,4939,4940,4941,4942,4943,4944,4945,4946,4947,4948,4949,
-        4950,4951,4952,4953,4954,4955,4956,4957,4958,4959,4960,4961,4962,4963,4964,4965,4966,4967,4968,4969,4970,4971,4972,4973,4974,4975,4976,4977,4978,4979,4980,4981,4982,4983,4984,4985,4986,4987,4988,4989,4990,4991,4992,4993,4994,4995,4996,4997,4998,4999,
-        5000,5001,5002,5003,5004,5005,5006,5007,5008,5009,5010,5011,5012,5013,5014,5015,5016,5017,5018,5019,5020,5021,5022,5023,5024,5025,5026,5027,5028,5029,5030,5031,5032,5033,5034,5035,5036,5037,5038,5039,5040,5041,5042,5043,5044,5045,5046,5047,5048,5049,
-        5050,5051,5052,5053,5054,5055,5056,5057,5058,5059,5060,5061,5062,5063,5064,5065,5066,5067,5068,5069,5070,5071,5072,5073,5074,5075,5076,5077,5078,5079,5080,5081,5082,5083,5084,5085,5086,5087,5088,5089,5090,5091,5092,5093,5094,5095,5096,5097,5098,5099,
-        5100,5101,5102,5103,5104,5105,5106,5107,5108,5109,5110,5111,5112,5113,5114,5115,5116,5117,5118,5119,5120,5121,5122,5123,5124,5125,5126,5127,5128,5129,5130,5131,5132,5133,5134,5135,5136,5137,5138,5139,5140,5141,5142,5143,5144,5145,5146,5147,5148,5149,
-        5150,5151,5152,5153,5154,5155,5156,5157,5158,5159,5160,5161,5162,5163,5164,5165,5166,5167,5168,5169,5170,5171,5172,5173,5174,5175,5176,5177,5178,5179,5180,5181,5182,5183,5184,5185,5186,5187,5188,5189,5190,5191,5192,5193,5194,5195,5196,5197,5198,5199,
-        5200,5201,5202,5203,5204,5205,5206,5207,5208,5209,5210,5211,5212,5213,5214,5215,5216,5217,5218,5219,5220,5221,5222,5223,5224,5225,5226,5227,5228,5229,5230,5231,5232,5233,5234,5235,5236,5237,5238,5239,5240,5241,5242,5243,5244,5245,5246,5247,5248,5249,
-        5250,5251,5252,5253,5254,5255,5256,5257,5258,5259,5260,5261,5262,5263,5264,5265,5266,5267,5268,5269,5270,5271,5272,5273,5274,5275,5276,5277,5278,5279,5280,5281,5282,5283,5284,5285,5286,5287,5288,5289,5290,5291,5292,5293,5294,5295,5296,5297,5298,5299,
-        5300,5301,5302,5303,5304,5305,5306,5307,5308,5309,5310,5311,5312,5313,5314,5315,5316,5317,5318,5319,5320,5321,5322,5323,5324,5325,5326,5327,5328,5329,5330,5331,5332,5333,5334,5335,5336,5337,5338,5339,5340,5341,5342,5343,5344,5345,5346,5347,5348,5349,
-        5350,5351,5352,5353,5354,5355,5356,5357,5358,5359,5360,5361,5362,5363,5364,5365,5366,5367,5368,5369,5370,5371,5372,5373,5374,5375,5376,5377,5378,5379,5380,5381,5382,5383,5384,5385,5386,5387,5388,5389,5390,5391,5392,5393,5394,5395,5396,5397,5398,5399,
-        5400,5401,5402,5403,5404,5405,5406,5407,5408,5409,5410,5411,5412,5413,5414,5415,5416,5417,5418,5419,5420,5421,5422,5423,5424,5425,5426,5427,5428,5429,5430,5431,5432,5433,5434,5435,5436,5437,5438,5439,5440,5441,5442,5443,5444,5445,5446,5447,5448,5449,
-        5450,5451,5452,5453,5454,5455,5456,5457,5458,5459,5460,5461,5462,5463,5464,5465,5466,5467,5468,5469,5470,5471,5472,5473,5474,5475,5476,5477,5478,5479,5480,5481,5482,5483,5484,5485,5486,5487,5488,5489,5490,5491,5492,5493,5494,5495,5496,5497,5498,5499,
-        5500,5501,5502,5503,5504,5505,5506,5507,5508,5509,5510,5511,5512,5513,5514,5515,5516,5517,5518,5519,5520,5521,5522,5523,5524,5525,5526,5527,5528,5529,5530,5531,5532,5533,5534,5535,5536,5537,5538,5539,5540,5541,5542,5543,5544,5545,5546,5547,5548,5549,
-        5550,5551,5552,5553,5554,5555,5556,5557,5558,5559,5560,5561,5562,5563,5564,5565,5566,5567,5568,5569,5570,5571,5572,5573,5574,5575,5576,5577,5578,5579,5580,5581,5582,5583,5584,5585,5586,5587,5588,5589,5590,5591,5592,5593,5594,5595,5596,5597,5598,5599,
-        5600,5601,5602,5603,5604,5605,5606,5607,5608,5609,5610,5611,5612,5613,5614,5615,5616,5617,5618,5619,5620,5621,5622,5623,5624,5625,5626,5627,5628,5629,5630,5631,5632,5633,5634,5635,5636,5637,5638,5639,5640,5641,5642,5643,5644,5645,5646,5647,5648,5649,
-        5650,5651,5652,5653,5654,5655,5656,5657,5658,5659,5660,5661,5662,5663,5664,5665,5666,5667,5668,5669,5670,5671,5672,5673,5674,5675,5676,5677,5678,5679,5680,5681,5682,5683,5684,5685,5686,5687,5688,5689,5690,5691,5692,5693,5694,5695,5696,5697,5698,5699,
-        5700,5701,5702,5703,5704,5705,5706,5707,5708,5709,5710,5711,5712,5713,5714,5715,5716,5717,5718,5719,5720,5721,5722,5723,5724,5725,5726,5727,5728,5729,5730,5731,5732,5733,5734,5735,5736,5737,5738,5739,5740,5741,5742,5743,5744,5745,5746,5747,5748,5749,
-        5750,5751,5752,5753,5754,5755,5756,5757,5758,5759,5760,5761,5762,5763,5764,5765,5766,5767,5768,5769,5770,5771,5772,5773,5774,5775,5776,5777,5778,5779,5780,5781,5782,5783,5784,5785,5786,5787,5788,5789,5790,5791,5792,5793,5794,5795,5796,5797,5798,5799,
-        5800,5801,5802,5803,5804,5805,5806,5807,5808,5809,5810,5811,5812,5813,5814,5815,5816,5817,5818,5819,5820,5821,5822,5823,5824,5825,5826,5827,5828,5829,5830,5831,5832,5833,5834,5835,5836,5837,5838,5839,5840,5841,5842,5843,5844,5845,5846,5847,5848,5849,
-        5850,5851,5852,5853,5854,5855,5856,5857,5858,5859,5860,5861,5862,5863,5864,5865,5866,5867,5868,5869,5870,5871,5872,5873,5874,5875,5876,5877,5878,5879,5880,5881,5882,5883,5884,5885,5886,5887,5888,5889,5890,5891,5892,5893,5894,5895,5896,5897,5898,5899,
-        5900,5901,5902,5903,5904,5905,5906,5907,5908,5909,5910,5911,5912,5913,5914,5915,5916,5917,5918,5919,5920,5921,5922,5923,5924,5925,5926,5927,5928,5929,5930,5931,5932,5933,5934,5935,5936,5937,5938,5939,5940,5941,5942,5943,5944,5945,5946,5947,5948,5949,
-        5950,5951,5952,5953,5954,5955,5956,5957,5958,5959,5960,5961,5962,5963,5964,5965,5966,5967,5968,5969,5970,5971,5972,5973,5974,5975,5976,5977,5978,5979,5980,5981,5982,5983,5984,5985,5986,5987,5988,5989,5990,5991,5992,5993,5994,5995,5996,5997,5998,5999,
-        6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,6011,6012,6013,6014,6015,6016,6017,6018,6019,6020,6021,6022,6023,6024,6025,6026,6027,6028,6029,6030,6031,6032,6033,6034,6035,6036,6037,6038,6039,6040,6041,6042,6043,6044,6045,6046,6047,6048,6049,
-        6050,6051,6052,6053,6054,6055,6056,6057,6058,6059,6060,6061,6062,6063,6064,6065,6066,6067,6068,6069,6070,6071,6072,6073,6074,6075,6076,6077,6078,6079,6080,6081,6082,6083,6084,6085,6086,6087,6088,6089,6090,6091,6092,6093,6094,6095,6096,6097,6098,6099,
-        6100,6101,6102,6103,6104,6105,6106,6107,6108,6109,6110,6111,6112,6113,6114,6115,6116,6117,6118,6119,6120,6121,6122,6123,6124,6125,6126,6127,6128,6129,6130,6131,6132,6133,6134,6135,6136,6137,6138,6139,6140,6141,6142,6143,6144,6145,6146,6147,6148,6149,
-        6150,6151,6152,6153,6154,6155,6156,6157,6158,6159,6160,6161,6162,6163,6164,6165,6166,6167,6168,6169,6170,6171,6172,6173,6174,6175,6176,6177,6178,6179,6180,6181,6182,6183,6184,6185,6186,6187,6188,6189,6190,6191,6192,6193,6194,6195,6196,6197,6198,6199,
-        6200,6201,6202,6203,6204,6205,6206,6207,6208,6209,6210,6211,6212,6213,6214,6215,6216,6217,6218,6219,6220,6221,6222,6223,6224,6225,6226,6227,6228,6229,6230,6231,6232,6233,6234,6235,6236,6237,6238,6239,6240,6241,6242,6243,6244,6245,6246,6247,6248,6249,
-        6250,6251,6252,6253,6254,6255,6256,6257,6258,6259,6260,6261,6262,6263,6264,6265,6266,6267,6268,6269,6270,6271,6272,6273,6274,6275,6276,6277,6278,6279,6280,6281,6282,6283,6284,6285,6286,6287,6288,6289,6290,6291,6292,6293,6294,6295,6296,6297,6298,6299,
-        6300,6301,6302,6303,6304,6305,6306,6307,6308,6309,6310,6311,6312,6313,6314,6315,6316,6317,6318,6319,6320,6321,6322,6323,6324,6325,6326,6327,6328,6329,6330,6331,6332,6333,6334,6335,6336,6337,6338,6339,6340,6341,6342,6343,6344,6345,6346,6347,6348,6349,
-        6350,6351,6352,6353,6354,6355,6356,6357,6358,6359,6360,6361,6362,6363,6364,6365,6366,6367,6368,6369,6370,6371,6372,6373,6374,6375,6376,6377,6378,6379,6380,6381,6382,6383,6384,6385,6386,6387,6388,6389,6390,6391,6392,6393,6394,6395,6396,6397,6398,6399,
-        6400,6401,6402,6403,6404,6405,6406,6407,6408,6409,6410,6411,6412,6413,6414,6415,6416,6417,6418,6419,6420,6421,6422,6423,6424,6425,6426,6427,6428,6429,6430,6431,6432,6433,6434,6435,6436,6437,6438,6439,6440,6441,6442,6443,6444,6445,6446,6447,6448,6449,
-        6450,6451,6452,6453,6454,6455,6456,6457,6458,6459,6460,6461,6462,6463,6464,6465,6466,6467,6468,6469,6470,6471,6472,6473,6474,6475,6476,6477,6478,6479,6480,6481,6482,6483,6484,6485,6486,6487,6488,6489,6490,6491,6492,6493,6494,6495,6496,6497,6498,6499,
-        6500,6501,6502,6503,6504,6505,6506,6507,6508,6509,6510,6511,6512,6513,6514,6515,6516,6517,6518,6519,6520,6521,6522,6523,6524,6525,6526,6527,6528,6529,6530,6531,6532,6533,6534,6535,6536,6537,6538,6539,6540,6541,6542,6543,6544,6545,6546,6547,6548,6549,
-        6550,6551,6552,6553,6554,6555,6556,6557,6558,6559,6560,6561,6562,6563,6564,6565,6566,6567,6568,6569,6570,6571,6572,6573,6574,6575,6576,6577,6578,6579,6580,6581,6582,6583,6584,6585,6586,6587,6588,6589,6590,6591,6592,6593,6594,6595,6596,6597,6598,6599,
-        6600,6601,6602,6603,6604,6605,6606,6607,6608,6609,6610,6611,6612,6613,6614,6615,6616,6617,6618,6619,6620,6621,6622,6623,6624,6625,6626,6627,6628,6629,6630,6631,6632,6633,6634,6635,6636,6637,6638,6639,6640,6641,6642,6643,6644,6645,6646,6647,6648,6649,
-        6650,6651,6652,6653,6654,6655,6656,6657,6658,6659,6660,6661,6662,6663,6664,6665,6666,6667,6668,6669,6670,6671,6672,6673,6674,6675,6676,6677,6678,6679,6680,6681,6682,6683,6684,6685,6686,6687,6688,6689,6690,6691,6692,6693,6694,6695,6696,6697,6698,6699,
-        6700,6701,6702,6703,6704,6705,6706,6707,6708,6709,6710,6711,6712,6713,6714,6715,6716,6717,6718,6719,6720,6721,6722,6723,6724,6725,6726,6727,6728,6729,6730,6731,6732,6733,6734,6735,6736,6737,6738,6739,6740,6741,6742,6743,6744,6745,6746,6747,6748,6749,
-        6750,6751,6752,6753,6754,6755,6756,6757,6758,6759,6760,6761,6762,6763,6764,6765,6766,6767,6768,6769,6770,6771,6772,6773,6774,6775,6776,6777,6778,6779,6780,6781,6782,6783,6784,6785,6786,6787,6788,6789,6790,6791,6792,6793,6794,6795,6796,6797,6798,6799,
-        6800,6801,6802,6803,6804,6805,6806,6807,6808,6809,6810,6811,6812,6813,6814,6815,6816,6817,6818,6819,6820,6821,6822,6823,6824,6825,6826,6827,6828,6829,6830,6831,6832,6833,6834,6835,6836,6837,6838,6839,6840,6841,6842,6843,6844,6845,6846,6847,6848,6849,
-        6850,6851,6852,6853,6854,6855,6856,6857,6858,6859,6860,6861,6862,6863,6864,6865,6866,6867,6868,6869,6870,6871,6872,6873,6874,6875,6876,6877,6878,6879,6880,6881,6882,6883,6884,6885,6886,6887,6888,6889,6890,6891,6892,6893,6894,6895,6896,6897,6898,6899,
-        6900,6901,6902,6903,6904,6905,6906,6907,6908,6909,6910,6911,6912,6913,6914,6915,6916,6917,6918,6919,6920,6921,6922,6923,6924,6925,6926,6927,6928,6929,6930,6931,6932,6933,6934,6935,6936,6937,6938,6939,6940,6941,6942,6943,6944,6945,6946,6947,6948,6949,
-        6950,6951,6952,6953,6954,6955,6956,6957,6958,6959,6960,6961,6962,6963,6964,6965,6966,6967,6968,6969,6970,6971,6972,6973,6974,6975,6976,6977,6978,6979,6980,6981,6982,6983,6984,6985,6986,6987,6988,6989,6990,6991,6992,6993,6994,6995,6996,6997,6998,6999,
-        7000,7001,7002,7003,7004,7005,7006,7007,7008,7009,7010,7011,7012,7013,7014,7015,7016,7017,7018,7019,7020,7021,7022,7023,7024,7025,7026,7027,7028,7029,7030,7031,7032,7033,7034,7035,7036,7037,7038,7039,7040,7041,7042,7043,7044,7045,7046,7047,7048,7049,
-        7050,7051,7052,7053,7054,7055,7056,7057,7058,7059,7060,7061,7062,7063,7064,7065,7066,7067,7068,7069,7070,7071,7072,7073,7074,7075,7076,7077,7078,7079,7080,7081,7082,7083,7084,7085,7086,7087,7088,7089,7090,7091,7092,7093,7094,7095,7096,7097,7098,7099,
-        7100,7101,7102,7103,7104,7105,7106,7107,7108,7109,7110,7111,7112,7113,7114,7115,7116,7117,7118,7119,7120,7121,7122,7123,7124,7125,7126,7127,7128,7129,7130,7131,7132,7133,7134,7135,7136,7137,7138,7139,7140,7141,7142,7143,7144,7145,7146,7147,7148,7149,
-        7150,7151,7152,7153,7154,7155,7156,7157,7158,7159,7160,7161,7162,7163,7164,7165,7166,7167,7168,7169,7170,7171,7172,7173,7174,7175,7176,7177,7178,7179,7180,7181,7182,7183,7184,7185,7186,7187,7188,7189,7190,7191,7192,7193,7194,7195,7196,7197,7198,7199,
-        7200,7201,7202,7203,7204,7205,7206,7207,7208,7209,7210,7211,7212,7213,7214,7215,7216,7217,7218,7219,7220,7221,7222,7223,7224,7225,7226,7227,7228,7229,7230,7231,7232,7233,7234,7235,7236,7237,7238,7239,7240,7241,7242,7243,7244,7245,7246,7247,7248,7249,
-        7250,7251,7252,7253,7254,7255,7256,7257,7258,7259,7260,7261,7262,7263,7264,7265,7266,7267,7268,7269,7270,7271,7272,7273,7274,7275,7276,7277,7278,7279,7280,7281,7282,7283,7284,7285,7286,7287,7288,7289,7290,7291,7292,7293,7294,7295,7296,7297,7298,7299,
-        7300,7301,7302,7303,7304,7305,7306,7307,7308,7309,7310,7311,7312,7313,7314,7315,7316,7317,7318,7319,7320,7321,7322,7323,7324,7325,7326,7327,7328,7329,7330,7331,7332,7333,7334,7335,7336,7337,7338,7339,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,
-        7350,7351,7352,7353,7354,7355,7356,7357,7358,7359,7360,7361,7362,7363,7364,7365,7366,7367,7368,7369,7370,7371,7372,7373,7374,7375,7376,7377,7378,7379,7380,7381,7382,7383,7384,7385,7386,7387,7388,7389,7390,7391,7392,7393,7394,7395,7396,7397,7398,7399,
-        7400,7401,7402,7403,7404,7405,7406,7407,7408,7409,7410,7411,7412,7413,7414,7415,7416,7417,7418,7419,7420,7421,7422,7423,7424,7425,7426,7427,7428,7429,7430,7431,7432,7433,7434,7435,7436,7437,7438,7439,7440,7441,7442,7443,7444,7445,7446,7447,7448,7449,
-        7450,7451,7452,7453,7454,7455,7456,7457,7458,7459,7460,7461,7462,7463,7464,7465,7466,7467,7468,7469,7470,7471,7472,7473,7474,7475,7476,7477,7478,7479,7480,7481,7482,7483,7484,7485,7486,7487,7488,7489,7490,7491,7492,7493,7494,7495,7496,7497,7498,7499,
-        7500,7501,7502,7503,7504,7505,7506,7507,7508,7509,7510,7511,7512,7513,7514,7515,7516,7517,7518,7519,7520,7521,7522,7523,7524,7525,7526,7527,7528,7529,7530,7531,7532,7533,7534,7535,7536,7537,7538,7539,7540,7541,7542,7543,7544,7545,7546,7547,7548,7549,
-        7550,7551,7552,7553,7554,7555,7556,7557,7558,7559,7560,7561,7562,7563,7564,7565,7566,7567,7568,7569,7570,7571,7572,7573,7574,7575,7576,7577,7578,7579,7580,7581,7582,7583,7584,7585,7586,7587,7588,7589,7590,7591,7592,7593,7594,7595,7596,7597,7598,7599,
-        7600,7601,7602,7603,7604,7605,7606,7607,7608,7609,7610,7611,7612,7613,7614,7615,7616,7617,7618,7619,7620,7621,7622,7623,7624,7625,7626,7627,7628,7629,7630,7631,7632,7633,7634,7635,7636,7637,7638,7639,7640,7641,7642,7643,7644,7645,7646,7647,7648,7649,
-        7650,7651,7652,7653,7654,7655,7656,7657,7658,7659,7660,7661,7662,7663,7664,7665,7666,7667,7668,7669,7670,7671,7672,7673,7674,7675,7676,7677,7678,7679,7680,7680,7682,7682,7684,7684,7686,7686,7688,7688,7690,7690,7692,7692,7694,7694,7696,7696,7698,7698,
-        7700,7700,7702,7702,7704,7704,7706,7706,7708,7708,7710,7710,7712,7712,7714,7714,7716,7716,7718,7718,7720,7720,7722,7722,7724,7724,7726,7726,7728,7728,7730,7730,7732,7732,7734,7734,7736,7736,7738,7738,7740,7740,7742,7742,7744,7744,7746,7746,7748,7748,
-        7750,7750,7752,7752,7754,7754,7756,7756,7758,7758,7760,7760,7762,7762,7764,7764,7766,7766,7768,7768,7770,7770,7772,7772,7774,7774,7776,7776,7778,7778,7780,7780,7782,7782,7784,7784,7786,7786,7788,7788,7790,7790,7792,7792,7794,7794,7796,7796,7798,7798,
-        7800,7800,7802,7802,7804,7804,7806,7806,7808,7808,7810,7810,7812,7812,7814,7814,7816,7816,7818,7818,7820,7820,7822,7822,7824,7824,7826,7826,7828,7828,7830,7831,7832,7833,7834,7835,7836,7837,7838,7839,7840,7840,7842,7842,7844,7844,7846,7846,7848,7848,
-        7850,7850,7852,7852,7854,7854,7856,7856,7858,7858,7860,7860,7862,7862,7864,7864,7866,7866,7868,7868,7870,7870,7872,7872,7874,7874,7876,7876,7878,7878,7880,7880,7882,7882,7884,7884,7886,7886,7888,7888,7890,7890,7892,7892,7894,7894,7896,7896,7898,7898,
-        7900,7900,7902,7902,7904,7904,7906,7906,7908,7908,7910,7910,7912,7912,7914,7914,7916,7916,7918,7918,7920,7920,7922,7922,7924,7924,7926,7926,7928,7928,7930,7931,7932,7933,7934,7935,7944,7945,7946,7947,7948,7949,7950,7951,7944,7945,7946,7947,7948,7949,
-        7950,7951,7960,7961,7962,7963,7964,7965,7958,7959,7960,7961,7962,7963,7964,7965,7966,7967,7976,7977,7978,7979,7980,7981,7982,7983,7976,7977,7978,7979,7980,7981,7982,7983,7992,7993,7994,7995,7996,7997,7998,7999,7992,7993,7994,7995,7996,7997,7998,7999,
-        8008,8009,8010,8011,8012,8013,8006,8007,8008,8009,8010,8011,8012,8013,8014,8015,8016,8025,8018,8027,8020,8029,8022,8031,8024,8025,8026,8027,8028,8029,8030,8031,8040,8041,8042,8043,8044,8045,8046,8047,8040,8041,8042,8043,8044,8045,8046,8047,8122,8123,
-        8136,8137,8138,8139,8154,8155,8184,8185,8170,8171,8186,8187,8062,8063,8064,8065,8066,8067,8068,8069,8070,8071,8072,8073,8074,8075,8076,8077,8078,8079,8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,8091,8092,8093,8094,8095,8096,8097,8098,8099,
-        8100,8101,8102,8103,8104,8105,8106,8107,8108,8109,8110,8111,8120,8121,8114,8115,8116,8117,8118,8119,8120,8121,8122,8123,8124,8125,8126,8127,8128,8129,8130,8131,8132,8133,8134,8135,8136,8137,8138,8139,8140,8141,8142,8143,8152,8153,8146,8147,8148,8149,
-        8150,8151,8152,8153,8154,8155,8156,8157,8158,8159,8168,8169,8162,8163,8164,8172,8166,8167,8168,8169,8170,8171,8172,8173,8174,8175,8176,8177,8178,8179,8180,8181,8182,8183,8184,8185,8186,8187,8188,8189,8190,8191,8192,8193,8194,8195,8196,8197,8198,8199,
-        8200,8201,8202,8203,8204,8205,8206,8207,8208,8209,8210,8211,8212,8213,8214,8215,8216,8217,8218,8219,8220,8221,8222,8223,8224,8225,8226,8227,8228,8229,8230,8231,8232,8233,8234,8235,8236,8237,8238,8239,8240,8241,8242,8243,8244,8245,8246,8247,8248,8249,
-        8250,8251,8252,8253,8254,8255,8256,8257,8258,8259,8260,8261,8262,8263,8264,8265,8266,8267,8268,8269,8270,8271,8272,8273,8274,8275,8276,8277,8278,8279,8280,8281,8282,8283,8284,8285,8286,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,
-        8300,8301,8302,8303,8304,8305,8306,8307,8308,8309,8310,8311,8312,8313,8314,8315,8316,8317,8318,8319,8320,8321,8322,8323,8324,8325,8326,8327,8328,8329,8330,8331,8332,8333,8334,8335,8336,8337,8338,8339,8340,8341,8342,8343,8344,8345,8346,8347,8348,8349,
-        8350,8351,8352,8353,8354,8355,8356,8357,8358,8359,8360,8361,8362,8363,8364,8365,8366,8367,8368,8369,8370,8371,8372,8373,8374,8375,8376,8377,8378,8379,8380,8381,8382,8383,8384,8385,8386,8387,8388,8389,8390,8391,8392,8393,8394,8395,8396,8397,8398,8399,
-        8400,8401,8402,8403,8404,8405,8406,8407,8408,8409,8410,8411,8412,8413,8414,8415,8416,8417,8418,8419,8420,8421,8422,8423,8424,8425,8426,8427,8428,8429,8430,8431,8432,8433,8434,8435,8436,8437,8438,8439,8440,8441,8442,8443,8444,8445,8446,8447,8448,8449,
-        8450,8451,8452,8453,8454,8455,8456,8457,8458,8459,8460,8461,8462,8463,8464,8465,8466,8467,8468,8469,8470,8471,8472,8473,8474,8475,8476,8477,8478,8479,8480,8481,8482,8483,8484,8485,8486,8487,8488,8489,8490,8491,8492,8493,8494,8495,8496,8497,8498,8499,
-        8500,8501,8502,8503,8504,8505,8506,8507,8508,8509,8510,8511,8512,8513,8514,8515,8516,8517,8518,8519,8520,8521,8522,8523,8524,8525,8526,8527,8528,8529,8530,8531,8532,8533,8534,8535,8536,8537,8538,8539,8540,8541,8542,8543,8544,8545,8546,8547,8548,8549,
-        8550,8551,8552,8553,8554,8555,8556,8557,8558,8559,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,8554,8555,8556,8557,8558,8559,8576,8577,8578,8579,8580,8581,8582,8583,8584,8585,8586,8587,8588,8589,8590,8591,8592,8593,8594,8595,8596,8597,8598,8599,
-        8600,8601,8602,8603,8604,8605,8606,8607,8608,8609,8610,8611,8612,8613,8614,8615,8616,8617,8618,8619,8620,8621,8622,8623,8624,8625,8626,8627,8628,8629,8630,8631,8632,8633,8634,8635,8636,8637,8638,8639,8640,8641,8642,8643,8644,8645,8646,8647,8648,8649,
-        8650,8651,8652,8653,8654,8655,8656,8657,8658,8659,8660,8661,8662,8663,8664,8665,8666,8667,8668,8669,8670,8671,8672,8673,8674,8675,8676,8677,8678,8679,8680,8681,8682,8683,8684,8685,8686,8687,8688,8689,8690,8691,8692,8693,8694,8695,8696,8697,8698,8699,
-        8700,8701,8702,8703,8704,8705,8706,8707,8708,8709,8710,8711,8712,8713,8714,8715,8716,8717,8718,8719,8720,8721,8722,8723,8724,8725,8726,8727,8728,8729,8730,8731,8732,8733,8734,8735,8736,8737,8738,8739,8740,8741,8742,8743,8744,8745,8746,8747,8748,8749,
-        8750,8751,8752,8753,8754,8755,8756,8757,8758,8759,8760,8761,8762,8763,8764,8765,8766,8767,8768,8769,8770,8771,8772,8773,8774,8775,8776,8777,8778,8779,8780,8781,8782,8783,8784,8785,8786,8787,8788,8789,8790,8791,8792,8793,8794,8795,8796,8797,8798,8799,
-        8800,8801,8802,8803,8804,8805,8806,8807,8808,8809,8810,8811,8812,8813,8814,8815,8816,8817,8818,8819,8820,8821,8822,8823,8824,8825,8826,8827,8828,8829,8830,8831,8832,8833,8834,8835,8836,8837,8838,8839,8840,8841,8842,8843,8844,8845,8846,8847,8848,8849,
-        8850,8851,8852,8853,8854,8855,8856,8857,8858,8859,8860,8861,8862,8863,8864,8865,8866,8867,8868,8869,8870,8871,8872,8873,8874,8875,8876,8877,8878,8879,8880,8881,8882,8883,8884,8885,8886,8887,8888,8889,8890,8891,8892,8893,8894,8895,8896,8897,8898,8899,
-        8900,8901,8902,8903,8904,8905,8906,8907,8908,8909,8910,8911,8912,8913,8914,8915,8916,8917,8918,8919,8920,8921,8922,8923,8924,8925,8926,8927,8928,8929,8930,8931,8932,8933,8934,8935,8936,8937,8938,8939,8940,8941,8942,8943,8944,8945,8946,8947,8948,8949,
-        8950,8951,8952,8953,8954,8955,8956,8957,8958,8959,8960,8961,8962,8963,8964,8965,8966,8967,8968,8969,8970,8971,8972,8973,8974,8975,8976,8977,8978,8979,8980,8981,8982,8983,8984,8985,8986,8987,8988,8989,8990,8991,8992,8993,8994,8995,8996,8997,8998,8999,
-        9000,9001,9002,9003,9004,9005,9006,9007,9008,9009,9010,9011,9012,9013,9014,9015,9016,9017,9018,9019,9020,9021,9022,9023,9024,9025,9026,9027,9028,9029,9030,9031,9032,9033,9034,9035,9036,9037,9038,9039,9040,9041,9042,9043,9044,9045,9046,9047,9048,9049,
-        9050,9051,9052,9053,9054,9055,9056,9057,9058,9059,9060,9061,9062,9063,9064,9065,9066,9067,9068,9069,9070,9071,9072,9073,9074,9075,9076,9077,9078,9079,9080,9081,9082,9083,9084,9085,9086,9087,9088,9089,9090,9091,9092,9093,9094,9095,9096,9097,9098,9099,
-        9100,9101,9102,9103,9104,9105,9106,9107,9108,9109,9110,9111,9112,9113,9114,9115,9116,9117,9118,9119,9120,9121,9122,9123,9124,9125,9126,9127,9128,9129,9130,9131,9132,9133,9134,9135,9136,9137,9138,9139,9140,9141,9142,9143,9144,9145,9146,9147,9148,9149,
-        9150,9151,9152,9153,9154,9155,9156,9157,9158,9159,9160,9161,9162,9163,9164,9165,9166,9167,9168,9169,9170,9171,9172,9173,9174,9175,9176,9177,9178,9179,9180,9181,9182,9183,9184,9185,9186,9187,9188,9189,9190,9191,9192,9193,9194,9195,9196,9197,9198,9199,
-        9200,9201,9202,9203,9204,9205,9206,9207,9208,9209,9210,9211,9212,9213,9214,9215,9216,9217,9218,9219,9220,9221,9222,9223,9224,9225,9226,9227,9228,9229,9230,9231,9232,9233,9234,9235,9236,9237,9238,9239,9240,9241,9242,9243,9244,9245,9246,9247,9248,9249,
-        9250,9251,9252,9253,9254,9255,9256,9257,9258,9259,9260,9261,9262,9263,9264,9265,9266,9267,9268,9269,9270,9271,9272,9273,9274,9275,9276,9277,9278,9279,9280,9281,9282,9283,9284,9285,9286,9287,9288,9289,9290,9291,9292,9293,9294,9295,9296,9297,9298,9299,
-        9300,9301,9302,9303,9304,9305,9306,9307,9308,9309,9310,9311,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9322,9323,9324,9325,9326,9327,9328,9329,9330,9331,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345,9346,9347,9348,9349,
-        9350,9351,9352,9353,9354,9355,9356,9357,9358,9359,9360,9361,9362,9363,9364,9365,9366,9367,9368,9369,9370,9371,9372,9373,9374,9375,9376,9377,9378,9379,9380,9381,9382,9383,9384,9385,9386,9387,9388,9389,9390,9391,9392,9393,9394,9395,9396,9397,9398,9399,
-        9400,9401,9402,9403,9404,9405,9406,9407,9408,9409,9410,9411,9412,9413,9414,9415,9416,9417,9418,9419,9420,9421,9422,9423,9398,9399,9400,9401,9402,9403,9404,9405,9406,9407,9408,9409,9410,9411,9412,9413,9414,9415,9416,9417,9418,9419,9420,9421,9422,9423
-};
-
-static const guint16 ToUpperDataHigh [] = {
-        65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,
-        65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,
-        65337,65338,65339,65340,65341,65342,65343,65344,65313,65314,65315,65316,
-        65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,
-        65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65371,65372,
-        65373,65374,65375,65376,65377,65378,65379,65380,65381,65382,65383,65384,
-        65385,65386,65387,65388,65389,65390,65391,65392,65393,65394,65395,65396,
-        65397,65398,65399,65400,65401,65402,65403,65404,65405,65406,65407,65408,
-        65409,65410,65411,65412,65413,65414,65415,65416,65417,65418,65419,65420,
-        65421,65422,65423,65424,65425,65426,65427,65428,65429,65430,65431,65432,
-        65433,65434,65435,65436,65437,65438,65439,65440,65441,65442,65443,65444,
-        65445,65446,65447,65448,65449,65450,65451,65452,65453,65454,65455,65456,
-        65457,65458,65459,65460,65461,65462,65463,65464,65465,65466,65467,65468,
-        65469,65470,65471,65472,65473,65474,65475,65476,65477,65478,65479,65480,
-        65481,65482,65483,65484,65485,65486,65487,65488,65489,65490,65491,65492,
-        65493,65494,65495,65496,65497,65498,65499,65500,65501,65502,65503,65504,
-        65505,65506,65507,65508,65509,65510,65511,65512,65513,65514,65515,65516,
-        65517,65518,65519,65520,65521,65522,65523,65524,65525,65526,65527,65528,
-        65529,65530,65531,65532,65533,65534,65535
-};
-
-#endif
-
index 25a116171ab719b34c31dde89c6ba5eb71631269..ca5f3b54227c060ab8dd17055cca9ca85d1afd93 100644 (file)
@@ -11,6 +11,7 @@
 #include <mono/io-layer/io-layer.h>
 #include "mono/utils/mono-compiler.h"
 #include "mono/utils/mono-error.h"
+#include "mono/sgen/gc-internal-agnostic.h"
 
 #define MONO_CLASS_IS_ARRAY(c) ((c)->rank)
 
@@ -394,7 +395,7 @@ struct _MonoClass {
        MonoGenericClass *generic_class;
        MonoGenericContainer *generic_container;
 
-       void *gc_descr;
+       MonoGCDescriptor gc_descr;
 
        MonoClassRuntimeInfo *runtime_info;
 
@@ -452,7 +453,7 @@ struct MonoVTable {
         * According to comments in gc_gcj.h, this should be the second word in
         * the vtable.
         */
-       void *gc_descr;         
+       MonoGCDescriptor gc_descr;
        MonoDomain *domain;  /* each object/vtable belongs to exactly one domain */
         gpointer    type; /* System.Type type for klass */
        guint8     *interface_bitmap;
@@ -521,6 +522,7 @@ struct _MonoMethodInflated {
        MonoMethodHeader *header;
        MonoMethod *declaring;          /* the generic method definition. */
        MonoGenericContext context;     /* The current instantiation */
+       MonoImageSet *owner; /* The image set that the inflated method belongs to. */
 };
 
 /*
@@ -861,23 +863,6 @@ typedef struct {
        void       *handle;
 } MonoHandleRef;
 
-enum {
-       MONO_GENERIC_SHARING_NONE,
-       MONO_GENERIC_SHARING_COLLECTIONS,
-       MONO_GENERIC_SHARING_CORLIB,
-       MONO_GENERIC_SHARING_ALL
-};
-
-/*
- * Flags for which contexts were used in inflating a generic.
- */
-enum {
-       MONO_GENERIC_CONTEXT_USED_CLASS = 1,
-       MONO_GENERIC_CONTEXT_USED_METHOD = 2
-};
-
-#define MONO_GENERIC_CONTEXT_USED_BOTH         (MONO_GENERIC_CONTEXT_USED_CLASS | MONO_GENERIC_CONTEXT_USED_METHOD)
-
 extern MonoStats mono_stats;
 
 typedef gpointer (*MonoTrampoline)       (MonoMethod *method);
@@ -1038,8 +1023,8 @@ mono_class_inflate_generic_method_full_checked (MonoMethod *method, MonoClass *k
 MonoMethod *
 mono_class_inflate_generic_method_checked (MonoMethod *method, MonoGenericContext *context, MonoError *error);
 
-MonoMethodInflated*
-mono_method_inflated_lookup (MonoMethodInflated* method, gboolean cache);
+MonoImageSet *
+mono_metadata_get_image_set_for_method (MonoMethodInflated *method);
 
 MONO_API MonoMethodSignature *
 mono_metadata_get_inflated_signature (MonoMethodSignature *sig, MonoGenericContext *context);
@@ -1123,6 +1108,8 @@ typedef struct {
        MonoClass *customattribute_data_class;
        MonoClass *critical_finalizer_object;
        MonoClass *generic_ireadonlylist_class;
+       MonoClass *threadpool_wait_callback_class;
+       MonoMethod *threadpool_perform_wait_callback_method;
 } MonoDefaults;
 
 #ifdef DISABLE_REMOTING
index 058c0c982d2879f7061c0a050139350518727c56..d3316602a6628fc953d74fe7ddff92254fd0d881 100644 (file)
@@ -1094,7 +1094,13 @@ mono_class_inflate_generic_method_full_checked (MonoMethod *method, MonoClass *k
        if (!iresult->declaring->klass->generic_container && !iresult->declaring->klass->generic_class)
                iresult->context.class_inst = NULL;
 
-       cached = mono_method_inflated_lookup (iresult, FALSE);
+       MonoImageSet *set = mono_metadata_get_image_set_for_method (iresult);
+
+       // check cache
+       mono_image_set_lock (set);
+       cached = g_hash_table_lookup (set->gmethod_cache, iresult);
+       mono_image_set_unlock (set);
+
        if (cached) {
                g_free (iresult);
                return (MonoMethod*)cached;
@@ -1166,7 +1172,17 @@ mono_class_inflate_generic_method_full_checked (MonoMethod *method, MonoClass *k
         * is_generic_method_definition().
         */
 
-       return (MonoMethod*)mono_method_inflated_lookup (iresult, TRUE);
+       // check cache
+       mono_image_set_lock (set);
+       cached = g_hash_table_lookup (set->gmethod_cache, iresult);
+       if (!cached) {
+               g_hash_table_insert (set->gmethod_cache, iresult, iresult);
+               iresult->owner = set;
+               cached = iresult;
+       }
+       mono_image_set_unlock (set);
+
+       return (MonoMethod*)cached;
 
 fail:
        g_free (iresult);
@@ -7462,18 +7478,21 @@ mono_image_init_name_cache (MonoImage *image)
        const char *name;
        const char *nspace;
        guint32 i, visib, nspace_index;
-       GHashTable *name_cache2, *nspace_table;
-
-       mono_image_lock (image);
+       GHashTable *name_cache2, *nspace_table, *the_name_cache;
 
-       if (image->name_cache) {
-               mono_image_unlock (image);
+       if (image->name_cache)
                return;
-       }
 
-       image->name_cache = g_hash_table_new (g_str_hash, g_str_equal);
+       the_name_cache = g_hash_table_new (g_str_hash, g_str_equal);
 
        if (image_is_dynamic (image)) {
+               mono_image_lock (image);
+               if (image->name_cache) {
+                       /* Somebody initialized it before us */
+                       g_hash_table_destroy (the_name_cache);
+               } else {
+                       mono_atomic_store_release (&image->name_cache, the_name_cache);
+               }
                mono_image_unlock (image);
                return;
        }
@@ -7497,7 +7516,7 @@ mono_image_init_name_cache (MonoImage *image)
                nspace_table = g_hash_table_lookup (name_cache2, GUINT_TO_POINTER (nspace_index));
                if (!nspace_table) {
                        nspace_table = g_hash_table_new (g_str_hash, g_str_equal);
-                       g_hash_table_insert (image->name_cache, (char*)nspace, nspace_table);
+                       g_hash_table_insert (the_name_cache, (char*)nspace, nspace_table);
                        g_hash_table_insert (name_cache2, GUINT_TO_POINTER (nspace_index),
                                                                 nspace_table);
                }
@@ -7519,7 +7538,7 @@ mono_image_init_name_cache (MonoImage *image)
                        nspace_table = g_hash_table_lookup (name_cache2, GUINT_TO_POINTER (nspace_index));
                        if (!nspace_table) {
                                nspace_table = g_hash_table_new (g_str_hash, g_str_equal);
-                               g_hash_table_insert (image->name_cache, (char*)nspace, nspace_table);
+                               g_hash_table_insert (the_name_cache, (char*)nspace, nspace_table);
                                g_hash_table_insert (name_cache2, GUINT_TO_POINTER (nspace_index),
                                                                         nspace_table);
                        }
@@ -7528,6 +7547,12 @@ mono_image_init_name_cache (MonoImage *image)
        }
 
        g_hash_table_destroy (name_cache2);
+       if (image->name_cache) {
+               /* Somebody initialized it before us */
+               g_hash_table_destroy (the_name_cache);
+       } else {
+               mono_atomic_store_release (&image->name_cache, the_name_cache);
+       }
        mono_image_unlock (image);
 }
 
@@ -7540,11 +7565,9 @@ mono_image_add_to_name_cache (MonoImage *image, const char *nspace,
        GHashTable *name_cache;
        guint32 old_index;
 
+       mono_image_init_name_cache (image);
        mono_image_lock (image);
 
-       if (!image->name_cache)
-               mono_image_init_name_cache (image);
-
        name_cache = image->name_cache;
        if (!(nspace_table = g_hash_table_lookup (name_cache, nspace))) {
                nspace_table = g_hash_table_new (g_str_hash, g_str_equal);
@@ -7609,11 +7632,9 @@ mono_class_from_name_case_checked (MonoImage *image, const char* name_space, con
                guint32 token = 0;
                FindUserData user_data;
 
+               mono_image_init_name_cache (image);
                mono_image_lock (image);
 
-               if (!image->name_cache)
-                       mono_image_init_name_cache (image);
-
                user_data.key = name_space;
                user_data.value = NULL;
                g_hash_table_foreach (image->name_cache, find_nocase, &user_data);
@@ -7710,8 +7731,8 @@ search_modules (MonoImage *image, const char *name_space, const char *name)
        return NULL;
 }
 
-MonoClass *
-mono_class_from_name_checked (MonoImage *image, const char* name_space, const char *name, MonoError *error)
+static MonoClass *
+mono_class_from_name_checked_aux (MonoImage *image, const char* name_space, const char *name, MonoError *error, GHashTable* visited_images)
 {
        GHashTable *nspace_table;
        MonoImage *loaded_image;
@@ -7723,6 +7744,12 @@ mono_class_from_name_checked (MonoImage *image, const char* name_space, const ch
 
        mono_error_init (error);
 
+       // Checking visited images avoids stack overflows when cyclic references exist.
+       if (g_hash_table_lookup (visited_images, image))
+               return NULL;
+
+       g_hash_table_insert (visited_images, image, GUINT_TO_POINTER(1));
+
        if ((nested = strchr (name, '/'))) {
                int pos = nested - name;
                int len = strlen (name);
@@ -7747,11 +7774,9 @@ mono_class_from_name_checked (MonoImage *image, const char* name_space, const ch
                }
        }
 
+       mono_image_init_name_cache (image);
        mono_image_lock (image);
 
-       if (!image->name_cache)
-               mono_image_init_name_cache (image);
-
        nspace_table = g_hash_table_lookup (image->name_cache, name_space);
 
        if (nspace_table)
@@ -7793,7 +7818,7 @@ mono_class_from_name_checked (MonoImage *image, const char* name_space, const ch
                        loaded_image = mono_assembly_load_module (image->assembly, impl >> MONO_IMPLEMENTATION_BITS);
                        if (!loaded_image)
                                return NULL;
-                       class = mono_class_from_name (loaded_image, name_space, name);
+                       class = mono_class_from_name_checked_aux (loaded_image, name_space, name, error, visited_images);
                        if (nested)
                                return return_nested_in (class, nested);
                        return class;
@@ -7807,8 +7832,7 @@ mono_class_from_name_checked (MonoImage *image, const char* name_space, const ch
                        if (image->references [assembly_idx - 1] == (gpointer)-1)
                                return NULL;                    
                        else
-                               /* FIXME: Cycle detection */
-                               return mono_class_from_name (image->references [assembly_idx - 1]->image, name_space, name);
+                               return mono_class_from_name_checked_aux (image->references [assembly_idx - 1]->image, name_space, name, error, visited_images);
                } else {
                        g_error ("not yet implemented");
                }
@@ -7822,6 +7846,21 @@ mono_class_from_name_checked (MonoImage *image, const char* name_space, const ch
        return class;
 }
 
+MonoClass *
+mono_class_from_name_checked (MonoImage *image, const char* name_space, const char *name, MonoError *error)
+{
+       MonoClass *klass;
+       GHashTable *visited_images;
+
+       visited_images = g_hash_table_new (g_direct_hash, g_direct_equal);
+
+       klass = mono_class_from_name_checked_aux (image, name_space, name, error, visited_images);
+
+       g_hash_table_destroy (visited_images);
+
+       return klass;
+}
+
 /**
  * mono_class_from_name:
  * @image: The MonoImage where the type is looked up in
index 2edc8179e79269fd210644481e2279d6ba11088a..14585755bc58a8baa3055a169bbf410798945802 100644 (file)
@@ -23,7 +23,6 @@
 #include "metadata/appdomain.h"
 #include "metadata/reflection-internals.h"
 #include "mono/metadata/debug-helpers.h"
-#include "mono/metadata/threadpool.h"
 #include "mono/metadata/threads.h"
 #include "mono/metadata/monitor.h"
 #include "mono/metadata/metadata-internals.h"
@@ -873,7 +872,8 @@ mono_cominterop_get_native_wrapper (MonoMethod *method)
 
        g_assert (method);
 
-       cache = mono_marshal_get_cache (&method->klass->image->cominterop_wrapper_cache, mono_aligned_addr_hash, NULL);
+       cache = mono_marshal_get_cache (&mono_method_get_wrapper_cache (method)->cominterop_wrapper_cache, mono_aligned_addr_hash, NULL);
+
        if ((res = mono_marshal_find_in_cache (cache, method)))
                return res;
 
@@ -982,7 +982,9 @@ mono_cominterop_get_invoke (MonoMethod *method)
        MonoMethodBuilder *mb;
        MonoMethod *res;
        int i;
-       GHashTable* cache = mono_marshal_get_cache (&method->klass->image->cominterop_invoke_cache, mono_aligned_addr_hash, NULL);
+       GHashTable* cache;
+       
+       cache = mono_marshal_get_cache (&mono_method_get_wrapper_cache (method)->cominterop_invoke_cache, mono_aligned_addr_hash, NULL);
 
        g_assert (method);
 
index dd64b249703eb62873c90b21d8af5697f375ccc8..7708a482d7d2cc17b484f49c7235c599a8bb96fa 100644 (file)
@@ -33,7 +33,7 @@
 #include <mono/metadata/domain-internals.h>
 #include <mono/metadata/gc-internal.h>
 #include <mono/metadata/metadata.h>
-#include <mono/metadata/threadpool.h>
+#include <mono/metadata/threadpool-ms.h>
 #include <mono/utils/mono-signal-handler.h>
 #include <mono/utils/mono-proclib.h>
 
@@ -251,7 +251,7 @@ do_console_cancel_event (void)
        method = mono_class_get_method_from_name (klass, "BeginInvoke", -1);
        g_assert (method != NULL);
 
-       mono_thread_pool_begin_invoke (domain, (MonoObject*) load_value, method, NULL);
+       mono_threadpool_ms_begin_invoke (domain, (MonoObject*) load_value, method, NULL);
 }
 
 static int need_cancel = FALSE;
@@ -336,6 +336,7 @@ MONO_SIG_HANDLER_FUNC (static, sigwinch_handler)
 static void
 console_set_signal_handlers ()
 {
+#if defined(HAVE_SIGACTION)
        struct sigaction sigcont, sigint, sigwinch;
 
        memset (&sigcont, 0, sizeof (struct sigaction));
@@ -359,6 +360,7 @@ console_set_signal_handlers ()
        sigwinch.sa_flags = 0;
        sigemptyset (&sigwinch.sa_mask);
        sigaction (SIGWINCH, &sigwinch, &save_sigwinch);
+#endif
 }
 
 #if currently_unuused
index 2e751e1f57bd127378376f5fa5b15b7bc9d44fc0..7de83602c9b252cdfce50d16369e75de67e2f1a0 100644 (file)
@@ -26,7 +26,6 @@
 #include <mono/metadata/domain-internals.h>
 #include <mono/metadata/gc-internal.h>
 #include <mono/metadata/metadata.h>
-#include <mono/metadata/threadpool.h>
 
 #include <mono/metadata/console-io.h>
 #include <mono/metadata/exception.h>
index f1fd30c136043744d0394095da88f7aafc7553bf..7d7b7588e7dae77ee43323197a1e31c9ad6c5adb 100644 (file)
@@ -38,77 +38,77 @@ static const DateTimeFormatEntry datetime_format_entries [] = {
        {1921, 1929, 1932, {9187, 9196, 9208, 9215, 9223, 9233, 9239}, {9246, 9250, 9254, 9258, 9262, 9267, 9271}, {9275, 9277, 9279, 9281, 9283, 9277, 9281}, {9286, 9296, 9305, 9313, 9321, 9329, 9336, 9343, 9351, 2102, 9357, 9365, 0}, {9374, 9384, 9393, 9401, 9409, 9417, 9424, 9431, 9440, 7911, 9446, 9456, 0}, {9465, 9469, 9474, 9479, 9483, 7945, 2239, 9487, 9491, 2255, 9495, 2259, 0}, {9465, 9469, 9474, 9479, 9483, 7945, 2239, 9487, 9491, 2255, 9495, 2259, 0}, 0, 1, 691, 187, {9499,9509,6153,9517,9529,9539,9549,1692,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
        {1921, 1929, 1932, {9610, 9618, 9627, 9634, 9641, 9650, 1985}, {1992, 1995, 9657, 2002, 9660, 9664, 2013}, {2016, 2018, 9667, 2023, 9669, 2018, 2023}, {5710, 5718, 9672, 6077, 9678, 9683, 9688, 2479, 2486, 5789, 2504, 2513, 0}, {9693, 9702, 7844, 9712, 9720, 9726, 9732, 9738, 9746, 9756, 9765, 9774, 0}, {2522, 2526, 2530, 2534, 9678, 9683, 9688, 2546, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 9678, 9683, 9688, 2546, 2550, 2554, 2558, 2562, 0}, 2, 1, 691, 187, {4753,1156,1167,1692,5888,9783,9796,9806,0,0,0,0,0,0},{2300,0,0,0,0,0,0,0,0,0},{843,251,2321,0,0,0,0,0,0,0,0,0},{848,269,2337,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
        {289, 9817, 9826, {9834, 9841, 9850, 9859, 9871, 9879, 9888}, {9898, 9902, 3761, 9907, 9912, 9916, 9920}, {2673, 5694, 2428, 2428, 9924, 2018, 2023}, {9926, 9932, 4887, 9939, 2465, 9945, 9953, 9960, 9966, 9974, 9980, 9988, 0}, {9926, 9932, 4887, 9939, 2465, 9945, 9953, 9960, 9966, 9974, 9980, 9988, 0}, {2759, 9996, 3761, 10000, 10004, 10008, 10012, 10016, 9920, 10020, 10024, 10029, 0}, {2759, 9996, 3761, 10000, 10004, 10008, 10012, 10016, 9920, 10020, 10024, 10029, 0}, 0, 1, 691, 187, {4753,4762,0,0,0,0,0,0,0,0,0,0,0,0},{1207,0,0,0,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {10033, 10046, 10049, {10052, 10060, 10068, 2368, 2375, 2383, 10075}, {10083, 10088, 10093, 10097, 10101, 10105, 10109}, {2023, 2428, 2430, 2432, 2430, 2434, 2436}, {10114, 10122, 10131, 2696, 10004, 2706, 2711, 10136, 2723, 2733, 2741, 3752, 0}, {7370, 7378, 4887, 2459, 2465, 2469, 2474, 10144, 2486, 2496, 2504, 2513, 0}, {2759, 2763, 3761, 2772, 10004, 2776, 2780, 2784, 2788, 2792, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 10004, 2776, 2780, 2784, 2788, 2792, 2796, 3769, 0}, 2, 1, 2566, 187, {1692,5888,0,0,0,0,0,0,0,0,0,0,0,0},{10152,10170,0,0,0,0,0,0,0,0},{251,843,7529,0,0,0,0,0,0,0,0,0},{269,848,7585,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 0, 0, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 0, 185, 187, {2277,2286,189,198,8579,10193,1692,0,0,0,0,0,0,0},{1242,10205,10221,0,0,0,0,0,0,0},{843,251,3594,242,0,0,0,0,0,0,0,0},{848,269,3602,257,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 10263, 10268, {10272, 10278, 10288, 10294, 10305, 10315, 10320}, {10330, 10334, 10338, 10342, 10347, 10351, 10355}, {2018, 2018, 2023, 10359, 2018, 7736, 7736}, {10362, 10367, 10374, 10379, 10385, 10392, 10400, 10407, 10416, 10423, 10428, 10435, 0}, {10362, 10367, 10374, 10379, 10385, 10392, 10400, 10407, 10416, 10423, 10428, 10435, 0}, {10443, 10447, 3761, 10452, 3730, 10456, 10460, 10464, 10469, 10473, 10477, 10481, 0}, {10443, 10447, 3761, 10452, 3730, 10456, 10460, 10464, 10469, 10473, 10477, 10481, 0}, 0, 1, 691, 187, {4753,4762,1156,1167,0,0,0,0,0,0,0,0,0,0},{10485,1242,10502,5505,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1, 10520, 10538, {10556, 10567, 10580, 10589, 10596, 10609, 10618}, {10556, 10567, 10580, 10589, 10596, 10609, 10618}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {10627, 10638, 10649, 10658, 10669, 10676, 10683, 10696, 10705, 10716, 10729, 10740, 0}, {10627, 10638, 10649, 10658, 10669, 10676, 10683, 10696, 10705, 10716, 10729, 10740, 0}, {10627, 10638, 10649, 10658, 10669, 10676, 10683, 10696, 10705, 10716, 10729, 10740, 0}, {10627, 10638, 10649, 10658, 10669, 10676, 10683, 10696, 10705, 10716, 10729, 10740, 0}, 0, 0, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1, 1929, 1932, {10765, 10772, 10778, 10785, 10790, 10796, 10802}, {10808, 10812, 10816, 10820, 10824, 10828, 10832}, {2428, 2023, 2023, 10836, 4442, 3987, 2023}, {10114, 10122, 10838, 2696, 10844, 2706, 2711, 10848, 2723, 2733, 2741, 10856, 0}, {10114, 10122, 10838, 2696, 10844, 2706, 2711, 10848, 2723, 2733, 2741, 10856, 0}, {2759, 2763, 3761, 2772, 10844, 2776, 2780, 10865, 2788, 2792, 2796, 10869, 0}, {2759, 2763, 3761, 2772, 10844, 2776, 2780, 10865, 2788, 2792, 2796, 10869, 0}, 0, 0, 185, 187, {198,189,1128,0,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 10873, 10878, {10883, 10896, 10915, 10932, 10945, 10958, 10975}, {10988, 8775, 8780, 8785, 8790, 8795, 8800}, {10993, 8808, 8805, 8811, 8814, 8808, 8811}, {10996, 11009, 11020, 11037, 11052, 11067, 11082, 11095, 11110, 11127, 11142, 11159, 0}, {11174, 11185, 11198, 11213, 11226, 11239, 11252, 11263, 11276, 11291, 11304, 11323, 0}, {11336, 11343, 11350, 11357, 11364, 11371, 11378, 11385, 11392, 11399, 11406, 11413, 0}, {11336, 11343, 11350, 11357, 11364, 11371, 11378, 11385, 11392, 11399, 11406, 11413, 0}, 0, 1, 691, 187, {1156,1167,1692,0,0,0,0,0,0,0,0,0,0,0},{11420,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{11438,0,0,0,0,0,0,0}},
-       {289, 11454, 11467, {11480, 11495, 11516, 11531, 11544, 11557, 10975}, {421, 426, 11572, 436, 11577, 446, 451}, {456, 459, 11582, 465, 468, 459, 465}, {11585, 11602, 11611, 11626, 521, 11643, 11658, 11671, 11686, 11703, 11724, 11741, 0}, {11756, 11773, 11786, 11803, 9017, 11822, 11837, 11850, 11863, 11878, 11901, 11920, 0}, {11933, 11940, 11947, 11954, 521, 11961, 11968, 11975, 11982, 11989, 11996, 12003, 0}, {11933, 11940, 11947, 11954, 521, 11961, 11968, 11975, 11982, 11989, 11996, 12003, 0}, 0, 0, 691, 187, {1167,0,0,0,0,0,0,0,0,0,0,0,0,0},{1242,0,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1921, 12010, 12015, {12020, 12028, 12039, 12045, 12051, 12060, 1985}, {9246, 9250, 2415, 12066, 9262, 9267, 12070}, {9275, 9277, 12074, 9281, 9283, 9277, 9281}, {2438, 2445, 9672, 2459, 2465, 12076, 12082, 12088, 2486, 2496, 2504, 2513, 0}, {2438, 2445, 9672, 2459, 2465, 12076, 12082, 12088, 2486, 2496, 2504, 2513, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {4753,4762,2266,1156,12099,1167,9806,0,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {12109, 12118, 12123, {12128, 12139, 12150, 12161, 12172, 12183, 12189}, {2018, 9924, 2430, 4442, 2016, 10836, 2436}, {2018, 9924, 2430, 4442, 2016, 10836, 2436}, {12198, 12206, 12215, 12222, 4898, 12229, 12235, 2479, 2486, 12241, 2504, 12250, 0}, {12198, 12206, 12215, 12222, 4898, 12229, 12235, 2479, 2486, 12241, 2504, 12250, 0}, {12260, 12265, 12215, 2534, 4898, 12229, 12235, 2546, 12271, 2554, 2558, 12276, 0}, {12260, 12265, 12215, 2534, 4898, 12229, 12235, 2546, 12271, 2554, 2558, 12276, 0}, 2, 1, 691, 187, {7519,1156,1167,1692,0,0,0,0,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1921, 12281, 12298, {12312, 12323, 12333, 12342, 12353, 12365, 12376}, {12386, 12389, 12392, 12395, 12398, 12401, 12404}, {2023, 2018, 2432, 2430, 7736, 2018, 2023}, {12407, 12417, 12428, 12434, 12443, 12449, 12457, 12465, 12473, 12484, 12493, 12503, 0}, {12513, 12523, 2453, 12534, 12543, 12549, 12557, 12565, 12573, 12584, 12593, 12603, 0}, {12613, 12619, 12428, 12625, 12443, 12630, 12636, 12642, 4190, 12647, 4201, 12652, 0}, {12613, 12619, 12428, 12625, 12443, 12630, 12636, 12642, 4190, 12647, 4201, 12652, 0}, 0, 1, 691, 187, {9517,9539,12657,0,0,0,0,0,0,0,0,0,0,0},{12669,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{12696,0,0,0,0,0,0,0}},
-       {12714, 12726, 12015, {12732, 12744, 12756, 12768, 12782, 12797, 12810}, {12824, 12827, 12830, 12833, 12836, 12839, 9660}, {2023, 2018, 12842, 2430, 4442, 2018, 9669}, {12844, 12851, 12859, 12865, 12874, 12883, 12893, 12899, 12910, 12920, 12927, 12937, 0}, {12844, 12851, 12859, 12865, 12874, 12883, 12893, 12899, 12910, 12920, 12927, 12937, 0}, {12945, 12951, 12956, 12961, 12966, 12971, 12978, 12984, 12990, 12996, 13002, 13009, 0}, {12945, 12951, 12956, 12961, 12966, 12971, 12978, 12984, 12990, 12996, 13002, 13009, 0}, 2, 1, 2566, 187, {1692,2568,0,0,0,0,0,0,0,0,0,0,0,0},{13016,0,0,0,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{13038,0,0,0,0,0,0,0}},
-       {1, 13053, 13065, {13077, 13092, 13107, 13122, 13139, 13158, 13169}, {13180, 13187, 13194, 13201, 13208, 13215, 13222}, {0, 0, 0, 0, 0, 0, 0}, {13229, 13240, 8845, 13253, 8867, 13264, 13271, 8892, 13278, 13293, 13306, 13317, 0}, {13229, 13240, 8845, 13253, 8867, 13264, 13271, 8892, 13278, 13293, 13306, 13317, 0}, {13330, 13337, 13344, 13351, 8867, 13264, 13271, 13358, 13365, 13372, 13379, 13386, 0}, {13330, 13337, 13344, 13351, 8867, 13264, 13271, 13358, 13365, 13372, 13379, 13386, 0}, 0, 0, 691, 187, {1156,1167,4762,1128,189,0,0,0,0,0,0,0,0,0},{13393,13411,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 13430, 13450, {13467, 13480, 13493, 13509, 13526, 13541, 13550}, {13467, 13480, 13493, 13509, 13526, 13541, 13550}, {13559, 13562, 13565, 13568, 13571, 13574, 13577}, {13580, 13593, 13604, 13613, 13624, 13629, 13638, 13649, 13656, 13671, 13682, 13695, 0}, {13708, 13723, 13604, 13613, 13736, 13629, 13743, 13649, 13656, 13671, 13682, 13695, 0}, {13580, 13593, 13604, 13613, 13624, 13629, 13638, 13649, 13656, 13671, 13682, 13695, 0}, {13580, 13593, 13604, 13613, 13624, 13629, 13638, 13649, 13656, 13671, 13682, 13695, 0}, 0, 6, 185, 187, {198,189,0,0,0,0,0,0,0,0,0,0,0,0},{13756,5505,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1, 13775, 13778, {13781, 13794, 13804, 13813, 13823, 13834, 13845}, {13857, 13860, 13865, 13870, 13875, 13880, 13885}, {13857, 13890, 13893, 13896, 13899, 13902, 13905}, {13908, 13917, 13926, 13935, 13944, 13953, 13962, 13971, 13980, 13989, 13999, 14009, 0}, {14019, 14028, 14037, 14046, 14055, 14064, 14073, 14082, 14091, 14100, 14110, 14120, 0}, {14130, 14136, 14142, 14148, 14154, 14160, 14166, 14172, 14178, 14184, 14191, 14198, 0}, {14130, 14136, 14142, 14148, 14154, 14160, 14166, 14172, 14178, 14184, 14191, 14198, 0}, 0, 1, 185, 187, {198,189,1139,1128,1692,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 14205, 14229, {14253, 14266, 14287, 14306, 14327, 14346, 14359}, {14370, 14377, 14384, 14391, 14398, 14405, 14412}, {14419, 14422, 14422, 14425, 14428, 14431, 14436}, {14439, 14454, 14469, 14478, 14489, 14500, 14513, 14526, 14541, 14560, 14579, 14596, 0}, {14615, 14632, 14649, 14660, 14673, 14686, 14701, 14716, 14733, 14754, 14775, 14794, 0}, {14815, 14822, 14829, 14836, 14843, 14850, 14857, 14864, 14871, 14878, 14885, 14892, 0}, {14815, 14822, 14829, 14836, 14843, 14850, 14857, 14864, 14871, 14878, 14885, 14892, 0}, 0, 1, 691, 187, {1156,1167,9796,198,14899,3582,1692,0,0,0,0,0,0,0},{3870,1207,13756,5505,14910,14921,14933,14950,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {14968, 14974, 14988, 15011, 15025, 15041, 15048}, {15057, 15060, 15065, 15071, 15075, 7736, 15080}, {6617, 6605, 6607, 6609, 6611, 6613, 6615}, {15084, 15091, 10374, 15098, 3730, 15104, 15110, 15116, 15123, 15132, 15140, 15147, 0}, {15154, 15161, 15168, 15173, 15179, 15183, 15188, 15193, 15200, 15209, 15217, 15224, 0}, {15231, 8135, 2530, 2534, 15179, 15235, 15239, 15243, 15247, 2554, 15251, 15255, 0}, {15231, 8135, 2530, 2534, 15179, 15235, 15239, 15243, 15247, 2554, 15251, 15255, 0}, 0, 0, 691, 187, {1156,1167,4762,189,1692,0,0,0,0,0,0,0,0,0},{15259,0,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {15281, 1929, 1932, {15296, 15304, 15315, 15325, 15336, 15345, 15354}, {15364, 15368, 15372, 15376, 15380, 15384, 15388}, {15392, 12842, 12842, 12842, 2432, 2432, 2436}, {15394, 15404, 15412, 15420, 15428, 15436, 15443, 15451, 15459, 15466, 15472, 15479, 0}, {15487, 15498, 15507, 15516, 15525, 15534, 15542, 15551, 15560, 15568, 15575, 15583, 0}, {15592, 15597, 4845, 15602, 15607, 15612, 15617, 15622, 15627, 15632, 15637, 15642, 0}, {15592, 15597, 4845, 15602, 15607, 15612, 15617, 15622, 15627, 15632, 15637, 15642, 0}, 2, 1, 185, 187, {1681,1692,0,0,0,0,0,0,0,0,0,0,0,0},{15647,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{15680,0,0,0,0,0,0,0}},
-       {289, 15697, 15718, {15735, 331, 352, 8714, 15748, 15765, 15776}, {15789, 15797, 15805, 15811, 15819, 15827, 15835}, {456, 459, 462, 465, 468, 459, 465}, {15843, 484, 501, 510, 15858, 15865, 15874, 542, 555, 574, 591, 606, 0}, {15843, 484, 501, 510, 15858, 15865, 15874, 542, 555, 574, 591, 606, 0}, {15883, 15891, 15899, 639, 15858, 15907, 15915, 647, 655, 665, 673, 683, 0}, {15883, 15891, 15899, 639, 15858, 15907, 15915, 647, 655, 665, 673, 683, 0}, 0, 1, 691, 187, {1156,1167,15923,0,0,0,0,0,0,0,0,0,0,0},{13756,0,0,0,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 0, 0, {15940, 15947, 15958, 15967, 15976, 15983, 15994}, {16004, 16008, 16012, 16016, 16020, 16023, 16027}, {0, 0, 0, 0, 0, 0, 0}, {16031, 16041, 16050, 16058, 16067, 16080, 16092, 16099, 16106, 16113, 16123, 16135, 0}, {16031, 16041, 16050, 16058, 16067, 16080, 16092, 16099, 16106, 16113, 16123, 16135, 0}, {16148, 16152, 16156, 16160, 16164, 16168, 16172, 16176, 16180, 16184, 16188, 16192, 0}, {16148, 16152, 16156, 16160, 16164, 16168, 16172, 16176, 16180, 16184, 16188, 16192, 0}, 0, 0, 185, 187, {189,1681,1735,1692,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 0, 0, {16196, 16201, 16207, 16217, 16229, 16237, 16248}, {16257, 16261, 16265, 16269, 16273, 16277, 16281}, {0, 0, 0, 0, 0, 0, 0}, {16285, 16295, 16305, 16312, 16319, 2706, 16324, 16331, 16338, 16347, 16355, 16363, 0}, {16285, 16295, 16305, 16312, 16319, 2706, 16324, 16331, 16338, 16347, 16355, 16363, 0}, {2759, 2763, 16027, 16371, 16375, 2776, 2780, 16379, 2788, 2792, 2796, 16383, 0}, {2759, 2763, 16027, 16371, 16375, 2776, 2780, 16379, 2788, 2792, 2796, 16383, 0}, 0, 0, 185, 187, {1681,1735,1692,0,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {16387, 16393, 16404, 16217, 16229, 16237, 16248}, {16414, 16418, 16422, 16269, 16273, 16277, 16281}, {2023, 2428, 16426, 2430, 2023, 5694, 2428}, {16428, 16438, 16449, 16456, 16465, 16471, 16477, 16485, 16493, 16504, 16514, 16523, 0}, {16532, 16295, 16541, 16547, 16319, 2706, 16324, 16331, 16554, 16347, 16355, 16363, 0}, {2759, 2763, 16564, 2772, 16375, 2776, 2780, 16379, 2788, 2792, 2796, 16383, 0}, {2759, 2763, 16564, 2772, 16375, 2776, 2780, 16379, 2788, 2792, 2796, 16383, 0}, 0, 0, 2566, 187, {1128,1139,189,1681,1735,1692,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 16568, 16572, {16576, 16583, 16591, 16599, 16608, 16618, 16625}, {2652, 16634, 2658, 16637, 2664, 16640, 2670}, {2023, 2428, 2673, 3705, 2673, 3989, 2023}, {16643, 16652, 16662, 2696, 10844, 16668, 16674, 16680, 2723, 2733, 2741, 10856, 0}, {16643, 16652, 16662, 2696, 10844, 16668, 16674, 16680, 2723, 2733, 2741, 10856, 0}, {2759, 2763, 3761, 2772, 10844, 2776, 2780, 2784, 2788, 2792, 2796, 10869, 0}, {2759, 2763, 3761, 2772, 10844, 2776, 2780, 2784, 2788, 2792, 2796, 10869, 0}, 0, 0, 185, 187, {1681,1735,1692,16689,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {16701, 16717, 16742, 16770, 16798, 16826, 16854}, {16873, 16883, 16893, 16903, 16913, 16923, 16933}, {16943, 16947, 16951, 16947, 16955, 16959, 16963}, {16967, 16989, 17017, 17033, 17052, 17068, 17087, 17106, 17128, 17159, 17187, 17212, 0}, {16967, 16989, 17017, 17033, 17052, 17068, 17087, 17106, 17128, 17159, 17187, 17212, 0}, {17240, 17250, 17260, 17270, 17280, 17290, 17300, 17310, 17320, 17330, 17340, 17350, 0}, {17240, 17250, 17260, 17270, 17280, 17290, 17300, 17310, 17320, 17330, 17340, 17350, 0}, 0, 1, 691, 187, {1156,1167,7419,1176,4762,4753,1692,0,0,0,0,0,0,0},{17360,17394,17427,3870,17461,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 17473, 17478, {5932, 17483, 17494, 17504, 17514, 17524, 17538}, {17550, 17554, 17559, 17564, 17568, 17573, 17578}, {2023, 2428, 2430, 2428, 5694, 2434, 2436}, {2438, 2445, 4887, 6077, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2438, 2445, 4887, 6077, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, 2, 1, 2566, 187, {1128,1139,1692,0,0,0,0,0,0,0,0,0,0,0},{2300,0,0,0,0,0,0,0,0,0},{251,4288,0,0,0,0,0,0,0,0,0,0},{269,4302,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1, 17582, 17598, {17608, 17627, 17646, 17668, 17687, 17709, 17734}, {17753, 17763, 17773, 17786, 17796, 17809, 17825}, {17835, 17839, 17846, 17853, 17860, 17867, 17874}, {17878, 17894, 17913, 17929, 17948, 17955, 17965, 17981, 17997, 18016, 18038, 18054, 0}, {17878, 17894, 17913, 17929, 17948, 17955, 17965, 17981, 17997, 18016, 18038, 18054, 0}, {18073, 18080, 17913, 18090, 17948, 17955, 18106, 18119, 18126, 18139, 18155, 18165, 0}, {18073, 18080, 17913, 18090, 17948, 17955, 18106, 18119, 18126, 18139, 18155, 18165, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {18178, 18192, 18195, {18198, 18207, 18216, 18226, 18236, 18246, 18258}, {18266, 18271, 18275, 18279, 18283, 18288, 18293}, {18297, 2430, 2430, 9924, 18297, 18300, 2023}, {18303, 18310, 18315, 2696, 18321, 18327, 18334, 18340, 18348, 18358, 18366, 18375, 0}, {18303, 18310, 18315, 2696, 18321, 18327, 18334, 18340, 18348, 18358, 18366, 18375, 0}, {2759, 18385, 3761, 2772, 18389, 18393, 18398, 18402, 18406, 18410, 2796, 18414, 0}, {2759, 18385, 3761, 2772, 18389, 18393, 18398, 18402, 18406, 18410, 2796, 18414, 0}, 0, 0, 185, 187, {198,1692,18419,7410,2277,0,0,0,0,0,0,0,0,0},{18428,18453,10193,0,0,0,0,0,0,0},{251,3594,843,0,0,0,0,0,0,0,0,0},{269,3602,848,3594,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {18472, 18485, 18490, {18495, 18507, 18518, 18532, 18544, 18554, 18564}, {18575, 18580, 18585, 18590, 18595, 18600, 18605}, {2023, 3989, 2428, 6293, 2673, 16426, 2436}, {18610, 18627, 18640, 18654, 18667, 18680, 18693, 18707, 18719, 18733, 18747, 18761, 0}, {18610, 18627, 18640, 18654, 18667, 18680, 18693, 18707, 18719, 18733, 18747, 18761, 0}, {18774, 18781, 18786, 18791, 18795, 18800, 18805, 18810, 18815, 18822, 18827, 18833, 0}, {18774, 18781, 18786, 18791, 18795, 18800, 18805, 18810, 18815, 18822, 18827, 18833, 0}, 2, 1, 691, 187, {1156,1167,4762,1692,0,0,0,0,0,0,0,0,0,0},{18838,18862,0,0,0,0,0,0,0,0},{251,843,4288,0,0,0,0,0,0,0,0,0},{269,848,4302,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 7281, 7286, {18880, 18894, 18904, 18915, 18929, 18940, 18951}, {18964, 18969, 18974, 18981, 18987, 18993, 18999}, {2673, 2436, 2428, 7736, 2673, 12842, 2023}, {19004, 19012, 19020, 19027, 19036, 19046, 19056, 19062, 19070, 19085, 19103, 19111, 0}, {19004, 19012, 19020, 19027, 19036, 19046, 19056, 19062, 19070, 19085, 19103, 19111, 0}, {19119, 19123, 19020, 19129, 19133, 19138, 19056, 19144, 19149, 19156, 19163, 19168, 0}, {19119, 19123, 19020, 19129, 19133, 19138, 19056, 19144, 19149, 19156, 19163, 19168, 0}, 2, 0, 185, 187, {198,189,2286,4762,1692,0,0,0,0,0,0,0,0,0},{1242,5505,10193,8579,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1, 19173, 19176, {19180, 19185, 10778, 10785, 19191, 19198, 10802}, {19205, 19209, 10816, 10820, 19213, 10828, 10832}, {12842, 15392, 2023, 10836, 4442, 3987, 2023}, {10114, 10122, 19217, 2696, 10844, 2776, 19221, 19227, 2723, 2733, 2741, 19232, 0}, {10114, 10122, 19217, 2696, 10844, 2776, 19221, 19227, 2723, 2733, 2741, 19232, 0}, {2759, 2763, 19217, 2772, 10844, 2776, 2780, 19241, 2788, 2792, 2796, 16383, 0}, {2759, 2763, 19217, 2772, 10844, 2776, 2780, 19241, 2788, 2792, 2796, 16383, 0}, 0, 0, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 19245, 19267, {19291, 19306, 19323, 19340, 19357, 19374, 19383}, {19394, 19400, 19406, 19412, 19418, 19424, 19430}, {19436, 19439, 8811, 8811, 19442, 19436, 8811}, {19445, 19458, 19469, 19482, 19493, 19504, 19517, 19528, 19539, 19556, 19567, 19580, 0}, {19445, 19458, 19469, 19482, 19493, 19504, 19517, 19528, 19539, 19556, 19567, 19580, 0}, {19599, 19607, 19615, 19623, 19631, 19639, 19647, 19655, 19663, 19671, 19679, 19687, 0}, {19599, 19607, 19615, 19623, 19631, 19639, 19647, 19655, 19663, 19671, 19679, 19687, 0}, 0, 0, 2566, 187, {6488,0,0,0,0,0,0,0,0,0,0,0,0,0},{19697,19715,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {19734, 19743, 19769, {19797, 19804, 19811, 19818, 19825, 19832, 19839}, {19797, 19804, 19811, 19818, 19825, 19832, 19839}, {19436, 19439, 19846, 19846, 19442, 19436, 19849}, {19852, 19865, 501, 19880, 521, 19893, 19902, 542, 19911, 19928, 19943, 19956, 0}, {19852, 19865, 501, 19880, 521, 19893, 19902, 542, 19911, 19928, 19943, 19956, 0}, {19971, 15891, 15899, 639, 521, 19979, 19987, 647, 19995, 665, 20003, 683, 0}, {19971, 15891, 15899, 639, 521, 19979, 19987, 647, 19995, 665, 20003, 683, 0}, 0, 0, 2566, 187, {20011,0,0,0,0,0,0,0,0,0,0,0,0,0},{20020,0,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{20041,0,0,0,0,0,0,0}},
-       {20057, 1929, 1932, {20065, 20074, 20083, 20091, 20100, 20109, 20116}, {20125, 20128, 20131, 20134, 20137, 20141, 20144}, {6607, 6609, 6611, 6613, 12842, 15392, 6605}, {10114, 10122, 20147, 20153, 10844, 2706, 19221, 20160, 16338, 20167, 16355, 20174, 0}, {10114, 10122, 20147, 20153, 10844, 2706, 19221, 20160, 16338, 20167, 16355, 20174, 0}, {2759, 2763, 19217, 2772, 10844, 2776, 2780, 20182, 2788, 2792, 2796, 10869, 0}, {2759, 2763, 19217, 2772, 10844, 2776, 2780, 20182, 2788, 2792, 2796, 10869, 0}, 0, 0, 185, 187, {3773,3782,3789,3798,1735,1692,3809,0,0,0,0,0,0,0},{20186,20206,222,10751,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {20220, 1929, 1932, {20227, 20237, 20246, 20255, 20266, 20276, 20281}, {20288, 20294, 20299, 20304, 20309, 10828, 20313}, {20318, 2673, 2023, 7736, 2018, 3987, 2023}, {15084, 15091, 10374, 15098, 3730, 20320, 20325, 20330, 15123, 15132, 15140, 15147, 0}, {15084, 15091, 10374, 15098, 3730, 20320, 20325, 20330, 15123, 15132, 15140, 15147, 0}, {20337, 20342, 3761, 2772, 3730, 20320, 20325, 20346, 10812, 2792, 20350, 20355, 0}, {20337, 20342, 3761, 2772, 3730, 20320, 20325, 20346, 10812, 2792, 20350, 20355, 0}, 0, 0, 691, 187, {1156,0,0,0,0,0,0,0,0,0,0,0,0,0},{20359,1242,5505,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 20377, 20405, {20427, 20446, 20465, 20490, 20509, 20543, 20568}, {20587, 20597, 20607, 20623, 20633, 20658, 20674}, {20684, 20688, 20695, 20699, 20706, 20713, 20720}, {20724, 20752, 20786, 20802, 20821, 20828, 20838, 20854, 20870, 20901, 20923, 20945, 0}, {20724, 20752, 20786, 20802, 20821, 20828, 20838, 20854, 20870, 20901, 20923, 20945, 0}, {20724, 20752, 20786, 20802, 20821, 20828, 20838, 20854, 20870, 20901, 20923, 20945, 0}, {20724, 20752, 20786, 20802, 20821, 20828, 20838, 20854, 20870, 20901, 20923, 20945, 0}, 0, 1, 2566, 187, {1139,2293,1128,20970,20983,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{4288,2321,20998,21007,0,0,0,0,0,0,0,0},{4302,2337,21015,21027,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1, 1929, 1932, {21038, 21054, 21073, 21095, 21114, 21133, 21161}, {21183, 21191, 21202, 21216, 21227, 21238, 21258}, {21272, 21276, 21283, 21290, 21300, 21307, 21320}, {21327, 21343, 21362, 21375, 21394, 21401, 21411, 21427, 21440, 21456, 21475, 21491, 0}, {21327, 21343, 21362, 21375, 21394, 21401, 21411, 21427, 21440, 21456, 21475, 21491, 0}, {21327, 21343, 21362, 21375, 21394, 21401, 21411, 21427, 21440, 21456, 21475, 21491, 0}, {21327, 21343, 21362, 21375, 21394, 21401, 21411, 21427, 21440, 21456, 21475, 21491, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{10502,1242,0,0,0,0,0,0,0,0},{1866,1858,843,251,0,0,0,0,0,0,0,0},{1886,1875,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1, 1929, 1932, {21507, 21526, 21545, 21567, 21586, 21608, 21633}, {21652, 21662, 21672, 21685, 21695, 21708, 21724}, {21734, 21738, 21745, 21752, 21759, 21766, 21773}, {21777, 21805, 21833, 21849, 21868, 21875, 21885, 21901, 21917, 21945, 21967, 21989, 0}, {21777, 21805, 21833, 21849, 21868, 21875, 21885, 21901, 21917, 21945, 21967, 21989, 0}, {22014, 22033, 21833, 21849, 21868, 21875, 21885, 22052, 22059, 22075, 22091, 22101, 0}, {22014, 22033, 21833, 21849, 21868, 21875, 21885, 22052, 22059, 22075, 22091, 22101, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1, 8151, 22114, {22117, 22136, 22155, 22180, 22199, 22221, 22246}, {22265, 22275, 22285, 22301, 22311, 22324, 22340}, {22350, 22354, 22361, 22365, 22372, 22379, 22386}, {22390, 22412, 22443, 22465, 22484, 22491, 22501, 22517, 22533, 22564, 22586, 22608, 0}, {22390, 22412, 22443, 22465, 22484, 22491, 22501, 22517, 22533, 22564, 22586, 22608, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {289, 22633, 22658, {22683, 22702, 22724, 22749, 22765, 22787, 22806}, {22816, 22823, 22830, 22837, 22844, 22851, 22858}, {22816, 22823, 22830, 22837, 22844, 22851, 22858}, {22862, 22878, 22903, 22922, 22941, 22948, 22961, 22974, 22993, 23024, 23049, 23071, 0}, {22862, 22878, 22903, 22922, 22941, 22948, 22961, 23096, 22993, 23024, 23049, 23071, 0}, {23115, 23123, 23137, 23151, 22941, 22948, 22961, 23162, 23170, 23184, 23195, 23203, 0}, {23115, 23123, 23137, 23151, 22941, 22948, 22961, 23162, 23170, 23184, 23195, 23203, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {3613, 1929, 1932, {23214, 23236, 23258, 23283, 23305, 23330, 23358}, {23380, 23390, 23400, 23413, 23423, 23436, 23452}, {23462, 23466, 23473, 23477, 23484, 23491, 23498}, {23502, 23518, 23543, 23562, 23584, 23591, 23604, 23617, 23636, 23667, 23692, 23711, 0}, {23502, 23518, 23543, 23562, 23584, 23591, 23736, 23617, 23636, 23667, 23692, 23711, 0}, {23749, 23756, 23543, 23772, 23584, 23591, 23736, 23617, 23788, 23810, 23826, 23836, 0}, {23749, 23756, 23543, 23772, 23584, 23591, 23736, 23617, 23788, 23810, 23826, 23836, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {3613, 1929, 1932, {23852, 23871, 23890, 23912, 23931, 23953, 23978}, {23997, 24007, 24017, 24030, 24040, 24053, 24069}, {24079, 24083, 24090, 24097, 24104, 24111, 24118}, {24122, 24138, 24163, 24182, 24204, 24211, 24224, 24237, 24256, 24284, 24309, 24331, 0}, {24122, 24138, 24163, 24182, 24204, 24211, 24224, 24237, 24256, 24284, 24309, 24331, 0}, {24356, 24364, 24384, 24391, 24204, 24408, 24415, 24423, 24431, 24454, 24471, 24485, 0}, {24356, 24364, 24384, 24391, 24204, 24408, 24415, 24423, 24431, 24454, 24471, 24485, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {20057, 1929, 1932, {24502, 24530, 24564, 24592, 24620, 24651, 24688}, {24716, 24729, 24748, 24764, 24777, 24796, 24815}, {24825, 24832, 24839, 24846, 24853, 24866, 24873}, {24877, 24896, 24924, 24946, 24965, 24978, 24988, 25001, 25026, 25057, 25082, 25098, 0}, {24877, 24896, 24924, 24946, 24965, 24978, 24988, 25001, 25026, 25057, 25082, 25098, 0}, {25117, 25127, 25146, 25156, 24965, 24978, 24988, 25172, 25179, 25204, 25220, 25230, 0}, {25117, 25127, 25146, 25156, 24965, 24978, 24988, 25172, 25179, 25204, 25220, 25230, 0}, 0, 0, 2566, 187, {1139,2293,1167,4762,0,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{4288,2321,20998,21007,0,0,0,0,0,0,0,0},{4302,2337,21015,21027,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {289, 25243, 25271, {25293, 25312, 25331, 25356, 25375, 25409, 25434}, {25453, 20597, 20607, 20623, 25463, 25488, 20674}, {0, 0, 0, 0, 0, 0, 0}, {25504, 25529, 25560, 25576, 20821, 20828, 20838, 25595, 25611, 25642, 25664, 25686, 0}, {25504, 25529, 25560, 25576, 20821, 20828, 20838, 25595, 25611, 25642, 25664, 25686, 0}, {25711, 25724, 25560, 25576, 20821, 20828, 20838, 25743, 25750, 25766, 25782, 25792, 0}, {25711, 25724, 25560, 25576, 20821, 20828, 20838, 25743, 25750, 25766, 25782, 25792, 0}, 0, 0, 2566, 187, {1128,0,0,0,0,0,0,0,0,0,0,0,0,0},{25805,0,0,0,0,0,0,0,0,0},{1858,1866,0,0,0,0,0,0,0,0,0,0},{1875,1886,0,0,0,0,0,0,0},{25824,25832,0,0,0,0,0,0}},
-       {1, 1929, 1932, {17608, 17627, 25842, 17668, 17687, 17709, 17734}, {17753, 17763, 25864, 17786, 17796, 17809, 17825}, {17835, 17839, 17846, 17853, 17860, 17867, 17874}, {25877, 25902, 17913, 25933, 25952, 17955, 25959, 25972, 25988, 26013, 26035, 26063, 0}, {25877, 25902, 17913, 25933, 25952, 17955, 25959, 25972, 25988, 26013, 26035, 26063, 0}, {26085, 26098, 17913, 26117, 25952, 17955, 25959, 26133, 26140, 26159, 26175, 26197, 0}, {26085, 26098, 17913, 26117, 25952, 17955, 25959, 26133, 26140, 26159, 26175, 26197, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {5619, 26213, 26218, {26223, 26230, 26241, 26254, 26267, 26278, 26291}, {26302, 26307, 26312, 26317, 26322, 26327, 26332}, {6605, 6607, 6609, 6611, 6613, 6615, 6617}, {26337, 26363, 26391, 26421, 26451, 26477, 26507, 26533, 26561, 26585, 26613, 26650, 0}, {26337, 26363, 26391, 26421, 26451, 26477, 26507, 26533, 26561, 26585, 26613, 26650, 0}, {26689, 26701, 26713, 26725, 26737, 26749, 26761, 26773, 26785, 26797, 26810, 26823, 0}, {26689, 26701, 26713, 26725, 26737, 26749, 26761, 26773, 26785, 26797, 26810, 26823, 0}, 0, 0, 2566, 187, {1692,0,0,0,0,0,0,0,0,0,0,0,0,0},{26836,26890,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{26926,0,0,0,0,0,0,0}},
-       {26945, 26969, 26991, {27016, 27044, 27072, 27109, 27140, 27174, 27199}, {27233, 27249, 27265, 27290, 27309, 27331, 27344}, {27366, 27373, 27380, 27387, 27394, 27401, 27405}, {27415, 27449, 27486, 27520, 27554, 27585, 27622, 27659, 27699, 27733, 27767, 27816, 0}, {27415, 27449, 27486, 27520, 27554, 27585, 27622, 27659, 27699, 27733, 27767, 27816, 0}, {27865, 27878, 27891, 27904, 27917, 27930, 27943, 27956, 27969, 27982, 27998, 28014, 0}, {27865, 27878, 27891, 27904, 27917, 27930, 27943, 27956, 27969, 27982, 27998, 28014, 0}, 0, 0, 185, 187, {1654,1663,1672,1703,1692,1681,1721,1714,1728,0,0,0,0,0},{28030,28073,28121,28153,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{28190,1914,0,0,0,0,0,0}},
-       {289, 1929, 1932, {28223, 28232, 28242, 28254, 28267, 28276, 28288}, {28300, 28304, 28309, 28313, 28317, 28321, 28325}, {2023, 28329, 2428, 2428, 15392, 6293, 2023}, {28332, 28339, 28348, 28355, 2702, 28362, 28370, 28381, 28386, 28391, 28398, 28407, 0}, {28332, 28339, 28348, 28355, 2702, 28362, 28370, 28381, 28386, 28391, 28398, 28407, 0}, {28415, 28419, 28309, 28423, 2702, 28427, 28431, 28381, 28386, 28435, 28439, 28444, 0}, {28415, 28419, 28309, 28423, 2702, 28427, 28431, 28381, 28386, 28435, 28439, 28444, 0}, 2, 1, 185, 187, {189,198,5002,8579,0,0,0,0,0,0,0,0,0,0},{1242,1207,0,0,0,0,0,0,0,0},{251,843,242,3594,0,0,0,0,0,0,0,0},{269,848,257,3602,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 28449, 28465, {28481, 28503, 28516, 28535, 28545, 28576, 28592}, {28481, 28503, 28516, 28535, 28545, 28576, 28592}, {6605, 6607, 6609, 6611, 6613, 6615, 6617}, {28605, 28618, 28637, 28650, 28663, 28676, 28695, 28714, 28727, 28743, 28756, 28781, 0}, {28605, 28618, 28637, 28650, 28663, 28676, 28695, 28714, 28727, 28743, 28756, 28781, 0}, {28605, 28618, 28637, 28650, 28663, 28676, 28695, 28714, 28727, 28743, 28756, 28781, 0}, {28605, 28618, 28637, 28650, 28663, 28676, 28695, 28714, 28727, 28743, 28756, 28781, 0}, 0, 0, 185, 187, {189,1692,0,0,0,0,0,0,0,0,0,0,0,0},{1242,10205,0,0,0,0,0,0,0,0},{843,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{28794,0,0,0,0,0,0,0}},
-       {289, 28829, 28854, {28879, 28904, 28923, 28951, 28970, 28995, 29014}, {28879, 28904, 28923, 28951, 28970, 28995, 29014}, {29036, 29040, 29044, 29048, 29058, 29062, 29072}, {29076, 29095, 29111, 29124, 29137, 29159, 29178, 29200, 29216, 29232, 29245, 29261, 0}, {29076, 29095, 29111, 29124, 29137, 29159, 29178, 29200, 29216, 29232, 29245, 29261, 0}, {29277, 29286, 29295, 29304, 29313, 29322, 29334, 29343, 29352, 29361, 29370, 29379, 0}, {29277, 29286, 29295, 29304, 29313, 29322, 29334, 29343, 29352, 29361, 29370, 29379, 0}, 0, 0, 185, 187, {198,29388,6480,0,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {3883, 7281, 7286, {3895, 29398, 3909, 29403, 29413, 29419, 3942}, {29426, 8413, 3761, 29430, 29435, 29439, 29443}, {2673, 2436, 2428, 2428, 29448, 3989, 2023}, {29450, 29458, 4005, 4011, 29467, 29472, 29478, 4034, 29484, 29493, 29501, 29510, 0}, {29519, 29527, 4094, 1012, 8083, 29536, 29542, 4117, 8100, 8109, 8117, 29548, 0}, {29557, 2763, 3761, 29561, 2702, 29565, 29570, 20182, 18406, 29574, 2796, 3769, 0}, {29557, 2763, 3761, 29561, 2702, 29565, 29570, 20182, 18406, 29574, 2796, 3769, 0}, 2, 1, 185, 187, {198,189,1120,2286,1139,1167,1692,0,0,0,0,0,0,0},{29578,4239,4266,1242,0,0,0,0,0,0},{843,251,242,29607,0,0,0,0,0,0,0,0},{848,269,257,29619,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {1, 29639, 29651, {29663, 17627, 29691, 17668, 17687, 17709, 17734}, {17753, 17763, 25864, 17786, 17796, 17809, 17825}, {0, 0, 0, 0, 0, 0, 0}, {25877, 25902, 17913, 25933, 25952, 17955, 25959, 29710, 29726, 29754, 26035, 26063, 0}, {25877, 25902, 17913, 25933, 25952, 17955, 25959, 29710, 29726, 29754, 26035, 26063, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {20057, 29776, 29788, {29797, 29813, 29829, 29857, 29873, 29916, 29941}, {29797, 29813, 29969, 29857, 29979, 30001, 30014}, {30024, 30028, 30032, 30036, 30040, 30053, 30060}, {30067, 30086, 30111, 30130, 30155, 30168, 30181, 30194, 30216, 30250, 30275, 30303, 0}, {30067, 30086, 30111, 30130, 30155, 30168, 30181, 30194, 30216, 30250, 30275, 30303, 0}, {30331, 30338, 30348, 30130, 30155, 30168, 30181, 30361, 30371, 30384, 30394, 30407, 0}, {30331, 30338, 30348, 30130, 30155, 30168, 30181, 30361, 30371, 30384, 30394, 30407, 0}, 0, 1, 2566, 187, {1692,1681,1735,198,189,0,0,0,0,0,0,0,0,0},{30420,0,0,0,0,0,0,0,0,0},{1858,1866,843,251,0,0,0,0,0,0,0,0},{1875,1886,848,269,0,0,0,0,0},{30468,0,0,0,0,0,0,0}},
-       {30478, 30494, 30504, {30517, 30527, 30534, 30547, 30557, 30567, 30577}, {30517, 30527, 30587, 30547, 30557, 30567, 30577}, {30597, 30601, 30605, 30609, 30613, 30617, 30621}, {30625, 30641, 30657, 30667, 30680, 30687, 30694, 30704, 30717, 30736, 30752, 30768, 0}, {30625, 30641, 30657, 30667, 30680, 30687, 30694, 30704, 30717, 30784, 30752, 30768, 0}, {30803, 30813, 30657, 30823, 30680, 30687, 30694, 30833, 30843, 30853, 30863, 30873, 0}, {30803, 30813, 30657, 30823, 30680, 30687, 30694, 30833, 30843, 30853, 30863, 30873, 0}, 0, 0, 185, 187, {2277,1692,0,0,0,0,0,0,0,0,0,0,0,0},{30883,0,0,0,0,0,0,0,0,0},{3594,0,0,0,0,0,0,0,0,0,0,0},{3602,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 30915, 30925, {30938, 30945, 30951, 30958, 30964, 30970, 30978}, {30988, 30992, 30996, 31000, 31004, 31008, 31012}, {12842, 12842, 12842, 12842, 12842, 12842, 12842}, {31018, 31027, 10131, 31036, 31042, 31048, 31054, 31061, 31067, 31076, 31085, 31093, 0}, {31018, 31027, 10131, 31036, 31042, 31048, 31054, 31061, 31067, 31076, 31085, 31093, 0}, {31102, 31106, 3761, 31110, 3730, 31114, 31118, 31122, 31127, 31131, 31137, 31141, 0}, {31102, 31106, 3761, 31110, 3730, 31114, 31118, 31122, 31127, 31131, 31137, 31141, 0}, 0, 0, 2566, 187, {1128,1139,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1, 31145, 31186, {31227, 31246, 31265, 31290, 31309, 31331, 31356}, {31375, 17763, 31385, 17786, 31401, 17809, 17825}, {31414, 17839, 31418, 17853, 31422, 17867, 17874}, {17878, 31429, 17913, 31457, 25952, 31476, 17965, 31486, 31502, 31533, 31555, 31580, 0}, {17878, 31429, 17913, 31457, 25952, 31476, 17965, 31486, 31502, 31533, 31555, 31580, 0}, {17878, 31429, 17913, 31457, 25952, 31476, 17965, 31486, 31502, 31533, 31555, 31580, 0}, {17878, 31429, 17913, 31457, 25952, 31476, 17965, 31486, 31502, 31533, 31555, 31580, 0}, 0, 0, 185, 187, {3773,3782,3789,3798,1735,1692,3809,0,0,0,0,0,0,0},{20186,20206,222,10751,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{25832,0,0,0,0,0,0,0}},
-       {289, 0, 0, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {31605, 31612, 31621, 31636, 31647, 31656, 31663, 31670, 31677, 31688, 31701, 31714, 0}, {31605, 31612, 31621, 31636, 31647, 31656, 31663, 31670, 31677, 31688, 31701, 31714, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 6, 185, 187, {1654,1692,0,0,0,0,0,0,0,0,0,0,0,0},{31719,31740,0,0,0,0,0,0,0,0},{3594,843,0,0,0,0,0,0,0,0,0,0},{3602,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {31755, 1929, 1932, {31761, 31768, 31774, 31781, 31792, 31800, 31809}, {31816, 8413, 3761, 31820, 31824, 31828, 10832}, {2436, 2436, 2428, 2428, 5694, 16426, 2023}, {3991, 31832, 31840, 4011, 4017, 31846, 31852, 4034, 31858, 31868, 31876, 31886, 0}, {3991, 31832, 31840, 4011, 4017, 31846, 31852, 4034, 31858, 31868, 31876, 31886, 0}, {31896, 31900, 3761, 29561, 3730, 31904, 31908, 20182, 18406, 2792, 31912, 16383, 0}, {31896, 31900, 3761, 29561, 3730, 31904, 31908, 20182, 18406, 2792, 31912, 16383, 0}, 0, 0, 185, 187, {3773,3782,3789,3798,1735,1692,3809,0,0,0,0,0,0,0},{20186,20206,222,10751,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {289, 0, 0, {31916, 31923, 31931, 31938, 31945, 31953, 31961}, {31968, 31971, 31974, 31977, 31980, 31983, 31986}, {2436, 2436, 2430, 2436, 12842, 3987, 12842}, {31989, 31997, 32007, 32013, 32021, 32026, 32031, 32036, 32043, 20167, 32051, 32059, 0}, {31989, 31997, 32007, 32013, 32021, 32026, 32031, 32036, 32043, 20167, 32051, 32059, 0}, {2759, 32067, 3761, 32071, 3730, 31114, 31118, 32075, 3701, 2792, 32079, 16383, 0}, {2759, 32067, 3761, 32071, 3730, 31114, 31118, 32075, 3701, 2792, 32079, 16383, 0}, 0, 0, 185, 187, {2277,2286,189,198,1735,1692,3809,0,0,0,0,0,0,0},{20186,20206,222,10751,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1, 32083, 32094, {32104, 32122, 32137, 32159, 32172, 32186, 32203}, {32227, 32235, 32240, 32159, 32172, 32252, 32259}, {0, 0, 0, 0, 0, 0, 0}, {32273, 32295, 32311, 32331, 32345, 32362, 32377, 32394, 32408, 32421, 32440, 32454, 0}, {32273, 32295, 32311, 32331, 32345, 32362, 32377, 32394, 32408, 32421, 32440, 32454, 0}, {32473, 32488, 32497, 32510, 32517, 32527, 32535, 32545, 32552, 32558, 32570, 32577, 0}, {32473, 32488, 32497, 32510, 32517, 32527, 32535, 32545, 32552, 32558, 32570, 32577, 0}, 0, 0, 185, 187, {2277,2286,189,198,1735,1692,3809,0,0,0,0,0,0,0},{222,20186,20206,10751,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{25832,0,0,0,0,0,0,0}},
-       {3613, 0, 0, {32589, 32597, 15958, 15967, 15976, 32608, 32618}, {16414, 16008, 16012, 16016, 16020, 16277, 32627}, {0, 0, 0, 0, 0, 0, 0}, {32631, 32640, 32650, 32658, 10844, 3734, 32666, 32672, 32681, 32690, 32699, 32708, 0}, {32631, 32640, 32650, 32658, 10844, 3734, 32666, 32672, 32681, 32690, 32699, 32708, 0}, {2759, 2763, 16027, 32717, 10844, 2776, 2780, 20182, 18406, 2792, 32721, 16383, 0}, {2759, 2763, 16027, 32717, 10844, 2776, 2780, 20182, 18406, 2792, 32721, 16383, 0}, 0, 0, 185, 187, {189,1681,1735,1692,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {32725, 32738, 32743, {32748, 32755, 32770, 32784, 32800, 32815, 32831}, {6289, 32846, 2530, 32850, 32854, 32858, 32862}, {2023, 12842, 2428, 2018, 2023, 2430, 12842}, {7370, 7378, 32866, 32873, 32880, 2469, 2474, 32885, 32895, 32906, 32915, 32925, 0}, {7370, 7378, 32866, 32873, 32880, 2469, 2474, 32885, 32895, 32906, 32915, 32925, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, 0, 0, 2566, 187, {1128,1139,1692,2568,0,0,0,0,0,0,0,0,0,0},{32935,2300,4769,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 32954, 32959, {32964, 32980, 32988, 32996, 33005, 33017, 33027}, {33037, 33043, 33049, 33053, 33057, 33065, 3701}, {0, 0, 0, 0, 0, 0, 0}, {33072, 33085, 33099, 33108, 33114, 33118, 33123, 33131, 16338, 33144, 16355, 16363, 0}, {33072, 33085, 33099, 33108, 33114, 33118, 33123, 33131, 16338, 33144, 16355, 16363, 0}, {33153, 2763, 33157, 16371, 33114, 33161, 2780, 33165, 2788, 33173, 2796, 16383, 0}, {33153, 2763, 33157, 16371, 33114, 33161, 2780, 33165, 2788, 33173, 2796, 16383, 0}, 0, 0, 185, 187, {2277,2286,189,198,1735,1692,3809,0,0,0,0,0,0,0},{20186,20206,222,10751,0,0,0,0,0,0},{2313,0,0,0,0,0,0,0,0,0,0,0},{2326,0,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {33179, 33206, 33213, {33220, 33230, 33240, 33250, 33260, 33270, 33280}, {33290, 33297, 33304, 33311, 33318, 33325, 33332}, {33339, 33343, 33347, 33351, 33355, 33359, 33363}, {33367, 33374, 33381, 33388, 33395, 33402, 33409, 33416, 33423, 33430, 33437, 33447, 0}, {33367, 33374, 33381, 33388, 33395, 33402, 33409, 33416, 33423, 33430, 33437, 33447, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 0, 185, 187, {1654,1663,1672,1703,1692,1681,0,0,0,0,0,0,0,0},{33457,33481,33511,33541,33558,0,0,0,0,0},{1858,843,251,0,0,0,0,0,0,0,0,0},{1875,848,269,0,0,0,0,0,0},{33581,1914,0,0,0,0,0,0}},
-       {289, 0, 0, {28300, 8413, 33598, 33605, 33615, 33620, 33627}, {33634, 6273, 33638, 4850, 33643, 33648, 33653}, {4421, 33658, 33661, 33664, 33667, 33670, 33673}, {33676, 33683, 33598, 33694, 33700, 33704, 33713, 33720, 33725, 33734, 33739, 33742, 0}, {33676, 33683, 33598, 33694, 33700, 33704, 33713, 33720, 33725, 33734, 33739, 33742, 0}, {33748, 33752, 33759, 28423, 33700, 33764, 33769, 33720, 33774, 33734, 33739, 33779, 0}, {33748, 33752, 33759, 28423, 33700, 33764, 33769, 33720, 33774, 33734, 33739, 33779, 0}, 2, 1, 185, 187, {198,189,1167,1139,1692,0,0,0,0,0,0,0,0,0},{4985,5002,1242,0,0,0,0,0,0,0},{251,843,4288,5011,5021,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1921, 33783, 33788, {33793, 33801, 33811, 33821, 33830, 33840, 33848}, {33858, 33862, 33867, 33871, 33875, 33879, 33883}, {2023, 2428, 2673, 2428, 2673, 2434, 2023}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 33887, 33896, 33907, 33916, 33926, 0}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 33887, 33896, 33907, 33916, 33926, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, 0, 0, 185, 187, {198,189,1167,1139,1692,0,0,0,0,0,0,0,0,0},{4985,5002,1242,0,0,0,0,0,0,0},{251,843,4288,5011,5021,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {33936, 33954, 33959, {33964, 33989, 34018, 34043, 34056, 34071, 34088}, {34103, 34108, 34113, 34118, 34123, 34128, 8800}, {19442, 19442, 34133, 8811, 8814, 19442, 8811}, {34136, 34155, 34170, 34192, 34212, 34228, 34244, 34258, 34284, 34308, 34325, 34342, 0}, {34136, 34155, 34170, 34192, 34212, 34228, 34244, 34258, 34284, 34308, 34325, 34342, 0}, {34359, 34368, 34377, 34391, 34405, 34417, 34429, 34439, 34455, 34469, 34476, 34483, 0}, {34359, 34368, 34377, 34391, 34405, 34417, 34429, 34439, 34455, 34469, 34476, 34483, 0}, 0, 1, 691, 187, {1156,4753,1692,34490,34500,0,0,0,0,0,0,0,0,0},{34513,34548,34577,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{34612,0,0,0,0,0,0,0}},
-       {20057, 0, 0, {34628, 34640, 34651, 34663, 34675, 34685, 34697}, {34712, 34717, 34722, 34727, 34732, 34737, 34742}, {0, 0, 0, 0, 0, 0, 0}, {34747, 34756, 34768, 34776, 34781, 34791, 34798, 34807, 34814, 34820, 34829, 34840, 0}, {34747, 34756, 34768, 34776, 34781, 34791, 34798, 34807, 34814, 34820, 34829, 34840, 0}, {34848, 34853, 34858, 34863, 34868, 34873, 34878, 34732, 34883, 34888, 34893, 34898, 0}, {34848, 34853, 34858, 34863, 34868, 34873, 34878, 34732, 34883, 34888, 34893, 34898, 0}, 0, 0, 185, 187, {9796,2286,0,0,0,0,0,0,0,0,0,0,0,0},{34903,1207,0,0,0,0,0,0,0,0},{843,0,0,0,0,0,0,0,0,0,0,0},{848,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 34923, 34925, {34927, 34940, 34948, 34957, 34967, 34977, 34986}, {34998, 35002, 35006, 35010, 35014, 35018, 35022}, {2673, 2436, 2428, 7736, 12842, 5694, 2023}, {35026, 35040, 35051, 35060, 35071, 35083, 35097, 35109, 35122, 35135, 35147, 35160, 0}, {35026, 35040, 35051, 35060, 35071, 35083, 35097, 35109, 35122, 35135, 35147, 35160, 0}, {35174, 35179, 35185, 35191, 35196, 35202, 35208, 35213, 35219, 35224, 19163, 35230, 0}, {35174, 35179, 35185, 35191, 35196, 35202, 35208, 35213, 35219, 35224, 19163, 35230, 0}, 2, 1, 185, 187, {198,189,2286,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,242,3594,0,0,0,0,0,0,0,0},{269,848,257,3602,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {10033, 10046, 10049, {10052, 10060, 10068, 2368, 2375, 2383, 10075}, {10083, 10088, 10093, 2411, 2415, 2419, 10097}, {2023, 2428, 2430, 2432, 2430, 2434, 2436}, {7370, 7378, 4887, 2459, 2465, 2469, 2474, 10102, 2486, 2496, 2504, 2513, 0}, {7370, 7378, 4887, 2459, 2465, 2469, 2474, 10102, 2486, 2496, 2504, 2513, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, 2, 1, 2566, 187, {1692,5888,0,0,0,0,0,0,0,0,0,0,0,0},{10110,10128,0,0,0,0,0,0,0,0},{251,843,7529,0,0,0,0,0,0,0,0,0},{269,848,7585,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 0, 0, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 0, 185, 187, {2277,2286,189,198,8579,10151,1692,0,0,0,0,0,0,0},{1242,10163,10179,0,0,0,0,0,0,0},{843,251,3594,242,0,0,0,0,0,0,0,0},{848,269,3602,257,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 10221, 10226, {10230, 10236, 10246, 10252, 10263, 10273, 10278}, {10288, 10292, 10296, 10300, 10305, 10309, 10313}, {2018, 2018, 2023, 10317, 2018, 7736, 7736}, {10320, 10325, 10332, 10337, 10343, 10350, 10358, 10365, 10374, 10381, 10386, 10393, 0}, {10320, 10325, 10332, 10337, 10343, 10350, 10358, 10365, 10374, 10381, 10386, 10393, 0}, {10401, 10405, 3761, 10410, 3730, 10414, 10418, 10422, 10427, 10431, 10435, 10439, 0}, {10401, 10405, 3761, 10410, 3730, 10414, 10418, 10422, 10427, 10431, 10435, 10439, 0}, 0, 1, 691, 187, {4753,4762,1156,1167,0,0,0,0,0,0,0,0,0,0},{10443,1242,10460,5505,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1, 10478, 10496, {10514, 10525, 10538, 10547, 10554, 10567, 10576}, {10514, 10525, 10538, 10547, 10554, 10567, 10576}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {10585, 10596, 10607, 10616, 10627, 10634, 10641, 10654, 10663, 10674, 10687, 10698, 0}, {10585, 10596, 10607, 10616, 10627, 10634, 10641, 10654, 10663, 10674, 10687, 10698, 0}, {10585, 10596, 10607, 10616, 10627, 10634, 10641, 10654, 10663, 10674, 10687, 10698, 0}, {10585, 10596, 10607, 10616, 10627, 10634, 10641, 10654, 10663, 10674, 10687, 10698, 0}, 0, 0, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1, 1929, 1932, {10723, 10730, 10736, 10743, 10748, 10754, 10760}, {10766, 10770, 10774, 10778, 10782, 10786, 10790}, {2428, 2023, 2023, 10794, 4442, 3987, 2023}, {10796, 10804, 10813, 2696, 10819, 2706, 2711, 10823, 2723, 2733, 2741, 10831, 0}, {10796, 10804, 10813, 2696, 10819, 2706, 2711, 10823, 2723, 2733, 2741, 10831, 0}, {2759, 2763, 3761, 2772, 10819, 2776, 2780, 10840, 2788, 2792, 2796, 10844, 0}, {2759, 2763, 3761, 2772, 10819, 2776, 2780, 10840, 2788, 2792, 2796, 10844, 0}, 0, 0, 185, 187, {198,189,1128,0,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 10848, 10853, {10858, 10871, 10890, 10907, 10920, 10933, 10950}, {10963, 8775, 8780, 8785, 8790, 8795, 8800}, {10968, 8808, 8805, 8811, 8814, 8808, 8811}, {10971, 10984, 10995, 11012, 11027, 11042, 11057, 11070, 11085, 11102, 11117, 11134, 0}, {11149, 11160, 11173, 11188, 11201, 11214, 11227, 11238, 11251, 11266, 11279, 11298, 0}, {11311, 11318, 11325, 11332, 11339, 11346, 11353, 11360, 11367, 11374, 11381, 11388, 0}, {11311, 11318, 11325, 11332, 11339, 11346, 11353, 11360, 11367, 11374, 11381, 11388, 0}, 0, 1, 691, 187, {1156,1167,1692,0,0,0,0,0,0,0,0,0,0,0},{11395,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{11413,0,0,0,0,0,0,0}},
+       {289, 11429, 11442, {11455, 11470, 11491, 11506, 11519, 11532, 10950}, {421, 426, 11547, 436, 11552, 446, 451}, {456, 459, 11557, 465, 468, 459, 465}, {11560, 11577, 11586, 11601, 521, 11618, 11633, 11646, 11661, 11678, 11699, 11716, 0}, {11731, 11748, 11761, 11778, 9017, 11797, 11812, 11825, 11838, 11853, 11876, 11895, 0}, {11908, 11915, 11922, 11929, 521, 11936, 11943, 11950, 11957, 11964, 11971, 11978, 0}, {11908, 11915, 11922, 11929, 521, 11936, 11943, 11950, 11957, 11964, 11971, 11978, 0}, 0, 0, 691, 187, {1167,0,0,0,0,0,0,0,0,0,0,0,0,0},{1242,0,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1921, 11985, 11990, {11995, 12003, 12014, 12020, 12026, 12035, 1985}, {9246, 9250, 2415, 12041, 9262, 9267, 12045}, {9275, 9277, 12049, 9281, 9283, 9277, 9281}, {2438, 2445, 9672, 2459, 2465, 12051, 12057, 12063, 2486, 2496, 2504, 2513, 0}, {2438, 2445, 9672, 2459, 2465, 12051, 12057, 12063, 2486, 2496, 2504, 2513, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {4753,4762,2266,1156,12074,1167,9806,0,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {12084, 12093, 12098, {12103, 12114, 12125, 12136, 12147, 12158, 12164}, {2018, 9924, 2430, 4442, 2016, 10794, 2436}, {2018, 9924, 2430, 4442, 2016, 10794, 2436}, {12173, 12181, 12190, 12197, 4898, 12204, 12210, 2479, 2486, 12216, 2504, 12225, 0}, {12173, 12181, 12190, 12197, 4898, 12204, 12210, 2479, 2486, 12216, 2504, 12225, 0}, {12235, 12240, 12190, 2534, 4898, 12204, 12210, 2546, 12246, 2554, 2558, 12251, 0}, {12235, 12240, 12190, 2534, 4898, 12204, 12210, 2546, 12246, 2554, 2558, 12251, 0}, 2, 1, 691, 187, {7519,1156,1167,1692,0,0,0,0,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1921, 12256, 12273, {12287, 12298, 12308, 12317, 12328, 12340, 12351}, {12361, 12364, 12367, 12370, 12373, 12376, 12379}, {2023, 2018, 2432, 2430, 7736, 2018, 2023}, {12382, 12392, 12403, 12409, 12418, 12424, 12432, 12440, 12448, 12459, 12468, 12478, 0}, {12488, 12498, 2453, 12509, 12518, 12524, 12532, 12540, 12548, 12559, 12568, 12578, 0}, {12588, 12594, 12403, 12600, 12418, 12605, 12611, 12617, 4190, 12622, 4201, 12627, 0}, {12588, 12594, 12403, 12600, 12418, 12605, 12611, 12617, 4190, 12622, 4201, 12627, 0}, 0, 1, 691, 187, {9517,9539,12632,0,0,0,0,0,0,0,0,0,0,0},{12644,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{12671,0,0,0,0,0,0,0}},
+       {12689, 12701, 11990, {12707, 12719, 12731, 12743, 12757, 12772, 12785}, {12799, 12802, 12805, 12808, 12811, 12814, 9660}, {2023, 2018, 12817, 2430, 4442, 2018, 9669}, {12819, 12826, 12834, 12840, 12849, 12858, 12868, 12874, 12885, 12895, 12902, 12912, 0}, {12819, 12826, 12834, 12840, 12849, 12858, 12868, 12874, 12885, 12895, 12902, 12912, 0}, {12920, 12926, 12931, 12936, 12941, 12946, 12953, 12959, 12965, 12971, 12977, 12984, 0}, {12920, 12926, 12931, 12936, 12941, 12946, 12953, 12959, 12965, 12971, 12977, 12984, 0}, 2, 1, 2566, 187, {1692,2568,0,0,0,0,0,0,0,0,0,0,0,0},{12991,0,0,0,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{13013,0,0,0,0,0,0,0}},
+       {1, 13028, 13040, {13052, 13067, 13082, 13097, 13114, 13133, 13144}, {13155, 13162, 13169, 13176, 13183, 13190, 13197}, {0, 0, 0, 0, 0, 0, 0}, {13204, 13215, 8845, 13228, 8867, 13239, 13246, 8892, 13253, 13268, 13281, 13292, 0}, {13204, 13215, 8845, 13228, 8867, 13239, 13246, 8892, 13253, 13268, 13281, 13292, 0}, {13305, 13312, 13319, 13326, 8867, 13239, 13246, 13333, 13340, 13347, 13354, 13361, 0}, {13305, 13312, 13319, 13326, 8867, 13239, 13246, 13333, 13340, 13347, 13354, 13361, 0}, 0, 0, 691, 187, {1156,1167,4762,1128,189,0,0,0,0,0,0,0,0,0},{13368,13386,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 13405, 13425, {13442, 13455, 13468, 13484, 13501, 13516, 13525}, {13442, 13455, 13468, 13484, 13501, 13516, 13525}, {13534, 13537, 13540, 13543, 13546, 13549, 13552}, {13555, 13568, 13579, 13588, 13599, 13604, 13613, 13624, 13631, 13646, 13657, 13670, 0}, {13683, 13698, 13579, 13588, 13711, 13604, 13718, 13624, 13631, 13646, 13657, 13670, 0}, {13555, 13568, 13579, 13588, 13599, 13604, 13613, 13624, 13631, 13646, 13657, 13670, 0}, {13555, 13568, 13579, 13588, 13599, 13604, 13613, 13624, 13631, 13646, 13657, 13670, 0}, 0, 6, 185, 187, {198,189,0,0,0,0,0,0,0,0,0,0,0,0},{13731,5505,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1, 13750, 13753, {13756, 13769, 13779, 13788, 13798, 13809, 13820}, {13832, 13835, 13840, 13845, 13850, 13855, 13860}, {13832, 13865, 13868, 13871, 13874, 13877, 13880}, {13883, 13892, 13901, 13910, 13919, 13928, 13937, 13946, 13955, 13964, 13974, 13984, 0}, {13994, 14003, 14012, 14021, 14030, 14039, 14048, 14057, 14066, 14075, 14085, 14095, 0}, {14105, 14111, 14117, 14123, 14129, 14135, 14141, 14147, 14153, 14159, 14166, 14173, 0}, {14105, 14111, 14117, 14123, 14129, 14135, 14141, 14147, 14153, 14159, 14166, 14173, 0}, 0, 1, 185, 187, {198,189,1139,1128,1692,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 14180, 14204, {14228, 14241, 14262, 14281, 14302, 14321, 14334}, {14345, 14352, 14359, 14366, 14373, 14380, 14387}, {14394, 14397, 14397, 14400, 14403, 14406, 14411}, {14414, 14429, 14444, 14453, 14464, 14475, 14488, 14501, 14516, 14535, 14554, 14571, 0}, {14590, 14607, 14624, 14635, 14648, 14661, 14676, 14691, 14708, 14729, 14750, 14769, 0}, {14790, 14797, 14804, 14811, 14818, 14825, 14832, 14839, 14846, 14853, 14860, 14867, 0}, {14790, 14797, 14804, 14811, 14818, 14825, 14832, 14839, 14846, 14853, 14860, 14867, 0}, 0, 1, 691, 187, {1156,1167,9796,198,14874,3582,1692,0,0,0,0,0,0,0},{3870,1207,13731,5505,14885,14896,14908,14925,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {14943, 14949, 14963, 14986, 15000, 15016, 15023}, {15032, 15035, 15040, 15046, 15050, 7736, 15055}, {6617, 6605, 6607, 6609, 6611, 6613, 6615}, {15059, 15066, 10332, 15073, 3730, 15079, 15085, 15091, 15098, 15107, 15115, 15122, 0}, {15129, 15136, 15143, 15148, 15154, 15158, 15163, 15168, 15175, 15184, 15192, 15199, 0}, {15206, 8135, 2530, 2534, 15154, 15210, 15214, 15218, 15222, 2554, 15226, 15230, 0}, {15206, 8135, 2530, 2534, 15154, 15210, 15214, 15218, 15222, 2554, 15226, 15230, 0}, 0, 0, 691, 187, {1156,1167,4762,189,1692,0,0,0,0,0,0,0,0,0},{15234,0,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {15256, 1929, 1932, {15271, 15279, 15290, 15300, 15311, 15320, 15329}, {15339, 15343, 15347, 15351, 15355, 15359, 15363}, {15367, 12817, 12817, 12817, 2432, 2432, 2436}, {15369, 15379, 15387, 15395, 15403, 15411, 15418, 15426, 15434, 15441, 15447, 15454, 0}, {15462, 15473, 15482, 15491, 15500, 15509, 15517, 15526, 15535, 15543, 15550, 15558, 0}, {15567, 15572, 4845, 15577, 15582, 15587, 15592, 15597, 15602, 15607, 15612, 15617, 0}, {15567, 15572, 4845, 15577, 15582, 15587, 15592, 15597, 15602, 15607, 15612, 15617, 0}, 2, 1, 185, 187, {1681,1692,0,0,0,0,0,0,0,0,0,0,0,0},{15622,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{15655,0,0,0,0,0,0,0}},
+       {289, 15672, 15693, {15710, 331, 352, 8714, 15723, 15740, 15751}, {15764, 15772, 15780, 15786, 15794, 15802, 15810}, {456, 459, 462, 465, 468, 459, 465}, {15818, 484, 501, 510, 15833, 15840, 15849, 542, 555, 574, 591, 606, 0}, {15818, 484, 501, 510, 15833, 15840, 15849, 542, 555, 574, 591, 606, 0}, {15858, 15866, 15874, 639, 15833, 15882, 15890, 647, 655, 665, 673, 683, 0}, {15858, 15866, 15874, 639, 15833, 15882, 15890, 647, 655, 665, 673, 683, 0}, 0, 1, 691, 187, {1156,1167,15898,0,0,0,0,0,0,0,0,0,0,0},{13731,0,0,0,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 0, 0, {15915, 15922, 15933, 15942, 15951, 15958, 15969}, {15979, 15983, 15987, 15991, 15995, 15998, 16002}, {0, 0, 0, 0, 0, 0, 0}, {16006, 16016, 16025, 16033, 16042, 16055, 16067, 16074, 16081, 16088, 16098, 16110, 0}, {16006, 16016, 16025, 16033, 16042, 16055, 16067, 16074, 16081, 16088, 16098, 16110, 0}, {16123, 16127, 16131, 16135, 16139, 16143, 16147, 16151, 16155, 16159, 16163, 16167, 0}, {16123, 16127, 16131, 16135, 16139, 16143, 16147, 16151, 16155, 16159, 16163, 16167, 0}, 0, 0, 185, 187, {189,1681,1735,1692,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 0, 0, {16171, 16176, 16182, 16192, 16204, 16212, 16223}, {16232, 16236, 16240, 16244, 16248, 16252, 16256}, {0, 0, 0, 0, 0, 0, 0}, {16260, 16270, 16280, 16287, 16294, 2706, 16299, 16306, 16313, 16322, 16330, 16338, 0}, {16260, 16270, 16280, 16287, 16294, 2706, 16299, 16306, 16313, 16322, 16330, 16338, 0}, {2759, 2763, 16002, 16346, 16350, 2776, 2780, 16354, 2788, 2792, 2796, 16358, 0}, {2759, 2763, 16002, 16346, 16350, 2776, 2780, 16354, 2788, 2792, 2796, 16358, 0}, 0, 0, 185, 187, {1681,1735,1692,0,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {16362, 16368, 16379, 16192, 16204, 16212, 16223}, {16389, 16393, 16397, 16244, 16248, 16252, 16256}, {2023, 2428, 16401, 2430, 2023, 5694, 2428}, {16403, 16413, 16424, 16431, 16440, 16446, 16452, 16460, 16468, 16479, 16489, 16498, 0}, {16507, 16270, 16516, 16522, 16294, 2706, 16299, 16306, 16529, 16322, 16330, 16338, 0}, {2759, 2763, 16539, 2772, 16350, 2776, 2780, 16354, 2788, 2792, 2796, 16358, 0}, {2759, 2763, 16539, 2772, 16350, 2776, 2780, 16354, 2788, 2792, 2796, 16358, 0}, 0, 0, 2566, 187, {1128,1139,189,1681,1735,1692,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 16543, 16547, {16551, 16558, 16566, 16574, 16583, 16593, 16600}, {2652, 16609, 2658, 16612, 2664, 16615, 2670}, {2023, 2428, 2673, 3705, 2673, 3989, 2023}, {16618, 16627, 16637, 2696, 10819, 16643, 16649, 16655, 2723, 2733, 2741, 10831, 0}, {16618, 16627, 16637, 2696, 10819, 16643, 16649, 16655, 2723, 2733, 2741, 10831, 0}, {2759, 2763, 3761, 2772, 10819, 2776, 2780, 2784, 2788, 2792, 2796, 10844, 0}, {2759, 2763, 3761, 2772, 10819, 2776, 2780, 2784, 2788, 2792, 2796, 10844, 0}, 0, 0, 185, 187, {1681,1735,1692,16664,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {16676, 16692, 16717, 16745, 16773, 16801, 16829}, {16848, 16858, 16868, 16878, 16888, 16898, 16908}, {16918, 16922, 16926, 16922, 16930, 16934, 16938}, {16942, 16964, 16992, 17008, 17027, 17043, 17062, 17081, 17103, 17134, 17162, 17187, 0}, {16942, 16964, 16992, 17008, 17027, 17043, 17062, 17081, 17103, 17134, 17162, 17187, 0}, {17215, 17225, 17235, 17245, 17255, 17265, 17275, 17285, 17295, 17305, 17315, 17325, 0}, {17215, 17225, 17235, 17245, 17255, 17265, 17275, 17285, 17295, 17305, 17315, 17325, 0}, 0, 1, 691, 187, {1156,1167,7419,1176,4762,4753,1692,0,0,0,0,0,0,0},{17335,17369,17402,3870,17436,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 17448, 17453, {5932, 17458, 17469, 17479, 17489, 17499, 17513}, {17525, 17529, 17534, 17539, 17543, 17548, 17553}, {2023, 2428, 2430, 2428, 5694, 2434, 2436}, {2438, 2445, 4887, 6077, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2438, 2445, 4887, 6077, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, 2, 1, 2566, 187, {1128,1139,1692,0,0,0,0,0,0,0,0,0,0,0},{2300,0,0,0,0,0,0,0,0,0},{251,4288,0,0,0,0,0,0,0,0,0,0},{269,4302,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1, 17557, 17573, {17583, 17602, 17621, 17643, 17662, 17684, 17709}, {17728, 17738, 17748, 17761, 17771, 17784, 17800}, {17810, 17814, 17821, 17828, 17835, 17842, 17849}, {17853, 17869, 17888, 17904, 17923, 17930, 17940, 17956, 17972, 17991, 18013, 18029, 0}, {17853, 17869, 17888, 17904, 17923, 17930, 17940, 17956, 17972, 17991, 18013, 18029, 0}, {18048, 18055, 17888, 18065, 17923, 17930, 18081, 18094, 18101, 18114, 18130, 18140, 0}, {18048, 18055, 17888, 18065, 17923, 17930, 18081, 18094, 18101, 18114, 18130, 18140, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {18153, 18167, 18170, {18173, 18182, 18191, 18201, 18211, 18221, 18233}, {18241, 18246, 18250, 18254, 18258, 18263, 18268}, {18272, 2430, 2430, 9924, 18272, 18275, 2023}, {18278, 18285, 18290, 2696, 18296, 18302, 18309, 18315, 18323, 18333, 18341, 18350, 0}, {18278, 18285, 18290, 2696, 18296, 18302, 18309, 18315, 18323, 18333, 18341, 18350, 0}, {2759, 18360, 3761, 2772, 18364, 18368, 18373, 18377, 18381, 18385, 2796, 18389, 0}, {2759, 18360, 3761, 2772, 18364, 18368, 18373, 18377, 18381, 18385, 2796, 18389, 0}, 0, 0, 185, 187, {198,1692,18394,7410,2277,0,0,0,0,0,0,0,0,0},{18403,18428,10151,0,0,0,0,0,0,0},{251,3594,843,0,0,0,0,0,0,0,0,0},{269,3602,848,3594,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {18447, 18460, 18465, {18470, 18482, 18493, 18507, 18519, 18529, 18539}, {18550, 18555, 18560, 18565, 18570, 18575, 18580}, {2023, 3989, 2428, 6293, 2673, 16401, 2436}, {18585, 18602, 18615, 18629, 18642, 18655, 18668, 18682, 18694, 18708, 18722, 18736, 0}, {18585, 18602, 18615, 18629, 18642, 18655, 18668, 18682, 18694, 18708, 18722, 18736, 0}, {18749, 18756, 18761, 18766, 18770, 18775, 18780, 18785, 18790, 18797, 18802, 18808, 0}, {18749, 18756, 18761, 18766, 18770, 18775, 18780, 18785, 18790, 18797, 18802, 18808, 0}, 2, 1, 691, 187, {1156,1167,4762,1692,0,0,0,0,0,0,0,0,0,0},{18813,18837,0,0,0,0,0,0,0,0},{251,843,4288,0,0,0,0,0,0,0,0,0},{269,848,4302,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 7281, 7286, {18855, 18869, 18879, 18890, 18904, 18915, 18926}, {18939, 18944, 18949, 18956, 18962, 18968, 18974}, {2673, 2436, 2428, 7736, 2673, 12817, 2023}, {18979, 18987, 18995, 19002, 19011, 19021, 19031, 19037, 19045, 19060, 19078, 19086, 0}, {18979, 18987, 18995, 19002, 19011, 19021, 19031, 19037, 19045, 19060, 19078, 19086, 0}, {19094, 19098, 18995, 19104, 19108, 19113, 19031, 19119, 19124, 19131, 19138, 19143, 0}, {19094, 19098, 18995, 19104, 19108, 19113, 19031, 19119, 19124, 19131, 19138, 19143, 0}, 2, 0, 185, 187, {198,189,2286,4762,1692,0,0,0,0,0,0,0,0,0},{1242,5505,10151,8579,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1, 19148, 19151, {19155, 19160, 10736, 10743, 19166, 19173, 10760}, {19180, 19184, 10774, 10778, 19188, 10786, 10790}, {12817, 15367, 2023, 10794, 4442, 3987, 2023}, {10796, 10804, 19192, 2696, 10819, 2776, 19196, 19202, 2723, 2733, 2741, 19207, 0}, {10796, 10804, 19192, 2696, 10819, 2776, 19196, 19202, 2723, 2733, 2741, 19207, 0}, {2759, 2763, 19192, 2772, 10819, 2776, 2780, 19216, 2788, 2792, 2796, 16358, 0}, {2759, 2763, 19192, 2772, 10819, 2776, 2780, 19216, 2788, 2792, 2796, 16358, 0}, 0, 0, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 19220, 19242, {19266, 19281, 19298, 19315, 19332, 19349, 19358}, {19369, 19375, 19381, 19387, 19393, 19399, 19405}, {19411, 19414, 8811, 8811, 19417, 19411, 8811}, {19420, 19433, 19444, 19457, 19468, 19479, 19492, 19503, 19514, 19531, 19542, 19555, 0}, {19420, 19433, 19444, 19457, 19468, 19479, 19492, 19503, 19514, 19531, 19542, 19555, 0}, {19574, 19582, 19590, 19598, 19606, 19614, 19622, 19630, 19638, 19646, 19654, 19662, 0}, {19574, 19582, 19590, 19598, 19606, 19614, 19622, 19630, 19638, 19646, 19654, 19662, 0}, 0, 0, 2566, 187, {6488,0,0,0,0,0,0,0,0,0,0,0,0,0},{19672,19690,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {19709, 19718, 19744, {19772, 19779, 19786, 19793, 19800, 19807, 19814}, {19772, 19779, 19786, 19793, 19800, 19807, 19814}, {19411, 19414, 19821, 19821, 19417, 19411, 19824}, {19827, 19840, 501, 19855, 521, 19868, 19877, 542, 19886, 19903, 19918, 19931, 0}, {19827, 19840, 501, 19855, 521, 19868, 19877, 542, 19886, 19903, 19918, 19931, 0}, {19946, 15866, 15874, 639, 521, 19954, 19962, 647, 19970, 665, 19978, 683, 0}, {19946, 15866, 15874, 639, 521, 19954, 19962, 647, 19970, 665, 19978, 683, 0}, 0, 0, 2566, 187, {19986,0,0,0,0,0,0,0,0,0,0,0,0,0},{19995,0,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{20016,0,0,0,0,0,0,0}},
+       {20032, 1929, 1932, {20040, 20049, 20058, 20066, 20075, 20084, 20091}, {20100, 20103, 20106, 20109, 20112, 20116, 20119}, {6607, 6609, 6611, 6613, 12817, 15367, 6605}, {10796, 10804, 20122, 20128, 10819, 2706, 19196, 20135, 16313, 20142, 16330, 20149, 0}, {10796, 10804, 20122, 20128, 10819, 2706, 19196, 20135, 16313, 20142, 16330, 20149, 0}, {2759, 2763, 19192, 2772, 10819, 2776, 2780, 20157, 2788, 2792, 2796, 10844, 0}, {2759, 2763, 19192, 2772, 10819, 2776, 2780, 20157, 2788, 2792, 2796, 10844, 0}, 0, 0, 185, 187, {3773,3782,3789,3798,1735,1692,3809,0,0,0,0,0,0,0},{20161,20181,222,10709,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {20195, 1929, 1932, {20202, 20212, 20221, 20230, 20241, 20251, 20256}, {20263, 20269, 20274, 20279, 20284, 10786, 20288}, {20293, 2673, 2023, 7736, 2018, 3987, 2023}, {15059, 15066, 10332, 15073, 3730, 20295, 20300, 20305, 15098, 15107, 15115, 15122, 0}, {15059, 15066, 10332, 15073, 3730, 20295, 20300, 20305, 15098, 15107, 15115, 15122, 0}, {20312, 20317, 3761, 2772, 3730, 20295, 20300, 20321, 10770, 2792, 20325, 20330, 0}, {20312, 20317, 3761, 2772, 3730, 20295, 20300, 20321, 10770, 2792, 20325, 20330, 0}, 0, 0, 691, 187, {1156,0,0,0,0,0,0,0,0,0,0,0,0,0},{20334,1242,5505,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 20352, 20380, {20402, 20421, 20440, 20465, 20484, 20518, 20543}, {20562, 20572, 20582, 20598, 20608, 20633, 20649}, {20659, 20663, 20670, 20674, 20681, 20688, 20695}, {20699, 20727, 20761, 20777, 20796, 20803, 20813, 20829, 20845, 20876, 20898, 20920, 0}, {20699, 20727, 20761, 20777, 20796, 20803, 20813, 20829, 20845, 20876, 20898, 20920, 0}, {20699, 20727, 20761, 20777, 20796, 20803, 20813, 20829, 20845, 20876, 20898, 20920, 0}, {20699, 20727, 20761, 20777, 20796, 20803, 20813, 20829, 20845, 20876, 20898, 20920, 0}, 0, 1, 2566, 187, {1139,2293,1128,20945,20958,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{4288,2321,20973,20982,0,0,0,0,0,0,0,0},{4302,2337,20990,21002,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1, 1929, 1932, {21013, 21029, 21048, 21070, 21089, 21108, 21136}, {21158, 21166, 21177, 21191, 21202, 21213, 21233}, {21247, 21251, 21258, 21265, 21275, 21282, 21295}, {21302, 21318, 21337, 21350, 21369, 21376, 21386, 21402, 21415, 21431, 21450, 21466, 0}, {21302, 21318, 21337, 21350, 21369, 21376, 21386, 21402, 21415, 21431, 21450, 21466, 0}, {21302, 21318, 21337, 21350, 21369, 21376, 21386, 21402, 21415, 21431, 21450, 21466, 0}, {21302, 21318, 21337, 21350, 21369, 21376, 21386, 21402, 21415, 21431, 21450, 21466, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{10460,1242,0,0,0,0,0,0,0,0},{1866,1858,843,251,0,0,0,0,0,0,0,0},{1886,1875,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1, 1929, 1932, {21482, 21501, 21520, 21542, 21561, 21583, 21608}, {21627, 21637, 21647, 21660, 21670, 21683, 21699}, {21709, 21713, 21720, 21727, 21734, 21741, 21748}, {21752, 21780, 21808, 21824, 21843, 21850, 21860, 21876, 21892, 21920, 21942, 21964, 0}, {21752, 21780, 21808, 21824, 21843, 21850, 21860, 21876, 21892, 21920, 21942, 21964, 0}, {21989, 22008, 21808, 21824, 21843, 21850, 21860, 22027, 22034, 22050, 22066, 22076, 0}, {21989, 22008, 21808, 21824, 21843, 21850, 21860, 22027, 22034, 22050, 22066, 22076, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1, 8151, 22089, {22092, 22111, 22130, 22155, 22174, 22196, 22221}, {22240, 22250, 22260, 22276, 22286, 22299, 22315}, {22325, 22329, 22336, 22340, 22347, 22354, 22361}, {22365, 22387, 22418, 22440, 22459, 22466, 22476, 22492, 22508, 22539, 22561, 22583, 0}, {22365, 22387, 22418, 22440, 22459, 22466, 22476, 22492, 22508, 22539, 22561, 22583, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {289, 22608, 22633, {22658, 22677, 22699, 22724, 22740, 22762, 22781}, {22791, 22798, 22805, 22812, 22819, 22826, 22833}, {22791, 22798, 22805, 22812, 22819, 22826, 22833}, {22837, 22853, 22878, 22897, 22916, 22923, 22936, 22949, 22968, 22999, 23024, 23046, 0}, {22837, 22853, 22878, 22897, 22916, 22923, 22936, 23071, 22968, 22999, 23024, 23046, 0}, {23090, 23098, 23112, 23126, 22916, 22923, 22936, 23137, 23145, 23159, 23170, 23178, 0}, {23090, 23098, 23112, 23126, 22916, 22923, 22936, 23137, 23145, 23159, 23170, 23178, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {3613, 1929, 1932, {23189, 23211, 23233, 23258, 23280, 23305, 23333}, {23355, 23365, 23375, 23388, 23398, 23411, 23427}, {23437, 23441, 23448, 23452, 23459, 23466, 23473}, {23477, 23493, 23518, 23537, 23559, 23566, 23579, 23592, 23611, 23642, 23667, 23686, 0}, {23477, 23493, 23518, 23537, 23559, 23566, 23711, 23592, 23611, 23642, 23667, 23686, 0}, {23724, 23731, 23518, 23747, 23559, 23566, 23711, 23592, 23763, 23785, 23801, 23811, 0}, {23724, 23731, 23518, 23747, 23559, 23566, 23711, 23592, 23763, 23785, 23801, 23811, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {3613, 1929, 1932, {23827, 23846, 23865, 23887, 23906, 23928, 23953}, {23972, 23982, 23992, 24005, 24015, 24028, 24044}, {24054, 24058, 24065, 24072, 24079, 24086, 24093}, {24097, 24113, 24138, 24157, 24179, 24186, 24199, 24212, 24231, 24259, 24284, 24306, 0}, {24097, 24113, 24138, 24157, 24179, 24186, 24199, 24212, 24231, 24259, 24284, 24306, 0}, {24331, 24339, 24359, 24366, 24179, 24383, 24390, 24398, 24406, 24429, 24446, 24460, 0}, {24331, 24339, 24359, 24366, 24179, 24383, 24390, 24398, 24406, 24429, 24446, 24460, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {20032, 1929, 1932, {24477, 24505, 24539, 24567, 24595, 24626, 24663}, {24691, 24704, 24723, 24739, 24752, 24771, 24790}, {24800, 24807, 24814, 24821, 24828, 24841, 24848}, {24852, 24871, 24899, 24921, 24940, 24953, 24963, 24976, 25001, 25032, 25057, 25073, 0}, {24852, 24871, 24899, 24921, 24940, 24953, 24963, 24976, 25001, 25032, 25057, 25073, 0}, {25092, 25102, 25121, 25131, 24940, 24953, 24963, 25147, 25154, 25179, 25195, 25205, 0}, {25092, 25102, 25121, 25131, 24940, 24953, 24963, 25147, 25154, 25179, 25195, 25205, 0}, 0, 0, 2566, 187, {1139,2293,1167,4762,0,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{4288,2321,20973,20982,0,0,0,0,0,0,0,0},{4302,2337,20990,21002,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {289, 25218, 25246, {25268, 25287, 25306, 25331, 25350, 25384, 25409}, {25428, 20572, 20582, 20598, 25438, 25463, 20649}, {0, 0, 0, 0, 0, 0, 0}, {25479, 25504, 25535, 25551, 20796, 20803, 20813, 25570, 25586, 25617, 25639, 25661, 0}, {25479, 25504, 25535, 25551, 20796, 20803, 20813, 25570, 25586, 25617, 25639, 25661, 0}, {25686, 25699, 25535, 25551, 20796, 20803, 20813, 25718, 25725, 25741, 25757, 25767, 0}, {25686, 25699, 25535, 25551, 20796, 20803, 20813, 25718, 25725, 25741, 25757, 25767, 0}, 0, 0, 2566, 187, {1128,0,0,0,0,0,0,0,0,0,0,0,0,0},{25780,0,0,0,0,0,0,0,0,0},{1858,1866,0,0,0,0,0,0,0,0,0,0},{1875,1886,0,0,0,0,0,0,0},{25799,25807,0,0,0,0,0,0}},
+       {1, 1929, 1932, {17583, 17602, 25817, 17643, 17662, 17684, 17709}, {17728, 17738, 25839, 17761, 17771, 17784, 17800}, {17810, 17814, 17821, 17828, 17835, 17842, 17849}, {25852, 25877, 17888, 25908, 25927, 17930, 25934, 25947, 25963, 25988, 26010, 26038, 0}, {25852, 25877, 17888, 25908, 25927, 17930, 25934, 25947, 25963, 25988, 26010, 26038, 0}, {26060, 26073, 17888, 26092, 25927, 17930, 25934, 26108, 26115, 26134, 26150, 26172, 0}, {26060, 26073, 17888, 26092, 25927, 17930, 25934, 26108, 26115, 26134, 26150, 26172, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {5619, 26188, 26193, {26198, 26205, 26216, 26229, 26242, 26253, 26266}, {26277, 26282, 26287, 26292, 26297, 26302, 26307}, {6605, 6607, 6609, 6611, 6613, 6615, 6617}, {26312, 26338, 26366, 26396, 26426, 26452, 26482, 26508, 26536, 26560, 26588, 26625, 0}, {26312, 26338, 26366, 26396, 26426, 26452, 26482, 26508, 26536, 26560, 26588, 26625, 0}, {26664, 26676, 26688, 26700, 26712, 26724, 26736, 26748, 26760, 26772, 26785, 26798, 0}, {26664, 26676, 26688, 26700, 26712, 26724, 26736, 26748, 26760, 26772, 26785, 26798, 0}, 0, 0, 2566, 187, {1692,0,0,0,0,0,0,0,0,0,0,0,0,0},{26811,26865,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{26901,0,0,0,0,0,0,0}},
+       {26920, 26944, 26966, {26991, 27019, 27047, 27084, 27115, 27149, 27174}, {27208, 27224, 27240, 27265, 27284, 27306, 27319}, {27341, 27348, 27355, 27362, 27369, 27376, 27380}, {27390, 27424, 27461, 27495, 27529, 27560, 27597, 27634, 27674, 27708, 27742, 27791, 0}, {27390, 27424, 27461, 27495, 27529, 27560, 27597, 27634, 27674, 27708, 27742, 27791, 0}, {27840, 27853, 27866, 27879, 27892, 27905, 27918, 27931, 27944, 27957, 27973, 27989, 0}, {27840, 27853, 27866, 27879, 27892, 27905, 27918, 27931, 27944, 27957, 27973, 27989, 0}, 0, 0, 185, 187, {1654,1663,1672,1703,1692,1681,1721,1714,1728,0,0,0,0,0},{28005,28048,28096,28128,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{28165,1914,0,0,0,0,0,0}},
+       {289, 1929, 1932, {28198, 28207, 28217, 28229, 28242, 28251, 28263}, {28275, 28279, 28284, 28288, 28292, 28296, 28300}, {2023, 28304, 2428, 2428, 15367, 6293, 2023}, {28307, 28314, 28323, 28330, 2702, 28337, 28345, 28356, 28361, 28366, 28373, 28382, 0}, {28307, 28314, 28323, 28330, 2702, 28337, 28345, 28356, 28361, 28366, 28373, 28382, 0}, {28390, 28394, 28284, 28398, 2702, 28402, 28406, 28356, 28361, 28410, 28414, 28419, 0}, {28390, 28394, 28284, 28398, 2702, 28402, 28406, 28356, 28361, 28410, 28414, 28419, 0}, 2, 1, 185, 187, {189,198,5002,8579,0,0,0,0,0,0,0,0,0,0},{1242,1207,0,0,0,0,0,0,0,0},{251,843,242,3594,0,0,0,0,0,0,0,0},{269,848,257,3602,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 28424, 28440, {28456, 28478, 28491, 28510, 28520, 28551, 28567}, {28456, 28478, 28491, 28510, 28520, 28551, 28567}, {6605, 6607, 6609, 6611, 6613, 6615, 6617}, {28580, 28593, 28612, 28625, 28638, 28651, 28670, 28689, 28702, 28718, 28731, 28756, 0}, {28580, 28593, 28612, 28625, 28638, 28651, 28670, 28689, 28702, 28718, 28731, 28756, 0}, {28580, 28593, 28612, 28625, 28638, 28651, 28670, 28689, 28702, 28718, 28731, 28756, 0}, {28580, 28593, 28612, 28625, 28638, 28651, 28670, 28689, 28702, 28718, 28731, 28756, 0}, 0, 0, 185, 187, {189,1692,0,0,0,0,0,0,0,0,0,0,0,0},{1242,10163,0,0,0,0,0,0,0,0},{843,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{28769,0,0,0,0,0,0,0}},
+       {289, 28804, 28829, {28854, 28879, 28898, 28926, 28945, 28970, 28989}, {28854, 28879, 28898, 28926, 28945, 28970, 28989}, {29011, 29015, 29019, 29023, 29033, 29037, 29047}, {29051, 29070, 29086, 29099, 29112, 29134, 29153, 29175, 29191, 29207, 29220, 29236, 0}, {29051, 29070, 29086, 29099, 29112, 29134, 29153, 29175, 29191, 29207, 29220, 29236, 0}, {29252, 29261, 29270, 29279, 29288, 29297, 29309, 29318, 29327, 29336, 29345, 29354, 0}, {29252, 29261, 29270, 29279, 29288, 29297, 29309, 29318, 29327, 29336, 29345, 29354, 0}, 0, 0, 185, 187, {198,29363,6480,0,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {3883, 7281, 7286, {3895, 29373, 3909, 29378, 29388, 29394, 3942}, {29401, 8413, 3761, 29405, 29410, 29414, 29418}, {2673, 2436, 2428, 2428, 29423, 3989, 2023}, {29425, 29433, 4005, 4011, 29442, 29447, 29453, 4034, 29459, 29468, 29476, 29485, 0}, {29494, 29502, 4094, 1012, 8083, 29511, 29517, 4117, 8100, 8109, 8117, 29523, 0}, {29532, 2763, 3761, 29536, 2702, 29540, 29545, 20157, 18381, 29549, 2796, 3769, 0}, {29532, 2763, 3761, 29536, 2702, 29540, 29545, 20157, 18381, 29549, 2796, 3769, 0}, 2, 1, 185, 187, {198,189,1120,2286,1139,1167,1692,0,0,0,0,0,0,0},{29553,4239,4266,1242,0,0,0,0,0,0},{843,251,242,29582,0,0,0,0,0,0,0,0},{848,269,257,29594,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {1, 29614, 29626, {29638, 17602, 29666, 17643, 17662, 17684, 17709}, {17728, 17738, 25839, 17761, 17771, 17784, 17800}, {0, 0, 0, 0, 0, 0, 0}, {25852, 25877, 17888, 25908, 25927, 17930, 25934, 29685, 29701, 29729, 26010, 26038, 0}, {25852, 25877, 17888, 25908, 25927, 17930, 25934, 29685, 29701, 29729, 26010, 26038, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {20032, 29751, 29763, {29772, 29788, 29804, 29832, 29848, 29891, 29916}, {29772, 29788, 29944, 29832, 29954, 29976, 29989}, {29999, 30003, 30007, 30011, 30015, 30028, 30035}, {30042, 30061, 30086, 30105, 30130, 30143, 30156, 30169, 30191, 30225, 30250, 30278, 0}, {30042, 30061, 30086, 30105, 30130, 30143, 30156, 30169, 30191, 30225, 30250, 30278, 0}, {30306, 30313, 30323, 30105, 30130, 30143, 30156, 30336, 30346, 30359, 30369, 30382, 0}, {30306, 30313, 30323, 30105, 30130, 30143, 30156, 30336, 30346, 30359, 30369, 30382, 0}, 0, 1, 2566, 187, {1692,1681,1735,198,189,0,0,0,0,0,0,0,0,0},{30395,0,0,0,0,0,0,0,0,0},{1858,1866,843,251,0,0,0,0,0,0,0,0},{1875,1886,848,269,0,0,0,0,0},{30443,0,0,0,0,0,0,0}},
+       {30453, 30469, 30479, {30492, 30502, 30509, 30522, 30532, 30542, 30552}, {30492, 30502, 30562, 30522, 30532, 30542, 30552}, {30572, 30576, 30580, 30584, 30588, 30592, 30596}, {30600, 30616, 30632, 30642, 30655, 30662, 30669, 30679, 30692, 30711, 30727, 30743, 0}, {30600, 30616, 30632, 30642, 30655, 30662, 30669, 30679, 30692, 30759, 30727, 30743, 0}, {30778, 30788, 30632, 30798, 30655, 30662, 30669, 30808, 30818, 30828, 30838, 30848, 0}, {30778, 30788, 30632, 30798, 30655, 30662, 30669, 30808, 30818, 30828, 30838, 30848, 0}, 0, 0, 185, 187, {2277,1692,0,0,0,0,0,0,0,0,0,0,0,0},{30858,0,0,0,0,0,0,0,0,0},{3594,0,0,0,0,0,0,0,0,0,0,0},{3602,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 30890, 30900, {30913, 30920, 30926, 30933, 30939, 30945, 30953}, {30963, 30967, 30971, 30975, 30979, 30983, 30987}, {12817, 12817, 12817, 12817, 12817, 12817, 12817}, {30993, 31002, 31011, 31016, 31022, 31028, 31034, 31041, 31047, 31056, 31065, 31073, 0}, {30993, 31002, 31011, 31016, 31022, 31028, 31034, 31041, 31047, 31056, 31065, 31073, 0}, {31082, 31086, 3761, 31090, 3730, 31094, 31098, 31102, 31107, 31111, 31117, 31121, 0}, {31082, 31086, 3761, 31090, 3730, 31094, 31098, 31102, 31107, 31111, 31117, 31121, 0}, 0, 0, 2566, 187, {1128,1139,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1, 31125, 31166, {31207, 31226, 31245, 31270, 31289, 31311, 31336}, {31355, 17738, 31365, 17761, 31381, 17784, 17800}, {31394, 17814, 31398, 17828, 31402, 17842, 17849}, {17853, 31409, 17888, 31437, 25927, 31456, 17940, 31466, 31482, 31513, 31535, 31560, 0}, {17853, 31409, 17888, 31437, 25927, 31456, 17940, 31466, 31482, 31513, 31535, 31560, 0}, {17853, 31409, 17888, 31437, 25927, 31456, 17940, 31466, 31482, 31513, 31535, 31560, 0}, {17853, 31409, 17888, 31437, 25927, 31456, 17940, 31466, 31482, 31513, 31535, 31560, 0}, 0, 0, 185, 187, {3773,3782,3789,3798,1735,1692,3809,0,0,0,0,0,0,0},{20161,20181,222,10709,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{25807,0,0,0,0,0,0,0}},
+       {289, 0, 0, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {31585, 31592, 31601, 31616, 31627, 31636, 31643, 31650, 31657, 31668, 31681, 31694, 0}, {31585, 31592, 31601, 31616, 31627, 31636, 31643, 31650, 31657, 31668, 31681, 31694, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 6, 185, 187, {1654,1692,0,0,0,0,0,0,0,0,0,0,0,0},{31699,31720,0,0,0,0,0,0,0,0},{3594,843,0,0,0,0,0,0,0,0,0,0},{3602,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {31735, 1929, 1932, {31741, 31748, 31754, 31761, 31772, 31780, 31789}, {31796, 8413, 3761, 31800, 31804, 31808, 10790}, {2436, 2436, 2428, 2428, 5694, 16401, 2023}, {3991, 31812, 31820, 4011, 4017, 31826, 31832, 4034, 31838, 31848, 31856, 31866, 0}, {3991, 31812, 31820, 4011, 4017, 31826, 31832, 4034, 31838, 31848, 31856, 31866, 0}, {31876, 31880, 3761, 29536, 3730, 31884, 31888, 20157, 18381, 2792, 31892, 16358, 0}, {31876, 31880, 3761, 29536, 3730, 31884, 31888, 20157, 18381, 2792, 31892, 16358, 0}, 0, 0, 185, 187, {3773,3782,3789,3798,1735,1692,3809,0,0,0,0,0,0,0},{20161,20181,222,10709,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {289, 0, 0, {31896, 31903, 31911, 31918, 31925, 31933, 31941}, {31948, 31951, 31954, 31957, 31960, 31963, 31966}, {2436, 2436, 2430, 2436, 12817, 3987, 12817}, {31969, 31977, 31987, 31993, 32001, 32006, 32011, 32016, 32023, 20142, 32031, 32039, 0}, {31969, 31977, 31987, 31993, 32001, 32006, 32011, 32016, 32023, 20142, 32031, 32039, 0}, {2759, 32047, 3761, 32051, 3730, 31094, 31098, 32055, 3701, 2792, 32059, 16358, 0}, {2759, 32047, 3761, 32051, 3730, 31094, 31098, 32055, 3701, 2792, 32059, 16358, 0}, 0, 0, 185, 187, {2277,2286,189,198,1735,1692,3809,0,0,0,0,0,0,0},{20161,20181,222,10709,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1, 32063, 32074, {32084, 32102, 32117, 32139, 32152, 32166, 32183}, {32207, 32215, 32220, 32139, 32152, 32232, 32239}, {0, 0, 0, 0, 0, 0, 0}, {32253, 32275, 32291, 32311, 32325, 32342, 32357, 32374, 32388, 32401, 32420, 32434, 0}, {32253, 32275, 32291, 32311, 32325, 32342, 32357, 32374, 32388, 32401, 32420, 32434, 0}, {32453, 32468, 32477, 32490, 32497, 32507, 32515, 32525, 32532, 32538, 32550, 32557, 0}, {32453, 32468, 32477, 32490, 32497, 32507, 32515, 32525, 32532, 32538, 32550, 32557, 0}, 0, 0, 185, 187, {2277,2286,189,198,1735,1692,3809,0,0,0,0,0,0,0},{222,20161,20181,10709,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{25807,0,0,0,0,0,0,0}},
+       {3613, 0, 0, {32569, 32577, 15933, 15942, 15951, 32588, 32598}, {16389, 15983, 15987, 15991, 15995, 16252, 32607}, {0, 0, 0, 0, 0, 0, 0}, {32611, 32620, 32630, 32638, 10819, 3734, 32646, 32652, 32661, 32670, 32679, 32688, 0}, {32611, 32620, 32630, 32638, 10819, 3734, 32646, 32652, 32661, 32670, 32679, 32688, 0}, {2759, 2763, 16002, 32697, 10819, 2776, 2780, 20157, 18381, 2792, 32701, 16358, 0}, {2759, 2763, 16002, 32697, 10819, 2776, 2780, 20157, 18381, 2792, 32701, 16358, 0}, 0, 0, 185, 187, {189,1681,1735,1692,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {32705, 32718, 32723, {32728, 32735, 32750, 32764, 32780, 32795, 32811}, {6289, 32826, 2530, 32830, 32834, 32838, 32842}, {2023, 12817, 2428, 2018, 2023, 2430, 12817}, {7370, 7378, 32846, 32853, 32860, 2469, 2474, 32865, 32875, 32886, 32895, 32905, 0}, {7370, 7378, 32846, 32853, 32860, 2469, 2474, 32865, 32875, 32886, 32895, 32905, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, 0, 0, 2566, 187, {1128,1139,1692,2568,0,0,0,0,0,0,0,0,0,0},{32915,2300,4769,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 32934, 32939, {32944, 32960, 32968, 32976, 32985, 32997, 33007}, {33017, 33023, 33029, 33033, 33037, 33045, 3701}, {0, 0, 0, 0, 0, 0, 0}, {33052, 33065, 33079, 33088, 33094, 33098, 33103, 33111, 16313, 33124, 16330, 16338, 0}, {33052, 33065, 33079, 33088, 33094, 33098, 33103, 33111, 16313, 33124, 16330, 16338, 0}, {33133, 2763, 33137, 16346, 33094, 33141, 2780, 33145, 2788, 33153, 2796, 16358, 0}, {33133, 2763, 33137, 16346, 33094, 33141, 2780, 33145, 2788, 33153, 2796, 16358, 0}, 0, 0, 185, 187, {2277,2286,189,198,1735,1692,3809,0,0,0,0,0,0,0},{20161,20181,222,10709,0,0,0,0,0,0},{2313,0,0,0,0,0,0,0,0,0,0,0},{2326,0,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {33159, 33186, 33193, {33200, 33210, 33220, 33230, 33240, 33250, 33260}, {33270, 33277, 33284, 33291, 33298, 33305, 33312}, {33319, 33323, 33327, 33331, 33335, 33339, 33343}, {33347, 33354, 33361, 33368, 33375, 33382, 33389, 33396, 33403, 33410, 33417, 33427, 0}, {33347, 33354, 33361, 33368, 33375, 33382, 33389, 33396, 33403, 33410, 33417, 33427, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 0, 185, 187, {1654,1663,1672,1703,1692,1681,0,0,0,0,0,0,0,0},{33437,33461,33491,33521,33538,0,0,0,0,0},{1858,843,251,0,0,0,0,0,0,0,0,0},{1875,848,269,0,0,0,0,0,0},{33561,1914,0,0,0,0,0,0}},
+       {289, 0, 0, {28275, 8413, 33578, 33585, 33595, 33600, 33607}, {33614, 6273, 33618, 4850, 33623, 33628, 33633}, {4421, 33638, 33641, 33644, 33647, 33650, 33653}, {33656, 33663, 33578, 33674, 33680, 33684, 33693, 33700, 33705, 33714, 33719, 33722, 0}, {33656, 33663, 33578, 33674, 33680, 33684, 33693, 33700, 33705, 33714, 33719, 33722, 0}, {33728, 33732, 33739, 28398, 33680, 33744, 33749, 33700, 33754, 33714, 33719, 33759, 0}, {33728, 33732, 33739, 28398, 33680, 33744, 33749, 33700, 33754, 33714, 33719, 33759, 0}, 2, 1, 185, 187, {198,189,1167,1139,1692,0,0,0,0,0,0,0,0,0},{4985,5002,1242,0,0,0,0,0,0,0},{251,843,4288,5011,5021,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1921, 33763, 33768, {33773, 33781, 33791, 33801, 33810, 33820, 33828}, {33838, 33842, 33847, 33851, 33855, 33859, 33863}, {2023, 2428, 2673, 2428, 2673, 2434, 2023}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 33867, 33876, 33887, 33896, 33906, 0}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 33867, 33876, 33887, 33896, 33906, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, 0, 0, 185, 187, {198,189,1167,1139,1692,0,0,0,0,0,0,0,0,0},{4985,5002,1242,0,0,0,0,0,0,0},{251,843,4288,5011,5021,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {33916, 33934, 33939, {33944, 33969, 33998, 34023, 34036, 34051, 34068}, {34083, 34088, 34093, 34098, 34103, 34108, 8800}, {19417, 19417, 34113, 8811, 8814, 19417, 8811}, {34116, 34135, 34150, 34172, 34192, 34208, 34224, 34238, 34264, 34288, 34305, 34322, 0}, {34116, 34135, 34150, 34172, 34192, 34208, 34224, 34238, 34264, 34288, 34305, 34322, 0}, {34339, 34348, 34357, 34371, 34385, 34397, 34409, 34419, 34435, 34449, 34456, 34463, 0}, {34339, 34348, 34357, 34371, 34385, 34397, 34409, 34419, 34435, 34449, 34456, 34463, 0}, 0, 1, 691, 187, {1156,4753,1692,34470,34480,0,0,0,0,0,0,0,0,0},{34493,34528,34557,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{34592,0,0,0,0,0,0,0}},
+       {20032, 0, 0, {34608, 34620, 34631, 34643, 34655, 34665, 34677}, {34692, 34697, 34702, 34707, 34712, 34717, 34722}, {0, 0, 0, 0, 0, 0, 0}, {34727, 34736, 34748, 34756, 34761, 34771, 34778, 34787, 34794, 34800, 34809, 34820, 0}, {34727, 34736, 34748, 34756, 34761, 34771, 34778, 34787, 34794, 34800, 34809, 34820, 0}, {34828, 34833, 34838, 34843, 34848, 34853, 34858, 34712, 34863, 34868, 34873, 34878, 0}, {34828, 34833, 34838, 34843, 34848, 34853, 34858, 34712, 34863, 34868, 34873, 34878, 0}, 0, 0, 185, 187, {9796,2286,0,0,0,0,0,0,0,0,0,0,0,0},{34883,1207,0,0,0,0,0,0,0,0},{843,0,0,0,0,0,0,0,0,0,0,0},{848,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 34903, 34905, {34907, 34920, 34928, 34937, 34947, 34957, 34966}, {34978, 34982, 34986, 34990, 34994, 34998, 35002}, {2673, 2436, 2428, 7736, 12817, 5694, 2023}, {35006, 35020, 35031, 35040, 35051, 35063, 35077, 35089, 35102, 35115, 35127, 35140, 0}, {35006, 35020, 35031, 35040, 35051, 35063, 35077, 35089, 35102, 35115, 35127, 35140, 0}, {35154, 35159, 35165, 35171, 35176, 35182, 35188, 35193, 35199, 35204, 19138, 35210, 0}, {35154, 35159, 35165, 35171, 35176, 35182, 35188, 35193, 35199, 35204, 19138, 35210, 0}, 2, 1, 185, 187, {198,189,2286,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,242,3594,0,0,0,0,0,0,0,0},{269,848,257,3602,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
        {1, 0, 0, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {9, 18, 25, 45, 65, 89, 113, 120, 131, 142, 151, 169, 0}, {9, 18, 25, 45, 65, 89, 113, 120, 131, 142, 151, 169, 0}, {9, 18, 25, 45, 65, 89, 113, 120, 131, 142, 151, 169, 0}, {9, 18, 25, 45, 65, 89, 113, 120, 131, 142, 151, 169, 0}, 0, 0, 185, 187, {189,198,0,0,0,0,0,0,0,0,0,0,0,0},{209,222,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
        {289, 296, 307, {318, 331, 352, 367, 378, 397, 408}, {421, 426, 431, 436, 441, 446, 451}, {456, 459, 462, 465, 468, 459, 465}, {471, 484, 501, 510, 521, 528, 535, 542, 555, 574, 591, 606, 0}, {471, 484, 501, 510, 521, 528, 535, 542, 555, 574, 591, 606, 0}, {623, 629, 501, 639, 521, 528, 535, 647, 655, 665, 673, 683, 0}, {623, 629, 501, 639, 521, 528, 535, 647, 655, 665, 673, 683, 0}, 2, 1, 691, 187, {693,708,724,740,0,0,0,0,0,0,0,0,0,0},{757,776,794,819,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{856,0,0,0,0,0,0,0}},
        {289, 872, 878, {884, 893, 901, 909, 918, 925, 935}, {944, 948, 952, 956, 960, 964, 968}, {972, 975, 978, 981, 984, 987, 990}, {993, 999, 1006, 1012, 1018, 1023, 1028, 1035, 1041, 1050, 1058, 1067, 0}, {993, 999, 1006, 1012, 1018, 1023, 1028, 1035, 1041, 1050, 1058, 1067, 0}, {1076, 1081, 1006, 1086, 1018, 1023, 1091, 1096, 1100, 1105, 1110, 1115, 0}, {1076, 1081, 1006, 1086, 1018, 1023, 1091, 1096, 1100, 1105, 1110, 1115, 0}, 2, 1, 185, 187, {198,189,1120,1128,1139,1148,1156,1167,1176,0,0,0,0,0},{1184,1207,1225,1242,1254,1270,0,0,0,0},{843,0,0,0,0,0,0,0,0,0,0,0},{848,0,0,0,0,0,0,0,0},{1286,1301,1311,1320,0,0,0,0}},
-       {1327, 1340, 1347, {1354, 1364, 1374, 1384, 1394, 1404, 1414}, {35236, 35243, 35250, 35257, 35264, 35271, 35278}, {1473, 1477, 1481, 1485, 1489, 1493, 1497}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, 0, 0, 185, 187, {1654,1681,1692,0,0,0,0,0,0,0,0,0,0,0},{1744,6632,1822,35285,0,0,0,0,0,0},{1866,1858,251,843,0,0,0,0,0,0,0,0},{1886,1875,269,848,0,0,0,0,0},{1898,0,0,0,0,0,0,0}},
+       {1327, 1340, 1347, {1354, 1364, 1374, 1384, 1394, 1404, 1414}, {35216, 35223, 35230, 35237, 35244, 35251, 35258}, {1473, 1477, 1481, 1485, 1489, 1493, 1497}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, 0, 0, 185, 187, {1654,1681,1692,0,0,0,0,0,0,0,0,0,0,0},{1744,6632,1822,35265,0,0,0,0,0,0},{1866,1858,251,843,0,0,0,0,0,0,0,0},{1886,1875,269,848,0,0,0,0,0},{1898,0,0,0,0,0,0,0}},
        {1921, 1929, 1932, {1935, 1943, 1953, 1961, 1969, 1978, 1985}, {1992, 1995, 1998, 2002, 2005, 2009, 2013}, {2016, 2018, 2020, 2023, 2025, 2018, 2023}, {2028, 2034, 2040, 2048, 2054, 2062, 2070, 2080, 2086, 2094, 2102, 2111, 0}, {2120, 2126, 2133, 2141, 2147, 2155, 2163, 2173, 2086, 2179, 2187, 2197, 0}, {2206, 2210, 2215, 2220, 2224, 2229, 2234, 2239, 2243, 2249, 2255, 2259, 0}, {2206, 2210, 2215, 2220, 2224, 2229, 2234, 2239, 2243, 2249, 2255, 2259, 0}, 2, 1, 2263, 187, {2266,2277,198,2286,189,2293,1692,1663,1721,0,0,0,0,0},{2300,0,0,0,0,0,0,0,0,0},{843,251,2313,2321,0,0,0,0,0,0,0,0},{848,269,2326,2337,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
        {1921, 1929, 1932, {2345, 2353, 2360, 2368, 2375, 2383, 2390}, {2398, 2403, 2407, 2411, 2415, 2419, 2423}, {2023, 2428, 2430, 2432, 2430, 2434, 2436}, {2438, 2445, 2453, 2459, 2465, 2469, 2474, 2479, 2486, 2496, 2504, 2513, 0}, {2438, 2445, 2453, 2459, 2465, 2469, 2474, 2479, 2486, 2496, 2504, 2513, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, 2, 1, 2566, 187, {1128,1139,1692,2568,0,0,0,0,0,0,0,0,0,0},{2300,0,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
        {1921, 2579, 2585, {2592, 2600, 2607, 2616, 2625, 2636, 2644}, {2652, 2655, 2658, 2661, 2664, 2667, 2670}, {2023, 2428, 2673, 2428, 2673, 2434, 2023}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, 2, 1, 691, 187, {1156,1167,1692,2804,0,0,0,0,0,0,0,0,0,0},{2818,2300,2837,0,0,0,0,0,0,0},{251,2850,0,0,0,0,0,0,0,0,0,0},{269,2862,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
@@ -132,1261 +132,1261 @@ static const DateTimeFormatEntry datetime_format_entries [] = {
        {1921, 1929, 1932, {9187, 9196, 9208, 9215, 9223, 9233, 9239}, {9246, 9250, 9254, 9258, 9262, 9267, 9271}, {9275, 9277, 9279, 9281, 9283, 9277, 9281}, {9286, 9296, 9305, 9313, 9321, 9329, 9336, 9343, 9351, 2102, 9357, 9365, 0}, {9374, 9384, 9393, 9401, 9409, 9417, 9424, 9431, 9440, 7911, 9446, 9456, 0}, {9465, 9469, 9474, 9479, 9483, 7945, 2239, 9487, 9491, 2255, 9495, 2259, 0}, {9465, 9469, 9474, 9479, 9483, 7945, 2239, 9487, 9491, 2255, 9495, 2259, 0}, 0, 1, 691, 187, {9499,9509,6153,9517,9529,9539,9549,1692,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
        {1921, 1929, 1932, {9610, 9618, 9627, 9634, 9641, 9650, 1985}, {1992, 1995, 9657, 2002, 9660, 9664, 2013}, {2016, 2018, 9667, 2023, 9669, 2018, 2023}, {5710, 5718, 9672, 6077, 9678, 9683, 9688, 2479, 2486, 5789, 2504, 2513, 0}, {9693, 9702, 7844, 9712, 9720, 9726, 9732, 9738, 9746, 9756, 9765, 9774, 0}, {2522, 2526, 2530, 2534, 9678, 9683, 9688, 2546, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 9678, 9683, 9688, 2546, 2550, 2554, 2558, 2562, 0}, 2, 1, 691, 187, {4753,1156,1167,1692,5888,9783,9796,9806,0,0,0,0,0,0},{2300,0,0,0,0,0,0,0,0,0},{843,251,2321,0,0,0,0,0,0,0,0,0},{848,269,2337,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
        {289, 9817, 9826, {9834, 9841, 9850, 9859, 9871, 9879, 9888}, {9898, 9902, 3761, 9907, 9912, 9916, 9920}, {2673, 5694, 2428, 2428, 9924, 2018, 2023}, {9926, 9932, 4887, 9939, 2465, 9945, 9953, 9960, 9966, 9974, 9980, 9988, 0}, {9926, 9932, 4887, 9939, 2465, 9945, 9953, 9960, 9966, 9974, 9980, 9988, 0}, {2759, 9996, 3761, 10000, 10004, 10008, 10012, 10016, 9920, 10020, 10024, 10029, 0}, {2759, 9996, 3761, 10000, 10004, 10008, 10012, 10016, 9920, 10020, 10024, 10029, 0}, 0, 1, 691, 187, {4753,4762,0,0,0,0,0,0,0,0,0,0,0,0},{1207,0,0,0,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {10033, 10046, 10049, {10052, 10060, 10068, 2368, 2375, 2383, 10075}, {10083, 10088, 10093, 10097, 10101, 10105, 10109}, {2023, 2428, 2430, 2432, 2430, 2434, 2436}, {10114, 10122, 10131, 2696, 10004, 2706, 2711, 10136, 2723, 2733, 2741, 3752, 0}, {7370, 7378, 4887, 2459, 2465, 2469, 2474, 10144, 2486, 2496, 2504, 2513, 0}, {2759, 2763, 3761, 2772, 10004, 2776, 2780, 2784, 2788, 2792, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 10004, 2776, 2780, 2784, 2788, 2792, 2796, 3769, 0}, 2, 1, 2566, 187, {1692,5888,0,0,0,0,0,0,0,0,0,0,0,0},{10152,10170,0,0,0,0,0,0,0,0},{251,843,7529,0,0,0,0,0,0,0,0,0},{269,848,7585,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 0, 0, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 0, 185, 187, {2277,2286,189,198,8579,10193,1692,0,0,0,0,0,0,0},{1242,10205,10221,0,0,0,0,0,0,0},{843,251,3594,242,0,0,0,0,0,0,0,0},{848,269,3602,257,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 10263, 10268, {10272, 10278, 10288, 10294, 10305, 10315, 10320}, {10330, 10334, 10338, 10342, 10347, 10351, 10355}, {2018, 2018, 2023, 10359, 2018, 7736, 7736}, {10362, 10367, 10374, 10379, 10385, 10392, 10400, 10407, 10416, 10423, 10428, 10435, 0}, {10362, 10367, 10374, 10379, 10385, 10392, 10400, 10407, 10416, 10423, 10428, 10435, 0}, {10443, 10447, 3761, 10452, 3730, 10456, 10460, 10464, 10469, 10473, 10477, 10481, 0}, {10443, 10447, 3761, 10452, 3730, 10456, 10460, 10464, 10469, 10473, 10477, 10481, 0}, 0, 1, 691, 187, {4753,4762,1156,1167,0,0,0,0,0,0,0,0,0,0},{10485,1242,10502,5505,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1, 10520, 10538, {10556, 10567, 10580, 10589, 10596, 10609, 10618}, {10556, 10567, 10580, 10589, 10596, 10609, 10618}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {10627, 10638, 10649, 10658, 10669, 10676, 10683, 10696, 10705, 10716, 10729, 10740, 0}, {10627, 10638, 10649, 10658, 10669, 10676, 10683, 10696, 10705, 10716, 10729, 10740, 0}, {10627, 10638, 10649, 10658, 10669, 10676, 10683, 10696, 10705, 10716, 10729, 10740, 0}, {10627, 10638, 10649, 10658, 10669, 10676, 10683, 10696, 10705, 10716, 10729, 10740, 0}, 0, 0, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1, 1929, 1932, {10765, 10772, 10778, 10785, 10790, 10796, 10802}, {10808, 10812, 10816, 10820, 10824, 10828, 10832}, {2428, 2023, 2023, 10836, 4442, 3987, 2023}, {10114, 10122, 10838, 2696, 10844, 2706, 2711, 10848, 2723, 2733, 2741, 10856, 0}, {10114, 10122, 10838, 2696, 10844, 2706, 2711, 10848, 2723, 2733, 2741, 10856, 0}, {2759, 2763, 3761, 2772, 10844, 2776, 2780, 10865, 2788, 2792, 2796, 10869, 0}, {2759, 2763, 3761, 2772, 10844, 2776, 2780, 10865, 2788, 2792, 2796, 10869, 0}, 0, 0, 185, 187, {198,189,1128,0,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 10873, 10878, {10883, 10896, 10915, 10932, 10945, 10958, 10975}, {10988, 8775, 8780, 8785, 8790, 8795, 8800}, {10993, 8808, 8805, 8811, 8814, 8808, 8811}, {10996, 11009, 11020, 11037, 11052, 11067, 11082, 11095, 11110, 11127, 11142, 11159, 0}, {11174, 11185, 11198, 11213, 11226, 11239, 11252, 11263, 11276, 11291, 11304, 11323, 0}, {11336, 11343, 11350, 11357, 11364, 11371, 11378, 11385, 11392, 11399, 11406, 11413, 0}, {11336, 11343, 11350, 11357, 11364, 11371, 11378, 11385, 11392, 11399, 11406, 11413, 0}, 0, 1, 691, 187, {1156,1167,1692,0,0,0,0,0,0,0,0,0,0,0},{11420,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{11438,0,0,0,0,0,0,0}},
-       {289, 11454, 11467, {11480, 11495, 11516, 11531, 11544, 11557, 10975}, {421, 426, 11572, 436, 11577, 446, 451}, {456, 459, 11582, 465, 468, 459, 465}, {11585, 11602, 11611, 11626, 521, 11643, 11658, 11671, 11686, 11703, 11724, 11741, 0}, {11756, 11773, 11786, 11803, 9017, 11822, 11837, 11850, 11863, 11878, 11901, 11920, 0}, {11933, 11940, 11947, 11954, 521, 11961, 11968, 11975, 11982, 11989, 11996, 12003, 0}, {11933, 11940, 11947, 11954, 521, 11961, 11968, 11975, 11982, 11989, 11996, 12003, 0}, 0, 0, 691, 187, {1167,0,0,0,0,0,0,0,0,0,0,0,0,0},{1242,0,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1921, 12010, 12015, {12020, 12028, 12039, 12045, 12051, 12060, 1985}, {9246, 9250, 2415, 12066, 9262, 9267, 12070}, {9275, 9277, 12074, 9281, 9283, 9277, 9281}, {2438, 2445, 9672, 2459, 2465, 12076, 12082, 12088, 2486, 2496, 2504, 2513, 0}, {2438, 2445, 9672, 2459, 2465, 12076, 12082, 12088, 2486, 2496, 2504, 2513, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {4753,4762,2266,1156,12099,1167,9806,0,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {12109, 12118, 12123, {12128, 12139, 12150, 12161, 12172, 12183, 12189}, {2018, 9924, 2430, 4442, 2016, 10836, 2436}, {2018, 9924, 2430, 4442, 2016, 10836, 2436}, {12198, 12206, 12215, 12222, 4898, 12229, 12235, 2479, 2486, 12241, 2504, 12250, 0}, {12198, 12206, 12215, 12222, 4898, 12229, 12235, 2479, 2486, 12241, 2504, 12250, 0}, {12260, 12265, 12215, 2534, 4898, 12229, 12235, 2546, 12271, 2554, 2558, 12276, 0}, {12260, 12265, 12215, 2534, 4898, 12229, 12235, 2546, 12271, 2554, 2558, 12276, 0}, 2, 1, 691, 187, {7519,1156,1167,1692,0,0,0,0,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1921, 12281, 12298, {12312, 12323, 12333, 12342, 12353, 12365, 12376}, {12386, 12389, 12392, 12395, 12398, 12401, 12404}, {2023, 2018, 2432, 2430, 7736, 2018, 2023}, {12407, 12417, 12428, 12434, 12443, 12449, 12457, 12465, 12473, 12484, 12493, 12503, 0}, {12513, 12523, 2453, 12534, 12543, 12549, 12557, 12565, 12573, 12584, 12593, 12603, 0}, {12613, 12619, 12428, 12625, 12443, 12630, 12636, 12642, 4190, 12647, 4201, 12652, 0}, {12613, 12619, 12428, 12625, 12443, 12630, 12636, 12642, 4190, 12647, 4201, 12652, 0}, 0, 1, 691, 187, {9517,9539,12657,0,0,0,0,0,0,0,0,0,0,0},{12669,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{12696,0,0,0,0,0,0,0}},
-       {12714, 12726, 12015, {12732, 12744, 12756, 12768, 12782, 12797, 12810}, {12824, 12827, 12830, 12833, 12836, 12839, 9660}, {2023, 2018, 12842, 2430, 4442, 2018, 9669}, {12844, 12851, 12859, 12865, 12874, 12883, 12893, 12899, 12910, 12920, 12927, 12937, 0}, {12844, 12851, 12859, 12865, 12874, 12883, 12893, 12899, 12910, 12920, 12927, 12937, 0}, {12945, 12951, 12956, 12961, 12966, 12971, 12978, 12984, 12990, 12996, 13002, 13009, 0}, {12945, 12951, 12956, 12961, 12966, 12971, 12978, 12984, 12990, 12996, 13002, 13009, 0}, 2, 1, 2566, 187, {1692,2568,0,0,0,0,0,0,0,0,0,0,0,0},{13016,0,0,0,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{13038,0,0,0,0,0,0,0}},
-       {1, 13053, 13065, {13077, 13092, 13107, 13122, 13139, 13158, 13169}, {13180, 13187, 13194, 13201, 13208, 13215, 13222}, {0, 0, 0, 0, 0, 0, 0}, {13229, 13240, 8845, 13253, 8867, 13264, 13271, 8892, 13278, 13293, 13306, 13317, 0}, {13229, 13240, 8845, 13253, 8867, 13264, 13271, 8892, 13278, 13293, 13306, 13317, 0}, {13330, 13337, 13344, 13351, 8867, 13264, 13271, 13358, 13365, 13372, 13379, 13386, 0}, {13330, 13337, 13344, 13351, 8867, 13264, 13271, 13358, 13365, 13372, 13379, 13386, 0}, 0, 1, 691, 187, {1156,1167,4762,1128,189,0,0,0,0,0,0,0,0,0},{13393,13411,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 13430, 13450, {13467, 13480, 13493, 13509, 13526, 13541, 13550}, {13467, 13480, 13493, 13509, 13526, 13541, 13550}, {13559, 13562, 13565, 13568, 13571, 13574, 13577}, {13580, 13593, 13604, 13613, 13624, 13629, 13638, 13649, 13656, 13671, 13682, 13695, 0}, {13708, 13723, 13604, 13613, 13736, 13629, 13743, 13649, 13656, 13671, 13682, 13695, 0}, {13580, 13593, 13604, 13613, 13624, 13629, 13638, 13649, 13656, 13671, 13682, 13695, 0}, {13580, 13593, 13604, 13613, 13624, 13629, 13638, 13649, 13656, 13671, 13682, 13695, 0}, 0, 6, 185, 187, {198,189,0,0,0,0,0,0,0,0,0,0,0,0},{13756,5505,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1, 13775, 13778, {13781, 13794, 13804, 13813, 13823, 13834, 13845}, {13857, 13860, 13865, 13870, 13875, 13880, 13885}, {13857, 13890, 13893, 13896, 13899, 13902, 13905}, {13908, 13917, 13926, 13935, 13944, 13953, 13962, 13971, 13980, 13989, 13999, 14009, 0}, {14019, 14028, 14037, 14046, 14055, 14064, 14073, 14082, 14091, 14100, 14110, 14120, 0}, {14130, 14136, 14142, 14148, 14154, 14160, 14166, 14172, 14178, 14184, 14191, 14198, 0}, {14130, 14136, 14142, 14148, 14154, 14160, 14166, 14172, 14178, 14184, 14191, 14198, 0}, 0, 1, 185, 187, {198,189,1139,1128,1692,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 14205, 14229, {14253, 14266, 14287, 14306, 14327, 14346, 14359}, {14370, 14377, 14384, 14391, 14398, 14405, 14412}, {14419, 14422, 14422, 14425, 14428, 14431, 14436}, {14439, 14454, 14469, 14478, 14489, 14500, 14513, 14526, 14541, 14560, 14579, 14596, 0}, {14615, 14632, 14649, 14660, 14673, 14686, 14701, 14716, 14733, 14754, 14775, 14794, 0}, {14815, 14822, 14829, 14836, 14843, 14850, 14857, 14864, 14871, 14878, 14885, 14892, 0}, {14815, 14822, 14829, 14836, 14843, 14850, 14857, 14864, 14871, 14878, 14885, 14892, 0}, 0, 1, 691, 187, {1156,1167,9796,198,14899,3582,1692,0,0,0,0,0,0,0},{3870,1207,13756,5505,14910,14921,14933,14950,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {14968, 14974, 14988, 15011, 15025, 15041, 15048}, {15057, 15060, 15065, 15071, 15075, 7736, 15080}, {6617, 6605, 6607, 6609, 6611, 6613, 6615}, {15084, 15091, 10374, 15098, 3730, 15104, 15110, 15116, 15123, 15132, 15140, 15147, 0}, {15154, 15161, 15168, 15173, 15179, 15183, 15188, 15193, 15200, 15209, 15217, 15224, 0}, {15231, 8135, 2530, 2534, 15179, 15235, 15239, 15243, 15247, 2554, 15251, 15255, 0}, {15231, 8135, 2530, 2534, 15179, 15235, 15239, 15243, 15247, 2554, 15251, 15255, 0}, 0, 1, 691, 187, {1156,1167,4762,189,1692,0,0,0,0,0,0,0,0,0},{15259,0,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {15281, 1929, 1932, {15296, 15304, 15315, 15325, 15336, 15345, 15354}, {15364, 15368, 15372, 15376, 15380, 15384, 15388}, {15392, 12842, 12842, 12842, 2432, 2432, 2436}, {15394, 15404, 15412, 15420, 15428, 15436, 15443, 15451, 15459, 15466, 15472, 15479, 0}, {15487, 15498, 15507, 15516, 15525, 15534, 15542, 15551, 15560, 15568, 15575, 15583, 0}, {15592, 15597, 4845, 15602, 15607, 15612, 15617, 15622, 15627, 15632, 15637, 15642, 0}, {15592, 15597, 4845, 15602, 15607, 15612, 15617, 15622, 15627, 15632, 15637, 15642, 0}, 2, 1, 185, 187, {1681,1692,0,0,0,0,0,0,0,0,0,0,0,0},{15647,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{15680,0,0,0,0,0,0,0}},
-       {289, 15697, 15718, {15735, 331, 352, 8714, 15748, 15765, 15776}, {15789, 15797, 15805, 15811, 15819, 15827, 15835}, {456, 459, 462, 465, 468, 459, 465}, {15843, 484, 501, 510, 15858, 15865, 15874, 542, 555, 574, 591, 606, 0}, {15843, 484, 501, 510, 15858, 15865, 15874, 542, 555, 574, 591, 606, 0}, {15883, 15891, 15899, 639, 15858, 15907, 15915, 647, 655, 665, 673, 683, 0}, {15883, 15891, 15899, 639, 15858, 15907, 15915, 647, 655, 665, 673, 683, 0}, 0, 1, 691, 187, {1156,1167,15923,0,0,0,0,0,0,0,0,0,0,0},{13756,0,0,0,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 0, 0, {15940, 15947, 15958, 15967, 15976, 15983, 15994}, {16004, 16008, 16012, 16016, 16020, 16023, 16027}, {0, 0, 0, 0, 0, 0, 0}, {16031, 16041, 16050, 16058, 16067, 16080, 16092, 16099, 16106, 16113, 16123, 16135, 0}, {16031, 16041, 16050, 16058, 16067, 16080, 16092, 16099, 16106, 16113, 16123, 16135, 0}, {16148, 16152, 16156, 16160, 16164, 16168, 16172, 16176, 16180, 16184, 16188, 16192, 0}, {16148, 16152, 16156, 16160, 16164, 16168, 16172, 16176, 16180, 16184, 16188, 16192, 0}, 0, 0, 185, 187, {189,1681,1735,1692,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 0, 0, {16196, 16201, 16207, 16217, 16229, 16237, 16248}, {16257, 16261, 16265, 16269, 16273, 16277, 16281}, {0, 0, 0, 0, 0, 0, 0}, {16285, 16295, 16305, 16312, 16319, 2706, 16324, 16331, 16338, 16347, 16355, 16363, 0}, {16285, 16295, 16305, 16312, 16319, 2706, 16324, 16331, 16338, 16347, 16355, 16363, 0}, {2759, 2763, 16027, 16371, 16375, 2776, 2780, 16379, 2788, 2792, 2796, 16383, 0}, {2759, 2763, 16027, 16371, 16375, 2776, 2780, 16379, 2788, 2792, 2796, 16383, 0}, 0, 0, 185, 187, {1681,1735,1692,0,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {16387, 16393, 16404, 16217, 16229, 16237, 16248}, {16414, 16418, 16422, 16269, 16273, 16277, 16281}, {2023, 2428, 16426, 2430, 2023, 5694, 2428}, {16428, 16438, 16449, 16456, 16465, 16471, 16477, 16485, 16493, 16504, 16514, 16523, 0}, {16532, 16295, 16541, 16547, 16319, 2706, 16324, 16331, 16554, 16347, 16355, 16363, 0}, {2759, 2763, 16564, 2772, 16375, 2776, 2780, 16379, 2788, 2792, 2796, 16383, 0}, {2759, 2763, 16564, 2772, 16375, 2776, 2780, 16379, 2788, 2792, 2796, 16383, 0}, 0, 0, 2566, 187, {1128,1139,189,1681,1735,1692,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 16568, 16572, {16576, 16583, 16591, 16599, 16608, 16618, 16625}, {2652, 16634, 2658, 16637, 2664, 16640, 2670}, {2023, 2428, 2673, 3705, 2673, 3989, 2023}, {16643, 16652, 16662, 2696, 10844, 16668, 16674, 16680, 2723, 2733, 2741, 10856, 0}, {16643, 16652, 16662, 2696, 10844, 16668, 16674, 16680, 2723, 2733, 2741, 10856, 0}, {2759, 2763, 3761, 2772, 10844, 2776, 2780, 2784, 2788, 2792, 2796, 10869, 0}, {2759, 2763, 3761, 2772, 10844, 2776, 2780, 2784, 2788, 2792, 2796, 10869, 0}, 0, 0, 185, 187, {1681,1735,1692,16689,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {16701, 16717, 16742, 16770, 16798, 16826, 16854}, {16873, 16883, 16893, 16903, 16913, 16923, 16933}, {16943, 16947, 16951, 16947, 16955, 16959, 16963}, {16967, 16989, 17017, 17033, 17052, 17068, 17087, 17106, 17128, 17159, 17187, 17212, 0}, {16967, 16989, 17017, 17033, 17052, 17068, 17087, 17106, 17128, 17159, 17187, 17212, 0}, {17240, 17250, 17260, 17270, 17280, 17290, 17300, 17310, 17320, 17330, 17340, 17350, 0}, {17240, 17250, 17260, 17270, 17280, 17290, 17300, 17310, 17320, 17330, 17340, 17350, 0}, 0, 1, 691, 187, {1156,1167,7419,1176,4762,4753,1692,0,0,0,0,0,0,0},{17360,17394,17427,3870,17461,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 17473, 17478, {5932, 17483, 17494, 17504, 17514, 17524, 17538}, {17550, 17554, 17559, 17564, 17568, 17573, 17578}, {2023, 2428, 2430, 2428, 5694, 2434, 2436}, {2438, 2445, 4887, 6077, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2438, 2445, 4887, 6077, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, 2, 1, 2566, 187, {1128,1139,1692,0,0,0,0,0,0,0,0,0,0,0},{2300,0,0,0,0,0,0,0,0,0},{251,4288,0,0,0,0,0,0,0,0,0,0},{269,4302,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1, 17582, 17598, {17608, 17627, 17646, 17668, 17687, 17709, 17734}, {17753, 17763, 17773, 17786, 17796, 17809, 17825}, {17835, 17839, 17846, 17853, 17860, 17867, 17874}, {17878, 17894, 17913, 17929, 17948, 17955, 17965, 17981, 17997, 18016, 18038, 18054, 0}, {17878, 17894, 17913, 17929, 17948, 17955, 17965, 17981, 17997, 18016, 18038, 18054, 0}, {18073, 18080, 17913, 18090, 17948, 17955, 18106, 18119, 18126, 18139, 18155, 18165, 0}, {18073, 18080, 17913, 18090, 17948, 17955, 18106, 18119, 18126, 18139, 18155, 18165, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {18178, 18192, 18195, {18198, 18207, 18216, 18226, 18236, 18246, 18258}, {18266, 18271, 18275, 18279, 18283, 18288, 18293}, {18297, 2430, 2430, 9924, 18297, 18300, 2023}, {18303, 18310, 18315, 2696, 18321, 18327, 18334, 18340, 18348, 18358, 18366, 18375, 0}, {18303, 18310, 18315, 2696, 18321, 18327, 18334, 18340, 18348, 18358, 18366, 18375, 0}, {2759, 18385, 3761, 2772, 18389, 18393, 18398, 18402, 18406, 18410, 2796, 18414, 0}, {2759, 18385, 3761, 2772, 18389, 18393, 18398, 18402, 18406, 18410, 2796, 18414, 0}, 0, 0, 185, 187, {198,1692,18419,7410,2277,0,0,0,0,0,0,0,0,0},{18428,18453,10193,0,0,0,0,0,0,0},{251,3594,843,0,0,0,0,0,0,0,0,0},{269,3602,848,3594,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {18472, 18485, 18490, {18495, 18507, 18518, 18532, 18544, 18554, 18564}, {18575, 18580, 18585, 18590, 18595, 18600, 18605}, {2023, 3989, 2428, 6293, 2673, 16426, 2436}, {18610, 18627, 18640, 18654, 18667, 18680, 18693, 18707, 18719, 18733, 18747, 18761, 0}, {18610, 18627, 18640, 18654, 18667, 18680, 18693, 18707, 18719, 18733, 18747, 18761, 0}, {18774, 18781, 18786, 18791, 18795, 18800, 18805, 18810, 18815, 18822, 18827, 18833, 0}, {18774, 18781, 18786, 18791, 18795, 18800, 18805, 18810, 18815, 18822, 18827, 18833, 0}, 2, 1, 691, 187, {1156,1167,4762,1692,0,0,0,0,0,0,0,0,0,0},{18838,18862,0,0,0,0,0,0,0,0},{251,843,4288,0,0,0,0,0,0,0,0,0},{269,848,4302,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {20057, 1929, 1932, {20065, 20074, 20083, 20091, 20100, 20109, 20116}, {20125, 20128, 20131, 20134, 20137, 20141, 20144}, {6607, 6609, 6611, 6613, 12842, 15392, 6605}, {10114, 10122, 20147, 20153, 10844, 2706, 19221, 20160, 16338, 20167, 16355, 20174, 0}, {10114, 10122, 20147, 20153, 10844, 2706, 19221, 20160, 16338, 20167, 16355, 20174, 0}, {2759, 2763, 19217, 2772, 10844, 2776, 2780, 20182, 2788, 2792, 2796, 10869, 0}, {2759, 2763, 19217, 2772, 10844, 2776, 2780, 20182, 2788, 2792, 2796, 10869, 0}, 0, 0, 185, 187, {3773,3782,3789,3798,1735,1692,3809,0,0,0,0,0,0,0},{20186,20206,222,10751,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {20220, 1929, 1932, {20227, 20237, 20246, 20255, 20266, 20276, 20281}, {20288, 20294, 20299, 20304, 20309, 10828, 20313}, {20318, 2673, 2023, 7736, 2018, 3987, 2023}, {15084, 15091, 10374, 15098, 3730, 20320, 20325, 20330, 15123, 15132, 15140, 15147, 0}, {15084, 15091, 10374, 15098, 3730, 20320, 20325, 20330, 15123, 15132, 15140, 15147, 0}, {20337, 20342, 3761, 2772, 3730, 20320, 20325, 20346, 10812, 2792, 20350, 20355, 0}, {20337, 20342, 3761, 2772, 3730, 20320, 20325, 20346, 10812, 2792, 20350, 20355, 0}, 0, 1, 691, 187, {1156,0,0,0,0,0,0,0,0,0,0,0,0,0},{20359,1242,5505,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 20377, 20405, {20427, 20446, 20465, 20490, 20509, 20543, 20568}, {20587, 20597, 20607, 20623, 20633, 20658, 20674}, {20684, 20688, 20695, 20699, 20706, 20713, 20720}, {20724, 20752, 20786, 20802, 20821, 20828, 20838, 20854, 20870, 20901, 20923, 20945, 0}, {20724, 20752, 20786, 20802, 20821, 20828, 20838, 20854, 20870, 20901, 20923, 20945, 0}, {20724, 20752, 20786, 20802, 20821, 20828, 20838, 20854, 20870, 20901, 20923, 20945, 0}, {20724, 20752, 20786, 20802, 20821, 20828, 20838, 20854, 20870, 20901, 20923, 20945, 0}, 0, 0, 2566, 187, {1139,2293,1128,20970,20983,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{4288,2321,20998,21007,0,0,0,0,0,0,0,0},{4302,2337,21015,21027,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1, 1929, 1932, {21507, 21526, 21545, 21567, 21586, 21608, 21633}, {21652, 21662, 21672, 21685, 21695, 21708, 21724}, {21734, 21738, 21745, 21752, 21759, 21766, 21773}, {21777, 21805, 21833, 21849, 21868, 21875, 21885, 21901, 21917, 21945, 21967, 21989, 0}, {21777, 21805, 21833, 21849, 21868, 21875, 21885, 21901, 21917, 21945, 21967, 21989, 0}, {22014, 22033, 21833, 21849, 21868, 21875, 21885, 22052, 22059, 22075, 22091, 22101, 0}, {22014, 22033, 21833, 21849, 21868, 21875, 21885, 22052, 22059, 22075, 22091, 22101, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1, 8151, 22114, {22117, 22136, 22155, 22180, 22199, 22221, 22246}, {22265, 22275, 22285, 22301, 22311, 22324, 22340}, {22350, 22354, 22361, 22365, 22372, 22379, 22386}, {22390, 22412, 22443, 22465, 22484, 22491, 22501, 22517, 22533, 22564, 22586, 22608, 0}, {22390, 22412, 22443, 22465, 22484, 22491, 22501, 22517, 22533, 22564, 22586, 22608, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {289, 22633, 22658, {22683, 22702, 22724, 22749, 22765, 22787, 22806}, {22816, 22823, 22830, 22837, 22844, 22851, 22858}, {22816, 22823, 22830, 22837, 22844, 22851, 22858}, {22862, 22878, 22903, 22922, 22941, 22948, 22961, 22974, 22993, 23024, 23049, 23071, 0}, {22862, 22878, 22903, 22922, 22941, 22948, 22961, 23096, 22993, 23024, 23049, 23071, 0}, {23115, 23123, 23137, 23151, 22941, 22948, 22961, 23162, 23170, 23184, 23195, 23203, 0}, {23115, 23123, 23137, 23151, 22941, 22948, 22961, 23162, 23170, 23184, 23195, 23203, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {3613, 1929, 1932, {23214, 23236, 23258, 23283, 23305, 23330, 23358}, {23380, 23390, 23400, 23413, 23423, 23436, 23452}, {23462, 23466, 23473, 23477, 23484, 23491, 23498}, {23502, 23518, 23543, 23562, 23584, 23591, 23604, 23617, 23636, 23667, 23692, 23711, 0}, {23502, 23518, 23543, 23562, 23584, 23591, 23736, 23617, 23636, 23667, 23692, 23711, 0}, {23749, 23756, 23543, 23772, 23584, 23591, 23736, 23617, 23788, 23810, 23826, 23836, 0}, {23749, 23756, 23543, 23772, 23584, 23591, 23736, 23617, 23788, 23810, 23826, 23836, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {3613, 1929, 1932, {23852, 23871, 23890, 23912, 23931, 23953, 23978}, {23997, 24007, 24017, 24030, 24040, 24053, 24069}, {24079, 24083, 24090, 24097, 24104, 24111, 24118}, {24122, 24138, 24163, 24182, 24204, 24211, 24224, 24237, 24256, 24284, 24309, 24331, 0}, {24122, 24138, 24163, 24182, 24204, 24211, 24224, 24237, 24256, 24284, 24309, 24331, 0}, {24356, 24364, 24384, 24391, 24204, 24408, 24415, 24423, 24431, 24454, 24471, 24485, 0}, {24356, 24364, 24384, 24391, 24204, 24408, 24415, 24423, 24431, 24454, 24471, 24485, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {20057, 1929, 1932, {24502, 24530, 24564, 24592, 24620, 24651, 24688}, {24716, 24729, 24748, 24764, 24777, 24796, 24815}, {24825, 24832, 24839, 24846, 24853, 24866, 24873}, {24877, 24896, 24924, 24946, 24965, 24978, 24988, 25001, 25026, 25057, 25082, 25098, 0}, {24877, 24896, 24924, 24946, 24965, 24978, 24988, 25001, 25026, 25057, 25082, 25098, 0}, {25117, 25127, 25146, 25156, 24965, 24978, 24988, 25172, 25179, 25204, 25220, 25230, 0}, {25117, 25127, 25146, 25156, 24965, 24978, 24988, 25172, 25179, 25204, 25220, 25230, 0}, 0, 0, 2566, 187, {1139,2293,1167,4762,0,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{4288,2321,20998,21007,0,0,0,0,0,0,0,0},{4302,2337,21015,21027,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {289, 25243, 25271, {25293, 25312, 25331, 25356, 25375, 25409, 25434}, {25453, 20597, 20607, 20623, 25463, 25488, 20674}, {0, 0, 0, 0, 0, 0, 0}, {25504, 25529, 25560, 25576, 20821, 20828, 20838, 25595, 25611, 25642, 25664, 25686, 0}, {25504, 25529, 25560, 25576, 20821, 20828, 20838, 25595, 25611, 25642, 25664, 25686, 0}, {25711, 25724, 25560, 25576, 20821, 20828, 20838, 25743, 25750, 25766, 25782, 25792, 0}, {25711, 25724, 25560, 25576, 20821, 20828, 20838, 25743, 25750, 25766, 25782, 25792, 0}, 0, 0, 2566, 187, {1128,0,0,0,0,0,0,0,0,0,0,0,0,0},{25805,0,0,0,0,0,0,0,0,0},{1858,1866,0,0,0,0,0,0,0,0,0,0},{1875,1886,0,0,0,0,0,0,0},{25824,25832,0,0,0,0,0,0}},
-       {1, 1929, 1932, {17608, 17627, 25842, 17668, 17687, 17709, 17734}, {17753, 17763, 25864, 17786, 17796, 17809, 17825}, {17835, 17839, 17846, 17853, 17860, 17867, 17874}, {25877, 25902, 17913, 25933, 25952, 17955, 25959, 25972, 25988, 26013, 26035, 26063, 0}, {25877, 25902, 17913, 25933, 25952, 17955, 25959, 25972, 25988, 26013, 26035, 26063, 0}, {26085, 26098, 17913, 26117, 25952, 17955, 25959, 26133, 26140, 26159, 26175, 26197, 0}, {26085, 26098, 17913, 26117, 25952, 17955, 25959, 26133, 26140, 26159, 26175, 26197, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {26945, 26969, 26991, {27016, 27044, 27072, 27109, 27140, 27174, 27199}, {27233, 27249, 27265, 27290, 27309, 27331, 27344}, {27366, 27373, 27380, 27387, 27394, 27401, 27405}, {27415, 27449, 27486, 27520, 27554, 27585, 27622, 27659, 27699, 27733, 27767, 27816, 0}, {27415, 27449, 27486, 27520, 27554, 27585, 27622, 27659, 27699, 27733, 27767, 27816, 0}, {27865, 27878, 27891, 27904, 27917, 27930, 27943, 27956, 27969, 27982, 27998, 28014, 0}, {27865, 27878, 27891, 27904, 27917, 27930, 27943, 27956, 27969, 27982, 27998, 28014, 0}, 0, 0, 185, 187, {1654,1663,1672,1703,1692,1681,1721,1714,1728,0,0,0,0,0},{28030,28073,28121,28153,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{28190,1914,0,0,0,0,0,0}},
-       {289, 1929, 1932, {28223, 28232, 28242, 28254, 28267, 28276, 28288}, {28300, 28304, 28309, 28313, 28317, 28321, 28325}, {2023, 28329, 2428, 2428, 15392, 6293, 2023}, {28332, 28339, 28348, 28355, 2702, 28362, 28370, 28381, 28386, 28391, 28398, 28407, 0}, {28332, 28339, 28348, 28355, 2702, 28362, 28370, 28381, 28386, 28391, 28398, 28407, 0}, {28415, 28419, 28309, 28423, 2702, 28427, 28431, 28381, 28386, 28435, 28439, 28444, 0}, {28415, 28419, 28309, 28423, 2702, 28427, 28431, 28381, 28386, 28435, 28439, 28444, 0}, 2, 1, 185, 187, {189,198,5002,8579,0,0,0,0,0,0,0,0,0,0},{1242,1207,0,0,0,0,0,0,0,0},{251,843,242,3594,0,0,0,0,0,0,0,0},{269,848,257,3602,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 28449, 28465, {28481, 28503, 28516, 28535, 28545, 28576, 28592}, {28481, 28503, 28516, 28535, 28545, 28576, 28592}, {6605, 6607, 6609, 6611, 6613, 6615, 6617}, {28605, 28618, 28637, 28650, 28663, 28676, 28695, 28714, 28727, 28743, 28756, 28781, 0}, {28605, 28618, 28637, 28650, 28663, 28676, 28695, 28714, 28727, 28743, 28756, 28781, 0}, {28605, 28618, 28637, 28650, 28663, 28676, 28695, 28714, 28727, 28743, 28756, 28781, 0}, {28605, 28618, 28637, 28650, 28663, 28676, 28695, 28714, 28727, 28743, 28756, 28781, 0}, 0, 0, 185, 187, {189,1692,0,0,0,0,0,0,0,0,0,0,0,0},{1242,10205,0,0,0,0,0,0,0,0},{843,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{28794,0,0,0,0,0,0,0}},
-       {289, 28829, 28854, {28879, 28904, 28923, 28951, 28970, 28995, 29014}, {28879, 28904, 28923, 28951, 28970, 28995, 29014}, {29036, 29040, 29044, 29048, 29058, 29062, 29072}, {29076, 29095, 29111, 29124, 29137, 29159, 29178, 29200, 29216, 29232, 29245, 29261, 0}, {29076, 29095, 29111, 29124, 29137, 29159, 29178, 29200, 29216, 29232, 29245, 29261, 0}, {29277, 29286, 29295, 29304, 29313, 29322, 29334, 29343, 29352, 29361, 29370, 29379, 0}, {29277, 29286, 29295, 29304, 29313, 29322, 29334, 29343, 29352, 29361, 29370, 29379, 0}, 0, 0, 185, 187, {198,29388,6480,0,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {3883, 7281, 7286, {3895, 29398, 3909, 29403, 29413, 29419, 3942}, {29426, 8413, 3761, 29430, 29435, 29439, 29443}, {2673, 2436, 2428, 2428, 29448, 3989, 2023}, {29450, 29458, 4005, 4011, 29467, 29472, 29478, 4034, 29484, 29493, 29501, 29510, 0}, {29519, 29527, 4094, 1012, 8083, 29536, 29542, 4117, 8100, 8109, 8117, 29548, 0}, {29557, 2763, 3761, 29561, 2702, 29565, 29570, 20182, 18406, 29574, 2796, 3769, 0}, {29557, 2763, 3761, 29561, 2702, 29565, 29570, 20182, 18406, 29574, 2796, 3769, 0}, 2, 1, 185, 187, {198,189,1120,2286,1139,1167,1692,0,0,0,0,0,0,0},{29578,4239,4266,1242,0,0,0,0,0,0},{843,251,242,29607,0,0,0,0,0,0,0,0},{848,269,257,29619,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {1, 29639, 29651, {29663, 17627, 29691, 17668, 17687, 17709, 17734}, {17753, 17763, 25864, 17786, 17796, 17809, 17825}, {0, 0, 0, 0, 0, 0, 0}, {25877, 25902, 17913, 25933, 25952, 17955, 25959, 29710, 29726, 29754, 26035, 26063, 0}, {25877, 25902, 17913, 25933, 25952, 17955, 25959, 29710, 29726, 29754, 26035, 26063, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {20057, 29776, 29788, {29797, 29813, 29829, 29857, 29873, 29916, 29941}, {29797, 29813, 29969, 29857, 29979, 30001, 30014}, {30024, 30028, 30032, 30036, 30040, 30053, 30060}, {30067, 30086, 30111, 30130, 30155, 30168, 30181, 30194, 30216, 30250, 30275, 30303, 0}, {30067, 30086, 30111, 30130, 30155, 30168, 30181, 30194, 30216, 30250, 30275, 30303, 0}, {30331, 30338, 30348, 30130, 30155, 30168, 30181, 30361, 30371, 30384, 30394, 30407, 0}, {30331, 30338, 30348, 30130, 30155, 30168, 30181, 30361, 30371, 30384, 30394, 30407, 0}, 0, 1, 2566, 187, {1692,1681,1735,198,189,0,0,0,0,0,0,0,0,0},{30420,0,0,0,0,0,0,0,0,0},{1858,1866,843,251,0,0,0,0,0,0,0,0},{1875,1886,848,269,0,0,0,0,0},{30468,0,0,0,0,0,0,0}},
-       {30478, 30494, 30504, {30517, 30527, 30534, 30547, 30557, 30567, 30577}, {30517, 30527, 30587, 30547, 30557, 30567, 30577}, {30597, 30601, 30605, 30609, 30613, 30617, 30621}, {30625, 30641, 30657, 30667, 30680, 30687, 30694, 30704, 30717, 30736, 30752, 30768, 0}, {30625, 30641, 30657, 30667, 30680, 30687, 30694, 30704, 30717, 30784, 30752, 30768, 0}, {30803, 30813, 30657, 30823, 30680, 30687, 30694, 30833, 30843, 30853, 30863, 30873, 0}, {30803, 30813, 30657, 30823, 30680, 30687, 30694, 30833, 30843, 30853, 30863, 30873, 0}, 0, 0, 185, 187, {2277,1692,0,0,0,0,0,0,0,0,0,0,0,0},{30883,0,0,0,0,0,0,0,0,0},{3594,0,0,0,0,0,0,0,0,0,0,0},{3602,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1, 31145, 31186, {31227, 31246, 31265, 31290, 31309, 31331, 31356}, {31375, 17763, 31385, 17786, 31401, 17809, 17825}, {31414, 17839, 31418, 17853, 31422, 17867, 17874}, {17878, 31429, 17913, 31457, 25952, 31476, 17965, 31486, 31502, 31533, 31555, 31580, 0}, {17878, 31429, 17913, 31457, 25952, 31476, 17965, 31486, 31502, 31533, 31555, 31580, 0}, {17878, 31429, 17913, 31457, 25952, 31476, 17965, 31486, 31502, 31533, 31555, 31580, 0}, {17878, 31429, 17913, 31457, 25952, 31476, 17965, 31486, 31502, 31533, 31555, 31580, 0}, 0, 0, 185, 187, {3773,3782,3789,3798,1735,1692,3809,0,0,0,0,0,0,0},{20186,20206,222,10751,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{25832,0,0,0,0,0,0,0}},
-       {289, 0, 0, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {31605, 31612, 31621, 31636, 31647, 31656, 31663, 31670, 31677, 31688, 31701, 31714, 0}, {31605, 31612, 31621, 31636, 31647, 31656, 31663, 31670, 31677, 31688, 31701, 31714, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 6, 185, 187, {1654,1692,0,0,0,0,0,0,0,0,0,0,0,0},{31719,31740,0,0,0,0,0,0,0,0},{3594,843,0,0,0,0,0,0,0,0,0,0},{3602,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {31755, 1929, 1932, {31761, 31768, 31774, 31781, 31792, 31800, 31809}, {31816, 8413, 3761, 31820, 31824, 31828, 10832}, {2436, 2436, 2428, 2428, 5694, 16426, 2023}, {3991, 31832, 31840, 4011, 4017, 31846, 31852, 4034, 31858, 31868, 31876, 31886, 0}, {3991, 31832, 31840, 4011, 4017, 31846, 31852, 4034, 31858, 31868, 31876, 31886, 0}, {31896, 31900, 3761, 29561, 3730, 31904, 31908, 20182, 18406, 2792, 31912, 16383, 0}, {31896, 31900, 3761, 29561, 3730, 31904, 31908, 20182, 18406, 2792, 31912, 16383, 0}, 0, 0, 185, 187, {3773,3782,3789,3798,1735,1692,3809,0,0,0,0,0,0,0},{20186,20206,222,10751,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {289, 0, 0, {31916, 31923, 31931, 31938, 31945, 31953, 31961}, {31968, 31971, 31974, 31977, 31980, 31983, 31986}, {2436, 2436, 2430, 2436, 12842, 3987, 12842}, {31989, 31997, 32007, 32013, 32021, 32026, 32031, 32036, 32043, 20167, 32051, 32059, 0}, {31989, 31997, 32007, 32013, 32021, 32026, 32031, 32036, 32043, 20167, 32051, 32059, 0}, {2759, 32067, 3761, 32071, 3730, 31114, 31118, 32075, 3701, 2792, 32079, 16383, 0}, {2759, 32067, 3761, 32071, 3730, 31114, 31118, 32075, 3701, 2792, 32079, 16383, 0}, 0, 0, 185, 187, {2277,2286,189,198,1735,1692,3809,0,0,0,0,0,0,0},{20186,20206,222,10751,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1, 32083, 32094, {32104, 32122, 32137, 32159, 32172, 32186, 32203}, {32227, 32235, 32240, 32159, 32172, 32252, 32259}, {0, 0, 0, 0, 0, 0, 0}, {32273, 32295, 32311, 32331, 32345, 32362, 32377, 32394, 32408, 32421, 32440, 32454, 0}, {32273, 32295, 32311, 32331, 32345, 32362, 32377, 32394, 32408, 32421, 32440, 32454, 0}, {32473, 32488, 32497, 32510, 32517, 32527, 32535, 32545, 32552, 32558, 32570, 32577, 0}, {32473, 32488, 32497, 32510, 32517, 32527, 32535, 32545, 32552, 32558, 32570, 32577, 0}, 0, 0, 185, 187, {2277,2286,189,198,1735,1692,3809,0,0,0,0,0,0,0},{222,20186,20206,10751,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{25832,0,0,0,0,0,0,0}},
-       {3613, 0, 0, {32589, 32597, 15958, 15967, 15976, 32608, 32618}, {16414, 16008, 16012, 16016, 16020, 16277, 32627}, {0, 0, 0, 0, 0, 0, 0}, {32631, 32640, 32650, 32658, 10844, 3734, 32666, 32672, 32681, 32690, 32699, 32708, 0}, {32631, 32640, 32650, 32658, 10844, 3734, 32666, 32672, 32681, 32690, 32699, 32708, 0}, {2759, 2763, 16027, 32717, 10844, 2776, 2780, 20182, 18406, 2792, 32721, 16383, 0}, {2759, 2763, 16027, 32717, 10844, 2776, 2780, 20182, 18406, 2792, 32721, 16383, 0}, 0, 0, 185, 187, {189,1681,1735,1692,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {32725, 32738, 32743, {32748, 32755, 32770, 32784, 32800, 32815, 32831}, {6289, 32846, 2530, 32850, 32854, 32858, 32862}, {2023, 12842, 2428, 2018, 2023, 2430, 12842}, {7370, 7378, 32866, 32873, 32880, 2469, 2474, 32885, 32895, 32906, 32915, 32925, 0}, {7370, 7378, 32866, 32873, 32880, 2469, 2474, 32885, 32895, 32906, 32915, 32925, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, 0, 0, 2566, 187, {1128,1139,1692,2568,0,0,0,0,0,0,0,0,0,0},{32935,2300,4769,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 32954, 32959, {32964, 32980, 32988, 32996, 33005, 33017, 33027}, {33037, 33043, 33049, 33053, 33057, 33065, 3701}, {0, 0, 0, 0, 0, 0, 0}, {33072, 33085, 33099, 33108, 33114, 33118, 33123, 33131, 16338, 33144, 16355, 16363, 0}, {33072, 33085, 33099, 33108, 33114, 33118, 33123, 33131, 16338, 33144, 16355, 16363, 0}, {33153, 2763, 33157, 16371, 33114, 33161, 2780, 33165, 2788, 33173, 2796, 16383, 0}, {33153, 2763, 33157, 16371, 33114, 33161, 2780, 33165, 2788, 33173, 2796, 16383, 0}, 0, 0, 185, 187, {2277,2286,189,198,1735,1692,3809,0,0,0,0,0,0,0},{20186,20206,222,10751,0,0,0,0,0,0},{2313,0,0,0,0,0,0,0,0,0,0,0},{2326,0,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {33179, 33206, 33213, {33220, 33230, 33240, 33250, 33260, 33270, 33280}, {33290, 33297, 33304, 33311, 33318, 33325, 33332}, {33339, 33343, 33347, 33351, 33355, 33359, 33363}, {33367, 33374, 33381, 33388, 33395, 33402, 33409, 33416, 33423, 33430, 33437, 33447, 0}, {33367, 33374, 33381, 33388, 33395, 33402, 33409, 33416, 33423, 33430, 33437, 33447, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 0, 185, 187, {1654,1663,1672,1703,1692,1681,0,0,0,0,0,0,0,0},{33457,33481,33511,33541,33558,0,0,0,0,0},{1858,843,251,0,0,0,0,0,0,0,0,0},{1875,848,269,0,0,0,0,0,0},{33581,1914,0,0,0,0,0,0}},
-       {289, 0, 0, {28300, 8413, 33598, 33605, 33615, 33620, 33627}, {33634, 6273, 33638, 4850, 33643, 33648, 33653}, {4421, 33658, 33661, 33664, 33667, 33670, 33673}, {33676, 33683, 33598, 33694, 33700, 33704, 33713, 33720, 33725, 33734, 33739, 33742, 0}, {33676, 33683, 33598, 33694, 33700, 33704, 33713, 33720, 33725, 33734, 33739, 33742, 0}, {33748, 33752, 33759, 28423, 33700, 33764, 33769, 33720, 33774, 33734, 33739, 33779, 0}, {33748, 33752, 33759, 28423, 33700, 33764, 33769, 33720, 33774, 33734, 33739, 33779, 0}, 2, 1, 185, 187, {198,189,1167,1139,1692,0,0,0,0,0,0,0,0,0},{4985,5002,1242,0,0,0,0,0,0,0},{251,843,4288,5011,5021,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {33936, 33954, 33959, {33964, 33989, 34018, 34043, 34056, 34071, 34088}, {34103, 34108, 34113, 34118, 34123, 34128, 8800}, {19442, 19442, 34133, 8811, 8814, 19442, 8811}, {34136, 34155, 34170, 34192, 34212, 34228, 34244, 34258, 34284, 34308, 34325, 34342, 0}, {34136, 34155, 34170, 34192, 34212, 34228, 34244, 34258, 34284, 34308, 34325, 34342, 0}, {34359, 34368, 34377, 34391, 34405, 34417, 34429, 34439, 34455, 34469, 34476, 34483, 0}, {34359, 34368, 34377, 34391, 34405, 34417, 34429, 34439, 34455, 34469, 34476, 34483, 0}, 0, 1, 691, 187, {1156,4753,1692,34490,34500,0,0,0,0,0,0,0,0,0},{34513,34548,34577,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{34612,0,0,0,0,0,0,0}},
-       {20057, 0, 0, {34628, 34640, 34651, 34663, 34675, 34685, 34697}, {34712, 34717, 34722, 34727, 34732, 34737, 34742}, {0, 0, 0, 0, 0, 0, 0}, {34747, 34756, 34768, 34776, 34781, 34791, 34798, 34807, 34814, 34820, 34829, 34840, 0}, {34747, 34756, 34768, 34776, 34781, 34791, 34798, 34807, 34814, 34820, 34829, 34840, 0}, {34848, 34853, 34858, 34863, 34868, 34873, 34878, 34732, 34883, 34888, 34893, 34898, 0}, {34848, 34853, 34858, 34863, 34868, 34873, 34878, 34732, 34883, 34888, 34893, 34898, 0}, 0, 0, 185, 187, {9796,2286,0,0,0,0,0,0,0,0,0,0,0,0},{34903,1207,0,0,0,0,0,0,0,0},{843,0,0,0,0,0,0,0,0,0,0,0},{848,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 34923, 34925, {34927, 34940, 34948, 34957, 34967, 34977, 34986}, {34998, 35002, 35006, 35010, 35014, 35018, 35022}, {2673, 2436, 2428, 7736, 12842, 5694, 2023}, {35026, 35040, 35051, 35060, 35071, 35083, 35097, 35109, 35122, 35135, 35147, 35160, 0}, {35026, 35040, 35051, 35060, 35071, 35083, 35097, 35109, 35122, 35135, 35147, 35160, 0}, {35174, 35179, 35185, 35191, 35196, 35202, 35208, 35213, 35219, 35224, 19163, 35230, 0}, {35174, 35179, 35185, 35191, 35196, 35202, 35208, 35213, 35219, 35224, 19163, 35230, 0}, 2, 1, 185, 187, {198,189,2286,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,242,3594,0,0,0,0,0,0,0,0},{269,848,257,3602,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1, 35305, 35308, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35408, 35411, 35414, 35417, 35420, 13574, 13565}, {35423, 35447, 35456, 35465, 35476, 35485, 35498, 35507, 35512, 35523, 35545, 35569, 0}, {35423, 35447, 35456, 35465, 35476, 35485, 35498, 35507, 35512, 35523, 35545, 35569, 0}, {35423, 35447, 35456, 35465, 35476, 35485, 35498, 35507, 35512, 35523, 35545, 35569, 0}, {35423, 35447, 35456, 35465, 35476, 35485, 35498, 35507, 35512, 35523, 35545, 35569, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {10033, 10046, 10049, {10052, 10060, 10068, 2368, 2375, 2383, 10075}, {10083, 10088, 10093, 2411, 2415, 2419, 10097}, {2023, 2428, 2430, 2432, 2430, 2434, 2436}, {7370, 7378, 4887, 2459, 2465, 2469, 2474, 10102, 2486, 2496, 2504, 2513, 0}, {7370, 7378, 4887, 2459, 2465, 2469, 2474, 10102, 2486, 2496, 2504, 2513, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, 2, 1, 2566, 187, {1692,5888,0,0,0,0,0,0,0,0,0,0,0,0},{10110,10128,0,0,0,0,0,0,0,0},{251,843,7529,0,0,0,0,0,0,0,0,0},{269,848,7585,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 0, 0, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 0, 185, 187, {2277,2286,189,198,8579,10151,1692,0,0,0,0,0,0,0},{1242,10163,10179,0,0,0,0,0,0,0},{843,251,3594,242,0,0,0,0,0,0,0,0},{848,269,3602,257,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 10221, 10226, {10230, 10236, 10246, 10252, 10263, 10273, 10278}, {10288, 10292, 10296, 10300, 10305, 10309, 10313}, {2018, 2018, 2023, 10317, 2018, 7736, 7736}, {10320, 10325, 10332, 10337, 10343, 10350, 10358, 10365, 10374, 10381, 10386, 10393, 0}, {10320, 10325, 10332, 10337, 10343, 10350, 10358, 10365, 10374, 10381, 10386, 10393, 0}, {10401, 10405, 3761, 10410, 3730, 10414, 10418, 10422, 10427, 10431, 10435, 10439, 0}, {10401, 10405, 3761, 10410, 3730, 10414, 10418, 10422, 10427, 10431, 10435, 10439, 0}, 0, 1, 691, 187, {4753,4762,1156,1167,0,0,0,0,0,0,0,0,0,0},{10443,1242,10460,5505,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1, 10478, 10496, {10514, 10525, 10538, 10547, 10554, 10567, 10576}, {10514, 10525, 10538, 10547, 10554, 10567, 10576}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {10585, 10596, 10607, 10616, 10627, 10634, 10641, 10654, 10663, 10674, 10687, 10698, 0}, {10585, 10596, 10607, 10616, 10627, 10634, 10641, 10654, 10663, 10674, 10687, 10698, 0}, {10585, 10596, 10607, 10616, 10627, 10634, 10641, 10654, 10663, 10674, 10687, 10698, 0}, {10585, 10596, 10607, 10616, 10627, 10634, 10641, 10654, 10663, 10674, 10687, 10698, 0}, 0, 0, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1, 1929, 1932, {10723, 10730, 10736, 10743, 10748, 10754, 10760}, {10766, 10770, 10774, 10778, 10782, 10786, 10790}, {2428, 2023, 2023, 10794, 4442, 3987, 2023}, {10796, 10804, 10813, 2696, 10819, 2706, 2711, 10823, 2723, 2733, 2741, 10831, 0}, {10796, 10804, 10813, 2696, 10819, 2706, 2711, 10823, 2723, 2733, 2741, 10831, 0}, {2759, 2763, 3761, 2772, 10819, 2776, 2780, 10840, 2788, 2792, 2796, 10844, 0}, {2759, 2763, 3761, 2772, 10819, 2776, 2780, 10840, 2788, 2792, 2796, 10844, 0}, 0, 0, 185, 187, {198,189,1128,0,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 10848, 10853, {10858, 10871, 10890, 10907, 10920, 10933, 10950}, {10963, 8775, 8780, 8785, 8790, 8795, 8800}, {10968, 8808, 8805, 8811, 8814, 8808, 8811}, {10971, 10984, 10995, 11012, 11027, 11042, 11057, 11070, 11085, 11102, 11117, 11134, 0}, {11149, 11160, 11173, 11188, 11201, 11214, 11227, 11238, 11251, 11266, 11279, 11298, 0}, {11311, 11318, 11325, 11332, 11339, 11346, 11353, 11360, 11367, 11374, 11381, 11388, 0}, {11311, 11318, 11325, 11332, 11339, 11346, 11353, 11360, 11367, 11374, 11381, 11388, 0}, 0, 1, 691, 187, {1156,1167,1692,0,0,0,0,0,0,0,0,0,0,0},{11395,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{11413,0,0,0,0,0,0,0}},
+       {289, 11429, 11442, {11455, 11470, 11491, 11506, 11519, 11532, 10950}, {421, 426, 11547, 436, 11552, 446, 451}, {456, 459, 11557, 465, 468, 459, 465}, {11560, 11577, 11586, 11601, 521, 11618, 11633, 11646, 11661, 11678, 11699, 11716, 0}, {11731, 11748, 11761, 11778, 9017, 11797, 11812, 11825, 11838, 11853, 11876, 11895, 0}, {11908, 11915, 11922, 11929, 521, 11936, 11943, 11950, 11957, 11964, 11971, 11978, 0}, {11908, 11915, 11922, 11929, 521, 11936, 11943, 11950, 11957, 11964, 11971, 11978, 0}, 0, 0, 691, 187, {1167,0,0,0,0,0,0,0,0,0,0,0,0,0},{1242,0,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1921, 11985, 11990, {11995, 12003, 12014, 12020, 12026, 12035, 1985}, {9246, 9250, 2415, 12041, 9262, 9267, 12045}, {9275, 9277, 12049, 9281, 9283, 9277, 9281}, {2438, 2445, 9672, 2459, 2465, 12051, 12057, 12063, 2486, 2496, 2504, 2513, 0}, {2438, 2445, 9672, 2459, 2465, 12051, 12057, 12063, 2486, 2496, 2504, 2513, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {4753,4762,2266,1156,12074,1167,9806,0,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {12084, 12093, 12098, {12103, 12114, 12125, 12136, 12147, 12158, 12164}, {2018, 9924, 2430, 4442, 2016, 10794, 2436}, {2018, 9924, 2430, 4442, 2016, 10794, 2436}, {12173, 12181, 12190, 12197, 4898, 12204, 12210, 2479, 2486, 12216, 2504, 12225, 0}, {12173, 12181, 12190, 12197, 4898, 12204, 12210, 2479, 2486, 12216, 2504, 12225, 0}, {12235, 12240, 12190, 2534, 4898, 12204, 12210, 2546, 12246, 2554, 2558, 12251, 0}, {12235, 12240, 12190, 2534, 4898, 12204, 12210, 2546, 12246, 2554, 2558, 12251, 0}, 2, 1, 691, 187, {7519,1156,1167,1692,0,0,0,0,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1921, 12256, 12273, {12287, 12298, 12308, 12317, 12328, 12340, 12351}, {12361, 12364, 12367, 12370, 12373, 12376, 12379}, {2023, 2018, 2432, 2430, 7736, 2018, 2023}, {12382, 12392, 12403, 12409, 12418, 12424, 12432, 12440, 12448, 12459, 12468, 12478, 0}, {12488, 12498, 2453, 12509, 12518, 12524, 12532, 12540, 12548, 12559, 12568, 12578, 0}, {12588, 12594, 12403, 12600, 12418, 12605, 12611, 12617, 4190, 12622, 4201, 12627, 0}, {12588, 12594, 12403, 12600, 12418, 12605, 12611, 12617, 4190, 12622, 4201, 12627, 0}, 0, 1, 691, 187, {9517,9539,12632,0,0,0,0,0,0,0,0,0,0,0},{12644,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{12671,0,0,0,0,0,0,0}},
+       {12689, 12701, 11990, {12707, 12719, 12731, 12743, 12757, 12772, 12785}, {12799, 12802, 12805, 12808, 12811, 12814, 9660}, {2023, 2018, 12817, 2430, 4442, 2018, 9669}, {12819, 12826, 12834, 12840, 12849, 12858, 12868, 12874, 12885, 12895, 12902, 12912, 0}, {12819, 12826, 12834, 12840, 12849, 12858, 12868, 12874, 12885, 12895, 12902, 12912, 0}, {12920, 12926, 12931, 12936, 12941, 12946, 12953, 12959, 12965, 12971, 12977, 12984, 0}, {12920, 12926, 12931, 12936, 12941, 12946, 12953, 12959, 12965, 12971, 12977, 12984, 0}, 2, 1, 2566, 187, {1692,2568,0,0,0,0,0,0,0,0,0,0,0,0},{12991,0,0,0,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{13013,0,0,0,0,0,0,0}},
+       {1, 13028, 13040, {13052, 13067, 13082, 13097, 13114, 13133, 13144}, {13155, 13162, 13169, 13176, 13183, 13190, 13197}, {0, 0, 0, 0, 0, 0, 0}, {13204, 13215, 8845, 13228, 8867, 13239, 13246, 8892, 13253, 13268, 13281, 13292, 0}, {13204, 13215, 8845, 13228, 8867, 13239, 13246, 8892, 13253, 13268, 13281, 13292, 0}, {13305, 13312, 13319, 13326, 8867, 13239, 13246, 13333, 13340, 13347, 13354, 13361, 0}, {13305, 13312, 13319, 13326, 8867, 13239, 13246, 13333, 13340, 13347, 13354, 13361, 0}, 0, 1, 691, 187, {1156,1167,4762,1128,189,0,0,0,0,0,0,0,0,0},{13368,13386,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 13405, 13425, {13442, 13455, 13468, 13484, 13501, 13516, 13525}, {13442, 13455, 13468, 13484, 13501, 13516, 13525}, {13534, 13537, 13540, 13543, 13546, 13549, 13552}, {13555, 13568, 13579, 13588, 13599, 13604, 13613, 13624, 13631, 13646, 13657, 13670, 0}, {13683, 13698, 13579, 13588, 13711, 13604, 13718, 13624, 13631, 13646, 13657, 13670, 0}, {13555, 13568, 13579, 13588, 13599, 13604, 13613, 13624, 13631, 13646, 13657, 13670, 0}, {13555, 13568, 13579, 13588, 13599, 13604, 13613, 13624, 13631, 13646, 13657, 13670, 0}, 0, 6, 185, 187, {198,189,0,0,0,0,0,0,0,0,0,0,0,0},{13731,5505,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1, 13750, 13753, {13756, 13769, 13779, 13788, 13798, 13809, 13820}, {13832, 13835, 13840, 13845, 13850, 13855, 13860}, {13832, 13865, 13868, 13871, 13874, 13877, 13880}, {13883, 13892, 13901, 13910, 13919, 13928, 13937, 13946, 13955, 13964, 13974, 13984, 0}, {13994, 14003, 14012, 14021, 14030, 14039, 14048, 14057, 14066, 14075, 14085, 14095, 0}, {14105, 14111, 14117, 14123, 14129, 14135, 14141, 14147, 14153, 14159, 14166, 14173, 0}, {14105, 14111, 14117, 14123, 14129, 14135, 14141, 14147, 14153, 14159, 14166, 14173, 0}, 0, 1, 185, 187, {198,189,1139,1128,1692,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 14180, 14204, {14228, 14241, 14262, 14281, 14302, 14321, 14334}, {14345, 14352, 14359, 14366, 14373, 14380, 14387}, {14394, 14397, 14397, 14400, 14403, 14406, 14411}, {14414, 14429, 14444, 14453, 14464, 14475, 14488, 14501, 14516, 14535, 14554, 14571, 0}, {14590, 14607, 14624, 14635, 14648, 14661, 14676, 14691, 14708, 14729, 14750, 14769, 0}, {14790, 14797, 14804, 14811, 14818, 14825, 14832, 14839, 14846, 14853, 14860, 14867, 0}, {14790, 14797, 14804, 14811, 14818, 14825, 14832, 14839, 14846, 14853, 14860, 14867, 0}, 0, 1, 691, 187, {1156,1167,9796,198,14874,3582,1692,0,0,0,0,0,0,0},{3870,1207,13731,5505,14885,14896,14908,14925,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {14943, 14949, 14963, 14986, 15000, 15016, 15023}, {15032, 15035, 15040, 15046, 15050, 7736, 15055}, {6617, 6605, 6607, 6609, 6611, 6613, 6615}, {15059, 15066, 10332, 15073, 3730, 15079, 15085, 15091, 15098, 15107, 15115, 15122, 0}, {15129, 15136, 15143, 15148, 15154, 15158, 15163, 15168, 15175, 15184, 15192, 15199, 0}, {15206, 8135, 2530, 2534, 15154, 15210, 15214, 15218, 15222, 2554, 15226, 15230, 0}, {15206, 8135, 2530, 2534, 15154, 15210, 15214, 15218, 15222, 2554, 15226, 15230, 0}, 0, 1, 691, 187, {1156,1167,4762,189,1692,0,0,0,0,0,0,0,0,0},{15234,0,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {15256, 1929, 1932, {15271, 15279, 15290, 15300, 15311, 15320, 15329}, {15339, 15343, 15347, 15351, 15355, 15359, 15363}, {15367, 12817, 12817, 12817, 2432, 2432, 2436}, {15369, 15379, 15387, 15395, 15403, 15411, 15418, 15426, 15434, 15441, 15447, 15454, 0}, {15462, 15473, 15482, 15491, 15500, 15509, 15517, 15526, 15535, 15543, 15550, 15558, 0}, {15567, 15572, 4845, 15577, 15582, 15587, 15592, 15597, 15602, 15607, 15612, 15617, 0}, {15567, 15572, 4845, 15577, 15582, 15587, 15592, 15597, 15602, 15607, 15612, 15617, 0}, 2, 1, 185, 187, {1681,1692,0,0,0,0,0,0,0,0,0,0,0,0},{15622,0,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{15655,0,0,0,0,0,0,0}},
+       {289, 15672, 15693, {15710, 331, 352, 8714, 15723, 15740, 15751}, {15764, 15772, 15780, 15786, 15794, 15802, 15810}, {456, 459, 462, 465, 468, 459, 465}, {15818, 484, 501, 510, 15833, 15840, 15849, 542, 555, 574, 591, 606, 0}, {15818, 484, 501, 510, 15833, 15840, 15849, 542, 555, 574, 591, 606, 0}, {15858, 15866, 15874, 639, 15833, 15882, 15890, 647, 655, 665, 673, 683, 0}, {15858, 15866, 15874, 639, 15833, 15882, 15890, 647, 655, 665, 673, 683, 0}, 0, 1, 691, 187, {1156,1167,15898,0,0,0,0,0,0,0,0,0,0,0},{13731,0,0,0,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 0, 0, {15915, 15922, 15933, 15942, 15951, 15958, 15969}, {15979, 15983, 15987, 15991, 15995, 15998, 16002}, {0, 0, 0, 0, 0, 0, 0}, {16006, 16016, 16025, 16033, 16042, 16055, 16067, 16074, 16081, 16088, 16098, 16110, 0}, {16006, 16016, 16025, 16033, 16042, 16055, 16067, 16074, 16081, 16088, 16098, 16110, 0}, {16123, 16127, 16131, 16135, 16139, 16143, 16147, 16151, 16155, 16159, 16163, 16167, 0}, {16123, 16127, 16131, 16135, 16139, 16143, 16147, 16151, 16155, 16159, 16163, 16167, 0}, 0, 0, 185, 187, {189,1681,1735,1692,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 0, 0, {16171, 16176, 16182, 16192, 16204, 16212, 16223}, {16232, 16236, 16240, 16244, 16248, 16252, 16256}, {0, 0, 0, 0, 0, 0, 0}, {16260, 16270, 16280, 16287, 16294, 2706, 16299, 16306, 16313, 16322, 16330, 16338, 0}, {16260, 16270, 16280, 16287, 16294, 2706, 16299, 16306, 16313, 16322, 16330, 16338, 0}, {2759, 2763, 16002, 16346, 16350, 2776, 2780, 16354, 2788, 2792, 2796, 16358, 0}, {2759, 2763, 16002, 16346, 16350, 2776, 2780, 16354, 2788, 2792, 2796, 16358, 0}, 0, 0, 185, 187, {1681,1735,1692,0,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {16362, 16368, 16379, 16192, 16204, 16212, 16223}, {16389, 16393, 16397, 16244, 16248, 16252, 16256}, {2023, 2428, 16401, 2430, 2023, 5694, 2428}, {16403, 16413, 16424, 16431, 16440, 16446, 16452, 16460, 16468, 16479, 16489, 16498, 0}, {16507, 16270, 16516, 16522, 16294, 2706, 16299, 16306, 16529, 16322, 16330, 16338, 0}, {2759, 2763, 16539, 2772, 16350, 2776, 2780, 16354, 2788, 2792, 2796, 16358, 0}, {2759, 2763, 16539, 2772, 16350, 2776, 2780, 16354, 2788, 2792, 2796, 16358, 0}, 0, 0, 2566, 187, {1128,1139,189,1681,1735,1692,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 16543, 16547, {16551, 16558, 16566, 16574, 16583, 16593, 16600}, {2652, 16609, 2658, 16612, 2664, 16615, 2670}, {2023, 2428, 2673, 3705, 2673, 3989, 2023}, {16618, 16627, 16637, 2696, 10819, 16643, 16649, 16655, 2723, 2733, 2741, 10831, 0}, {16618, 16627, 16637, 2696, 10819, 16643, 16649, 16655, 2723, 2733, 2741, 10831, 0}, {2759, 2763, 3761, 2772, 10819, 2776, 2780, 2784, 2788, 2792, 2796, 10844, 0}, {2759, 2763, 3761, 2772, 10819, 2776, 2780, 2784, 2788, 2792, 2796, 10844, 0}, 0, 0, 185, 187, {1681,1735,1692,16664,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {16676, 16692, 16717, 16745, 16773, 16801, 16829}, {16848, 16858, 16868, 16878, 16888, 16898, 16908}, {16918, 16922, 16926, 16922, 16930, 16934, 16938}, {16942, 16964, 16992, 17008, 17027, 17043, 17062, 17081, 17103, 17134, 17162, 17187, 0}, {16942, 16964, 16992, 17008, 17027, 17043, 17062, 17081, 17103, 17134, 17162, 17187, 0}, {17215, 17225, 17235, 17245, 17255, 17265, 17275, 17285, 17295, 17305, 17315, 17325, 0}, {17215, 17225, 17235, 17245, 17255, 17265, 17275, 17285, 17295, 17305, 17315, 17325, 0}, 0, 1, 691, 187, {1156,1167,7419,1176,4762,4753,1692,0,0,0,0,0,0,0},{17335,17369,17402,3870,17436,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 17448, 17453, {5932, 17458, 17469, 17479, 17489, 17499, 17513}, {17525, 17529, 17534, 17539, 17543, 17548, 17553}, {2023, 2428, 2430, 2428, 5694, 2434, 2436}, {2438, 2445, 4887, 6077, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2438, 2445, 4887, 6077, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, 2, 1, 2566, 187, {1128,1139,1692,0,0,0,0,0,0,0,0,0,0,0},{2300,0,0,0,0,0,0,0,0,0},{251,4288,0,0,0,0,0,0,0,0,0,0},{269,4302,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1, 17557, 17573, {17583, 17602, 17621, 17643, 17662, 17684, 17709}, {17728, 17738, 17748, 17761, 17771, 17784, 17800}, {17810, 17814, 17821, 17828, 17835, 17842, 17849}, {17853, 17869, 17888, 17904, 17923, 17930, 17940, 17956, 17972, 17991, 18013, 18029, 0}, {17853, 17869, 17888, 17904, 17923, 17930, 17940, 17956, 17972, 17991, 18013, 18029, 0}, {18048, 18055, 17888, 18065, 17923, 17930, 18081, 18094, 18101, 18114, 18130, 18140, 0}, {18048, 18055, 17888, 18065, 17923, 17930, 18081, 18094, 18101, 18114, 18130, 18140, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {18153, 18167, 18170, {18173, 18182, 18191, 18201, 18211, 18221, 18233}, {18241, 18246, 18250, 18254, 18258, 18263, 18268}, {18272, 2430, 2430, 9924, 18272, 18275, 2023}, {18278, 18285, 18290, 2696, 18296, 18302, 18309, 18315, 18323, 18333, 18341, 18350, 0}, {18278, 18285, 18290, 2696, 18296, 18302, 18309, 18315, 18323, 18333, 18341, 18350, 0}, {2759, 18360, 3761, 2772, 18364, 18368, 18373, 18377, 18381, 18385, 2796, 18389, 0}, {2759, 18360, 3761, 2772, 18364, 18368, 18373, 18377, 18381, 18385, 2796, 18389, 0}, 0, 0, 185, 187, {198,1692,18394,7410,2277,0,0,0,0,0,0,0,0,0},{18403,18428,10151,0,0,0,0,0,0,0},{251,3594,843,0,0,0,0,0,0,0,0,0},{269,3602,848,3594,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {18447, 18460, 18465, {18470, 18482, 18493, 18507, 18519, 18529, 18539}, {18550, 18555, 18560, 18565, 18570, 18575, 18580}, {2023, 3989, 2428, 6293, 2673, 16401, 2436}, {18585, 18602, 18615, 18629, 18642, 18655, 18668, 18682, 18694, 18708, 18722, 18736, 0}, {18585, 18602, 18615, 18629, 18642, 18655, 18668, 18682, 18694, 18708, 18722, 18736, 0}, {18749, 18756, 18761, 18766, 18770, 18775, 18780, 18785, 18790, 18797, 18802, 18808, 0}, {18749, 18756, 18761, 18766, 18770, 18775, 18780, 18785, 18790, 18797, 18802, 18808, 0}, 2, 1, 691, 187, {1156,1167,4762,1692,0,0,0,0,0,0,0,0,0,0},{18813,18837,0,0,0,0,0,0,0,0},{251,843,4288,0,0,0,0,0,0,0,0,0},{269,848,4302,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {20032, 1929, 1932, {20040, 20049, 20058, 20066, 20075, 20084, 20091}, {20100, 20103, 20106, 20109, 20112, 20116, 20119}, {6607, 6609, 6611, 6613, 12817, 15367, 6605}, {10796, 10804, 20122, 20128, 10819, 2706, 19196, 20135, 16313, 20142, 16330, 20149, 0}, {10796, 10804, 20122, 20128, 10819, 2706, 19196, 20135, 16313, 20142, 16330, 20149, 0}, {2759, 2763, 19192, 2772, 10819, 2776, 2780, 20157, 2788, 2792, 2796, 10844, 0}, {2759, 2763, 19192, 2772, 10819, 2776, 2780, 20157, 2788, 2792, 2796, 10844, 0}, 0, 0, 185, 187, {3773,3782,3789,3798,1735,1692,3809,0,0,0,0,0,0,0},{20161,20181,222,10709,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {20195, 1929, 1932, {20202, 20212, 20221, 20230, 20241, 20251, 20256}, {20263, 20269, 20274, 20279, 20284, 10786, 20288}, {20293, 2673, 2023, 7736, 2018, 3987, 2023}, {15059, 15066, 10332, 15073, 3730, 20295, 20300, 20305, 15098, 15107, 15115, 15122, 0}, {15059, 15066, 10332, 15073, 3730, 20295, 20300, 20305, 15098, 15107, 15115, 15122, 0}, {20312, 20317, 3761, 2772, 3730, 20295, 20300, 20321, 10770, 2792, 20325, 20330, 0}, {20312, 20317, 3761, 2772, 3730, 20295, 20300, 20321, 10770, 2792, 20325, 20330, 0}, 0, 1, 691, 187, {1156,0,0,0,0,0,0,0,0,0,0,0,0,0},{20334,1242,5505,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 20352, 20380, {20402, 20421, 20440, 20465, 20484, 20518, 20543}, {20562, 20572, 20582, 20598, 20608, 20633, 20649}, {20659, 20663, 20670, 20674, 20681, 20688, 20695}, {20699, 20727, 20761, 20777, 20796, 20803, 20813, 20829, 20845, 20876, 20898, 20920, 0}, {20699, 20727, 20761, 20777, 20796, 20803, 20813, 20829, 20845, 20876, 20898, 20920, 0}, {20699, 20727, 20761, 20777, 20796, 20803, 20813, 20829, 20845, 20876, 20898, 20920, 0}, {20699, 20727, 20761, 20777, 20796, 20803, 20813, 20829, 20845, 20876, 20898, 20920, 0}, 0, 0, 2566, 187, {1139,2293,1128,20945,20958,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{4288,2321,20973,20982,0,0,0,0,0,0,0,0},{4302,2337,20990,21002,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1, 1929, 1932, {21482, 21501, 21520, 21542, 21561, 21583, 21608}, {21627, 21637, 21647, 21660, 21670, 21683, 21699}, {21709, 21713, 21720, 21727, 21734, 21741, 21748}, {21752, 21780, 21808, 21824, 21843, 21850, 21860, 21876, 21892, 21920, 21942, 21964, 0}, {21752, 21780, 21808, 21824, 21843, 21850, 21860, 21876, 21892, 21920, 21942, 21964, 0}, {21989, 22008, 21808, 21824, 21843, 21850, 21860, 22027, 22034, 22050, 22066, 22076, 0}, {21989, 22008, 21808, 21824, 21843, 21850, 21860, 22027, 22034, 22050, 22066, 22076, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1, 8151, 22089, {22092, 22111, 22130, 22155, 22174, 22196, 22221}, {22240, 22250, 22260, 22276, 22286, 22299, 22315}, {22325, 22329, 22336, 22340, 22347, 22354, 22361}, {22365, 22387, 22418, 22440, 22459, 22466, 22476, 22492, 22508, 22539, 22561, 22583, 0}, {22365, 22387, 22418, 22440, 22459, 22466, 22476, 22492, 22508, 22539, 22561, 22583, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {289, 22608, 22633, {22658, 22677, 22699, 22724, 22740, 22762, 22781}, {22791, 22798, 22805, 22812, 22819, 22826, 22833}, {22791, 22798, 22805, 22812, 22819, 22826, 22833}, {22837, 22853, 22878, 22897, 22916, 22923, 22936, 22949, 22968, 22999, 23024, 23046, 0}, {22837, 22853, 22878, 22897, 22916, 22923, 22936, 23071, 22968, 22999, 23024, 23046, 0}, {23090, 23098, 23112, 23126, 22916, 22923, 22936, 23137, 23145, 23159, 23170, 23178, 0}, {23090, 23098, 23112, 23126, 22916, 22923, 22936, 23137, 23145, 23159, 23170, 23178, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {3613, 1929, 1932, {23189, 23211, 23233, 23258, 23280, 23305, 23333}, {23355, 23365, 23375, 23388, 23398, 23411, 23427}, {23437, 23441, 23448, 23452, 23459, 23466, 23473}, {23477, 23493, 23518, 23537, 23559, 23566, 23579, 23592, 23611, 23642, 23667, 23686, 0}, {23477, 23493, 23518, 23537, 23559, 23566, 23711, 23592, 23611, 23642, 23667, 23686, 0}, {23724, 23731, 23518, 23747, 23559, 23566, 23711, 23592, 23763, 23785, 23801, 23811, 0}, {23724, 23731, 23518, 23747, 23559, 23566, 23711, 23592, 23763, 23785, 23801, 23811, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {3613, 1929, 1932, {23827, 23846, 23865, 23887, 23906, 23928, 23953}, {23972, 23982, 23992, 24005, 24015, 24028, 24044}, {24054, 24058, 24065, 24072, 24079, 24086, 24093}, {24097, 24113, 24138, 24157, 24179, 24186, 24199, 24212, 24231, 24259, 24284, 24306, 0}, {24097, 24113, 24138, 24157, 24179, 24186, 24199, 24212, 24231, 24259, 24284, 24306, 0}, {24331, 24339, 24359, 24366, 24179, 24383, 24390, 24398, 24406, 24429, 24446, 24460, 0}, {24331, 24339, 24359, 24366, 24179, 24383, 24390, 24398, 24406, 24429, 24446, 24460, 0}, 0, 0, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {20032, 1929, 1932, {24477, 24505, 24539, 24567, 24595, 24626, 24663}, {24691, 24704, 24723, 24739, 24752, 24771, 24790}, {24800, 24807, 24814, 24821, 24828, 24841, 24848}, {24852, 24871, 24899, 24921, 24940, 24953, 24963, 24976, 25001, 25032, 25057, 25073, 0}, {24852, 24871, 24899, 24921, 24940, 24953, 24963, 24976, 25001, 25032, 25057, 25073, 0}, {25092, 25102, 25121, 25131, 24940, 24953, 24963, 25147, 25154, 25179, 25195, 25205, 0}, {25092, 25102, 25121, 25131, 24940, 24953, 24963, 25147, 25154, 25179, 25195, 25205, 0}, 0, 0, 2566, 187, {1139,2293,1167,4762,0,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{4288,2321,20973,20982,0,0,0,0,0,0,0,0},{4302,2337,20990,21002,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {289, 25218, 25246, {25268, 25287, 25306, 25331, 25350, 25384, 25409}, {25428, 20572, 20582, 20598, 25438, 25463, 20649}, {0, 0, 0, 0, 0, 0, 0}, {25479, 25504, 25535, 25551, 20796, 20803, 20813, 25570, 25586, 25617, 25639, 25661, 0}, {25479, 25504, 25535, 25551, 20796, 20803, 20813, 25570, 25586, 25617, 25639, 25661, 0}, {25686, 25699, 25535, 25551, 20796, 20803, 20813, 25718, 25725, 25741, 25757, 25767, 0}, {25686, 25699, 25535, 25551, 20796, 20803, 20813, 25718, 25725, 25741, 25757, 25767, 0}, 0, 0, 2566, 187, {1128,0,0,0,0,0,0,0,0,0,0,0,0,0},{25780,0,0,0,0,0,0,0,0,0},{1858,1866,0,0,0,0,0,0,0,0,0,0},{1875,1886,0,0,0,0,0,0,0},{25799,25807,0,0,0,0,0,0}},
+       {1, 1929, 1932, {17583, 17602, 25817, 17643, 17662, 17684, 17709}, {17728, 17738, 25839, 17761, 17771, 17784, 17800}, {17810, 17814, 17821, 17828, 17835, 17842, 17849}, {25852, 25877, 17888, 25908, 25927, 17930, 25934, 25947, 25963, 25988, 26010, 26038, 0}, {25852, 25877, 17888, 25908, 25927, 17930, 25934, 25947, 25963, 25988, 26010, 26038, 0}, {26060, 26073, 17888, 26092, 25927, 17930, 25934, 26108, 26115, 26134, 26150, 26172, 0}, {26060, 26073, 17888, 26092, 25927, 17930, 25934, 26108, 26115, 26134, 26150, 26172, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {26920, 26944, 26966, {26991, 27019, 27047, 27084, 27115, 27149, 27174}, {27208, 27224, 27240, 27265, 27284, 27306, 27319}, {27341, 27348, 27355, 27362, 27369, 27376, 27380}, {27390, 27424, 27461, 27495, 27529, 27560, 27597, 27634, 27674, 27708, 27742, 27791, 0}, {27390, 27424, 27461, 27495, 27529, 27560, 27597, 27634, 27674, 27708, 27742, 27791, 0}, {27840, 27853, 27866, 27879, 27892, 27905, 27918, 27931, 27944, 27957, 27973, 27989, 0}, {27840, 27853, 27866, 27879, 27892, 27905, 27918, 27931, 27944, 27957, 27973, 27989, 0}, 0, 0, 185, 187, {1654,1663,1672,1703,1692,1681,1721,1714,1728,0,0,0,0,0},{28005,28048,28096,28128,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{28165,1914,0,0,0,0,0,0}},
+       {289, 1929, 1932, {28198, 28207, 28217, 28229, 28242, 28251, 28263}, {28275, 28279, 28284, 28288, 28292, 28296, 28300}, {2023, 28304, 2428, 2428, 15367, 6293, 2023}, {28307, 28314, 28323, 28330, 2702, 28337, 28345, 28356, 28361, 28366, 28373, 28382, 0}, {28307, 28314, 28323, 28330, 2702, 28337, 28345, 28356, 28361, 28366, 28373, 28382, 0}, {28390, 28394, 28284, 28398, 2702, 28402, 28406, 28356, 28361, 28410, 28414, 28419, 0}, {28390, 28394, 28284, 28398, 2702, 28402, 28406, 28356, 28361, 28410, 28414, 28419, 0}, 2, 1, 185, 187, {189,198,5002,8579,0,0,0,0,0,0,0,0,0,0},{1242,1207,0,0,0,0,0,0,0,0},{251,843,242,3594,0,0,0,0,0,0,0,0},{269,848,257,3602,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 28424, 28440, {28456, 28478, 28491, 28510, 28520, 28551, 28567}, {28456, 28478, 28491, 28510, 28520, 28551, 28567}, {6605, 6607, 6609, 6611, 6613, 6615, 6617}, {28580, 28593, 28612, 28625, 28638, 28651, 28670, 28689, 28702, 28718, 28731, 28756, 0}, {28580, 28593, 28612, 28625, 28638, 28651, 28670, 28689, 28702, 28718, 28731, 28756, 0}, {28580, 28593, 28612, 28625, 28638, 28651, 28670, 28689, 28702, 28718, 28731, 28756, 0}, {28580, 28593, 28612, 28625, 28638, 28651, 28670, 28689, 28702, 28718, 28731, 28756, 0}, 0, 0, 185, 187, {189,1692,0,0,0,0,0,0,0,0,0,0,0,0},{1242,10163,0,0,0,0,0,0,0,0},{843,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{28769,0,0,0,0,0,0,0}},
+       {289, 28804, 28829, {28854, 28879, 28898, 28926, 28945, 28970, 28989}, {28854, 28879, 28898, 28926, 28945, 28970, 28989}, {29011, 29015, 29019, 29023, 29033, 29037, 29047}, {29051, 29070, 29086, 29099, 29112, 29134, 29153, 29175, 29191, 29207, 29220, 29236, 0}, {29051, 29070, 29086, 29099, 29112, 29134, 29153, 29175, 29191, 29207, 29220, 29236, 0}, {29252, 29261, 29270, 29279, 29288, 29297, 29309, 29318, 29327, 29336, 29345, 29354, 0}, {29252, 29261, 29270, 29279, 29288, 29297, 29309, 29318, 29327, 29336, 29345, 29354, 0}, 0, 0, 185, 187, {198,29363,6480,0,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {3883, 7281, 7286, {3895, 29373, 3909, 29378, 29388, 29394, 3942}, {29401, 8413, 3761, 29405, 29410, 29414, 29418}, {2673, 2436, 2428, 2428, 29423, 3989, 2023}, {29425, 29433, 4005, 4011, 29442, 29447, 29453, 4034, 29459, 29468, 29476, 29485, 0}, {29494, 29502, 4094, 1012, 8083, 29511, 29517, 4117, 8100, 8109, 8117, 29523, 0}, {29532, 2763, 3761, 29536, 2702, 29540, 29545, 20157, 18381, 29549, 2796, 3769, 0}, {29532, 2763, 3761, 29536, 2702, 29540, 29545, 20157, 18381, 29549, 2796, 3769, 0}, 2, 1, 185, 187, {198,189,1120,2286,1139,1167,1692,0,0,0,0,0,0,0},{29553,4239,4266,1242,0,0,0,0,0,0},{843,251,242,29582,0,0,0,0,0,0,0,0},{848,269,257,29594,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {1, 29614, 29626, {29638, 17602, 29666, 17643, 17662, 17684, 17709}, {17728, 17738, 25839, 17761, 17771, 17784, 17800}, {0, 0, 0, 0, 0, 0, 0}, {25852, 25877, 17888, 25908, 25927, 17930, 25934, 29685, 29701, 29729, 26010, 26038, 0}, {25852, 25877, 17888, 25908, 25927, 17930, 25934, 29685, 29701, 29729, 26010, 26038, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,1866,1858,0,0,0,0,0,0,0,0},{269,848,1886,1875,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {20032, 29751, 29763, {29772, 29788, 29804, 29832, 29848, 29891, 29916}, {29772, 29788, 29944, 29832, 29954, 29976, 29989}, {29999, 30003, 30007, 30011, 30015, 30028, 30035}, {30042, 30061, 30086, 30105, 30130, 30143, 30156, 30169, 30191, 30225, 30250, 30278, 0}, {30042, 30061, 30086, 30105, 30130, 30143, 30156, 30169, 30191, 30225, 30250, 30278, 0}, {30306, 30313, 30323, 30105, 30130, 30143, 30156, 30336, 30346, 30359, 30369, 30382, 0}, {30306, 30313, 30323, 30105, 30130, 30143, 30156, 30336, 30346, 30359, 30369, 30382, 0}, 0, 1, 2566, 187, {1692,1681,1735,198,189,0,0,0,0,0,0,0,0,0},{30395,0,0,0,0,0,0,0,0,0},{1858,1866,843,251,0,0,0,0,0,0,0,0},{1875,1886,848,269,0,0,0,0,0},{30443,0,0,0,0,0,0,0}},
+       {30453, 30469, 30479, {30492, 30502, 30509, 30522, 30532, 30542, 30552}, {30492, 30502, 30562, 30522, 30532, 30542, 30552}, {30572, 30576, 30580, 30584, 30588, 30592, 30596}, {30600, 30616, 30632, 30642, 30655, 30662, 30669, 30679, 30692, 30711, 30727, 30743, 0}, {30600, 30616, 30632, 30642, 30655, 30662, 30669, 30679, 30692, 30759, 30727, 30743, 0}, {30778, 30788, 30632, 30798, 30655, 30662, 30669, 30808, 30818, 30828, 30838, 30848, 0}, {30778, 30788, 30632, 30798, 30655, 30662, 30669, 30808, 30818, 30828, 30838, 30848, 0}, 0, 0, 185, 187, {2277,1692,0,0,0,0,0,0,0,0,0,0,0,0},{30858,0,0,0,0,0,0,0,0,0},{3594,0,0,0,0,0,0,0,0,0,0,0},{3602,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1, 31125, 31166, {31207, 31226, 31245, 31270, 31289, 31311, 31336}, {31355, 17738, 31365, 17761, 31381, 17784, 17800}, {31394, 17814, 31398, 17828, 31402, 17842, 17849}, {17853, 31409, 17888, 31437, 25927, 31456, 17940, 31466, 31482, 31513, 31535, 31560, 0}, {17853, 31409, 17888, 31437, 25927, 31456, 17940, 31466, 31482, 31513, 31535, 31560, 0}, {17853, 31409, 17888, 31437, 25927, 31456, 17940, 31466, 31482, 31513, 31535, 31560, 0}, {17853, 31409, 17888, 31437, 25927, 31456, 17940, 31466, 31482, 31513, 31535, 31560, 0}, 0, 0, 185, 187, {3773,3782,3789,3798,1735,1692,3809,0,0,0,0,0,0,0},{20161,20181,222,10709,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{25807,0,0,0,0,0,0,0}},
+       {289, 0, 0, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {31585, 31592, 31601, 31616, 31627, 31636, 31643, 31650, 31657, 31668, 31681, 31694, 0}, {31585, 31592, 31601, 31616, 31627, 31636, 31643, 31650, 31657, 31668, 31681, 31694, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 6, 185, 187, {1654,1692,0,0,0,0,0,0,0,0,0,0,0,0},{31699,31720,0,0,0,0,0,0,0,0},{3594,843,0,0,0,0,0,0,0,0,0,0},{3602,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {31735, 1929, 1932, {31741, 31748, 31754, 31761, 31772, 31780, 31789}, {31796, 8413, 3761, 31800, 31804, 31808, 10790}, {2436, 2436, 2428, 2428, 5694, 16401, 2023}, {3991, 31812, 31820, 4011, 4017, 31826, 31832, 4034, 31838, 31848, 31856, 31866, 0}, {3991, 31812, 31820, 4011, 4017, 31826, 31832, 4034, 31838, 31848, 31856, 31866, 0}, {31876, 31880, 3761, 29536, 3730, 31884, 31888, 20157, 18381, 2792, 31892, 16358, 0}, {31876, 31880, 3761, 29536, 3730, 31884, 31888, 20157, 18381, 2792, 31892, 16358, 0}, 0, 0, 185, 187, {3773,3782,3789,3798,1735,1692,3809,0,0,0,0,0,0,0},{20161,20181,222,10709,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {289, 0, 0, {31896, 31903, 31911, 31918, 31925, 31933, 31941}, {31948, 31951, 31954, 31957, 31960, 31963, 31966}, {2436, 2436, 2430, 2436, 12817, 3987, 12817}, {31969, 31977, 31987, 31993, 32001, 32006, 32011, 32016, 32023, 20142, 32031, 32039, 0}, {31969, 31977, 31987, 31993, 32001, 32006, 32011, 32016, 32023, 20142, 32031, 32039, 0}, {2759, 32047, 3761, 32051, 3730, 31094, 31098, 32055, 3701, 2792, 32059, 16358, 0}, {2759, 32047, 3761, 32051, 3730, 31094, 31098, 32055, 3701, 2792, 32059, 16358, 0}, 0, 0, 185, 187, {2277,2286,189,198,1735,1692,3809,0,0,0,0,0,0,0},{20161,20181,222,10709,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1, 32063, 32074, {32084, 32102, 32117, 32139, 32152, 32166, 32183}, {32207, 32215, 32220, 32139, 32152, 32232, 32239}, {0, 0, 0, 0, 0, 0, 0}, {32253, 32275, 32291, 32311, 32325, 32342, 32357, 32374, 32388, 32401, 32420, 32434, 0}, {32253, 32275, 32291, 32311, 32325, 32342, 32357, 32374, 32388, 32401, 32420, 32434, 0}, {32453, 32468, 32477, 32490, 32497, 32507, 32515, 32525, 32532, 32538, 32550, 32557, 0}, {32453, 32468, 32477, 32490, 32497, 32507, 32515, 32525, 32532, 32538, 32550, 32557, 0}, 0, 0, 185, 187, {2277,2286,189,198,1735,1692,3809,0,0,0,0,0,0,0},{222,20161,20181,10709,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{25807,0,0,0,0,0,0,0}},
+       {3613, 0, 0, {32569, 32577, 15933, 15942, 15951, 32588, 32598}, {16389, 15983, 15987, 15991, 15995, 16252, 32607}, {0, 0, 0, 0, 0, 0, 0}, {32611, 32620, 32630, 32638, 10819, 3734, 32646, 32652, 32661, 32670, 32679, 32688, 0}, {32611, 32620, 32630, 32638, 10819, 3734, 32646, 32652, 32661, 32670, 32679, 32688, 0}, {2759, 2763, 16002, 32697, 10819, 2776, 2780, 20157, 18381, 2792, 32701, 16358, 0}, {2759, 2763, 16002, 32697, 10819, 2776, 2780, 20157, 18381, 2792, 32701, 16358, 0}, 0, 0, 185, 187, {189,1681,1735,1692,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,3594,251,0,0,0,0,0,0,0,0,0},{257,3602,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {32705, 32718, 32723, {32728, 32735, 32750, 32764, 32780, 32795, 32811}, {6289, 32826, 2530, 32830, 32834, 32838, 32842}, {2023, 12817, 2428, 2018, 2023, 2430, 12817}, {7370, 7378, 32846, 32853, 32860, 2469, 2474, 32865, 32875, 32886, 32895, 32905, 0}, {7370, 7378, 32846, 32853, 32860, 2469, 2474, 32865, 32875, 32886, 32895, 32905, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, 0, 0, 2566, 187, {1128,1139,1692,2568,0,0,0,0,0,0,0,0,0,0},{32915,2300,4769,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 32934, 32939, {32944, 32960, 32968, 32976, 32985, 32997, 33007}, {33017, 33023, 33029, 33033, 33037, 33045, 3701}, {0, 0, 0, 0, 0, 0, 0}, {33052, 33065, 33079, 33088, 33094, 33098, 33103, 33111, 16313, 33124, 16330, 16338, 0}, {33052, 33065, 33079, 33088, 33094, 33098, 33103, 33111, 16313, 33124, 16330, 16338, 0}, {33133, 2763, 33137, 16346, 33094, 33141, 2780, 33145, 2788, 33153, 2796, 16358, 0}, {33133, 2763, 33137, 16346, 33094, 33141, 2780, 33145, 2788, 33153, 2796, 16358, 0}, 0, 0, 185, 187, {2277,2286,189,198,1735,1692,3809,0,0,0,0,0,0,0},{20161,20181,222,10709,0,0,0,0,0,0},{2313,0,0,0,0,0,0,0,0,0,0,0},{2326,0,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {33159, 33186, 33193, {33200, 33210, 33220, 33230, 33240, 33250, 33260}, {33270, 33277, 33284, 33291, 33298, 33305, 33312}, {33319, 33323, 33327, 33331, 33335, 33339, 33343}, {33347, 33354, 33361, 33368, 33375, 33382, 33389, 33396, 33403, 33410, 33417, 33427, 0}, {33347, 33354, 33361, 33368, 33375, 33382, 33389, 33396, 33403, 33410, 33417, 33427, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, {6605, 6607, 6609, 6611, 6613, 6615, 6617, 6619, 6621, 6623, 6626, 6629, 0}, 0, 0, 185, 187, {1654,1663,1672,1703,1692,1681,0,0,0,0,0,0,0,0},{33437,33461,33491,33521,33538,0,0,0,0,0},{1858,843,251,0,0,0,0,0,0,0,0,0},{1875,848,269,0,0,0,0,0,0},{33561,1914,0,0,0,0,0,0}},
+       {289, 0, 0, {28275, 8413, 33578, 33585, 33595, 33600, 33607}, {33614, 6273, 33618, 4850, 33623, 33628, 33633}, {4421, 33638, 33641, 33644, 33647, 33650, 33653}, {33656, 33663, 33578, 33674, 33680, 33684, 33693, 33700, 33705, 33714, 33719, 33722, 0}, {33656, 33663, 33578, 33674, 33680, 33684, 33693, 33700, 33705, 33714, 33719, 33722, 0}, {33728, 33732, 33739, 28398, 33680, 33744, 33749, 33700, 33754, 33714, 33719, 33759, 0}, {33728, 33732, 33739, 28398, 33680, 33744, 33749, 33700, 33754, 33714, 33719, 33759, 0}, 2, 1, 185, 187, {198,189,1167,1139,1692,0,0,0,0,0,0,0,0,0},{4985,5002,1242,0,0,0,0,0,0,0},{251,843,4288,5011,5021,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {33916, 33934, 33939, {33944, 33969, 33998, 34023, 34036, 34051, 34068}, {34083, 34088, 34093, 34098, 34103, 34108, 8800}, {19417, 19417, 34113, 8811, 8814, 19417, 8811}, {34116, 34135, 34150, 34172, 34192, 34208, 34224, 34238, 34264, 34288, 34305, 34322, 0}, {34116, 34135, 34150, 34172, 34192, 34208, 34224, 34238, 34264, 34288, 34305, 34322, 0}, {34339, 34348, 34357, 34371, 34385, 34397, 34409, 34419, 34435, 34449, 34456, 34463, 0}, {34339, 34348, 34357, 34371, 34385, 34397, 34409, 34419, 34435, 34449, 34456, 34463, 0}, 0, 1, 691, 187, {1156,4753,1692,34470,34480,0,0,0,0,0,0,0,0,0},{34493,34528,34557,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{34592,0,0,0,0,0,0,0}},
+       {20032, 0, 0, {34608, 34620, 34631, 34643, 34655, 34665, 34677}, {34692, 34697, 34702, 34707, 34712, 34717, 34722}, {0, 0, 0, 0, 0, 0, 0}, {34727, 34736, 34748, 34756, 34761, 34771, 34778, 34787, 34794, 34800, 34809, 34820, 0}, {34727, 34736, 34748, 34756, 34761, 34771, 34778, 34787, 34794, 34800, 34809, 34820, 0}, {34828, 34833, 34838, 34843, 34848, 34853, 34858, 34712, 34863, 34868, 34873, 34878, 0}, {34828, 34833, 34838, 34843, 34848, 34853, 34858, 34712, 34863, 34868, 34873, 34878, 0}, 0, 0, 185, 187, {9796,2286,0,0,0,0,0,0,0,0,0,0,0,0},{34883,1207,0,0,0,0,0,0,0,0},{843,0,0,0,0,0,0,0,0,0,0,0},{848,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 34903, 34905, {34907, 34920, 34928, 34937, 34947, 34957, 34966}, {34978, 34982, 34986, 34990, 34994, 34998, 35002}, {2673, 2436, 2428, 7736, 12817, 5694, 2023}, {35006, 35020, 35031, 35040, 35051, 35063, 35077, 35089, 35102, 35115, 35127, 35140, 0}, {35006, 35020, 35031, 35040, 35051, 35063, 35077, 35089, 35102, 35115, 35127, 35140, 0}, {35154, 35159, 35165, 35171, 35176, 35182, 35188, 35193, 35199, 35204, 19138, 35210, 0}, {35154, 35159, 35165, 35171, 35176, 35182, 35188, 35193, 35199, 35204, 19138, 35210, 0}, 2, 1, 185, 187, {198,189,2286,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,242,3594,0,0,0,0,0,0,0,0},{269,848,257,3602,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1, 35285, 35288, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35388, 35391, 35394, 35397, 35400, 13549, 13540}, {35403, 35427, 35436, 35445, 35456, 35465, 35478, 35487, 35492, 35503, 35525, 35549, 0}, {35403, 35427, 35436, 35445, 35456, 35465, 35478, 35487, 35492, 35503, 35525, 35549, 0}, {35403, 35427, 35436, 35445, 35456, 35465, 35478, 35487, 35492, 35503, 35525, 35549, 0}, {35403, 35427, 35436, 35445, 35456, 35465, 35478, 35487, 35492, 35503, 35525, 35549, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
        {1327, 1340, 1347, {1354, 1364, 1374, 1384, 1394, 1404, 1414}, {1424, 1431, 1438, 1445, 1452, 1459, 1466}, {1473, 1477, 1481, 1485, 1489, 1493, 1497}, {1501, 1508, 1515, 1522, 1529, 1536, 1543, 1550, 1557, 1564, 1571, 1581, 0}, {1501, 1508, 1515, 1522, 1529, 1536, 1543, 1550, 1557, 1564, 1571, 1581, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, 0, 0, 185, 187, {1654,1663,1672,1681,1692,1703,1714,1721,1728,1735,0,0,0,0},{1744,1766,1794,1822,1837,0,0,0,0,0},{843,251,1858,1866,0,0,0,0,0,0,0,0},{848,269,1875,1886,0,0,0,0,0},{1898,1914,0,0,0,0,0,0}},
-       {1921, 2579, 2585, {2592, 2600, 2607, 2616, 2625, 2636, 2644}, {2652, 2655, 2658, 2661, 2664, 2667, 2670}, {2023, 2428, 2673, 2428, 2673, 2434, 2023}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, 2, 1, 691, 187, {1156,1167,1176,35591,4762,1692,0,0,0,0,0,0,0,0},{2818,2300,35601,0,0,0,0,0,0,0},{251,843,35611,35620,35630,35641,8353,35646,35652,0,0,0},{269,848,35660,35673,2862,35685,35699,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 8151, 22114, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 2, 1, 185, 187, {198,189,2286,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,1207,13756,0,0,0,0,0,0},{251,843,242,3594,0,0,0,0,0,0,0,0},{269,848,257,3602,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {3883, 7281, 7286, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {35706, 6273, 4845, 35711, 35717, 35722, 35726}, {2673, 2436, 2428, 29448, 3987, 3989, 2023}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {35732, 5803, 35736, 1086, 35741, 2538, 2542, 1096, 1100, 1105, 1110, 35745, 0}, {35732, 5803, 35736, 1086, 35741, 2538, 2542, 1096, 1100, 1105, 1110, 35745, 0}, 0, 0, 185, 187, {198,3582,189,1120,2286,1139,1692,0,0,0,0,0,0,0},{4211,4266,0,0,0,0,0,0,0,0},{242,3594,843,251,0,0,0,0,0,0,0,0},{257,3602,848,269,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {1921, 2579, 2585, {2592, 2600, 2607, 2616, 2625, 2636, 2644}, {2652, 2655, 2658, 2661, 2664, 2667, 2670}, {2023, 2428, 2673, 2428, 2673, 2434, 2023}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, 2, 1, 691, 187, {1156,1167,1176,35571,4762,1692,0,0,0,0,0,0,0,0},{2818,2300,35581,0,0,0,0,0,0,0},{251,843,35591,35600,35610,35621,8353,35626,35632,0,0,0},{269,848,35640,35653,2862,35665,35679,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 8151, 22089, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 2, 1, 185, 187, {198,189,2286,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,1207,13731,0,0,0,0,0,0},{251,843,242,3594,0,0,0,0,0,0,0,0},{269,848,257,3602,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {3883, 7281, 7286, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {35686, 6273, 4845, 35691, 35697, 35702, 35706}, {2673, 2436, 2428, 29423, 3987, 3989, 2023}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {35712, 5803, 35716, 1086, 35721, 2538, 2542, 1096, 1100, 1105, 1110, 35725, 0}, {35712, 5803, 35716, 1086, 35721, 2538, 2542, 1096, 1100, 1105, 1110, 35725, 0}, 0, 0, 185, 187, {198,3582,189,1120,2286,1139,1692,0,0,0,0,0,0,0},{4211,4266,0,0,0,0,0,0,0,0},{242,3594,843,251,0,0,0,0,0,0,0,0},{257,3602,848,269,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
        {289, 1929, 1932, {4783, 4792, 4798, 4804, 4813, 4819, 4828}, {4835, 4840, 4845, 4850, 4855, 4860, 4865}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {4870, 4878, 4887, 4892, 4898, 4902, 4907, 4915, 4921, 4931, 1058, 4939, 0}, {4870, 4878, 4887, 4892, 4898, 4902, 4907, 4915, 4921, 4931, 1058, 4939, 0}, {4949, 4955, 4887, 4962, 4898, 4902, 4967, 4915, 4973, 1105, 1110, 4979, 0}, {4949, 4955, 4887, 4962, 4898, 4902, 4967, 4915, 4973, 1105, 1110, 4979, 0}, 2, 1, 2566, 187, {1139,198,189,1128,0,0,0,0,0,0,0,0,0,0},{4985,1242,0,0,0,0,0,0,0,0},{251,843,4288,5011,5021,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {6207, 6216, 6224, 6233, 6244, 6253, 6262}, {6269, 6273, 2530, 6277, 6281, 6285, 6289}, {2673, 2436, 2428, 2428, 6293, 3989, 2023}, {6295, 6303, 4005, 6312, 6319, 6326, 6333, 4034, 6340, 6350, 6358, 6367, 0}, {6376, 6384, 4094, 6393, 6400, 6407, 6414, 4117, 6421, 6431, 1058, 6439, 0}, {6448, 2526, 2530, 2534, 6452, 6456, 6460, 6464, 6468, 6472, 2558, 6476, 0}, {6448, 2526, 2530, 2534, 6452, 6456, 6460, 6464, 6468, 6472, 2558, 6476, 0}, 2, 1, 691, 187, {1156,1167,9806,2286,6480,0,0,0,0,0,0,0,0,0},{2818,1242,1207,0,0,0,0,0,0,0},{251,843,35611,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 7281, 7286, {7291, 7298, 7306, 7314, 7323, 7333, 7341}, {7350, 4424, 7353, 7356, 7359, 7362, 7365}, {7368, 2428, 2673, 3705, 2673, 3989, 7368}, {7370, 7378, 7387, 2459, 7393, 2469, 2474, 7397, 2486, 2496, 2504, 2513, 0}, {7370, 7378, 7387, 2459, 7393, 2469, 2474, 7397, 2486, 2496, 2504, 2513, 0}, {2522, 2526, 7406, 2534, 7393, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 7406, 2534, 7393, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, 2, 1, 185, 187, {9796,1120,1139,1167,7419,1692,0,0,0,0,0,0,0,0},{4985,3809,1242,5548,0,0,0,0,0,0},{843,251,35750,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1921, 35760, 35765, {2345, 10060, 35770, 2368, 2375, 2383, 35777}, {2398, 35785, 35790, 2411, 2415, 2419, 35794}, {2023, 2428, 2430, 2432, 2430, 2434, 2436}, {2438, 2445, 4887, 2459, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2438, 2445, 4887, 2459, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, 2, 1, 691, 187, {1156,7519,1167,4762,2804,1692,0,0,0,0,0,0,0,0},{2300,4769,0,0,0,0,0,0,0,0},{251,843,7529,7539,4288,2321,7550,7561,0,0,0,0},{269,848,7571,7585,4302,2337,7598,7612,0},{1301,7625,7635,0,0,0,0,0}},
-       {3883, 7281, 7286, {3895, 7966, 7980, 7993, 8006, 8019, 3942}, {6269, 8031, 8035, 8039, 8043, 8047, 8051}, {2673, 2023, 2430, 8056, 8056, 2023, 2023}, {35798, 35806, 35816, 4011, 29467, 35823, 35829, 4034, 29484, 29493, 29501, 35835, 0}, {35798, 35806, 35816, 4011, 29467, 35823, 35829, 4034, 29484, 29493, 29501, 35835, 0}, {2759, 20342, 3761, 29561, 2702, 2776, 2780, 20182, 18406, 29574, 2796, 2800, 0}, {2759, 20342, 3761, 29561, 2702, 2776, 2780, 20182, 18406, 29574, 2796, 2800, 0}, 2, 1, 185, 187, {198,1156,1128,189,1167,1139,1681,1703,1692,1735,35844,5888,0,0},{4266,4211,0,0,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {10033, 10046, 10049, {10052, 10060, 10068, 2368, 2375, 2383, 10075}, {10083, 10088, 10093, 10097, 10101, 10105, 10109}, {2023, 2428, 2430, 2432, 2430, 2434, 2436}, {10114, 10122, 10131, 2696, 10004, 2706, 2711, 10136, 2723, 2733, 2741, 3752, 0}, {7370, 7378, 4887, 2459, 2465, 2469, 2474, 10144, 2486, 2496, 2504, 2513, 0}, {2759, 2763, 3761, 2772, 10004, 2776, 2780, 2784, 2788, 2792, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 10004, 2776, 2780, 2784, 2788, 2792, 2796, 3769, 0}, 2, 1, 691, 187, {4753,1156,4762,1692,0,0,0,0,0,0,0,0,0,0},{10152,10170,0,0,0,0,0,0,0,0},{251,843,7529,0,0,0,0,0,0,0,0,0},{269,848,7585,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {35853, 35864, 35888, 35918, 35935, 35957, 35966}, {15057, 15060, 15065, 15071, 15075, 7736, 15080}, {6617, 6605, 6607, 6609, 6611, 6613, 6615}, {35977, 35990, 501, 36003, 521, 36014, 36023, 542, 36032, 36049, 36064, 36077, 0}, {35977, 35990, 501, 36003, 521, 36014, 36023, 542, 36032, 36049, 36064, 36077, 0}, {15231, 8135, 2530, 2534, 15179, 15235, 15239, 15243, 15247, 2554, 15251, 15255, 0}, {15231, 8135, 2530, 2534, 15179, 15235, 15239, 15243, 15247, 2554, 15251, 15255, 0}, 0, 1, 691, 187, {1156,1167,4762,189,1692,0,0,0,0,0,0,0,0,0},{1242,5505,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 7281, 7286, {18880, 18894, 18904, 18915, 18929, 18940, 18951}, {18964, 18969, 18974, 18981, 18987, 18993, 18999}, {2673, 2436, 2428, 7736, 2673, 12842, 2023}, {19004, 19012, 19020, 19027, 19036, 19046, 19056, 19062, 19070, 19085, 19103, 19111, 0}, {19004, 19012, 19020, 19027, 19036, 19046, 19056, 19062, 19070, 19085, 19103, 19111, 0}, {19119, 19123, 19020, 19129, 19133, 19138, 19056, 19144, 19149, 19156, 19163, 19168, 0}, {19119, 19123, 19020, 19129, 19133, 19138, 19056, 19144, 19149, 19156, 19163, 19168, 0}, 2, 0, 185, 187, {198,189,2286,4762,1692,0,0,0,0,0,0,0,0,0},{1242,5505,10193,8579,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {36090, 36105, 36120, 36135, 36152, 36169, 36178}, {36189, 36196, 36203, 36210, 36217, 19832, 36224}, {36231, 19439, 8811, 8814, 8808, 19436, 19846}, {13229, 13240, 8845, 13253, 8867, 13264, 13271, 8892, 13278, 13293, 13306, 13317, 0}, {13229, 13240, 8845, 13253, 8867, 13264, 13271, 8892, 13278, 13293, 13306, 13317, 0}, {13330, 13337, 13344, 13351, 8867, 13264, 13271, 13358, 13365, 13372, 13379, 13386, 0}, {13330, 13337, 13344, 13351, 8867, 13264, 13271, 13358, 13365, 13372, 13379, 13386, 0}, 0, 1, 691, 187, {1156,1167,36234,4762,189,1692,0,0,0,0,0,0,0,0},{36245,1242,5505,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1, 20377, 20405, {20427, 20446, 20465, 20490, 20509, 20543, 20568}, {20587, 20597, 20607, 20623, 20633, 20658, 20674}, {20684, 20688, 20695, 20699, 20706, 20713, 20720}, {20724, 20752, 20786, 20802, 20821, 20828, 20838, 20854, 20870, 20901, 20923, 20945, 0}, {20724, 20752, 20786, 20802, 20821, 20828, 20838, 20854, 20870, 20901, 20923, 20945, 0}, {20724, 20752, 20786, 20802, 20821, 20828, 20838, 20854, 20870, 20901, 20923, 20945, 0}, {20724, 20752, 20786, 20802, 20821, 20828, 20838, 20854, 20870, 20901, 20923, 20945, 0}, 0, 5, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{4288,2321,20998,21007,0,0,0,0,0,0,0,0},{4302,2337,21015,21027,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1, 35305, 35308, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35408, 35411, 35414, 35417, 35420, 13574, 13565}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1327, 1340, 1347, {1354, 1364, 1374, 1384, 1394, 1404, 1414}, {35236, 35243, 35250, 35257, 35264, 35271, 35278}, {1473, 1477, 1481, 1485, 1489, 1493, 1497}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, 0, 0, 185, 187, {2277,2286,189,1714,1735,1654,1681,1692,0,0,0,0,0,0},{1744,6632,1822,1837,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1898,1914,0,0,0,0,0,0}},
-       {1921, 2579, 2585, {2592, 2600, 2607, 2616, 2625, 2636, 2644}, {2652, 2655, 2658, 2661, 2664, 2667, 2670}, {2023, 2428, 2673, 2428, 2673, 2434, 2023}, {36395, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {36395, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {36403, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, {36403, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, 2, 1, 691, 187, {1156,1167,1692,36408,7419,0,0,0,0,0,0,0,0,0},{36418,36438,0,0,0,0,0,0,0,0},{251,843,2850,36450,35641,8353,35652,0,0,0,0,0},{269,848,2862,35685,35699,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {6207, 6216, 6224, 6233, 6244, 6253, 6262}, {6269, 6273, 2530, 6277, 6281, 6285, 6289}, {2673, 2436, 2428, 2428, 6293, 3989, 2023}, {6295, 6303, 4005, 6312, 6319, 6326, 6333, 4034, 6340, 6350, 6358, 6367, 0}, {6376, 6384, 4094, 6393, 6400, 6407, 6414, 4117, 6421, 6431, 1058, 6439, 0}, {6448, 2526, 2530, 2534, 6452, 6456, 6460, 6464, 6468, 6472, 2558, 6476, 0}, {6448, 2526, 2530, 2534, 6452, 6456, 6460, 6464, 6468, 6472, 2558, 6476, 0}, 2, 1, 691, 187, {1156,1167,9806,2286,6480,0,0,0,0,0,0,0,0,0},{2818,1242,1207,0,0,0,0,0,0,0},{251,843,35591,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 7281, 7286, {7291, 7298, 7306, 7314, 7323, 7333, 7341}, {7350, 4424, 7353, 7356, 7359, 7362, 7365}, {7368, 2428, 2673, 3705, 2673, 3989, 7368}, {7370, 7378, 7387, 2459, 7393, 2469, 2474, 7397, 2486, 2496, 2504, 2513, 0}, {7370, 7378, 7387, 2459, 7393, 2469, 2474, 7397, 2486, 2496, 2504, 2513, 0}, {2522, 2526, 7406, 2534, 7393, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 7406, 2534, 7393, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, 2, 1, 185, 187, {9796,1120,1139,1167,7419,1692,0,0,0,0,0,0,0,0},{4985,3809,1242,5548,0,0,0,0,0,0},{843,251,35730,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1921, 35740, 35745, {2345, 10060, 35750, 2368, 2375, 2383, 35757}, {2398, 10088, 35765, 2411, 2415, 2419, 35769}, {2023, 2428, 2430, 2432, 2430, 2434, 2436}, {2438, 2445, 4887, 2459, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2438, 2445, 4887, 2459, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, 2, 1, 691, 187, {1156,7519,1167,4762,2804,1692,0,0,0,0,0,0,0,0},{2300,4769,0,0,0,0,0,0,0,0},{251,843,7529,7539,4288,2321,7550,7561,0,0,0,0},{269,848,7571,7585,4302,2337,7598,7612,0},{1301,7625,7635,0,0,0,0,0}},
+       {3883, 7281, 7286, {3895, 7966, 7980, 7993, 8006, 8019, 3942}, {6269, 8031, 8035, 8039, 8043, 8047, 8051}, {2673, 2023, 2430, 8056, 8056, 2023, 2023}, {35773, 35781, 35791, 4011, 29442, 35798, 35804, 4034, 29459, 29468, 29476, 35810, 0}, {35773, 35781, 35791, 4011, 29442, 35798, 35804, 4034, 29459, 29468, 29476, 35810, 0}, {2759, 20317, 3761, 29536, 2702, 2776, 2780, 20157, 18381, 29549, 2796, 2800, 0}, {2759, 20317, 3761, 29536, 2702, 2776, 2780, 20157, 18381, 29549, 2796, 2800, 0}, 2, 1, 185, 187, {198,1156,1128,189,1167,1139,1681,1703,1692,1735,35819,5888,0,0},{4266,4211,0,0,0,0,0,0,0,0},{251,0,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {10033, 10046, 10049, {10052, 10060, 10068, 2368, 2375, 2383, 10075}, {10083, 10088, 10093, 2411, 2415, 2419, 10097}, {2023, 2428, 2430, 2432, 2430, 2434, 2436}, {7370, 7378, 4887, 2459, 2465, 2469, 2474, 10102, 2486, 2496, 2504, 2513, 0}, {7370, 7378, 4887, 2459, 2465, 2469, 2474, 10102, 2486, 2496, 2504, 2513, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 0}, 2, 1, 691, 187, {4753,1156,4762,1692,0,0,0,0,0,0,0,0,0,0},{10110,10128,0,0,0,0,0,0,0,0},{251,843,7529,0,0,0,0,0,0,0,0,0},{269,848,7585,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {35828, 35839, 35863, 35893, 35910, 35932, 35941}, {15032, 15035, 15040, 15046, 15050, 7736, 15055}, {6617, 6605, 6607, 6609, 6611, 6613, 6615}, {35952, 35965, 501, 35978, 521, 35989, 35998, 542, 36007, 36024, 36039, 36052, 0}, {35952, 35965, 501, 35978, 521, 35989, 35998, 542, 36007, 36024, 36039, 36052, 0}, {15206, 8135, 2530, 2534, 15154, 15210, 15214, 15218, 15222, 2554, 15226, 15230, 0}, {15206, 8135, 2530, 2534, 15154, 15210, 15214, 15218, 15222, 2554, 15226, 15230, 0}, 0, 1, 691, 187, {1156,1167,4762,189,1692,0,0,0,0,0,0,0,0,0},{1242,5505,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 7281, 7286, {18855, 18869, 18879, 18890, 18904, 18915, 18926}, {18939, 18944, 18949, 18956, 18962, 18968, 18974}, {2673, 2436, 2428, 7736, 2673, 12817, 2023}, {18979, 18987, 18995, 19002, 19011, 19021, 19031, 19037, 19045, 19060, 19078, 19086, 0}, {18979, 18987, 18995, 19002, 19011, 19021, 19031, 19037, 19045, 19060, 19078, 19086, 0}, {19094, 19098, 18995, 19104, 19108, 19113, 19031, 19119, 19124, 19131, 19138, 19143, 0}, {19094, 19098, 18995, 19104, 19108, 19113, 19031, 19119, 19124, 19131, 19138, 19143, 0}, 2, 0, 185, 187, {198,189,2286,4762,1692,0,0,0,0,0,0,0,0,0},{1242,5505,10151,8579,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {36065, 36080, 36095, 36110, 36127, 36144, 36153}, {36164, 36171, 36178, 36185, 36192, 19807, 36199}, {36206, 19414, 8811, 8814, 8808, 19411, 19821}, {13204, 13215, 8845, 13228, 8867, 13239, 13246, 8892, 13253, 13268, 13281, 13292, 0}, {13204, 13215, 8845, 13228, 8867, 13239, 13246, 8892, 13253, 13268, 13281, 13292, 0}, {13305, 13312, 13319, 13326, 8867, 13239, 13246, 13333, 13340, 13347, 13354, 13361, 0}, {13305, 13312, 13319, 13326, 8867, 13239, 13246, 13333, 13340, 13347, 13354, 13361, 0}, 0, 1, 691, 187, {1156,1167,36209,4762,189,1692,0,0,0,0,0,0,0,0},{36220,1242,5505,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1, 20352, 20380, {20402, 20421, 20440, 20465, 20484, 20518, 20543}, {20562, 20572, 20582, 20598, 20608, 20633, 20649}, {20659, 20663, 20670, 20674, 20681, 20688, 20695}, {20699, 20727, 20761, 20777, 20796, 20803, 20813, 20829, 20845, 20876, 20898, 20920, 0}, {20699, 20727, 20761, 20777, 20796, 20803, 20813, 20829, 20845, 20876, 20898, 20920, 0}, {20699, 20727, 20761, 20777, 20796, 20803, 20813, 20829, 20845, 20876, 20898, 20920, 0}, {20699, 20727, 20761, 20777, 20796, 20803, 20813, 20829, 20845, 20876, 20898, 20920, 0}, 0, 5, 2566, 187, {1139,2293,4762,1128,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{4288,2321,20973,20982,0,0,0,0,0,0,0,0},{4302,2337,20990,21002,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1, 35285, 35288, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35388, 35391, 35394, 35397, 35400, 13549, 13540}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1327, 1340, 1347, {1354, 1364, 1374, 1384, 1394, 1404, 1414}, {35216, 35223, 35230, 35237, 35244, 35251, 35258}, {1473, 1477, 1481, 1485, 1489, 1493, 1497}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, 0, 0, 185, 187, {2277,2286,189,1714,1735,1654,1681,1692,0,0,0,0,0,0},{1744,6632,1822,1837,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1898,1914,0,0,0,0,0,0}},
+       {1921, 2579, 2585, {2592, 2600, 2607, 2616, 2625, 2636, 2644}, {2652, 2655, 2658, 2661, 2664, 2667, 2670}, {2023, 2428, 2673, 2428, 2673, 2434, 2023}, {36370, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {36370, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {36378, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, {36378, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, 2, 1, 691, 187, {1156,1167,1692,36383,7419,0,0,0,0,0,0,0,0,0},{36393,36413,0,0,0,0,0,0,0,0},{251,843,2850,36425,35621,8353,35632,0,0,0,0,0},{269,848,2862,35665,35679,0,0,0,0},{1301,0,0,0,0,0,0,0}},
        {3613, 1929, 1932, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 185, 187, {9796,1120,2286,2277,189,198,3809,5518,1692,1735,1681,0,0,0},{1207,1242,0,0,0,0,0,0,0,0},{3594,843,251,0,0,0,0,0,0,0,0,0},{3602,848,269,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
        {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 2, 1, 185, 187, {198,189,1120,2286,2293,1139,1167,1692,0,0,0,0,0,0},{4211,4239,4266,0,0,0,0,0,0,0},{843,251,2321,4288,4294,0,0,0,0,0,0,0},{848,269,2337,4302,4311,0,0,0,0},{1286,0,0,0,0,0,0,0}},
        {289, 1929, 1932, {4783, 4792, 4798, 4804, 4813, 4819, 4828}, {4835, 4840, 4845, 4850, 4855, 4860, 4865}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {4870, 4878, 4887, 4892, 4898, 4902, 4907, 4915, 4921, 4931, 1058, 4939, 0}, {4870, 4878, 4887, 4892, 4898, 4902, 4907, 4915, 4921, 4931, 1058, 4939, 0}, {4949, 4955, 4887, 4962, 4898, 4902, 4967, 4915, 4973, 1105, 1110, 4979, 0}, {4949, 4955, 4887, 4962, 4898, 4902, 4967, 4915, 4973, 1105, 1110, 4979, 0}, 0, 0, 2566, 187, {1692,5888,1139,6179,189,3582,0,0,0,0,0,0,0,0},{1242,8579,0,0,0,0,0,0,0,0},{251,843,4288,5011,5021,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {18472, 18485, 18490, {36461, 36469, 36477, 36485, 36497, 36506, 36518}, {18575, 18580, 18585, 18590, 18595, 18600, 18605}, {2023, 2428, 2673, 6293, 2673, 16426, 2436}, {18610, 18627, 18640, 18654, 18667, 18680, 18693, 18707, 18719, 18733, 18747, 18761, 0}, {18610, 18627, 18640, 18654, 18667, 18680, 18693, 18707, 18719, 18733, 18747, 18761, 0}, {36529, 36540, 36547, 36555, 36562, 36569, 36576, 36584, 36590, 36598, 36606, 36614, 0}, {36529, 36540, 36547, 36555, 36562, 36569, 36576, 36584, 36590, 36598, 36606, 36614, 0}, 2, 1, 691, 187, {4753,1156,4762,1692,0,0,0,0,0,0,0,0,0,0},{36621,18862,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1, 35305, 35308, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35408, 35411, 35414, 35417, 35420, 13574, 13565}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1327, 1340, 1347, {1354, 1364, 1374, 1384, 1394, 1404, 1414}, {1424, 1431, 1438, 1445, 1452, 1459, 1466}, {1473, 1477, 1481, 1485, 1489, 1493, 1497}, {1501, 1508, 1515, 1522, 1529, 1536, 1543, 1550, 1557, 1564, 1571, 1581, 0}, {1501, 1508, 1515, 1522, 1529, 1536, 1543, 1550, 1557, 1564, 1571, 1581, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, 0, 0, 185, 187, {2277,2286,189,1714,1735,1654,1681,1692,0,0,0,0,0,0},{1744,6632,1822,35285,0,0,0,0,0,0},{1858,1866,843,251,0,0,0,0,0,0,0,0},{1875,1886,848,269,0,0,0,0,0},{1898,0,0,0,0,0,0,0}},
-       {1921, 2579, 2585, {2592, 2600, 2607, 2616, 2625, 2636, 2644}, {2652, 2655, 2658, 2661, 2664, 2667, 2670}, {2023, 2428, 2673, 2428, 2673, 2434, 2023}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, 2, 1, 691, 187, {1156,1167,1176,4762,4753,1692,0,0,0,0,0,0,0,0},{36647,2818,36673,36688,0,0,0,0,0,0},{251,843,2321,35630,0,0,0,0,0,0,0,0},{269,35685,2862,35699,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 2566, 187, {1692,198,189,2286,5888,36702,3809,14921,1692,0,0,0,0,0},{3838,20186,36710,6488,0,0,0,0,0,0},{3594,242,251,843,0,0,0,0,0,0,0,0},{3602,257,269,848,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,9796,2286,1139,1692,0,0,0,0,0,0,0,0},{29578,4239,4266,0,0,0,0,0,0,0},{3594,843,0,0,0,0,0,0,0,0,0,0},{3602,848,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {18447, 18460, 18465, {36436, 36444, 36452, 36460, 36472, 36481, 36493}, {18550, 18555, 18560, 18565, 18570, 18575, 18580}, {2023, 2428, 2673, 6293, 2673, 16401, 2436}, {18585, 18602, 18615, 18629, 18642, 18655, 18668, 18682, 18694, 18708, 18722, 18736, 0}, {18585, 18602, 18615, 18629, 18642, 18655, 18668, 18682, 18694, 18708, 18722, 18736, 0}, {36504, 36515, 36522, 36530, 36537, 36544, 36551, 36559, 36565, 36573, 36581, 36589, 0}, {36504, 36515, 36522, 36530, 36537, 36544, 36551, 36559, 36565, 36573, 36581, 36589, 0}, 2, 1, 691, 187, {4753,1156,4762,1692,0,0,0,0,0,0,0,0,0,0},{36596,18837,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1, 35285, 35288, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35388, 35391, 35394, 35397, 35400, 13549, 13540}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1327, 1340, 1347, {1354, 1364, 1374, 1384, 1394, 1404, 1414}, {1424, 1431, 1438, 1445, 1452, 1459, 1466}, {1473, 1477, 1481, 1485, 1489, 1493, 1497}, {1501, 1508, 1515, 1522, 1529, 1536, 1543, 1550, 1557, 1564, 1571, 1581, 0}, {1501, 1508, 1515, 1522, 1529, 1536, 1543, 1550, 1557, 1564, 1571, 1581, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, 0, 0, 185, 187, {2277,2286,189,1714,1735,1654,1681,1692,0,0,0,0,0,0},{1744,6632,1822,35265,0,0,0,0,0,0},{1858,1866,843,251,0,0,0,0,0,0,0,0},{1875,1886,848,269,0,0,0,0,0},{1898,0,0,0,0,0,0,0}},
+       {1921, 2579, 2585, {2592, 2600, 2607, 2616, 2625, 2636, 2644}, {2652, 2655, 2658, 2661, 2664, 2667, 2670}, {2023, 2428, 2673, 2428, 2673, 2434, 2023}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, 2, 1, 691, 187, {1156,1167,1176,4762,4753,1692,0,0,0,0,0,0,0,0},{36622,2818,36648,36663,0,0,0,0,0,0},{251,843,2321,35610,0,0,0,0,0,0,0,0},{269,35665,2862,35679,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 2566, 187, {1692,198,189,2286,5888,36677,3809,14896,1692,0,0,0,0,0},{3838,20161,36685,6488,0,0,0,0,0,0},{3594,242,251,843,0,0,0,0,0,0,0,0},{3602,257,269,848,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,9796,2286,1139,1692,0,0,0,0,0,0,0,0},{29553,4239,4266,0,0,0,0,0,0,0},{3594,843,0,0,0,0,0,0,0,0,0,0},{3602,848,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
        {289, 1929, 1932, {4783, 4792, 4798, 4804, 4813, 4819, 4828}, {4835, 4840, 4845, 4850, 4855, 4860, 4865}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {4870, 4878, 4887, 4892, 4898, 4902, 4907, 4915, 4921, 4931, 1058, 4939, 0}, {4870, 4878, 4887, 4892, 4898, 4902, 4907, 4915, 4921, 4931, 1058, 4939, 0}, {4949, 4955, 4887, 4962, 4898, 4902, 4967, 4915, 4973, 1105, 1110, 4979, 0}, {4949, 4955, 4887, 4962, 4898, 4902, 4967, 4915, 4973, 1105, 1110, 4979, 0}, 2, 1, 691, 187, {1156,1167,4762,1692,0,0,0,0,0,0,0,0,0,0},{4985,1242,5002,0,0,0,0,0,0,0},{251,843,4288,5011,5021,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
        {1921, 1929, 1932, {9187, 9196, 9208, 9215, 9223, 9233, 9239}, {9246, 9250, 9254, 9258, 9262, 9267, 9271}, {9275, 9277, 9279, 9281, 9283, 9277, 9281}, {9286, 9296, 9305, 9313, 9321, 9329, 9336, 9343, 9351, 2102, 9357, 9365, 0}, {9374, 9384, 9393, 9401, 9409, 9417, 9424, 9431, 9440, 7911, 9446, 9456, 0}, {9465, 9469, 9474, 9479, 9483, 7945, 2239, 9487, 9491, 2255, 9495, 2259, 0}, {9465, 9469, 9474, 9479, 9483, 7945, 2239, 9487, 9491, 2255, 9495, 2259, 0}, 0, 1, 691, 187, {9499,9509,6153,9517,9529,9539,9549,1692,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1, 35305, 35308, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35408, 35411, 35414, 35417, 35420, 13574, 13565}, {36721, 36732, 13604, 36743, 36754, 36761, 36770, 36783, 36343, 36356, 36369, 36382, 0}, {36721, 36732, 13604, 36743, 36754, 36761, 36770, 36783, 36343, 36356, 36369, 36382, 0}, {36721, 36732, 13604, 36743, 36754, 36761, 36770, 36783, 36343, 36356, 36369, 36382, 0}, {36721, 36732, 13604, 36743, 36754, 36761, 36770, 36783, 36343, 36356, 36369, 36382, 0}, 0, 6, 2566, 187, {1128,1139,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{843,251,242,0,0,0,0,0,0,0,0,0},{848,269,257,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1327, 1340, 1347, {1354, 1364, 1374, 1384, 1394, 1404, 1414}, {35236, 35243, 35250, 35257, 35264, 35271, 35278}, {1473, 1477, 1481, 1485, 1489, 1493, 1497}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, 0, 0, 185, 187, {2277,2286,189,1714,1735,1654,1681,1692,0,0,0,0,0,0},{1744,36790,36817,2568,1822,35285,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1898,1914,0,0,0,0,0,0}},
-       {1921, 2579, 2585, {2592, 2600, 2607, 2616, 2625, 2636, 2644}, {2652, 2655, 2658, 2661, 2664, 2667, 2670}, {2023, 2428, 2673, 2428, 2673, 2434, 2023}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, 2, 1, 691, 187, {1156,1167,1176,35591,4762,1692,7419,4753,0,0,0,0,0,0},{2818,2300,36833,0,0,0,0,0,0,0},{251,843,35630,35641,2321,0,0,0,0,0,0,0},{269,848,2862,35685,35699,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1, 35285, 35288, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35388, 35391, 35394, 35397, 35400, 13549, 13540}, {36696, 36707, 13579, 36718, 36729, 36736, 36745, 36758, 36318, 36331, 36344, 36357, 0}, {36696, 36707, 13579, 36718, 36729, 36736, 36745, 36758, 36318, 36331, 36344, 36357, 0}, {36696, 36707, 13579, 36718, 36729, 36736, 36745, 36758, 36318, 36331, 36344, 36357, 0}, {36696, 36707, 13579, 36718, 36729, 36736, 36745, 36758, 36318, 36331, 36344, 36357, 0}, 0, 6, 2566, 187, {1128,1139,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{843,251,242,0,0,0,0,0,0,0,0,0},{848,269,257,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1327, 1340, 1347, {1354, 1364, 1374, 1384, 1394, 1404, 1414}, {35216, 35223, 35230, 35237, 35244, 35251, 35258}, {1473, 1477, 1481, 1485, 1489, 1493, 1497}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, 0, 0, 185, 187, {2277,2286,189,1714,1735,1654,1681,1692,0,0,0,0,0,0},{1744,36765,36792,2568,1822,35265,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1898,1914,0,0,0,0,0,0}},
+       {1921, 2579, 2585, {2592, 2600, 2607, 2616, 2625, 2636, 2644}, {2652, 2655, 2658, 2661, 2664, 2667, 2670}, {2023, 2428, 2673, 2428, 2673, 2434, 2023}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {2675, 2682, 2690, 2696, 2702, 2706, 2711, 2716, 2723, 2733, 2741, 2750, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, {2759, 2763, 2767, 2772, 2702, 2776, 2780, 2784, 2788, 2792, 2796, 2800, 0}, 2, 1, 691, 187, {1156,1167,1176,35571,4762,1692,7419,4753,0,0,0,0,0,0},{2818,2300,36808,0,0,0,0,0,0,0},{251,843,35610,35621,2321,0,0,0,0,0,0,0},{269,848,2862,35665,35679,0,0,0,0},{1301,0,0,0,0,0,0,0}},
        {289, 7281, 7286, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 185, 187, {9796,1120,189,1176,1692,0,0,0,0,0,0,0,0,0},{1207,1242,0,0,0,0,0,0,0,0},{3594,242,251,843,0,0,0,0,0,0,0,0},{3602,257,269,848,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 1, 185, 187, {198,189,2286,1139,0,0,0,0,0,0,0,0,0,0},{4239,4266,3809,36845,14910,0,0,0,0,0},{242,3594,843,251,0,0,0,0,0,0,0,0},{257,3602,848,269,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {4783, 4792, 4798, 4804, 4813, 4819, 4828}, {4835, 4840, 4845, 4850, 4855, 4860, 4865}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {4870, 4878, 4887, 4892, 4898, 4902, 4907, 4915, 4921, 4931, 1058, 4939, 0}, {4870, 4878, 4887, 4892, 4898, 4902, 4907, 4915, 4921, 4931, 1058, 4939, 0}, {4949, 4955, 4887, 4962, 4898, 4902, 4967, 4915, 4973, 1105, 1110, 4979, 0}, {4949, 4955, 4887, 4962, 4898, 4902, 4967, 4915, 4973, 1105, 1110, 4979, 0}, 2, 1, 185, 187, {198,189,1167,1139,1692,0,0,0,0,0,0,0,0,0},{36854,4985,5002,1242,0,0,0,0,0,0},{251,843,4288,5011,5021,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {12109, 36877, 36887, {9187, 9196, 9208, 9215, 9223, 9233, 9239}, {9246, 9250, 9254, 9258, 9262, 9267, 9271}, {0, 0, 0, 0, 0, 0, 0}, {2438, 2445, 15168, 2459, 2465, 2469, 2474, 12088, 36895, 36905, 36913, 36922, 0}, {2438, 2445, 15168, 2459, 2465, 2469, 2474, 12088, 36895, 36905, 36913, 36922, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {4753,4762,2266,1156,36931,1167,9806,1692,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1, 35305, 35308, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35408, 35411, 35414, 35417, 35420, 13574, 13565}, {36266, 36277, 13604, 36290, 36754, 36310, 36940, 36953, 36960, 36356, 36971, 36982, 0}, {36266, 36277, 13604, 36290, 36754, 36310, 36940, 36953, 36960, 36356, 36971, 36982, 0}, {36266, 36277, 13604, 36290, 36754, 36310, 36940, 36953, 36960, 36356, 36971, 36982, 0}, {36266, 36277, 13604, 36290, 36754, 36310, 36940, 36953, 36960, 36356, 36971, 36982, 0}, 0, 6, 2566, 187, {1128,1139,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{843,251,242,0,0,0,0,0,0,0,0,0},{848,269,257,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 1, 185, 187, {198,189,2286,1139,0,0,0,0,0,0,0,0,0,0},{4239,4266,3809,36820,14885,0,0,0,0,0},{242,3594,843,251,0,0,0,0,0,0,0,0},{257,3602,848,269,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {4783, 4792, 4798, 4804, 4813, 4819, 4828}, {4835, 4840, 4845, 4850, 4855, 4860, 4865}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {4870, 4878, 4887, 4892, 4898, 4902, 4907, 4915, 4921, 4931, 1058, 4939, 0}, {4870, 4878, 4887, 4892, 4898, 4902, 4907, 4915, 4921, 4931, 1058, 4939, 0}, {4949, 4955, 4887, 4962, 4898, 4902, 4967, 4915, 4973, 1105, 1110, 4979, 0}, {4949, 4955, 4887, 4962, 4898, 4902, 4967, 4915, 4973, 1105, 1110, 4979, 0}, 2, 1, 185, 187, {198,189,1167,1139,1692,0,0,0,0,0,0,0,0,0},{36829,4985,5002,1242,0,0,0,0,0,0},{251,843,4288,5011,5021,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {12084, 36852, 36862, {9187, 9196, 9208, 9215, 9223, 9233, 9239}, {9246, 9250, 9254, 9258, 9262, 9267, 9271}, {0, 0, 0, 0, 0, 0, 0}, {2438, 2445, 15143, 2459, 2465, 2469, 2474, 12063, 36870, 36880, 36888, 36897, 0}, {2438, 2445, 15143, 2459, 2465, 2469, 2474, 12063, 36870, 36880, 36888, 36897, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {4753,4762,2266,1156,36906,1167,9806,1692,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1, 35285, 35288, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35388, 35391, 35394, 35397, 35400, 13549, 13540}, {36241, 36252, 13579, 36265, 36729, 36285, 36915, 36928, 36935, 36331, 36946, 36957, 0}, {36241, 36252, 13579, 36265, 36729, 36285, 36915, 36928, 36935, 36331, 36946, 36957, 0}, {36241, 36252, 13579, 36265, 36729, 36285, 36915, 36928, 36935, 36331, 36946, 36957, 0}, {36241, 36252, 13579, 36265, 36729, 36285, 36915, 36928, 36935, 36331, 36946, 36957, 0}, 0, 6, 2566, 187, {1128,1139,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{843,251,242,0,0,0,0,0,0,0,0,0},{848,269,257,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
        {289, 7281, 7286, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 2, 0, 185, 187, {198,1128,1692,0,0,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {2286,189,1139,1692,0,0,0,0,0,0,0,0,0,0},{29578,4239,4266,0,0,0,0,0,0,0},{3594,843,0,0,0,0,0,0,0,0,0,0},{3602,848,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {2286,189,1139,1692,0,0,0,0,0,0,0,0,0,0},{29553,4239,4266,0,0,0,0,0,0,0},{3594,843,0,0,0,0,0,0,0,0,0,0},{3602,848,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
        {289, 1929, 1932, {4783, 4792, 4798, 4804, 4813, 4819, 4828}, {4835, 4840, 4845, 4850, 4855, 4860, 4865}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {4870, 4878, 4887, 4892, 4898, 4902, 4907, 4915, 4921, 4931, 1058, 4939, 0}, {4870, 4878, 4887, 4892, 4898, 4902, 4907, 4915, 4921, 4931, 1058, 4939, 0}, {4949, 4955, 4887, 4962, 4898, 4902, 4967, 4915, 4973, 1105, 1110, 4979, 0}, {4949, 4955, 4887, 4962, 4898, 4902, 4967, 4915, 4973, 1105, 1110, 4979, 0}, 2, 1, 185, 187, {198,189,1167,1139,1692,0,0,0,0,0,0,0,0,0},{4985,1242,5002,0,0,0,0,0,0,0},{251,843,4288,5011,5021,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1921, 36877, 36887, {12020, 36993, 9208, 12045, 9223, 9233, 9239}, {9246, 9250, 9254, 12066, 9262, 9267, 9271}, {9275, 9277, 9279, 9281, 9283, 9277, 9281}, {2438, 2445, 15168, 2459, 2465, 2538, 2542, 12088, 36895, 36905, 36913, 36922, 0}, {2438, 2445, 15168, 2459, 2465, 2538, 2542, 12088, 36895, 36905, 36913, 36922, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {9499,9517,0,0,0,0,0,0,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{37004,0,0,0,0,0,0,0}},
-       {1, 35305, 35308, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35408, 35411, 35414, 35417, 35420, 13574, 13565}, {36721, 36732, 13604, 36743, 36754, 36761, 36770, 36783, 36343, 36356, 36369, 36382, 0}, {36721, 36732, 13604, 36743, 36754, 36761, 36770, 36783, 36343, 36356, 36369, 36382, 0}, {36721, 36732, 13604, 36743, 36754, 36761, 36770, 36783, 36343, 36356, 36369, 36382, 0}, {36721, 36732, 13604, 36743, 36754, 36761, 36770, 36783, 36343, 36356, 36369, 36382, 0}, 0, 0, 2566, 187, {1128,1139,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{843,251,242,0,0,0,0,0,0,0,0,0},{848,269,257,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1921, 36852, 36862, {11995, 36968, 9208, 12020, 9223, 9233, 9239}, {9246, 9250, 9254, 12041, 9262, 9267, 9271}, {9275, 9277, 9279, 9281, 9283, 9277, 9281}, {2438, 2445, 15143, 2459, 2465, 2538, 2542, 12063, 36870, 36880, 36888, 36897, 0}, {2438, 2445, 15143, 2459, 2465, 2538, 2542, 12063, 36870, 36880, 36888, 36897, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {9499,9517,0,0,0,0,0,0,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{36979,0,0,0,0,0,0,0}},
+       {1, 35285, 35288, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35388, 35391, 35394, 35397, 35400, 13549, 13540}, {36696, 36707, 13579, 36718, 36729, 36736, 36745, 36758, 36318, 36331, 36344, 36357, 0}, {36696, 36707, 13579, 36718, 36729, 36736, 36745, 36758, 36318, 36331, 36344, 36357, 0}, {36696, 36707, 13579, 36718, 36729, 36736, 36745, 36758, 36318, 36331, 36344, 36357, 0}, {36696, 36707, 13579, 36718, 36729, 36736, 36745, 36758, 36318, 36331, 36344, 36357, 0}, 0, 0, 2566, 187, {1128,1139,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{843,251,242,0,0,0,0,0,0,0,0,0},{848,269,257,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
        {3613, 1929, 1932, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 2566, 187, {1692,0,0,0,0,0,0,0,0,0,0,0,0,0},{5505,0,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {2286,2277,2293,7410,4762,4753,0,0,0,0,0,0,0,0},{29578,4266,0,0,0,0,0,0,0,0},{3594,843,0,0,0,0,0,0,0,0,0,0},{3602,848,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {1921, 37015, 37033, {37048, 37061, 37080, 37093, 37108, 37125, 10975}, {37136, 37143, 37150, 37157, 37164, 37171, 37178}, {456, 459, 37185, 465, 468, 459, 465}, {37188, 37201, 501, 510, 15858, 15865, 15874, 542, 37216, 37235, 37250, 37267, 0}, {37188, 37201, 501, 510, 15858, 15865, 15874, 542, 37216, 37235, 37250, 37267, 0}, {37284, 37291, 37298, 37305, 15858, 37312, 37319, 37326, 37333, 37340, 37347, 37354, 0}, {37284, 37291, 37298, 37305, 15858, 37312, 37319, 37326, 37333, 37340, 37347, 37354, 0}, 0, 1, 691, 187, {9499,9517,0,0,0,0,0,0,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1, 35305, 35308, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35408, 35411, 35414, 35417, 35420, 13574, 13565}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 185, 187, {198,1692,0,0,0,0,0,0,0,0,0,0,0,0},{10751,14921,1128,20186,20206,222,0,0,0,0},{251,242,3594,843,0,0,0,0,0,0,0,0},{269,257,3602,848,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 2566, 187, {1128,198,189,2286,1139,1692,0,0,0,0,0,0,0,0},{29578,4239,4266,0,0,0,0,0,0,0},{242,3594,843,251,0,0,0,0,0,0,0,0},{257,3602,848,269,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {20057, 37015, 37033, {37048, 37061, 37080, 37093, 37108, 37125, 10975}, {37136, 37143, 37150, 37157, 37164, 37171, 37178}, {456, 459, 37185, 465, 468, 459, 465}, {37188, 37201, 501, 510, 15858, 15865, 15874, 542, 37216, 37235, 37250, 37267, 0}, {37188, 37201, 501, 510, 15858, 15865, 15874, 542, 37216, 37235, 37250, 37267, 0}, {37284, 37291, 37298, 37305, 15858, 37312, 37319, 37326, 37333, 37340, 37347, 37354, 0}, {37284, 37291, 37298, 37305, 15858, 37312, 37319, 37326, 37333, 37340, 37347, 37354, 0}, 0, 1, 691, 187, {4753,4762,2266,1156,36931,1167,9806,1692,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {1, 35305, 35308, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35408, 35411, 35414, 35417, 35420, 13574, 13565}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, 0, 0, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,9796,2286,1139,1692,0,0,0,0,0,0,0,0},{29578,4239,4266,0,0,0,0,0,0,0},{3594,843,0,0,0,0,0,0,0,0,0,0},{3602,848,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {1921, 36877, 36887, {12020, 36993, 9208, 12045, 9223, 9233, 9239}, {9246, 9250, 9254, 12066, 9262, 9267, 9271}, {9275, 9277, 9279, 9281, 9283, 9277, 9281}, {2438, 2445, 15168, 2459, 2465, 2538, 2542, 12088, 36895, 36905, 36913, 36922, 0}, {2438, 2445, 15168, 2459, 2465, 2538, 2542, 12088, 36895, 36905, 36913, 36922, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {9499,9517,0,0,0,0,0,0,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{37004,0,0,0,0,0,0,0}},
-       {1, 35305, 35308, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35408, 35411, 35414, 35417, 35420, 13574, 13565}, {35423, 35447, 35456, 35465, 35476, 35485, 35498, 35507, 35512, 35523, 35545, 35569, 0}, {35423, 35447, 35456, 35465, 35476, 35485, 35498, 35507, 35512, 35523, 35545, 35569, 0}, {35423, 35447, 35456, 35465, 35476, 35485, 35498, 35507, 35512, 35523, 35545, 35569, 0}, {35423, 35447, 35456, 35465, 35476, 35485, 35498, 35507, 35512, 35523, 35545, 35569, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 185, 187, {198,1692,0,0,0,0,0,0,0,0,0,0,0,0},{13756,0,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,2286,1139,1692,0,0,0,0,0,0,0,0,0},{29578,4239,4266,0,0,0,0,0,0,0},{242,3594,843,251,0,0,0,0,0,0,0,0},{257,3602,848,269,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {1921, 37015, 37033, {37048, 37061, 37080, 8714, 37108, 37125, 10975}, {37136, 37143, 37150, 37361, 37164, 37171, 37178}, {456, 459, 37185, 465, 468, 459, 465}, {37188, 37201, 501, 510, 15858, 37312, 37319, 542, 37216, 37235, 37250, 37267, 0}, {37188, 37201, 501, 510, 15858, 37312, 37319, 542, 37216, 37235, 37250, 37267, 0}, {37284, 37291, 37298, 37305, 15858, 37312, 37319, 37326, 37333, 37340, 37347, 37354, 0}, {37284, 37291, 37298, 37305, 15858, 37312, 37319, 37326, 37333, 37340, 37347, 37354, 0}, 0, 1, 691, 187, {9499,9517,0,0,0,0,0,0,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{37004,0,0,0,0,0,0,0}},
-       {1, 35305, 35308, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35408, 35411, 35414, 35417, 35420, 13574, 13565}, {35423, 35447, 35456, 35465, 35476, 35485, 35498, 35507, 35512, 35523, 35545, 35569, 0}, {35423, 35447, 35456, 35465, 35476, 35485, 35498, 35507, 35512, 35523, 35545, 35569, 0}, {35423, 35447, 35456, 35465, 35476, 35485, 35498, 35507, 35512, 35523, 35545, 35569, 0}, {35423, 35447, 35456, 35465, 35476, 35485, 35498, 35507, 35512, 35523, 35545, 35569, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 185, 187, {198,1692,0,0,0,0,0,0,0,0,0,0,0,0},{13756,0,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {37368, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,2286,1139,1692,0,0,0,0,0,0,0,0,0},{29578,4239,4266,0,0,0,0,0,0,0},{242,3594,251,843,0,0,0,0,0,0,0,0},{257,3602,269,848,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {1921, 36877, 36887, {12020, 36993, 9208, 12045, 9223, 9233, 9239}, {9246, 9250, 9254, 12066, 9262, 9267, 9271}, {9275, 9277, 9279, 9281, 9283, 9277, 9281}, {2438, 2445, 15168, 2459, 2465, 2538, 2542, 12088, 36895, 36905, 36913, 36922, 0}, {2438, 2445, 15168, 2459, 2465, 2538, 2542, 12088, 36895, 36905, 36913, 36922, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {9499,9509,6153,9517,9529,9539,9549,1692,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{37004,0,0,0,0,0,0,0}},
-       {1, 35305, 35308, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35408, 35411, 35414, 35417, 35420, 13574, 13565}, {35423, 35447, 35456, 35465, 35476, 35485, 35498, 35507, 35512, 35523, 35545, 35569, 0}, {35423, 35447, 35456, 35465, 35476, 35485, 35498, 35507, 35512, 35523, 35545, 35569, 0}, {35423, 35447, 35456, 35465, 35476, 35485, 35498, 35507, 35512, 35523, 35545, 35569, 0}, {35423, 35447, 35456, 35465, 35476, 35485, 35498, 35507, 35512, 35523, 35545, 35569, 0}, 0, 1, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 185, 187, {198,2277,0,0,0,0,0,0,0,0,0,0,0,0},{1207,1242,5002,10205,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{37381,0,0,0,0,0,0,0}},
-       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 1, 185, 187, {198,189,2286,1139,1692,0,0,0,0,0,0,0,0,0},{29578,4239,4266,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {1921, 37015, 37033, {37048, 37061, 37080, 8714, 37108, 37125, 10975}, {37136, 37143, 37150, 37361, 37164, 37171, 37178}, {456, 459, 37185, 465, 468, 459, 465}, {37188, 37201, 501, 510, 15858, 37312, 37319, 542, 37216, 37235, 37250, 37267, 0}, {37188, 37201, 501, 510, 15858, 37312, 37319, 542, 37216, 37235, 37250, 37267, 0}, {37284, 37291, 37298, 37305, 15858, 37312, 37319, 37326, 37333, 37340, 37347, 37354, 0}, {37284, 37291, 37298, 37305, 15858, 37312, 37319, 37326, 37333, 37340, 37347, 37354, 0}, 0, 1, 691, 187, {9499,9509,6153,9517,9529,9539,9549,37391,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{37004,0,0,0,0,0,0,0}},
-       {1, 35305, 35308, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35408, 35411, 35414, 35417, 35420, 13574, 13565}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {3613, 1929, 1932, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 185, 187, {3773,3782,3789,3798,1692,1735,3809,0,0,0,0,0,0,0},{20186,20206,222,10751,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {37403, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 1, 2566, 187, {1128,1139,189,2286,0,0,0,0,0,0,0,0,0,0},{29578,4239,4266,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {1, 35305, 35308, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35408, 35411, 35414, 35417, 35420, 13574, 13565}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 1, 185, 187, {198,189,2286,1139,1692,0,0,0,0,0,0,0,0,0},{29578,4239,4266,0,0,0,0,0,0,0},{843,251,242,3594,0,0,0,0,0,0,0,0},{848,269,257,3602,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {1, 35305, 35308, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35408, 35411, 35414, 35417, 35420, 13574, 13565}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,2286,1139,1692,0,0,0,0,0,0,0,0,0},{29578,4239,4266,0,0,0,0,0,0,0},{242,3594,843,251,0,0,0,0,0,0,0,0},{257,3602,848,269,0,0,0,0,0},{1286,278,0,0,0,0,0,0}},
-       {1, 35305, 35308, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35311, 35322, 35337, 35354, 35371, 35384, 35397}, {35408, 35411, 35414, 35417, 35420, 13574, 13565}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, {36266, 36277, 13604, 36290, 36301, 36310, 36321, 36332, 36343, 36356, 36369, 36382, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {289, 8151, 22114, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,242,0,0,0,0,0,0,0,0,0},{269,848,2326,257,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {37403, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,2286,1139,0,0,0,0,0,0,0,0,0,0},{29578,4266,0,0,0,0,0,0,0,0},{242,3594,843,251,0,0,0,0,0,0,0,0},{257,3602,848,269,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,37414,1692,0,0,0,0,0,0,0,0,0,0},{29578,0,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {289, 8151, 22114, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 185, 187, {2277,2286,198,189,1692,0,0,0,0,0,0,0,0,0},{1207,1242,0,0,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,37414,1692,0,0,0,0,0,0,0,0,0,0},{4211,0,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,37414,1692,0,0,0,0,0,0,0,0,0,0},{4211,0,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{37425,0,0,0,0,0,0,0}},
-       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,37414,1692,0,0,0,0,0,0,0,0,0,0},{29578,0,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {3613, 1929, 1932, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {3773,3782,3789,3798,1735,1692,3809,0,0,0,0,0,0,0},{20186,20206,222,10751,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
-       {20057, 37015, 37033, {37048, 37061, 37080, 37093, 37108, 37125, 10975}, {37136, 37143, 37150, 37157, 37164, 37171, 37178}, {456, 459, 37185, 465, 468, 459, 465}, {37188, 37201, 501, 510, 15858, 15865, 15874, 542, 37216, 37235, 37250, 37267, 0}, {37188, 37201, 501, 510, 15858, 15865, 15874, 542, 37216, 37235, 37250, 37267, 0}, {37284, 37291, 37298, 37305, 15858, 37312, 37319, 37326, 37333, 37340, 37347, 37354, 0}, {37284, 37291, 37298, 37305, 15858, 37312, 37319, 37326, 37333, 37340, 37347, 37354, 0}, 0, 1, 691, 187, {4753,4762,2266,1156,36931,1167,9806,1692,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {12109, 36877, 36887, {9187, 9196, 9208, 9215, 9223, 9233, 9239}, {9246, 9250, 9254, 9258, 9262, 9267, 9271}, {0, 0, 0, 0, 0, 0, 0}, {2438, 2445, 15168, 2459, 2465, 2469, 2474, 12088, 36895, 36905, 36913, 36922, 0}, {2438, 2445, 15168, 2459, 2465, 2469, 2474, 12088, 36895, 36905, 36913, 36922, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {4753,4762,2266,1156,36931,1167,9806,1692,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {1921, 37015, 37033, {37048, 37061, 37080, 8714, 37108, 37125, 10975}, {37136, 37143, 37150, 37361, 37164, 37171, 37178}, {456, 459, 37185, 465, 468, 459, 465}, {37188, 37201, 501, 510, 15858, 37312, 37319, 542, 37216, 37235, 37250, 37267, 0}, {37188, 37201, 501, 510, 15858, 37312, 37319, 542, 37216, 37235, 37250, 37267, 0}, {37284, 37291, 37298, 37305, 15858, 37312, 37319, 37326, 37333, 37340, 37347, 37354, 0}, {37284, 37291, 37298, 37305, 15858, 37312, 37319, 37326, 37333, 37340, 37347, 37354, 0}, 0, 1, 691, 187, {9499,9517,0,0,0,0,0,0,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{37004,0,0,0,0,0,0,0}},
-       {1921, 36877, 36887, {12020, 36993, 9208, 12045, 9223, 9233, 9239}, {9246, 9250, 9254, 12066, 9262, 9267, 9271}, {9275, 9277, 9279, 9281, 9283, 9277, 9281}, {2438, 2445, 15168, 2459, 2465, 2538, 2542, 12088, 36895, 36905, 36913, 36922, 0}, {2438, 2445, 15168, 2459, 2465, 2538, 2542, 12088, 36895, 36905, 36913, 36922, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {9499,9517,0,0,0,0,0,0,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{37004,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {35853, 35864, 35888, 35918, 35935, 35957, 35966}, {15057, 15060, 15065, 15071, 15075, 7736, 15080}, {6617, 6605, 6607, 6609, 6611, 6613, 6615}, {35977, 35990, 501, 36003, 521, 36014, 36023, 542, 36032, 36049, 36064, 36077, 0}, {35977, 35990, 501, 36003, 521, 36014, 36023, 542, 36032, 36049, 36064, 36077, 0}, {15231, 8135, 2530, 2534, 15179, 15235, 15239, 15243, 15247, 2554, 15251, 15255, 0}, {15231, 8135, 2530, 2534, 15179, 15235, 15239, 15243, 15247, 2554, 15251, 15255, 0}, 0, 1, 691, 187, {1156,1167,4762,189,1692,0,0,0,0,0,0,0,0,0},{1242,5505,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {2286,2277,2293,7410,4762,4753,0,0,0,0,0,0,0,0},{29553,4266,0,0,0,0,0,0,0,0},{3594,843,0,0,0,0,0,0,0,0,0,0},{3602,848,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {1921, 36990, 37008, {37023, 37036, 37055, 37068, 37083, 37100, 10950}, {37111, 37118, 37125, 37132, 37139, 37146, 37153}, {456, 459, 37160, 465, 468, 459, 465}, {37163, 37176, 501, 510, 15833, 15840, 15849, 542, 37191, 37210, 37225, 37242, 0}, {37163, 37176, 501, 510, 15833, 15840, 15849, 542, 37191, 37210, 37225, 37242, 0}, {37259, 37266, 37273, 37280, 15833, 37287, 37294, 37301, 37308, 37315, 37322, 37329, 0}, {37259, 37266, 37273, 37280, 15833, 37287, 37294, 37301, 37308, 37315, 37322, 37329, 0}, 0, 1, 691, 187, {9499,9517,0,0,0,0,0,0,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1, 35285, 35288, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35388, 35391, 35394, 35397, 35400, 13549, 13540}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 185, 187, {198,1692,0,0,0,0,0,0,0,0,0,0,0,0},{10709,14896,1128,20161,20181,222,0,0,0,0},{251,242,3594,843,0,0,0,0,0,0,0,0},{269,257,3602,848,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 2566, 187, {1128,198,189,2286,1139,1692,0,0,0,0,0,0,0,0},{29553,4239,4266,0,0,0,0,0,0,0},{242,3594,843,251,0,0,0,0,0,0,0,0},{257,3602,848,269,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {20032, 36990, 37008, {37023, 37036, 37055, 37068, 37083, 37100, 10950}, {37111, 37118, 37125, 37132, 37139, 37146, 37153}, {456, 459, 37160, 465, 468, 459, 465}, {37163, 37176, 501, 510, 15833, 15840, 15849, 542, 37191, 37210, 37225, 37242, 0}, {37163, 37176, 501, 510, 15833, 15840, 15849, 542, 37191, 37210, 37225, 37242, 0}, {37259, 37266, 37273, 37280, 15833, 37287, 37294, 37301, 37308, 37315, 37322, 37329, 0}, {37259, 37266, 37273, 37280, 15833, 37287, 37294, 37301, 37308, 37315, 37322, 37329, 0}, 0, 1, 691, 187, {4753,4762,2266,1156,36906,1167,9806,1692,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {1, 35285, 35288, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35388, 35391, 35394, 35397, 35400, 13549, 13540}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, 0, 0, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,9796,2286,1139,1692,0,0,0,0,0,0,0,0},{29553,4239,4266,0,0,0,0,0,0,0},{3594,843,0,0,0,0,0,0,0,0,0,0},{3602,848,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {1921, 36852, 36862, {11995, 36968, 9208, 12020, 9223, 9233, 9239}, {9246, 9250, 9254, 12041, 9262, 9267, 9271}, {9275, 9277, 9279, 9281, 9283, 9277, 9281}, {2438, 2445, 15143, 2459, 2465, 2538, 2542, 12063, 36870, 36880, 36888, 36897, 0}, {2438, 2445, 15143, 2459, 2465, 2538, 2542, 12063, 36870, 36880, 36888, 36897, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {9499,9517,0,0,0,0,0,0,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{36979,0,0,0,0,0,0,0}},
+       {1, 35285, 35288, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35388, 35391, 35394, 35397, 35400, 13549, 13540}, {35403, 35427, 35436, 35445, 35456, 35465, 35478, 35487, 35492, 35503, 35525, 35549, 0}, {35403, 35427, 35436, 35445, 35456, 35465, 35478, 35487, 35492, 35503, 35525, 35549, 0}, {35403, 35427, 35436, 35445, 35456, 35465, 35478, 35487, 35492, 35503, 35525, 35549, 0}, {35403, 35427, 35436, 35445, 35456, 35465, 35478, 35487, 35492, 35503, 35525, 35549, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 185, 187, {198,1692,0,0,0,0,0,0,0,0,0,0,0,0},{13731,0,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,2286,1139,1692,0,0,0,0,0,0,0,0,0},{29553,4239,4266,0,0,0,0,0,0,0},{242,3594,843,251,0,0,0,0,0,0,0,0},{257,3602,848,269,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {1921, 36990, 37008, {37023, 37036, 37055, 8714, 37083, 37100, 10950}, {37111, 37118, 37125, 37336, 37139, 37146, 37153}, {456, 459, 37160, 465, 468, 459, 465}, {37163, 37176, 501, 510, 15833, 37287, 37294, 542, 37191, 37210, 37225, 37242, 0}, {37163, 37176, 501, 510, 15833, 37287, 37294, 542, 37191, 37210, 37225, 37242, 0}, {37259, 37266, 37273, 37280, 15833, 37287, 37294, 37301, 37308, 37315, 37322, 37329, 0}, {37259, 37266, 37273, 37280, 15833, 37287, 37294, 37301, 37308, 37315, 37322, 37329, 0}, 0, 1, 691, 187, {9499,9517,0,0,0,0,0,0,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{36979,0,0,0,0,0,0,0}},
+       {1, 35285, 35288, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35388, 35391, 35394, 35397, 35400, 13549, 13540}, {35403, 35427, 35436, 35445, 35456, 35465, 35478, 35487, 35492, 35503, 35525, 35549, 0}, {35403, 35427, 35436, 35445, 35456, 35465, 35478, 35487, 35492, 35503, 35525, 35549, 0}, {35403, 35427, 35436, 35445, 35456, 35465, 35478, 35487, 35492, 35503, 35525, 35549, 0}, {35403, 35427, 35436, 35445, 35456, 35465, 35478, 35487, 35492, 35503, 35525, 35549, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 185, 187, {198,1692,0,0,0,0,0,0,0,0,0,0,0,0},{13731,0,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {37343, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,2286,1139,1692,0,0,0,0,0,0,0,0,0},{29553,4239,4266,0,0,0,0,0,0,0},{242,3594,251,843,0,0,0,0,0,0,0,0},{257,3602,269,848,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {1921, 36852, 36862, {11995, 36968, 9208, 12020, 9223, 9233, 9239}, {9246, 9250, 9254, 12041, 9262, 9267, 9271}, {9275, 9277, 9279, 9281, 9283, 9277, 9281}, {2438, 2445, 15143, 2459, 2465, 2538, 2542, 12063, 36870, 36880, 36888, 36897, 0}, {2438, 2445, 15143, 2459, 2465, 2538, 2542, 12063, 36870, 36880, 36888, 36897, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {9499,9509,6153,9517,9529,9539,9549,1692,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{36979,0,0,0,0,0,0,0}},
+       {1, 35285, 35288, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35388, 35391, 35394, 35397, 35400, 13549, 13540}, {35403, 35427, 35436, 35445, 35456, 35465, 35478, 35487, 35492, 35503, 35525, 35549, 0}, {35403, 35427, 35436, 35445, 35456, 35465, 35478, 35487, 35492, 35503, 35525, 35549, 0}, {35403, 35427, 35436, 35445, 35456, 35465, 35478, 35487, 35492, 35503, 35525, 35549, 0}, {35403, 35427, 35436, 35445, 35456, 35465, 35478, 35487, 35492, 35503, 35525, 35549, 0}, 0, 1, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 185, 187, {198,2277,0,0,0,0,0,0,0,0,0,0,0,0},{1207,1242,5002,10163,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{37356,0,0,0,0,0,0,0}},
+       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 1, 185, 187, {198,189,2286,1139,1692,0,0,0,0,0,0,0,0,0},{29553,4239,4266,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {1921, 36990, 37008, {37023, 37036, 37055, 8714, 37083, 37100, 10950}, {37111, 37118, 37125, 37336, 37139, 37146, 37153}, {456, 459, 37160, 465, 468, 459, 465}, {37163, 37176, 501, 510, 15833, 37287, 37294, 542, 37191, 37210, 37225, 37242, 0}, {37163, 37176, 501, 510, 15833, 37287, 37294, 542, 37191, 37210, 37225, 37242, 0}, {37259, 37266, 37273, 37280, 15833, 37287, 37294, 37301, 37308, 37315, 37322, 37329, 0}, {37259, 37266, 37273, 37280, 15833, 37287, 37294, 37301, 37308, 37315, 37322, 37329, 0}, 0, 1, 691, 187, {9499,9509,6153,9517,9529,9539,9549,37366,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{36979,0,0,0,0,0,0,0}},
+       {1, 35285, 35288, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35388, 35391, 35394, 35397, 35400, 13549, 13540}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {3613, 1929, 1932, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 185, 187, {3773,3782,3789,3798,1692,1735,3809,0,0,0,0,0,0,0},{20161,20181,222,10709,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {37378, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 1, 2566, 187, {1128,1139,189,2286,0,0,0,0,0,0,0,0,0,0},{29553,4239,4266,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {1, 35285, 35288, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35388, 35391, 35394, 35397, 35400, 13549, 13540}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 1, 185, 187, {198,189,2286,1139,1692,0,0,0,0,0,0,0,0,0},{29553,4239,4266,0,0,0,0,0,0,0},{843,251,242,3594,0,0,0,0,0,0,0,0},{848,269,257,3602,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {1, 35285, 35288, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35388, 35391, 35394, 35397, 35400, 13549, 13540}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,2286,1139,1692,0,0,0,0,0,0,0,0,0},{29553,4239,4266,0,0,0,0,0,0,0},{242,3594,843,251,0,0,0,0,0,0,0,0},{257,3602,848,269,0,0,0,0,0},{1286,278,0,0,0,0,0,0}},
+       {1, 35285, 35288, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35291, 35302, 35317, 35334, 35351, 35364, 35377}, {35388, 35391, 35394, 35397, 35400, 13549, 13540}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, {36241, 36252, 13579, 36265, 36276, 36285, 36296, 36307, 36318, 36331, 36344, 36357, 0}, 0, 6, 185, 187, {198,189,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{242,251,843,0,0,0,0,0,0,0,0,0},{257,269,848,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {289, 8151, 22089, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 2566, 187, {1128,1139,2293,4762,1692,0,0,0,0,0,0,0,0,0},{5505,1242,0,0,0,0,0,0,0,0},{251,843,242,0,0,0,0,0,0,0,0,0},{269,848,2326,257,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {37378, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,2286,1139,0,0,0,0,0,0,0,0,0,0},{29553,4266,0,0,0,0,0,0,0,0},{242,3594,843,251,0,0,0,0,0,0,0,0},{257,3602,848,269,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,37389,1692,0,0,0,0,0,0,0,0,0,0},{29553,0,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {289, 8151, 22089, {3620, 3627, 3634, 3642, 3652, 3661, 3668}, {3677, 3681, 3685, 3689, 3693, 3697, 3701}, {2023, 2428, 2430, 3705, 2430, 2434, 2023}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {3707, 3715, 3724, 2696, 3730, 3734, 3739, 2716, 2723, 3744, 2741, 3752, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, {2759, 2763, 3761, 2772, 3730, 2776, 2780, 2784, 2788, 3765, 2796, 3769, 0}, 0, 0, 185, 187, {2277,2286,198,189,1692,0,0,0,0,0,0,0,0,0},{1207,1242,0,0,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,37389,1692,0,0,0,0,0,0,0,0,0,0},{4211,0,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,37389,1692,0,0,0,0,0,0,0,0,0,0},{4211,0,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{37400,0,0,0,0,0,0,0}},
+       {3883, 872, 878, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {198,189,37389,1692,0,0,0,0,0,0,0,0,0,0},{29553,0,0,0,0,0,0,0,0,0},{242,251,0,0,0,0,0,0,0,0,0,0},{257,269,0,0,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {3613, 1929, 1932, {3895, 3903, 3909, 3916, 3927, 3934, 3942}, {3950, 3955, 3960, 3965, 3971, 3976, 3981}, {2673, 2436, 2428, 2428, 3987, 3989, 2023}, {3991, 3997, 4005, 4011, 4017, 4022, 4028, 4034, 4041, 4052, 4060, 4070, 0}, {4080, 4086, 4094, 1012, 4100, 4105, 4111, 4117, 4124, 1050, 4135, 4145, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, {4155, 4160, 3960, 4165, 4170, 4175, 4180, 4185, 4190, 4196, 4201, 4206, 0}, 0, 0, 185, 187, {3773,3782,3789,3798,1735,1692,3809,0,0,0,0,0,0,0},{20161,20181,222,10709,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{1286,0,0,0,0,0,0,0}},
+       {20032, 36990, 37008, {37023, 37036, 37055, 37068, 37083, 37100, 10950}, {37111, 37118, 37125, 37132, 37139, 37146, 37153}, {456, 459, 37160, 465, 468, 459, 465}, {37163, 37176, 501, 510, 15833, 15840, 15849, 542, 37191, 37210, 37225, 37242, 0}, {37163, 37176, 501, 510, 15833, 15840, 15849, 542, 37191, 37210, 37225, 37242, 0}, {37259, 37266, 37273, 37280, 15833, 37287, 37294, 37301, 37308, 37315, 37322, 37329, 0}, {37259, 37266, 37273, 37280, 15833, 37287, 37294, 37301, 37308, 37315, 37322, 37329, 0}, 0, 1, 691, 187, {4753,4762,2266,1156,36906,1167,9806,1692,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {12084, 36852, 36862, {9187, 9196, 9208, 9215, 9223, 9233, 9239}, {9246, 9250, 9254, 9258, 9262, 9267, 9271}, {0, 0, 0, 0, 0, 0, 0}, {2438, 2445, 15143, 2459, 2465, 2469, 2474, 12063, 36870, 36880, 36888, 36897, 0}, {2438, 2445, 15143, 2459, 2465, 2469, 2474, 12063, 36870, 36880, 36888, 36897, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {4753,4762,2266,1156,36906,1167,9806,1692,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {1921, 36990, 37008, {37023, 37036, 37055, 8714, 37083, 37100, 10950}, {37111, 37118, 37125, 37336, 37139, 37146, 37153}, {456, 459, 37160, 465, 468, 459, 465}, {37163, 37176, 501, 510, 15833, 37287, 37294, 542, 37191, 37210, 37225, 37242, 0}, {37163, 37176, 501, 510, 15833, 37287, 37294, 542, 37191, 37210, 37225, 37242, 0}, {37259, 37266, 37273, 37280, 15833, 37287, 37294, 37301, 37308, 37315, 37322, 37329, 0}, {37259, 37266, 37273, 37280, 15833, 37287, 37294, 37301, 37308, 37315, 37322, 37329, 0}, 0, 1, 691, 187, {9499,9517,0,0,0,0,0,0,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{36979,0,0,0,0,0,0,0}},
+       {1921, 36852, 36862, {11995, 36968, 9208, 12020, 9223, 9233, 9239}, {9246, 9250, 9254, 12041, 9262, 9267, 9271}, {9275, 9277, 9279, 9281, 9283, 9277, 9281}, {2438, 2445, 15143, 2459, 2465, 2538, 2542, 12063, 36870, 36880, 36888, 36897, 0}, {2438, 2445, 15143, 2459, 2465, 2538, 2542, 12063, 36870, 36880, 36888, 36897, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {9499,9517,0,0,0,0,0,0,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{36979,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {35828, 35839, 35863, 35893, 35910, 35932, 35941}, {15032, 15035, 15040, 15046, 15050, 7736, 15055}, {6617, 6605, 6607, 6609, 6611, 6613, 6615}, {35952, 35965, 501, 35978, 521, 35989, 35998, 542, 36007, 36024, 36039, 36052, 0}, {35952, 35965, 501, 35978, 521, 35989, 35998, 542, 36007, 36024, 36039, 36052, 0}, {15206, 8135, 2530, 2534, 15154, 15210, 15214, 15218, 15222, 2554, 15226, 15230, 0}, {15206, 8135, 2530, 2534, 15154, 15210, 15214, 15218, 15222, 2554, 15226, 15230, 0}, 0, 1, 691, 187, {1156,1167,4762,189,1692,0,0,0,0,0,0,0,0,0},{1242,5505,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{269,0,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
        {1327, 1340, 1347, {1354, 1364, 1374, 1384, 1394, 1404, 1414}, {1424, 1431, 1438, 1445, 1452, 1459, 1466}, {1473, 1477, 1481, 1485, 1489, 1493, 1497}, {1501, 1508, 1515, 1522, 1529, 1536, 1543, 1550, 1557, 1564, 1571, 1581, 0}, {1501, 1508, 1515, 1522, 1529, 1536, 1543, 1550, 1557, 1564, 1571, 1581, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, 0, 0, 185, 187, {1654,1663,1672,1681,1692,1703,1714,1721,1728,1735,0,0,0,0},{1744,1766,1794,1822,1837,0,0,0,0,0},{843,251,1858,1866,0,0,0,0,0,0,0,0},{848,269,1875,1886,0,0,0,0,0},{1898,1914,0,0,0,0,0,0}},
-       {1921, 35760, 35765, {2345, 10060, 35770, 2368, 2375, 2383, 35777}, {2398, 35785, 35790, 2411, 2415, 2419, 35794}, {2023, 2428, 2430, 2432, 2430, 2434, 2436}, {2438, 2445, 4887, 2459, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2438, 2445, 4887, 2459, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, 2, 1, 691, 187, {1156,7519,1167,4762,2804,1692,0,0,0,0,0,0,0,0},{2300,4769,0,0,0,0,0,0,0,0},{251,843,7529,7539,4288,2321,7550,7561,0,0,0,0},{269,848,7571,7585,4302,2337,7598,7612,0},{1301,7625,7635,0,0,0,0,0}},
-       {12109, 36877, 36887, {9187, 9196, 9208, 9215, 9223, 9233, 9239}, {9246, 9250, 9254, 9258, 9262, 9267, 9271}, {0, 0, 0, 0, 0, 0, 0}, {2438, 2445, 15168, 2459, 2465, 2469, 2474, 12088, 36895, 36905, 36913, 36922, 0}, {2438, 2445, 15168, 2459, 2465, 2469, 2474, 12088, 36895, 36905, 36913, 36922, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12095, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {4753,4762,2266,1156,36931,1167,9806,1692,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {14968, 14974, 14988, 15011, 15025, 15041, 15048}, {15057, 15060, 15065, 15071, 15075, 7736, 15080}, {6617, 6605, 6607, 6609, 6611, 6613, 6615}, {15084, 15091, 10374, 15098, 3730, 15104, 15110, 15116, 15123, 15132, 15140, 15147, 0}, {15154, 15161, 15168, 15173, 15179, 15183, 15188, 15193, 15200, 15209, 15217, 15224, 0}, {15231, 8135, 2530, 2534, 15179, 15235, 15239, 15243, 15247, 2554, 15251, 15255, 0}, {15231, 8135, 2530, 2534, 15179, 15235, 15239, 15243, 15247, 2554, 15251, 15255, 0}, 0, 1, 691, 187, {1156,1167,4762,189,1692,0,0,0,0,0,0,0,0,0},{15259,0,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 1929, 1932, {36090, 36105, 36120, 36135, 36152, 36169, 36178}, {36189, 36196, 36203, 36210, 36217, 19832, 36224}, {36231, 19439, 8811, 8814, 8808, 19436, 19846}, {13229, 13240, 8845, 13253, 8867, 13264, 13271, 8892, 13278, 13293, 13306, 13317, 0}, {13229, 13240, 8845, 13253, 8867, 13264, 13271, 8892, 13278, 13293, 13306, 13317, 0}, {13330, 13337, 13344, 13351, 8867, 13264, 13271, 13358, 13365, 13372, 13379, 13386, 0}, {13330, 13337, 13344, 13351, 8867, 13264, 13271, 13358, 13365, 13372, 13379, 13386, 0}, 0, 1, 691, 187, {1156,1167,36234,4762,189,1692,0,0,0,0,0,0,0,0},{36245,1242,5505,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {5619, 26213, 26218, {26223, 26230, 26241, 26254, 26267, 26278, 26291}, {26302, 26307, 26312, 26317, 26322, 26327, 26332}, {6605, 6607, 6609, 6611, 6613, 6615, 6617}, {26337, 26363, 26391, 26421, 26451, 26477, 26507, 26533, 26561, 26585, 26613, 26650, 0}, {26337, 26363, 26391, 26421, 26451, 26477, 26507, 26533, 26561, 26585, 26613, 26650, 0}, {26689, 26701, 26713, 26725, 26737, 26749, 26761, 26773, 26785, 26797, 26810, 26823, 0}, {26689, 26701, 26713, 26725, 26737, 26749, 26761, 26773, 26785, 26797, 26810, 26823, 0}, 0, 0, 2566, 187, {1692,0,0,0,0,0,0,0,0,0,0,0,0,0},{26836,26890,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{26926,0,0,0,0,0,0,0}},
-       {1327, 1340, 1347, {1354, 1364, 1374, 1384, 1394, 1404, 1414}, {35236, 35243, 35250, 35257, 35264, 35271, 35278}, {1473, 1477, 1481, 1485, 1489, 1493, 1497}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, 0, 0, 185, 187, {2277,2286,189,1714,1735,1654,1681,1692,0,0,0,0,0,0},{1744,6632,1822,1837,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1898,1914,0,0,0,0,0,0}},
-       {1327, 1340, 1347, {1354, 1364, 1374, 1384, 1394, 1404, 1414}, {35236, 35243, 35250, 35257, 35264, 35271, 35278}, {1473, 1477, 1481, 1485, 1489, 1493, 1497}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, 0, 0, 185, 187, {2277,2286,189,1714,1735,1654,1681,1692,0,0,0,0,0,0},{1744,6632,1822,1837,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1898,1914,0,0,0,0,0,0}},
+       {1921, 35740, 35745, {2345, 10060, 35750, 2368, 2375, 2383, 35757}, {2398, 10088, 35765, 2411, 2415, 2419, 35769}, {2023, 2428, 2430, 2432, 2430, 2434, 2436}, {2438, 2445, 4887, 2459, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2438, 2445, 4887, 2459, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, 2, 1, 691, 187, {1156,7519,1167,4762,2804,1692,0,0,0,0,0,0,0,0},{2300,4769,0,0,0,0,0,0,0,0},{251,843,7529,7539,4288,2321,7550,7561,0,0,0,0},{269,848,7571,7585,4302,2337,7598,7612,0},{1301,7625,7635,0,0,0,0,0}},
+       {12084, 36852, 36862, {9187, 9196, 9208, 9215, 9223, 9233, 9239}, {9246, 9250, 9254, 9258, 9262, 9267, 9271}, {0, 0, 0, 0, 0, 0, 0}, {2438, 2445, 15143, 2459, 2465, 2469, 2474, 12063, 36870, 36880, 36888, 36897, 0}, {2438, 2445, 15143, 2459, 2465, 2469, 2474, 12063, 36870, 36880, 36888, 36897, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, {2522, 2526, 2530, 2534, 2465, 2538, 2542, 12070, 2550, 2554, 2558, 2562, 0}, 0, 1, 691, 187, {4753,4762,2266,1156,36906,1167,9806,1692,0,0,0,0,0,0},{2300,4769,2818,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {14943, 14949, 14963, 14986, 15000, 15016, 15023}, {15032, 15035, 15040, 15046, 15050, 7736, 15055}, {6617, 6605, 6607, 6609, 6611, 6613, 6615}, {15059, 15066, 10332, 15073, 3730, 15079, 15085, 15091, 15098, 15107, 15115, 15122, 0}, {15129, 15136, 15143, 15148, 15154, 15158, 15163, 15168, 15175, 15184, 15192, 15199, 0}, {15206, 8135, 2530, 2534, 15154, 15210, 15214, 15218, 15222, 2554, 15226, 15230, 0}, {15206, 8135, 2530, 2534, 15154, 15210, 15214, 15218, 15222, 2554, 15226, 15230, 0}, 0, 1, 691, 187, {1156,1167,4762,189,1692,0,0,0,0,0,0,0,0,0},{15234,0,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 1929, 1932, {36065, 36080, 36095, 36110, 36127, 36144, 36153}, {36164, 36171, 36178, 36185, 36192, 19807, 36199}, {36206, 19414, 8811, 8814, 8808, 19411, 19821}, {13204, 13215, 8845, 13228, 8867, 13239, 13246, 8892, 13253, 13268, 13281, 13292, 0}, {13204, 13215, 8845, 13228, 8867, 13239, 13246, 8892, 13253, 13268, 13281, 13292, 0}, {13305, 13312, 13319, 13326, 8867, 13239, 13246, 13333, 13340, 13347, 13354, 13361, 0}, {13305, 13312, 13319, 13326, 8867, 13239, 13246, 13333, 13340, 13347, 13354, 13361, 0}, 0, 1, 691, 187, {1156,1167,36209,4762,189,1692,0,0,0,0,0,0,0,0},{36220,1242,5505,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {5619, 26188, 26193, {26198, 26205, 26216, 26229, 26242, 26253, 26266}, {26277, 26282, 26287, 26292, 26297, 26302, 26307}, {6605, 6607, 6609, 6611, 6613, 6615, 6617}, {26312, 26338, 26366, 26396, 26426, 26452, 26482, 26508, 26536, 26560, 26588, 26625, 0}, {26312, 26338, 26366, 26396, 26426, 26452, 26482, 26508, 26536, 26560, 26588, 26625, 0}, {26664, 26676, 26688, 26700, 26712, 26724, 26736, 26748, 26760, 26772, 26785, 26798, 0}, {26664, 26676, 26688, 26700, 26712, 26724, 26736, 26748, 26760, 26772, 26785, 26798, 0}, 0, 0, 2566, 187, {1692,0,0,0,0,0,0,0,0,0,0,0,0,0},{26811,26865,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{26901,0,0,0,0,0,0,0}},
+       {1327, 1340, 1347, {1354, 1364, 1374, 1384, 1394, 1404, 1414}, {35216, 35223, 35230, 35237, 35244, 35251, 35258}, {1473, 1477, 1481, 1485, 1489, 1493, 1497}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, 0, 0, 185, 187, {2277,2286,189,1714,1735,1654,1681,1692,0,0,0,0,0,0},{1744,6632,1822,1837,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1898,1914,0,0,0,0,0,0}},
+       {1327, 1340, 1347, {1354, 1364, 1374, 1384, 1394, 1404, 1414}, {35216, 35223, 35230, 35237, 35244, 35251, 35258}, {1473, 1477, 1481, 1485, 1489, 1493, 1497}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, {1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636, 1642, 1648, 0}, 0, 0, 185, 187, {2277,2286,189,1714,1735,1654,1681,1692,0,0,0,0,0,0},{1744,6632,1822,1837,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{1898,1914,0,0,0,0,0,0}},
        {1921, 7281, 7286, {2345, 2353, 2360, 2368, 2375, 2383, 2390}, {7485, 7490, 7494, 7498, 7502, 7506, 7510}, {2023, 2428, 2430, 2432, 2430, 2434, 2436}, {2438, 2445, 4887, 2459, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2438, 2445, 4887, 2459, 4898, 2469, 2474, 2479, 2486, 2496, 2504, 6121, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, {2522, 2526, 2530, 2534, 4898, 2538, 2542, 2546, 2550, 2554, 2558, 7515, 0}, 2, 1, 691, 187, {1156,7519,1167,4762,2804,1692,0,0,0,0,0,0,0,0},{2300,4769,0,0,0,0,0,0,0,0},{251,843,7529,7539,4288,2321,7550,7561,0,0,0,0},{269,848,7571,7585,4302,2337,7598,7612,0},{1301,7625,7635,0,0,0,0,0}},
-       {1921, 37015, 37033, {37048, 37061, 37080, 8714, 37108, 37125, 10975}, {37136, 37143, 37150, 37361, 37164, 37171, 37178}, {456, 459, 37185, 465, 468, 459, 465}, {37188, 37201, 501, 510, 15858, 37312, 37319, 542, 37216, 37235, 37250, 37267, 0}, {37188, 37201, 501, 510, 15858, 37312, 37319, 542, 37216, 37235, 37250, 37267, 0}, {37284, 37291, 37298, 37305, 15858, 37312, 37319, 37326, 37333, 37340, 37347, 37354, 0}, {37284, 37291, 37298, 37305, 15858, 37312, 37319, 37326, 37333, 37340, 37347, 37354, 0}, 0, 1, 691, 187, {9499,9517,0,0,0,0,0,0,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{37004,0,0,0,0,0,0,0}},
-       {1, 13053, 13065, {13077, 13092, 13107, 13122, 13139, 13158, 13169}, {13180, 13187, 13194, 13201, 13208, 13215, 13222}, {0, 0, 0, 0, 0, 0, 0}, {13229, 13240, 8845, 13253, 8867, 13264, 13271, 8892, 13278, 13293, 13306, 13317, 0}, {13229, 13240, 8845, 13253, 8867, 13264, 13271, 8892, 13278, 13293, 13306, 13317, 0}, {13330, 13337, 13344, 13351, 8867, 13264, 13271, 13358, 13365, 13372, 13379, 13386, 0}, {13330, 13337, 13344, 13351, 8867, 13264, 13271, 13358, 13365, 13372, 13379, 13386, 0}, 0, 1, 691, 187, {1156,1167,4762,1128,189,0,0,0,0,0,0,0,0,0},{13393,13411,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {20220, 1929, 1932, {20227, 20237, 20246, 20255, 20266, 20276, 20281}, {20288, 20294, 20299, 20304, 20309, 10828, 20313}, {20318, 2673, 2023, 7736, 2018, 3987, 2023}, {15084, 15091, 10374, 15098, 3730, 20320, 20325, 20330, 15123, 15132, 15140, 15147, 0}, {15084, 15091, 10374, 15098, 3730, 20320, 20325, 20330, 15123, 15132, 15140, 15147, 0}, {20337, 20342, 3761, 2772, 3730, 20320, 20325, 20346, 10812, 2792, 20350, 20355, 0}, {20337, 20342, 3761, 2772, 3730, 20320, 20325, 20346, 10812, 2792, 20350, 20355, 0}, 0, 1, 691, 187, {1156,0,0,0,0,0,0,0,0,0,0,0,0,0},{20359,1242,5505,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
-       {289, 30915, 30925, {30938, 30945, 30951, 30958, 30964, 30970, 30978}, {30988, 30992, 30996, 31000, 31004, 31008, 31012}, {12842, 12842, 12842, 12842, 12842, 12842, 12842}, {31018, 31027, 10131, 31036, 31042, 31048, 31054, 31061, 31067, 31076, 31085, 31093, 0}, {31018, 31027, 10131, 31036, 31042, 31048, 31054, 31061, 31067, 31076, 31085, 31093, 0}, {31102, 31106, 3761, 31110, 3730, 31114, 31118, 31122, 31127, 31131, 31137, 31141, 0}, {31102, 31106, 3761, 31110, 3730, 31114, 31118, 31122, 31127, 31131, 31137, 31141, 0}, 0, 0, 2566, 187, {1128,1139,1692,0,0,0,0,0,0,0,0,0,0,0},{10751,222,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
-       {289, 0, 0, {31916, 31923, 31931, 31938, 31945, 31953, 31961}, {31968, 31971, 31974, 31977, 31980, 31983, 31986}, {2436, 2436, 2430, 2436, 12842, 3987, 12842}, {31989, 31997, 32007, 32013, 32021, 32026, 32031, 32036, 32043, 20167, 32051, 32059, 0}, {31989, 31997, 32007, 32013, 32021, 32026, 32031, 32036, 32043, 20167, 32051, 32059, 0}, {2759, 32067, 3761, 32071, 3730, 31114, 31118, 32075, 3701, 2792, 32079, 16383, 0}, {2759, 32067, 3761, 32071, 3730, 31114, 31118, 32075, 3701, 2792, 32079, 16383, 0}, 0, 0, 185, 187, {2277,2286,189,198,1735,1692,3809,0,0,0,0,0,0,0},{20186,20206,222,10751,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}}
+       {1921, 36990, 37008, {37023, 37036, 37055, 8714, 37083, 37100, 10950}, {37111, 37118, 37125, 37336, 37139, 37146, 37153}, {456, 459, 37160, 465, 468, 459, 465}, {37163, 37176, 501, 510, 15833, 37287, 37294, 542, 37191, 37210, 37225, 37242, 0}, {37163, 37176, 501, 510, 15833, 37287, 37294, 542, 37191, 37210, 37225, 37242, 0}, {37259, 37266, 37273, 37280, 15833, 37287, 37294, 37301, 37308, 37315, 37322, 37329, 0}, {37259, 37266, 37273, 37280, 15833, 37287, 37294, 37301, 37308, 37315, 37322, 37329, 0}, 0, 1, 691, 187, {9499,9517,0,0,0,0,0,0,0,0,0,0,0,0},{9561,9575,9590,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{36979,0,0,0,0,0,0,0}},
+       {1, 13028, 13040, {13052, 13067, 13082, 13097, 13114, 13133, 13144}, {13155, 13162, 13169, 13176, 13183, 13190, 13197}, {0, 0, 0, 0, 0, 0, 0}, {13204, 13215, 8845, 13228, 8867, 13239, 13246, 8892, 13253, 13268, 13281, 13292, 0}, {13204, 13215, 8845, 13228, 8867, 13239, 13246, 8892, 13253, 13268, 13281, 13292, 0}, {13305, 13312, 13319, 13326, 8867, 13239, 13246, 13333, 13340, 13347, 13354, 13361, 0}, {13305, 13312, 13319, 13326, 8867, 13239, 13246, 13333, 13340, 13347, 13354, 13361, 0}, 0, 1, 691, 187, {1156,1167,4762,1128,189,0,0,0,0,0,0,0,0,0},{13368,13386,0,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {20195, 1929, 1932, {20202, 20212, 20221, 20230, 20241, 20251, 20256}, {20263, 20269, 20274, 20279, 20284, 10786, 20288}, {20293, 2673, 2023, 7736, 2018, 3987, 2023}, {15059, 15066, 10332, 15073, 3730, 20295, 20300, 20305, 15098, 15107, 15115, 15122, 0}, {15059, 15066, 10332, 15073, 3730, 20295, 20300, 20305, 15098, 15107, 15115, 15122, 0}, {20312, 20317, 3761, 2772, 3730, 20295, 20300, 20321, 10770, 2792, 20325, 20330, 0}, {20312, 20317, 3761, 2772, 3730, 20295, 20300, 20321, 10770, 2792, 20325, 20330, 0}, 0, 1, 691, 187, {1156,0,0,0,0,0,0,0,0,0,0,0,0,0},{20334,1242,5505,0,0,0,0,0,0,0},{251,843,0,0,0,0,0,0,0,0,0,0},{269,848,0,0,0,0,0,0,0},{1301,0,0,0,0,0,0,0}},
+       {289, 30890, 30900, {30913, 30920, 30926, 30933, 30939, 30945, 30953}, {30963, 30967, 30971, 30975, 30979, 30983, 30987}, {12817, 12817, 12817, 12817, 12817, 12817, 12817}, {30993, 31002, 31011, 31016, 31022, 31028, 31034, 31041, 31047, 31056, 31065, 31073, 0}, {30993, 31002, 31011, 31016, 31022, 31028, 31034, 31041, 31047, 31056, 31065, 31073, 0}, {31082, 31086, 3761, 31090, 3730, 31094, 31098, 31102, 31107, 31111, 31117, 31121, 0}, {31082, 31086, 3761, 31090, 3730, 31094, 31098, 31102, 31107, 31111, 31117, 31121, 0}, 0, 0, 2566, 187, {1128,1139,1692,0,0,0,0,0,0,0,0,0,0,0},{10709,222,0,0,0,0,0,0,0,0},{843,251,0,0,0,0,0,0,0,0,0,0},{848,269,0,0,0,0,0,0,0},{278,0,0,0,0,0,0,0}},
+       {289, 0, 0, {31896, 31903, 31911, 31918, 31925, 31933, 31941}, {31948, 31951, 31954, 31957, 31960, 31963, 31966}, {2436, 2436, 2430, 2436, 12817, 3987, 12817}, {31969, 31977, 31987, 31993, 32001, 32006, 32011, 32016, 32023, 20142, 32031, 32039, 0}, {31969, 31977, 31987, 31993, 32001, 32006, 32011, 32016, 32023, 20142, 32031, 32039, 0}, {2759, 32047, 3761, 32051, 3730, 31094, 31098, 32055, 3701, 2792, 32059, 16358, 0}, {2759, 32047, 3761, 32051, 3730, 31094, 31098, 32055, 3701, 2792, 32059, 16358, 0}, 0, 0, 185, 187, {2277,2286,189,198,1735,1692,3809,0,0,0,0,0,0,0},{20161,20181,222,10709,0,0,0,0,0,0},{3594,242,843,251,0,0,0,0,0,0,0,0},{3602,257,848,269,0,0,0,0,0},{278,0,0,0,0,0,0,0}}
 };
 
 
 static const NumberFormatEntry number_format_entries [] = {
-       {691, 37441, 691, 37443, 37446, 37456, 37459, 37474, 37477, 37487, 2566, 37496, 3, 2, 0, 0, 3, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37504, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37526, 37535, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37543, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 2, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37543, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 2, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37546, 37510, 37512, 37516, 37550, 37562, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37574, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37577, 37588, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37599, 37613, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 37501, 37522, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37522, 37510, 37647, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37522, 37510, 37512, 37516, 37656, 37664, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37672, 37510, 37512, 37516, 37676, 37487, 37689, 37694, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37699, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37574, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37628, 37702, 2566, 37520, 9, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37712, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37716, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37720, 37730, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 0, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37739, 37510, 37512, 37516, 37743, 37762, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37781, 37510, 37512, 37516, 37628, 37702, 2566, 37520, 9, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37501, 691, 37784, 37788, 37510, 37512, 37516, 37792, 37801, 2566, 37520, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 0, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37810, 37510, 37818, 37516, 37835, 37863, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37890, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 2, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37522, 37510, 37512, 37516, 37550, 37562, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 37501, 37893, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 37501, 37574, 37510, 37899, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37906, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37910, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37914, 37510, 37917, 37516, 37940, 37487, 37956, 37964, 3, 0, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37972, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 0, 0, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37975, 37510, 37979, 37516, 37477, 37487, 2566, 37520, 5, 1, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37996, 37510, 0, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 38000, 38014, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37501, 37441, 37501, 37522, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37522, 37510, 38027, 37516, 38041, 38053, 2566, 37520, 9, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 38064, 37441, 37501, 38066, 37510, 37512, 37516, 38069, 38080, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37441, 0, 37510, 0, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, 0}, {3, 0}},
-       {185, 37441, 185, 37443, 38090, 37456, 38099, 37474, 38110, 37487, 38125, 37964, 3, 0, 0, 0, 3, 0, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38132, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 691, 38136, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 691, 0, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 38142, 38152, 2566, 37520, 8, 3, 10, 3, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38161, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37501, 10836, 37510, 0, 37516, 37477, 37487, 2566, 37520, 2, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37501, 10836, 37510, 0, 37516, 37477, 37487, 2566, 37520, 2, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 10836, 37510, 38168, 37516, 37477, 37487, 2566, 37520, 2, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 38064, 37441, 37501, 10836, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 0, 37510, 38174, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37574, 37510, 37899, 37516, 37477, 37487, 2566, 37520, 12, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38215, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 37522, 37510, 0, 37516, 37477, 37487, 2566, 37520, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37522, 37510, 37899, 37516, 37477, 37487, 2566, 37520, 12, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37522, 37510, 0, 37516, 37477, 37487, 2566, 37520, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38219, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {2566, 37501, 37441, 37501, 0, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 0, 37510, 38222, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38239, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37443, 0, 37456, 37512, 37474, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38243, 37510, 38250, 37516, 37477, 37487, 2566, 37520, 12, 2, 1, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 0, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 38215, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 38215, 37510, 0, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 38215, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 38215, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 38215, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 38215, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 2, 2, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 38215, 37510, 0, 37516, 37477, 37487, 2566, 37520, 12, 2, 1, 1, 1, 2, 2, {3, 2}, {3, 2}},
-       {38277, 37441, 691, 37441, 38215, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {37441, 37501, 37441, 37441, 0, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37543, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 2, 0, 1, 1, 1, 2, 2, {3, 0}, {3, 0}},
-       {691, 37441, 691, 37441, 38279, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 691, 38282, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 5, 1, 1, 1, 2, 2, 2, {3, -1}, {3, 0}},
-       {691, 37441, 691, 691, 38286, 37510, 38290, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 0, 2, {3, 0}, {3, 0}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38215, 37510, 0, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 38327, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 14, 2, 0, 0, 1, 2, 2, {3, -1}, {3, 2}},
-       {691, 37441, 691, 37441, 38335, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 1, 1, 1, 2, 1, {3, 0}, {3, 0}},
-       {37441, 38064, 37441, 37501, 0, 37510, 0, 37516, 37656, 37664, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38342, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, 2}},
-       {691, 37441, 691, 37443, 38355, 37456, 0, 37516, 37477, 37487, 2566, 37520, 3, 0, 4, 2, 3, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38358, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 0, 37510, 0, 37516, 37477, 37487, 2566, 37520, 2, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38362, 37510, 0, 37516, 37477, 37487, 2566, 37520, 9, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37501, 10836, 37510, 0, 37516, 37477, 37487, 2566, 37520, 2, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37574, 37510, 37899, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 0}, {3, 0}},
-       {691, 37441, 691, 37441, 38362, 37510, 0, 37516, 37477, 37487, 2566, 37520, 2, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37543, 37510, 0, 37516, 37477, 37487, 2566, 37520, 2, 0, 1, 1, 1, 2, 2, {3, -1}, {3, 0}},
-       {37441, 37501, 37441, 37501, 37522, 37510, 0, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37784, 0, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37441, 37810, 37510, 0, 37516, 37477, 37487, 2566, 37520, 5, 1, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 691, 38366, 37510, 0, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38279, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37443, 37446, 37456, 37459, 37474, 37477, 37487, 2566, 37496, 3, 2, 0, 0, 3, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37504, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37526, 37535, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38369, 37510, 38373, 37516, 37477, 37487, 2566, 37520, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37546, 37510, 37512, 37516, 37550, 37562, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37574, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37577, 37588, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37599, 37613, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37522, 37510, 37647, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37522, 37510, 37512, 37516, 37656, 37664, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37672, 37510, 37512, 37516, 37676, 37487, 37689, 37694, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37699, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37574, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37628, 37702, 2566, 37520, 9, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37712, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37716, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37720, 37730, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37574, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37739, 37510, 37512, 37516, 37743, 37762, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37781, 37510, 37512, 37516, 37628, 37702, 2566, 37520, 9, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37501, 691, 37784, 37788, 37510, 37512, 37516, 37792, 37801, 2566, 37520, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 0, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37810, 37510, 37818, 37516, 37835, 37863, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37890, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 2, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37522, 37510, 37512, 37516, 37550, 37562, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 37501, 37893, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 37501, 37574, 37510, 37899, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37906, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37910, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37914, 37510, 37917, 37516, 37940, 37487, 37956, 37964, 3, 0, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37972, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 0, 0, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37975, 37510, 37979, 37516, 37477, 37487, 2566, 37520, 5, 1, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37996, 37510, 0, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 38000, 38014, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37501, 37441, 37501, 37522, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37522, 37510, 38027, 37516, 38041, 38053, 2566, 37520, 9, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 38064, 37441, 37501, 38066, 37510, 37512, 37516, 38069, 38080, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37441, 38383, 37510, 0, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, 0}, {3, 0}},
-       {185, 37441, 185, 37443, 38090, 37456, 38099, 37474, 38110, 37487, 38125, 37964, 3, 0, 0, 0, 3, 0, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38132, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 691, 38136, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 691, 38390, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 38142, 38152, 2566, 37520, 8, 3, 10, 3, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38161, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37501, 10836, 37510, 0, 37516, 37477, 37487, 2566, 37520, 2, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37501, 10836, 37510, 0, 37516, 37477, 37487, 2566, 37520, 2, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 10836, 37510, 38168, 37516, 37477, 37487, 2566, 37520, 2, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 38064, 37441, 37501, 10836, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 0, 37510, 38174, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37574, 37510, 37899, 37516, 37477, 37487, 2566, 37520, 12, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38215, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 37522, 37510, 0, 37516, 37477, 37487, 2566, 37520, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37574, 37510, 37899, 37516, 37477, 37487, 2566, 37520, 12, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38239, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37443, 38395, 37456, 37512, 37474, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38215, 37510, 38250, 37516, 37477, 37487, 2566, 37520, 12, 2, 1, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 38215, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 38215, 37510, 0, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 38215, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 38215, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 38215, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 38215, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 2, 2, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 38215, 37510, 0, 37516, 37477, 37487, 2566, 37520, 12, 2, 1, 1, 1, 2, 2, {3, 2}, {3, 2}},
-       {38277, 37441, 691, 37441, 38215, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 37543, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 2, 0, 1, 1, 1, 2, 2, {3, 0}, {3, 0}},
-       {691, 37441, 691, 37441, 38279, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 691, 38282, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 5, 1, 1, 1, 2, 2, 2, {3, -1}, {3, 0}},
-       {691, 37441, 691, 691, 38286, 37510, 38290, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 0, 2, {3, 0}, {3, 0}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38215, 37510, 0, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37441, 38327, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 14, 2, 0, 0, 1, 2, 2, {3, -1}, {3, 2}},
-       {691, 37441, 691, 37441, 38335, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 1, 1, 1, 2, 1, {3, 0}, {3, 0}},
-       {691, 37441, 691, 37441, 38342, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, 2}},
-       {691, 37441, 691, 37443, 38355, 37456, 0, 37516, 37477, 37487, 2566, 37520, 3, 0, 4, 2, 3, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38358, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38362, 37510, 0, 37516, 37477, 37487, 2566, 37520, 2, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38362, 37510, 0, 37516, 37477, 37487, 2566, 37520, 9, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37501, 10836, 37510, 0, 37516, 37477, 37487, 2566, 37520, 2, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37574, 37510, 37899, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, 0}, {3, 0}},
-       {691, 37441, 691, 37441, 38362, 37510, 0, 37516, 37477, 37487, 2566, 37520, 2, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37543, 37510, 0, 37516, 37477, 37487, 2566, 37520, 2, 0, 1, 1, 1, 2, 2, {3, -1}, {3, 0}},
-       {37441, 37501, 37441, 37501, 37522, 37510, 0, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37441, 37810, 37510, 0, 37516, 37477, 37487, 2566, 37520, 5, 1, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 691, 38366, 37510, 0, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38279, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37443, 38401, 37456, 37459, 37474, 37477, 37487, 2566, 37496, 3, 2, 0, 0, 3, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37712, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 2, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37501, 37441, 38411, 37788, 37510, 37512, 37516, 37577, 37588, 2566, 37520, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38279, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37656, 37664, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37501, 37441, 38411, 37788, 37510, 37512, 37516, 37628, 37702, 2566, 37520, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37720, 37730, 2566, 37520, 12, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37574, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37522, 37510, 37512, 37516, 37628, 37702, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37522, 37510, 37899, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 691, 38413, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37522, 37510, 0, 37516, 37477, 37487, 2566, 37520, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37443, 38421, 37456, 37512, 37474, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38428, 37510, 38250, 37516, 37477, 37487, 2566, 37520, 12, 2, 1, 0, 1, 2, 2, {3, 2}, {3, 2}},
-       {691, 37441, 691, 37443, 38432, 37456, 37512, 37474, 37477, 37487, 2566, 37496, 3, 2, 0, 0, 3, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 38373, 37516, 37477, 37487, 2566, 37520, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37577, 37588, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37626, 37510, 37512, 37516, 37656, 37664, 2566, 37520, 15, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37522, 37510, 37899, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 691, 38442, 37456, 37459, 37474, 37477, 37487, 2566, 37496, 3, 0, 0, 0, 3, 3, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37577, 37588, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 8056, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37501, 37441, 38411, 37788, 37510, 37512, 37516, 37656, 37664, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38452, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 2, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37443, 38455, 37456, 37459, 37474, 37477, 37487, 2566, 37496, 3, 2, 0, 0, 3, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38465, 37510, 38373, 37516, 37477, 37487, 2566, 37520, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 38411, 0, 37510, 37512, 37516, 37577, 37588, 2566, 37520, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38470, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 0, 0, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 691, 37522, 37510, 37512, 37516, 37656, 37664, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38452, 37510, 0, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37443, 38474, 37456, 37459, 37474, 37477, 37487, 2566, 37496, 3, 2, 0, 0, 3, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37522, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38484, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 14, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37522, 37510, 37512, 37516, 37656, 37664, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38452, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 691, 38488, 37456, 37459, 37474, 37477, 37487, 2566, 37496, 3, 2, 0, 0, 3, 3, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 10836, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38498, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37443, 38503, 37456, 37459, 37474, 37477, 37487, 2566, 37496, 3, 2, 0, 0, 3, 3, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38513, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38498, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37443, 38517, 37456, 37459, 37474, 37477, 37487, 2566, 37496, 3, 2, 0, 0, 3, 0, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37626, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 1, 0, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38527, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37443, 38532, 37456, 37459, 37474, 37477, 37487, 2566, 37496, 3, 2, 0, 0, 3, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38542, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38546, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37443, 38554, 37456, 37459, 37474, 37477, 37487, 2566, 37496, 3, 2, 0, 0, 3, 3, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37626, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 2, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 691, 38564, 37456, 37459, 37474, 37477, 37487, 2566, 37496, 3, 2, 0, 0, 3, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37626, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 14, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37522, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37443, 38574, 37456, 37459, 37474, 37477, 37487, 2566, 37496, 3, 2, 0, 0, 3, 3, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38358, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37626, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 9, 2, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37443, 38584, 37456, 37459, 37474, 37477, 37487, 2566, 37496, 3, 2, 0, 0, 3, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 37626, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 9, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37443, 38594, 37456, 37459, 37474, 37477, 37487, 2566, 37496, 3, 2, 0, 0, 3, 3, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38604, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 14, 2, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37443, 38608, 37456, 37459, 37474, 37477, 37487, 2566, 37496, 3, 2, 0, 0, 3, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38215, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 1, 1, 1, 2, 2, {3, 2}, {3, 2}},
-       {37441, 691, 37441, 691, 38618, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 14, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 2436, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 12, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38621, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37626, 37510, 37512, 37516, 37628, 37638, 2566, 37520, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, 0}},
-       {37441, 691, 37441, 691, 38498, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38452, 37510, 0, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38624, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38632, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 691, 38413, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 37543, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 2, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37574, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38452, 37510, 0, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 691, 38390, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37443, 38421, 37456, 37512, 37474, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37441, 0, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38637, 37510, 38373, 37516, 37477, 37487, 2566, 37520, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38637, 37510, 38373, 37516, 37477, 37487, 2566, 37520, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37501, 37574, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 691, 37441, 691, 38632, 37510, 37512, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
-       {37441, 37501, 37441, 37441, 38383, 37510, 0, 37516, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 2, 2, {3, 0}, {3, 0}},
-       {37441, 37501, 37441, 37443, 38395, 37456, 37512, 37474, 37477, 37487, 2566, 37520, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
-       {37441, 38064, 37441, 37501, 0, 37510, 0, 37516, 37656, 37664, 2566, 37520, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
-       {691, 37441, 691, 37441, 38362, 37510, 0, 37516, 37477, 37487, 2566, 37520, 2, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}}
+       {691, 37416, 691, 37418, 37421, 37431, 37434, 37449, 37452, 37462, 2566, 37471, 3, 2, 0, 0, 3, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37479, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37501, 37510, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37518, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 2, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37518, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 2, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37521, 37485, 37487, 37491, 37525, 37537, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37549, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37552, 37563, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37574, 37588, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 37476, 37497, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37497, 37485, 37622, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37497, 37485, 37487, 37491, 37631, 37639, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37647, 37485, 37487, 37491, 37651, 37462, 37664, 37669, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37674, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37549, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37603, 37677, 2566, 37495, 9, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37687, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37691, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37695, 37705, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 0, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37714, 37485, 37487, 37491, 37718, 37737, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37756, 37485, 37487, 37491, 37603, 37677, 2566, 37495, 9, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37476, 691, 37759, 37763, 37485, 37487, 37491, 37767, 37776, 2566, 37495, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 0, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37785, 37485, 37793, 37491, 37810, 37838, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37865, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 2, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37497, 37485, 37487, 37491, 37525, 37537, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 37476, 37868, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 37476, 37549, 37485, 37874, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37881, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37885, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37889, 37485, 37892, 37491, 37915, 37462, 37931, 37939, 3, 0, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37947, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 0, 0, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37950, 37485, 37954, 37491, 37452, 37462, 2566, 37495, 5, 1, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37971, 37485, 0, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37975, 37989, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37476, 37416, 37476, 37497, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37497, 37485, 38002, 37491, 38016, 38028, 2566, 37495, 9, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 38039, 37416, 37476, 38041, 37485, 37487, 37491, 38044, 38055, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37416, 0, 37485, 0, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, 0}, {3, 0}},
+       {185, 37416, 185, 37418, 38065, 37431, 38074, 37449, 38085, 37462, 38100, 37939, 3, 0, 0, 0, 3, 0, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38107, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 691, 38111, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 691, 0, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 38117, 38127, 2566, 37495, 8, 3, 10, 3, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38136, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37476, 10794, 37485, 0, 37491, 37452, 37462, 2566, 37495, 2, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37476, 10794, 37485, 0, 37491, 37452, 37462, 2566, 37495, 2, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 10794, 37485, 38143, 37491, 37452, 37462, 2566, 37495, 2, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 38039, 37416, 37476, 10794, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 0, 37485, 38149, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37549, 37485, 37874, 37491, 37452, 37462, 2566, 37495, 12, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38190, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 37497, 37485, 0, 37491, 37452, 37462, 2566, 37495, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37497, 37485, 37874, 37491, 37452, 37462, 2566, 37495, 12, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37497, 37485, 0, 37491, 37452, 37462, 2566, 37495, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38194, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {2566, 37476, 37416, 37476, 0, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 0, 37485, 38197, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38214, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37418, 0, 37431, 37487, 37449, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38218, 37485, 38225, 37491, 37452, 37462, 2566, 37495, 12, 2, 1, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 0, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 38190, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 38190, 37485, 0, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 38190, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 38190, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 38190, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 38190, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 2, 2, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 38190, 37485, 0, 37491, 37452, 37462, 2566, 37495, 12, 2, 1, 1, 1, 2, 2, {3, 2}, {3, 2}},
+       {38252, 37416, 691, 37416, 38190, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {37416, 37476, 37416, 37416, 0, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37518, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 2, 0, 1, 1, 1, 2, 2, {3, 0}, {3, 0}},
+       {691, 37416, 691, 37416, 38254, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 691, 38257, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 5, 1, 1, 1, 2, 2, 2, {3, -1}, {3, 0}},
+       {691, 37416, 691, 691, 38261, 37485, 38265, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 0, 2, {3, 0}, {3, 0}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38190, 37485, 0, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 38302, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 14, 2, 0, 0, 1, 2, 2, {3, -1}, {3, 2}},
+       {691, 37416, 691, 37416, 38310, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 1, 1, 1, 2, 1, {3, 0}, {3, 0}},
+       {37416, 38039, 37416, 37476, 0, 37485, 0, 37491, 37631, 37639, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38317, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, 2}},
+       {691, 37416, 691, 37418, 38330, 37431, 0, 37491, 37452, 37462, 2566, 37495, 3, 0, 4, 2, 3, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38333, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 0, 37485, 0, 37491, 37452, 37462, 2566, 37495, 2, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38337, 37485, 0, 37491, 37452, 37462, 2566, 37495, 9, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37476, 10794, 37485, 0, 37491, 37452, 37462, 2566, 37495, 2, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37549, 37485, 37874, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 0}, {3, 0}},
+       {691, 37416, 691, 37416, 38337, 37485, 0, 37491, 37452, 37462, 2566, 37495, 2, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37518, 37485, 0, 37491, 37452, 37462, 2566, 37495, 2, 0, 1, 1, 1, 2, 2, {3, -1}, {3, 0}},
+       {37416, 37476, 37416, 37476, 37497, 37485, 0, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37759, 0, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37416, 37785, 37485, 0, 37491, 37452, 37462, 2566, 37495, 5, 1, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 691, 38341, 37485, 0, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38254, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37418, 37421, 37431, 37434, 37449, 37452, 37462, 2566, 37471, 3, 2, 0, 0, 3, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37479, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37501, 37510, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38344, 37485, 38348, 37491, 37452, 37462, 2566, 37495, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37521, 37485, 37487, 37491, 37525, 37537, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37549, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37552, 37563, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37574, 37588, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37497, 37485, 37622, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37497, 37485, 37487, 37491, 37631, 37639, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37647, 37485, 37487, 37491, 37651, 37462, 37664, 37669, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37674, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37549, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37603, 37677, 2566, 37495, 9, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37687, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37691, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37695, 37705, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37549, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37714, 37485, 37487, 37491, 37718, 37737, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37756, 37485, 37487, 37491, 37603, 37677, 2566, 37495, 9, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37476, 691, 37759, 37763, 37485, 37487, 37491, 37767, 37776, 2566, 37495, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 0, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37785, 37485, 37793, 37491, 37810, 37838, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37865, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 2, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37497, 37485, 37487, 37491, 37525, 37537, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 37476, 37868, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 37476, 37549, 37485, 37874, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37881, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37885, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37889, 37485, 37892, 37491, 37915, 37462, 37931, 37939, 3, 0, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37947, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 0, 0, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37950, 37485, 37954, 37491, 37452, 37462, 2566, 37495, 5, 1, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37971, 37485, 0, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37975, 37989, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37476, 37416, 37476, 37497, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37497, 37485, 38002, 37491, 38016, 38028, 2566, 37495, 9, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 38039, 37416, 37476, 38041, 37485, 37487, 37491, 38044, 38055, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37416, 38358, 37485, 0, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, 0}, {3, 0}},
+       {185, 37416, 185, 37418, 38065, 37431, 38074, 37449, 38085, 37462, 38100, 37939, 3, 0, 0, 0, 3, 0, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38107, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 691, 38111, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 691, 38365, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 38117, 38127, 2566, 37495, 8, 3, 10, 3, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38136, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37476, 10794, 37485, 0, 37491, 37452, 37462, 2566, 37495, 2, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37476, 10794, 37485, 0, 37491, 37452, 37462, 2566, 37495, 2, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 10794, 37485, 38143, 37491, 37452, 37462, 2566, 37495, 2, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 38039, 37416, 37476, 10794, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 0, 37485, 38149, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37549, 37485, 37874, 37491, 37452, 37462, 2566, 37495, 12, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38190, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 37497, 37485, 0, 37491, 37452, 37462, 2566, 37495, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37549, 37485, 37874, 37491, 37452, 37462, 2566, 37495, 12, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38214, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37418, 38370, 37431, 37487, 37449, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38190, 37485, 38225, 37491, 37452, 37462, 2566, 37495, 12, 2, 1, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 38190, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 38190, 37485, 0, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 38190, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 38190, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 38190, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 38190, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 2, 2, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 38190, 37485, 0, 37491, 37452, 37462, 2566, 37495, 12, 2, 1, 1, 1, 2, 2, {3, 2}, {3, 2}},
+       {38252, 37416, 691, 37416, 38190, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 37518, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 2, 0, 1, 1, 1, 2, 2, {3, 0}, {3, 0}},
+       {691, 37416, 691, 37416, 38254, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 691, 38257, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 5, 1, 1, 1, 2, 2, 2, {3, -1}, {3, 0}},
+       {691, 37416, 691, 691, 38261, 37485, 38265, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 0, 2, {3, 0}, {3, 0}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38190, 37485, 0, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37416, 38302, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 14, 2, 0, 0, 1, 2, 2, {3, -1}, {3, 2}},
+       {691, 37416, 691, 37416, 38310, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 1, 1, 1, 2, 1, {3, 0}, {3, 0}},
+       {691, 37416, 691, 37416, 38317, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, 2}},
+       {691, 37416, 691, 37418, 38330, 37431, 0, 37491, 37452, 37462, 2566, 37495, 3, 0, 4, 2, 3, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38333, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38337, 37485, 0, 37491, 37452, 37462, 2566, 37495, 2, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38337, 37485, 0, 37491, 37452, 37462, 2566, 37495, 9, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37476, 10794, 37485, 0, 37491, 37452, 37462, 2566, 37495, 2, 2, 2, 2, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37549, 37485, 37874, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, 0}, {3, 0}},
+       {691, 37416, 691, 37416, 38337, 37485, 0, 37491, 37452, 37462, 2566, 37495, 2, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37518, 37485, 0, 37491, 37452, 37462, 2566, 37495, 2, 0, 1, 1, 1, 2, 2, {3, -1}, {3, 0}},
+       {37416, 37476, 37416, 37476, 37497, 37485, 0, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37416, 37785, 37485, 0, 37491, 37452, 37462, 2566, 37495, 5, 1, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 691, 38341, 37485, 0, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38254, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37418, 38376, 37431, 37434, 37449, 37452, 37462, 2566, 37471, 3, 2, 0, 0, 3, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37687, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 2, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37476, 37416, 38386, 37763, 37485, 37487, 37491, 37552, 37563, 2566, 37495, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38254, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37631, 37639, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37476, 37416, 38386, 37763, 37485, 37487, 37491, 37603, 37677, 2566, 37495, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37695, 37705, 2566, 37495, 12, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37549, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37497, 37485, 37487, 37491, 37603, 37677, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37497, 37485, 37874, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 691, 38388, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37497, 37485, 0, 37491, 37452, 37462, 2566, 37495, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37418, 38396, 37431, 37487, 37449, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38403, 37485, 38225, 37491, 37452, 37462, 2566, 37495, 12, 2, 1, 0, 1, 2, 2, {3, 2}, {3, 2}},
+       {691, 37416, 691, 37418, 38407, 37431, 37487, 37449, 37452, 37462, 2566, 37471, 3, 2, 0, 0, 3, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 38348, 37491, 37452, 37462, 2566, 37495, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37552, 37563, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37601, 37485, 37487, 37491, 37631, 37639, 2566, 37495, 15, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37497, 37485, 37874, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 691, 38417, 37431, 37434, 37449, 37452, 37462, 2566, 37471, 3, 0, 0, 0, 3, 3, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37552, 37563, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 8056, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37476, 37416, 38386, 37763, 37485, 37487, 37491, 37631, 37639, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38427, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 2, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37418, 38430, 37431, 37434, 37449, 37452, 37462, 2566, 37471, 3, 2, 0, 0, 3, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38440, 37485, 38348, 37491, 37452, 37462, 2566, 37495, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 38386, 0, 37485, 37487, 37491, 37552, 37563, 2566, 37495, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38445, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 0, 0, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 691, 37497, 37485, 37487, 37491, 37631, 37639, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38427, 37485, 0, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37418, 38449, 37431, 37434, 37449, 37452, 37462, 2566, 37471, 3, 2, 0, 0, 3, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37497, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38459, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 14, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37497, 37485, 37487, 37491, 37631, 37639, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38427, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 691, 38463, 37431, 37434, 37449, 37452, 37462, 2566, 37471, 3, 2, 0, 0, 3, 3, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 10794, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 2, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38473, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37418, 38478, 37431, 37434, 37449, 37452, 37462, 2566, 37471, 3, 2, 0, 0, 3, 3, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 1, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38488, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38473, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37418, 38492, 37431, 37434, 37449, 37452, 37462, 2566, 37471, 3, 2, 0, 0, 3, 0, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37601, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 1, 0, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38502, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37418, 38507, 37431, 37434, 37449, 37452, 37462, 2566, 37471, 3, 2, 0, 0, 3, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38517, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38521, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37418, 38529, 37431, 37434, 37449, 37452, 37462, 2566, 37471, 3, 2, 0, 0, 3, 3, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37601, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 2, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 691, 38539, 37431, 37434, 37449, 37452, 37462, 2566, 37471, 3, 2, 0, 0, 3, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37601, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 14, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37497, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37418, 38549, 37431, 37434, 37449, 37452, 37462, 2566, 37471, 3, 2, 0, 0, 3, 3, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38333, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37601, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 9, 2, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37418, 38559, 37431, 37434, 37449, 37452, 37462, 2566, 37471, 3, 2, 0, 0, 3, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 37601, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 9, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37418, 38569, 37431, 37434, 37449, 37452, 37462, 2566, 37471, 3, 2, 0, 0, 3, 3, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38579, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 14, 2, 0, 0, 1, 0, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37418, 38583, 37431, 37434, 37449, 37452, 37462, 2566, 37471, 3, 2, 0, 0, 3, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38190, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 1, 1, 1, 2, 2, {3, 2}, {3, 2}},
+       {37416, 691, 37416, 691, 38593, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 14, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 0, 0, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 2436, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 12, 2, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38596, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 1, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37601, 37485, 37487, 37491, 37603, 37613, 2566, 37495, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, 0}},
+       {37416, 691, 37416, 691, 38473, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38427, 37485, 0, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38599, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38607, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 691, 38388, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 37518, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 2, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37549, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38427, 37485, 0, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 691, 38365, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37418, 38396, 37431, 37487, 37449, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37416, 0, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38612, 37485, 38348, 37491, 37452, 37462, 2566, 37495, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38612, 37485, 38348, 37491, 37452, 37462, 2566, 37495, 0, 0, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37476, 37549, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 12, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 691, 37416, 691, 38607, 37485, 37487, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, -1}, {3, -1}},
+       {37416, 37476, 37416, 37416, 38358, 37485, 0, 37491, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 2, 2, {3, 0}, {3, 0}},
+       {37416, 37476, 37416, 37418, 38370, 37431, 37487, 37449, 37452, 37462, 2566, 37495, 8, 3, 1, 1, 1, 0, 2, {3, -1}, {3, -1}},
+       {37416, 38039, 37416, 37476, 0, 37485, 0, 37491, 37631, 37639, 2566, 37495, 8, 3, 0, 0, 1, 2, 2, {3, -1}, {3, -1}},
+       {691, 37416, 691, 37416, 38337, 37485, 0, 37491, 37452, 37462, 2566, 37495, 2, 2, 0, 0, 1, 2, 2, {3, -1}, {3, -1}}
 };
 
 
 static const CultureInfoEntry culture_entries [] = {
-       {0x0001, 0x007F, 768, -1, 38641, 38644, 38651, 38666, 38670, 38641, 0, {0, 0, 38674, 0}, 0, 0, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x0002, 0x007F, 257, -1, 38702, 38705, 38715, 38734, 38738, 38702, 0, {38742, 0, 0, 0}, 1, 1, { 1251, 21025, 10007, 866, 0, ';' }},
-       {0x0003, 0x007F, 257, -1, 38784, 38787, 38795, 38803, 38807, 38784, 0, {38811, 0, 0, 0}, 2, 2, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x0004, 0x0004, 257, -1, 38831, 38838, 38866, 38873, 38877, 38881, 0, {38884, 0, 0, 0}, 3, 3, { 936, 500, 10008, 936, 0, ',' }},
-       {0x0004, 0x7804, 257, -1, 38891, 38899, 38866, 38873, 38877, 38881, 0, {38884, 0, 0, 0}, 4, 4, { 936, 500, 10008, 936, 0, ',' }},
-       {0x0005, 0x007F, 257, -1, 38920, 38923, 38929, 38939, 38943, 38920, 0, {38947, 0, 0, 0}, 5, 5, { 1250, 500, 10029, 852, 0, ';' }},
-       {0x0006, 0x007F, 257, -1, 38973, 38976, 38983, 38989, 38993, 38973, 0, {38997, 0, 0, 0}, 6, 6, { 1252, 20277, 10000, 850, 0, ';' }},
-       {0x0007, 0x007F, 257, -1, 39018, 39021, 39028, 39036, 39040, 39018, 0, {39044, 0, 0, 0}, 7, 7, { 1252, 20273, 10000, 850, 0, ';' }},
-       {0x0008, 0x007F, 257, -1, 39069, 39072, 39078, 39095, 39099, 39069, 0, {39103, 0, 0, 0}, 8, 8, { 1253, 20273, 10006, 737, 0, ';' }},
-       {0x0009, 0x007F, 257, -1, 39145, 39148, 39148, 39156, 39160, 39145, 0, {39164, 0, 0, 0}, 9, 9, { 1252, 37, 10000, 437, 0, ',' }},
-       {0x000A, 0x007F, 257, -1, 39183, 39186, 39194, 39203, 39207, 39183, 0, {39211, 0, 0, 0}, 10, 10, { 1252, 20284, 10000, 850, 0, ';' }},
-       {0x000B, 0x007F, 257, -1, 39233, 39236, 39244, 39250, 39254, 39233, 0, {39258, 0, 0, 0}, 11, 11, { 1252, 20278, 10000, 850, 0, ';' }},
-       {0x000C, 0x007F, 257, -1, 39283, 39286, 39293, 39303, 39307, 39283, 0, {39311, 0, 0, 0}, 12, 12, { 1252, 20297, 10000, 850, 0, ';' }},
-       {0x000D, 0x007F, 257, -1, 39333, 39336, 39343, 39354, 39358, 39333, 0, {39362, 0, 0, 0}, 13, 13, { 1255, 500, 10005, 862, 1, ',' }},
-       {0x000E, 0x007F, 257, -1, 39395, 39398, 39408, 39415, 39419, 39395, 0, {39423, 0, 0, 0}, 14, 14, { 1250, 500, 10029, 852, 0, ';' }},
-       {0x000F, 0x007F, 257, -1, 39439, 39442, 39452, 39462, 39466, 39439, 0, {39470, 0, 0, 0}, 15, 15, { 1252, 20871, 10079, 850, 0, ';' }},
-       {0x0010, 0x007F, 257, -1, 39490, 39493, 39501, 39510, 39514, 39490, 0, {39518, 0, 0, 0}, 16, 16, { 1252, 20280, 10000, 850, 0, ';' }},
-       {0x0011, 0x007F, 257, -1, 39540, 39543, 39552, 39562, 39566, 39540, 0, {39570, 0, 0, 0}, 17, 17, { 932, 20290, 10001, 932, 0, ',' }},
-       {0x0012, 0x007F, 257, -1, 39597, 39600, 39607, 39617, 39621, 39597, 0, {39625, 0, 0, 0}, 18, 18, { 949, 20833, 10003, 949, 0, ',' }},
-       {0x0013, 0x007F, 257, -1, 39635, 39638, 39644, 39655, 39659, 39635, 0, {39663, 0, 0, 0}, 19, 19, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x0014, 0x007F, 257, -1, 39685, 39688, 39698, 39704, 39708, 39712, 0, {38997, 0, 0, 0}, 20, 20, { 1252, 20277, 10000, 850, 0, ';' }},
-       {0x0015, 0x007F, 257, -1, 39715, 39718, 39725, 39732, 39736, 39715, 0, {39740, 0, 0, 0}, 21, 21, { 1250, 20880, 10029, 852, 0, ';' }},
-       {0x0016, 0x007F, 257, -1, 39764, 39767, 39778, 39789, 39793, 39764, 0, {39797, 0, 0, 0}, 22, 22, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x0017, 0x007F, 257, -1, 39820, 39823, 39831, 39841, 39845, 39820, 0, {39849, 0, 0, 0}, 23, 23, { 1252, 20273, 10000, 850, 0, ';' }},
-       {0x0018, 0x007F, 257, -1, 39869, 39872, 39881, 39890, 39894, 39869, 0, {39898, 0, 0, 0}, 24, 24, { 1250, 20880, 10029, 852, 0, ';' }},
-       {0x0019, 0x007F, 257, -1, 39917, 39920, 39928, 39943, 39947, 39917, 0, {39951, 0, 0, 0}, 25, 25, { 1251, 20880, 10007, 866, 0, ';' }},
-       {0x001A, 0x007F, 257, -1, 39997, 40000, 40009, 40018, 40022, 39997, 0, {40026, 0, 0, 0}, 26, 26, { 1250, 500, 10082, 852, 0, ';' }},
-       {0x001B, 0x007F, 257, -1, 12824, 40049, 40056, 40068, 40072, 12824, 0, {40076, 0, 0, 0}, 27, 27, { 1250, 20880, 10029, 852, 0, ';' }},
-       {0x001C, 0x007F, 257, -1, 40100, 40103, 40112, 40118, 40122, 40100, 0, {40126, 0, 0, 0}, 28, 28, { 1250, 20880, 10029, 852, 0, ';' }},
-       {0x001D, 0x007F, 257, -1, 40146, 40149, 40157, 40165, 40169, 40146, 0, {38997, 0, 0, 0}, 29, 29, { 1252, 20278, 10000, 850, 0, ';' }},
-       {0x001E, 0x007F, 512, -1, 40173, 40176, 40181, 40191, 40195, 40173, 0, {0, 40199, 0, 0}, 30, 30, { 874, 20838, 10021, 874, 0, ',' }},
-       {0x001F, 0x007F, 257, -1, 12833, 40230, 40238, 40247, 40251, 12833, 0, {40255, 0, 0, 0}, 31, 31, { 1254, 20905, 10081, 857, 0, ';' }},
-       {0x0020, 0x007F, 257, -1, 40269, 40272, 40277, 40286, 40290, 40269, 0, {40294, 0, 0, 0}, 32, 32, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x0021, 0x007F, 257, -1, 40324, 40327, 40338, 40355, 40359, 40324, 0, {40363, 0, 0, 0}, 33, 33, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x0022, 0x007F, 257, -1, 40382, 40385, 40395, 40416, 40420, 40382, 0, {40424, 0, 0, 0}, 34, 34, { 1251, 500, 10017, 866, 0, ';' }},
-       {0x0023, 0x007F, 257, -1, 40470, 40473, 40484, 40505, 40509, 40470, 0, {40513, 0, 0, 0}, 35, 35, { 1251, 500, 10007, 866, 0, ';' }},
-       {0x0024, 0x007F, 257, -1, 40555, 40558, 40568, 40582, 40586, 40555, 0, {40590, 0, 0, 0}, 36, 36, { 1250, 20880, 10029, 852, 0, ';' }},
-       {0x0025, 0x007F, 257, -1, 40612, 40615, 40624, 40630, 40634, 40612, 0, {40638, 0, 0, 0}, 37, 37, { 1257, 500, 10029, 775, 0, ';' }},
-       {0x0026, 0x007F, 257, -1, 40658, 40661, 40669, 40679, 40683, 40658, 0, {40687, 0, 0, 0}, 38, 38, { 1257, 500, 10029, 775, 0, ';' }},
-       {0x0027, 0x007F, 257, -1, 40706, 40709, 40720, 40730, 40734, 40706, 0, {40738, 0, 0, 0}, 39, 39, { 1257, 500, 10029, 775, 0, ';' }},
-       {0x0028, 0x007F, 257, -1, 40761, 40764, 40770, 40783, 40787, 40761, 0, {0, 0, 0, 0}, 40, 40, { 1251, 20880, 10007, 866, 0, ';' }},
-       {0x0029, 0x007F, 257, -1, 40791, 40794, 40802, 40813, 40817, 40791, 0, {40821, 0, 0, 0}, 41, 41, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x002A, 0x007F, 257, -1, 40845, 40848, 40859, 40874, 35722, 40845, 0, {40878, 0, 0, 0}, 42, 42, { 1258, 500, 10000, 1258, 0, ',' }},
-       {0x002B, 0x007F, 257, -1, 40893, 40896, 40905, 40920, 40924, 40893, 0, {40928, 0, 0, 0}, 43, 43, { 0, 500, 2, 1, 0, ',' }},
-       {0x002C, 0x007F, 257, -1, 40958, 40961, 40973, 40985, 40989, 40958, 0, {40993, 0, 0, 0}, 44, 44, { 1254, 20905, 10081, 857, 0, ';' }},
-       {0x002D, 0x007F, 257, -1, 41012, 41015, 41022, 41030, 41034, 41012, 0, {41038, 0, 0, 0}, 45, 45, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x002F, 0x007F, 257, -1, 41058, 41061, 41072, 41093, 41097, 41058, 0, {41101, 0, 0, 0}, 46, 46, { 1251, 500, 10007, 866, 0, ';' }},
-       {0x0032, 0x007F, 257, -1, 41145, 41148, 41155, 41164, 41168, 41145, 0, {0, 0, 0, 0}, 47, 47, { 1252, 500, 10000, 850, 0, ',' }},
-       {0x0034, 0x007F, 257, -1, 41172, 41175, 41181, 41190, 41194, 41172, 0, {0, 0, 0, 0}, 48, 48, { 1252, 500, 10000, 850, 0, ',' }},
-       {0x0035, 0x007F, 257, -1, 41198, 41201, 41206, 41214, 41218, 41198, 0, {41222, 0, 0, 0}, 49, 49, { 1252, 500, 10000, 850, 0, ',' }},
-       {0x0036, 0x007F, 257, -1, 41243, 41246, 41246, 41256, 41260, 41243, 0, {41264, 0, 0, 0}, 50, 50, { 1252, 500, 10000, 850, 0, ',' }},
-       {0x0037, 0x007F, 257, -1, 41284, 41287, 41296, 41318, 41322, 41284, 0, {41326, 0, 0, 0}, 51, 51, { 0, 500, 2, 1, 0, ';' }},
-       {0x0038, 0x007F, 257, -1, 41391, 41394, 41402, 41412, 41416, 41391, 0, {0, 0, 0, 0}, 52, 52, { 1252, 20277, 10079, 850, 0, ';' }},
-       {0x0039, 0x007F, 257, -1, 41420, 41423, 41429, 41445, 41449, 41420, 0, {41453, 0, 0, 0}, 53, 53, { 0, 500, 2, 1, 0, ',' }},
-       {0x003A, 0x007F, 257, -1, 41506, 41509, 41517, 41523, 41527, 41506, 0, {41531, 0, 0, 0}, 54, 54, { 0, 500, 2, 1, 0, ',' }},
-       {0x003B, 0x007F, 257, -1, 41552, 41555, 41569, 41586, 41590, 41552, 0, {41594, 0, 0, 0}, 55, 55, { 1252, 20277, 10000, 850, 0, ';' }},
-       {0x003C, 0x007F, 257, -1, 41613, 41616, 41622, 41630, 41634, 41613, 0, {41638, 0, 0, 0}, 56, 56, { 1252, 500, 10000, 850, 0, ',' }},
-       {0x003E, 0x007F, 257, -1, 41659, 41662, 41668, 41682, 41686, 41659, 0, {41690, 0, 0, 0}, 57, 57, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x003F, 0x007F, 257, -1, 41707, 41710, 41717, 41737, 41741, 41707, 0, {41745, 0, 0, 0}, 58, 58, { 0, 500, 2, 1, 0, ';' }},
-       {0x0040, 0x007F, 257, -1, 41787, 41790, 41797, 41814, 41818, 41787, 0, {41822, 0, 0, 0}, 59, 59, { 1251, 20880, 10007, 866, 0, ';' }},
-       {0x0041, 0x007F, 257, -1, 41860, 41863, 41871, 41881, 41885, 41860, 0, {41889, 0, 0, 0}, 60, 60, { 1252, 500, 10000, 437, 0, ',' }},
-       {0x0043, 0x007F, 257, -1, 41910, 41913, 41919, 41930, 41934, 41910, 0, {41938, 0, 0, 0}, 61, 61, { 1254, 500, 10029, 857, 0, ';' }},
-       {0x0045, 0x007F, 257, -1, 41958, 41961, 41969, 41985, 41989, 41958, 0, {41993, 0, 0, 0}, 62, 62, { 0, 500, 2, 1, 0, ',' }},
-       {0x0046, 0x007F, 257, -1, 42058, 42061, 42069, 42088, 42092, 42058, 0, {42096, 0, 0, 0}, 63, 63, { 0, 500, 2, 1, 0, ',' }},
-       {0x0047, 0x007F, 257, -1, 42143, 42146, 42155, 42177, 42181, 42143, 0, {42185, 0, 0, 0}, 64, 64, { 0, 500, 2, 1, 0, ',' }},
-       {0x0048, 0x007F, 257, -1, 42241, 42244, 42250, 42266, 42270, 42241, 0, {0, 0, 0, 0}, 65, 65, { 0, 500, 2, 1, 0, ',' }},
-       {0x0049, 0x007F, 257, -1, 42274, 42277, 42283, 42299, 42303, 42274, 0, {42307, 0, 0, 0}, 66, 66, { 0, 500, 2, 1, 0, ',' }},
-       {0x004A, 0x007F, 257, -1, 42372, 42375, 42382, 42401, 42405, 42372, 0, {42409, 0, 0, 0}, 67, 67, { 0, 500, 2, 1, 0, ',' }},
-       {0x004B, 0x007F, 257, -1, 37890, 42474, 42482, 42498, 42502, 37890, 0, {42506, 0, 0, 0}, 68, 68, { 0, 500, 2, 1, 0, ',' }},
-       {0x004C, 0x007F, 257, -1, 42571, 42574, 42584, 42603, 42607, 42571, 0, {42611, 0, 0, 0}, 69, 69, { 0, 500, 2, 1, 0, ',' }},
-       {0x004D, 0x007F, 257, -1, 42655, 42658, 42667, 42689, 42693, 42655, 0, {42697, 0, 0, 0}, 70, 70, { 0, 500, 2, 1, 0, ',' }},
-       {0x004E, 0x007F, 257, -1, 42750, 42753, 42761, 42777, 2530, 42750, 0, {42781, 0, 0, 0}, 71, 71, { 0, 500, 2, 1, 0, ',' }},
-       {0x0050, 0x007F, 257, -1, 42843, 42846, 42856, 42869, 42873, 42843, 0, {42877, 0, 0, 0}, 72, 72, { 1251, 20880, 10007, 866, 0, ';' }},
-       {0x0051, 0x007F, 257, -1, 42909, 42912, 42920, 42945, 42949, 42909, 0, {0, 0, 0, 0}, 73, 73, { 0, 500, 2, 1, 0, ',' }},
-       {0x0052, 0x007F, 257, -1, 42953, 42956, 42962, 42970, 42974, 42953, 0, {42978, 0, 0, 0}, 74, 74, { 1252, 20285, 10000, 850, 0, ',' }},
-       {0x0053, 0x007F, 257, -1, 42994, 42997, 43003, 43019, 43023, 42994, 0, {43027, 0, 0, 0}, 75, 75, { 0, 500, 2, 1, 0, ',' }},
-       {0x0054, 0x007F, 257, -1, 43082, 43085, 43089, 43099, 43103, 43082, 0, {43107, 0, 0, 0}, 76, 76, { 0, 500, 2, 1, 0, ',' }},
-       {0x0056, 0x007F, 257, -1, 43153, 43156, 43165, 43172, 43176, 43153, 0, {39518, 0, 0, 0}, 77, 77, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x0057, 0x007F, 257, -1, 43180, 43184, 43192, 43211, 43180, 43180, 0, {0, 0, 0, 0}, 78, 78, { 0, 500, 2, 1, 0, ',' }},
-       {0x005B, 0x007F, 257, -1, 43215, 43218, 43226, 43242, 43246, 43215, 0, {43250, 0, 0, 0}, 79, 79, { 0, 500, 2, 1, 0, ',' }},
-       {0x005E, 0x007F, 257, -1, 8151, 43309, 43317, 43330, 43334, 8151, 0, {43338, 0, 0, 0}, 80, 80, { 0, 500, 2, 1, 0, ';' }},
-       {0x005F, 0x007F, 257, -1, 43383, 43387, 43411, 43421, 43383, 43383, 0, {0, 0, 0, 0}, 81, 81, { 1252, 20297, 10000, 850, 0, ';' }},
-       {0x0061, 0x007F, 257, -1, 1992, 43425, 43432, 43451, 43455, 1992, 0, {43459, 0, 0, 0}, 82, 82, { 0, 500, 2, 1, 0, ',' }},
-       {0x0063, 0x007F, 1024, -1, 43509, 43512, 43519, 43528, 43532, 43509, 0, {0, 0, 0, 0}, 83, 83, { 0, 500, 2, 1, 1, ';' }},
-       {0x0064, 0x007F, 257, -1, 43536, 43540, 43540, 43549, 43536, 43536, 0, {43553, 0, 0, 0}, 84, 84, { 1252, 500, 10000, 437, 0, ',' }},
-       {0x0068, 0x007F, 257, -1, 43576, 43579, 43579, 43585, 43589, 43576, 0, {0, 0, 0, 0}, 85, 85, { 1252, 37, 10000, 437, 0, ',' }},
-       {0x006A, 0x007F, 257, -1, 43593, 43596, 43603, 43618, 43622, 43593, 0, {0, 0, 0, 0}, 86, 86, { 1252, 37, 10000, 437, 0, ',' }},
-       {0x006C, 0x007F, 257, -1, 43626, 43630, 43645, 43662, 43626, 43626, 0, {0, 0, 0, 0}, 87, 87, { 1252, 500, 10000, 850, 0, ',' }},
-       {0x006F, 0x007F, 257, -1, 43666, 43669, 43681, 43693, 43697, 43666, 0, {43701, 0, 0, 0}, 88, 88, { 1252, 20277, 10000, 850, 0, ';' }},
-       {0x0070, 0x007F, 257, -1, 43728, 43731, 43731, 43736, 43740, 43728, 0, {0, 0, 0, 0}, 89, 89, { 1252, 37, 10000, 437, 0, ',' }},
-       {0x0078, 0x007F, 257, -1, 43744, 43747, 43758, 43768, 43772, 43744, 0, {43776, 0, 0, 0}, 90, 90, { 0, 500, 2, 1, 0, ',' }},
-       {0x007E, 0x007F, 257, -1, 43789, 43792, 43799, 43809, 43813, 43789, 0, {43817, 0, 0, 0}, 91, 91, { 1252, 20297, 10000, 850, 0, ';' }},
-       {0x0084, 0x007F, 257, -1, 43837, 43841, 43854, 43873, 43837, 43837, 0, {43877, 0, 0, 0}, 92, 92, { 1252, 20297, 10000, 850, 0, ';' }},
-       {0x0085, 0x007F, 257, -1, 43902, 43906, 43912, 43930, 43902, 43902, 0, {0, 0, 0, 0}, 93, 93, { 1251, 20880, 10007, 866, 0, ';' }},
-       {0x0087, 0x007F, 257, -1, 43934, 43937, 43937, 43949, 43953, 43934, 0, {0, 0, 0, 0}, 94, 94, { 1252, 37, 10000, 437, 0, ';' }},
-       {0x0091, 0x007F, 257, -1, 43957, 43960, 43976, 43986, 43990, 43957, 0, {43994, 0, 0, 0}, 95, 95, { 1252, 20285, 10000, 850, 0, ',' }},
-       {0x0401, 0x0001, 768, 95, 44019, 44025, 44047, 38666, 38670, 38641, 13775, {0, 0, 38674, 0}, 96, 96, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x0402, 0x0002, 257, 11, 44111, 44117, 44138, 38734, 38738, 38702, 44176, {38742, 0, 0, 0}, 97, 97, { 1251, 21025, 10007, 866, 0, ';' }},
-       {0x0403, 0x0003, 257, 31, 44179, 44185, 44201, 38803, 38807, 38784, 44219, {38811, 0, 0, 0}, 98, 98, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x0404, 0x7C04, 257, 107, 44222, 44228, 44250, 44266, 38877, 38881, 44270, {44273, 0, 0, 0}, 99, 99, { 950, 500, 10002, 950, 0, ',' }},
-       {0x0405, 0x0005, 257, 23, 44280, 44286, 44309, 38939, 38943, 38920, 44339, {38947, 0, 0, 0}, 100, 100, { 1250, 500, 10029, 852, 0, ';' }},
-       {0x0406, 0x0006, 257, 25, 44342, 44348, 44365, 38989, 38993, 38973, 44381, {38997, 0, 0, 0}, 101, 101, { 1252, 20277, 10000, 850, 0, ';' }},
-       {0x0407, 0x0007, 257, 24, 44384, 44390, 44407, 39036, 39040, 39018, 44429, {39044, 0, 0, 0}, 102, 102, { 1252, 20273, 10000, 850, 0, ';' }},
-       {0x0408, 0x0008, 257, 39, 44432, 44438, 44453, 39095, 39099, 39069, 44485, {39103, 0, 0, 0}, 103, 103, { 1253, 20273, 10006, 737, 0, ';' }},
-       {0x0409, 0x0009, 257, 109, 44488, 44494, 44494, 39156, 39160, 39145, 44518, {39164, 0, 0, 0}, 104, 104, { 1252, 37, 10000, 437, 0, ',' }},
-       {0x040B, 0x000B, 257, 33, 44521, 44527, 44545, 39250, 39254, 39233, 44559, {39258, 0, 0, 0}, 105, 105, { 1252, 20278, 10000, 850, 0, ';' }},
-       {0x040C, 0x000C, 257, 35, 44562, 44568, 44584, 39303, 39307, 39283, 44603, {39311, 0, 0, 0}, 106, 106, { 1252, 20297, 10000, 850, 0, ';' }},
-       {0x040D, 0x000D, 257, 47, 44606, 44612, 44628, 39354, 39358, 39333, 44652, {39362, 0, 0, 0}, 107, 107, { 1255, 500, 10005, 862, 1, ',' }},
-       {0x040E, 0x000E, 257, 44, 44655, 44661, 44681, 39415, 39419, 39395, 44704, {39423, 0, 0, 0}, 108, 108, { 1250, 500, 10029, 852, 0, ';' }},
-       {0x040F, 0x000F, 257, 51, 44707, 44713, 44733, 39462, 39466, 39439, 44753, {39470, 0, 0, 0}, 109, 109, { 1252, 20871, 10079, 850, 0, ';' }},
-       {0x0410, 0x0010, 257, 52, 44756, 44762, 44778, 39510, 39514, 39490, 44796, {39518, 0, 0, 0}, 110, 110, { 1252, 20280, 10000, 850, 0, ';' }},
-       {0x0411, 0x0011, 257, 55, 44799, 44805, 44822, 39562, 39566, 39540, 44841, {39570, 0, 0, 0}, 111, 111, { 932, 20290, 10001, 932, 0, ',' }},
-       {0x0412, 0x0012, 257, 58, 44844, 44850, 44871, 39617, 39621, 39597, 44896, {39625, 0, 0, 0}, 112, 112, { 949, 20833, 10003, 949, 0, ',' }},
-       {0x0413, 0x0013, 257, 77, 44899, 44905, 44925, 39655, 39659, 39635, 44948, {39663, 0, 0, 0}, 113, 113, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x0414, 0x7C14, 257, 78, 44951, 44957, 44984, 39704, 39708, 39712, 45006, {38997, 0, 0, 0}, 114, 114, { 1252, 20277, 10000, 850, 0, ';' }},
-       {0x0415, 0x0015, 257, 86, 45009, 45015, 45031, 39732, 39736, 39715, 45047, {39740, 0, 0, 0}, 115, 115, { 1250, 20880, 10029, 852, 0, ';' }},
-       {0x0416, 0x0016, 257, 14, 45050, 45056, 45076, 39789, 39793, 39764, 45096, {39797, 0, 0, 0}, 116, 116, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x0417, 0x0017, 257, 18, 45099, 45105, 45127, 39841, 39845, 39820, 13778, {39849, 0, 0, 0}, 117, 117, { 1252, 20273, 10000, 850, 0, ';' }},
-       {0x0418, 0x0018, 257, 91, 45146, 45152, 45171, 39890, 39894, 39869, 45191, {39898, 0, 0, 0}, 118, 118, { 1250, 20880, 10029, 852, 0, ';' }},
-       {0x0419, 0x0019, 257, 93, 45194, 45200, 45217, 39943, 39947, 39917, 45247, {39951, 0, 0, 0}, 119, 119, { 1251, 20880, 10007, 866, 0, ';' }},
-       {0x041A, 0x001A, 257, 43, 45250, 45256, 45275, 40018, 40022, 39997, 45295, {40026, 0, 0, 0}, 120, 120, { 1250, 500, 10082, 852, 0, ';' }},
-       {0x041B, 0x001B, 257, 99, 45298, 45304, 45322, 40068, 40072, 12824, 45346, {40076, 0, 0, 0}, 121, 121, { 1250, 20880, 10029, 852, 0, ';' }},
-       {0x041C, 0x001C, 257, 2, 45349, 45355, 45374, 40118, 40122, 40100, 45392, {40126, 0, 0, 0}, 122, 122, { 1250, 20880, 10029, 852, 0, ';' }},
-       {0x041D, 0x001D, 257, 96, 45395, 45401, 45418, 40165, 40169, 40146, 45436, {38997, 0, 0, 0}, 123, 123, { 1252, 20278, 10000, 850, 0, ';' }},
-       {0x041E, 0x001E, 512, 102, 45439, 45445, 45461, 40191, 40195, 40173, 45483, {0, 40199, 0, 0}, 124, 124, { 874, 20838, 10021, 874, 0, ',' }},
-       {0x041F, 0x001F, 257, 105, 45486, 45492, 45509, 40247, 40251, 12833, 45529, {40255, 0, 0, 0}, 125, 125, { 1254, 20905, 10081, 857, 0, ';' }},
-       {0x0420, 0x0020, 257, 85, 45532, 45538, 45554, 40286, 40290, 40269, 45580, {40294, 0, 0, 0}, 126, 126, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x0421, 0x0021, 257, 45, 45583, 45589, 45612, 40355, 40359, 40324, 45641, {40363, 0, 0, 0}, 127, 127, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x0422, 0x0022, 257, 108, 45644, 45650, 45670, 40416, 40420, 40382, 45708, {40424, 0, 0, 0}, 128, 128, { 1251, 500, 10017, 866, 0, ';' }},
-       {0x0423, 0x0023, 257, 15, 45711, 45717, 45738, 40505, 40509, 40470, 45778, {40513, 0, 0, 0}, 129, 129, { 1251, 500, 10007, 866, 0, ';' }},
-       {0x0424, 0x0024, 257, 98, 45781, 45787, 45808, 40582, 40586, 40555, 45834, {40590, 0, 0, 0}, 130, 130, { 1250, 20880, 10029, 852, 0, ';' }},
-       {0x0425, 0x0025, 257, 29, 45837, 45843, 45862, 40630, 40634, 40612, 45876, {40638, 0, 0, 0}, 131, 131, { 1257, 500, 10029, 775, 0, ';' }},
-       {0x0426, 0x0026, 257, 66, 45879, 45885, 45902, 40679, 40683, 40658, 45922, {40687, 0, 0, 0}, 132, 132, { 1257, 500, 10029, 775, 0, ';' }},
-       {0x0427, 0x0027, 257, 64, 45925, 45931, 45954, 40730, 40734, 40706, 45974, {40738, 0, 0, 0}, 133, 133, { 1257, 500, 10029, 775, 0, ';' }},
-       {0x0428, 0x7C28, 257, 103, 45977, 45988, 46017, 40783, 40787, 40761, 46053, {0, 0, 0, 0}, 134, 134, { 1251, 20880, 10007, 866, 0, ';' }},
-       {0x0429, 0x0029, 257, 50, 46056, 46062, 46077, 40813, 40817, 40791, 46101, {40821, 0, 0, 0}, 135, 135, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x042A, 0x002A, 257, 113, 46104, 46110, 46131, 40874, 35722, 40845, 46159, {40878, 0, 0, 0}, 136, 136, { 1258, 500, 10000, 1258, 0, ',' }},
-       {0x042B, 0x002B, 257, 3, 46162, 46168, 46187, 40920, 40924, 40893, 1929, {40928, 0, 0, 0}, 137, 137, { 0, 500, 2, 1, 0, ',' }},
-       {0x042C, 0x782C, 257, 7, 46221, 46232, 46264, 40985, 40989, 40958, 46290, {40993, 0, 0, 0}, 138, 138, { 1254, 20905, 10081, 857, 0, ';' }},
-       {0x042D, 0x002D, 257, 31, 46293, 46299, 46314, 41030, 41034, 41012, 44219, {41038, 0, 0, 0}, 139, 139, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x042F, 0x002F, 257, 71, 46333, 46339, 46362, 41093, 41097, 41058, 46406, {41101, 0, 0, 0}, 140, 140, { 1251, 500, 10007, 866, 0, ';' }},
-       {0x0432, 0x0032, 257, 115, 46409, 46415, 41155, 41164, 41168, 41145, 46437, {0, 0, 0, 0}, 141, 141, { 1252, 500, 10000, 850, 0, ',' }},
-       {0x0434, 0x0034, 257, 115, 46440, 46446, 41181, 41190, 41194, 41172, 46437, {0, 0, 0, 0}, 142, 142, { 1252, 500, 10000, 850, 0, ',' }},
-       {0x0435, 0x0035, 257, 115, 46467, 46473, 46493, 41214, 41218, 41198, 46437, {41222, 0, 0, 0}, 143, 143, { 1252, 500, 10000, 850, 0, ',' }},
-       {0x0436, 0x0036, 257, 115, 46518, 46524, 46549, 41256, 41260, 41243, 46437, {41264, 0, 0, 0}, 144, 144, { 1252, 500, 10000, 850, 0, ',' }},
-       {0x0437, 0x0037, 257, 37, 46573, 46579, 46598, 41318, 41322, 41284, 46653, {41326, 0, 0, 0}, 145, 145, { 0, 500, 2, 1, 0, ';' }},
-       {0x0438, 0x0038, 257, 34, 46656, 46662, 46686, 41412, 41416, 41391, 46707, {0, 0, 0, 0}, 146, 146, { 1252, 20277, 10079, 850, 0, ';' }},
-       {0x0439, 0x0039, 257, 48, 46710, 46716, 46730, 41445, 41449, 41420, 46761, {41453, 0, 0, 0}, 147, 147, { 0, 500, 2, 1, 0, ',' }},
-       {0x043A, 0x003A, 257, 73, 46764, 46770, 46786, 41523, 41527, 41506, 46800, {41531, 0, 0, 0}, 148, 148, { 0, 500, 2, 1, 0, ',' }},
-       {0x043B, 0x003B, 257, 78, 46803, 46809, 46832, 41586, 41590, 41552, 45006, {41594, 0, 0, 0}, 149, 149, { 1252, 20277, 10000, 850, 0, ';' }},
-       {0x0441, 0x0041, 257, 56, 46857, 46863, 46879, 41881, 41885, 41860, 46897, {41889, 0, 0, 0}, 150, 150, { 1252, 500, 10000, 437, 0, ',' }},
-       {0x0443, 0x7C43, 257, 111, 46900, 46911, 46937, 41930, 41934, 41910, 46963, {41938, 0, 0, 0}, 151, 151, { 1254, 500, 10029, 857, 0, ';' }},
-       {0x0445, 0x0045, 257, 48, 46966, 46972, 46988, 41985, 41989, 41958, 46761, {41993, 0, 0, 0}, 152, 152, { 0, 500, 2, 1, 0, ',' }},
-       {0x0447, 0x0047, 257, 48, 47019, 47025, 47042, 42177, 42181, 42143, 46761, {42185, 0, 0, 0}, 153, 153, { 0, 500, 2, 1, 0, ',' }},
-       {0x0448, 0x0048, 257, 48, 47079, 47085, 47099, 42266, 42270, 42241, 46761, {0, 0, 0, 0}, 154, 154, { 0, 500, 2, 1, 0, ',' }},
-       {0x0449, 0x0049, 257, 48, 47130, 47136, 47150, 42299, 42303, 42274, 46761, {42307, 0, 0, 0}, 155, 155, { 0, 500, 2, 1, 0, ',' }},
-       {0x044A, 0x004A, 257, 48, 47190, 47196, 47211, 42401, 42405, 42372, 46761, {42409, 0, 0, 0}, 156, 156, { 0, 500, 2, 1, 0, ',' }},
-       {0x044B, 0x004B, 257, 48, 47258, 47264, 47280, 42498, 42502, 37890, 46761, {42506, 0, 0, 0}, 157, 157, { 0, 500, 2, 1, 0, ',' }},
-       {0x044C, 0x004C, 257, 48, 47311, 47317, 47335, 42603, 42607, 42571, 46761, {42611, 0, 0, 0}, 158, 158, { 0, 500, 2, 1, 0, ',' }},
-       {0x044D, 0x004D, 257, 48, 47375, 47381, 47398, 42689, 42693, 42655, 46761, {42697, 0, 0, 0}, 159, 159, { 0, 500, 2, 1, 0, ',' }},
-       {0x044E, 0x004E, 257, 48, 47435, 47441, 47457, 42777, 2530, 42750, 46761, {42781, 0, 0, 0}, 160, 160, { 0, 500, 2, 1, 0, ',' }},
-       {0x0451, 0x0051, 257, 20, 47488, 47494, 47510, 42945, 42949, 42909, 13857, {0, 0, 0, 0}, 161, 161, { 0, 500, 2, 1, 0, ',' }},
-       {0x0452, 0x0052, 257, 36, 47556, 47562, 47585, 42970, 42974, 42953, 47612, {42978, 0, 0, 0}, 162, 162, { 1252, 20285, 10000, 850, 0, ',' }},
-       {0x0453, 0x0053, 257, 57, 47615, 47621, 47638, 43019, 43023, 42994, 47678, {43027, 0, 0, 0}, 163, 163, { 0, 500, 2, 1, 0, ',' }},
-       {0x0454, 0x0054, 257, 60, 47681, 47687, 47698, 43099, 43103, 43082, 47720, {43107, 0, 0, 0}, 164, 164, { 0, 500, 2, 1, 0, ',' }},
-       {0x0456, 0x0056, 257, 31, 47723, 47729, 47746, 43172, 43176, 43153, 44219, {39518, 0, 0, 0}, 165, 165, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x0457, 0x0057, 257, 48, 47763, 47770, 47786, 43211, 43180, 43180, 46761, {0, 0, 0, 0}, 166, 166, { 0, 500, 2, 1, 0, ',' }},
-       {0x045B, 0x005B, 257, 63, 47820, 47826, 47846, 43242, 43246, 43215, 47896, {43250, 0, 0, 0}, 167, 167, { 0, 500, 2, 1, 0, ',' }},
-       {0x045E, 0x005E, 257, 32, 47899, 47905, 47924, 43330, 43334, 8151, 47955, {43338, 0, 0, 0}, 168, 168, { 0, 500, 2, 1, 0, ';' }},
-       {0x0461, 0x0061, 257, 79, 47958, 47964, 47979, 43451, 43455, 1992, 48016, {43459, 0, 0, 0}, 169, 169, { 0, 500, 2, 1, 0, ',' }},
-       {0x0463, 0x0063, 1024, 1, 48019, 48025, 48046, 43528, 43532, 43509, 48076, {0, 0, 0, 0}, 170, 170, { 0, 500, 2, 1, 1, ';' }},
-       {0x0464, 0x0064, 257, 84, 48079, 48086, 48109, 43549, 43536, 43536, 48130, {43553, 0, 0, 0}, 171, 171, { 1252, 500, 10000, 437, 0, ',' }},
-       {0x0468, 0x7C68, 257, 75, 48133, 48144, 48167, 43585, 43589, 43576, 48184, {0, 0, 0, 0}, 172, 172, { 1252, 37, 10000, 437, 0, ',' }},
-       {0x046A, 0x006A, 257, 75, 48187, 48193, 48210, 43618, 43622, 43593, 48184, {0, 0, 0, 0}, 173, 173, { 1252, 37, 10000, 437, 0, ',' }},
-       {0x046C, 0x006C, 257, 115, 48256, 48263, 43645, 43662, 43626, 43626, 46437, {0, 0, 0, 0}, 174, 174, { 1252, 500, 10000, 850, 0, ',' }},
-       {0x046F, 0x006F, 257, 38, 48293, 48299, 48323, 43693, 43697, 43666, 48354, {43701, 0, 0, 0}, 175, 175, { 1252, 20277, 10000, 850, 0, ';' }},
-       {0x0470, 0x0070, 257, 75, 48357, 48363, 48363, 43736, 43740, 43728, 48184, {0, 0, 0, 0}, 176, 176, { 1252, 37, 10000, 437, 0, ',' }},
-       {0x0478, 0x0078, 257, 20, 48378, 48384, 48403, 43768, 43772, 43744, 13857, {43776, 0, 0, 0}, 177, 177, { 0, 500, 2, 1, 0, ',' }},
-       {0x047E, 0x007E, 257, 35, 48422, 48428, 48444, 43809, 43813, 43789, 44603, {43817, 0, 0, 0}, 178, 178, { 1252, 20297, 10000, 850, 0, ';' }},
-       {0x0485, 0x0085, 257, 93, 48463, 48470, 43912, 43930, 43902, 43902, 45247, {0, 0, 0, 0}, 179, 179, { 1251, 20880, 10007, 866, 0, ';' }},
-       {0x0487, 0x0087, 257, 94, 48485, 48491, 48491, 43949, 43953, 43934, 48512, {0, 0, 0, 0}, 180, 180, { 1252, 37, 10000, 437, 0, ';' }},
-       {0x0491, 0x0091, 257, 36, 48515, 48521, 48554, 43986, 43990, 43957, 47612, {43994, 0, 0, 0}, 181, 181, { 1252, 20285, 10000, 850, 0, ',' }},
-       {0x0801, 0x0001, 257, 49, 48590, 48596, 48610, 48640, 38670, 38641, 48644, {48647, 0, 0, 0}, 182, 182, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x0804, 0x0004, 257, 20, 48679, 38899, 48685, 38873, 38877, 38881, 13857, {38884, 0, 0, 0}, 183, 183, { 936, 500, 10008, 936, 0, ',' }},
-       {0x0807, 0x0007, 257, 18, 48701, 48707, 48728, 48746, 39040, 39018, 13778, {39044, 0, 0, 0}, 184, 184, { 1252, 20273, 10000, 850, 0, ';' }},
-       {0x0809, 0x0009, 257, 36, 48750, 48756, 48756, 48781, 39160, 39145, 47612, {39164, 0, 0, 0}, 185, 185, { 1252, 20285, 10000, 850, 0, ',' }},
-       {0x080A, 0x000A, 257, 74, 48785, 48791, 48808, 48827, 39207, 39183, 48831, {39518, 0, 0, 0}, 186, 186, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x080C, 0x000C, 257, 10, 48834, 48840, 48857, 48878, 39307, 39283, 48882, {39311, 0, 0, 0}, 187, 187, { 1252, 20297, 10000, 850, 0, ';' }},
-       {0x0810, 0x0010, 257, 18, 48885, 48891, 48913, 48933, 39514, 39490, 13778, {39518, 0, 0, 0}, 188, 188, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x0813, 0x0013, 257, 10, 48937, 48943, 48959, 48980, 39659, 39635, 48882, {39663, 0, 0, 0}, 189, 189, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x0814, 0x7814, 257, 78, 48984, 48990, 49017, 49033, 49037, 49041, 45006, {38997, 0, 0, 0}, 190, 190, { 1252, 20277, 10000, 850, 0, ';' }},
-       {0x0816, 0x0016, 257, 88, 49044, 49050, 49072, 49094, 39793, 39764, 49098, {39797, 0, 0, 0}, 191, 191, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x081D, 0x001D, 257, 33, 49101, 49107, 49125, 49143, 40169, 40146, 44559, {38997, 0, 0, 0}, 192, 192, { 1252, 20278, 10000, 850, 0, ';' }},
-       {0x082C, 0x742C, 257, 7, 49147, 49158, 46264, 49193, 40989, 40958, 46290, {40993, 0, 0, 0}, 193, 193, { 1251, 20880, 10007, 866, 0, ';' }},
-       {0x083C, 0x003C, 257, 46, 49197, 49203, 49219, 41630, 41634, 41613, 49235, {41638, 0, 0, 0}, 194, 194, { 1252, 500, 10000, 850, 0, ',' }},
-       {0x0843, 0x7843, 257, 111, 49238, 49249, 46937, 41930, 41934, 41910, 46963, {49278, 0, 0, 0}, 195, 195, { 1251, 20880, 10007, 866, 0, ';' }},
-       {0x0845, 0x0045, 257, 9, 49316, 49322, 49343, 49386, 41989, 41958, 49390, {41993, 0, 0, 0}, 196, 196, { 0, 500, 2, 1, 0, ',' }},
-       {0x0C01, 0x0001, 257, 30, 49393, 49399, 49414, 49438, 38670, 38641, 49442, {48647, 0, 0, 0}, 197, 197, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x0C04, 0x7C04, 257, 41, 49445, 49451, 49494, 49531, 38877, 38881, 49535, {44273, 0, 0, 0}, 198, 198, { 950, 500, 10002, 950, 0, ',' }},
-       {0x0C07, 0x0007, 257, 5, 49538, 49544, 49561, 49583, 39040, 39018, 49587, {39044, 0, 0, 0}, 199, 199, { 1252, 20273, 10000, 850, 0, ';' }},
-       {0x0C09, 0x0009, 257, 6, 49590, 49596, 49596, 49616, 39160, 39145, 49620, {39164, 0, 0, 0}, 200, 200, { 1252, 500, 10000, 850, 0, ',' }},
-       {0x0C0A, 0x000A, 257, 31, 49623, 49629, 49645, 49664, 39207, 39183, 44219, {39211, 0, 0, 0}, 201, 201, { 1252, 20284, 10000, 850, 0, ';' }},
-       {0x0C0C, 0x000C, 257, 17, 49668, 49674, 49690, 49709, 39307, 39283, 49713, {49716, 0, 0, 0}, 202, 202, { 1252, 20297, 10000, 850, 0, ';' }},
-       {0x0C3B, 0x003B, 257, 33, 49738, 49744, 49768, 49794, 49798, 41552, 44559, {41594, 0, 0, 0}, 203, 203, { 1252, 20278, 10000, 850, 0, ';' }},
-       {0x1001, 0x0001, 257, 67, 49802, 49808, 49823, 49851, 38670, 38641, 49855, {48647, 0, 0, 0}, 204, 204, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x1004, 0x0004, 257, 97, 49858, 49864, 49896, 49915, 38877, 38881, 49919, {38884, 0, 0, 0}, 205, 205, { 936, 500, 10008, 936, 0, ',' }},
-       {0x1007, 0x0007, 257, 65, 49922, 49928, 49948, 49968, 39040, 39018, 49972, {39044, 0, 0, 0}, 206, 206, { 1252, 20273, 10000, 850, 0, ';' }},
-       {0x1009, 0x0009, 257, 17, 49975, 49981, 49981, 49998, 39160, 39145, 49713, {39164, 0, 0, 0}, 207, 207, { 1252, 37, 10000, 850, 0, ',' }},
-       {0x100A, 0x000A, 257, 40, 50002, 50008, 50028, 50049, 39207, 39183, 50053, {39211, 0, 0, 0}, 208, 208, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x100C, 0x000C, 257, 18, 50056, 50062, 50083, 50102, 39307, 39283, 13778, {39311, 0, 0, 0}, 209, 209, { 1252, 20297, 10000, 850, 0, ';' }},
-       {0x101A, 0x001A, 257, 8, 50106, 50112, 50146, 50177, 50181, 39997, 50185, {40026, 0, 0, 0}, 210, 210, { 1250, 870, 10082, 852, 0, ';' }},
-       {0x1401, 0x0001, 257, 27, 50188, 50194, 50211, 50243, 38670, 38641, 50247, {48647, 0, 0, 0}, 211, 211, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x1404, 0x7C04, 257, 72, 50250, 50256, 50295, 50332, 38877, 38881, 50336, {44273, 0, 0, 0}, 212, 212, { 950, 500, 10002, 950, 0, ',' }},
-       {0x1407, 0x0007, 257, 62, 50339, 50345, 50368, 50392, 39040, 39018, 50396, {39044, 0, 0, 0}, 213, 213, { 1252, 20273, 10000, 850, 0, ';' }},
-       {0x1409, 0x0009, 257, 80, 50399, 50405, 50405, 50427, 39160, 39145, 50431, {39164, 0, 0, 0}, 214, 214, { 1252, 500, 10000, 850, 0, ',' }},
-       {0x140A, 0x000A, 257, 22, 50434, 50440, 50461, 50483, 39207, 39183, 50487, {39211, 0, 0, 0}, 215, 215, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x140C, 0x000C, 257, 65, 50490, 50496, 50516, 50539, 39307, 39283, 49972, {39311, 0, 0, 0}, 216, 216, { 1252, 20297, 10000, 850, 0, ';' }},
-       {0x141A, 0x681A, 257, 8, 50543, 50554, 50594, 50625, 50629, 50633, 50185, {50636, 0, 0, 0}, 217, 217, { 1250, 870, 10082, 852, 0, ';' }},
-       {0x1801, 0x0001, 257, 68, 50659, 50665, 50682, 50712, 38670, 38641, 50716, {48647, 0, 0, 0}, 218, 218, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x1809, 0x0009, 257, 46, 50719, 50725, 50725, 50743, 39160, 39145, 49235, {39164, 0, 0, 0}, 219, 219, { 1252, 500, 10000, 850, 0, ',' }},
-       {0x180A, 0x000A, 257, 82, 50747, 50753, 50770, 50789, 39207, 39183, 50793, {39211, 0, 0, 0}, 220, 220, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x180C, 0x000C, 257, 69, 50796, 50802, 50818, 50837, 39307, 39283, 50841, {39311, 0, 0, 0}, 221, 221, { 1252, 20297, 10000, 850, 0, ';' }},
-       {0x181A, 0x701A, 257, 8, 50844, 50855, 50895, 50947, 50951, 50955, 50185, {50636, 0, 0, 0}, 222, 222, { 1250, 870, 10082, 852, 0, ';' }},
-       {0x1C01, 0x0001, 257, 104, 50958, 50964, 50981, 51007, 38670, 38641, 51011, {48647, 0, 0, 0}, 223, 223, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x1C09, 0x0009, 257, 115, 51014, 51020, 51020, 51043, 39160, 39145, 46437, {39164, 0, 0, 0}, 224, 224, { 1252, 500, 10000, 437, 0, ',' }},
-       {0x1C0A, 0x000A, 257, 26, 51047, 51053, 51082, 51115, 39207, 39183, 51119, {39211, 0, 0, 0}, 225, 225, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x1C1A, 0x6C1A, 257, 8, 51122, 51133, 50895, 51176, 51180, 50955, 50185, {41101, 0, 0, 0}, 226, 226, { 1251, 21025, 10007, 855, 0, ';' }},
-       {0x2001, 0x0001, 257, 81, 51184, 51190, 51204, 51232, 38670, 38641, 51236, {48647, 0, 0, 0}, 227, 227, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x2009, 0x0009, 257, 53, 51239, 51245, 51245, 51263, 39160, 39145, 51267, {39164, 0, 0, 0}, 228, 228, { 1252, 500, 10000, 850, 0, ',' }},
-       {0x200A, 0x000A, 257, 112, 51270, 51276, 51296, 51317, 39207, 39183, 51321, {39211, 0, 0, 0}, 229, 229, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x201A, 0x641A, 257, 8, 51324, 51335, 50594, 51378, 51382, 50633, 50185, {41101, 0, 0, 0}, 230, 230, { 1251, 870, 10082, 855, 0, ';' }},
-       {0x2401, 0x0001, 257, 114, 51386, 51392, 51407, 51435, 38670, 38641, 51439, {48647, 0, 0, 0}, 231, 231, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x240A, 0x000A, 257, 21, 51442, 51448, 51467, 51487, 39207, 39183, 51491, {39211, 0, 0, 0}, 232, 232, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x241A, 0x701A, 257, 92, 51494, 51505, 51529, 51557, 2239, 50955, 51561, {50636, 0, 0, 0}, 233, 233, { 1250, 500, 10029, 852, 0, ';' }},
-       {0x2801, 0x0001, 257, 101, 51564, 51570, 51585, 51613, 38670, 38641, 51617, {48647, 0, 0, 0}, 234, 234, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x2809, 0x0009, 257, 16, 51620, 51626, 51626, 51643, 39160, 39145, 51647, {39164, 0, 0, 0}, 235, 235, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x280A, 0x000A, 257, 83, 51650, 51656, 51671, 51688, 39207, 39183, 51692, {39211, 0, 0, 0}, 236, 236, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x281A, 0x6C1A, 257, 92, 51695, 51706, 51529, 51733, 2239, 50955, 51561, {41101, 0, 0, 0}, 237, 237, { 1251, 21025, 10007, 855, 0, ';' }},
-       {0x2C01, 0x0001, 257, 54, 51737, 51743, 51759, 51789, 38670, 38641, 51793, {48647, 0, 0, 0}, 238, 238, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x2C09, 0x0009, 257, 106, 51796, 51802, 51802, 51832, 39160, 39145, 51836, {39164, 0, 0, 0}, 239, 239, { 1252, 500, 10000, 850, 0, ';' }},
-       {0x2C0A, 0x000A, 257, 4, 51839, 51845, 51865, 51886, 39207, 39183, 51890, {39211, 0, 0, 0}, 240, 240, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x2C1A, 0x701A, 257, 70, 51893, 51904, 51932, 51965, 2239, 50955, 51969, {50636, 0, 0, 0}, 241, 241, { 1250, 500, 10029, 852, 0, ';' }},
-       {0x3001, 0x0001, 257, 61, 51972, 51978, 51995, 52023, 38670, 38641, 52027, {48647, 0, 0, 0}, 242, 242, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x3009, 0x0009, 257, 116, 52030, 52036, 52036, 52055, 39160, 39145, 52059, {39164, 0, 0, 0}, 243, 243, { 1252, 500, 10000, 437, 0, ',' }},
-       {0x300A, 0x000A, 257, 28, 52062, 52068, 52086, 52105, 39207, 39183, 52109, {39211, 0, 0, 0}, 244, 244, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x301A, 0x6C1A, 257, 70, 52112, 52123, 51932, 52154, 2239, 50955, 51969, {41101, 0, 0, 0}, 245, 245, { 1251, 21025, 10007, 855, 0, ';' }},
-       {0x3401, 0x0001, 257, 59, 52158, 52164, 52180, 52210, 38670, 38641, 52214, {48647, 0, 0, 0}, 246, 246, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x3409, 0x0009, 257, 84, 52217, 52223, 52223, 52245, 39160, 39145, 48130, {39164, 0, 0, 0}, 247, 247, { 1252, 500, 10000, 437, 0, ',' }},
-       {0x340A, 0x000A, 257, 19, 52249, 52255, 52271, 52288, 39207, 39183, 52292, {39211, 0, 0, 0}, 248, 248, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x3801, 0x0001, 257, 0, 52295, 52301, 52331, 52395, 38670, 38641, 52399, {48647, 0, 0, 0}, 249, 249, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x380A, 0x000A, 257, 110, 52402, 52408, 52426, 52445, 39207, 39183, 52449, {39211, 0, 0, 0}, 250, 250, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x3C01, 0x0001, 257, 12, 52452, 52458, 52475, 52507, 38670, 38641, 52511, {48647, 0, 0, 0}, 251, 251, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x3C0A, 0x000A, 257, 89, 52514, 52520, 52539, 52559, 39207, 39183, 52563, {39211, 0, 0, 0}, 252, 252, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x4001, 0x0001, 257, 90, 52566, 52572, 52587, 52611, 38670, 38641, 52615, {48647, 0, 0, 0}, 253, 253, { 1256, 20420, 10004, 720, 1, ';' }},
-       {0x4009, 0x0009, 257, 48, 52618, 52624, 52624, 52640, 39160, 39145, 46761, {39164, 0, 0, 0}, 254, 254, { 1252, 37, 10000, 437, 0, ',' }},
-       {0x400A, 0x000A, 257, 13, 52644, 52650, 52668, 52687, 39207, 39183, 52691, {39211, 0, 0, 0}, 255, 255, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x440A, 0x000A, 257, 100, 52694, 52700, 52722, 52745, 39207, 39183, 52749, {39211, 0, 0, 0}, 256, 256, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x4809, 0x0009, 257, 97, 52752, 52758, 52758, 52778, 39160, 39145, 49919, {39164, 0, 0, 0}, 257, 257, { 1252, 37, 10000, 437, 0, ',' }},
-       {0x480A, 0x000A, 257, 42, 52782, 52788, 52807, 52827, 39207, 39183, 52831, {39211, 0, 0, 0}, 258, 258, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x4C0A, 0x000A, 257, 76, 52834, 52840, 52860, 52881, 39207, 39183, 52885, {39211, 0, 0, 0}, 259, 259, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x500A, 0x000A, 257, 87, 52888, 52894, 52916, 52939, 39207, 39183, 52943, {39211, 0, 0, 0}, 260, 260, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x540A, 0x000A, 257, 109, 52946, 52952, 52976, 53002, 39207, 39183, 44518, {39211, 0, 0, 0}, 261, 261, { 1252, 20284, 10000, 850, 0, ',' }},
-       {0x641A, 0x781A, 257, -1, 53006, 53014, 53033, 51378, 51382, 50633, 0, {41101, 0, 0, 0}, 262, 262, { 1251, 870, 10082, 855, 0, ';' }},
-       {0x681A, 0x781A, 257, -1, 53042, 53050, 53033, 50625, 50629, 50633, 0, {50636, 0, 0, 0}, 263, 263, { 1250, 870, 10082, 852, 0, ';' }},
-       {0x6C1A, 0x7C1A, 257, -1, 53066, 53074, 53093, 51733, 2239, 50955, 0, {41101, 0, 0, 0}, 264, 264, { 1251, 21025, 10007, 855, 0, ';' }},
-       {0x701A, 0x7C1A, 257, -1, 53106, 53114, 53093, 51557, 2239, 50955, 0, {50636, 0, 0, 0}, 265, 265, { 1250, 500, 10029, 852, 0, ';' }},
-       {0x742C, 0x002C, 257, -1, 53130, 53138, 40973, 49193, 40989, 40958, 0, {40993, 0, 0, 0}, 266, 266, { 1251, 20880, 10007, 866, 0, ';' }},
-       {0x7804, 0x007F, 257, -1, 38881, 38899, 38866, 38873, 38877, 38881, 0, {38884, 0, 0, 0}, 267, 267, { 936, 500, 10008, 936, 0, ',' }},
-       {0x7814, 0x0014, 257, -1, 49041, 53161, 53179, 49033, 49037, 49041, 0, {38997, 0, 0, 0}, 268, 268, { 1252, 20277, 10000, 850, 0, ';' }},
-       {0x781A, 0x007F, 257, -1, 50633, 53187, 53033, 50625, 50629, 50633, 0, {50636, 0, 0, 0}, 269, 269, { 1250, 870, 10082, 852, 0, ';' }},
-       {0x782C, 0x002C, 257, -1, 53195, 53203, 40973, 40985, 40989, 40958, 0, {40993, 0, 0, 0}, 270, 270, { 1254, 20905, 10081, 857, 0, ';' }},
-       {0x7843, 0x0043, 257, -1, 53223, 53231, 41919, 41930, 41934, 41910, 0, {49278, 0, 0, 0}, 271, 271, { 1251, 20880, 10007, 866, 0, ';' }},
-       {0x7850, 0x0050, 257, -1, 53248, 53256, 42856, 53277, 42873, 42843, 0, {42877, 0, 0, 0}, 272, 272, { 1251, 20880, 10007, 866, 0, ';' }},
-       {0x7C04, 0x7804, 257, -1, 53281, 44228, 38866, 44266, 38877, 38881, 0, {44273, 0, 0, 0}, 273, 273, { 950, 500, 10002, 950, 0, ',' }},
-       {0x7C04, 0x7C04, 257, -1, 53289, 53296, 38866, 44266, 38877, 38881, 0, {44273, 0, 0, 0}, 274, 274, { 950, 500, 10002, 950, 0, ',' }},
-       {0x7C14, 0x0014, 257, -1, 39712, 53325, 53343, 39704, 39708, 39712, 0, {38997, 0, 0, 0}, 275, 275, { 1252, 20277, 10000, 850, 0, ';' }},
-       {0x7C1A, 0x007F, 257, -1, 50955, 53357, 53093, 53365, 2239, 50955, 0, {41101, 0, 0, 0}, 276, 276, { 1250, 500, 10029, 852, 0, ';' }},
-       {0x7C28, 0x0028, 257, -1, 53369, 53377, 40770, 40783, 40787, 40761, 0, {0, 0, 0, 0}, 277, 277, { 1251, 20880, 10007, 866, 0, ';' }},
-       {0x7C43, 0x0043, 257, -1, 53394, 53402, 41919, 41930, 41934, 41910, 0, {41938, 0, 0, 0}, 278, 278, { 1254, 500, 10029, 857, 0, ';' }},
-       {0x7C5F, 0x005F, 257, -1, 53416, 53425, 43411, 43421, 43383, 43383, 0, {0, 0, 0, 0}, 279, 279, { 1252, 20297, 10000, 850, 0, ';' }},
-       {0x7C68, 0x0068, 257, -1, 53457, 53465, 43579, 43585, 43589, 43576, 0, {0, 0, 0, 0}, 280, 280, { 1252, 37, 10000, 437, 0, ',' }}
+       {0x0001, 0x007F, 768, -1, 38616, 38619, 38626, 38641, 38645, 38616, 0, {0, 0, 38649, 0}, 0, 0, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x0002, 0x007F, 257, -1, 38677, 38680, 38690, 38709, 38713, 38677, 0, {38717, 0, 0, 0}, 1, 1, { 1251, 21025, 10007, 866, 0, ';' }},
+       {0x0003, 0x007F, 257, -1, 38759, 38762, 38770, 38778, 38782, 38759, 0, {38786, 0, 0, 0}, 2, 2, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x0004, 0x0004, 257, -1, 38806, 38813, 38841, 38848, 38852, 38856, 0, {38859, 0, 0, 0}, 3, 3, { 936, 500, 10008, 936, 0, ',' }},
+       {0x0004, 0x7804, 257, -1, 38866, 38874, 38841, 38848, 38852, 38856, 0, {38859, 0, 0, 0}, 4, 4, { 936, 500, 10008, 936, 0, ',' }},
+       {0x0005, 0x007F, 257, -1, 38895, 38898, 38904, 38914, 38918, 38895, 0, {38922, 0, 0, 0}, 5, 5, { 1250, 500, 10029, 852, 0, ';' }},
+       {0x0006, 0x007F, 257, -1, 38948, 38951, 38958, 38964, 38968, 38948, 0, {38972, 0, 0, 0}, 6, 6, { 1252, 20277, 10000, 850, 0, ';' }},
+       {0x0007, 0x007F, 257, -1, 38993, 38996, 39003, 39011, 39015, 38993, 0, {39019, 0, 0, 0}, 7, 7, { 1252, 20273, 10000, 850, 0, ';' }},
+       {0x0008, 0x007F, 257, -1, 39044, 39047, 39053, 39070, 39074, 39044, 0, {39078, 0, 0, 0}, 8, 8, { 1253, 20273, 10006, 737, 0, ';' }},
+       {0x0009, 0x007F, 257, -1, 39120, 39123, 39123, 39131, 39135, 39120, 0, {39139, 0, 0, 0}, 9, 9, { 1252, 37, 10000, 437, 0, ',' }},
+       {0x000A, 0x007F, 257, -1, 39158, 39161, 39169, 39178, 39182, 39158, 0, {39186, 0, 0, 0}, 10, 10, { 1252, 20284, 10000, 850, 0, ';' }},
+       {0x000B, 0x007F, 257, -1, 39208, 39211, 39219, 39225, 39229, 39208, 0, {39233, 0, 0, 0}, 11, 11, { 1252, 20278, 10000, 850, 0, ';' }},
+       {0x000C, 0x007F, 257, -1, 39258, 39261, 39268, 39278, 39282, 39258, 0, {39286, 0, 0, 0}, 12, 12, { 1252, 20297, 10000, 850, 0, ';' }},
+       {0x000D, 0x007F, 257, -1, 39308, 39311, 39318, 39329, 39333, 39308, 0, {39337, 0, 0, 0}, 13, 13, { 1255, 500, 10005, 862, 1, ',' }},
+       {0x000E, 0x007F, 257, -1, 39370, 39373, 39383, 39390, 39394, 39370, 0, {39398, 0, 0, 0}, 14, 14, { 1250, 500, 10029, 852, 0, ';' }},
+       {0x000F, 0x007F, 257, -1, 39414, 39417, 39427, 39437, 39441, 39414, 0, {39445, 0, 0, 0}, 15, 15, { 1252, 20871, 10079, 850, 0, ';' }},
+       {0x0010, 0x007F, 257, -1, 39465, 39468, 39476, 39485, 39489, 39465, 0, {39493, 0, 0, 0}, 16, 16, { 1252, 20280, 10000, 850, 0, ';' }},
+       {0x0011, 0x007F, 257, -1, 39515, 39518, 39527, 39537, 39541, 39515, 0, {39545, 0, 0, 0}, 17, 17, { 932, 20290, 10001, 932, 0, ',' }},
+       {0x0012, 0x007F, 257, -1, 39572, 39575, 39582, 39592, 39596, 39572, 0, {39600, 0, 0, 0}, 18, 18, { 949, 20833, 10003, 949, 0, ',' }},
+       {0x0013, 0x007F, 257, -1, 39610, 39613, 39619, 39630, 39634, 39610, 0, {39638, 0, 0, 0}, 19, 19, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x0014, 0x007F, 257, -1, 39660, 39663, 39673, 39679, 39683, 39687, 0, {38972, 0, 0, 0}, 20, 20, { 1252, 20277, 10000, 850, 0, ';' }},
+       {0x0015, 0x007F, 257, -1, 39690, 39693, 39700, 39707, 39711, 39690, 0, {39715, 0, 0, 0}, 21, 21, { 1250, 20880, 10029, 852, 0, ';' }},
+       {0x0016, 0x007F, 257, -1, 39739, 39742, 39753, 39764, 39768, 39739, 0, {39772, 0, 0, 0}, 22, 22, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x0017, 0x007F, 257, -1, 39795, 39798, 39806, 39816, 39820, 39795, 0, {39824, 0, 0, 0}, 23, 23, { 1252, 20273, 10000, 850, 0, ';' }},
+       {0x0018, 0x007F, 257, -1, 39844, 39847, 39856, 39865, 39869, 39844, 0, {39873, 0, 0, 0}, 24, 24, { 1250, 20880, 10029, 852, 0, ';' }},
+       {0x0019, 0x007F, 257, -1, 39892, 39895, 39903, 39918, 39922, 39892, 0, {39926, 0, 0, 0}, 25, 25, { 1251, 20880, 10007, 866, 0, ';' }},
+       {0x001A, 0x007F, 257, -1, 39972, 39975, 39984, 39993, 39997, 39972, 0, {40001, 0, 0, 0}, 26, 26, { 1250, 500, 10082, 852, 0, ';' }},
+       {0x001B, 0x007F, 257, -1, 12799, 40024, 40031, 40043, 40047, 12799, 0, {40051, 0, 0, 0}, 27, 27, { 1250, 20880, 10029, 852, 0, ';' }},
+       {0x001C, 0x007F, 257, -1, 40075, 40078, 40087, 40093, 40097, 40075, 0, {40101, 0, 0, 0}, 28, 28, { 1250, 20880, 10029, 852, 0, ';' }},
+       {0x001D, 0x007F, 257, -1, 40121, 40124, 40132, 40140, 40144, 40121, 0, {38972, 0, 0, 0}, 29, 29, { 1252, 20278, 10000, 850, 0, ';' }},
+       {0x001E, 0x007F, 512, -1, 40148, 40151, 40156, 40166, 40170, 40148, 0, {0, 40174, 0, 0}, 30, 30, { 874, 20838, 10021, 874, 0, ',' }},
+       {0x001F, 0x007F, 257, -1, 12808, 40205, 40213, 40222, 40226, 12808, 0, {40230, 0, 0, 0}, 31, 31, { 1254, 20905, 10081, 857, 0, ';' }},
+       {0x0020, 0x007F, 257, -1, 40244, 40247, 40252, 40261, 40265, 40244, 0, {40269, 0, 0, 0}, 32, 32, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x0021, 0x007F, 257, -1, 40299, 40302, 40313, 40330, 40334, 40299, 0, {40338, 0, 0, 0}, 33, 33, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x0022, 0x007F, 257, -1, 40357, 40360, 40370, 40391, 40395, 40357, 0, {40399, 0, 0, 0}, 34, 34, { 1251, 500, 10017, 866, 0, ';' }},
+       {0x0023, 0x007F, 257, -1, 40445, 40448, 40459, 40480, 40484, 40445, 0, {40488, 0, 0, 0}, 35, 35, { 1251, 500, 10007, 866, 0, ';' }},
+       {0x0024, 0x007F, 257, -1, 40530, 40533, 40543, 40557, 40561, 40530, 0, {40565, 0, 0, 0}, 36, 36, { 1250, 20880, 10029, 852, 0, ';' }},
+       {0x0025, 0x007F, 257, -1, 40587, 40590, 40599, 40605, 40609, 40587, 0, {40613, 0, 0, 0}, 37, 37, { 1257, 500, 10029, 775, 0, ';' }},
+       {0x0026, 0x007F, 257, -1, 40633, 40636, 40644, 40654, 40658, 40633, 0, {40662, 0, 0, 0}, 38, 38, { 1257, 500, 10029, 775, 0, ';' }},
+       {0x0027, 0x007F, 257, -1, 40681, 40684, 40695, 40705, 40709, 40681, 0, {40713, 0, 0, 0}, 39, 39, { 1257, 500, 10029, 775, 0, ';' }},
+       {0x0028, 0x007F, 257, -1, 40736, 40739, 40745, 40758, 40762, 40736, 0, {0, 0, 0, 0}, 40, 40, { 1251, 20880, 10007, 866, 0, ';' }},
+       {0x0029, 0x007F, 257, -1, 40766, 40769, 40777, 40788, 40792, 40766, 0, {40796, 0, 0, 0}, 41, 41, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x002A, 0x007F, 257, -1, 40820, 40823, 40834, 40849, 35702, 40820, 0, {40853, 0, 0, 0}, 42, 42, { 1258, 500, 10000, 1258, 0, ',' }},
+       {0x002B, 0x007F, 257, -1, 40868, 40871, 40880, 40895, 40899, 40868, 0, {40903, 0, 0, 0}, 43, 43, { 0, 500, 2, 1, 0, ',' }},
+       {0x002C, 0x007F, 257, -1, 40933, 40936, 40948, 40960, 40964, 40933, 0, {40968, 0, 0, 0}, 44, 44, { 1254, 20905, 10081, 857, 0, ';' }},
+       {0x002D, 0x007F, 257, -1, 40987, 40990, 40997, 41005, 41009, 40987, 0, {41013, 0, 0, 0}, 45, 45, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x002F, 0x007F, 257, -1, 41033, 41036, 41047, 41068, 41072, 41033, 0, {41076, 0, 0, 0}, 46, 46, { 1251, 500, 10007, 866, 0, ';' }},
+       {0x0032, 0x007F, 257, -1, 41120, 41123, 41130, 41139, 41143, 41120, 0, {0, 0, 0, 0}, 47, 47, { 1252, 500, 10000, 850, 0, ',' }},
+       {0x0034, 0x007F, 257, -1, 41147, 41150, 41156, 41165, 41169, 41147, 0, {0, 0, 0, 0}, 48, 48, { 1252, 500, 10000, 850, 0, ',' }},
+       {0x0035, 0x007F, 257, -1, 41173, 41176, 41181, 41189, 41193, 41173, 0, {41197, 0, 0, 0}, 49, 49, { 1252, 500, 10000, 850, 0, ',' }},
+       {0x0036, 0x007F, 257, -1, 41218, 41221, 41221, 41231, 41235, 41218, 0, {41239, 0, 0, 0}, 50, 50, { 1252, 500, 10000, 850, 0, ',' }},
+       {0x0037, 0x007F, 257, -1, 41259, 41262, 41271, 41293, 41297, 41259, 0, {41301, 0, 0, 0}, 51, 51, { 0, 500, 2, 1, 0, ';' }},
+       {0x0038, 0x007F, 257, -1, 41366, 41369, 41377, 41387, 41391, 41366, 0, {0, 0, 0, 0}, 52, 52, { 1252, 20277, 10079, 850, 0, ';' }},
+       {0x0039, 0x007F, 257, -1, 41395, 41398, 41404, 41420, 41424, 41395, 0, {41428, 0, 0, 0}, 53, 53, { 0, 500, 2, 1, 0, ',' }},
+       {0x003A, 0x007F, 257, -1, 41481, 41484, 41492, 41498, 41502, 41481, 0, {41506, 0, 0, 0}, 54, 54, { 0, 500, 2, 1, 0, ',' }},
+       {0x003B, 0x007F, 257, -1, 41527, 41530, 41544, 41561, 41565, 41527, 0, {41569, 0, 0, 0}, 55, 55, { 1252, 20277, 10000, 850, 0, ';' }},
+       {0x003C, 0x007F, 257, -1, 41588, 41591, 41597, 41605, 41609, 41588, 0, {41613, 0, 0, 0}, 56, 56, { 1252, 500, 10000, 850, 0, ',' }},
+       {0x003E, 0x007F, 257, -1, 41634, 41637, 41643, 41657, 41661, 41634, 0, {41665, 0, 0, 0}, 57, 57, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x003F, 0x007F, 257, -1, 41682, 41685, 41692, 41712, 41716, 41682, 0, {41720, 0, 0, 0}, 58, 58, { 0, 500, 2, 1, 0, ';' }},
+       {0x0040, 0x007F, 257, -1, 41762, 41765, 41772, 41789, 41793, 41762, 0, {41797, 0, 0, 0}, 59, 59, { 1251, 20880, 10007, 866, 0, ';' }},
+       {0x0041, 0x007F, 257, -1, 41835, 41838, 41846, 41856, 41860, 41835, 0, {41864, 0, 0, 0}, 60, 60, { 1252, 500, 10000, 437, 0, ',' }},
+       {0x0043, 0x007F, 257, -1, 41885, 41888, 41894, 41905, 41909, 41885, 0, {41913, 0, 0, 0}, 61, 61, { 1254, 500, 10029, 857, 0, ';' }},
+       {0x0045, 0x007F, 257, -1, 41933, 41936, 41944, 41960, 41964, 41933, 0, {41968, 0, 0, 0}, 62, 62, { 0, 500, 2, 1, 0, ',' }},
+       {0x0046, 0x007F, 257, -1, 42033, 42036, 42044, 42063, 42067, 42033, 0, {42071, 0, 0, 0}, 63, 63, { 0, 500, 2, 1, 0, ',' }},
+       {0x0047, 0x007F, 257, -1, 42118, 42121, 42130, 42152, 42156, 42118, 0, {42160, 0, 0, 0}, 64, 64, { 0, 500, 2, 1, 0, ',' }},
+       {0x0048, 0x007F, 257, -1, 42216, 42219, 42225, 42241, 42245, 42216, 0, {0, 0, 0, 0}, 65, 65, { 0, 500, 2, 1, 0, ',' }},
+       {0x0049, 0x007F, 257, -1, 42249, 42252, 42258, 42274, 42278, 42249, 0, {42282, 0, 0, 0}, 66, 66, { 0, 500, 2, 1, 0, ',' }},
+       {0x004A, 0x007F, 257, -1, 42347, 42350, 42357, 42376, 42380, 42347, 0, {42384, 0, 0, 0}, 67, 67, { 0, 500, 2, 1, 0, ',' }},
+       {0x004B, 0x007F, 257, -1, 37865, 42449, 42457, 42473, 42477, 37865, 0, {42481, 0, 0, 0}, 68, 68, { 0, 500, 2, 1, 0, ',' }},
+       {0x004C, 0x007F, 257, -1, 42546, 42549, 42559, 42578, 42582, 42546, 0, {42586, 0, 0, 0}, 69, 69, { 0, 500, 2, 1, 0, ',' }},
+       {0x004D, 0x007F, 257, -1, 42630, 42633, 42642, 42664, 42668, 42630, 0, {42672, 0, 0, 0}, 70, 70, { 0, 500, 2, 1, 0, ',' }},
+       {0x004E, 0x007F, 257, -1, 42725, 42728, 42736, 42752, 2530, 42725, 0, {42756, 0, 0, 0}, 71, 71, { 0, 500, 2, 1, 0, ',' }},
+       {0x0050, 0x007F, 257, -1, 42818, 42821, 42831, 42844, 42848, 42818, 0, {42852, 0, 0, 0}, 72, 72, { 1251, 20880, 10007, 866, 0, ';' }},
+       {0x0051, 0x007F, 257, -1, 42884, 42887, 42895, 42920, 42924, 42884, 0, {0, 0, 0, 0}, 73, 73, { 0, 500, 2, 1, 0, ',' }},
+       {0x0052, 0x007F, 257, -1, 42928, 42931, 42937, 42945, 42949, 42928, 0, {42953, 0, 0, 0}, 74, 74, { 1252, 20285, 10000, 850, 0, ',' }},
+       {0x0053, 0x007F, 257, -1, 42969, 42972, 42978, 42994, 42998, 42969, 0, {43002, 0, 0, 0}, 75, 75, { 0, 500, 2, 1, 0, ',' }},
+       {0x0054, 0x007F, 257, -1, 43057, 43060, 43064, 43074, 43078, 43057, 0, {43082, 0, 0, 0}, 76, 76, { 0, 500, 2, 1, 0, ',' }},
+       {0x0056, 0x007F, 257, -1, 43128, 43131, 43140, 43147, 43151, 43128, 0, {39493, 0, 0, 0}, 77, 77, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x0057, 0x007F, 257, -1, 43155, 43159, 43167, 43186, 43155, 43155, 0, {0, 0, 0, 0}, 78, 78, { 0, 500, 2, 1, 0, ',' }},
+       {0x005B, 0x007F, 257, -1, 43190, 43193, 43201, 43217, 43221, 43190, 0, {43225, 0, 0, 0}, 79, 79, { 0, 500, 2, 1, 0, ',' }},
+       {0x005E, 0x007F, 257, -1, 8151, 43284, 43292, 43305, 43309, 8151, 0, {43313, 0, 0, 0}, 80, 80, { 0, 500, 2, 1, 0, ';' }},
+       {0x005F, 0x007F, 257, -1, 43358, 43362, 43386, 43396, 43358, 43358, 0, {0, 0, 0, 0}, 81, 81, { 1252, 20297, 10000, 850, 0, ';' }},
+       {0x0061, 0x007F, 257, -1, 1992, 43400, 43407, 43426, 43430, 1992, 0, {43434, 0, 0, 0}, 82, 82, { 0, 500, 2, 1, 0, ',' }},
+       {0x0063, 0x007F, 1024, -1, 43484, 43487, 43494, 43503, 43507, 43484, 0, {0, 0, 0, 0}, 83, 83, { 0, 500, 2, 1, 1, ';' }},
+       {0x0064, 0x007F, 257, -1, 43511, 43515, 43515, 43524, 43511, 43511, 0, {43528, 0, 0, 0}, 84, 84, { 1252, 500, 10000, 437, 0, ',' }},
+       {0x0068, 0x007F, 257, -1, 43551, 43554, 43554, 43560, 43564, 43551, 0, {0, 0, 0, 0}, 85, 85, { 1252, 37, 10000, 437, 0, ',' }},
+       {0x006A, 0x007F, 257, -1, 43568, 43571, 43578, 43593, 43597, 43568, 0, {0, 0, 0, 0}, 86, 86, { 1252, 37, 10000, 437, 0, ',' }},
+       {0x006C, 0x007F, 257, -1, 43601, 43605, 43620, 43637, 43601, 43601, 0, {0, 0, 0, 0}, 87, 87, { 1252, 500, 10000, 850, 0, ',' }},
+       {0x006F, 0x007F, 257, -1, 43641, 43644, 43656, 43668, 43672, 43641, 0, {43676, 0, 0, 0}, 88, 88, { 1252, 20277, 10000, 850, 0, ';' }},
+       {0x0070, 0x007F, 257, -1, 43703, 43706, 43706, 43711, 43715, 43703, 0, {0, 0, 0, 0}, 89, 89, { 1252, 37, 10000, 437, 0, ',' }},
+       {0x0078, 0x007F, 257, -1, 43719, 43722, 43733, 43743, 43747, 43719, 0, {43751, 0, 0, 0}, 90, 90, { 0, 500, 2, 1, 0, ',' }},
+       {0x007E, 0x007F, 257, -1, 43764, 43767, 43774, 43784, 43788, 43764, 0, {43792, 0, 0, 0}, 91, 91, { 1252, 20297, 10000, 850, 0, ';' }},
+       {0x0084, 0x007F, 257, -1, 43812, 43816, 43829, 43848, 43812, 43812, 0, {43852, 0, 0, 0}, 92, 92, { 1252, 20297, 10000, 850, 0, ';' }},
+       {0x0085, 0x007F, 257, -1, 43877, 43881, 43887, 43905, 43877, 43877, 0, {0, 0, 0, 0}, 93, 93, { 1251, 20880, 10007, 866, 0, ';' }},
+       {0x0087, 0x007F, 257, -1, 43909, 43912, 43912, 43924, 43928, 43909, 0, {0, 0, 0, 0}, 94, 94, { 1252, 37, 10000, 437, 0, ';' }},
+       {0x0091, 0x007F, 257, -1, 43932, 43935, 43951, 43961, 43965, 43932, 0, {43969, 0, 0, 0}, 95, 95, { 1252, 20285, 10000, 850, 0, ',' }},
+       {0x0401, 0x0001, 768, 95, 43994, 44000, 44022, 38641, 38645, 38616, 13750, {0, 0, 38649, 0}, 96, 96, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x0402, 0x0002, 257, 11, 44086, 44092, 44113, 38709, 38713, 38677, 44151, {38717, 0, 0, 0}, 97, 97, { 1251, 21025, 10007, 866, 0, ';' }},
+       {0x0403, 0x0003, 257, 31, 44154, 44160, 44176, 38778, 38782, 38759, 44194, {38786, 0, 0, 0}, 98, 98, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x0404, 0x7C04, 257, 107, 44197, 44203, 44225, 44241, 38852, 38856, 44245, {44248, 0, 0, 0}, 99, 99, { 950, 500, 10002, 950, 0, ',' }},
+       {0x0405, 0x0005, 257, 23, 44255, 44261, 44284, 38914, 38918, 38895, 44314, {38922, 0, 0, 0}, 100, 100, { 1250, 500, 10029, 852, 0, ';' }},
+       {0x0406, 0x0006, 257, 25, 44317, 44323, 44340, 38964, 38968, 38948, 44356, {38972, 0, 0, 0}, 101, 101, { 1252, 20277, 10000, 850, 0, ';' }},
+       {0x0407, 0x0007, 257, 24, 44359, 44365, 44382, 39011, 39015, 38993, 44404, {39019, 0, 0, 0}, 102, 102, { 1252, 20273, 10000, 850, 0, ';' }},
+       {0x0408, 0x0008, 257, 39, 44407, 44413, 44428, 39070, 39074, 39044, 44460, {39078, 0, 0, 0}, 103, 103, { 1253, 20273, 10006, 737, 0, ';' }},
+       {0x0409, 0x0009, 257, 109, 44463, 44469, 44469, 39131, 39135, 39120, 44493, {39139, 0, 0, 0}, 104, 104, { 1252, 37, 10000, 437, 0, ',' }},
+       {0x040B, 0x000B, 257, 33, 44496, 44502, 44520, 39225, 39229, 39208, 44534, {39233, 0, 0, 0}, 105, 105, { 1252, 20278, 10000, 850, 0, ';' }},
+       {0x040C, 0x000C, 257, 35, 44537, 44543, 44559, 39278, 39282, 39258, 44578, {39286, 0, 0, 0}, 106, 106, { 1252, 20297, 10000, 850, 0, ';' }},
+       {0x040D, 0x000D, 257, 47, 44581, 44587, 44603, 39329, 39333, 39308, 44627, {39337, 0, 0, 0}, 107, 107, { 1255, 500, 10005, 862, 1, ',' }},
+       {0x040E, 0x000E, 257, 44, 44630, 44636, 44656, 39390, 39394, 39370, 44679, {39398, 0, 0, 0}, 108, 108, { 1250, 500, 10029, 852, 0, ';' }},
+       {0x040F, 0x000F, 257, 51, 44682, 44688, 44708, 39437, 39441, 39414, 44728, {39445, 0, 0, 0}, 109, 109, { 1252, 20871, 10079, 850, 0, ';' }},
+       {0x0410, 0x0010, 257, 52, 44731, 44737, 44753, 39485, 39489, 39465, 44771, {39493, 0, 0, 0}, 110, 110, { 1252, 20280, 10000, 850, 0, ';' }},
+       {0x0411, 0x0011, 257, 55, 44774, 44780, 44797, 39537, 39541, 39515, 44816, {39545, 0, 0, 0}, 111, 111, { 932, 20290, 10001, 932, 0, ',' }},
+       {0x0412, 0x0012, 257, 58, 44819, 44825, 44846, 39592, 39596, 39572, 44871, {39600, 0, 0, 0}, 112, 112, { 949, 20833, 10003, 949, 0, ',' }},
+       {0x0413, 0x0013, 257, 77, 44874, 44880, 44900, 39630, 39634, 39610, 44923, {39638, 0, 0, 0}, 113, 113, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x0414, 0x7C14, 257, 78, 44926, 44932, 44959, 39679, 39683, 39687, 44981, {38972, 0, 0, 0}, 114, 114, { 1252, 20277, 10000, 850, 0, ';' }},
+       {0x0415, 0x0015, 257, 86, 44984, 44990, 45006, 39707, 39711, 39690, 45022, {39715, 0, 0, 0}, 115, 115, { 1250, 20880, 10029, 852, 0, ';' }},
+       {0x0416, 0x0016, 257, 14, 45025, 45031, 45051, 39764, 39768, 39739, 45071, {39772, 0, 0, 0}, 116, 116, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x0417, 0x0017, 257, 18, 45074, 45080, 45102, 39816, 39820, 39795, 13753, {39824, 0, 0, 0}, 117, 117, { 1252, 20273, 10000, 850, 0, ';' }},
+       {0x0418, 0x0018, 257, 91, 45121, 45127, 45146, 39865, 39869, 39844, 45166, {39873, 0, 0, 0}, 118, 118, { 1250, 20880, 10029, 852, 0, ';' }},
+       {0x0419, 0x0019, 257, 93, 45169, 45175, 45192, 39918, 39922, 39892, 45222, {39926, 0, 0, 0}, 119, 119, { 1251, 20880, 10007, 866, 0, ';' }},
+       {0x041A, 0x001A, 257, 43, 45225, 45231, 45250, 39993, 39997, 39972, 45270, {40001, 0, 0, 0}, 120, 120, { 1250, 500, 10082, 852, 0, ';' }},
+       {0x041B, 0x001B, 257, 99, 45273, 45279, 45297, 40043, 40047, 12799, 45321, {40051, 0, 0, 0}, 121, 121, { 1250, 20880, 10029, 852, 0, ';' }},
+       {0x041C, 0x001C, 257, 2, 45324, 45330, 45349, 40093, 40097, 40075, 45367, {40101, 0, 0, 0}, 122, 122, { 1250, 20880, 10029, 852, 0, ';' }},
+       {0x041D, 0x001D, 257, 96, 45370, 45376, 45393, 40140, 40144, 40121, 45411, {38972, 0, 0, 0}, 123, 123, { 1252, 20278, 10000, 850, 0, ';' }},
+       {0x041E, 0x001E, 512, 102, 45414, 45420, 45436, 40166, 40170, 40148, 45458, {0, 40174, 0, 0}, 124, 124, { 874, 20838, 10021, 874, 0, ',' }},
+       {0x041F, 0x001F, 257, 105, 45461, 45467, 45484, 40222, 40226, 12808, 45504, {40230, 0, 0, 0}, 125, 125, { 1254, 20905, 10081, 857, 0, ';' }},
+       {0x0420, 0x0020, 257, 85, 45507, 45513, 45529, 40261, 40265, 40244, 45555, {40269, 0, 0, 0}, 126, 126, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x0421, 0x0021, 257, 45, 45558, 45564, 45587, 40330, 40334, 40299, 45616, {40338, 0, 0, 0}, 127, 127, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x0422, 0x0022, 257, 108, 45619, 45625, 45645, 40391, 40395, 40357, 45683, {40399, 0, 0, 0}, 128, 128, { 1251, 500, 10017, 866, 0, ';' }},
+       {0x0423, 0x0023, 257, 15, 45686, 45692, 45713, 40480, 40484, 40445, 45753, {40488, 0, 0, 0}, 129, 129, { 1251, 500, 10007, 866, 0, ';' }},
+       {0x0424, 0x0024, 257, 98, 45756, 45762, 45783, 40557, 40561, 40530, 45809, {40565, 0, 0, 0}, 130, 130, { 1250, 20880, 10029, 852, 0, ';' }},
+       {0x0425, 0x0025, 257, 29, 45812, 45818, 45837, 40605, 40609, 40587, 45851, {40613, 0, 0, 0}, 131, 131, { 1257, 500, 10029, 775, 0, ';' }},
+       {0x0426, 0x0026, 257, 66, 45854, 45860, 45877, 40654, 40658, 40633, 45897, {40662, 0, 0, 0}, 132, 132, { 1257, 500, 10029, 775, 0, ';' }},
+       {0x0427, 0x0027, 257, 64, 45900, 45906, 45929, 40705, 40709, 40681, 45949, {40713, 0, 0, 0}, 133, 133, { 1257, 500, 10029, 775, 0, ';' }},
+       {0x0428, 0x7C28, 257, 103, 45952, 45963, 45992, 40758, 40762, 40736, 46028, {0, 0, 0, 0}, 134, 134, { 1251, 20880, 10007, 866, 0, ';' }},
+       {0x0429, 0x0029, 257, 50, 46031, 46037, 46052, 40788, 40792, 40766, 46076, {40796, 0, 0, 0}, 135, 135, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x042A, 0x002A, 257, 113, 46079, 46085, 46106, 40849, 35702, 40820, 46134, {40853, 0, 0, 0}, 136, 136, { 1258, 500, 10000, 1258, 0, ',' }},
+       {0x042B, 0x002B, 257, 3, 46137, 46143, 46162, 40895, 40899, 40868, 1929, {40903, 0, 0, 0}, 137, 137, { 0, 500, 2, 1, 0, ',' }},
+       {0x042C, 0x782C, 257, 7, 46196, 46207, 46239, 40960, 40964, 40933, 46265, {40968, 0, 0, 0}, 138, 138, { 1254, 20905, 10081, 857, 0, ';' }},
+       {0x042D, 0x002D, 257, 31, 46268, 46274, 46289, 41005, 41009, 40987, 44194, {41013, 0, 0, 0}, 139, 139, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x042F, 0x002F, 257, 71, 46308, 46314, 46337, 41068, 41072, 41033, 46381, {41076, 0, 0, 0}, 140, 140, { 1251, 500, 10007, 866, 0, ';' }},
+       {0x0432, 0x0032, 257, 115, 46384, 46390, 41130, 41139, 41143, 41120, 46412, {0, 0, 0, 0}, 141, 141, { 1252, 500, 10000, 850, 0, ',' }},
+       {0x0434, 0x0034, 257, 115, 46415, 46421, 41156, 41165, 41169, 41147, 46412, {0, 0, 0, 0}, 142, 142, { 1252, 500, 10000, 850, 0, ',' }},
+       {0x0435, 0x0035, 257, 115, 46442, 46448, 46468, 41189, 41193, 41173, 46412, {41197, 0, 0, 0}, 143, 143, { 1252, 500, 10000, 850, 0, ',' }},
+       {0x0436, 0x0036, 257, 115, 46493, 46499, 46524, 41231, 41235, 41218, 46412, {41239, 0, 0, 0}, 144, 144, { 1252, 500, 10000, 850, 0, ',' }},
+       {0x0437, 0x0037, 257, 37, 46548, 46554, 46573, 41293, 41297, 41259, 46628, {41301, 0, 0, 0}, 145, 145, { 0, 500, 2, 1, 0, ';' }},
+       {0x0438, 0x0038, 257, 34, 46631, 46637, 46661, 41387, 41391, 41366, 46682, {0, 0, 0, 0}, 146, 146, { 1252, 20277, 10079, 850, 0, ';' }},
+       {0x0439, 0x0039, 257, 48, 46685, 46691, 46705, 41420, 41424, 41395, 46736, {41428, 0, 0, 0}, 147, 147, { 0, 500, 2, 1, 0, ',' }},
+       {0x043A, 0x003A, 257, 73, 46739, 46745, 46761, 41498, 41502, 41481, 46775, {41506, 0, 0, 0}, 148, 148, { 0, 500, 2, 1, 0, ',' }},
+       {0x043B, 0x003B, 257, 78, 46778, 46784, 46807, 41561, 41565, 41527, 44981, {41569, 0, 0, 0}, 149, 149, { 1252, 20277, 10000, 850, 0, ';' }},
+       {0x0441, 0x0041, 257, 56, 46832, 46838, 46854, 41856, 41860, 41835, 46872, {41864, 0, 0, 0}, 150, 150, { 1252, 500, 10000, 437, 0, ',' }},
+       {0x0443, 0x7C43, 257, 111, 46875, 46886, 46912, 41905, 41909, 41885, 46938, {41913, 0, 0, 0}, 151, 151, { 1254, 500, 10029, 857, 0, ';' }},
+       {0x0445, 0x0045, 257, 48, 46941, 46947, 46963, 41960, 41964, 41933, 46736, {41968, 0, 0, 0}, 152, 152, { 0, 500, 2, 1, 0, ',' }},
+       {0x0447, 0x0047, 257, 48, 46994, 47000, 47017, 42152, 42156, 42118, 46736, {42160, 0, 0, 0}, 153, 153, { 0, 500, 2, 1, 0, ',' }},
+       {0x0448, 0x0048, 257, 48, 47054, 47060, 47074, 42241, 42245, 42216, 46736, {0, 0, 0, 0}, 154, 154, { 0, 500, 2, 1, 0, ',' }},
+       {0x0449, 0x0049, 257, 48, 47105, 47111, 47125, 42274, 42278, 42249, 46736, {42282, 0, 0, 0}, 155, 155, { 0, 500, 2, 1, 0, ',' }},
+       {0x044A, 0x004A, 257, 48, 47165, 47171, 47186, 42376, 42380, 42347, 46736, {42384, 0, 0, 0}, 156, 156, { 0, 500, 2, 1, 0, ',' }},
+       {0x044B, 0x004B, 257, 48, 47233, 47239, 47255, 42473, 42477, 37865, 46736, {42481, 0, 0, 0}, 157, 157, { 0, 500, 2, 1, 0, ',' }},
+       {0x044C, 0x004C, 257, 48, 47286, 47292, 47310, 42578, 42582, 42546, 46736, {42586, 0, 0, 0}, 158, 158, { 0, 500, 2, 1, 0, ',' }},
+       {0x044D, 0x004D, 257, 48, 47350, 47356, 47373, 42664, 42668, 42630, 46736, {42672, 0, 0, 0}, 159, 159, { 0, 500, 2, 1, 0, ',' }},
+       {0x044E, 0x004E, 257, 48, 47410, 47416, 47432, 42752, 2530, 42725, 46736, {42756, 0, 0, 0}, 160, 160, { 0, 500, 2, 1, 0, ',' }},
+       {0x0451, 0x0051, 257, 20, 47463, 47469, 47485, 42920, 42924, 42884, 13832, {0, 0, 0, 0}, 161, 161, { 0, 500, 2, 1, 0, ',' }},
+       {0x0452, 0x0052, 257, 36, 47531, 47537, 47560, 42945, 42949, 42928, 47587, {42953, 0, 0, 0}, 162, 162, { 1252, 20285, 10000, 850, 0, ',' }},
+       {0x0453, 0x0053, 257, 57, 47590, 47596, 47613, 42994, 42998, 42969, 47653, {43002, 0, 0, 0}, 163, 163, { 0, 500, 2, 1, 0, ',' }},
+       {0x0454, 0x0054, 257, 60, 47656, 47662, 47673, 43074, 43078, 43057, 47695, {43082, 0, 0, 0}, 164, 164, { 0, 500, 2, 1, 0, ',' }},
+       {0x0456, 0x0056, 257, 31, 47698, 47704, 47721, 43147, 43151, 43128, 44194, {39493, 0, 0, 0}, 165, 165, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x0457, 0x0057, 257, 48, 47738, 47745, 47761, 43186, 43155, 43155, 46736, {0, 0, 0, 0}, 166, 166, { 0, 500, 2, 1, 0, ',' }},
+       {0x045B, 0x005B, 257, 63, 47795, 47801, 47821, 43217, 43221, 43190, 47871, {43225, 0, 0, 0}, 167, 167, { 0, 500, 2, 1, 0, ',' }},
+       {0x045E, 0x005E, 257, 32, 47874, 47880, 47899, 43305, 43309, 8151, 47930, {43313, 0, 0, 0}, 168, 168, { 0, 500, 2, 1, 0, ';' }},
+       {0x0461, 0x0061, 257, 79, 47933, 47939, 47954, 43426, 43430, 1992, 47991, {43434, 0, 0, 0}, 169, 169, { 0, 500, 2, 1, 0, ',' }},
+       {0x0463, 0x0063, 1024, 1, 47994, 48000, 48021, 43503, 43507, 43484, 48051, {0, 0, 0, 0}, 170, 170, { 0, 500, 2, 1, 1, ';' }},
+       {0x0464, 0x0064, 257, 84, 48054, 48061, 48084, 43524, 43511, 43511, 48105, {43528, 0, 0, 0}, 171, 171, { 1252, 500, 10000, 437, 0, ',' }},
+       {0x0468, 0x7C68, 257, 75, 48108, 48119, 48142, 43560, 43564, 43551, 48159, {0, 0, 0, 0}, 172, 172, { 1252, 37, 10000, 437, 0, ',' }},
+       {0x046A, 0x006A, 257, 75, 48162, 48168, 48185, 43593, 43597, 43568, 48159, {0, 0, 0, 0}, 173, 173, { 1252, 37, 10000, 437, 0, ',' }},
+       {0x046C, 0x006C, 257, 115, 48231, 48238, 43620, 43637, 43601, 43601, 46412, {0, 0, 0, 0}, 174, 174, { 1252, 500, 10000, 850, 0, ',' }},
+       {0x046F, 0x006F, 257, 38, 48268, 48274, 48298, 43668, 43672, 43641, 48329, {43676, 0, 0, 0}, 175, 175, { 1252, 20277, 10000, 850, 0, ';' }},
+       {0x0470, 0x0070, 257, 75, 48332, 48338, 48338, 43711, 43715, 43703, 48159, {0, 0, 0, 0}, 176, 176, { 1252, 37, 10000, 437, 0, ',' }},
+       {0x0478, 0x0078, 257, 20, 48353, 48359, 48378, 43743, 43747, 43719, 13832, {43751, 0, 0, 0}, 177, 177, { 0, 500, 2, 1, 0, ',' }},
+       {0x047E, 0x007E, 257, 35, 48397, 48403, 48419, 43784, 43788, 43764, 44578, {43792, 0, 0, 0}, 178, 178, { 1252, 20297, 10000, 850, 0, ';' }},
+       {0x0485, 0x0085, 257, 93, 48438, 48445, 43887, 43905, 43877, 43877, 45222, {0, 0, 0, 0}, 179, 179, { 1251, 20880, 10007, 866, 0, ';' }},
+       {0x0487, 0x0087, 257, 94, 48460, 48466, 48466, 43924, 43928, 43909, 48487, {0, 0, 0, 0}, 180, 180, { 1252, 37, 10000, 437, 0, ';' }},
+       {0x0491, 0x0091, 257, 36, 48490, 48496, 48529, 43961, 43965, 43932, 47587, {43969, 0, 0, 0}, 181, 181, { 1252, 20285, 10000, 850, 0, ',' }},
+       {0x0801, 0x0001, 257, 49, 48565, 48571, 48585, 48615, 38645, 38616, 48619, {48622, 0, 0, 0}, 182, 182, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x0804, 0x0004, 257, 20, 48654, 38874, 48660, 38848, 38852, 38856, 13832, {38859, 0, 0, 0}, 183, 183, { 936, 500, 10008, 936, 0, ',' }},
+       {0x0807, 0x0007, 257, 18, 48676, 48682, 48703, 48721, 39015, 38993, 13753, {39019, 0, 0, 0}, 184, 184, { 1252, 20273, 10000, 850, 0, ';' }},
+       {0x0809, 0x0009, 257, 36, 48725, 48731, 48731, 48756, 39135, 39120, 47587, {39139, 0, 0, 0}, 185, 185, { 1252, 20285, 10000, 850, 0, ',' }},
+       {0x080A, 0x000A, 257, 74, 48760, 48766, 48783, 48802, 39182, 39158, 48806, {39493, 0, 0, 0}, 186, 186, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x080C, 0x000C, 257, 10, 48809, 48815, 48832, 48853, 39282, 39258, 48857, {39286, 0, 0, 0}, 187, 187, { 1252, 20297, 10000, 850, 0, ';' }},
+       {0x0810, 0x0010, 257, 18, 48860, 48866, 48888, 48908, 39489, 39465, 13753, {39493, 0, 0, 0}, 188, 188, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x0813, 0x0013, 257, 10, 48912, 48918, 48934, 48955, 39634, 39610, 48857, {39638, 0, 0, 0}, 189, 189, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x0814, 0x7814, 257, 78, 48959, 48965, 48992, 49008, 49012, 49016, 44981, {38972, 0, 0, 0}, 190, 190, { 1252, 20277, 10000, 850, 0, ';' }},
+       {0x0816, 0x0016, 257, 88, 49019, 49025, 49047, 49069, 39768, 39739, 49073, {39772, 0, 0, 0}, 191, 191, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x081D, 0x001D, 257, 33, 49076, 49082, 49100, 49118, 40144, 40121, 44534, {38972, 0, 0, 0}, 192, 192, { 1252, 20278, 10000, 850, 0, ';' }},
+       {0x082C, 0x742C, 257, 7, 49122, 49133, 46239, 49168, 40964, 40933, 46265, {40968, 0, 0, 0}, 193, 193, { 1251, 20880, 10007, 866, 0, ';' }},
+       {0x083C, 0x003C, 257, 46, 49172, 49178, 49194, 41605, 41609, 41588, 49210, {41613, 0, 0, 0}, 194, 194, { 1252, 500, 10000, 850, 0, ',' }},
+       {0x0843, 0x7843, 257, 111, 49213, 49224, 46912, 41905, 41909, 41885, 46938, {49253, 0, 0, 0}, 195, 195, { 1251, 20880, 10007, 866, 0, ';' }},
+       {0x0845, 0x0045, 257, 9, 49291, 49297, 49318, 49361, 41964, 41933, 49365, {41968, 0, 0, 0}, 196, 196, { 0, 500, 2, 1, 0, ',' }},
+       {0x0C01, 0x0001, 257, 30, 49368, 49374, 49389, 49413, 38645, 38616, 49417, {48622, 0, 0, 0}, 197, 197, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x0C04, 0x7C04, 257, 41, 49420, 49426, 49469, 49506, 38852, 38856, 49510, {44248, 0, 0, 0}, 198, 198, { 950, 500, 10002, 950, 0, ',' }},
+       {0x0C07, 0x0007, 257, 5, 49513, 49519, 49536, 49558, 39015, 38993, 49562, {39019, 0, 0, 0}, 199, 199, { 1252, 20273, 10000, 850, 0, ';' }},
+       {0x0C09, 0x0009, 257, 6, 49565, 49571, 49571, 49591, 39135, 39120, 49595, {39139, 0, 0, 0}, 200, 200, { 1252, 500, 10000, 850, 0, ',' }},
+       {0x0C0A, 0x000A, 257, 31, 49598, 49604, 49620, 49639, 39182, 39158, 44194, {39186, 0, 0, 0}, 201, 201, { 1252, 20284, 10000, 850, 0, ';' }},
+       {0x0C0C, 0x000C, 257, 17, 49643, 49649, 49665, 49684, 39282, 39258, 49688, {49691, 0, 0, 0}, 202, 202, { 1252, 20297, 10000, 850, 0, ';' }},
+       {0x0C3B, 0x003B, 257, 33, 49713, 49719, 49743, 49769, 49773, 41527, 44534, {41569, 0, 0, 0}, 203, 203, { 1252, 20278, 10000, 850, 0, ';' }},
+       {0x1001, 0x0001, 257, 67, 49777, 49783, 49798, 49826, 38645, 38616, 49830, {48622, 0, 0, 0}, 204, 204, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x1004, 0x0004, 257, 97, 49833, 49839, 49871, 49890, 38852, 38856, 49894, {38859, 0, 0, 0}, 205, 205, { 936, 500, 10008, 936, 0, ',' }},
+       {0x1007, 0x0007, 257, 65, 49897, 49903, 49923, 49943, 39015, 38993, 49947, {39019, 0, 0, 0}, 206, 206, { 1252, 20273, 10000, 850, 0, ';' }},
+       {0x1009, 0x0009, 257, 17, 49950, 49956, 49956, 49973, 39135, 39120, 49688, {39139, 0, 0, 0}, 207, 207, { 1252, 37, 10000, 850, 0, ',' }},
+       {0x100A, 0x000A, 257, 40, 49977, 49983, 50003, 50024, 39182, 39158, 50028, {39186, 0, 0, 0}, 208, 208, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x100C, 0x000C, 257, 18, 50031, 50037, 50058, 50077, 39282, 39258, 13753, {39286, 0, 0, 0}, 209, 209, { 1252, 20297, 10000, 850, 0, ';' }},
+       {0x101A, 0x001A, 257, 8, 50081, 50087, 50121, 50152, 50156, 39972, 50160, {40001, 0, 0, 0}, 210, 210, { 1250, 870, 10082, 852, 0, ';' }},
+       {0x1401, 0x0001, 257, 27, 50163, 50169, 50186, 50218, 38645, 38616, 50222, {48622, 0, 0, 0}, 211, 211, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x1404, 0x7C04, 257, 72, 50225, 50231, 50270, 50307, 38852, 38856, 50311, {44248, 0, 0, 0}, 212, 212, { 950, 500, 10002, 950, 0, ',' }},
+       {0x1407, 0x0007, 257, 62, 50314, 50320, 50343, 50367, 39015, 38993, 50371, {39019, 0, 0, 0}, 213, 213, { 1252, 20273, 10000, 850, 0, ';' }},
+       {0x1409, 0x0009, 257, 80, 50374, 50380, 50380, 50402, 39135, 39120, 50406, {39139, 0, 0, 0}, 214, 214, { 1252, 500, 10000, 850, 0, ',' }},
+       {0x140A, 0x000A, 257, 22, 50409, 50415, 50436, 50458, 39182, 39158, 50462, {39186, 0, 0, 0}, 215, 215, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x140C, 0x000C, 257, 65, 50465, 50471, 50491, 50514, 39282, 39258, 49947, {39286, 0, 0, 0}, 216, 216, { 1252, 20297, 10000, 850, 0, ';' }},
+       {0x141A, 0x681A, 257, 8, 50518, 50529, 50569, 50600, 50604, 50608, 50160, {50611, 0, 0, 0}, 217, 217, { 1250, 870, 10082, 852, 0, ';' }},
+       {0x1801, 0x0001, 257, 68, 50634, 50640, 50657, 50687, 38645, 38616, 50691, {48622, 0, 0, 0}, 218, 218, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x1809, 0x0009, 257, 46, 50694, 50700, 50700, 50718, 39135, 39120, 49210, {39139, 0, 0, 0}, 219, 219, { 1252, 500, 10000, 850, 0, ',' }},
+       {0x180A, 0x000A, 257, 82, 50722, 50728, 50745, 50764, 39182, 39158, 50768, {39186, 0, 0, 0}, 220, 220, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x180C, 0x000C, 257, 69, 50771, 50777, 50793, 50812, 39282, 39258, 50816, {39286, 0, 0, 0}, 221, 221, { 1252, 20297, 10000, 850, 0, ';' }},
+       {0x181A, 0x701A, 257, 8, 50819, 50830, 50870, 50922, 50926, 50930, 50160, {50611, 0, 0, 0}, 222, 222, { 1250, 870, 10082, 852, 0, ';' }},
+       {0x1C01, 0x0001, 257, 104, 50933, 50939, 50956, 50982, 38645, 38616, 50986, {48622, 0, 0, 0}, 223, 223, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x1C09, 0x0009, 257, 115, 50989, 50995, 50995, 51018, 39135, 39120, 46412, {39139, 0, 0, 0}, 224, 224, { 1252, 500, 10000, 437, 0, ',' }},
+       {0x1C0A, 0x000A, 257, 26, 51022, 51028, 51057, 51090, 39182, 39158, 51094, {39186, 0, 0, 0}, 225, 225, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x1C1A, 0x6C1A, 257, 8, 51097, 51108, 50870, 51151, 51155, 50930, 50160, {41076, 0, 0, 0}, 226, 226, { 1251, 21025, 10007, 855, 0, ';' }},
+       {0x2001, 0x0001, 257, 81, 51159, 51165, 51179, 51207, 38645, 38616, 51211, {48622, 0, 0, 0}, 227, 227, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x2009, 0x0009, 257, 53, 51214, 51220, 51220, 51238, 39135, 39120, 51242, {39139, 0, 0, 0}, 228, 228, { 1252, 500, 10000, 850, 0, ',' }},
+       {0x200A, 0x000A, 257, 112, 51245, 51251, 51271, 51292, 39182, 39158, 51296, {39186, 0, 0, 0}, 229, 229, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x201A, 0x641A, 257, 8, 51299, 51310, 50569, 51353, 51357, 50608, 50160, {41076, 0, 0, 0}, 230, 230, { 1251, 870, 10082, 855, 0, ';' }},
+       {0x2401, 0x0001, 257, 114, 51361, 51367, 51382, 51410, 38645, 38616, 51414, {48622, 0, 0, 0}, 231, 231, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x240A, 0x000A, 257, 21, 51417, 51423, 51442, 51462, 39182, 39158, 51466, {39186, 0, 0, 0}, 232, 232, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x241A, 0x701A, 257, 92, 51469, 51480, 51504, 51532, 2239, 50930, 51536, {50611, 0, 0, 0}, 233, 233, { 1250, 500, 10029, 852, 0, ';' }},
+       {0x2801, 0x0001, 257, 101, 51539, 51545, 51560, 51588, 38645, 38616, 51592, {48622, 0, 0, 0}, 234, 234, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x2809, 0x0009, 257, 16, 51595, 51601, 51601, 51618, 39135, 39120, 51622, {39139, 0, 0, 0}, 235, 235, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x280A, 0x000A, 257, 83, 51625, 51631, 51646, 51663, 39182, 39158, 51667, {39186, 0, 0, 0}, 236, 236, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x281A, 0x6C1A, 257, 92, 51670, 51681, 51504, 51708, 2239, 50930, 51536, {41076, 0, 0, 0}, 237, 237, { 1251, 21025, 10007, 855, 0, ';' }},
+       {0x2C01, 0x0001, 257, 54, 51712, 51718, 51734, 51764, 38645, 38616, 51768, {48622, 0, 0, 0}, 238, 238, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x2C09, 0x0009, 257, 106, 51771, 51777, 51777, 51807, 39135, 39120, 51811, {39139, 0, 0, 0}, 239, 239, { 1252, 500, 10000, 850, 0, ';' }},
+       {0x2C0A, 0x000A, 257, 4, 51814, 51820, 51840, 51861, 39182, 39158, 51865, {39186, 0, 0, 0}, 240, 240, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x2C1A, 0x701A, 257, 70, 51868, 51879, 51907, 51940, 2239, 50930, 51944, {50611, 0, 0, 0}, 241, 241, { 1250, 500, 10029, 852, 0, ';' }},
+       {0x3001, 0x0001, 257, 61, 51947, 51953, 51970, 51998, 38645, 38616, 52002, {48622, 0, 0, 0}, 242, 242, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x3009, 0x0009, 257, 116, 52005, 52011, 52011, 52030, 39135, 39120, 52034, {39139, 0, 0, 0}, 243, 243, { 1252, 500, 10000, 437, 0, ',' }},
+       {0x300A, 0x000A, 257, 28, 52037, 52043, 52061, 52080, 39182, 39158, 52084, {39186, 0, 0, 0}, 244, 244, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x301A, 0x6C1A, 257, 70, 52087, 52098, 51907, 52129, 2239, 50930, 51944, {41076, 0, 0, 0}, 245, 245, { 1251, 21025, 10007, 855, 0, ';' }},
+       {0x3401, 0x0001, 257, 59, 52133, 52139, 52155, 52185, 38645, 38616, 52189, {48622, 0, 0, 0}, 246, 246, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x3409, 0x0009, 257, 84, 52192, 52198, 52198, 52220, 39135, 39120, 48105, {39139, 0, 0, 0}, 247, 247, { 1252, 500, 10000, 437, 0, ',' }},
+       {0x340A, 0x000A, 257, 19, 52224, 52230, 52246, 52263, 39182, 39158, 52267, {39186, 0, 0, 0}, 248, 248, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x3801, 0x0001, 257, 0, 52270, 52276, 52306, 52370, 38645, 38616, 52374, {48622, 0, 0, 0}, 249, 249, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x380A, 0x000A, 257, 110, 52377, 52383, 52401, 52420, 39182, 39158, 52424, {39186, 0, 0, 0}, 250, 250, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x3C01, 0x0001, 257, 12, 52427, 52433, 52450, 52482, 38645, 38616, 52486, {48622, 0, 0, 0}, 251, 251, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x3C0A, 0x000A, 257, 89, 52489, 52495, 52514, 52534, 39182, 39158, 52538, {39186, 0, 0, 0}, 252, 252, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x4001, 0x0001, 257, 90, 52541, 52547, 52562, 52586, 38645, 38616, 52590, {48622, 0, 0, 0}, 253, 253, { 1256, 20420, 10004, 720, 1, ';' }},
+       {0x4009, 0x0009, 257, 48, 52593, 52599, 52599, 52615, 39135, 39120, 46736, {39139, 0, 0, 0}, 254, 254, { 1252, 37, 10000, 437, 0, ',' }},
+       {0x400A, 0x000A, 257, 13, 52619, 52625, 52643, 52662, 39182, 39158, 52666, {39186, 0, 0, 0}, 255, 255, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x440A, 0x000A, 257, 100, 52669, 52675, 52697, 52720, 39182, 39158, 52724, {39186, 0, 0, 0}, 256, 256, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x4809, 0x0009, 257, 97, 52727, 52733, 52733, 52753, 39135, 39120, 49894, {39139, 0, 0, 0}, 257, 257, { 1252, 37, 10000, 437, 0, ',' }},
+       {0x480A, 0x000A, 257, 42, 52757, 52763, 52782, 52802, 39182, 39158, 52806, {39186, 0, 0, 0}, 258, 258, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x4C0A, 0x000A, 257, 76, 52809, 52815, 52835, 52856, 39182, 39158, 52860, {39186, 0, 0, 0}, 259, 259, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x500A, 0x000A, 257, 87, 52863, 52869, 52891, 52914, 39182, 39158, 52918, {39186, 0, 0, 0}, 260, 260, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x540A, 0x000A, 257, 109, 52921, 52927, 52951, 52977, 39182, 39158, 44493, {39186, 0, 0, 0}, 261, 261, { 1252, 20284, 10000, 850, 0, ',' }},
+       {0x641A, 0x781A, 257, -1, 52981, 52989, 53008, 51353, 51357, 50608, 0, {41076, 0, 0, 0}, 262, 262, { 1251, 870, 10082, 855, 0, ';' }},
+       {0x681A, 0x781A, 257, -1, 53017, 53025, 53008, 50600, 50604, 50608, 0, {50611, 0, 0, 0}, 263, 263, { 1250, 870, 10082, 852, 0, ';' }},
+       {0x6C1A, 0x7C1A, 257, -1, 53041, 53049, 53068, 51708, 2239, 50930, 0, {41076, 0, 0, 0}, 264, 264, { 1251, 21025, 10007, 855, 0, ';' }},
+       {0x701A, 0x7C1A, 257, -1, 53081, 53089, 53068, 51532, 2239, 50930, 0, {50611, 0, 0, 0}, 265, 265, { 1250, 500, 10029, 852, 0, ';' }},
+       {0x742C, 0x002C, 257, -1, 53105, 53113, 40948, 49168, 40964, 40933, 0, {40968, 0, 0, 0}, 266, 266, { 1251, 20880, 10007, 866, 0, ';' }},
+       {0x7804, 0x007F, 257, -1, 38856, 38874, 38841, 38848, 38852, 38856, 0, {38859, 0, 0, 0}, 267, 267, { 936, 500, 10008, 936, 0, ',' }},
+       {0x7814, 0x0014, 257, -1, 49016, 53136, 53154, 49008, 49012, 49016, 0, {38972, 0, 0, 0}, 268, 268, { 1252, 20277, 10000, 850, 0, ';' }},
+       {0x781A, 0x007F, 257, -1, 50608, 53162, 53008, 50600, 50604, 50608, 0, {50611, 0, 0, 0}, 269, 269, { 1250, 870, 10082, 852, 0, ';' }},
+       {0x782C, 0x002C, 257, -1, 53170, 53178, 40948, 40960, 40964, 40933, 0, {40968, 0, 0, 0}, 270, 270, { 1254, 20905, 10081, 857, 0, ';' }},
+       {0x7843, 0x0043, 257, -1, 53198, 53206, 41894, 41905, 41909, 41885, 0, {49253, 0, 0, 0}, 271, 271, { 1251, 20880, 10007, 866, 0, ';' }},
+       {0x7850, 0x0050, 257, -1, 53223, 53231, 42831, 53252, 42848, 42818, 0, {42852, 0, 0, 0}, 272, 272, { 1251, 20880, 10007, 866, 0, ';' }},
+       {0x7C04, 0x7804, 257, -1, 53256, 44203, 38841, 44241, 38852, 38856, 0, {44248, 0, 0, 0}, 273, 273, { 950, 500, 10002, 950, 0, ',' }},
+       {0x7C04, 0x7C04, 257, -1, 53264, 53271, 38841, 44241, 38852, 38856, 0, {44248, 0, 0, 0}, 274, 274, { 950, 500, 10002, 950, 0, ',' }},
+       {0x7C14, 0x0014, 257, -1, 39687, 53300, 53318, 39679, 39683, 39687, 0, {38972, 0, 0, 0}, 275, 275, { 1252, 20277, 10000, 850, 0, ';' }},
+       {0x7C1A, 0x007F, 257, -1, 50930, 53332, 53068, 53340, 2239, 50930, 0, {41076, 0, 0, 0}, 276, 276, { 1250, 500, 10029, 852, 0, ';' }},
+       {0x7C28, 0x0028, 257, -1, 53344, 53352, 40745, 40758, 40762, 40736, 0, {0, 0, 0, 0}, 277, 277, { 1251, 20880, 10007, 866, 0, ';' }},
+       {0x7C43, 0x0043, 257, -1, 53369, 53377, 41894, 41905, 41909, 41885, 0, {41913, 0, 0, 0}, 278, 278, { 1254, 500, 10029, 857, 0, ';' }},
+       {0x7C5F, 0x005F, 257, -1, 53391, 53400, 43386, 43396, 43358, 43358, 0, {0, 0, 0, 0}, 279, 279, { 1252, 20297, 10000, 850, 0, ';' }},
+       {0x7C68, 0x0068, 257, -1, 53432, 53440, 43554, 43560, 43564, 43551, 0, {0, 0, 0, 0}, 280, 280, { 1252, 37, 10000, 437, 0, ',' }}
 };
 
 
 static const CultureInfoNameEntry culture_name_entries [] = {
-       {41243, 50},     /* af */
-       {53479, 144},    /* af-za */
+       {41218, 50},     /* af */
+       {53454, 144},    /* af-za */
        {8151, 80},      /* am */
-       {53485, 168},    /* am-et */
-       {38641, 0},      /* ar */
-       {53491, 249},    /* ar-ae */
-       {53497, 251},    /* ar-bh */
-       {53503, 211},    /* ar-dz */
-       {53509, 197},    /* ar-eg */
-       {53515, 182},    /* ar-iq */
-       {53521, 238},    /* ar-jo */
-       {53527, 246},    /* ar-kw */
-       {53533, 242},    /* ar-lb */
-       {53539, 204},    /* ar-ly */
-       {53545, 218},    /* ar-ma */
-       {53551, 227},    /* ar-om */
-       {53557, 253},    /* ar-qa */
-       {53563, 96},     /* ar-sa */
-       {53569, 234},    /* ar-sy */
-       {53575, 223},    /* ar-tn */
-       {53581, 231},    /* ar-ye */
-       {42655, 70},     /* as */
-       {53587, 159},    /* as-in */
-       {40958, 44},     /* az */
-       {53593, 266},    /* az-cyrl */
-       {53601, 193},    /* az-cyrl-az */
-       {53612, 270},    /* az-latn */
-       {53620, 138},    /* az-latn-az */
-       {40470, 35},     /* be */
-       {53631, 129},    /* be-by */
-       {38702, 1},      /* bg */
-       {53637, 97},     /* bg-bg */
-       {41958, 62},     /* bn */
-       {53643, 196},    /* bn-bd */
-       {53649, 152},    /* bn-in */
-       {42909, 73},     /* bo */
-       {53655, 161},    /* bo-cn */
-       {43789, 91},     /* br */
-       {53661, 178},    /* br-fr */
-       {50633, 269},    /* bs */
-       {53667, 262},    /* bs-cyrl */
-       {53675, 230},    /* bs-cyrl-ba */
-       {53686, 263},    /* bs-latn */
-       {53694, 217},    /* bs-latn-ba */
-       {38784, 2},      /* ca */
-       {53705, 98},     /* ca-es */
-       {38920, 5},      /* cs */
-       {53711, 100},    /* cs-cz */
-       {42953, 74},     /* cy */
-       {53717, 162},    /* cy-gb */
-       {38973, 6},      /* da */
-       {53723, 101},    /* da-dk */
-       {39018, 7},      /* de */
-       {53729, 199},    /* de-at */
-       {53735, 184},    /* de-ch */
-       {53741, 102},    /* de-de */
-       {53747, 213},    /* de-li */
-       {53753, 206},    /* de-lu */
-       {39069, 8},      /* el */
-       {53759, 103},    /* el-gr */
-       {39145, 9},      /* en */
-       {53765, 200},    /* en-au */
-       {53771, 235},    /* en-bz */
-       {53777, 207},    /* en-ca */
-       {53783, 185},    /* en-gb */
-       {53789, 219},    /* en-ie */
-       {53795, 254},    /* en-in */
-       {53801, 228},    /* en-jm */
-       {53807, 214},    /* en-nz */
-       {53813, 247},    /* en-ph */
-       {53819, 257},    /* en-sg */
-       {53825, 239},    /* en-tt */
-       {53831, 104},    /* en-us */
-       {53837, 224},    /* en-za */
-       {53843, 243},    /* en-zw */
-       {39183, 10},     /* es */
-       {53849, 240},    /* es-ar */
-       {53855, 255},    /* es-bo */
-       {53861, 248},    /* es-cl */
-       {53867, 232},    /* es-co */
-       {53873, 215},    /* es-cr */
-       {53879, 225},    /* es-do */
-       {53885, 244},    /* es-ec */
-       {53891, 201},    /* es-es */
-       {53897, 208},    /* es-gt */
-       {53903, 258},    /* es-hn */
-       {53909, 186},    /* es-mx */
-       {53915, 259},    /* es-ni */
-       {53921, 220},    /* es-pa */
-       {53927, 236},    /* es-pe */
-       {53933, 260},    /* es-pr */
-       {53939, 252},    /* es-py */
-       {53945, 256},    /* es-sv */
-       {53951, 261},    /* es-us */
-       {53957, 250},    /* es-uy */
-       {53963, 229},    /* es-ve */
-       {40612, 37},     /* et */
-       {53969, 131},    /* et-ee */
-       {41012, 45},     /* eu */
-       {53975, 139},    /* eu-es */
-       {40791, 41},     /* fa */
-       {53981, 135},    /* fa-ir */
-       {39233, 11},     /* fi */
-       {53987, 105},    /* fi-fi */
-       {43536, 84},     /* fil */
-       {53993, 171},    /* fil-ph */
-       {41391, 52},     /* fo */
-       {54000, 146},    /* fo-fo */
-       {39283, 12},     /* fr */
-       {54006, 187},    /* fr-be */
-       {54012, 202},    /* fr-ca */
-       {54018, 209},    /* fr-ch */
-       {54024, 106},    /* fr-fr */
-       {54030, 216},    /* fr-lu */
-       {54036, 221},    /* fr-mc */
-       {41613, 56},     /* ga */
-       {54042, 194},    /* ga-ie */
-       {43957, 95},     /* gd */
-       {54048, 181},    /* gd-gb */
-       {43153, 77},     /* gl */
-       {54054, 165},    /* gl-es */
-       {43837, 92},     /* gsw */
-       {42143, 64},     /* gu */
-       {54060, 153},    /* gu-in */
-       {43576, 85},     /* ha */
-       {54066, 280},    /* ha-latn */
-       {54074, 172},    /* ha-latn-ng */
-       {39333, 13},     /* he */
-       {54085, 107},    /* he-il */
-       {41420, 53},     /* hi */
-       {54091, 147},    /* hi-in */
-       {39997, 26},     /* hr */
-       {54097, 210},    /* hr-ba */
-       {54103, 120},    /* hr-hr */
-       {39395, 14},     /* hu */
-       {54109, 108},    /* hu-hu */
-       {40893, 43},     /* hy */
-       {54115, 137},    /* hy-am */
-       {40324, 33},     /* id */
-       {54121, 127},    /* id-id */
-       {43728, 89},     /* ig */
-       {54127, 176},    /* ig-ng */
-       {43744, 90},     /* ii */
-       {54133, 177},    /* ii-cn */
-       {39439, 15},     /* is */
-       {54139, 109},    /* is-is */
-       {39490, 16},     /* it */
-       {54145, 188},    /* it-ch */
-       {54151, 110},    /* it-it */
-       {39540, 17},     /* ja */
-       {54157, 111},    /* ja-jp */
-       {41284, 51},     /* ka */
-       {54163, 145},    /* ka-ge */
-       {41707, 58},     /* kk */
-       {43666, 88},     /* kl */
-       {54169, 175},    /* kl-gl */
-       {42994, 75},     /* km */
-       {54175, 163},    /* km-kh */
-       {37890, 68},     /* kn */
-       {54181, 157},    /* kn-in */
-       {39597, 18},     /* ko */
-       {54187, 112},    /* ko-kr */
-       {43180, 78},     /* kok */
-       {54193, 166},    /* kok-in */
-       {41787, 59},     /* ky */
-       {43082, 76},     /* lo */
-       {54200, 164},    /* lo-la */
-       {40706, 39},     /* lt */
-       {54206, 133},    /* lt-lt */
-       {40658, 38},     /* lv */
-       {54212, 132},    /* lv-lv */
-       {41058, 46},     /* mk */
-       {54218, 140},    /* mk-mk */
-       {42571, 69},     /* ml */
-       {54224, 158},    /* ml-in */
-       {42843, 72},     /* mn */
-       {54230, 272},    /* mn-cyrl */
-       {42750, 71},     /* mr */
-       {54238, 160},    /* mr-in */
-       {41659, 57},     /* ms */
-       {41506, 54},     /* mt */
-       {54244, 148},    /* mt-mt */
-       {39712, 275},    /* nb */
-       {54250, 114},    /* nb-no */
+       {53460, 168},    /* am-et */
+       {38616, 0},      /* ar */
+       {53466, 249},    /* ar-ae */
+       {53472, 251},    /* ar-bh */
+       {53478, 211},    /* ar-dz */
+       {53484, 197},    /* ar-eg */
+       {53490, 182},    /* ar-iq */
+       {53496, 238},    /* ar-jo */
+       {53502, 246},    /* ar-kw */
+       {53508, 242},    /* ar-lb */
+       {53514, 204},    /* ar-ly */
+       {53520, 218},    /* ar-ma */
+       {53526, 227},    /* ar-om */
+       {53532, 253},    /* ar-qa */
+       {53538, 96},     /* ar-sa */
+       {53544, 234},    /* ar-sy */
+       {53550, 223},    /* ar-tn */
+       {53556, 231},    /* ar-ye */
+       {42630, 70},     /* as */
+       {53562, 159},    /* as-in */
+       {40933, 44},     /* az */
+       {53568, 266},    /* az-cyrl */
+       {53576, 193},    /* az-cyrl-az */
+       {53587, 270},    /* az-latn */
+       {53595, 138},    /* az-latn-az */
+       {40445, 35},     /* be */
+       {53606, 129},    /* be-by */
+       {38677, 1},      /* bg */
+       {53612, 97},     /* bg-bg */
+       {41933, 62},     /* bn */
+       {53618, 196},    /* bn-bd */
+       {53624, 152},    /* bn-in */
+       {42884, 73},     /* bo */
+       {53630, 161},    /* bo-cn */
+       {43764, 91},     /* br */
+       {53636, 178},    /* br-fr */
+       {50608, 269},    /* bs */
+       {53642, 262},    /* bs-cyrl */
+       {53650, 230},    /* bs-cyrl-ba */
+       {53661, 263},    /* bs-latn */
+       {53669, 217},    /* bs-latn-ba */
+       {38759, 2},      /* ca */
+       {53680, 98},     /* ca-es */
+       {38895, 5},      /* cs */
+       {53686, 100},    /* cs-cz */
+       {42928, 74},     /* cy */
+       {53692, 162},    /* cy-gb */
+       {38948, 6},      /* da */
+       {53698, 101},    /* da-dk */
+       {38993, 7},      /* de */
+       {53704, 199},    /* de-at */
+       {53710, 184},    /* de-ch */
+       {53716, 102},    /* de-de */
+       {53722, 213},    /* de-li */
+       {53728, 206},    /* de-lu */
+       {39044, 8},      /* el */
+       {53734, 103},    /* el-gr */
+       {39120, 9},      /* en */
+       {53740, 200},    /* en-au */
+       {53746, 235},    /* en-bz */
+       {53752, 207},    /* en-ca */
+       {53758, 185},    /* en-gb */
+       {53764, 219},    /* en-ie */
+       {53770, 254},    /* en-in */
+       {53776, 228},    /* en-jm */
+       {53782, 214},    /* en-nz */
+       {53788, 247},    /* en-ph */
+       {53794, 257},    /* en-sg */
+       {53800, 239},    /* en-tt */
+       {53806, 104},    /* en-us */
+       {53812, 224},    /* en-za */
+       {53818, 243},    /* en-zw */
+       {39158, 10},     /* es */
+       {53824, 240},    /* es-ar */
+       {53830, 255},    /* es-bo */
+       {53836, 248},    /* es-cl */
+       {53842, 232},    /* es-co */
+       {53848, 215},    /* es-cr */
+       {53854, 225},    /* es-do */
+       {53860, 244},    /* es-ec */
+       {53866, 201},    /* es-es */
+       {53872, 208},    /* es-gt */
+       {53878, 258},    /* es-hn */
+       {53884, 186},    /* es-mx */
+       {53890, 259},    /* es-ni */
+       {53896, 220},    /* es-pa */
+       {53902, 236},    /* es-pe */
+       {53908, 260},    /* es-pr */
+       {53914, 252},    /* es-py */
+       {53920, 256},    /* es-sv */
+       {53926, 261},    /* es-us */
+       {53932, 250},    /* es-uy */
+       {53938, 229},    /* es-ve */
+       {40587, 37},     /* et */
+       {53944, 131},    /* et-ee */
+       {40987, 45},     /* eu */
+       {53950, 139},    /* eu-es */
+       {40766, 41},     /* fa */
+       {53956, 135},    /* fa-ir */
+       {39208, 11},     /* fi */
+       {53962, 105},    /* fi-fi */
+       {43511, 84},     /* fil */
+       {53968, 171},    /* fil-ph */
+       {41366, 52},     /* fo */
+       {53975, 146},    /* fo-fo */
+       {39258, 12},     /* fr */
+       {53981, 187},    /* fr-be */
+       {53987, 202},    /* fr-ca */
+       {53993, 209},    /* fr-ch */
+       {53999, 106},    /* fr-fr */
+       {54005, 216},    /* fr-lu */
+       {54011, 221},    /* fr-mc */
+       {41588, 56},     /* ga */
+       {54017, 194},    /* ga-ie */
+       {43932, 95},     /* gd */
+       {54023, 181},    /* gd-gb */
+       {43128, 77},     /* gl */
+       {54029, 165},    /* gl-es */
+       {43812, 92},     /* gsw */
+       {42118, 64},     /* gu */
+       {54035, 153},    /* gu-in */
+       {43551, 85},     /* ha */
+       {54041, 280},    /* ha-latn */
+       {54049, 172},    /* ha-latn-ng */
+       {39308, 13},     /* he */
+       {54060, 107},    /* he-il */
+       {41395, 53},     /* hi */
+       {54066, 147},    /* hi-in */
+       {39972, 26},     /* hr */
+       {54072, 210},    /* hr-ba */
+       {54078, 120},    /* hr-hr */
+       {39370, 14},     /* hu */
+       {54084, 108},    /* hu-hu */
+       {40868, 43},     /* hy */
+       {54090, 137},    /* hy-am */
+       {40299, 33},     /* id */
+       {54096, 127},    /* id-id */
+       {43703, 89},     /* ig */
+       {54102, 176},    /* ig-ng */
+       {43719, 90},     /* ii */
+       {54108, 177},    /* ii-cn */
+       {39414, 15},     /* is */
+       {54114, 109},    /* is-is */
+       {39465, 16},     /* it */
+       {54120, 188},    /* it-ch */
+       {54126, 110},    /* it-it */
+       {39515, 17},     /* ja */
+       {54132, 111},    /* ja-jp */
+       {41259, 51},     /* ka */
+       {54138, 145},    /* ka-ge */
+       {41682, 58},     /* kk */
+       {43641, 88},     /* kl */
+       {54144, 175},    /* kl-gl */
+       {42969, 75},     /* km */
+       {54150, 163},    /* km-kh */
+       {37865, 68},     /* kn */
+       {54156, 157},    /* kn-in */
+       {39572, 18},     /* ko */
+       {54162, 112},    /* ko-kr */
+       {43155, 78},     /* kok */
+       {54168, 166},    /* kok-in */
+       {41762, 59},     /* ky */
+       {43057, 76},     /* lo */
+       {54175, 164},    /* lo-la */
+       {40681, 39},     /* lt */
+       {54181, 133},    /* lt-lt */
+       {40633, 38},     /* lv */
+       {54187, 132},    /* lv-lv */
+       {41033, 46},     /* mk */
+       {54193, 140},    /* mk-mk */
+       {42546, 69},     /* ml */
+       {54199, 158},    /* ml-in */
+       {42818, 72},     /* mn */
+       {54205, 272},    /* mn-cyrl */
+       {42725, 71},     /* mr */
+       {54213, 160},    /* mr-in */
+       {41634, 57},     /* ms */
+       {41481, 54},     /* mt */
+       {54219, 148},    /* mt-mt */
+       {39687, 275},    /* nb */
+       {54225, 114},    /* nb-no */
        {1992, 82},      /* ne */
-       {54256, 169},    /* ne-np */
-       {39635, 19},     /* nl */
-       {54262, 189},    /* nl-be */
-       {54268, 113},    /* nl-nl */
-       {49041, 268},    /* nn */
-       {54274, 190},    /* nn-no */
-       {39685, 20},     /* no */
-       {43626, 87},     /* nso */
-       {54280, 174},    /* nso-za */
-       {42241, 65},     /* or */
-       {54287, 154},    /* or-in */
-       {42058, 63},     /* pa */
-       {39715, 21},     /* pl */
-       {54293, 115},    /* pl-pl */
-       {43509, 83},     /* ps */
-       {54299, 170},    /* ps-af */
-       {39764, 22},     /* pt */
-       {54305, 116},    /* pt-br */
-       {54311, 191},    /* pt-pt */
-       {39820, 23},     /* rm */
-       {54317, 117},    /* rm-ch */
-       {39869, 24},     /* ro */
-       {54323, 118},    /* ro-ro */
-       {39917, 25},     /* ru */
-       {54329, 119},    /* ru-ru */
-       {43934, 94},     /* rw */
-       {54335, 180},    /* rw-rw */
-       {43902, 93},     /* sah */
-       {54341, 179},    /* sah-ru */
-       {41552, 55},     /* se */
-       {54348, 203},    /* se-fi */
-       {54354, 149},    /* se-no */
-       {43215, 79},     /* si */
-       {54360, 167},    /* si-lk */
-       {12824, 27},     /* sk */
-       {54366, 121},    /* sk-sk */
-       {40555, 36},     /* sl */
-       {54372, 130},    /* sl-si */
-       {40100, 28},     /* sq */
-       {54378, 122},    /* sq-al */
-       {50955, 276},    /* sr */
-       {54384, 264},    /* sr-cyrl */
-       {54392, 226},    /* sr-cyrl-ba */
-       {54403, 245},    /* sr-cyrl-me */
-       {54414, 237},    /* sr-cyrl-rs */
-       {54425, 265},    /* sr-latn */
-       {54433, 222},    /* sr-latn-ba */
-       {54444, 241},    /* sr-latn-me */
-       {54455, 233},    /* sr-latn-rs */
-       {40146, 29},     /* sv */
-       {54466, 192},    /* sv-fi */
-       {54472, 123},    /* sv-se */
-       {41860, 60},     /* sw */
-       {54478, 150},    /* sw-ke */
-       {42274, 66},     /* ta */
-       {54484, 155},    /* ta-in */
-       {42372, 67},     /* te */
-       {54490, 156},    /* te-in */
-       {40761, 40},     /* tg */
-       {54496, 277},    /* tg-cyrl */
-       {54504, 134},    /* tg-cyrl-tj */
-       {40173, 30},     /* th */
-       {54515, 124},    /* th-th */
-       {41145, 47},     /* tn */
-       {54521, 141},    /* tn-za */
-       {12833, 31},     /* tr */
-       {54527, 125},    /* tr-tr */
-       {43383, 81},     /* tzm */
-       {54533, 279},    /* tzm-latn */
-       {40382, 34},     /* uk */
-       {54542, 128},    /* uk-ua */
-       {40269, 32},     /* ur */
-       {54548, 126},    /* ur-pk */
-       {41910, 61},     /* uz */
-       {54554, 271},    /* uz-cyrl */
-       {54562, 195},    /* uz-cyrl-uz */
-       {54573, 278},    /* uz-latn */
-       {54581, 151},    /* uz-latn-uz */
-       {40845, 42},     /* vi */
-       {54592, 136},    /* vi-vn */
-       {41172, 48},     /* xh */
-       {54598, 142},    /* xh-za */
-       {43593, 86},     /* yo */
-       {54604, 173},    /* yo-ng */
-       {38881, 267},    /* zh */
-       {54610, 3},      /* zh-chs */
-       {54617, 274},    /* zh-cht */
-       {54624, 183},    /* zh-cn */
-       {54630, 4},      /* zh-hans */
-       {54638, 273},    /* zh-hant */
-       {54646, 198},    /* zh-hk */
-       {54652, 212},    /* zh-mo */
-       {54658, 205},    /* zh-sg */
-       {54664, 99},     /* zh-tw */
-       {41198, 49},     /* zu */
-       {54670, 143}     /* zu-za */
+       {54231, 169},    /* ne-np */
+       {39610, 19},     /* nl */
+       {54237, 189},    /* nl-be */
+       {54243, 113},    /* nl-nl */
+       {49016, 268},    /* nn */
+       {54249, 190},    /* nn-no */
+       {39660, 20},     /* no */
+       {43601, 87},     /* nso */
+       {54255, 174},    /* nso-za */
+       {42216, 65},     /* or */
+       {54262, 154},    /* or-in */
+       {42033, 63},     /* pa */
+       {39690, 21},     /* pl */
+       {54268, 115},    /* pl-pl */
+       {43484, 83},     /* ps */
+       {54274, 170},    /* ps-af */
+       {39739, 22},     /* pt */
+       {54280, 116},    /* pt-br */
+       {54286, 191},    /* pt-pt */
+       {39795, 23},     /* rm */
+       {54292, 117},    /* rm-ch */
+       {39844, 24},     /* ro */
+       {54298, 118},    /* ro-ro */
+       {39892, 25},     /* ru */
+       {54304, 119},    /* ru-ru */
+       {43909, 94},     /* rw */
+       {54310, 180},    /* rw-rw */
+       {43877, 93},     /* sah */
+       {54316, 179},    /* sah-ru */
+       {41527, 55},     /* se */
+       {54323, 203},    /* se-fi */
+       {54329, 149},    /* se-no */
+       {43190, 79},     /* si */
+       {54335, 167},    /* si-lk */
+       {12799, 27},     /* sk */
+       {54341, 121},    /* sk-sk */
+       {40530, 36},     /* sl */
+       {54347, 130},    /* sl-si */
+       {40075, 28},     /* sq */
+       {54353, 122},    /* sq-al */
+       {50930, 276},    /* sr */
+       {54359, 264},    /* sr-cyrl */
+       {54367, 226},    /* sr-cyrl-ba */
+       {54378, 245},    /* sr-cyrl-me */
+       {54389, 237},    /* sr-cyrl-rs */
+       {54400, 265},    /* sr-latn */
+       {54408, 222},    /* sr-latn-ba */
+       {54419, 241},    /* sr-latn-me */
+       {54430, 233},    /* sr-latn-rs */
+       {40121, 29},     /* sv */
+       {54441, 192},    /* sv-fi */
+       {54447, 123},    /* sv-se */
+       {41835, 60},     /* sw */
+       {54453, 150},    /* sw-ke */
+       {42249, 66},     /* ta */
+       {54459, 155},    /* ta-in */
+       {42347, 67},     /* te */
+       {54465, 156},    /* te-in */
+       {40736, 40},     /* tg */
+       {54471, 277},    /* tg-cyrl */
+       {54479, 134},    /* tg-cyrl-tj */
+       {40148, 30},     /* th */
+       {54490, 124},    /* th-th */
+       {41120, 47},     /* tn */
+       {54496, 141},    /* tn-za */
+       {12808, 31},     /* tr */
+       {54502, 125},    /* tr-tr */
+       {43358, 81},     /* tzm */
+       {54508, 279},    /* tzm-latn */
+       {40357, 34},     /* uk */
+       {54517, 128},    /* uk-ua */
+       {40244, 32},     /* ur */
+       {54523, 126},    /* ur-pk */
+       {41885, 61},     /* uz */
+       {54529, 271},    /* uz-cyrl */
+       {54537, 195},    /* uz-cyrl-uz */
+       {54548, 278},    /* uz-latn */
+       {54556, 151},    /* uz-latn-uz */
+       {40820, 42},     /* vi */
+       {54567, 136},    /* vi-vn */
+       {41147, 48},     /* xh */
+       {54573, 142},    /* xh-za */
+       {43568, 86},     /* yo */
+       {54579, 173},    /* yo-ng */
+       {38856, 267},    /* zh */
+       {54585, 3},      /* zh-chs */
+       {54592, 274},    /* zh-cht */
+       {54599, 183},    /* zh-cn */
+       {54605, 4},      /* zh-hans */
+       {54613, 273},    /* zh-hant */
+       {54621, 198},    /* zh-hk */
+       {54627, 212},    /* zh-mo */
+       {54633, 205},    /* zh-sg */
+       {54639, 99},     /* zh-tw */
+       {41173, 49},     /* zu */
+       {54645, 143}     /* zu-za */
 };
 
 
 static const RegionInfoEntry region_entries [] = {
-       { 224,52399,49438,49438,54676,54697,38584,54744,54748,54776},
-       { 3,48076,54800,54800,54804,54816,38355,54835,54839,54854},
-       { 6,45392,54867,54867,54871,54879,37893,54889,54893,54906},
-       { 7,1929,50712,50712,54920,54928,38136,54945,54949,54963},
-       { 11,51890,50243,50243,54989,54989,37626,51613,54999,55014},
-       { 14,49587,55029,55029,55033,55041,37522,55053,55057,55057},
-       { 12,49620,55062,55062,55066,55066,37626,55076,55080,55080},
-       { 5,46290,40985,40985,55098,55109,38390,55121,55125,55143},
-       { 25,50185,55163,55163,55167,55190,38452,55210,55214,55250},
-       { 23,49390,55270,55270,55274,55285,38428,55310,55314,55331},
-       { 21,48882,40505,40505,55372,55380,37522,55053,55057,55389},
-       { 35,44176,38734,38734,55394,55403,37504,55420,55424,55438},
-       { 17,52511,55464,55464,55468,55476,38594,55491,55495,55510},
-       { 26,52691,55534,55534,55538,55538,38618,42945,55546,55565},
-       { 32,45096,55575,55575,55579,55586,37781,55593,55597,55612},
-       { 29,45778,55628,55628,55632,55640,37996,55657,55661,55678},
-       { 24,51647,55710,55710,55714,55714,37626,55721,55725,55725},
-       { 39,49713,55739,55739,55743,55743,37626,55750,55754,55770},
-       { 223,13778,55786,55786,55790,55802,37788,37788,55809,55821},
-       { 46,52292,55835,55835,55839,55839,37626,55845,55849,55862},
-       { 45,13857,55875,55875,55879,55885,37543,55904,55908,55921},
-       { 51,51491,55940,55940,55944,55944,37626,55953,55957,55972},
-       { 54,50487,55988,55988,55992,55992,38470,56003,56007,56026},
-       { 75,44339,56047,56047,56051,56066,37546,56084,56088,56110},
-       { 94,44429,39036,39036,56125,56133,37522,55053,55057,55057},
-       { 61,44381,56145,56145,56149,56157,37574,56165,56169,56182},
-       { 65,51119,56194,56194,56198,56217,37626,56239,56243,56258},
-       { 4,50247,56274,56274,56278,56286,38455,56301,56305,56320},
-       { 66,52109,56344,56344,56348,56348,37626,56356,56360,56370},
-       { 70,45876,53002,53002,56392,56400,37522,55053,55057,55389},
-       { 67,49442,56406,56406,56410,56416,38432,56423,56427,56442},
-       { 217,44219,39203,39203,56460,56466,37522,55053,55057,55389},
-       { 73,47955,56474,56474,56478,56487,38335,56503,56507,56522},
-       { 77,44559,39250,39250,56548,56556,37522,55053,55057,55389},
-       { 81,46707,56562,56562,56566,56580,37574,56165,56169,56589},
-       { 84,44603,39303,39303,56602,56602,37522,55053,55057,55389},
-       { 242,47612,56609,56609,56613,56628,38279,56645,56649,56672},
-       { 88,46653,56694,56694,56698,56706,0,56737,56741,56755},
-       { 93,48354,56790,56790,56794,56804,37574,56165,56169,56821},
-       { 98,44485,56841,56841,56845,56852,37522,55053,55057,56865},
-       { 99,50053,56874,56874,56878,56878,8056,56888,56892,56911},
-       { 104,49535,56932,56932,56936,56956,37626,56984,56988,57005},
-       { 106,52831,57012,57012,57016,57016,2436,57025,57029,57046},
-       { 108,45295,40018,40018,57065,57073,37890,57082,57086,57100},
-       { 109,44704,39415,39415,57114,57122,37699,57136,57140,57157},
-       { 111,45641,57171,57171,57175,57175,37972,57185,57189,57207},
-       { 68,49235,57224,57224,57228,57236,37522,55053,55057,55057},
-       { 117,44652,57242,57242,57246,57253,37672,57264,57268,57287},
-       { 113,46761,40355,40355,57294,57300,38215,57313,57317,57330},
-       { 121,48644,57365,57365,57369,57374,38401,57387,57391,57403},
-       { 116,46101,57425,57425,57429,57434,38090,57445,57449,57462},
-       { 110,44753,39462,39462,57482,57490,37574,57498,57502,57519},
-       { 118,44796,39510,39510,57535,57541,37522,55053,55057,55057},
-       { 124,51267,57548,57548,57552,57552,37626,57560,57564,57564},
-       { 126,51793,57580,57580,57584,57591,38554,57604,57608,57624},
-       { 122,44841,39562,39562,57646,57652,37712,57659,57663,57676},
-       { 129,46897,57686,57686,57690,57690,38239,57696,57700,57716},
-       { 40,47678,43019,43019,57734,57743,38282,57765,57769,57784},
-       { 134,44896,39617,39617,57816,57828,37716,57841,57845,57862},
-       { 136,52214,57879,57879,57883,57890,38574,57903,57907,57921},
-       { 138,47720,43099,43099,57943,43089,38286,57948,57952,57964},
-       { 139,52027,57984,57984,57988,57996,38564,58007,58011,58026},
-       { 145,50396,58048,58048,58052,58052,0,37788,55809,58066},
-       { 42,47896,58084,58084,58088,58098,38327,58130,58134,58151},
-       { 141,45974,58199,58199,58203,58213,38066,58221,58225,58242},
-       { 147,49972,58257,58257,58261,58272,37522,55053,55057,55057},
-       { 140,45922,58282,58282,58286,58293,37522,55053,55057,58301},
-       { 148,49855,58306,58306,58310,58316,38442,58327,58331,58344},
-       { 159,50716,42777,42777,58364,58372,38474,58385,58389,58405},
-       { 158,50841,58425,58425,58429,58429,37522,55053,55057,55389},
-       { 270,51969,58436,58436,58440,58451,37522,55053,55057,58469},
-       { 19618,46406,58474,58474,58478,58488,38161,58474,58509,58526},
-       { 151,50336,58558,58558,58562,58578,38465,58606,58610,58626},
-       { 163,46800,41523,41523,58636,58636,37522,55053,55057,58642},
-       { 166,48831,58647,58647,58651,58658,37626,58666,58670,58683},
-       { 175,48184,58697,58697,58701,58709,38362,58718,58722,58737},
-       { 182,52885,58743,58743,58747,58747,38621,58757,58761,58781},
-       { 176,44948,39655,39655,58804,58816,37522,55053,55057,55057},
-       { 177,45006,39704,39704,58826,58833,37574,58839,58843,58859},
-       { 178,48016,58873,58873,58877,58883,38342,58899,58903,58918},
-       { 183,50431,58959,58959,58963,58963,37626,58975,58979,58979},
-       { 164,51236,58998,58998,59002,59007,38503,59018,59022,59033},
-       { 192,50793,42088,42088,59053,59060,38484,59068,59072,59090},
-       { 187,51692,59107,59107,59111,59116,38542,59122,59126,59145},
-       { 201,48130,59163,59163,59167,59179,38358,59189,59193,59193},
-       { 190,45580,59209,59209,59213,59222,37914,59237,59241,59257},
-       { 191,45047,59285,59285,59289,59296,37739,59303,59307,59320},
-       { 202,52943,59334,59334,59338,59338,37626,56356,56360,56370},
-       { 193,49098,59350,59350,59354,59354,37522,55053,55057,55057},
-       { 185,52563,59363,59363,59367,59367,38604,59376,59380,59399},
-       { 197,52615,59418,59418,59422,59428,38608,59435,59439,59451},
-       { 200,45191,59469,59469,59473,59481,0,59490,59494,59507},
-       { 271,51561,53365,53365,59521,59528,38527,59541,59545,59559},
-       { 203,45247,39943,39943,59572,59579,37810,59592,59596,59610},
-       { 204,48512,59642,59642,59646,59646,38366,59653,59657,0},
-       { 205,13775,59671,59671,59675,59688,37446,59735,59739,59751},
-       { 221,45436,59771,59771,59775,59782,37574,59790,59794,59808},
-       { 215,49919,59821,59821,59825,59835,37626,59845,59849,59866},
-       { 212,45834,59879,59879,59883,59892,37522,55053,55057,59902},
-       { 143,45346,59907,59907,59911,59920,37522,55053,55057,55057},
-       { 72,52749,40582,40582,59930,59930,37626,56356,56360,56370},
-       { 222,51617,59942,59942,59946,59952,38532,59963,59967,59980},
-       { 227,45483,40191,40191,60000,40181,37906,60009,60013,60023},
-       { 228,46053,60042,60042,60046,60057,38383,60078,60082,60101},
-       { 234,51011,60114,60114,60118,60126,38488,60135,60139,60154},
-       { 235,45529,60175,60175,60179,60186,37910,60195,60199,60212},
-       { 225,51836,60226,60226,60230,60230,37626,60250,60254,60254},
-       { 237,44270,60281,60281,60285,60292,38369,60299,60303,60321},
-       { 241,45708,40416,40416,60331,60339,37975,60354,60358,60376},
-       { 244,44518,60410,60410,60414,60414,37626,56356,56360,56360},
-       { 246,52449,60428,60428,60432,60432,37626,60440,60444,60459},
-       { 247,46963,41930,41930,60473,60484,38395,60497,60501,60516},
-       { 249,51321,60535,60535,60539,60539,38513,60549,60553,60573},
-       { 251,46159,60593,60593,60597,60605,38132,60616,60620,60636},
-       { 261,51439,60655,60655,60659,60665,38517,60676,60680,60692},
-       { 209,46437,60710,60710,60714,0,10836,60727,60731,0},
-       { 264,52059,60750,60750,60754,60754,37626,56356,56360,56360}
+       { 224,52374,49413,49413,54651,54672,38559,54719,54723,54751},
+       { 3,48051,54775,54775,54779,54791,38330,54810,54814,54829},
+       { 6,45367,54842,54842,54846,54854,37868,54864,54868,54881},
+       { 7,1929,50687,50687,54895,54903,38111,54920,54924,54938},
+       { 11,51865,50218,50218,54964,54964,37601,51588,54974,54989},
+       { 14,49562,55004,55004,55008,55016,37497,55028,55032,55032},
+       { 12,49595,55037,55037,55041,55041,37601,55051,55055,55055},
+       { 5,46265,40960,40960,55073,55084,38365,55096,55100,55118},
+       { 25,50160,55138,55138,55142,55165,38427,55185,55189,55225},
+       { 23,49365,55245,55245,55249,55260,38403,55285,55289,55306},
+       { 21,48857,40480,40480,55347,55355,37497,55028,55032,55364},
+       { 35,44151,38709,38709,55369,55378,37479,55395,55399,55413},
+       { 17,52486,55439,55439,55443,55451,38569,55466,55470,55485},
+       { 26,52666,55509,55509,55513,55513,38593,42920,55521,55540},
+       { 32,45071,55550,55550,55554,55561,37756,55568,55572,55587},
+       { 29,45753,55603,55603,55607,55615,37971,55632,55636,55653},
+       { 24,51622,55685,55685,55689,55689,37601,55696,55700,55700},
+       { 39,49688,55714,55714,55718,55718,37601,55725,55729,55745},
+       { 223,13753,55761,55761,55765,55777,37763,37763,55784,55796},
+       { 46,52267,55810,55810,55814,55814,37601,55820,55824,55837},
+       { 45,13832,55850,55850,55854,55860,37518,55879,55883,55896},
+       { 51,51466,55915,55915,55919,55919,37601,55928,55932,55947},
+       { 54,50462,55963,55963,55967,55967,38445,55978,55982,56001},
+       { 75,44314,56022,56022,56026,56041,37521,56059,56063,56085},
+       { 94,44404,39011,39011,56100,56108,37497,55028,55032,55032},
+       { 61,44356,56120,56120,56124,56132,37549,56140,56144,56157},
+       { 65,51094,56169,56169,56173,56192,37601,56214,56218,56233},
+       { 4,50222,56249,56249,56253,56261,38430,56276,56280,56295},
+       { 66,52084,56319,56319,56323,56323,37601,56331,56335,56345},
+       { 70,45851,52977,52977,56367,56375,37497,55028,55032,55364},
+       { 67,49417,56381,56381,56385,56391,38407,56398,56402,56417},
+       { 217,44194,39178,39178,56435,56441,37497,55028,55032,55364},
+       { 73,47930,56449,56449,56453,56462,38310,56478,56482,56497},
+       { 77,44534,39225,39225,56523,56531,37497,55028,55032,55364},
+       { 81,46682,56537,56537,56541,56555,37549,56140,56144,56564},
+       { 84,44578,39278,39278,56577,56577,37497,55028,55032,55364},
+       { 242,47587,56584,56584,56588,56603,38254,56620,56624,56647},
+       { 88,46628,56669,56669,56673,56681,0,56712,56716,56730},
+       { 93,48329,56765,56765,56769,56779,37549,56140,56144,56796},
+       { 98,44460,56816,56816,56820,56827,37497,55028,55032,56840},
+       { 99,50028,56849,56849,56853,56853,8056,56863,56867,56886},
+       { 104,49510,56907,56907,56911,56931,37601,56959,56963,56980},
+       { 106,52806,56987,56987,56991,56991,2436,57000,57004,57021},
+       { 108,45270,39993,39993,57040,57048,37865,57057,57061,57075},
+       { 109,44679,39390,39390,57089,57097,37674,57111,57115,57132},
+       { 111,45616,57146,57146,57150,57150,37947,57160,57164,57182},
+       { 68,49210,57199,57199,57203,57211,37497,55028,55032,55032},
+       { 117,44627,57217,57217,57221,57228,37647,57239,57243,57262},
+       { 113,46736,40330,40330,57269,57275,38190,57288,57292,57305},
+       { 121,48619,57340,57340,57344,57349,38376,57362,57366,57378},
+       { 116,46076,57400,57400,57404,57409,38065,57420,57424,57437},
+       { 110,44728,39437,39437,57457,57465,37549,57473,57477,57494},
+       { 118,44771,39485,39485,57510,57516,37497,55028,55032,55032},
+       { 124,51242,57523,57523,57527,57527,37601,57535,57539,57539},
+       { 126,51768,57555,57555,57559,57566,38529,57579,57583,57599},
+       { 122,44816,39537,39537,57621,57627,37687,57634,57638,57651},
+       { 129,46872,57661,57661,57665,57665,38214,57671,57675,57691},
+       { 40,47653,42994,42994,57709,57718,38257,57740,57744,57759},
+       { 134,44871,39592,39592,57791,57803,37691,57816,57820,57837},
+       { 136,52189,57854,57854,57858,57865,38549,57878,57882,57896},
+       { 138,47695,43074,43074,57918,43064,38261,57923,57927,57939},
+       { 139,52002,57959,57959,57963,57971,38539,57982,57986,58001},
+       { 145,50371,58023,58023,58027,58027,0,37763,55784,58041},
+       { 42,47871,58059,58059,58063,58073,38302,58105,58109,58126},
+       { 141,45949,58174,58174,58178,58188,38041,58196,58200,58217},
+       { 147,49947,58232,58232,58236,58247,37497,55028,55032,55032},
+       { 140,45897,58257,58257,58261,58268,37497,55028,55032,58276},
+       { 148,49830,58281,58281,58285,58291,38417,58302,58306,58319},
+       { 159,50691,42752,42752,58339,58347,38449,58360,58364,58380},
+       { 158,50816,58400,58400,58404,58404,37497,55028,55032,55364},
+       { 270,51944,58411,58411,58415,58426,37497,55028,55032,58444},
+       { 19618,46381,58449,58449,58453,58463,38136,58449,58484,58501},
+       { 151,50311,58533,58533,58537,58553,38440,58581,58585,58601},
+       { 163,46775,41498,41498,58611,58611,37497,55028,55032,58617},
+       { 166,48806,58622,58622,58626,58633,37601,58641,58645,58658},
+       { 175,48159,58672,58672,58676,58684,38337,58693,58697,58712},
+       { 182,52860,58718,58718,58722,58722,38596,58732,58736,58756},
+       { 176,44923,39630,39630,58779,58791,37497,55028,55032,55032},
+       { 177,44981,39679,39679,58801,58808,37549,58814,58818,58834},
+       { 178,47991,58848,58848,58852,58858,38317,58874,58878,58893},
+       { 183,50406,58934,58934,58938,58938,37601,58950,58954,58954},
+       { 164,51211,58973,58973,58977,58982,38478,58993,58997,59008},
+       { 192,50768,42063,42063,59028,59035,38459,59043,59047,59065},
+       { 187,51667,59082,59082,59086,59091,38517,59097,59101,59120},
+       { 201,48105,59138,59138,59142,59154,38333,59164,59168,59168},
+       { 190,45555,59184,59184,59188,59197,37889,59212,59216,59232},
+       { 191,45022,59260,59260,59264,59271,37714,59278,59282,59295},
+       { 202,52918,59309,59309,59313,59313,37601,56331,56335,56345},
+       { 193,49073,59325,59325,59329,59329,37497,55028,55032,55032},
+       { 185,52538,59338,59338,59342,59342,38579,59351,59355,59374},
+       { 197,52590,59393,59393,59397,59403,38583,59410,59414,59426},
+       { 200,45166,59444,59444,59448,59456,0,59465,59469,59482},
+       { 271,51536,53340,53340,59496,59503,38502,59516,59520,59534},
+       { 203,45222,39918,39918,59547,59554,37785,59567,59571,59585},
+       { 204,48487,59617,59617,59621,59621,38341,59628,59632,0},
+       { 205,13750,59646,59646,59650,59663,37421,59710,59714,59726},
+       { 221,45411,59746,59746,59750,59757,37549,59765,59769,59783},
+       { 215,49894,59796,59796,59800,59810,37601,59820,59824,59841},
+       { 212,45809,59854,59854,59858,59867,37497,55028,55032,59877},
+       { 143,45321,59882,59882,59886,59895,37497,55028,55032,55032},
+       { 72,52724,40557,40557,59905,59905,37601,56331,56335,56345},
+       { 222,51592,59917,59917,59921,59927,38507,59938,59942,59955},
+       { 227,45458,40166,40166,59975,40156,37881,59984,59988,59998},
+       { 228,46028,60017,60017,60021,60032,38358,60053,60057,60076},
+       { 234,50986,60089,60089,60093,60101,38463,60110,60114,60129},
+       { 235,45504,60150,60150,60154,60161,37885,60170,60174,60187},
+       { 225,51811,60201,60201,60205,60205,37601,60225,60229,60229},
+       { 237,44245,60256,60256,60260,60267,38344,60274,60278,60296},
+       { 241,45683,40391,40391,60306,60314,37950,60329,60333,60351},
+       { 244,44493,60385,60385,60389,60389,37601,56331,56335,56335},
+       { 246,52424,60403,60403,60407,60407,37601,60415,60419,60434},
+       { 247,46938,41905,41905,60448,60459,38370,60472,60476,60491},
+       { 249,51296,60510,60510,60514,60514,38488,60524,60528,60548},
+       { 251,46134,60568,60568,60572,60580,38107,60591,60595,60611},
+       { 261,51414,60630,60630,60634,60640,38492,60651,60655,60667},
+       { 209,46412,60685,60685,60689,0,10794,60702,60706,0},
+       { 264,52034,60725,60725,60729,60729,37601,56331,56335,56335}
 };
 
 
 static const RegionInfoNameEntry region_name_entries [] = {
-       {52399, 0},      /* AE */
-       {48076, 1},      /* AF */
-       {45392, 2},      /* AL */
+       {52374, 0},      /* AE */
+       {48051, 1},      /* AF */
+       {45367, 2},      /* AL */
        {1929, 3},       /* AM */
-       {51890, 4},      /* AR */
-       {49587, 5},      /* AT */
-       {49620, 6},      /* AU */
-       {46290, 7},      /* AZ */
-       {50185, 8},      /* BA */
-       {49390, 9},      /* BD */
-       {48882, 10},     /* BE */
-       {44176, 11},     /* BG */
-       {52511, 12},     /* BH */
-       {52691, 13},     /* BO */
-       {45096, 14},     /* BR */
-       {45778, 15},     /* BY */
-       {51647, 16},     /* BZ */
-       {49713, 17},     /* CA */
-       {13778, 18},     /* CH */
-       {52292, 19},     /* CL */
-       {13857, 20},     /* CN */
-       {51491, 21},     /* CO */
-       {50487, 22},     /* CR */
-       {44339, 23},     /* CZ */
-       {44429, 24},     /* DE */
-       {44381, 25},     /* DK */
-       {51119, 26},     /* DO */
-       {50247, 27},     /* DZ */
-       {52109, 28},     /* EC */
-       {45876, 29},     /* EE */
-       {49442, 30},     /* EG */
-       {44219, 31},     /* ES */
-       {47955, 32},     /* ET */
-       {44559, 33},     /* FI */
-       {46707, 34},     /* FO */
-       {44603, 35},     /* FR */
-       {47612, 36},     /* GB */
-       {46653, 37},     /* GE */
-       {48354, 38},     /* GL */
-       {44485, 39},     /* GR */
-       {50053, 40},     /* GT */
-       {49535, 41},     /* HK */
-       {52831, 42},     /* HN */
-       {45295, 43},     /* HR */
-       {44704, 44},     /* HU */
-       {45641, 45},     /* ID */
-       {49235, 46},     /* IE */
-       {44652, 47},     /* IL */
-       {46761, 48},     /* IN */
-       {48644, 49},     /* IQ */
-       {46101, 50},     /* IR */
-       {44753, 51},     /* IS */
-       {44796, 52},     /* IT */
-       {51267, 53},     /* JM */
-       {51793, 54},     /* JO */
-       {44841, 55},     /* JP */
-       {46897, 56},     /* KE */
-       {47678, 57},     /* KH */
-       {44896, 58},     /* KR */
-       {52214, 59},     /* KW */
-       {47720, 60},     /* LA */
-       {52027, 61},     /* LB */
-       {50396, 62},     /* LI */
-       {47896, 63},     /* LK */
-       {45974, 64},     /* LT */
-       {49972, 65},     /* LU */
-       {45922, 66},     /* LV */
-       {49855, 67},     /* LY */
-       {50716, 68},     /* MA */
-       {50841, 69},     /* MC */
-       {51969, 70},     /* ME */
-       {46406, 71},     /* MK */
-       {50336, 72},     /* MO */
-       {46800, 73},     /* MT */
-       {48831, 74},     /* MX */
-       {48184, 75},     /* NG */
-       {52885, 76},     /* NI */
-       {44948, 77},     /* NL */
-       {45006, 78},     /* NO */
-       {48016, 79},     /* NP */
-       {50431, 80},     /* NZ */
-       {51236, 81},     /* OM */
-       {50793, 82},     /* PA */
-       {51692, 83},     /* PE */
-       {48130, 84},     /* PH */
-       {45580, 85},     /* PK */
-       {45047, 86},     /* PL */
-       {52943, 87},     /* PR */
-       {49098, 88},     /* PT */
-       {52563, 89},     /* PY */
-       {52615, 90},     /* QA */
-       {45191, 91},     /* RO */
-       {51561, 92},     /* RS */
-       {45247, 93},     /* RU */
-       {48512, 94},     /* RW */
-       {13775, 95},     /* SA */
-       {45436, 96},     /* SE */
-       {49919, 97},     /* SG */
-       {45834, 98},     /* SI */
-       {45346, 99},     /* SK */
-       {52749, 100},    /* SV */
-       {51617, 101},    /* SY */
-       {45483, 102},    /* TH */
-       {46053, 103},    /* TJ */
-       {51011, 104},    /* TN */
-       {45529, 105},    /* TR */
-       {51836, 106},    /* TT */
-       {44270, 107},    /* TW */
-       {45708, 108},    /* UA */
-       {44518, 109},    /* US */
-       {52449, 110},    /* UY */
-       {46963, 111},    /* UZ */
-       {51321, 112},    /* VE */
-       {46159, 113},    /* VN */
-       {51439, 114},    /* YE */
-       {46437, 115},    /* ZA */
-       {52059, 116}     /* ZW */
+       {51865, 4},      /* AR */
+       {49562, 5},      /* AT */
+       {49595, 6},      /* AU */
+       {46265, 7},      /* AZ */
+       {50160, 8},      /* BA */
+       {49365, 9},      /* BD */
+       {48857, 10},     /* BE */
+       {44151, 11},     /* BG */
+       {52486, 12},     /* BH */
+       {52666, 13},     /* BO */
+       {45071, 14},     /* BR */
+       {45753, 15},     /* BY */
+       {51622, 16},     /* BZ */
+       {49688, 17},     /* CA */
+       {13753, 18},     /* CH */
+       {52267, 19},     /* CL */
+       {13832, 20},     /* CN */
+       {51466, 21},     /* CO */
+       {50462, 22},     /* CR */
+       {44314, 23},     /* CZ */
+       {44404, 24},     /* DE */
+       {44356, 25},     /* DK */
+       {51094, 26},     /* DO */
+       {50222, 27},     /* DZ */
+       {52084, 28},     /* EC */
+       {45851, 29},     /* EE */
+       {49417, 30},     /* EG */
+       {44194, 31},     /* ES */
+       {47930, 32},     /* ET */
+       {44534, 33},     /* FI */
+       {46682, 34},     /* FO */
+       {44578, 35},     /* FR */
+       {47587, 36},     /* GB */
+       {46628, 37},     /* GE */
+       {48329, 38},     /* GL */
+       {44460, 39},     /* GR */
+       {50028, 40},     /* GT */
+       {49510, 41},     /* HK */
+       {52806, 42},     /* HN */
+       {45270, 43},     /* HR */
+       {44679, 44},     /* HU */
+       {45616, 45},     /* ID */
+       {49210, 46},     /* IE */
+       {44627, 47},     /* IL */
+       {46736, 48},     /* IN */
+       {48619, 49},     /* IQ */
+       {46076, 50},     /* IR */
+       {44728, 51},     /* IS */
+       {44771, 52},     /* IT */
+       {51242, 53},     /* JM */
+       {51768, 54},     /* JO */
+       {44816, 55},     /* JP */
+       {46872, 56},     /* KE */
+       {47653, 57},     /* KH */
+       {44871, 58},     /* KR */
+       {52189, 59},     /* KW */
+       {47695, 60},     /* LA */
+       {52002, 61},     /* LB */
+       {50371, 62},     /* LI */
+       {47871, 63},     /* LK */
+       {45949, 64},     /* LT */
+       {49947, 65},     /* LU */
+       {45897, 66},     /* LV */
+       {49830, 67},     /* LY */
+       {50691, 68},     /* MA */
+       {50816, 69},     /* MC */
+       {51944, 70},     /* ME */
+       {46381, 71},     /* MK */
+       {50311, 72},     /* MO */
+       {46775, 73},     /* MT */
+       {48806, 74},     /* MX */
+       {48159, 75},     /* NG */
+       {52860, 76},     /* NI */
+       {44923, 77},     /* NL */
+       {44981, 78},     /* NO */
+       {47991, 79},     /* NP */
+       {50406, 80},     /* NZ */
+       {51211, 81},     /* OM */
+       {50768, 82},     /* PA */
+       {51667, 83},     /* PE */
+       {48105, 84},     /* PH */
+       {45555, 85},     /* PK */
+       {45022, 86},     /* PL */
+       {52918, 87},     /* PR */
+       {49073, 88},     /* PT */
+       {52538, 89},     /* PY */
+       {52590, 90},     /* QA */
+       {45166, 91},     /* RO */
+       {51536, 92},     /* RS */
+       {45222, 93},     /* RU */
+       {48487, 94},     /* RW */
+       {13750, 95},     /* SA */
+       {45411, 96},     /* SE */
+       {49894, 97},     /* SG */
+       {45809, 98},     /* SI */
+       {45321, 99},     /* SK */
+       {52724, 100},    /* SV */
+       {51592, 101},    /* SY */
+       {45458, 102},    /* TH */
+       {46028, 103},    /* TJ */
+       {50986, 104},    /* TN */
+       {45504, 105},    /* TR */
+       {51811, 106},    /* TT */
+       {44245, 107},    /* TW */
+       {45683, 108},    /* UA */
+       {44493, 109},    /* US */
+       {52424, 110},    /* UY */
+       {46938, 111},    /* UZ */
+       {51296, 112},    /* VE */
+       {46134, 113},    /* VN */
+       {51414, 114},    /* YE */
+       {46412, 115},    /* ZA */
+       {52034, 116}     /* ZW */
 };
 
 
@@ -2607,17 +2607,10 @@ static const char locale_strings [] = {
        "m\xc3\xa5ndag\0"
        "tisdag\0"
        "l\xc3\xb6rdag\0"
-       "S\xc3\xb6n\0"
-       "M\xc3\xa5n\0"
-       "Tis\0"
-       "Ons\0"
-       "Tor\0"
-       "Fre\0"
-       "L\xc3\xb6r\0"
-       "Januari\0"
-       "Februari\0"
-       "Mars\0"
-       "Augusti\0"
+       "s\xc3\xb6n\0"
+       "m\xc3\xa5n\0"
+       "tis\0"
+       "l\xc3\xb6r\0"
        "augusti\0"
        "'den 'd MMMM yyyy\0"
        "dddd' den 'd MMMM yyyy\0"
@@ -2702,6 +2695,8 @@ static const char locale_strings [] = {
        "Jum\0"
        "Sab\0"
        "R\0"
+       "Januari\0"
+       "Februari\0"
        "Maret\0"
        "Mei\0"
        "Agustus\0"
@@ -4408,6 +4403,7 @@ static const char locale_strings [] = {
        "As\xe1\xb8\x8d\0"
        "Yennayer\0"
        "Yebrayer\0"
+       "Mars\0"
        "Ibrir\0"
        "Mayyu\0"
        "Yunyu\0"
@@ -4907,7 +4903,6 @@ static const char locale_strings [] = {
        "e.m.\0"
        "tysdag\0"
        "laurdag\0"
-       "m\xc3\xa5n\0"
        "tys\0"
        "lau\0"
        "Janeiro\0"
index 4c66a1fba2c4e2373e85ead3427745a9463e16d0..e8acbe99d1cfc46f07fdd46247b42c996ca15d57 100644 (file)
@@ -19,7 +19,7 @@
 #include "mono/metadata/appdomain.h"
 
 struct MonoMethodDesc {
-       char *namespace;
+       char *name_space;
        char *klass;
        char *name;
        char *args;
@@ -82,9 +82,11 @@ append_class_name (GString *res, MonoClass *class, gboolean include_namespace)
                append_class_name (res, class->nested_in, include_namespace);
                g_string_append_c (res, '/');
        }
-       if (include_namespace && *(class->name_space))
-               g_string_append_printf (res, "%s.", class->name_space);
-       g_string_append_printf (res, "%s", class->name);
+       if (include_namespace && *(class->name_space)) {
+               g_string_append (res, class->name_space);
+               g_string_append_c (res, '.');
+       }
+       g_string_append (res, class->name);
 }
 
 static MonoClass*
@@ -342,7 +344,7 @@ mono_method_desc_new (const char *name, gboolean include_namespace)
        result->include_namespace = include_namespace;
        result->name = method_name;
        result->klass = class_name;
-       result->namespace = use_namespace? class_nspace: NULL;
+       result->name_space = use_namespace? class_nspace: NULL;
        result->args = use_args? use_args: NULL;
        if (strstr (result->name, "*"))
                result->name_glob = TRUE;
@@ -371,7 +373,7 @@ mono_method_desc_from_method (MonoMethod *method)
        result->include_namespace = TRUE;
        result->name = g_strdup (method->name);
        result->klass = g_strdup (method->klass->name);
-       result->namespace = g_strdup (method->klass->name_space);
+       result->name_space = g_strdup (method->klass->name_space);
 
        return result;
 }
@@ -385,8 +387,8 @@ mono_method_desc_from_method (MonoMethod *method)
 void
 mono_method_desc_free (MonoMethodDesc *desc)
 {
-       if (desc->namespace)
-               g_free (desc->namespace);
+       if (desc->name_space)
+               g_free (desc->name_space);
        else if (desc->klass)
                g_free (desc->klass);
        g_free (desc);
@@ -452,7 +454,7 @@ match_class (MonoMethodDesc *desc, int pos, MonoClass *klass)
        if (!p) {
                if (strncmp (desc->klass, klass->name, pos))
                        return FALSE;
-               if (desc->namespace && strcmp (desc->namespace, klass->name_space))
+               if (desc->name_space && strcmp (desc->name_space, klass->name_space))
                        return FALSE;
                return TRUE;
        }
@@ -497,14 +499,14 @@ mono_method_desc_search_in_image (MonoMethodDesc *desc, MonoImage *image)
        int i;
 
        /* Handle short names for system classes */
-       if (!desc->namespace && image == mono_defaults.corlib) {
+       if (!desc->name_space && image == mono_defaults.corlib) {
                klass = find_system_class (desc->klass);
                if (klass)
                        return mono_method_desc_search_in_class (desc, klass);
        }
 
-       if (desc->namespace && desc->klass) {
-               klass = mono_class_from_name (image, desc->namespace, desc->klass);
+       if (desc->name_space && desc->klass) {
+               klass = mono_class_from_name (image, desc->name_space, desc->klass);
                if (!klass)
                        return NULL;
                return mono_method_desc_search_in_class (desc, klass);
index 660ffeebf4fb89bcd709f59dfee56b14c34b5707..728a0de1591828faeb737be2b118e26cb21a8914 100644 (file)
@@ -39,9 +39,11 @@ mono_ppdb_load_file (MonoImage *image)
        const char *filename;
        char *s, *ppdb_filename;
        MonoImageOpenStatus status;
+#if 0
        MonoTableInfo *tables;
        guint32 cols [MONO_MODULE_SIZE];
        const char *guid, *ppdb_guid;
+#endif
        MonoPPDBFile *ppdb;
 
        /* ppdb files drop the .exe/.dll extension */
@@ -59,7 +61,9 @@ mono_ppdb_load_file (MonoImage *image)
        if (!ppdb_image)
                return NULL;
 
+#if 0
        /* Check that the images match */
+       // FIXME: ppdb files no longer have a MODULE table */
        tables = image->tables;
        g_assert (tables [MONO_TABLE_MODULE].rows);
        mono_metadata_decode_row (&tables [MONO_TABLE_MODULE], 0, cols, MONO_MODULE_SIZE);
@@ -76,6 +80,7 @@ mono_ppdb_load_file (MonoImage *image)
                mono_image_close (ppdb_image);
                return NULL;
        }
+#endif
 
        ppdb = g_new0 (MonoPPDBFile, 1);
        ppdb->image = ppdb_image;
@@ -195,6 +200,7 @@ mono_ppdb_lookup_location (MonoDebugMethodInfo *minfo, uint32_t offset)
        const char *end;
        char *docname;
        int idx, size, docidx, iloffset, delta_il, delta_lines, delta_cols, start_line, start_col, adv_line, adv_col;
+       gboolean first = TRUE, first_non_hidden = TRUE;
        MonoDebugSourceLocation *location;
 
        g_assert (method->token);
@@ -210,26 +216,26 @@ mono_ppdb_lookup_location (MonoDebugMethodInfo *minfo, uint32_t offset)
        size = mono_metadata_decode_blob_size (ptr, &ptr);
        end = ptr + size;
 
-       /* First record */
+       /* Header */
+       /* LocalSignature */
+       mono_metadata_decode_value (ptr, &ptr);
        docidx = mono_metadata_decode_value (ptr, &ptr);
        docname = get_docname (ppdb, image, docidx);
-       iloffset = mono_metadata_decode_value (ptr, &ptr);
-       delta_lines = mono_metadata_decode_value (ptr, &ptr);
-       if (delta_lines == 0)
-               delta_cols = mono_metadata_decode_value (ptr, &ptr);
-       else
-               delta_cols = mono_metadata_decode_signed_value (ptr, &ptr);
-       start_line = mono_metadata_decode_value (ptr, &ptr);
-       start_col = mono_metadata_decode_value (ptr, &ptr);
 
+       iloffset = 0;
+       start_line = 0;
+       start_col = 0;
        while (ptr < end) {
-               if (iloffset > offset)
-                       break;
-
                delta_il = mono_metadata_decode_value (ptr, &ptr);
-               if (delta_il == 0)
+               if (!first && delta_il == 0) {
+                       /* Document record */
                        // FIXME:
                        g_assert_not_reached ();
+               }
+               if (!first && iloffset + delta_il > offset)
+                       break;
+               iloffset += delta_il;
+               first = FALSE;
 
                delta_lines = mono_metadata_decode_value (ptr, &ptr);
                if (delta_lines == 0)
@@ -239,15 +245,16 @@ mono_ppdb_lookup_location (MonoDebugMethodInfo *minfo, uint32_t offset)
                if (delta_lines == 0 && delta_cols == 0)
                        // FIXME:
                        g_assert_not_reached ();
-               adv_line = mono_metadata_decode_signed_value (ptr, &ptr);
-               adv_col = mono_metadata_decode_signed_value (ptr, &ptr);
-
-               if (iloffset + delta_il > offset)
-                       break;
-
-               iloffset += delta_il;
-               start_line += adv_line;
-               start_col += adv_col;
+               if (first_non_hidden) {
+                       start_line = mono_metadata_decode_value (ptr, &ptr);
+                       start_col = mono_metadata_decode_value (ptr, &ptr);
+               } else {
+                       adv_line = mono_metadata_decode_signed_value (ptr, &ptr);
+                       adv_col = mono_metadata_decode_signed_value (ptr, &ptr);
+                       start_line += adv_line;
+                       start_col += adv_col;
+               }
+               first_non_hidden = TRUE;
        }
 
        location = g_new0 (MonoDebugSourceLocation, 1);
@@ -270,6 +277,7 @@ mono_ppdb_get_seq_points (MonoDebugMethodInfo *minfo, char **source_file, GPtrAr
        const char *end;
        MonoDebugSourceInfo *docinfo;
        int i, method_idx, size, docidx, iloffset, delta_il, delta_lines, delta_cols, start_line, start_col, adv_line, adv_col;
+       gboolean first = TRUE, first_non_hidden = TRUE;
        GArray *sps;
        MonoSymSeqPoint sp;
        GPtrArray *sfiles = NULL;
@@ -307,35 +315,20 @@ mono_ppdb_get_seq_points (MonoDebugMethodInfo *minfo, char **source_file, GPtrAr
 
        sps = g_array_new (FALSE, TRUE, sizeof (MonoSymSeqPoint));
 
-       /* First record */
+       /* Header */
+       /* LocalSignature */
+       mono_metadata_decode_value (ptr, &ptr);
        docidx = mono_metadata_decode_value (ptr, &ptr);
        docinfo = get_docinfo (ppdb, image, docidx);
-       iloffset = mono_metadata_decode_value (ptr, &ptr);
-       delta_lines = mono_metadata_decode_value (ptr, &ptr);
-       if (delta_lines == 0)
-               delta_cols = mono_metadata_decode_value (ptr, &ptr);
-       else
-               delta_cols = mono_metadata_decode_signed_value (ptr, &ptr);
-       start_line = mono_metadata_decode_value (ptr, &ptr);
-       start_col = mono_metadata_decode_value (ptr, &ptr);
-
        if (sfiles)
                g_ptr_array_add (sfiles, docinfo);
-       if (source_files)
-               g_ptr_array_add (sindexes, GUINT_TO_POINTER (sfiles->len - 1));
-
-       memset (&sp, 0, sizeof (sp));
-       sp.il_offset = iloffset;
-       sp.line = start_line;
-       sp.column = start_col;
-       sp.end_line = start_line + delta_lines;
-       sp.end_column = start_col + delta_cols;
-
-       g_array_append_val (sps, sp);
 
+       iloffset = 0;
+       start_line = 0;
+       start_col = 0;
        while (ptr < end) {
                delta_il = mono_metadata_decode_value (ptr, &ptr);
-               if (delta_il == 0) {
+               if (!first && delta_il == 0) {
                        /* subsequent-document-record */
                        docidx = mono_metadata_decode_value (ptr, &ptr);
                        docinfo = get_docinfo (ppdb, image, docidx);
@@ -343,6 +336,9 @@ mono_ppdb_get_seq_points (MonoDebugMethodInfo *minfo, char **source_file, GPtrAr
                                g_ptr_array_add (sfiles, docinfo);
                        continue;
                }
+               iloffset += delta_il;
+               first = FALSE;
+
                delta_lines = mono_metadata_decode_value (ptr, &ptr);
                if (delta_lines == 0)
                        delta_cols = mono_metadata_decode_value (ptr, &ptr);
@@ -351,16 +347,19 @@ mono_ppdb_get_seq_points (MonoDebugMethodInfo *minfo, char **source_file, GPtrAr
 
                if (delta_lines == 0 && delta_cols == 0) {
                        /* Hidden sequence point */
-                       // FIXME: This seems to be followed by garbage
                        continue;
                }
 
-               adv_line = mono_metadata_decode_signed_value (ptr, &ptr);
-               adv_col = mono_metadata_decode_signed_value (ptr, &ptr);
-
-               iloffset += delta_il;
-               start_line += adv_line;
-               start_col += adv_col;
+               if (first_non_hidden) {
+                       start_line = mono_metadata_decode_value (ptr, &ptr);
+                       start_col = mono_metadata_decode_value (ptr, &ptr);
+               } else {
+                       adv_line = mono_metadata_decode_signed_value (ptr, &ptr);
+                       adv_col = mono_metadata_decode_signed_value (ptr, &ptr);
+                       start_line += adv_line;
+                       start_col += adv_col;
+               }
+               first_non_hidden = TRUE;
 
                memset (&sp, 0, sizeof (sp));
                sp.il_offset = iloffset;
index db0421ec9ffbab9d2b9a6f2ba9d502672a06268b..64cb3fd973ffc51e3d493b6c87fa9af7f25f9ca4 100644 (file)
@@ -16,9 +16,6 @@
 #include <mono/io-layer/io-layer.h>
 #include <mono/metadata/mempool-internals.h>
 
-
-extern mono_mutex_t mono_delegate_section;
-
 /*
  * If this is set, the memory belonging to appdomains is not freed when a domain is
  * unloaded, and assemblies loaded by the appdomain are not unloaded either. This
@@ -100,13 +97,7 @@ typedef struct {
  * Contains information about the type arguments for generic shared methods.
  */
 typedef struct {
-       /*
-        * If not NULL, determines whenever the class type arguments of the gshared method are references or vtypes.
-        * The array length is equal to class_inst->type_argv.
-        */
-       gboolean *var_is_vt;
-       /* Same for method type parameters */
-       gboolean *mvar_is_vt;
+       gboolean is_gsharedvt;
 } MonoGenericSharingContext;
 
 /* Simplified DWARF location list entry */
@@ -405,13 +396,6 @@ struct _MonoDomain {
        MonoClass *sockaddr_class;
        MonoClassField *sockaddr_data_field;
 
-       /* Used by threadpool.c */
-       MonoImage *system_image;
-       MonoClass *corlib_asyncresult_class;
-       MonoClass *socket_class;
-       MonoClass *ad_unloaded_ex_class;
-       MonoClass *process_class;
-
        /* Cache function pointers for architectures  */
        /* that require wrappers */
        GHashTable *ftnptrs_hash;
old mode 100755 (executable)
new mode 100644 (file)
index cea93e2..41fa013
@@ -343,7 +343,7 @@ domain_id_alloc (MonoDomain *domain)
        int id = -1, i;
        if (!appdomains_list) {
                appdomain_list_size = 2;
-               appdomains_list = mono_gc_alloc_fixed (appdomain_list_size * sizeof (void*), NULL);
+               appdomains_list = mono_gc_alloc_fixed (appdomain_list_size * sizeof (void*), MONO_GC_DESCRIPTOR_NULL);
        }
        for (i = appdomain_next; i < appdomain_list_size; ++i) {
                if (!appdomains_list [i]) {
@@ -365,7 +365,7 @@ domain_id_alloc (MonoDomain *domain)
                if (new_size >= (1 << 16))
                        g_assert_not_reached ();
                id = appdomain_list_size;
-               new_list = mono_gc_alloc_fixed (new_size * sizeof (void*), NULL);
+               new_list = mono_gc_alloc_fixed (new_size * sizeof (void*), MONO_GC_DESCRIPTOR_NULL);
                memcpy (new_list, appdomains_list, appdomain_list_size * sizeof (void*));
                mono_gc_free_fixed (appdomains_list);
                appdomains_list = new_list;
@@ -380,7 +380,7 @@ domain_id_alloc (MonoDomain *domain)
 }
 
 static gsize domain_gc_bitmap [sizeof(MonoDomain)/4/32 + 1];
-static gpointer domain_gc_desc = NULL;
+static MonoGCDescriptor domain_gc_desc = MONO_GC_DESCRIPTOR_NULL;
 static guint32 domain_shadow_serial = 0L;
 
 MonoDomain *
@@ -412,7 +412,7 @@ mono_domain_create (void)
        domain = mono_gc_alloc_fixed (sizeof (MonoDomain), NULL);
 #else
        domain = mono_gc_alloc_fixed (sizeof (MonoDomain), domain_gc_desc);
-       mono_gc_register_root ((char*)&(domain->MONO_DOMAIN_FIRST_GC_TRACKED), G_STRUCT_OFFSET (MonoDomain, MONO_DOMAIN_LAST_GC_TRACKED) - G_STRUCT_OFFSET (MonoDomain, MONO_DOMAIN_FIRST_GC_TRACKED), NULL);
+       mono_gc_register_root ((char*)&(domain->MONO_DOMAIN_FIRST_GC_TRACKED), G_STRUCT_OFFSET (MonoDomain, MONO_DOMAIN_LAST_GC_TRACKED) - G_STRUCT_OFFSET (MonoDomain, MONO_DOMAIN_FIRST_GC_TRACKED), MONO_GC_DESCRIPTOR_NULL);
 #endif
        domain->shadow_serial = shadow_serial;
        domain->domain = NULL;
@@ -486,7 +486,7 @@ mono_init_internal (const char *filename, const char *exe_filename, const char *
        MonoAssembly *ass = NULL;
        MonoImageOpenStatus status = MONO_IMAGE_OK;
        const MonoRuntimeInfo* runtimes [G_N_ELEMENTS (supported_runtimes) + 1];
-       int n;
+       int n, dummy;
 
 #ifdef DEBUG_DOMAIN_UNLOAD
        debug_domain_unload = TRUE;
@@ -514,6 +514,7 @@ mono_init_internal (const char *filename, const char *exe_filename, const char *
        mono_counters_register ("Total code space allocated", MONO_COUNTER_INT|MONO_COUNTER_JIT, &total_domain_code_alloc);
 
        mono_gc_base_init ();
+       mono_thread_info_attach (&dummy);
 
        MONO_FAST_TLS_INIT (tls_appdomain);
        mono_native_tls_alloc (&appdomain_thread_id, NULL);
@@ -843,8 +844,22 @@ mono_init_internal (const char *filename, const char *exe_filename, const char *
        mono_defaults.generic_ireadonlylist_class = mono_class_from_name (
                mono_defaults.corlib, "System.Collections.Generic", "IReadOnlyList`1");
 
+       mono_defaults.threadpool_wait_callback_class = mono_class_from_name (
+               mono_defaults.corlib, "System.Threading", "_ThreadPoolWaitCallback");
+       if (!mono_defaults.threadpool_wait_callback_class) {
+               /* This can happen with an old mscorlib */
+               fprintf (stderr, "Corlib too old for this runtime.\n");
+               fprintf (stderr, "Loaded from: %s\n",
+                                mono_defaults.corlib? mono_image_get_filename (mono_defaults.corlib): "unknown");
+               exit (1);
+       }
+       mono_defaults.threadpool_perform_wait_callback_method = mono_class_get_method_from_name (
+               mono_defaults.threadpool_wait_callback_class, "PerformWaitCallback", 0);
+
        domain->friendly_name = g_path_get_basename (filename);
 
+       mono_profiler_appdomain_name (domain, domain->friendly_name);
+
        return domain;
 }
 
@@ -1021,7 +1036,7 @@ mono_domain_foreach (MonoDomainFunc func, gpointer user_data)
         */
        mono_appdomains_lock ();
        size = appdomain_list_size;
-       copy = mono_gc_alloc_fixed (appdomain_list_size * sizeof (void*), NULL);
+       copy = mono_gc_alloc_fixed (appdomain_list_size * sizeof (void*), MONO_GC_DESCRIPTOR_NULL);
        memcpy (copy, appdomains_list, appdomain_list_size * sizeof (void*));
        mono_appdomains_unlock ();
 
@@ -1290,10 +1305,10 @@ mono_domain_free (MonoDomain *domain, gboolean force)
 }
 
 /**
- * mono_domain_get_id:
+ * mono_domain_get_by_id:
  * @domainid: the ID
  *
- * Returns: the domain for a specific domain id.
+ * Returns: the domain for a specific domain id.
  */
 MonoDomain * 
 mono_domain_get_by_id (gint32 domainid) 
@@ -1310,12 +1325,35 @@ mono_domain_get_by_id (gint32 domainid)
        return domain;
 }
 
+/*
+ * mono_domain_get_id:
+ *
+ * A domain ID is guaranteed to be unique for as long as the domain
+ * using it is alive. It may be reused later once the domain has been
+ * unloaded.
+ *
+ * Returns: The unique ID for @domain.
+ */
 gint32
 mono_domain_get_id (MonoDomain *domain)
 {
        return domain->domain_id;
 }
 
+/*
+ * mono_domain_get_friendly_name:
+ *
+ * The returned string's lifetime is the same as @domain's. Consider
+ * copying it if you need to store it somewhere.
+ *
+ * Returns: The friendly name of @domain. Can be NULL if not yet set.
+ */
+const char *
+mono_domain_get_friendly_name (MonoDomain *domain)
+{
+       return domain->friendly_name;
+}
+
 /*
  * mono_domain_alloc:
  *
@@ -1491,6 +1529,31 @@ mono_context_get (void)
        return GET_APPCONTEXT ();
 }
 
+/*
+ * mono_context_get_id:
+ *
+ * Context IDs are guaranteed to be unique for the duration of a Mono
+ * process; they are never reused.
+ *
+ * Returns: The unique ID for @context.
+ */
+gint32
+mono_context_get_id (MonoAppContext *context)
+{
+       return context->context_id;
+}
+
+/*
+ * mono_context_get_domain_id:
+ *
+ * Returns: The ID of the domain that @context was created in.
+ */
+gint32
+mono_context_get_domain_id (MonoAppContext *context)
+{
+       return context->domain_id;
+}
+
 /* LOCKING: the caller holds the lock for this domain */
 void
 mono_domain_add_class_static_data (MonoDomain *domain, MonoClass *klass, gpointer data, guint32 *bitmap)
@@ -1897,9 +1960,9 @@ mono_get_aot_cache_config (void)
 void
 mono_domain_lock (MonoDomain *domain)
 {
-       MONO_TRY_BLOCKING
+       MONO_TRY_BLOCKING;
        mono_locks_acquire (&(domain)->lock, DomainLock);
-       MONO_FINISH_TRY_BLOCKING
+       MONO_FINISH_TRY_BLOCKING;
 }
 
 void
index c4bb6df67659c364a42f5a2a2c47943bea43b63c..2dc8f8aa761908a846dd808b2d24c8aa033652a1 100644 (file)
@@ -269,7 +269,7 @@ MonoBoolean
 ves_icall_System_IO_MonoIO_CreateDirectory (MonoString *path, gint32 *error)
 {
        gboolean ret;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        
        *error=ERROR_SUCCESS;
        
@@ -278,7 +278,7 @@ ves_icall_System_IO_MonoIO_CreateDirectory (MonoString *path, gint32 *error)
                *error=GetLastError ();
        }
 
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return(ret);
 }
 
@@ -286,7 +286,7 @@ MonoBoolean
 ves_icall_System_IO_MonoIO_RemoveDirectory (MonoString *path, gint32 *error)
 {
        gboolean ret;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        
        *error=ERROR_SUCCESS;
        
@@ -295,25 +295,25 @@ ves_icall_System_IO_MonoIO_RemoveDirectory (MonoString *path, gint32 *error)
                *error=GetLastError ();
        }
 
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return(ret);
 }
 
 static gchar *
-get_search_dir (MonoString *pattern)
+get_search_dir (const gunichar2 *pattern)
 {
        gchar *p;
        gchar *result;
 
-       p = mono_string_to_utf8 (pattern);
+       p = g_utf16_to_utf8 (pattern, -1, NULL, NULL, NULL);
        result = g_path_get_dirname (p);
        g_free (p);
        return result;
 }
 
 static GPtrArray *
-get_filesystem_entries (MonoString *path,
-                                                MonoString *path_with_pattern,
+get_filesystem_entries (const gunichar2 *path,
+                                                const gunichar2 *path_with_pattern,
                                                 gint attrs, gint mask,
                                                 gint32 *error)
 {
@@ -325,7 +325,7 @@ get_filesystem_entries (MonoString *path,
        gint32 attributes;
 
        mask = convert_attrs (mask);
-       attributes = get_file_attributes (mono_string_chars (path));
+       attributes = get_file_attributes (path);
        if (attributes != -1) {
                if ((attributes & FILE_ATTRIBUTE_DIRECTORY) == 0) {
                        *error = ERROR_INVALID_NAME;
@@ -336,7 +336,7 @@ get_filesystem_entries (MonoString *path,
                goto fail;
        }
        
-       find_handle = FindFirstFile (mono_string_chars (path_with_pattern), &data);
+       find_handle = FindFirstFile (path_with_pattern, &data);
        if (find_handle == INVALID_HANDLE_VALUE) {
                gint32 find_error = GetLastError ();
                
@@ -402,9 +402,9 @@ ves_icall_System_IO_MonoIO_GetFileSystemEntries (MonoString *path,
        
        *error = ERROR_SUCCESS;
 
-       MONO_PREPARE_BLOCKING
-       names = get_filesystem_entries (path, path_with_pattern, attrs, mask, error);
-       MONO_FINISH_BLOCKING
+       MONO_PREPARE_BLOCKING;
+       names = get_filesystem_entries (mono_string_chars (path), mono_string_chars (path_with_pattern), attrs, mask, error);
+       MONO_FINISH_BLOCKING;
 
        if (!names) {
                // If there's no array and no error, then return an empty array.
@@ -523,14 +523,14 @@ ves_icall_System_IO_MonoIO_FindClose (gpointer handle)
        IncrementalFind *ifh = handle;
        gint32 error;
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        if (FindClose (ifh->find_handle) == FALSE){
                error = GetLastError ();
        } else
                error = ERROR_SUCCESS;
        g_free (ifh->utf8_path);
        g_free (ifh);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        return error;
 }
@@ -591,7 +591,7 @@ ves_icall_System_IO_MonoIO_MoveFile (MonoString *path, MonoString *dest,
                                     gint32 *error)
 {
        gboolean ret;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        
        *error=ERROR_SUCCESS;
 
@@ -600,7 +600,7 @@ ves_icall_System_IO_MonoIO_MoveFile (MonoString *path, MonoString *dest,
                *error=GetLastError ();
        }
 
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return(ret);
 }
 
@@ -612,7 +612,7 @@ ves_icall_System_IO_MonoIO_ReplaceFile (MonoString *sourceFileName, MonoString *
        gboolean ret;
        gunichar2 *utf16_sourceFileName = NULL, *utf16_destinationFileName = NULL, *utf16_destinationBackupFileName = NULL;
        guint32 replaceFlags = REPLACEFILE_WRITE_THROUGH;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
 
        if (sourceFileName)
                utf16_sourceFileName = mono_string_chars (sourceFileName);
@@ -631,7 +631,7 @@ ves_icall_System_IO_MonoIO_ReplaceFile (MonoString *sourceFileName, MonoString *
        if (ret == FALSE)
                *error = GetLastError ();
 
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return ret;
 }
 
@@ -640,7 +640,7 @@ ves_icall_System_IO_MonoIO_CopyFile (MonoString *path, MonoString *dest,
                                     MonoBoolean overwrite, gint32 *error)
 {
        gboolean ret;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        
        *error=ERROR_SUCCESS;
        
@@ -649,7 +649,7 @@ ves_icall_System_IO_MonoIO_CopyFile (MonoString *path, MonoString *dest,
                *error=GetLastError ();
        }
        
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return(ret);
 }
 
@@ -657,7 +657,7 @@ MonoBoolean
 ves_icall_System_IO_MonoIO_DeleteFile (MonoString *path, gint32 *error)
 {
        gboolean ret;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        
        *error=ERROR_SUCCESS;
        
@@ -666,7 +666,7 @@ ves_icall_System_IO_MonoIO_DeleteFile (MonoString *path, gint32 *error)
                *error=GetLastError ();
        }
        
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return(ret);
 }
 
@@ -674,7 +674,7 @@ gint32
 ves_icall_System_IO_MonoIO_GetFileAttributes (MonoString *path, gint32 *error)
 {
        gint32 ret;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
 
        *error=ERROR_SUCCESS;
        
@@ -691,7 +691,7 @@ ves_icall_System_IO_MonoIO_GetFileAttributes (MonoString *path, gint32 *error)
                *error=GetLastError ();
        }
        
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return(ret);
 }
 
@@ -700,7 +700,7 @@ ves_icall_System_IO_MonoIO_SetFileAttributes (MonoString *path, gint32 attrs,
                                              gint32 *error)
 {
        gboolean ret;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        
        *error=ERROR_SUCCESS;
        
@@ -710,7 +710,7 @@ ves_icall_System_IO_MonoIO_SetFileAttributes (MonoString *path, gint32 attrs,
                *error=GetLastError ();
        }
 
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return(ret);
 }
 
@@ -718,7 +718,7 @@ gint32
 ves_icall_System_IO_MonoIO_GetFileType (HANDLE handle, gint32 *error)
 {
        gboolean ret;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
 
        *error=ERROR_SUCCESS;
        
@@ -730,7 +730,7 @@ ves_icall_System_IO_MonoIO_GetFileType (HANDLE handle, gint32 *error)
                *error=GetLastError ();
        }
        
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return(ret);
 }
 
@@ -740,7 +740,7 @@ ves_icall_System_IO_MonoIO_GetFileStat (MonoString *path, MonoIOStat *stat,
 {
        gboolean result;
        WIN32_FILE_ATTRIBUTE_DATA data;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
 
        *error=ERROR_SUCCESS;
        
@@ -753,7 +753,7 @@ ves_icall_System_IO_MonoIO_GetFileStat (MonoString *path, MonoIOStat *stat,
                memset (stat, 0, sizeof (MonoIOStat));
        }
 
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return result;
 }
 
@@ -765,7 +765,7 @@ ves_icall_System_IO_MonoIO_Open (MonoString *filename, gint32 mode,
        HANDLE ret;
        int attributes, attrs;
        gunichar2 *chars;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
 
        chars = mono_string_chars (filename);   
        *error=ERROR_SUCCESS;
@@ -810,7 +810,7 @@ ves_icall_System_IO_MonoIO_Open (MonoString *filename, gint32 mode,
                *error=GetLastError ();
        } 
        
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return(ret);
 }
 
@@ -818,7 +818,7 @@ MonoBoolean
 ves_icall_System_IO_MonoIO_Close (HANDLE handle, gint32 *error)
 {
        gboolean ret;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
 
        *error=ERROR_SUCCESS;
        
@@ -827,7 +827,7 @@ ves_icall_System_IO_MonoIO_Close (HANDLE handle, gint32 *error)
                *error=GetLastError ();
        }
        
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return(ret);
 }
 
@@ -851,9 +851,9 @@ ves_icall_System_IO_MonoIO_Read (HANDLE handle, MonoArray *dest,
 
        buffer = mono_array_addr (dest, guchar, dest_offset);
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        result = ReadFile (handle, buffer, count, &n, NULL);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        if (!result) {
                *error=GetLastError ();
@@ -882,9 +882,9 @@ ves_icall_System_IO_MonoIO_Write (HANDLE handle, MonoArray *src,
        }
        
        buffer = mono_array_addr (src, guchar, src_offset);
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        result = WriteFile (handle, buffer, count, &n, NULL);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        if (!result) {
                *error=GetLastError ();
@@ -899,7 +899,7 @@ ves_icall_System_IO_MonoIO_Seek (HANDLE handle, gint64 offset, gint32 origin,
                                 gint32 *error)
 {
        gint32 offset_hi;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
 
        *error=ERROR_SUCCESS;
        
@@ -911,7 +911,7 @@ ves_icall_System_IO_MonoIO_Seek (HANDLE handle, gint64 offset, gint32 origin,
                *error=GetLastError ();
        }
 
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return offset | ((gint64)offset_hi << 32);
 }
 
@@ -919,7 +919,7 @@ MonoBoolean
 ves_icall_System_IO_MonoIO_Flush (HANDLE handle, gint32 *error)
 {
        gboolean ret;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
 
        *error=ERROR_SUCCESS;
        
@@ -928,7 +928,7 @@ ves_icall_System_IO_MonoIO_Flush (HANDLE handle, gint32 *error)
                *error=GetLastError ();
        }
        
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return(ret);
 }
 
@@ -937,7 +937,7 @@ ves_icall_System_IO_MonoIO_GetLength (HANDLE handle, gint32 *error)
 {
        gint64 length;
        guint32 length_hi;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
 
        *error=ERROR_SUCCESS;
        
@@ -946,7 +946,7 @@ ves_icall_System_IO_MonoIO_GetLength (HANDLE handle, gint32 *error)
                *error=GetLastError ();
        }
        
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return length | ((gint64)length_hi << 32);
 }
 
@@ -1008,7 +1008,7 @@ ves_icall_System_IO_MonoIO_SetFileTime (HANDLE handle, gint64 creation_time,
        const FILETIME *creation_filetime;
        const FILETIME *last_access_filetime;
        const FILETIME *last_write_filetime;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
 
        *error=ERROR_SUCCESS;
        
@@ -1032,7 +1032,7 @@ ves_icall_System_IO_MonoIO_SetFileTime (HANDLE handle, gint64 creation_time,
                *error=GetLastError ();
        }
 
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return(ret);
 }
 
@@ -1065,9 +1065,9 @@ ves_icall_System_IO_MonoIO_CreatePipe (HANDLE *read_handle,
        attr.bInheritHandle=TRUE;
        attr.lpSecurityDescriptor=NULL;
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        ret=CreatePipe (read_handle, write_handle, &attr, 0);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        if(ret==FALSE) {
                /* FIXME: throw an exception? */
@@ -1084,9 +1084,9 @@ MonoBoolean ves_icall_System_IO_MonoIO_DuplicateHandle (HANDLE source_process_ha
        /* This is only used on Windows */
        gboolean ret;
        
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        ret=DuplicateHandle (source_process_handle, source_handle, target_process_handle, target_handle, access, inherit, options);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        if(ret==FALSE) {
                /* FIXME: throw an exception? */
@@ -1183,7 +1183,7 @@ ves_icall_System_IO_MonoIO_GetTempPath (MonoString **mono_name)
        gunichar2 *name;
        int ret;
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        name=g_new0 (gunichar2, 256);
        
        ret=GetTempPath (256, name);
@@ -1193,7 +1193,7 @@ ves_icall_System_IO_MonoIO_GetTempPath (MonoString **mono_name)
                name=g_new0 (gunichar2, ret+2); /* include the terminator */
                ret=GetTempPath (ret, name);
        }
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        
        if(ret>0) {
 #ifdef DEBUG
@@ -1213,7 +1213,7 @@ void ves_icall_System_IO_MonoIO_Lock (HANDLE handle, gint64 position,
                                      gint64 length, gint32 *error)
 {
        gboolean ret;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        
        *error=ERROR_SUCCESS;
        
@@ -1223,14 +1223,14 @@ void ves_icall_System_IO_MonoIO_Lock (HANDLE handle, gint64 position,
                *error = GetLastError ();
        }
 
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 }
 
 void ves_icall_System_IO_MonoIO_Unlock (HANDLE handle, gint64 position,
                                        gint64 length, gint32 *error)
 {
        gboolean ret;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        
        *error=ERROR_SUCCESS;
        
@@ -1240,7 +1240,7 @@ void ves_icall_System_IO_MonoIO_Unlock (HANDLE handle, gint64 position,
                *error = GetLastError ();
        }
 
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 }
 
 //Support for io-layer free mmap'd files.
@@ -1254,7 +1254,7 @@ mono_filesize_from_path (MonoString *string)
        gint64 res;
        char *path = mono_string_to_utf8 (string);
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        if (stat (path, &buf) == -1)
                res = -1;
        else
@@ -1262,7 +1262,7 @@ mono_filesize_from_path (MonoString *string)
 
        g_free (path);
 
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return res;
 }
 
@@ -1272,9 +1272,9 @@ mono_filesize_from_fd (int fd)
        struct stat buf;
        int res;
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        res = fstat (fd, &buf);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        
        if (res == -1)
                return (gint64)-1;
index 227b3cc96971a800e71c7a85bae27f3c8dcd2859..3de44d7a1db89342a2bd1282f14545a232ac12ed 100644 (file)
@@ -408,22 +408,26 @@ void *
 mono_mmap_open_handle (void *input_fd, MonoString *mapName, gint64 *capacity, int access, int options, int *error)
 {
        MmapHandle *handle;
-       char *c_mapName = mono_string_to_utf8 (mapName);
-
-       named_regions_lock ();
-       handle = (MmapHandle*)g_hash_table_lookup (named_regions, c_mapName);
-       if (handle) {
-               *error = FILE_ALREADY_EXISTS;
-               handle = NULL;
-       } else {
-               //XXX we're exploiting wapi HANDLE == FD equivalence. THIS IS FRAGILE, create a _wapi_handle_to_fd call
+       if (!mapName) {
                handle = open_file_map (NULL, GPOINTER_TO_INT (input_fd), FILE_MODE_OPEN, capacity, access, options, error);
-               handle->name = g_strdup (c_mapName);
-               g_hash_table_insert (named_regions, handle->name, handle);
-       }
-       named_regions_unlock ();
+       } else {
+               char *c_mapName = mono_string_to_utf8 (mapName);
 
-       g_free (c_mapName);
+               named_regions_lock ();
+               handle = (MmapHandle*)g_hash_table_lookup (named_regions, c_mapName);
+               if (handle) {
+                       *error = FILE_ALREADY_EXISTS;
+                       handle = NULL;
+               } else {
+                       //XXX we're exploiting wapi HANDLE == FD equivalence. THIS IS FRAGILE, create a _wapi_handle_to_fd call
+                       handle = open_file_map (NULL, GPOINTER_TO_INT (input_fd), FILE_MODE_OPEN, capacity, access, options, error);
+                       handle->name = g_strdup (c_mapName);
+                       g_hash_table_insert (named_regions, handle->name, handle);
+               }
+               named_regions_unlock ();
+
+               g_free (c_mapName);
+       }
        return handle;
 }
 
index 108540654798a3e2051a3200840ab07264ab8ee5..def11d9856d8be929b37c1fc92f0c48651ca4dd4 100644 (file)
 #include <config.h>
 #endif
 
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_EVENT_H
+#include <sys/event.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+
 #include <mono/metadata/appdomain.h>
 #include <mono/metadata/exception.h>
 #include <mono/metadata/filewatcher.h>
@@ -189,3 +199,54 @@ ves_icall_System_IO_InotifyWatcher_RemoveWatch (int fd, gint32 watch_descriptor)
 }
 #endif
 
+#if HAVE_KQUEUE
+
+static void
+interrupt_kevent (gpointer data)
+{
+       int *kq_ptr = data;
+
+       /* Interrupt the kevent () call by closing the fd */
+       close (*kq_ptr);
+       /* Signal to managed code that the fd is closed */
+       *kq_ptr = -1;
+}
+
+/*
+ * ves_icall_System_IO_KqueueMonitor_kevent_notimeout:
+ *
+ *   Call kevent (), while handling runtime interruptions.
+ */
+int
+ves_icall_System_IO_KqueueMonitor_kevent_notimeout (int *kq_ptr, gpointer changelist, int nchanges, gpointer eventlist, int nevents)
+{
+       int res;
+       gboolean interrupted;
+
+       mono_thread_info_install_interrupt (interrupt_kevent, kq_ptr, &interrupted);
+       if (interrupted) {
+               close (*kq_ptr);
+               *kq_ptr = -1;
+               return -1;
+       }
+
+       MONO_PREPARE_BLOCKING;
+       res = kevent (*kq_ptr, changelist, nchanges, eventlist, nevents, NULL);
+       MONO_FINISH_BLOCKING;
+
+       mono_thread_info_uninstall_interrupt (&interrupted);
+
+       return res;
+}
+
+#else
+
+int
+ves_icall_System_IO_KqueueMonitor_kevent_notimeout (int *kq_ptr, gpointer changelist, int nchanges, gpointer eventlist, int nevents)
+{
+       g_assert_not_reached ();
+       return -1;
+}
+
+#endif /* #if HAVE_KQUEUE */
+
index c57be128325b0e1f203cdaf325177806779463d3..605fd0e9ac2503d70c8eb2051e4bf7043adf4846 100644 (file)
@@ -32,6 +32,8 @@ int ves_icall_System_IO_InotifyWatcher_GetInotifyInstance (void);
 int ves_icall_System_IO_InotifyWatcher_AddWatch (int fd, MonoString *directory, gint32 mask);
 int ves_icall_System_IO_InotifyWatcher_RemoveWatch (int fd, gint32 watch_descriptor);
 
+int ves_icall_System_IO_KqueueMonitor_kevent_notimeout (int *kq, gpointer changelist, int nchanges, gpointer eventlist, int nevents);
+
 G_END_DECLS
 
 #endif
index a0890de0715645c15ff7c798fc4cddbb201820cc..d55e56d5d0dd653e5ba9c528c0b9a68c1e4d4fb9 100644 (file)
@@ -20,7 +20,7 @@
 #define mono_domain_finalizers_unlock(domain) mono_mutex_unlock (&(domain)->finalizable_objects_hash_lock);
 
 /* Register a memory area as a conservatively scanned GC root */
-#define MONO_GC_REGISTER_ROOT_PINNING(x) mono_gc_register_root ((char*)&(x), sizeof(x), NULL)
+#define MONO_GC_REGISTER_ROOT_PINNING(x) mono_gc_register_root ((char*)&(x), sizeof(x), MONO_GC_DESCRIPTOR_NULL)
 
 #define MONO_GC_UNREGISTER_ROOT(x) mono_gc_deregister_root ((char*)&(x))
 
@@ -39,7 +39,7 @@
  * by mono_gc_alloc_fixed ().
  */
 /* For SGEN, the result of alloc_fixed () is not GC tracked memory */
-#define MONO_GC_ROOT_DESCR_FOR_FIXED(n) (mono_gc_is_moving () ? mono_gc_make_root_descr_all_refs (0) : NULL)
+#define MONO_GC_ROOT_DESCR_FOR_FIXED(n) (mono_gc_is_moving () ? mono_gc_make_root_descr_all_refs (0) : MONO_GC_DESCRIPTOR_NULL)
 
 /* Register a memory location holding a single object reference as a GC root */
 #define MONO_GC_REGISTER_ROOT_SINGLE(x) do { \
@@ -84,6 +84,7 @@ MonoBoolean ves_icall_Mono_Runtime_SetGCAllowSynchronousMajor (MonoBoolean flag)
 extern void mono_gc_init (void);
 extern void mono_gc_base_init (void);
 extern void mono_gc_cleanup (void);
+extern void mono_gc_mutex_cleanup (void);
 extern void mono_gc_base_cleanup (void);
 
 /*
@@ -124,11 +125,11 @@ mono_gc_GCHandle_CheckCurrentDomain (guint32 gchandle);
  * foreach (ref in GC references in the are structure pointed to by ADDR)
  *    mark_func (ref)
  */
-typedef void (*MonoGCMarkFunc)     (void **addr, void *gc_data);
+typedef void (*MonoGCMarkFunc)     (MonoObject **addr, void *gc_data);
 typedef void (*MonoGCRootMarkFunc) (void *addr, MonoGCMarkFunc mark_func, void *gc_data);
 
 /* Create a descriptor with a user defined marking function */
-void *mono_gc_make_root_descr_user (MonoGCRootMarkFunc marker);
+MonoGCDescriptor mono_gc_make_root_descr_user (MonoGCRootMarkFunc marker);
 
 /* Return whenever user defined marking functions are supported */
 gboolean mono_gc_user_markers_supported (void);
@@ -141,7 +142,7 @@ gboolean mono_gc_user_markers_supported (void);
  * NOTE: Under Boehm, this returns memory allocated using GC_malloc, so the result should
  * be stored into a location registered using MONO_GC_REGISTER_ROOT_FIXED ().
  */
-void* mono_gc_alloc_fixed            (size_t size, void *descr);
+void* mono_gc_alloc_fixed            (size_t size, MonoGCDescriptor descr);
 void  mono_gc_free_fixed             (void* addr);
 
 /* make sure the gchandle was allocated for an object in domain */
@@ -159,11 +160,11 @@ void* mono_gc_alloc_obj (MonoVTable *vtable, size_t size);
 void* mono_gc_alloc_vector (MonoVTable *vtable, size_t size, uintptr_t max_length);
 void* mono_gc_alloc_array (MonoVTable *vtable, size_t size, uintptr_t max_length, uintptr_t bounds_size);
 void* mono_gc_alloc_string (MonoVTable *vtable, size_t size, gint32 len);
-void* mono_gc_make_descr_for_string (gsize *bitmap, int numbits);
+MonoGCDescriptor mono_gc_make_descr_for_string (gsize *bitmap, int numbits);
 
 void  mono_gc_register_for_finalization (MonoObject *obj, void *user_data);
 void  mono_gc_add_memory_pressure (gint64 value);
-MONO_API int   mono_gc_register_root (char *start, size_t size, void *descr);
+MONO_API int   mono_gc_register_root (char *start, size_t size, MonoGCDescriptor descr);
 void  mono_gc_deregister_root (char* addr);
 int   mono_gc_finalizers_for_domain (MonoDomain *domain, MonoObject **out_array, int out_size);
 void  mono_gc_run_finalize (void *obj, void *data);
@@ -180,7 +181,7 @@ void* mono_gc_alloc_mature (MonoVTable *vtable);
  * FIXME: Add an API for clearing remset entries if a root with a user defined
  * mark routine is deleted.
  */
-int mono_gc_register_root_wbarrier (char *start, size_t size, void *descr);
+int mono_gc_register_root_wbarrier (char *start, size_t size, MonoGCDescriptor descr);
 
 void mono_gc_wbarrier_set_root (gpointer ptr, MonoObject *value);
 
index 4bcdfd55e0dce63229d6c0eadef5285cdf7962f2..ff442e43f6a7faf3484ec2848e7d0bc01d0f6438 100644 (file)
@@ -27,4 +27,4 @@
 GCStats gc_stats = {};
 #else
 GCStats gc_stats;
-#endif
\ No newline at end of file
+#endif
index efd062d4405b07439cce8e2a175bcf36ed5f3c5a..17afcf6be462980a96153b99e672c716fbc01847 100644 (file)
@@ -22,9 +22,8 @@
 #include <mono/metadata/class-internals.h>
 #include <mono/metadata/metadata-internals.h>
 #include <mono/metadata/mono-mlist.h>
-#include <mono/metadata/threadpool.h>
-#include <mono/metadata/threadpool-internals.h>
 #include <mono/metadata/threads-types.h>
+#include <mono/metadata/threadpool-ms.h>
 #include <mono/sgen/sgen-conf.h>
 #include <mono/utils/mono-logger-internal.h>
 #include <mono/metadata/gc-internal.h>
@@ -83,9 +82,9 @@ guarded_wait (HANDLE handle, guint32 timeout, gboolean alertable)
 {
        guint32 result;
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        result = WaitForSingleObjectEx (handle, timeout, alertable);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        return result;
 }
@@ -242,7 +241,7 @@ mono_gc_run_finalize (void *obj, void *data)
                g_log ("mono-gc-finalizers", G_LOG_LEVEL_MESSAGE, "<%s at %p> Returned from finalizer.", o->vtable->klass->name, o);
 
        if (exc)
-               mono_internal_thread_unhandled_exception (exc);
+               mono_thread_internal_unhandled_exception (exc);
 
        mono_domain_set_internal (caller_domain);
 }
@@ -421,7 +420,7 @@ mono_domain_finalize (MonoDomain *domain, guint32 timeout)
        CloseHandle (done_event);
 
        if (domain == mono_get_root_domain ()) {
-               mono_thread_pool_cleanup ();
+               mono_threadpool_ms_cleanup ();
                mono_gc_finalize_threadpool_threads ();
        }
 
@@ -638,12 +637,12 @@ find_first_unset (guint32 bitmap)
        return -1;
 }
 
-static void*
+static MonoGCDescriptor
 make_root_descr_all_refs (int numbits, gboolean pinned)
 {
 #ifdef HAVE_SGEN_GC
        if (pinned)
-               return NULL;
+               return MONO_GC_DESCRIPTOR_NULL;
 #endif
        return mono_gc_make_root_descr_all_refs (numbits);
 }
@@ -1089,7 +1088,7 @@ finalizer_thread (gpointer unused)
 
                g_assert (mono_domain_get () == mono_get_root_domain ());
                mono_gc_set_skip_thread (TRUE);
-               MONO_PREPARE_BLOCKING
+               MONO_PREPARE_BLOCKING;
 
                if (wait) {
                /* An alertable wait is required so this thread can be suspended on windows */
@@ -1100,7 +1099,7 @@ finalizer_thread (gpointer unused)
 #endif
                }
                wait = TRUE;
-               MONO_FINISH_BLOCKING
+               MONO_FINISH_BLOCKING;
                mono_gc_set_skip_thread (FALSE);
 
                mono_threads_perform_thread_dump ();
@@ -1275,12 +1274,22 @@ mono_gc_cleanup (void)
 
        mono_reference_queue_cleanup ();
 
-       mono_mutex_destroy (&handle_section);
        mono_mutex_destroy (&allocator_section);
        mono_mutex_destroy (&finalizer_mutex);
        mono_mutex_destroy (&reference_queue_mutex);
 }
 
+/**
+ * mono_gc_mutex_cleanup:
+ *
+ * Destroy the mutexes that may still be used after the main cleanup routine.
+ */
+void
+mono_gc_mutex_cleanup (void)
+{
+       mono_mutex_destroy (&handle_section);
+}
+
 gboolean
 mono_gc_is_finalizer_internal_thread (MonoInternalThread *thread)
 {
index 37b71880d80936898afedcf3efff4441d9ee61ad..429ce31f5f537a0d557e95c6196059aa9b1e57fb 100644 (file)
@@ -203,6 +203,9 @@ ICALL(PROCESS_14M, "Times", ves_icall_System_Diagnostics_Process_Times)
 ICALL(PROCESS_15, "WaitForExit_internal(intptr,int)", ves_icall_System_Diagnostics_Process_WaitForExit_internal)
 ICALL(PROCESS_16, "WaitForInputIdle_internal(intptr,int)", ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal)
 
+ICALL_TYPE (PROCESSREADER, "System.Diagnostics.Process/ProcessAsyncReader", PROCESSREADER_1)
+ICALL (PROCESSREADER_1, "RemoveFromIOThreadPool", ves_icall_System_Diagnostics_Process_ProcessAsyncReader_RemoveFromIOThreadPool)
+
 ICALL_TYPE (PROCESSHANDLE, "System.Diagnostics.Process/ProcessWaitHandle", PROCESSHANDLE_1)
 ICALL (PROCESSHANDLE_1, "ProcessHandle_close(intptr)", ves_icall_System_Diagnostics_Process_ProcessHandle_close)
 ICALL (PROCESSHANDLE_2, "ProcessHandle_duplicate(intptr)", ves_icall_System_Diagnostics_Process_ProcessHandle_duplicate)
@@ -285,9 +288,6 @@ ICALL_TYPE(REGINF, "System.Globalization.RegionInfo", REGINF_1)
 ICALL(REGINF_1, "construct_internal_region_from_lcid", ves_icall_System_Globalization_RegionInfo_construct_internal_region_from_lcid)
 ICALL(REGINF_2, "construct_internal_region_from_name", ves_icall_System_Globalization_RegionInfo_construct_internal_region_from_name)
 
-ICALL_TYPE(TXTINF, "System.Globalization.TextInfo", TXTINF_1)
-ICALL(TXTINF_1, "GetDataTablePointersLite", ves_icall_System_Globalization_TextInfo_GetDataTablePointersLite)
-
 #ifndef PLATFORM_NO_DRIVEINFO
 ICALL_TYPE(IODRIVEINFO, "System.IO.DriveInfo", IODRIVEINFO_1)
 ICALL(IODRIVEINFO_1, "GetDiskFreeSpaceInternal", ves_icall_System_IO_DriveInfo_GetDiskFreeSpace)
@@ -306,6 +306,9 @@ ICALL(INOW_1, "AddWatch", ves_icall_System_IO_InotifyWatcher_AddWatch)
 ICALL(INOW_2, "GetInotifyInstance", ves_icall_System_IO_InotifyWatcher_GetInotifyInstance)
 ICALL(INOW_3, "RemoveWatch", ves_icall_System_IO_InotifyWatcher_RemoveWatch)
 
+ICALL_TYPE(KQUEM, "System.IO.KqueueMonitor", KQUEM_1)
+ICALL(KQUEM_1, "kevent_notimeout", ves_icall_System_IO_KqueueMonitor_kevent_notimeout)
+
 ICALL_TYPE(MMAPIMPL, "System.IO.MemoryMappedFiles.MemoryMapImpl", MMAPIMPL_1)
 ICALL(MMAPIMPL_1, "CloseMapping", mono_mmap_close)
 ICALL(MMAPIMPL_2, "ConfigureHandleInheritability", mono_mmap_configure_inheritability)
@@ -366,11 +369,14 @@ ICALL(MONOIO_33, "get_VolumeSeparatorChar", ves_icall_System_IO_MonoIO_get_Volum
 ICALL_TYPE(IOPATH, "System.IO.Path", IOPATH_1)
 ICALL(IOPATH_1, "get_temp_path", ves_icall_System_IO_get_temp_path)
 
-ICALL_TYPE(MATH, "System.Math", MATH_1)
+ICALL_TYPE(MATH, "System.Math", MATH_19)
+ICALL(MATH_19, "Abs(double)", ves_icall_System_Math_Abs_double)
+ICALL(MATH_20, "Abs(single)", ves_icall_System_Math_Abs_single)
 ICALL(MATH_1, "Acos", ves_icall_System_Math_Acos)
 ICALL(MATH_2, "Asin", ves_icall_System_Math_Asin)
 ICALL(MATH_3, "Atan", ves_icall_System_Math_Atan)
 ICALL(MATH_4, "Atan2", ves_icall_System_Math_Atan2)
+ICALL(MATH_21, "Ceiling", ves_icall_System_Math_Ceiling)
 ICALL(MATH_5, "Cos", ves_icall_System_Math_Cos)
 ICALL(MATH_6, "Cosh", ves_icall_System_Math_Cosh)
 ICALL(MATH_7, "Exp", ves_icall_System_Math_Exp)
@@ -379,9 +385,9 @@ ICALL(MATH_9, "Log", ves_icall_System_Math_Log)
 ICALL(MATH_10, "Log10", ves_icall_System_Math_Log10)
 ICALL(MATH_11, "Pow", ves_icall_System_Math_Pow)
 ICALL(MATH_12, "Round", ves_icall_System_Math_Round)
-ICALL(MATH_13, "Round2", ves_icall_System_Math_Round2)
 ICALL(MATH_14, "Sin", ves_icall_System_Math_Sin)
 ICALL(MATH_15, "Sinh", ves_icall_System_Math_Sinh)
+ICALL(MATH_22, "SplitFractionDouble", ves_icall_System_Math_SplitFractionDouble)
 ICALL(MATH_16, "Sqrt", ves_icall_System_Math_Sqrt)
 ICALL(MATH_17, "Tan", ves_icall_System_Math_Tan)
 ICALL(MATH_18, "Tanh", ves_icall_System_Math_Tanh)
@@ -512,7 +518,8 @@ ICALL(GPARB_1, "initialize", mono_reflection_initialize_generic_parameter)
 ICALL_TYPE(METHODB, "System.Reflection.Emit.MethodBuilder", METHODB_1)
 ICALL(METHODB_1, "MakeGenericMethod", mono_reflection_bind_generic_method_parameters)
 
-ICALL_TYPE(MODULEB, "System.Reflection.Emit.ModuleBuilder", MODULEB_8)
+ICALL_TYPE(MODULEB, "System.Reflection.Emit.ModuleBuilder", MODULEB_10)
+ICALL(MODULEB_10, "GetRegisteredToken", ves_icall_ModuleBuilder_GetRegisteredToken)
 ICALL(MODULEB_8, "RegisterToken", ves_icall_ModuleBuilder_RegisterToken)
 ICALL(MODULEB_1, "WriteToFile", ves_icall_ModuleBuilder_WriteToFile)
 ICALL(MODULEB_2, "basic_init", mono_image_module_basic_init)
@@ -702,6 +709,7 @@ ICALL(ACTS_2, "EnableProxyActivation", ves_icall_System_Runtime_Activation_Activ
 
 ICALL_TYPE(CONTEXT, "System.Runtime.Remoting.Contexts.Context", CONTEXT_1)
 ICALL(CONTEXT_1, "RegisterContext", ves_icall_System_Runtime_Remoting_Contexts_Context_RegisterContext)
+ICALL(CONTEXT_2, "ReleaseContext", ves_icall_System_Runtime_Remoting_Contexts_Context_ReleaseContext)
 
 ICALL_TYPE(ARES, "System.Runtime.Remoting.Messaging.AsyncResult", ARES_1)
 ICALL(ARES_1, "Invoke", ves_icall_System_Runtime_Remoting_Messaging_AsyncResult_Invoke)
@@ -862,21 +870,6 @@ ICALL(ILOCK_22, "Read(long&)", ves_icall_System_Threading_Interlocked_Read_Long)
 ICALL_TYPE(ITHREAD, "System.Threading.InternalThread", ITHREAD_1)
 ICALL(ITHREAD_1, "Thread_free_internal", ves_icall_System_Threading_InternalThread_Thread_free_internal)
 
-ICALL_TYPE(MTHREADP, "System.Threading.Microsoft.ThreadPool", MTHREADP_1)
-ICALL(MTHREADP_1, "BindIOCompletionCallbackNative", ves_icall_System_Threading_Microsoft_ThreadPool_BindIOCompletionCallbackNative)
-ICALL(MTHREADP_2, "GetAvailableThreadsNative", ves_icall_System_Threading_Microsoft_ThreadPool_GetAvailableThreadsNative)
-ICALL(MTHREADP_3, "GetMaxThreadsNative", ves_icall_System_Threading_Microsoft_ThreadPool_GetMaxThreadsNative)
-ICALL(MTHREADP_4, "GetMinThreadsNative", ves_icall_System_Threading_Microsoft_ThreadPool_GetMinThreadsNative)
-ICALL(MTHREADP_5, "InitializeVMTp", ves_icall_System_Threading_Microsoft_ThreadPool_InitializeVMTp)
-ICALL(MTHREADP_6, "IsThreadPoolHosted", ves_icall_System_Threading_Microsoft_ThreadPool_IsThreadPoolHosted)
-ICALL(MTHREADP_7, "NotifyWorkItemComplete", ves_icall_System_Threading_Microsoft_ThreadPool_NotifyWorkItemComplete)
-ICALL(MTHREADP_8, "NotifyWorkItemProgressNative", ves_icall_System_Threading_Microsoft_ThreadPool_NotifyWorkItemProgressNative)
-ICALL(MTHREADP_9, "PostQueuedCompletionStatus", ves_icall_System_Threading_Microsoft_ThreadPool_PostQueuedCompletionStatus)
-ICALL(MTHREADP_11, "ReportThreadStatus", ves_icall_System_Threading_Microsoft_ThreadPool_ReportThreadStatus)
-ICALL(MTHREADP_12, "RequestWorkerThread", ves_icall_System_Threading_Microsoft_ThreadPool_RequestWorkerThread)
-ICALL(MTHREADP_13, "SetMaxThreadsNative", ves_icall_System_Threading_Microsoft_ThreadPool_SetMaxThreadsNative)
-ICALL(MTHREADP_14, "SetMinThreadsNative", ves_icall_System_Threading_Microsoft_ThreadPool_SetMinThreadsNative)
-
 ICALL_TYPE(MONIT, "System.Threading.Monitor", MONIT_8)
 ICALL(MONIT_8, "Enter", mono_monitor_enter)
 ICALL(MONIT_1, "Exit", mono_monitor_exit)
@@ -886,6 +879,7 @@ ICALL(MONIT_4, "Monitor_test_owner", ves_icall_System_Threading_Monitor_Monitor_
 ICALL(MONIT_5, "Monitor_test_synchronised", ves_icall_System_Threading_Monitor_Monitor_test_synchronised)
 ICALL(MONIT_6, "Monitor_try_enter", ves_icall_System_Threading_Monitor_Monitor_try_enter)
 ICALL(MONIT_7, "Monitor_wait", ves_icall_System_Threading_Monitor_Monitor_wait)
+ICALL(MONIT_10, "enter_with_atomic_var", mono_monitor_enter_v4)
 ICALL(MONIT_9, "try_enter_with_atomic_var", ves_icall_System_Threading_Monitor_Monitor_try_enter_with_atomic_var)
 
 ICALL_TYPE(MUTEX, "System.Threading.Mutex", MUTEX_1)
@@ -960,12 +954,19 @@ ICALL(THREAD_9, "YieldInternal", ves_icall_System_Threading_Thread_Yield)
 ICALL(THREAD_52, "current_lcid()", ves_icall_System_Threading_Thread_current_lcid)
 
 ICALL_TYPE(THREADP, "System.Threading.ThreadPool", THREADP_1)
-ICALL(THREADP_1, "GetAvailableThreads_internal", ves_icall_System_Threading_ThreadPool_GetAvailableThreads)
-ICALL(THREADP_2, "GetMaxThreads_internal", ves_icall_System_Threading_ThreadPool_GetMaxThreads)
-ICALL(THREADP_3, "GetMinThreads_internal", ves_icall_System_Threading_ThreadPool_GetMinThreads)
-ICALL(THREADP_35, "SetMaxThreads_internal", ves_icall_System_Threading_ThreadPool_SetMaxThreads)
-ICALL(THREADP_4, "SetMinThreads_internal", ves_icall_System_Threading_ThreadPool_SetMinThreads)
-ICALL(THREADP_5, "pool_queue", icall_append_job)
+ICALL(THREADP_1, "BindIOCompletionCallbackNative", ves_icall_System_Threading_ThreadPool_BindIOCompletionCallbackNative)
+ICALL(THREADP_2, "GetAvailableThreadsNative", ves_icall_System_Threading_ThreadPool_GetAvailableThreadsNative)
+ICALL(THREADP_3, "GetMaxThreadsNative", ves_icall_System_Threading_ThreadPool_GetMaxThreadsNative)
+ICALL(THREADP_4, "GetMinThreadsNative", ves_icall_System_Threading_ThreadPool_GetMinThreadsNative)
+ICALL(THREADP_5, "InitializeVMTp", ves_icall_System_Threading_ThreadPool_InitializeVMTp)
+ICALL(THREADP_6, "IsThreadPoolHosted", ves_icall_System_Threading_ThreadPool_IsThreadPoolHosted)
+ICALL(THREADP_7, "NotifyWorkItemComplete", ves_icall_System_Threading_ThreadPool_NotifyWorkItemComplete)
+ICALL(THREADP_8, "NotifyWorkItemProgressNative", ves_icall_System_Threading_ThreadPool_NotifyWorkItemProgressNative)
+ICALL(THREADP_9, "PostQueuedCompletionStatus", ves_icall_System_Threading_ThreadPool_PostQueuedCompletionStatus)
+ICALL(THREADP_11, "ReportThreadStatus", ves_icall_System_Threading_ThreadPool_ReportThreadStatus)
+ICALL(THREADP_12, "RequestWorkerThread", ves_icall_System_Threading_ThreadPool_RequestWorkerThread)
+ICALL(THREADP_13, "SetMaxThreadsNative", ves_icall_System_Threading_ThreadPool_SetMaxThreadsNative)
+ICALL(THREADP_14, "SetMinThreadsNative", ves_icall_System_Threading_ThreadPool_SetMinThreadsNative)
 
 ICALL_TYPE(TTIMER, "System.Threading.Timer", TTIMER_1)
 ICALL(TTIMER_1, "GetTimeMonotonic", mono_100ns_ticks)
index ef680e12a1e2807038b42d93f1deb39c785ed06a..0212a3c909d1d89fc6150ef9e9ff47f99bdf5dbe 100644 (file)
@@ -37,7 +37,6 @@
 #include <mono/metadata/object.h>
 #include <mono/metadata/threads.h>
 #include <mono/metadata/threads-types.h>
-#include <mono/metadata/threadpool.h>
 #include <mono/metadata/threadpool-ms.h>
 #include <mono/metadata/threadpool-ms-io.h>
 #include <mono/metadata/monitor.h>
@@ -66,7 +65,6 @@
 #include <mono/metadata/profiler-private.h>
 #include <mono/metadata/locales.h>
 #include <mono/metadata/filewatcher.h>
-#include <mono/metadata/char-conversions.h>
 #include <mono/metadata/security.h>
 #include <mono/metadata/mono-config.h>
 #include <mono/metadata/cil-coff.h>
@@ -121,39 +119,36 @@ mono_class_init_or_throw (MonoClass *klass)
 }
 
 ICALL_EXPORT MonoObject *
-ves_icall_System_Array_GetValueImpl (MonoObject *this, guint32 pos)
+ves_icall_System_Array_GetValueImpl (MonoArray *arr, guint32 pos)
 {
        MonoClass *ac;
-       MonoArray *ao;
        gint32 esize;
        gpointer *ea;
 
-       ao = (MonoArray *)this;
-       ac = (MonoClass *)ao->obj.vtable->klass;
+       ac = (MonoClass *)arr->obj.vtable->klass;
 
        esize = mono_array_element_size (ac);
-       ea = (gpointer*)((char*)ao->vector + (pos * esize));
+       ea = (gpointer*)((char*)arr->vector + (pos * esize));
 
        if (ac->element_class->valuetype)
-               return mono_value_box (this->vtable->domain, ac->element_class, ea);
+               return mono_value_box (arr->obj.vtable->domain, ac->element_class, ea);
        else
                return *ea;
 }
 
 ICALL_EXPORT MonoObject *
-ves_icall_System_Array_GetValue (MonoObject *this, MonoObject *idxs)
+ves_icall_System_Array_GetValue (MonoArray *arr, MonoArray *idxs)
 {
        MonoClass *ac, *ic;
-       MonoArray *ao, *io;
+       MonoArray *io;
        gint32 i, pos, *ind;
 
        MONO_CHECK_ARG_NULL (idxs, NULL);
 
-       io = (MonoArray *)idxs;
+       io = idxs;
        ic = (MonoClass *)io->obj.vtable->klass;
        
-       ao = (MonoArray *)this;
-       ac = (MonoClass *)ao->obj.vtable->klass;
+       ac = (MonoClass *)arr->obj.vtable->klass;
 
        g_assert (ic->rank == 1);
        if (io->bounds != NULL || io->max_length !=  ac->rank) {
@@ -163,33 +158,33 @@ ves_icall_System_Array_GetValue (MonoObject *this, MonoObject *idxs)
 
        ind = (gint32 *)io->vector;
 
-       if (ao->bounds == NULL) {
-               if (*ind < 0 || *ind >= ao->max_length) {
+       if (arr->bounds == NULL) {
+               if (*ind < 0 || *ind >= arr->max_length) {
                        mono_set_pending_exception (mono_get_exception_index_out_of_range ());
                        return NULL;
                }
 
-               return ves_icall_System_Array_GetValueImpl (this, *ind);
+               return ves_icall_System_Array_GetValueImpl (arr, *ind);
        }
        
        for (i = 0; i < ac->rank; i++) {
-               if ((ind [i] < ao->bounds [i].lower_bound) ||
-                   (ind [i] >=  (mono_array_lower_bound_t)ao->bounds [i].length + ao->bounds [i].lower_bound)) {
+               if ((ind [i] < arr->bounds [i].lower_bound) ||
+                   (ind [i] >=  (mono_array_lower_bound_t)arr->bounds [i].length + arr->bounds [i].lower_bound)) {
                        mono_set_pending_exception (mono_get_exception_index_out_of_range ());
                        return NULL;
                }
        }
 
-       pos = ind [0] - ao->bounds [0].lower_bound;
+       pos = ind [0] - arr->bounds [0].lower_bound;
        for (i = 1; i < ac->rank; i++)
-               pos = pos*ao->bounds [i].length + ind [i] - 
-                       ao->bounds [i].lower_bound;
+               pos = pos * arr->bounds [i].length + ind [i] - 
+                       arr->bounds [i].lower_bound;
 
-       return ves_icall_System_Array_GetValueImpl (this, pos);
+       return ves_icall_System_Array_GetValueImpl (arr, pos);
 }
 
 ICALL_EXPORT void
-ves_icall_System_Array_SetValueImpl (MonoArray *this, MonoObject *value, guint32 pos)
+ves_icall_System_Array_SetValueImpl (MonoArray *arr, MonoObject *value, guint32 pos)
 {
        MonoClass *ac, *vc, *ec;
        gint32 esize, vsize;
@@ -205,11 +200,11 @@ ves_icall_System_Array_SetValueImpl (MonoArray *this, MonoObject *value, guint32
        else
                vc = NULL;
 
-       ac = this->obj.vtable->klass;
+       ac = arr->obj.vtable->klass;
        ec = ac->element_class;
 
        esize = mono_array_element_size (ac);
-       ea = (gpointer*)((char*)this->vector + (pos * esize));
+       ea = (gpointer*)((char*)arr->vector + (pos * esize));
        va = (gpointer*)((char*)value + sizeof (MonoObject));
 
        if (mono_class_is_nullable (ec)) {
@@ -279,7 +274,7 @@ ves_icall_System_Array_SetValueImpl (MonoArray *this, MonoObject *value, guint32
        if (!ec->valuetype) {
                if (!mono_object_isinst (value, ec))
                        INVALID_CAST;
-               mono_gc_wbarrier_set_arrayref (this, ea, (MonoObject*)value);
+               mono_gc_wbarrier_set_arrayref (arr, ea, (MonoObject*)value);
                return;
        }
 
@@ -471,7 +466,7 @@ ves_icall_System_Array_SetValueImpl (MonoArray *this, MonoObject *value, guint32
 }
 
 ICALL_EXPORT void 
-ves_icall_System_Array_SetValue (MonoArray *this, MonoObject *value,
+ves_icall_System_Array_SetValue (MonoArray *arr, MonoObject *value,
                                 MonoArray *idxs)
 {
        MonoClass *ac, *ic;
@@ -480,7 +475,7 @@ ves_icall_System_Array_SetValue (MonoArray *this, MonoObject *value,
        MONO_CHECK_ARG_NULL (idxs,);
 
        ic = idxs->obj.vtable->klass;
-       ac = this->obj.vtable->klass;
+       ac = arr->obj.vtable->klass;
 
        g_assert (ic->rank == 1);
        if (idxs->bounds != NULL || idxs->max_length != ac->rank) {
@@ -490,29 +485,29 @@ ves_icall_System_Array_SetValue (MonoArray *this, MonoObject *value,
 
        ind = (gint32 *)idxs->vector;
 
-       if (this->bounds == NULL) {
-               if (*ind < 0 || *ind >= this->max_length) {
+       if (arr->bounds == NULL) {
+               if (*ind < 0 || *ind >= arr->max_length) {
                        mono_set_pending_exception (mono_get_exception_index_out_of_range ());
                        return;
                }
 
-               ves_icall_System_Array_SetValueImpl (this, value, *ind);
+               ves_icall_System_Array_SetValueImpl (arr, value, *ind);
                return;
        }
        
        for (i = 0; i < ac->rank; i++)
-               if ((ind [i] < this->bounds [i].lower_bound) ||
-                   (ind [i] >= (mono_array_lower_bound_t)this->bounds [i].length + this->bounds [i].lower_bound)) {
+               if ((ind [i] < arr->bounds [i].lower_bound) ||
+                   (ind [i] >= (mono_array_lower_bound_t)arr->bounds [i].length + arr->bounds [i].lower_bound)) {
                        mono_set_pending_exception (mono_get_exception_index_out_of_range ());
                        return;
                }
 
-       pos = ind [0] - this->bounds [0].lower_bound;
+       pos = ind [0] - arr->bounds [0].lower_bound;
        for (i = 1; i < ac->rank; i++)
-               pos = pos * this->bounds [i].length + ind [i] - 
-                       this->bounds [i].lower_bound;
+               pos = pos * arr->bounds [i].length + ind [i] - 
+                       arr->bounds [i].lower_bound;
 
-       ves_icall_System_Array_SetValueImpl (this, value, pos);
+       ves_icall_System_Array_SetValueImpl (arr, value, pos);
 }
 
 ICALL_EXPORT MonoArray *
@@ -611,15 +606,15 @@ ves_icall_System_Array_CreateInstanceImpl64 (MonoReflectionType *type, MonoArray
 }
 
 ICALL_EXPORT gint32 
-ves_icall_System_Array_GetRank (MonoObject *this)
+ves_icall_System_Array_GetRank (MonoObject *arr)
 {
-       return this->vtable->klass->rank;
+       return arr->vtable->klass->rank;
 }
 
 ICALL_EXPORT gint32
-ves_icall_System_Array_GetLength (MonoArray *this, gint32 dimension)
+ves_icall_System_Array_GetLength (MonoArray *arr, gint32 dimension)
 {
-       gint32 rank = ((MonoObject *)this)->vtable->klass->rank;
+       gint32 rank = arr->obj.vtable->klass->rank;
        uintptr_t length;
 
        if ((dimension < 0) || (dimension >= rank)) {
@@ -627,10 +622,10 @@ ves_icall_System_Array_GetLength (MonoArray *this, gint32 dimension)
                return 0;
        }
        
-       if (this->bounds == NULL)
-               length = this->max_length;
+       if (arr->bounds == NULL)
+               length = arr->max_length;
        else
-               length = this->bounds [dimension].length;
+               length = arr->bounds [dimension].length;
 
 #ifdef MONO_BIG_ARRAYS
        if (length > G_MAXINT32) {
@@ -642,35 +637,35 @@ ves_icall_System_Array_GetLength (MonoArray *this, gint32 dimension)
 }
 
 ICALL_EXPORT gint64
-ves_icall_System_Array_GetLongLength (MonoArray *this, gint32 dimension)
+ves_icall_System_Array_GetLongLength (MonoArray *arr, gint32 dimension)
 {
-       gint32 rank = ((MonoObject *)this)->vtable->klass->rank;
+       gint32 rank = arr->obj.vtable->klass->rank;
 
        if ((dimension < 0) || (dimension >= rank)) {
                mono_set_pending_exception (mono_get_exception_index_out_of_range ());
                return 0;
        }
        
-       if (this->bounds == NULL)
-               return this->max_length;
+       if (arr->bounds == NULL)
+               return arr->max_length;
        
-       return this->bounds [dimension].length;
+       return arr->bounds [dimension].length;
 }
 
 ICALL_EXPORT gint32
-ves_icall_System_Array_GetLowerBound (MonoArray *this, gint32 dimension)
+ves_icall_System_Array_GetLowerBound (MonoArray *arr, gint32 dimension)
 {
-       gint32 rank = ((MonoObject *)this)->vtable->klass->rank;
+       gint32 rank = arr->obj.vtable->klass->rank;
 
        if ((dimension < 0) || (dimension >= rank)) {
                mono_set_pending_exception (mono_get_exception_index_out_of_range ());
                return 0;
        }
        
-       if (this->bounds == NULL)
+       if (arr->bounds == NULL)
                return 0;
        
-       return this->bounds [dimension].lower_bound;
+       return arr->bounds [dimension].lower_bound;
 }
 
 ICALL_EXPORT void
@@ -745,36 +740,32 @@ ves_icall_System_Array_FastCopy (MonoArray *source, int source_idx, MonoArray* d
 }
 
 ICALL_EXPORT void
-ves_icall_System_Array_GetGenericValueImpl (MonoObject *this, guint32 pos, gpointer value)
+ves_icall_System_Array_GetGenericValueImpl (MonoArray *arr, guint32 pos, gpointer value)
 {
        MonoClass *ac;
-       MonoArray *ao;
        gint32 esize;
        gpointer *ea;
 
-       ao = (MonoArray *)this;
-       ac = (MonoClass *)ao->obj.vtable->klass;
+       ac = (MonoClass *)arr->obj.vtable->klass;
 
        esize = mono_array_element_size (ac);
-       ea = (gpointer*)((char*)ao->vector + (pos * esize));
+       ea = (gpointer*)((char*)arr->vector + (pos * esize));
 
        mono_gc_memmove_atomic (value, ea, esize);
 }
 
 ICALL_EXPORT void
-ves_icall_System_Array_SetGenericValueImpl (MonoObject *this, guint32 pos, gpointer value)
+ves_icall_System_Array_SetGenericValueImpl (MonoArray *arr, guint32 pos, gpointer value)
 {
        MonoClass *ac, *ec;
-       MonoArray *ao;
        gint32 esize;
        gpointer *ea;
 
-       ao = (MonoArray *)this;
-       ac = (MonoClass *)ao->obj.vtable->klass;
+       ac = (MonoClass *)arr->obj.vtable->klass;
        ec = ac->element_class;
 
        esize = mono_array_element_size (ac);
-       ea = (gpointer*)((char*)ao->vector + (pos * esize));
+       ea = (gpointer*)((char*)arr->vector + (pos * esize));
 
        if (MONO_TYPE_IS_REFERENCE (&ec->byval_arg)) {
                g_assert (esize == sizeof (gpointer));
@@ -935,13 +926,13 @@ ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_SufficientExecutionStac
 }
 
 ICALL_EXPORT MonoObject *
-ves_icall_System_Object_MemberwiseClone (MonoObject *this)
+ves_icall_System_Object_MemberwiseClone (MonoObject *this_obj)
 {
-       return mono_object_clone (this);
+       return mono_object_clone (this_obj);
 }
 
 ICALL_EXPORT gint32
-ves_icall_System_ValueType_InternalGetHashCode (MonoObject *this, MonoArray **fields)
+ves_icall_System_ValueType_InternalGetHashCode (MonoObject *this_obj, MonoArray **fields)
 {
        MonoClass *klass;
        MonoObject **values = NULL;
@@ -951,7 +942,7 @@ ves_icall_System_ValueType_InternalGetHashCode (MonoObject *this, MonoArray **fi
        MonoClassField* field;
        gpointer iter;
 
-       klass = mono_object_class (this);
+       klass = mono_object_class (this_obj);
 
        if (mono_class_num_fields (klass) == 0)
                return result;
@@ -970,11 +961,11 @@ ves_icall_System_ValueType_InternalGetHashCode (MonoObject *this, MonoArray **fi
                /* FIXME: Add more types */
                switch (field->type->type) {
                case MONO_TYPE_I4:
-                       result ^= *(gint32*)((guint8*)this + field->offset);
+                       result ^= *(gint32*)((guint8*)this_obj + field->offset);
                        break;
                case MONO_TYPE_STRING: {
                        MonoString *s;
-                       s = *(MonoString**)((guint8*)this + field->offset);
+                       s = *(MonoString**)((guint8*)this_obj + field->offset);
                        if (s != NULL)
                                result ^= mono_string_hash (s);
                        break;
@@ -982,7 +973,7 @@ ves_icall_System_ValueType_InternalGetHashCode (MonoObject *this, MonoArray **fi
                default:
                        if (!values)
                                values = g_newa (MonoObject*, mono_class_num_fields (klass));
-                       o = mono_field_get_value_object (mono_object_domain (this), field, this);
+                       o = mono_field_get_value_object (mono_object_domain (this_obj), field, this_obj);
                        values [count++] = o;
                }
        }
@@ -999,7 +990,7 @@ ves_icall_System_ValueType_InternalGetHashCode (MonoObject *this, MonoArray **fi
 }
 
 ICALL_EXPORT MonoBoolean
-ves_icall_System_ValueType_Equals (MonoObject *this, MonoObject *that, MonoArray **fields)
+ves_icall_System_ValueType_Equals (MonoObject *this_obj, MonoObject *that, MonoArray **fields)
 {
        MonoClass *klass;
        MonoObject **values = NULL;
@@ -1010,13 +1001,13 @@ ves_icall_System_ValueType_Equals (MonoObject *this, MonoObject *that, MonoArray
 
        MONO_CHECK_ARG_NULL (that, FALSE);
 
-       if (this->vtable != that->vtable)
+       if (this_obj->vtable != that->vtable)
                return FALSE;
 
-       klass = mono_object_class (this);
+       klass = mono_object_class (this_obj);
 
        if (klass->enumtype && mono_class_enum_basetype (klass) && mono_class_enum_basetype (klass)->type == MONO_TYPE_I4)
-               return (*(gint32*)((guint8*)this + sizeof (MonoObject)) == *(gint32*)((guint8*)that + sizeof (MonoObject)));
+               return (*(gint32*)((guint8*)this_obj + sizeof (MonoObject)) == *(gint32*)((guint8*)that + sizeof (MonoObject)));
 
        /*
         * Do the comparison for fields of primitive type and return a result if
@@ -1036,31 +1027,31 @@ ves_icall_System_ValueType_Equals (MonoObject *this, MonoObject *that, MonoArray
                case MONO_TYPE_U1:
                case MONO_TYPE_I1:
                case MONO_TYPE_BOOLEAN:
-                       if (*((guint8*)this + field->offset) != *((guint8*)that + field->offset))
+                       if (*((guint8*)this_obj + field->offset) != *((guint8*)that + field->offset))
                                return FALSE;
                        break;
                case MONO_TYPE_U2:
                case MONO_TYPE_I2:
                case MONO_TYPE_CHAR:
-                       if (*(gint16*)((guint8*)this + field->offset) != *(gint16*)((guint8*)that + field->offset))
+                       if (*(gint16*)((guint8*)this_obj + field->offset) != *(gint16*)((guint8*)that + field->offset))
                                return FALSE;
                        break;
                case MONO_TYPE_U4:
                case MONO_TYPE_I4:
-                       if (*(gint32*)((guint8*)this + field->offset) != *(gint32*)((guint8*)that + field->offset))
+                       if (*(gint32*)((guint8*)this_obj + field->offset) != *(gint32*)((guint8*)that + field->offset))
                                return FALSE;
                        break;
                case MONO_TYPE_U8:
                case MONO_TYPE_I8:
-                       if (*(gint64*)((guint8*)this + field->offset) != *(gint64*)((guint8*)that + field->offset))
+                       if (*(gint64*)((guint8*)this_obj + field->offset) != *(gint64*)((guint8*)that + field->offset))
                                return FALSE;
                        break;
                case MONO_TYPE_R4:
-                       if (*(float*)((guint8*)this + field->offset) != *(float*)((guint8*)that + field->offset))
+                       if (*(float*)((guint8*)this_obj + field->offset) != *(float*)((guint8*)that + field->offset))
                                return FALSE;
                        break;
                case MONO_TYPE_R8:
-                       if (*(double*)((guint8*)this + field->offset) != *(double*)((guint8*)that + field->offset))
+                       if (*(double*)((guint8*)this_obj + field->offset) != *(double*)((guint8*)that + field->offset))
                                return FALSE;
                        break;
 
@@ -1068,7 +1059,7 @@ ves_icall_System_ValueType_Equals (MonoObject *this, MonoObject *that, MonoArray
                case MONO_TYPE_STRING: {
                        MonoString *s1, *s2;
                        guint32 s1len, s2len;
-                       s1 = *(MonoString**)((guint8*)this + field->offset);
+                       s1 = *(MonoString**)((guint8*)this_obj + field->offset);
                        s2 = *(MonoString**)((guint8*)that + field->offset);
                        if (s1 == s2)
                                break;
@@ -1086,9 +1077,9 @@ ves_icall_System_ValueType_Equals (MonoObject *this, MonoObject *that, MonoArray
                default:
                        if (!values)
                                values = g_newa (MonoObject*, mono_class_num_fields (klass) * 2);
-                       o = mono_field_get_value_object (mono_object_domain (this), field, this);
+                       o = mono_field_get_value_object (mono_object_domain (this_obj), field, this_obj);
                        values [count++] = o;
-                       o = mono_field_get_value_object (mono_object_domain (this), field, that);
+                       o = mono_field_get_value_object (mono_object_domain (this_obj), field, that);
                        values [count++] = o;
                }
 
@@ -1163,6 +1154,18 @@ ves_icall_ModuleBuilder_RegisterToken (MonoReflectionModuleBuilder *mb, MonoObje
        mono_image_register_token (mb->dynamic_image, token, obj);
 }
 
+ICALL_EXPORT MonoObject*
+ves_icall_ModuleBuilder_GetRegisteredToken (MonoReflectionModuleBuilder *mb, guint32 token)
+{
+       gpointer obj;
+
+       mono_loader_lock ();
+       obj = mono_g_hash_table_lookup (mb->dynamic_image->tokens, GUINT_TO_POINTER (token));
+       mono_loader_unlock ();
+
+       return obj;
+}
+
 static gboolean
 get_caller (MonoMethod *m, gint32 no, gint32 ilo, gboolean managed, gpointer data)
 {
@@ -1807,12 +1810,12 @@ ves_icall_System_RuntimeFieldHandle_SetValueDirect (MonoReflectionField *field,
 }
 
 ICALL_EXPORT MonoObject *
-ves_icall_MonoField_GetRawConstantValue (MonoReflectionField *this)
+ves_icall_MonoField_GetRawConstantValue (MonoReflectionField *rfield)
 {      
        MonoObject *o = NULL;
-       MonoClassField *field = this->field;
+       MonoClassField *field = rfield->field;
        MonoClass *klass;
-       MonoDomain *domain = mono_object_domain (this); 
+       MonoDomain *domain = mono_object_domain (rfield);
        gchar *v;
        MonoTypeEnum def_type;
        const char *def_value;
@@ -1921,28 +1924,30 @@ typedef enum {
 } PInfo;
 
 ICALL_EXPORT void
-ves_icall_get_property_info (MonoReflectionProperty *property, MonoPropertyInfo *info, PInfo req_info)
+ves_icall_get_property_info (const MonoReflectionProperty *property, MonoPropertyInfo *info, PInfo req_info)
 {
        MonoDomain *domain = mono_object_domain (property); 
+       const MonoProperty *pproperty = property->property;
 
        if ((req_info & PInfo_ReflectedType) != 0)
                MONO_STRUCT_SETREF (info, parent, mono_type_get_object (domain, &property->klass->byval_arg));
        if ((req_info & PInfo_DeclaringType) != 0)
-               MONO_STRUCT_SETREF (info, declaring_type, mono_type_get_object (domain, &property->property->parent->byval_arg));
+               MONO_STRUCT_SETREF (info, declaring_type, mono_type_get_object (domain, &pproperty->parent->byval_arg));
 
        if ((req_info & PInfo_Name) != 0)
-               MONO_STRUCT_SETREF (info, name, mono_string_new (domain, property->property->name));
+               MONO_STRUCT_SETREF (info, name, mono_string_new (domain, pproperty->name));
 
        if ((req_info & PInfo_Attributes) != 0)
-               info->attrs = property->property->attrs;
+               info->attrs = pproperty->attrs;
 
        if ((req_info & PInfo_GetMethod) != 0)
-               MONO_STRUCT_SETREF (info, get, property->property->get ?
-                                                       mono_method_get_object (domain, property->property->get, property->klass): NULL);
-       
+               MONO_STRUCT_SETREF (info, get, pproperty->get &&
+                                                       (((pproperty->get->flags & METHOD_ATTRIBUTE_MEMBER_ACCESS_MASK) != METHOD_ATTRIBUTE_PRIVATE) || pproperty->get->klass == property->klass) ?
+                                                       mono_method_get_object (domain, pproperty->get, property->klass): NULL);
        if ((req_info & PInfo_SetMethod) != 0)
-               MONO_STRUCT_SETREF (info, set, property->property->set ?
-                                                       mono_method_get_object (domain, property->property->set, property->klass): NULL);
+               MONO_STRUCT_SETREF (info, set, pproperty->set &&
+                                                       (((pproperty->set->flags & METHOD_ATTRIBUTE_MEMBER_ACCESS_MASK) != METHOD_ATTRIBUTE_PRIVATE) || pproperty->set->klass == property->klass) ?
+                                                       mono_method_get_object (domain, pproperty->set, property->klass): NULL);
        /* 
         * There may be other methods defined for properties, though, it seems they are not exposed 
         * in the reflection API 
@@ -2026,6 +2031,14 @@ fill_iface_array (gpointer key, gpointer value, gpointer user_data)
                mono_metadata_free_type (inflated);
 }
 
+static guint
+get_interfaces_hash (gconstpointer v1)
+{
+       MonoClass *k = (MonoClass*)v1;
+
+       return k->type_token;
+}
+
 ICALL_EXPORT MonoArray*
 ves_icall_Type_GetInterfaces (MonoReflectionType* type)
 {
@@ -2035,7 +2048,7 @@ ves_icall_Type_GetInterfaces (MonoReflectionType* type)
        FillIfaceArrayData data = { 0 };
        int len;
 
-       GHashTable *iface_hash = g_hash_table_new (NULL, NULL);
+       GHashTable *iface_hash = g_hash_table_new (get_interfaces_hash, NULL);
 
        if (class->generic_class && class->generic_class->context.class_inst->is_open) {
                data.context = mono_class_get_context (class);
@@ -2657,7 +2670,7 @@ ves_icall_MonoMethod_GetGenericArguments (MonoReflectionMethod *method)
 }
 
 ICALL_EXPORT MonoObject *
-ves_icall_InternalInvoke (MonoReflectionMethod *method, MonoObject *this, MonoArray *params, MonoException **exc) 
+ves_icall_InternalInvoke (MonoReflectionMethod *method, MonoObject *this_arg, MonoArray *params, MonoException **exc) 
 {
        /* 
         * Invoke from reflection is supposed to always be a virtual call (the API
@@ -2668,7 +2681,7 @@ ves_icall_InternalInvoke (MonoReflectionMethod *method, MonoObject *this, MonoAr
        MonoMethodSignature *sig = mono_method_signature (m);
        MonoImage *image;
        int pcount;
-       void *obj = this;
+       void *obj = this_arg;
 
        *exc = NULL;
 
@@ -2681,9 +2694,9 @@ ves_icall_InternalInvoke (MonoReflectionMethod *method, MonoObject *this, MonoAr
                        return NULL;
                }
 
-               if (this) {
-                       if (!mono_object_isinst (this, m->klass)) {
-                               char *this_name = mono_type_get_full_name (mono_object_get_class (this));
+               if (this_arg) {
+                       if (!mono_object_isinst (this_arg, m->klass)) {
+                               char *this_name = mono_type_get_full_name (mono_object_get_class (this_arg));
                                char *target_name = mono_type_get_full_name (m->klass);
                                char *msg = g_strdup_printf ("Object of type '%s' doesn't match target type '%s'", this_name, target_name);
                                mono_gc_wbarrier_generic_store (exc, (MonoObject*) mono_exception_from_name_msg (mono_defaults.corlib, "System.Reflection", "TargetException", msg));
@@ -2692,10 +2705,10 @@ ves_icall_InternalInvoke (MonoReflectionMethod *method, MonoObject *this, MonoAr
                                g_free (this_name);
                                return NULL;
                        }
-                       m = mono_object_get_virtual_method (this, m);
+                       m = mono_object_get_virtual_method (this_arg, m);
                        /* must pass the pointer to the value for valuetype methods */
                        if (m->klass->valuetype)
-                               obj = mono_object_unbox (this);
+                               obj = mono_object_unbox (this_arg);
                } else if (strcmp (m->name, ".ctor") && !m->wrapper_type) {
                        mono_gc_wbarrier_generic_store (exc, (MonoObject*) mono_exception_from_name_msg (mono_defaults.corlib, "System.Reflection", "TargetException", "Non-static method requires a target."));
                        return NULL;
@@ -2713,7 +2726,7 @@ ves_icall_InternalInvoke (MonoReflectionMethod *method, MonoObject *this, MonoAr
                return NULL;
        }
 
-       if ((m->klass->flags & TYPE_ATTRIBUTE_ABSTRACT) && !strcmp (m->name, ".ctor") && !this) {
+       if ((m->klass->flags & TYPE_ATTRIBUTE_ABSTRACT) && !strcmp (m->name, ".ctor") && !this_arg) {
                mono_gc_wbarrier_generic_store (exc, (MonoObject*) mono_exception_from_name_msg (mono_defaults.corlib, "System.Reflection", "TargetException", "Cannot invoke constructor of an abstract class."));
                return NULL;
        }
@@ -2772,7 +2785,7 @@ ves_icall_InternalInvoke (MonoReflectionMethod *method, MonoObject *this, MonoAr
 
 #ifndef DISABLE_REMOTING
 ICALL_EXPORT MonoObject *
-ves_icall_InternalExecute (MonoReflectionMethod *method, MonoObject *this, MonoArray *params, MonoArray **outArgs) 
+ves_icall_InternalExecute (MonoReflectionMethod *method, MonoObject *this_arg, MonoArray *params, MonoArray **outArgs) 
 {
        MonoDomain *domain = mono_object_domain (method); 
        MonoMethod *m = method->method;
@@ -2783,16 +2796,16 @@ ves_icall_InternalExecute (MonoReflectionMethod *method, MonoObject *this, MonoA
 
        if (m->klass == mono_defaults.object_class) {
                if (!strcmp (m->name, "FieldGetter")) {
-                       MonoClass *k = this->vtable->klass;
+                       MonoClass *k = this_arg->vtable->klass;
                        MonoString *name;
                        char *str;
                        
                        /* If this is a proxy, then it must be a CBO */
                        if (k == mono_defaults.transparent_proxy_class) {
-                               MonoTransparentProxy *tp = (MonoTransparentProxy*) this;
-                               this = tp->rp->unwrapped_server;
-                               g_assert (this);
-                               k = this->vtable->klass;
+                               MonoTransparentProxy *tp = (MonoTransparentProxy*) this_arg;
+                               this_arg = tp->rp->unwrapped_server;
+                               g_assert (this_arg);
+                               k = this_arg->vtable->klass;
                        }
                        
                        name = mono_array_get (params, MonoString *, 1);
@@ -2803,9 +2816,9 @@ ves_icall_InternalExecute (MonoReflectionMethod *method, MonoObject *this, MonoA
                                if (field) {
                                        MonoClass *field_klass =  mono_class_from_mono_type (field->type);
                                        if (field_klass->valuetype)
-                                               result = mono_value_box (domain, field_klass, (char *)this + field->offset);
+                                               result = mono_value_box (domain, field_klass, (char *)this_arg + field->offset);
                                        else 
-                                               result = *((gpointer *)((char *)this + field->offset));
+                                               result = *((gpointer *)((char *)this_arg + field->offset));
                                
                                        out_args = mono_array_new (domain, mono_defaults.object_class, 1);
                                        mono_gc_wbarrier_generic_store (outArgs, (MonoObject*) out_args);
@@ -2820,7 +2833,7 @@ ves_icall_InternalExecute (MonoReflectionMethod *method, MonoObject *this, MonoA
                        g_assert_not_reached ();
 
                } else if (!strcmp (m->name, "FieldSetter")) {
-                       MonoClass *k = this->vtable->klass;
+                       MonoClass *k = this_arg->vtable->klass;
                        MonoString *name;
                        guint32 size;
                        gint32 align;
@@ -2828,10 +2841,10 @@ ves_icall_InternalExecute (MonoReflectionMethod *method, MonoObject *this, MonoA
                        
                        /* If this is a proxy, then it must be a CBO */
                        if (k == mono_defaults.transparent_proxy_class) {
-                               MonoTransparentProxy *tp = (MonoTransparentProxy*) this;
-                               this = tp->rp->unwrapped_server;
-                               g_assert (this);
-                               k = this->vtable->klass;
+                               MonoTransparentProxy *tp = (MonoTransparentProxy*) this_arg;
+                               this_arg = tp->rp->unwrapped_server;
+                               g_assert (this_arg);
+                               k = this_arg->vtable->klass;
                        }
                        
                        name = mono_array_get (params, MonoString *, 1);
@@ -2846,9 +2859,9 @@ ves_icall_InternalExecute (MonoReflectionMethod *method, MonoObject *this, MonoA
                                        if (field_klass->valuetype) {
                                                size = mono_type_size (field->type, &align);
                                                g_assert (size == mono_class_value_size (field_klass, NULL));
-                                               mono_gc_wbarrier_value_copy ((char *)this + field->offset, (char*)val + sizeof (MonoObject), 1, field_klass);
+                                               mono_gc_wbarrier_value_copy ((char *)this_arg + field->offset, (char*)val + sizeof (MonoObject), 1, field_klass);
                                        } else {
-                                               mono_gc_wbarrier_set_field (this, (char*)this + field->offset, val);
+                                               mono_gc_wbarrier_set_field (this_arg, (char*)this_arg + field->offset, val);
                                        }
                                
                                        out_args = mono_array_new (domain, mono_defaults.object_class, 0);
@@ -2876,11 +2889,11 @@ ves_icall_InternalExecute (MonoReflectionMethod *method, MonoObject *this, MonoA
        
        /* handle constructors only for objects already allocated */
        if (!strcmp (method->method->name, ".ctor"))
-               g_assert (this);
+               g_assert (this_arg);
 
        /* This can be called only on MBR objects, so no need to unbox for valuetypes. */
        g_assert (!method->method->klass->valuetype);
-       result = mono_runtime_invoke_array (method->method, this, params, NULL);
+       result = mono_runtime_invoke_array (method->method, this_arg, params, NULL);
 
        for (i = 0, j = 0; i < mono_array_length (params); i++) {
                if (sig->params [i]->byref) {
@@ -2992,7 +3005,7 @@ ves_icall_System_Enum_InternalHasFlag (MonoObject *a, MonoObject *b)
 }
 
 ICALL_EXPORT MonoObject *
-ves_icall_System_Enum_get_value (MonoObject *this)
+ves_icall_System_Enum_get_value (MonoObject *eobj)
 {
        MonoObject *res;
        MonoClass *enumc;
@@ -3000,15 +3013,15 @@ ves_icall_System_Enum_get_value (MonoObject *this)
        gpointer src;
        int size;
 
-       if (!this)
+       if (!eobj)
                return NULL;
 
-       g_assert (this->vtable->klass->enumtype);
+       g_assert (eobj->vtable->klass->enumtype);
        
-       enumc = mono_class_from_mono_type (mono_class_enum_basetype (this->vtable->klass));
-       res = mono_object_new (mono_object_domain (this), enumc);
+       enumc = mono_class_from_mono_type (mono_class_enum_basetype (eobj->vtable->klass));
+       res = mono_object_new (mono_object_domain (eobj), enumc);
        dst = (char *)res + sizeof (MonoObject);
-       src = (char *)this + sizeof (MonoObject);
+       src = (char *)eobj + sizeof (MonoObject);
        size = mono_class_value_size (enumc, NULL);
 
        memcpy (dst, src, size);
@@ -3035,17 +3048,17 @@ ves_icall_System_Enum_get_underlying_type (MonoReflectionType *type)
 }
 
 ICALL_EXPORT int
-ves_icall_System_Enum_compare_value_to (MonoObject *this, MonoObject *other)
+ves_icall_System_Enum_compare_value_to (MonoObject *eobj, MonoObject *other)
 {
-       gpointer tdata = (char *)this + sizeof (MonoObject);
+       gpointer tdata = (char *)eobj + sizeof (MonoObject);
        gpointer odata = (char *)other + sizeof (MonoObject);
-       MonoType *basetype = mono_class_enum_basetype (this->vtable->klass);
+       MonoType *basetype = mono_class_enum_basetype (eobj->vtable->klass);
        g_assert (basetype);
 
        if (other == NULL)
                return 1;
 
-       if (this->vtable->klass != other->vtable->klass)
+       if (eobj->vtable->klass != other->vtable->klass)
                return 2;
 
 #define COMPARE_ENUM_VALUES(ENUM_TYPE) do { \
@@ -3083,10 +3096,10 @@ ves_icall_System_Enum_compare_value_to (MonoObject *this, MonoObject *other)
 }
 
 ICALL_EXPORT int
-ves_icall_System_Enum_get_hashcode (MonoObject *this)
+ves_icall_System_Enum_get_hashcode (MonoObject *eobj)
 {
-       gpointer data = (char *)this + sizeof (MonoObject);
-       MonoType *basetype = mono_class_enum_basetype (this->vtable->klass);
+       gpointer data = (char *)eobj + sizeof (MonoObject);
+       MonoType *basetype = mono_class_enum_basetype (eobj->vtable->klass);
        g_assert (basetype);
 
        switch (basetype->type) {
@@ -4636,24 +4649,24 @@ ves_icall_System_MonoType_getFullName (MonoReflectionType *object, gboolean full
 }
 
 ICALL_EXPORT int
-vell_icall_MonoType_get_core_clr_security_level (MonoReflectionType *this)
+vell_icall_MonoType_get_core_clr_security_level (MonoReflectionType *rfield)
 {
-       MonoClass *klass = mono_class_from_mono_type (this->type);
+       MonoClass *klass = mono_class_from_mono_type (rfield->type);
        mono_class_init_or_throw (klass);
        return mono_security_core_clr_class_level (klass);
 }
 
 ICALL_EXPORT int
-ves_icall_MonoField_get_core_clr_security_level (MonoReflectionField *this)
+ves_icall_MonoField_get_core_clr_security_level (MonoReflectionField *rfield)
 {
-       MonoClassField *field = this->field;
+       MonoClassField *field = rfield->field;
        return mono_security_core_clr_field_level (field, TRUE);
 }
 
 ICALL_EXPORT int
-ves_icall_MonoMethod_get_core_clr_security_level (MonoReflectionMethod *this)
+ves_icall_MonoMethod_get_core_clr_security_level (MonoReflectionMethod *rfield)
 {
-       MonoMethod *method = this->method;
+       MonoMethod *method = rfield->method;
        return mono_security_core_clr_method_level (method, TRUE);
 }
 
@@ -5670,6 +5683,13 @@ ves_icall_System_Buffer_BlockCopyInternal (MonoArray *src, gint32 src_offset, Mo
 {
        guint8 *src_buf, *dest_buf;
 
+       if (count < 0) {
+               mono_set_pending_exception (mono_get_exception_argument ("count", "is negative"));
+               return FALSE;
+       }
+
+       g_assert (count >= 0);
+
        /* This is called directly from the class libraries without going through the managed wrapper */
        MONO_CHECK_ARG_NULL (src, FALSE);
        MONO_CHECK_ARG_NULL (dest, FALSE);
@@ -5691,11 +5711,11 @@ ves_icall_System_Buffer_BlockCopyInternal (MonoArray *src, gint32 src_offset, Mo
 
 #ifndef DISABLE_REMOTING
 ICALL_EXPORT MonoObject *
-ves_icall_Remoting_RealProxy_GetTransparentProxy (MonoObject *this, MonoString *class_name)
+ves_icall_Remoting_RealProxy_GetTransparentProxy (MonoObject *this_obj, MonoString *class_name)
 {
-       MonoDomain *domain = mono_object_domain (this); 
+       MonoDomain *domain = mono_object_domain (this_obj); 
        MonoObject *res;
-       MonoRealProxy *rp = ((MonoRealProxy *)this);
+       MonoRealProxy *rp = ((MonoRealProxy *)this_obj);
        MonoTransparentProxy *tp;
        MonoType *type;
        MonoClass *klass;
@@ -5707,7 +5727,7 @@ ves_icall_Remoting_RealProxy_GetTransparentProxy (MonoObject *this, MonoString *
        type = ((MonoReflectionType *)rp->class_to_proxy)->type;
        klass = mono_class_from_mono_type (type);
 
-       tp->custom_type_info = (mono_object_isinst (this, mono_defaults.iremotingtypeinfo_class) != NULL);
+       tp->custom_type_info = (mono_object_isinst (this_obj, mono_defaults.iremotingtypeinfo_class) != NULL);
        tp->remote_class = mono_remote_class (domain, class_name, klass);
 
        res->vtable = mono_remote_class_vtable (domain, tp->remote_class, rp);
@@ -6191,11 +6211,11 @@ ves_icall_System_Runtime_Versioning_VersioningHelper_GetRuntimeId (void)
 }
 
 ICALL_EXPORT void
-ves_icall_MonoMethodMessage_InitMessage (MonoMethodMessage *this, 
+ves_icall_MonoMethodMessage_InitMessage (MonoMethodMessage *this_obj
                                         MonoReflectionMethod *method,
                                         MonoArray *out_args)
 {
-       mono_message_init (mono_object_domain (this), this, method, out_args);
+       mono_message_init (mono_object_domain (this_obj), this_obj, method, out_args);
 }
 
 #ifndef DISABLE_REMOTING
@@ -6817,20 +6837,6 @@ ves_icall_System_NumberFormatter_GetFormatterTables (guint64 const **mantissas,
        *decHexDigits = Formatter_DecHexDigits;
 }
 
-/* These parameters are "readonly" in corlib/System/Globalization/TextInfo.cs */
-ICALL_EXPORT void
-ves_icall_System_Globalization_TextInfo_GetDataTablePointersLite (
-                                           guint16 const **to_lower_data_low,
-                                           guint16 const **to_lower_data_high,
-                                           guint16 const **to_upper_data_low,
-                                           guint16 const **to_upper_data_high)
-{
-       *to_lower_data_low = ToLowerDataLow;
-       *to_lower_data_high = ToLowerDataHigh;
-       *to_upper_data_low = ToUpperDataLow;
-       *to_upper_data_high = ToUpperDataHigh;
-}
-
 /*
  * We return NULL for no modifiers so the corlib code can return Type.EmptyTypes
  * and avoid useless allocations.
index 705874ef88aa4a24fc32cb3f9d23ba1610643506..ec0e05cfecf8e5941c423c5f363d8c2653dc8c21 100644 (file)
@@ -453,6 +453,10 @@ load_metadata_ptrs (MonoImage *image, MonoCLIImageInfo *iinfo)
                        ptr += 8 + 3;
                        image->uncompressed_metadata = TRUE;
                        mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_ASSEMBLY, "Assembly '%s' has the non-standard metadata heap #-.\nRecompile it correctly (without the /incremental switch or in Release mode).\n", image->name);
+               } else if (strncmp (ptr + 8, "#Pdb", 5) == 0) {
+                       image->heap_pdb.data = image->raw_metadata + read32 (ptr);
+                       image->heap_pdb.size = read32 (ptr + 4);
+                       ptr += 8 + 5;
                } else {
                        g_message ("Unknown heap type: %s\n", ptr + 8);
                        ptr += 8 + strlen (ptr + 8) + 1;
@@ -675,7 +679,7 @@ mono_image_init (MonoImage *image)
                                       g_direct_hash,
                                       class_key_extract,
                                       class_next_value);
-       image->field_cache = mono_conc_hashtable_new (&image->lock, NULL, NULL);
+       image->field_cache = mono_conc_hashtable_new (NULL, NULL);
 
        image->typespec_cache = g_hash_table_new (NULL, NULL);
        image->memberref_signatures = g_hash_table_new (NULL, NULL);
@@ -926,9 +930,12 @@ mono_image_load_names (MonoImage *image)
                                        0, MONO_ASSEMBLY_NAME));
        }
 
-       image->module_name = mono_metadata_string_heap (image, 
+       /* Portable pdb images don't have a MODULE row */
+       if (image->tables [MONO_TABLE_MODULE].rows) {
+               image->module_name = mono_metadata_string_heap (image,
                        mono_metadata_decode_row_col (&image->tables [MONO_TABLE_MODULE],
                                        0, MONO_MODULE_NAME));
+       }
 }
 
 static MonoImage *
@@ -1484,6 +1491,34 @@ free_hash (GHashTable *hash)
                g_hash_table_destroy (hash);
 }
 
+void
+mono_wrapper_caches_free (MonoWrapperCaches *cache)
+{
+       free_hash (cache->delegate_invoke_cache);
+       free_hash (cache->delegate_begin_invoke_cache);
+       free_hash (cache->delegate_end_invoke_cache);
+       free_hash (cache->runtime_invoke_cache);
+       free_hash (cache->runtime_invoke_vtype_cache);
+       
+       free_hash (cache->delegate_abstract_invoke_cache);
+
+       free_hash (cache->runtime_invoke_direct_cache);
+       free_hash (cache->managed_wrapper_cache);
+
+       free_hash (cache->native_wrapper_cache);
+       free_hash (cache->native_wrapper_aot_cache);
+       free_hash (cache->native_wrapper_check_cache);
+       free_hash (cache->native_wrapper_aot_check_cache);
+
+       free_hash (cache->native_func_wrapper_aot_cache);
+       free_hash (cache->remoting_invoke_cache);
+       free_hash (cache->synchronized_cache);
+       free_hash (cache->unbox_wrapper_cache);
+       free_hash (cache->cominterop_invoke_cache);
+       free_hash (cache->cominterop_wrapper_cache);
+       free_hash (cache->thunk_invoke_cache);
+}
+
 /*
  * Returns whether mono_image_close_finish() must be called as well.
  * We must unload images in two steps because clearing the domain in
@@ -1625,38 +1660,14 @@ mono_image_close_except_pools (MonoImage *image)
                g_hash_table_destroy (image->name_cache);
        }
 
-       free_hash (image->native_wrapper_cache);
-       free_hash (image->native_wrapper_aot_cache);
-       free_hash (image->native_wrapper_check_cache);
-       free_hash (image->native_wrapper_aot_check_cache);
-       free_hash (image->native_func_wrapper_cache);
-       free_hash (image->managed_wrapper_cache);
-       free_hash (image->delegate_begin_invoke_cache);
-       free_hash (image->delegate_end_invoke_cache);
-       free_hash (image->delegate_invoke_cache);
-       free_hash (image->delegate_abstract_invoke_cache);
        free_hash (image->delegate_bound_static_invoke_cache);
-       free_hash (image->delegate_invoke_generic_cache);
-       free_hash (image->delegate_begin_invoke_generic_cache);
-       free_hash (image->delegate_end_invoke_generic_cache);
-       free_hash (image->synchronized_generic_cache);
-       free_hash (image->remoting_invoke_cache);
-       free_hash (image->runtime_invoke_cache);
-       free_hash (image->runtime_invoke_vtype_cache);
-       free_hash (image->runtime_invoke_direct_cache);
        free_hash (image->runtime_invoke_vcall_cache);
-       free_hash (image->synchronized_cache);
-       free_hash (image->unbox_wrapper_cache);
-       free_hash (image->cominterop_invoke_cache);
-       free_hash (image->cominterop_wrapper_cache);
-       free_hash (image->typespec_cache);
        free_hash (image->ldfld_wrapper_cache);
        free_hash (image->ldflda_wrapper_cache);
        free_hash (image->stfld_wrapper_cache);
        free_hash (image->isinst_cache);
        free_hash (image->castclass_cache);
        free_hash (image->proxy_isinst_cache);
-       free_hash (image->thunk_invoke_cache);
        free_hash (image->var_cache_slow);
        free_hash (image->mvar_cache_slow);
        free_hash (image->var_cache_constrained);
@@ -1664,6 +1675,11 @@ mono_image_close_except_pools (MonoImage *image)
        free_hash (image->wrapper_param_names);
        free_hash (image->pinvoke_scopes);
        free_hash (image->pinvoke_scope_filenames);
+       free_hash (image->native_func_wrapper_cache);
+       free_hash (image->typespec_cache);
+
+       mono_wrapper_caches_free (&image->wrapper_caches);
+
        for (i = 0; i < image->gshared_types_len; ++i)
                free_hash (image->gshared_types [i]);
        g_free (image->gshared_types);
@@ -2018,6 +2034,7 @@ mono_image_load_file_for_image (MonoImage *image, int fileidx)
                mono_image_unlock (image);
                return image->files [fileidx - 1];
        }
+       mono_image_unlock (image);
 
        fname_id = mono_metadata_decode_row_col (t, fileidx - 1, MONO_FILE_NAME);
        fname = mono_metadata_string_heap (image, fname_id);
@@ -2031,7 +2048,7 @@ mono_image_load_file_for_image (MonoImage *image, int fileidx)
        if (image->files && image->files [fileidx - 1]) {
                MonoImage *old = res;
                res = image->files [fileidx - 1];
-               mono_loader_unlock ();
+               mono_image_unlock (image);
                mono_image_close (old);
        } else {
                int i;
@@ -2045,7 +2062,7 @@ mono_image_load_file_for_image (MonoImage *image, int fileidx)
                if (!image->files)
                        image->files = g_new0 (MonoImage*, t->rows);
                image->files [fileidx - 1] = res;
-               mono_loader_unlock ();
+               mono_image_unlock (image);
                /* vtable fixup can't happen with the image lock held */
 #ifdef HOST_WIN32
                if (res->is_module_handle)
index 89047003aa32a9e07298535151bd77a60cfe8895..0db6ff561fb9bc5f6298081dc9510d2bb94a9ecf 100644 (file)
@@ -600,8 +600,11 @@ mono_field_from_token_checked (MonoImage *image, guint32 token, MonoClass **retk
                }
        }
 
-       if (field && field->parent && !field->parent->generic_class && !field->parent->generic_container)
+       if (field && field->parent && !field->parent->generic_class && !field->parent->generic_container) {
+               mono_image_lock (image);
                mono_conc_hashtable_insert (image->field_cache, GUINT_TO_POINTER (token), field);
+               mono_image_unlock (image);
+       }
 
        mono_loader_assert_no_error ();
        return field;
@@ -1535,7 +1538,7 @@ mono_lookup_pinvoke_call (MonoMethod *method, const char **exc_class, const char
                        continue;
                case 3:
                        if (!is_absolute && mono_dl_get_system_dir ()) {
-                               dir_name = mono_dl_get_system_dir ();
+                               dir_name = (char*)mono_dl_get_system_dir ();
                                file_name = g_path_get_basename (new_scope);
                                base_name = NULL;
                        } else
@@ -2376,10 +2379,11 @@ stack_walk_adapter (MonoStackFrameInfo *frame, MonoContext *ctx, gpointer data)
        switch (frame->type) {
        case FRAME_TYPE_DEBUGGER_INVOKE:
        case FRAME_TYPE_MANAGED_TO_NATIVE:
+       case FRAME_TYPE_TRAMPOLINE:
                return FALSE;
        case FRAME_TYPE_MANAGED:
                g_assert (frame->ji);
-               return d->func (mono_jit_info_get_method (frame->ji), frame->native_offset, frame->il_offset, frame->managed, d->user_data);
+               return d->func (frame->actual_method, frame->native_offset, frame->il_offset, frame->managed, d->user_data);
                break;
        default:
                g_assert_not_reached ();
@@ -2415,14 +2419,16 @@ async_stack_walk_adapter (MonoStackFrameInfo *frame, MonoContext *ctx, gpointer
        switch (frame->type) {
        case FRAME_TYPE_DEBUGGER_INVOKE:
        case FRAME_TYPE_MANAGED_TO_NATIVE:
+       case FRAME_TYPE_TRAMPOLINE:
                return FALSE;
        case FRAME_TYPE_MANAGED:
                if (!frame->ji)
                        return FALSE;
-               if (frame->ji->async)
+               if (frame->ji->async) {
                        return d->func (NULL, frame->domain, frame->ji->code_start, frame->native_offset, d->user_data);
-               else
-                       return d->func (mono_jit_info_get_method (frame->ji), frame->domain, frame->ji->code_start, frame->native_offset, d->user_data);
+               } else {
+                       return d->func (frame->actual_method, frame->domain, frame->ji->code_start, frame->native_offset, d->user_data);
+               }
                break;
        default:
                g_assert_not_reached ();
@@ -2474,9 +2480,9 @@ static gboolean loader_lock_track_ownership = FALSE;
 void
 mono_loader_lock (void)
 {
-       MONO_TRY_BLOCKING
+       MONO_TRY_BLOCKING;
        mono_locks_acquire (&loader_mutex, LoaderLock);
-       MONO_FINISH_TRY_BLOCKING
+       MONO_FINISH_TRY_BLOCKING;
                
        if (G_UNLIKELY (loader_lock_track_ownership)) {
                mono_native_tls_set_value (loader_lock_nest_id, GUINT_TO_POINTER (GPOINTER_TO_UINT (mono_native_tls_get_value (loader_lock_nest_id)) + 1));
index e9618fe746678d9c0511b812094c517dbaedcc38..1f925bd8ed23757ec15af306a6baf5cdeafe5907 100644 (file)
@@ -158,7 +158,7 @@ create_names_array_idx_dynamic (const guint16 *names, int ml)
 }
 
 MonoBoolean
-ves_icall_System_Globalization_CalendarData_fill_calendar_data (MonoCalendarData *this, MonoString *name, gint32 calendar_index)
+ves_icall_System_Globalization_CalendarData_fill_calendar_data (MonoCalendarData *this_obj, MonoString *name, gint32 calendar_index)
 {
        MonoDomain *domain;
        const DateTimeFormatEntry *dfe;
@@ -179,31 +179,31 @@ ves_icall_System_Globalization_CalendarData_fill_calendar_data (MonoCalendarData
 
        domain = mono_domain_get ();
 
-       MONO_OBJECT_SETREF (this, NativeName, mono_string_new (domain, idx2string (ci->nativename)));
-       MONO_OBJECT_SETREF (this, ShortDatePatterns, create_names_array_idx_dynamic (dfe->short_date_patterns,
+       MONO_OBJECT_SETREF (this_obj, NativeName, mono_string_new (domain, idx2string (ci->nativename)));
+       MONO_OBJECT_SETREF (this_obj, ShortDatePatterns, create_names_array_idx_dynamic (dfe->short_date_patterns,
                        NUM_SHORT_DATE_PATTERNS));
-       MONO_OBJECT_SETREF (this, YearMonthPatterns, create_names_array_idx_dynamic (dfe->year_month_patterns,
+       MONO_OBJECT_SETREF (this_obj, YearMonthPatterns, create_names_array_idx_dynamic (dfe->year_month_patterns,
                        NUM_YEAR_MONTH_PATTERNS));
 
-       MONO_OBJECT_SETREF (this, LongDatePatterns, create_names_array_idx_dynamic (dfe->long_date_patterns,
+       MONO_OBJECT_SETREF (this_obj, LongDatePatterns, create_names_array_idx_dynamic (dfe->long_date_patterns,
                        NUM_LONG_DATE_PATTERNS));
-       MONO_OBJECT_SETREF (this, MonthDayPattern, mono_string_new (domain, idx2string (dfe->month_day_pattern)));
+       MONO_OBJECT_SETREF (this_obj, MonthDayPattern, mono_string_new (domain, idx2string (dfe->month_day_pattern)));
 
-       MONO_OBJECT_SETREF (this, DayNames, create_names_array_idx (dfe->day_names, NUM_DAYS));
-       MONO_OBJECT_SETREF (this, AbbreviatedDayNames, create_names_array_idx (dfe->abbreviated_day_names, 
+       MONO_OBJECT_SETREF (this_obj, DayNames, create_names_array_idx (dfe->day_names, NUM_DAYS));
+       MONO_OBJECT_SETREF (this_obj, AbbreviatedDayNames, create_names_array_idx (dfe->abbreviated_day_names, 
                        NUM_DAYS));
-       MONO_OBJECT_SETREF (this, SuperShortDayNames, create_names_array_idx (dfe->shortest_day_names, NUM_DAYS));
-       MONO_OBJECT_SETREF (this, MonthNames, create_names_array_idx (dfe->month_names, NUM_MONTHS));
-       MONO_OBJECT_SETREF (this, AbbreviatedMonthNames, create_names_array_idx (dfe->abbreviated_month_names,
+       MONO_OBJECT_SETREF (this_obj, SuperShortDayNames, create_names_array_idx (dfe->shortest_day_names, NUM_DAYS));
+       MONO_OBJECT_SETREF (this_obj, MonthNames, create_names_array_idx (dfe->month_names, NUM_MONTHS));
+       MONO_OBJECT_SETREF (this_obj, AbbreviatedMonthNames, create_names_array_idx (dfe->abbreviated_month_names,
                        NUM_MONTHS));
-       MONO_OBJECT_SETREF (this, GenitiveMonthNames, create_names_array_idx (dfe->month_genitive_names, NUM_MONTHS));
-       MONO_OBJECT_SETREF (this, GenitiveAbbreviatedMonthNames, create_names_array_idx (dfe->abbreviated_month_genitive_names, NUM_MONTHS));
+       MONO_OBJECT_SETREF (this_obj, GenitiveMonthNames, create_names_array_idx (dfe->month_genitive_names, NUM_MONTHS));
+       MONO_OBJECT_SETREF (this_obj, GenitiveAbbreviatedMonthNames, create_names_array_idx (dfe->abbreviated_month_genitive_names, NUM_MONTHS));
 
        return TRUE;
 }
 
 void
-ves_icall_System_Globalization_CultureData_fill_culture_data (MonoCultureData *this, gint32 datetime_index)
+ves_icall_System_Globalization_CultureData_fill_culture_data (MonoCultureData *this_obj, gint32 datetime_index)
 {
        MonoDomain *domain;
        const DateTimeFormatEntry *dfe;
@@ -214,15 +214,15 @@ ves_icall_System_Globalization_CultureData_fill_culture_data (MonoCultureData *t
 
        domain = mono_domain_get ();
 
-       MONO_OBJECT_SETREF (this, AMDesignator, mono_string_new (domain, idx2string (dfe->am_designator)));
-       MONO_OBJECT_SETREF (this, PMDesignator, mono_string_new (domain, idx2string (dfe->pm_designator)));
-       MONO_OBJECT_SETREF (this, TimeSeparator, mono_string_new (domain, idx2string (dfe->time_separator)));
-       MONO_OBJECT_SETREF (this, LongTimePatterns, create_names_array_idx_dynamic (dfe->long_time_patterns,
+       MONO_OBJECT_SETREF (this_obj, AMDesignator, mono_string_new (domain, idx2string (dfe->am_designator)));
+       MONO_OBJECT_SETREF (this_obj, PMDesignator, mono_string_new (domain, idx2string (dfe->pm_designator)));
+       MONO_OBJECT_SETREF (this_obj, TimeSeparator, mono_string_new (domain, idx2string (dfe->time_separator)));
+       MONO_OBJECT_SETREF (this_obj, LongTimePatterns, create_names_array_idx_dynamic (dfe->long_time_patterns,
                        NUM_LONG_TIME_PATTERNS));
-       MONO_OBJECT_SETREF (this, ShortTimePatterns, create_names_array_idx_dynamic (dfe->short_time_patterns,
+       MONO_OBJECT_SETREF (this_obj, ShortTimePatterns, create_names_array_idx_dynamic (dfe->short_time_patterns,
                        NUM_SHORT_TIME_PATTERNS));
-       this->FirstDayOfWeek = dfe->first_day_of_week;
-       this->CalendarWeekRule = dfe->calendar_week_rule;
+       this_obj->FirstDayOfWeek = dfe->first_day_of_week;
+       this_obj->CalendarWeekRule = dfe->calendar_week_rule;
 }
 
 void
@@ -268,46 +268,46 @@ ves_icall_System_Globalization_CultureData_fill_number_data (MonoNumberFormatInf
 }
 
 static MonoBoolean
-construct_culture (MonoCultureInfo *this, const CultureInfoEntry *ci)
+construct_culture (MonoCultureInfo *this_obj, const CultureInfoEntry *ci)
 {
        MonoDomain *domain = mono_domain_get ();
 
-       this->lcid = ci->lcid;
-       MONO_OBJECT_SETREF (this, name, mono_string_new (domain, idx2string (ci->name)));
-       MONO_OBJECT_SETREF (this, englishname, mono_string_new (domain, idx2string (ci->englishname)));
-       MONO_OBJECT_SETREF (this, nativename, mono_string_new (domain, idx2string (ci->nativename)));
-       MONO_OBJECT_SETREF (this, win3lang, mono_string_new (domain, idx2string (ci->win3lang)));
-       MONO_OBJECT_SETREF (this, iso3lang, mono_string_new (domain, idx2string (ci->iso3lang)));
-       MONO_OBJECT_SETREF (this, iso2lang, mono_string_new (domain, idx2string (ci->iso2lang)));
+       this_obj->lcid = ci->lcid;
+       MONO_OBJECT_SETREF (this_obj, name, mono_string_new (domain, idx2string (ci->name)));
+       MONO_OBJECT_SETREF (this_obj, englishname, mono_string_new (domain, idx2string (ci->englishname)));
+       MONO_OBJECT_SETREF (this_obj, nativename, mono_string_new (domain, idx2string (ci->nativename)));
+       MONO_OBJECT_SETREF (this_obj, win3lang, mono_string_new (domain, idx2string (ci->win3lang)));
+       MONO_OBJECT_SETREF (this_obj, iso3lang, mono_string_new (domain, idx2string (ci->iso3lang)));
+       MONO_OBJECT_SETREF (this_obj, iso2lang, mono_string_new (domain, idx2string (ci->iso2lang)));
 
        // It's null for neutral cultures
        if (ci->territory > 0)
-               MONO_OBJECT_SETREF (this, territory, mono_string_new (domain, idx2string (ci->territory)));
-       MONO_OBJECT_SETREF (this, native_calendar_names, create_names_array_idx (ci->native_calendar_names, NUM_CALENDARS));
-       this->parent_lcid = ci->parent_lcid;
-       this->datetime_index = ci->datetime_format_index;
-       this->number_index = ci->number_format_index;
-       this->calendar_type = ci->calendar_type;
-       this->text_info_data = &ci->text_info;
+               MONO_OBJECT_SETREF (this_obj, territory, mono_string_new (domain, idx2string (ci->territory)));
+       MONO_OBJECT_SETREF (this_obj, native_calendar_names, create_names_array_idx (ci->native_calendar_names, NUM_CALENDARS));
+       this_obj->parent_lcid = ci->parent_lcid;
+       this_obj->datetime_index = ci->datetime_format_index;
+       this_obj->number_index = ci->number_format_index;
+       this_obj->calendar_type = ci->calendar_type;
+       this_obj->text_info_data = &ci->text_info;
        
        return TRUE;
 }
 
 static MonoBoolean
-construct_region (MonoRegionInfo *this, const RegionInfoEntry *ri)
+construct_region (MonoRegionInfo *this_obj, const RegionInfoEntry *ri)
 {
        MonoDomain *domain = mono_domain_get ();
 
-       this->geo_id = ri->geo_id;
-       MONO_OBJECT_SETREF (this, iso2name, mono_string_new (domain, idx2string (ri->iso2name)));
-       MONO_OBJECT_SETREF (this, iso3name, mono_string_new (domain, idx2string (ri->iso3name)));
-       MONO_OBJECT_SETREF (this, win3name, mono_string_new (domain, idx2string (ri->win3name)));
-       MONO_OBJECT_SETREF (this, english_name, mono_string_new (domain, idx2string (ri->english_name)));
-       MONO_OBJECT_SETREF (this, native_name, mono_string_new (domain, idx2string (ri->native_name)));
-       MONO_OBJECT_SETREF (this, currency_symbol, mono_string_new (domain, idx2string (ri->currency_symbol)));
-       MONO_OBJECT_SETREF (this, iso_currency_symbol, mono_string_new (domain, idx2string (ri->iso_currency_symbol)));
-       MONO_OBJECT_SETREF (this, currency_english_name, mono_string_new (domain, idx2string (ri->currency_english_name)));
-       MONO_OBJECT_SETREF (this, currency_native_name, mono_string_new (domain, idx2string (ri->currency_native_name)));
+       this_obj->geo_id = ri->geo_id;
+       MONO_OBJECT_SETREF (this_obj, iso2name, mono_string_new (domain, idx2string (ri->iso2name)));
+       MONO_OBJECT_SETREF (this_obj, iso3name, mono_string_new (domain, idx2string (ri->iso3name)));
+       MONO_OBJECT_SETREF (this_obj, win3name, mono_string_new (domain, idx2string (ri->win3name)));
+       MONO_OBJECT_SETREF (this_obj, english_name, mono_string_new (domain, idx2string (ri->english_name)));
+       MONO_OBJECT_SETREF (this_obj, native_name, mono_string_new (domain, idx2string (ri->native_name)));
+       MONO_OBJECT_SETREF (this_obj, currency_symbol, mono_string_new (domain, idx2string (ri->currency_symbol)));
+       MONO_OBJECT_SETREF (this_obj, iso_currency_symbol, mono_string_new (domain, idx2string (ri->iso_currency_symbol)));
+       MONO_OBJECT_SETREF (this_obj, currency_english_name, mono_string_new (domain, idx2string (ri->currency_english_name)));
+       MONO_OBJECT_SETREF (this_obj, currency_native_name, mono_string_new (domain, idx2string (ri->currency_native_name)));
        
        return TRUE;
 }
@@ -489,7 +489,7 @@ ves_icall_System_Globalization_CultureInfo_get_current_locale_name (void)
 }
 
 MonoBoolean
-ves_icall_System_Globalization_CultureInfo_construct_internal_locale_from_lcid (MonoCultureInfo *this,
+ves_icall_System_Globalization_CultureInfo_construct_internal_locale_from_lcid (MonoCultureInfo *this_obj,
                gint lcid)
 {
        const CultureInfoEntry *ci;
@@ -498,11 +498,11 @@ ves_icall_System_Globalization_CultureInfo_construct_internal_locale_from_lcid (
        if(ci == NULL)
                return FALSE;
 
-       return construct_culture (this, ci);
+       return construct_culture (this_obj, ci);
 }
 
 MonoBoolean
-ves_icall_System_Globalization_CultureInfo_construct_internal_locale_from_name (MonoCultureInfo *this,
+ves_icall_System_Globalization_CultureInfo_construct_internal_locale_from_name (MonoCultureInfo *this_obj,
                MonoString *name)
 {
        const CultureInfoNameEntry *ne;
@@ -519,7 +519,7 @@ ves_icall_System_Globalization_CultureInfo_construct_internal_locale_from_name (
        }
        g_free (n);
 
-       return construct_culture (this, &culture_entries [ne->culture_entry_index]);
+       return construct_culture (this_obj, &culture_entries [ne->culture_entry_index]);
 }
 /*
 MonoBoolean
@@ -537,7 +537,7 @@ ves_icall_System_Globalization_CultureInfo_construct_internal_locale_from_specif
 }
 */
 MonoBoolean
-ves_icall_System_Globalization_RegionInfo_construct_internal_region_from_lcid (MonoRegionInfo *this,
+ves_icall_System_Globalization_RegionInfo_construct_internal_region_from_lcid (MonoRegionInfo *this_obj,
                gint lcid)
 {
        const RegionInfoEntry *ri;
@@ -546,11 +546,11 @@ ves_icall_System_Globalization_RegionInfo_construct_internal_region_from_lcid (M
        if(ri == NULL)
                return FALSE;
 
-       return construct_region (this, ri);
+       return construct_region (this_obj, ri);
 }
 
 MonoBoolean
-ves_icall_System_Globalization_RegionInfo_construct_internal_region_from_name (MonoRegionInfo *this,
+ves_icall_System_Globalization_RegionInfo_construct_internal_region_from_name (MonoRegionInfo *this_obj,
                MonoString *name)
 {
        const RegionInfoNameEntry *ne;
@@ -567,7 +567,7 @@ ves_icall_System_Globalization_RegionInfo_construct_internal_region_from_name (M
        }
        g_free (n);
 
-       return construct_region (this, &region_entries [ne->region_entry_index]);
+       return construct_region (this_obj, &region_entries [ne->region_entry_index]);
 }
 
 MonoArray*
@@ -624,7 +624,7 @@ ves_icall_System_Globalization_CultureInfo_internal_get_cultures (MonoBoolean ne
        return ret;
 }
 
-int ves_icall_System_Globalization_CompareInfo_internal_compare (MonoCompareInfo *this, MonoString *str1, gint32 off1, gint32 len1, MonoString *str2, gint32 off2, gint32 len2, gint32 options)
+int ves_icall_System_Globalization_CompareInfo_internal_compare (MonoCompareInfo *this_obj, MonoString *str1, gint32 off1, gint32 len1, MonoString *str2, gint32 off2, gint32 len2, gint32 options)
 {
        /* Do a normal ascii string compare, as we only know the
         * invariant locale if we dont have ICU
@@ -633,7 +633,7 @@ int ves_icall_System_Globalization_CompareInfo_internal_compare (MonoCompareInfo
                                         options));
 }
 
-void ves_icall_System_Globalization_CompareInfo_assign_sortkey (MonoCompareInfo *this, MonoSortKey *key, MonoString *source, gint32 options)
+void ves_icall_System_Globalization_CompareInfo_assign_sortkey (MonoCompareInfo *this_obj, MonoSortKey *key, MonoString *source, gint32 options)
 {
        MonoArray *arr;
        gint32 keylen, i;
@@ -649,12 +649,12 @@ void ves_icall_System_Globalization_CompareInfo_assign_sortkey (MonoCompareInfo
        MONO_OBJECT_SETREF (key, key, arr);
 }
 
-int ves_icall_System_Globalization_CompareInfo_internal_index (MonoCompareInfo *this, MonoString *source, gint32 sindex, gint32 count, MonoString *value, gint32 options, MonoBoolean first)
+int ves_icall_System_Globalization_CompareInfo_internal_index (MonoCompareInfo *this_obj, MonoString *source, gint32 sindex, gint32 count, MonoString *value, gint32 options, MonoBoolean first)
 {
        return(string_invariant_indexof (source, sindex, count, value, first));
 }
 
-int ves_icall_System_Globalization_CompareInfo_internal_index_char (MonoCompareInfo *this, MonoString *source, gint32 sindex, gint32 count, gunichar2 value, gint32 options, MonoBoolean first)
+int ves_icall_System_Globalization_CompareInfo_internal_index_char (MonoCompareInfo *this_obj, MonoString *source, gint32 sindex, gint32 count, gunichar2 value, gint32 options, MonoBoolean first)
 {
        return(string_invariant_indexof_char (source, sindex, count, value,
                                              first));
@@ -666,12 +666,12 @@ int ves_icall_System_Threading_Thread_current_lcid (void)
        return(0x007F);
 }
 
-MonoString *ves_icall_System_String_InternalReplace_Str_Comp (MonoString *this, MonoString *old, MonoString *new, MonoCompareInfo *comp)
+MonoString *ves_icall_System_String_InternalReplace_Str_Comp (MonoString *this_obj, MonoString *old, MonoString *new, MonoCompareInfo *comp)
 {
        /* Do a normal ascii string compare and replace, as we only
         * know the invariant locale if we dont have ICU
         */
-       return(string_invariant_replace (this, old, new));
+       return(string_invariant_replace (this_obj, old, new));
 }
 
 static gint32 string_invariant_compare_char (gunichar2 c1, gunichar2 c2,
index c56c7b4ea99b70c155060a18efc1a3d4640b661c..51f0aacc3f74f654c7f240fd1c6d5a29e02835a6 100644 (file)
@@ -25,9 +25,9 @@
 #include "metadata/appdomain.h"
 #include "mono/metadata/abi-details.h"
 #include "mono/metadata/debug-helpers.h"
-#include "mono/metadata/threadpool.h"
 #include "mono/metadata/threads.h"
 #include "mono/metadata/monitor.h"
+#include "mono/metadata/class-internals.h"
 #include "mono/metadata/metadata-internals.h"
 #include "mono/metadata/domain-internals.h"
 #include "mono/metadata/gc-internal.h"
@@ -38,6 +38,7 @@
 #include "mono/metadata/cominterop.h"
 #include "mono/metadata/remoting.h"
 #include "mono/metadata/reflection-internals.h"
+#include "mono/metadata/threadpool-ms.h"
 #include "mono/utils/mono-counters.h"
 #include "mono/utils/mono-tls.h"
 #include "mono/utils/mono-memory-model.h"
@@ -160,25 +161,12 @@ register_icall (gpointer func, const char *name, const char *sigstr, gboolean sa
        mono_register_jit_icall (func, name, sig, save);
 }
 
-static MonoMethodSignature*
-signature_dup (MonoImage *image, MonoMethodSignature *sig)
-{
-       MonoMethodSignature *res;
-       int sigsize;
-
-       res = mono_metadata_signature_alloc (image, sig->param_count);
-       sigsize = MONO_SIZEOF_METHOD_SIGNATURE + sig->param_count * sizeof (MonoType *);
-       memcpy (res, sig, sigsize);
-
-       return res;
-}
-
 MonoMethodSignature*
 mono_signature_no_pinvoke (MonoMethod *method)
 {
        MonoMethodSignature *sig = mono_method_signature (method);
        if (sig->pinvoke) {
-               sig = signature_dup (method->klass->image, sig);
+               sig = mono_metadata_signature_dup_full (method->klass->image, sig);
                sig->pinvoke = FALSE;
        }
        
@@ -458,12 +446,12 @@ mono_ftnptr_to_delegate (MonoClass *klass, gpointer ftn)
                MonoMarshalSpec **mspecs;
                MonoMethod *invoke = mono_get_delegate_invoke (klass);
                MonoMethodPInvoke piinfo;
-               MonoObject *this;
+               MonoObject *this_obj;
                int i;
 
                if (use_aot_wrappers) {
                        wrapper = mono_marshal_get_native_func_wrapper_aot (klass);
-                       this = mono_value_box (mono_domain_get (), mono_defaults.int_class, &ftn);
+                       this_obj = mono_value_box (mono_domain_get (), mono_defaults.int_class, &ftn);
                } else {
                        memset (&piinfo, 0, sizeof (piinfo));
                        parse_unmanaged_function_pointer_attr (klass, &piinfo);
@@ -475,7 +463,7 @@ mono_ftnptr_to_delegate (MonoClass *klass, gpointer ftn)
                        sig->hasthis = 0;
 
                        wrapper = mono_marshal_get_native_func_wrapper (klass->image, sig, &piinfo, mspecs, ftn);
-                       this = NULL;
+                       this_obj = NULL;
 
                        for (i = mono_method_signature (invoke)->param_count; i >= 0; i--)
                                if (mspecs [i])
@@ -485,7 +473,7 @@ mono_ftnptr_to_delegate (MonoClass *klass, gpointer ftn)
                }
 
                d = (MonoDelegate*)mono_object_new (mono_domain_get (), klass);
-               mono_delegate_ctor_with_method ((MonoObject*)d, this, mono_compile_method (wrapper), wrapper);
+               mono_delegate_ctor_with_method ((MonoObject*)d, this_obj, mono_compile_method (wrapper), wrapper);
        }
 
        if (d->object.vtable->domain != mono_domain_get ())
@@ -2108,7 +2096,7 @@ mono_delegate_begin_invoke (MonoDelegate *delegate, gpointer *params)
                method = mono_get_delegate_invoke (klass);
        g_assert (method);
 
-       return mono_thread_pool_begin_invoke (mono_domain_get (), (MonoObject*) delegate, method, params);
+       return mono_threadpool_ms_begin_invoke (mono_domain_get (), (MonoObject*) delegate, method, params);
 }
 
 #ifndef DISABLE_JIT
@@ -2727,12 +2715,12 @@ mono_marshal_get_delegate_begin_invoke (MonoMethod *method)
         * Check cache
         */
        if (ctx) {
-               cache = get_cache (&method->klass->image->delegate_begin_invoke_generic_cache, mono_aligned_addr_hash, NULL);
+               cache = get_cache (&((MonoMethodInflated*)orig_method)->owner->wrapper_caches.delegate_begin_invoke_cache, mono_aligned_addr_hash, NULL);
                res = check_generic_delegate_wrapper_cache (cache, orig_method, method, ctx);
                if (res)
                        return res;
        } else {
-               cache = get_cache (&method->klass->image->delegate_begin_invoke_cache,
+               cache = get_cache (&method->klass->image->wrapper_caches.delegate_begin_invoke_cache,
                                                   (GHashFunc)mono_signature_hash, 
                                                   (GCompareFunc)mono_metadata_signature_equal);
                if ((res = mono_marshal_find_in_cache (cache, sig)))
@@ -2823,7 +2811,7 @@ mono_delegate_end_invoke (MonoDelegate *delegate, gpointer *params)
        } else
 #endif
        {
-               res = mono_thread_pool_end_invoke (ares, &out_args, &exc);
+               res = mono_threadpool_ms_end_invoke (ares, &out_args, &exc);
        }
 
        if (exc) {
@@ -2937,12 +2925,12 @@ mono_marshal_get_delegate_end_invoke (MonoMethod *method)
         * Check cache
         */
        if (ctx) {
-               cache = get_cache (&method->klass->image->delegate_end_invoke_generic_cache, mono_aligned_addr_hash, NULL);
+               cache = get_cache (&((MonoMethodInflated*)orig_method)->owner->wrapper_caches.delegate_end_invoke_cache, mono_aligned_addr_hash, NULL);
                res = check_generic_delegate_wrapper_cache (cache, orig_method, method, ctx);
                if (res)
                        return res;
        } else {
-               cache = get_cache (&method->klass->image->delegate_end_invoke_cache,
+               cache = get_cache (&method->klass->image->wrapper_caches.delegate_end_invoke_cache,
                                                   (GHashFunc)mono_signature_hash, 
                                                   (GCompareFunc)mono_metadata_signature_equal);
                if ((res = mono_marshal_find_in_cache (cache, sig)))
@@ -3096,7 +3084,7 @@ mono_marshal_get_delegate_invoke_internal (MonoMethod *method, gboolean callvirt
         * Check cache
         */
        if (ctx) {
-               cache = get_cache (&method->klass->image->delegate_invoke_generic_cache, mono_aligned_addr_hash, NULL);
+               cache = get_cache (&((MonoMethodInflated*)orig_method)->owner->wrapper_caches.delegate_invoke_cache, mono_aligned_addr_hash, NULL);
                res = check_generic_delegate_wrapper_cache (cache, orig_method, method, ctx);
                if (res)
                        return res;
@@ -3115,7 +3103,7 @@ mono_marshal_get_delegate_invoke_internal (MonoMethod *method, gboolean callvirt
        } else if (callvirt) {
                GHashTable **cache_ptr;
 
-               cache_ptr = &method->klass->image->delegate_abstract_invoke_cache;
+               cache_ptr = &mono_method_get_wrapper_cache (method)->delegate_abstract_invoke_cache;
 
                /* We need to cache the signature+method pair */
                mono_marshal_lock ();
@@ -3129,7 +3117,9 @@ mono_marshal_get_delegate_invoke_internal (MonoMethod *method, gboolean callvirt
                if (res)
                        return res;
        } else {
-               cache = get_cache (&method->klass->image->delegate_invoke_cache,
+               // Inflated methods should not be in this cache because it's not stored on the imageset.
+               g_assert (!method->is_inflated);
+               cache = get_cache (&method->klass->image->wrapper_caches.delegate_invoke_cache,
                                                   (GHashFunc)mono_signature_hash, 
                                                   (GCompareFunc)mono_metadata_signature_equal);
                res = mono_marshal_find_in_cache (cache, sig);
@@ -3138,7 +3128,7 @@ mono_marshal_get_delegate_invoke_internal (MonoMethod *method, gboolean callvirt
                cache_key = sig;
        }
 
-       static_sig = signature_dup (method->klass->image, sig);
+       static_sig = mono_metadata_signature_dup_full (method->klass->image, sig);
        static_sig->hasthis = 0;
        if (!static_method_with_first_arg_bound)
                invoke_sig = static_sig;
@@ -3372,28 +3362,6 @@ mono_marshal_get_delegate_invoke (MonoMethod *method, MonoDelegate *del)
        return mono_marshal_get_delegate_invoke_internal (method, callvirt, static_method_with_first_arg_bound, target_method);
 }
 
-/*
- * signature_dup_add_this:
- *
- *  Make a copy of @sig, adding an explicit this argument.
- */
-static MonoMethodSignature*
-signature_dup_add_this (MonoImage *image, MonoMethodSignature *sig, MonoClass *klass)
-{
-       MonoMethodSignature *res;
-       int i;
-
-       res = mono_metadata_signature_alloc (image, sig->param_count + 1);
-       memcpy (res, sig, MONO_SIZEOF_METHOD_SIGNATURE);
-       res->param_count = sig->param_count + 1;
-       res->hasthis = FALSE;
-       for (i = sig->param_count - 1; i >= 0; i --)
-               res->params [i + 1] = sig->params [i];
-       res->params [0] = klass->valuetype ? &klass->this_arg : &klass->byval_arg;
-
-       return res;
-}
-
 typedef struct {
        MonoMethodSignature *ctor_sig;
        MonoMethodSignature *sig;
@@ -3431,7 +3399,7 @@ add_string_ctor_signature (MonoMethod *method)
        MonoMethodSignature *callsig;
        CtorSigPair *cs;
 
-       callsig = signature_dup (method->klass->image, mono_method_signature (method));
+       callsig = mono_metadata_signature_dup_full (method->klass->image, mono_method_signature (method));
        callsig->ret = &mono_defaults.string_class->byval_arg;
        cs = g_new (CtorSigPair, 1);
        cs->sig = callsig;
@@ -3866,7 +3834,8 @@ mono_marshal_get_runtime_invoke (MonoMethod *method, gboolean virtual)
        if (virtual)
                cache = get_cache (&method->klass->image->runtime_invoke_vcall_cache, mono_aligned_addr_hash, NULL);
        else
-               cache = get_cache (&method->klass->image->runtime_invoke_direct_cache, mono_aligned_addr_hash, NULL);
+               cache = get_cache (&mono_method_get_wrapper_cache (method)->runtime_invoke_direct_cache, mono_aligned_addr_hash, NULL);
+
        res = mono_marshal_find_in_cache (cache, method);
        if (res)
                return res;
@@ -3888,7 +3857,7 @@ mono_marshal_get_runtime_invoke (MonoMethod *method, gboolean virtual)
                need_direct_wrapper = TRUE;
        } else {
                if (method_is_dynamic (method))
-                       callsig = signature_dup (method->klass->image, mono_method_signature (method));
+                       callsig = mono_metadata_signature_dup_full (method->klass->image, mono_method_signature (method));
                else
                        callsig = mono_method_signature (method);
        }
@@ -3910,15 +3879,14 @@ mono_marshal_get_runtime_invoke (MonoMethod *method, gboolean virtual)
                MonoMethodSignature *tmp_sig;
 
                callsig = mono_marshal_get_runtime_invoke_sig (callsig);
+               GHashTable **cache_table = NULL;
 
                if (method->klass->valuetype && mono_method_signature (method)->hasthis)
-                       /* These have a different csig */
-                       cache = get_cache (&target_klass->image->runtime_invoke_vtype_cache,
-                                                          (GHashFunc)mono_signature_hash,
-                                                          (GCompareFunc)runtime_invoke_signature_equal);
+                       cache_table = &mono_method_get_wrapper_cache (method)->runtime_invoke_vtype_cache;
                else
-                       cache = get_cache (&target_klass->image->runtime_invoke_cache,
-                                                          (GHashFunc)mono_signature_hash,
+                       cache_table = &mono_method_get_wrapper_cache (method)->runtime_invoke_cache;
+
+               cache = get_cache (cache_table, (GHashFunc)mono_signature_hash,
                                                           (GCompareFunc)runtime_invoke_signature_equal);
 
                /* from mono_marshal_find_in_cache */
@@ -3993,10 +3961,13 @@ mono_marshal_get_runtime_invoke (MonoMethod *method, gboolean virtual)
                        mono_marshal_lock ();
                        res = g_hash_table_lookup (cache, callsig);
                        if (!res) {
+                               GHashTable *direct_cache;
                                res = newm;
                                g_hash_table_insert (cache, callsig, res);
                                /* Can't insert it into wrapper_hash since the key is a signature */
-                               g_hash_table_insert (method->klass->image->runtime_invoke_direct_cache, method, res);
+                               direct_cache = mono_method_get_wrapper_cache (method)->runtime_invoke_direct_cache;
+
+                               g_hash_table_insert (direct_cache, method, res);
                        } else {
                                mono_free_method (newm);
                        }
@@ -4171,9 +4142,9 @@ mono_marshal_get_icall_wrapper (MonoMethodSignature *sig, const char *name, gcon
 
        /* Add an explicit this argument */
        if (sig->hasthis)
-               csig2 = signature_dup_add_this (mono_defaults.corlib, sig, mono_defaults.object_class);
+               csig2 = mono_metadata_signature_dup_add_this (mono_defaults.corlib, sig, mono_defaults.object_class);
        else
-               csig2 = signature_dup (mono_defaults.corlib, sig);
+               csig2 = mono_metadata_signature_dup_full (mono_defaults.corlib, sig);
 
 #ifndef DISABLE_JIT
        if (sig->hasthis)
@@ -4190,7 +4161,7 @@ mono_marshal_get_icall_wrapper (MonoMethodSignature *sig, const char *name, gcon
        mono_mb_emit_byte (mb, CEE_RET);
 #endif
 
-       csig = signature_dup (mono_defaults.corlib, sig);
+       csig = mono_metadata_signature_dup_full (mono_defaults.corlib, sig);
        csig->pinvoke = 0;
        if (csig->call_convention == MONO_CALL_VARARG)
                csig->call_convention = 0;
@@ -5680,6 +5651,8 @@ emit_marshal_object (EmitMarshalContext *m, int argnum, MonoType *t,
                        emit_struct_conv (mb, klass, FALSE);
 
                        mono_mb_patch_branch (mb, pos2);
+               } else if (klass == mono_defaults.stringbuilder_class) {
+                       // FIXME: What to do here ?
                } else {
                        /* byval [Out] marshalling */
 
@@ -7021,7 +6994,7 @@ mono_marshal_emit_native_wrapper (MonoImage *image, MonoMethodBuilder *mb, MonoM
                g_assert (!sig->hasthis);
                param_shift += 1;
        }
-       csig = signature_dup (mb->method->klass->image, sig);
+       csig = mono_metadata_signature_dup_full (mb->method->klass->image, sig);
        csig->pinvoke = 1;
        m.csig = csig;
        m.image = image;
@@ -7255,17 +7228,22 @@ mono_marshal_get_native_wrapper (MonoMethod *method, gboolean check_exceptions,
        g_assert (method != NULL);
        g_assert (mono_method_signature (method)->pinvoke);
 
+       GHashTable **cache_ptr;
+
        if (aot) {
                if (check_exceptions)
-                       cache = get_cache (&method->klass->image->native_wrapper_aot_check_cache, mono_aligned_addr_hash, NULL);
+                       cache_ptr = &mono_method_get_wrapper_cache (method)->native_wrapper_aot_check_cache;
                else
-                       cache = get_cache (&method->klass->image->native_wrapper_aot_cache, mono_aligned_addr_hash, NULL);
+                       cache_ptr = &mono_method_get_wrapper_cache (method)->native_wrapper_aot_cache;
        } else {
                if (check_exceptions)
-                       cache = get_cache (&method->klass->image->native_wrapper_check_cache, mono_aligned_addr_hash, NULL);
+                       cache_ptr = &mono_method_get_wrapper_cache (method)->native_wrapper_check_cache;
                else
-                       cache = get_cache (&method->klass->image->native_wrapper_cache, mono_aligned_addr_hash, NULL);
+                       cache_ptr = &mono_method_get_wrapper_cache (method)->native_wrapper_cache;
        }
+
+       cache = get_cache (cache_ptr, mono_aligned_addr_hash, NULL);
+
        if ((res = mono_marshal_find_in_cache (cache, method)))
                return res;
 
@@ -7304,7 +7282,7 @@ mono_marshal_get_native_wrapper (MonoMethod *method, gboolean check_exceptions,
                g_assert (sig->hasthis);
 
                /* CreateString returns a value */
-               csig = signature_dup (method->klass->image, sig);
+               csig = mono_metadata_signature_dup_full (method->klass->image, sig);
                csig->ret = &mono_defaults.string_class->byval_arg;
                csig->pinvoke = 0;
 
@@ -7360,7 +7338,7 @@ mono_marshal_get_native_wrapper (MonoMethod *method, gboolean check_exceptions,
                info = mono_wrapper_info_create (mb, WRAPPER_SUBTYPE_NONE);
                info->d.managed_to_native.method = method;
 
-               csig = signature_dup (method->klass->image, sig);
+               csig = mono_metadata_signature_dup_full (method->klass->image, sig);
                csig->pinvoke = 0;
                res = mono_mb_create_and_cache_full (cache, method, mb, csig,
                                                                                         csig->param_count + 16, info, NULL);
@@ -7372,9 +7350,9 @@ mono_marshal_get_native_wrapper (MonoMethod *method, gboolean check_exceptions,
        /* internal calls: we simply push all arguments and call the method (no conversions) */
        if (method->iflags & (METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL | METHOD_IMPL_ATTRIBUTE_RUNTIME)) {
                if (sig->hasthis)
-                       csig = signature_dup_add_this (method->klass->image, sig, method->klass);
+                       csig = mono_metadata_signature_dup_add_this (method->klass->image, sig, method->klass);
                else
-                       csig = signature_dup (method->klass->image, sig);
+                       csig = mono_metadata_signature_dup_full (method->klass->image, sig);
 
                /* hack - string constructors returns a value */
                if (method->string_ctor)
@@ -7414,7 +7392,7 @@ mono_marshal_get_native_wrapper (MonoMethod *method, gboolean check_exceptions,
                info = mono_wrapper_info_create (mb, WRAPPER_SUBTYPE_NONE);
                info->d.managed_to_native.method = method;
 
-               csig = signature_dup (method->klass->image, csig);
+               csig = mono_metadata_signature_dup_full (method->klass->image, csig);
                csig->pinvoke = 0;
                res = mono_mb_create_and_cache_full (cache, method, mb, csig, csig->param_count + 16,
                                                                                         info, NULL);
@@ -7436,7 +7414,7 @@ mono_marshal_get_native_wrapper (MonoMethod *method, gboolean check_exceptions,
        info = mono_wrapper_info_create (mb, WRAPPER_SUBTYPE_PINVOKE);
        info->d.managed_to_native.method = method;
 
-       csig = signature_dup (method->klass->image, sig);
+       csig = mono_metadata_signature_dup_full (method->klass->image, sig);
        csig->pinvoke = 0;
        res = mono_mb_create_and_cache_full (cache, method, mb, csig, csig->param_count + 16,
                                                                                 info, NULL);
@@ -7479,6 +7457,9 @@ mono_marshal_get_native_func_wrapper (MonoImage *image, MonoMethodSignature *sig
        key.sig = sig;
        key.pointer = func;
 
+       // Generic types are not safe to place in MonoImage caches.
+       g_assert (!sig->is_inflated);
+
        cache = get_cache (&image->native_func_wrapper_cache, signature_pointer_pair_hash, signature_pointer_pair_equal);
        if ((res = mono_marshal_find_in_cache (cache, &key)))
                return res;
@@ -7491,7 +7472,7 @@ mono_marshal_get_native_func_wrapper (MonoImage *image, MonoMethodSignature *sig
        mono_marshal_emit_native_wrapper (image, mb, sig, piinfo, mspecs, func, FALSE, TRUE, FALSE);
 #endif
 
-       csig = signature_dup (image, sig);
+       csig = mono_metadata_signature_dup_full (image, sig);
        csig->pinvoke = 0;
 
        new_key = g_new (SignaturePointerPair,1);
@@ -7534,7 +7515,8 @@ mono_marshal_get_native_func_wrapper_aot (MonoClass *klass)
        /*
         * The wrapper is associated with the delegate type, to pick up the marshalling info etc.
         */
-       cache = get_cache (&image->native_func_wrapper_aot_cache, mono_aligned_addr_hash, NULL);
+       cache = get_cache (&mono_method_get_wrapper_cache (invoke)->native_func_wrapper_aot_cache, mono_aligned_addr_hash, NULL);
+
        if ((res = mono_marshal_find_in_cache (cache, invoke)))
                return res;
 
@@ -7559,7 +7541,7 @@ mono_marshal_get_native_func_wrapper_aot (MonoClass *klass)
        info->d.managed_to_native.method = invoke;
 
        g_assert (!sig->hasthis);
-       csig = signature_dup_add_this (image, sig, mono_defaults.object_class);
+       csig = mono_metadata_signature_dup_add_this (image, sig, mono_defaults.object_class);
        csig->pinvoke = 0;
        res = mono_mb_create_and_cache_full (cache, invoke,
                                                                                 mb, csig, csig->param_count + 16,
@@ -7887,7 +7869,8 @@ mono_marshal_get_managed_wrapper (MonoMethod *method, MonoClass *delegate_klass,
         * could be called with different delegates, thus different marshalling
         * options.
         */
-       cache = get_cache (&method->klass->image->managed_wrapper_cache, mono_aligned_addr_hash, NULL);
+       cache = get_cache (&mono_method_get_wrapper_cache (method)->managed_wrapper_cache, mono_aligned_addr_hash, NULL);
+
        if (!target_handle && (res = mono_marshal_find_in_cache (cache, method)))
                return res;
 
@@ -7909,7 +7892,7 @@ mono_marshal_get_managed_wrapper (MonoMethod *method, MonoClass *delegate_klass,
                /* Need to free this later */
                csig = mono_metadata_signature_dup (invoke_sig);
        else
-               csig = signature_dup (method->klass->image, invoke_sig);
+               csig = mono_metadata_signature_dup_full (method->klass->image, invoke_sig);
        csig->hasthis = 0;
        csig->pinvoke = 1;
 
@@ -8013,7 +7996,7 @@ mono_marshal_get_managed_wrapper (MonoMethod *method, MonoClass *delegate_klass,
                                                                                         info, NULL);
        } else {
 #ifndef DISABLE_JIT
-               mb->dynamic = 1;
+               mb->dynamic = TRUE;
 #endif
                res = mono_mb_create (mb, csig, sig->param_count + 16, NULL);
        }
@@ -8054,7 +8037,7 @@ mono_marshal_get_vtfixup_ftnptr (MonoImage *image, guint32 token, guint16 type)
                mono_method_get_marshal_info (method, mspecs);
 
                mb = mono_mb_new (method->klass, method->name, MONO_WRAPPER_NATIVE_TO_MANAGED);
-               csig = signature_dup (image, sig);
+               csig = mono_metadata_signature_dup_full (image, sig);
                csig->hasthis = 0;
                csig->pinvoke = 1;
 
@@ -8073,7 +8056,7 @@ mono_marshal_get_vtfixup_ftnptr (MonoImage *image, guint32 token, guint16 type)
                mono_marshal_emit_managed_wrapper (mb, sig, mspecs, &m, method, 0);
 
 #ifndef DISABLE_JIT
-               mb->dynamic = 1;
+               mb->dynamic = TRUE;
 #endif
                method = mono_mb_create (mb, csig, sig->param_count + 16, NULL);
                mono_mb_free (mb);
@@ -8100,7 +8083,7 @@ mono_marshal_get_vtfixup_ftnptr (MonoImage *image, guint32 token, guint16 type)
                mono_mb_emit_op (mb, CEE_CALL, method);
        mono_mb_emit_byte (mb, CEE_RET);
 
-       mb->dynamic = 1;
+       mb->dynamic = TRUE;
 #endif
 
        method = mono_mb_create (mb, sig, param_count, NULL);
@@ -8611,7 +8594,7 @@ mono_marshal_get_ptr_to_struct (MonoClass *klass)
                          static void PtrToStructure (IntPtr ptr, object structure);
                   defined in class/corlib/System.Runtime.InteropServices/Marshal.cs */
                sig = mono_create_icall_signature ("void ptr object");
-               sig = signature_dup (mono_defaults.corlib, sig);
+               sig = mono_metadata_signature_dup_full (mono_defaults.corlib, sig);
                sig->pinvoke = 0;
                mono_memory_barrier ();
                ptostr = sig;
@@ -8687,7 +8670,7 @@ mono_marshal_get_synchronized_inner_wrapper (MonoMethod *method)
        mono_mb_emit_exception_full (mb, "System", "ExecutionEngineException", "Shouldn't be called.");
        mono_mb_emit_byte (mb, CEE_RET);
 #endif
-       sig = signature_dup (method->klass->image, mono_method_signature (method));
+       sig = mono_metadata_signature_dup_full (method->klass->image, mono_method_signature (method));
 
        info = mono_wrapper_info_create (mb, WRAPPER_SUBTYPE_SYNCHRONIZED_INNER);
        info->d.synchronized_inner.method = method;
@@ -8714,7 +8697,7 @@ mono_marshal_get_synchronized_wrapper (MonoMethod *method)
        MonoMethodBuilder *mb;
        MonoMethod *res;
        GHashTable *cache;
-       int i, pos, this_local, ret_local = 0;
+       int i, pos, pos2, this_local, taken_local, ret_local = 0;
        MonoGenericContext *ctx = NULL;
        MonoMethod *orig_method = NULL;
        MonoGenericContainer *container = NULL;
@@ -8739,22 +8722,23 @@ mono_marshal_get_synchronized_wrapper (MonoMethod *method)
         * Check cache
         */
        if (ctx) {
-               cache = get_cache (&method->klass->image->synchronized_generic_cache, mono_aligned_addr_hash, NULL);
+               cache = get_cache (&((MonoMethodInflated*)orig_method)->owner->wrapper_caches.synchronized_cache, mono_aligned_addr_hash, NULL);
                res = check_generic_wrapper_cache (cache, orig_method, orig_method, method);
                if (res)
                        return res;
        } else {
-               cache = get_cache (&method->klass->image->synchronized_cache, mono_aligned_addr_hash, NULL);
+               cache = get_cache (&method->klass->image->wrapper_caches.synchronized_cache, mono_aligned_addr_hash, NULL);
                if ((res = mono_marshal_find_in_cache (cache, method)))
                        return res;
        }
 
-       sig = signature_dup (method->klass->image, mono_method_signature (method));
+       sig = mono_metadata_signature_dup_full (method->klass->image, mono_method_signature (method));
        sig->pinvoke = 0;
 
        mb = mono_mb_new (method->klass, method->name, MONO_WRAPPER_SYNCHRONIZED);
 
 #ifndef DISABLE_JIT
+       mb->skip_visibility = 1;
        /* result */
        if (!MONO_TYPE_IS_VOID (sig->ret))
                ret_local = mono_mb_add_local (mb, sig->ret);
@@ -8783,6 +8767,7 @@ mono_marshal_get_synchronized_wrapper (MonoMethod *method)
 #ifndef DISABLE_JIT
        /* this */
        this_local = mono_mb_add_local (mb, &mono_defaults.object_class->byval_arg);
+       taken_local = mono_mb_add_local (mb, &mono_defaults.boolean_class->byval_arg);
 
        clause = mono_image_alloc0 (method->klass->image, sizeof (MonoExceptionClause));
        clause->flags = MONO_EXCEPTION_CLAUSE_FINALLY;
@@ -8793,7 +8778,7 @@ mono_marshal_get_synchronized_wrapper (MonoMethod *method)
        if (!enter_method) {
                MonoMethodDesc *desc;
 
-               desc = mono_method_desc_new ("Monitor:Enter", FALSE);
+               desc = mono_method_desc_new ("Monitor:enter_with_atomic_var(object,bool&)", FALSE);
                enter_method = mono_method_desc_search_in_class (desc, mono_defaults.monitor_class);
                g_assert (enter_method);
                mono_method_desc_free (desc);
@@ -8828,6 +8813,7 @@ mono_marshal_get_synchronized_wrapper (MonoMethod *method)
 
        /* Call Monitor::Enter() */
        mono_mb_emit_ldloc (mb, this_local);
+       mono_mb_emit_ldloc_addr (mb, taken_local);
        mono_mb_emit_managed_call (mb, enter_method, NULL);
 
        clause->try_offset = mono_mb_get_label (mb);
@@ -8854,9 +8840,12 @@ mono_marshal_get_synchronized_wrapper (MonoMethod *method)
        clause->try_len = mono_mb_get_pos (mb) - clause->try_offset;
        clause->handler_offset = mono_mb_get_label (mb);
 
-       /* Call Monitor::Exit() */
+       /* Call Monitor::Exit() if needed */
+       mono_mb_emit_ldloc (mb, taken_local);
+       pos2 = mono_mb_emit_branch (mb, CEE_BRFALSE);
        mono_mb_emit_ldloc (mb, this_local);
        mono_mb_emit_managed_call (mb, exit_method, NULL);
+       mono_mb_patch_branch (mb, pos2);
        mono_mb_emit_byte (mb, CEE_ENDFINALLY);
 
        clause->handler_len = mono_mb_get_pos (mb) - clause->handler_offset;
@@ -8895,7 +8884,8 @@ mono_marshal_get_unbox_wrapper (MonoMethod *method)
        MonoMethod *res;
        GHashTable *cache;
 
-       cache = get_cache (&method->klass->image->unbox_wrapper_cache, mono_aligned_addr_hash, NULL);
+       cache = get_cache (&mono_method_get_wrapper_cache (method)->unbox_wrapper_cache, mono_aligned_addr_hash, NULL);
+
        if ((res = mono_marshal_find_in_cache (cache, method)))
                return res;
 
@@ -9874,7 +9864,7 @@ mono_marshal_get_array_accessor_wrapper (MonoMethod *method)
                        return res;
        }
 
-       sig = signature_dup (method->klass->image, mono_method_signature (method));
+       sig = mono_metadata_signature_dup_full (method->klass->image, mono_method_signature (method));
        sig->pinvoke = 0;
 
        mb = mono_mb_new (method->klass, method->name, MONO_WRAPPER_UNKNOWN);
@@ -11029,7 +11019,7 @@ mono_marshal_get_generic_array_helper (MonoClass *class, MonoClass *iface, gchar
                METHOD_ATTRIBUTE_NEW_SLOT | METHOD_ATTRIBUTE_HIDE_BY_SIG | METHOD_ATTRIBUTE_FINAL;
 
        sig = mono_method_signature (method);
-       csig = signature_dup (method->klass->image, sig);
+       csig = mono_metadata_signature_dup_full (method->klass->image, sig);
        csig->generic_param_count = 0;
 
 #ifndef DISABLE_JIT
@@ -11122,12 +11112,17 @@ mono_marshal_get_thunk_invoke_wrapper (MonoMethod *method)
        GHashTable *cache;
        MonoMethod *res;
        int i, param_count, sig_size, pos_leave;
+#ifdef USE_COOP_GC
+       int coop_gc_var;
+#endif
 
        g_assert (method);
 
        klass = method->klass;
        image = method->klass->image;
-       cache = get_cache (&image->thunk_invoke_cache, mono_aligned_addr_hash, NULL);
+
+       cache = get_cache (&mono_method_get_wrapper_cache (method)->thunk_invoke_cache, mono_aligned_addr_hash, NULL);
+
 
        if ((res = mono_marshal_find_in_cache (cache, method)))
                return res;
@@ -11173,11 +11168,23 @@ mono_marshal_get_thunk_invoke_wrapper (MonoMethod *method)
        if (!MONO_TYPE_IS_VOID (sig->ret))
                mono_mb_add_local (mb, sig->ret);
 
+#ifdef USE_COOP_GC
+       /* local 4, the local to be used when calling the reset_blocking funcs */
+       /* tons of code hardcode 3 to be the return var */
+       coop_gc_var = mono_mb_add_local (mb, &mono_defaults.int_class->byval_arg);
+#endif
+
        /* clear exception arg */
        mono_mb_emit_ldarg (mb, param_count - 1);
        mono_mb_emit_byte (mb, CEE_LDNULL);
        mono_mb_emit_byte (mb, CEE_STIND_REF);
 
+#ifdef USE_COOP_GC
+       /* FIXME this is technically wrong as the callback itself must be executed in gc unsafe context. */
+       mono_mb_emit_icall (mb, mono_threads_reset_blocking_start);
+       mono_mb_emit_stloc (mb, coop_gc_var);
+#endif
+
        /* try */
        clause = mono_image_alloc0 (image, sizeof (MonoExceptionClause));
        clause->try_offset = mono_mb_get_label (mb);
@@ -11247,6 +11254,12 @@ mono_marshal_get_thunk_invoke_wrapper (MonoMethod *method)
                        mono_mb_emit_op (mb, CEE_BOX, mono_class_from_mono_type (sig->ret));
        }
 
+#ifdef USE_COOP_GC
+       /* XXX merge reset_blocking_end with detach */
+       mono_mb_emit_ldloc (mb, coop_gc_var);
+       mono_mb_emit_icall (mb, mono_threads_reset_blocking_end);
+#endif
+
        mono_mb_emit_byte (mb, CEE_RET);
 #endif
 
@@ -11275,10 +11288,10 @@ mono_marshal_free_dynamic_wrappers (MonoMethod *method)
         * FIXME: We currently leak the wrappers. Freeing them would be tricky as
         * they could be shared with other methods ?
         */
-       if (image->runtime_invoke_direct_cache)
-               g_hash_table_remove (image->runtime_invoke_direct_cache, method);
-       if (image->delegate_abstract_invoke_cache)
-               g_hash_table_foreach_remove (image->delegate_abstract_invoke_cache, signature_pointer_pair_matches_pointer, method);
+       if (image->wrapper_caches.runtime_invoke_direct_cache)
+               g_hash_table_remove (image->wrapper_caches.runtime_invoke_direct_cache, method);
+       if (image->wrapper_caches.delegate_abstract_invoke_cache)
+               g_hash_table_foreach_remove (image->wrapper_caches.delegate_abstract_invoke_cache, signature_pointer_pair_matches_pointer, method);
        // FIXME: Need to clear the caches in other images as well
        if (image->delegate_bound_static_invoke_cache)
                g_hash_table_remove (image->delegate_bound_static_invoke_cache, mono_method_signature (method));
@@ -11286,83 +11299,3 @@ mono_marshal_free_dynamic_wrappers (MonoMethod *method)
        if (marshal_mutex_initialized)
                mono_marshal_unlock ();
 }
-
-static gboolean
-signature_pointer_pair_matches_signature (gpointer key, gpointer value, gpointer user_data)
-{
-       SignaturePointerPair *pair = (SignaturePointerPair*)key;
-       MonoMethodSignature *sig = (MonoMethodSignature*)user_data;
-
-       return mono_metadata_signature_equal (pair->sig, sig);
-}
-
-/*
- * mono_marshal_free_inflated_wrappers:
- *
- *   Free wrappers of the inflated method METHOD.
- */
-void
-mono_marshal_free_inflated_wrappers (MonoMethod *method)
-{
-       MonoMethodSignature *sig = method->signature;
-
-       g_assert (method->is_inflated);
-
-       /* Ignore calls occuring late during cleanup.  */
-       if (!marshal_mutex_initialized)
-               return;
-
-       mono_marshal_lock ();
-       /*
-        * FIXME: We currently leak the wrappers. Freeing them would be tricky as
-        * they could be shared with other methods ?
-        */
-
-        /*
-         * indexed by MonoMethodSignature
-         */
-          /* FIXME: This could remove unrelated wrappers as well */
-       if (sig && method->klass->image->delegate_begin_invoke_cache)
-               g_hash_table_remove (method->klass->image->delegate_begin_invoke_cache, sig);
-       if (sig && method->klass->image->delegate_end_invoke_cache)
-               g_hash_table_remove (method->klass->image->delegate_end_invoke_cache, sig);
-       if (sig && method->klass->image->delegate_invoke_cache)
-               g_hash_table_remove (method->klass->image->delegate_invoke_cache, sig);
-       if (sig && method->klass->image->runtime_invoke_cache)
-               g_hash_table_remove (method->klass->image->runtime_invoke_cache, sig);
-       if (sig && method->klass->image->runtime_invoke_vtype_cache)
-               g_hash_table_remove (method->klass->image->runtime_invoke_vtype_cache, sig);
-
-        /*
-         * indexed by SignaturePointerPair
-         */
-       if (sig && method->klass->image->delegate_abstract_invoke_cache)
-               g_hash_table_foreach_remove (method->klass->image->delegate_abstract_invoke_cache,
-                                            signature_pointer_pair_matches_signature, (gpointer)sig);
-
-        /*
-         * indexed by MonoMethod pointers
-         */
-       if (method->klass->image->runtime_invoke_direct_cache)
-               g_hash_table_remove (method->klass->image->runtime_invoke_direct_cache, method);
-       if (method->klass->image->managed_wrapper_cache)
-               g_hash_table_remove (method->klass->image->managed_wrapper_cache, method);
-       if (method->klass->image->native_wrapper_cache)
-               g_hash_table_remove (method->klass->image->native_wrapper_cache, method);
-       if (method->klass->image->remoting_invoke_cache)
-               g_hash_table_remove (method->klass->image->remoting_invoke_cache, method);
-       if (method->klass->image->synchronized_cache)
-               g_hash_table_remove (method->klass->image->synchronized_cache, method);
-       if (method->klass->image->unbox_wrapper_cache)
-               g_hash_table_remove (method->klass->image->unbox_wrapper_cache, method);
-       if (method->klass->image->cominterop_invoke_cache)
-               g_hash_table_remove (method->klass->image->cominterop_invoke_cache, method);
-       if (method->klass->image->cominterop_wrapper_cache)
-               g_hash_table_remove (method->klass->image->cominterop_wrapper_cache, method);
-       if (method->klass->image->thunk_invoke_cache)
-               g_hash_table_remove (method->klass->image->thunk_invoke_cache, method);
-       if (method->klass->image->native_func_wrapper_aot_cache)
-               g_hash_table_remove (method->klass->image->native_func_wrapper_aot_cache, method);
-
-       mono_marshal_unlock ();
-}
index 38a7a5c20e2862a83ab8a3abebe8519749735060..adeb350ddad31ff30ed6aaa362709af61e67c02f 100644 (file)
@@ -396,9 +396,6 @@ mono_marshal_get_gsharedvt_out_wrapper (void);
 void
 mono_marshal_free_dynamic_wrappers (MonoMethod *method);
 
-void
-mono_marshal_free_inflated_wrappers (MonoMethod *method);
-
 void
 mono_marshal_lock_internal (void);
 
index 8e68399cfa43daa517bfc98e1c53b430182eaf52..0bed5a2ee0bbb278b7135affef5b599e90052ad3 100644 (file)
@@ -100,6 +100,43 @@ struct _MonoAssembly {
        guint32 skipverification:2;     /* Has SecurityPermissionFlag.SkipVerification permission */
 };
 
+typedef struct {
+       /*
+        * indexed by MonoMethodSignature 
+        * Protected by the marshal lock
+        */
+       GHashTable *delegate_invoke_cache;
+       GHashTable *delegate_begin_invoke_cache;
+       GHashTable *delegate_end_invoke_cache;
+       GHashTable *runtime_invoke_cache;
+       GHashTable *runtime_invoke_vtype_cache;
+
+       /*
+        * indexed by SignaturePointerPair
+        */
+       GHashTable *delegate_abstract_invoke_cache;
+
+       /*
+        * indexed by MonoMethod pointers
+        * Protected by the marshal lock
+        */
+       GHashTable *runtime_invoke_direct_cache;
+       GHashTable *managed_wrapper_cache;
+
+       GHashTable *native_wrapper_cache;
+       GHashTable *native_wrapper_aot_cache;
+       GHashTable *native_wrapper_check_cache;
+       GHashTable *native_wrapper_aot_check_cache;
+
+       GHashTable *native_func_wrapper_aot_cache;
+       GHashTable *remoting_invoke_cache;
+       GHashTable *synchronized_cache;
+       GHashTable *unbox_wrapper_cache;
+       GHashTable *cominterop_invoke_cache;
+       GHashTable *cominterop_wrapper_cache; /* LOCKING: marshal lock */
+       GHashTable *thunk_invoke_cache;
+} MonoWrapperCaches;
+
 typedef struct {
        const char* data;
        guint32  size;
@@ -188,6 +225,7 @@ struct _MonoImage {
        MonoStreamHeader     heap_blob;
        MonoStreamHeader     heap_guid;
        MonoStreamHeader     heap_tables;
+       MonoStreamHeader     heap_pdb;
                            
        const char          *tables_base;
 
@@ -254,41 +292,17 @@ struct _MonoImage {
        /* This has a separate lock to improve scalability */
        mono_mutex_t szarray_cache_lock;
 
-       /*
-        * indexed by MonoMethodSignature 
-        */
-       GHashTable *delegate_begin_invoke_cache;
-       GHashTable *delegate_end_invoke_cache;
-       GHashTable *delegate_invoke_cache;
-       GHashTable *runtime_invoke_cache;
-       GHashTable *runtime_invoke_vtype_cache;
-
        /*
         * indexed by SignaturePointerPair
         */
-       GHashTable *delegate_abstract_invoke_cache;
        GHashTable *delegate_bound_static_invoke_cache;
        GHashTable *native_func_wrapper_cache;
 
        /*
         * indexed by MonoMethod pointers 
         */
-       GHashTable *runtime_invoke_direct_cache;
        GHashTable *runtime_invoke_vcall_cache;
-       GHashTable *managed_wrapper_cache;
-       GHashTable *native_wrapper_cache;
-       GHashTable *native_wrapper_aot_cache;
-       GHashTable *native_wrapper_check_cache;
-       GHashTable *native_wrapper_aot_check_cache;
-       GHashTable *native_func_wrapper_aot_cache;
-       GHashTable *remoting_invoke_cache;
-       GHashTable *synchronized_cache;
-       GHashTable *unbox_wrapper_cache;
-       GHashTable *cominterop_invoke_cache;
-       GHashTable *cominterop_wrapper_cache; /* LOCKING: marshal lock */
-       GHashTable *thunk_invoke_cache;
        GHashTable *wrapper_param_names;
-       GHashTable *synchronized_generic_cache;
        GHashTable *array_accessor_cache;
 
        /*
@@ -301,9 +315,6 @@ struct _MonoImage {
        GHashTable *castclass_cache;
        GHashTable *proxy_isinst_cache;
        GHashTable *rgctx_template_hash; /* LOCKING: templates lock */
-       GHashTable *delegate_invoke_generic_cache;
-       GHashTable *delegate_begin_invoke_generic_cache;
-       GHashTable *delegate_end_invoke_generic_cache;
 
        /* Contains rarely used fields of runtime structures belonging to this image */
        MonoPropertyHash *property_hash;
@@ -327,10 +338,14 @@ struct _MonoImage {
           malloc'ed regions to be freed. */
        GSList *reflection_info_unregister_classes;
 
-       /* List of image sets containing this image */
+       /* List of dependent image sets containing this image */
        /* Protected by image_sets_lock */
        GSList *image_sets;
 
+       /* Caches for wrappers that DO NOT reference generic */
+       /* arguments */
+       MonoWrapperCaches wrapper_caches;
+
        /* Caches for MonoClass-es representing anon generic params */
        MonoClass **var_cache_fast;
        MonoClass **mvar_cache_fast;
@@ -368,8 +383,11 @@ typedef struct {
        int nimages;
        MonoImage **images;
 
+       // Generic-specific caches
        GHashTable *gclass_cache, *ginst_cache, *gmethod_cache, *gsignature_cache;
 
+       MonoWrapperCaches wrapper_caches;
+
        mono_mutex_t    lock;
 
        /*
@@ -628,6 +646,12 @@ mono_image_set_alloc  (MonoImageSet *set, guint size);
 gpointer
 mono_image_set_alloc0 (MonoImageSet *set, guint size);
 
+void
+mono_image_set_lock (MonoImageSet *set);
+
+void
+mono_image_set_unlock (MonoImageSet *set);
+
 char*
 mono_image_set_strdup (MonoImageSet *set, const char *s);
 
@@ -752,6 +776,7 @@ void mono_unload_interface_ids (MonoBitSet *bitset);
 MonoType *mono_metadata_type_dup (MonoImage *image, const MonoType *original);
 MonoMethodSignature  *mono_metadata_signature_dup_full (MonoImage *image,MonoMethodSignature *sig);
 MonoMethodSignature  *mono_metadata_signature_dup_mempool (MonoMemPool *mp, MonoMethodSignature *sig);
+MonoMethodSignature  *mono_metadata_signature_dup_add_this (MonoImage *image, MonoMethodSignature *sig, MonoClass *klass);
 
 MonoGenericInst *
 mono_get_shared_generic_inst (MonoGenericContainer *container);
@@ -826,5 +851,14 @@ mono_get_method_checked (MonoImage *image, guint32 token, MonoClass *klass, Mono
 guint32
 mono_metadata_localscope_from_methoddef (MonoImage *meta, guint32 index);
 
+void
+mono_wrapper_caches_free (MonoWrapperCaches *cache);
+
+MonoWrapperCaches*
+mono_method_get_wrapper_cache (MonoMethod *method);
+
+MonoWrapperCaches*
+mono_method_get_wrapper_cache (MonoMethod *method);
+
 #endif /* __MONO_METADATA_INTERNALS_H__ */
 
index 696d48e781adff3e168e079440db275b3be65a9d..b332bd6e99dbba2aac094e39770a0b244e32774c 100644 (file)
@@ -19,8 +19,8 @@
 #include "mono-endian.h"
 #include "cil-coff.h"
 #include "tokentype.h"
-#include "metadata-internals.h"
 #include "class-internals.h"
+#include "metadata-internals.h"
 #include "verify-internals.h"
 #include "class.h"
 #include "marshal.h"
@@ -1858,11 +1858,13 @@ mono_metadata_signature_alloc (MonoImage *m, guint32 nparams)
 }
 
 static MonoMethodSignature*
-mono_metadata_signature_dup_internal (MonoImage *image, MonoMemPool *mp, MonoMethodSignature *sig)
+mono_metadata_signature_dup_internal_with_padding (MonoImage *image, MonoMemPool *mp, MonoMethodSignature *sig, size_t padding)
 {
-       int sigsize;
+       int sigsize, sig_header_size;
        MonoMethodSignature *ret;
-       sigsize = MONO_SIZEOF_METHOD_SIGNATURE + sig->param_count * sizeof (MonoType *);
+       sigsize = sig_header_size = MONO_SIZEOF_METHOD_SIGNATURE + sig->param_count * sizeof (MonoType *) + padding;
+       if (sig->ret)
+               sigsize += MONO_SIZEOF_TYPE;
 
        if (image) {
                ret = mono_image_alloc (image, sigsize);
@@ -1871,14 +1873,62 @@ mono_metadata_signature_dup_internal (MonoImage *image, MonoMemPool *mp, MonoMet
        } else {
                ret = g_malloc (sigsize);
        }
-       memcpy (ret, sig, sigsize);
+
+       memcpy (ret, sig, sig_header_size - padding);
+
+       // Copy return value because of ownership semantics.
+       if (sig->ret) {
+               // Danger! Do not alter padding use without changing the dup_add_this below
+               intptr_t end_of_header = (intptr_t)( (char*)(ret) + sig_header_size);
+               ret->ret = (MonoType *)end_of_header;
+               memcpy (ret->ret, sig->ret, MONO_SIZEOF_TYPE);
+       }
+
+       return ret;
+}
+
+static MonoMethodSignature*
+mono_metadata_signature_dup_internal (MonoImage *image, MonoMemPool *mp, MonoMethodSignature *sig)
+{
+       return mono_metadata_signature_dup_internal_with_padding (image, mp, sig, 0);
+}
+/*
+ * signature_dup_add_this:
+ *
+ *  Make a copy of @sig, adding an explicit this argument.
+ */
+MonoMethodSignature*
+mono_metadata_signature_dup_add_this (MonoImage *image, MonoMethodSignature *sig, MonoClass *klass)
+{
+       MonoMethodSignature *ret;
+       ret = mono_metadata_signature_dup_internal_with_padding (image, NULL, sig, sizeof (MonoType *));
+
+       ret->param_count = sig->param_count + 1;
+       ret->hasthis = FALSE;
+
+       for (int i = sig->param_count - 1; i >= 0; i --)
+               ret->params [i + 1] = sig->params [i];
+       ret->params [0] = klass->valuetype ? &klass->this_arg : &klass->byval_arg;
+
+       for (int i = sig->param_count - 1; i >= 0; i --)
+               g_assert(ret->params [i + 1]->type == sig->params [i]->type && ret->params [i+1]->type != MONO_TYPE_END);
+       g_assert (ret->ret->type == sig->ret->type && ret->ret->type != MONO_TYPE_END);
+
        return ret;
 }
 
+
+
 MonoMethodSignature*
 mono_metadata_signature_dup_full (MonoImage *image, MonoMethodSignature *sig)
 {
-       return mono_metadata_signature_dup_internal (image, NULL, sig);
+       MonoMethodSignature *ret = mono_metadata_signature_dup_internal (image, NULL, sig);
+
+       for (int i = 0 ; i < sig->param_count; i ++)
+               g_assert(ret->params [i]->type == sig->params [i]->type);
+       g_assert (ret->ret->type == sig->ret->type);
+
+       return ret;
 }
 
 /*The mempool is accessed without synchronization*/
@@ -2347,6 +2397,8 @@ delete_image_set (MonoImageSet *set)
        g_hash_table_destroy (set->gmethod_cache);
        g_hash_table_destroy (set->gsignature_cache);
 
+       mono_wrapper_caches_free (&set->wrapper_caches);
+
        image_sets_lock ();
 
        for (i = 0; i < set->nimages; ++i)
@@ -2363,13 +2415,13 @@ delete_image_set (MonoImageSet *set)
        g_free (set);
 }
 
-static void
+void
 mono_image_set_lock (MonoImageSet *set)
 {
        mono_mutex_lock (&set->lock);
 }
 
-static void
+void
 mono_image_set_unlock (MonoImageSet *set)
 {
        mono_mutex_unlock (&set->lock);
@@ -2746,8 +2798,6 @@ free_inflated_method (MonoMethodInflated *imethod)
        int i;
        MonoMethod *method = (MonoMethod*)imethod;
 
-       mono_marshal_free_inflated_wrappers (method);
-
        if (method->signature)
                mono_metadata_free_inflated_signature (method->signature);
 
@@ -2793,32 +2843,6 @@ free_inflated_signature (MonoInflatedMethodSignature *sig)
        g_free (sig);
 }
 
-MonoMethodInflated*
-mono_method_inflated_lookup (MonoMethodInflated* method, gboolean cache)
-{
-       CollectData data;
-       MonoImageSet *set;
-       gpointer res;
-
-       collect_data_init (&data);
-
-       collect_method_images (method, &data);
-
-       set = get_image_set (data.images, data.nimages);
-
-       collect_data_free (&data);
-
-       mono_image_set_lock (set);
-       res = g_hash_table_lookup (set->gmethod_cache, method);
-       if (!res && cache) {
-               g_hash_table_insert (set->gmethod_cache, method, method);
-               res = method;
-       }
-
-       mono_image_set_unlock (set);
-       return res;
-}
-
 /*
  * mono_metadata_get_inflated_signature:
  *
@@ -2861,6 +2885,20 @@ mono_metadata_get_inflated_signature (MonoMethodSignature *sig, MonoGenericConte
        return res->sig;
 }
 
+MonoImageSet *
+mono_metadata_get_image_set_for_method (MonoMethodInflated *method)
+{
+       MonoImageSet *set;
+       CollectData image_set_data;
+
+       collect_data_init (&image_set_data);
+       collect_method_images (method, &image_set_data);
+       set = get_image_set (image_set_data.images, image_set_data.nimages);
+       collect_data_free (&image_set_data);
+
+       return set;
+}
+
 /*
  * mono_metadata_get_generic_inst:
  *
@@ -3218,6 +3256,7 @@ compare_type_literals (int class_type, int type_type)
        case MONO_TYPE_R8:
        case MONO_TYPE_I:
        case MONO_TYPE_U:
+       case MONO_TYPE_CLASS:
                return TRUE;
        default:
                return FALSE;
@@ -6521,3 +6560,13 @@ mono_metadata_get_corresponding_property_from_generic_type_definition (MonoPrope
        return gtd->ext->properties + offset;
 }
 
+MonoWrapperCaches*
+mono_method_get_wrapper_cache (MonoMethod *method)
+{
+       if (method->is_inflated) {
+               MonoMethodInflated *imethod = (MonoMethodInflated *)method;
+               return &imethod->owner->wrapper_caches;
+       } else {
+               return &method->klass->image->wrapper_caches;
+       }
+}
index d66a0ad5b2b639d718f373c6e846713a6e4ce954..234598d496250d8026180410ecc8664aef17af11 100644 (file)
@@ -172,7 +172,7 @@ mono_mb_create_method (MonoMethodBuilder *mb, MonoMethodSignature *signature, in
                memcpy ((char*)header->code, mb->code, mb->pos);
 
                for (i = 0, l = mb->locals_list; l; l = l->next, i++) {
-                       header->locals [i] = (MonoType *)l->data;
+                       header->locals [i] = mono_metadata_type_dup (NULL, (MonoType*)l->data);
                }
 #endif
        }
index 36a42db0bf7d13c23d3969b39cc8195831eb52d3..0d9001be1a05514840d263c456affd595d3765e7 100644 (file)
@@ -64,15 +64,7 @@ enum {
  *
  * Bacon's thin locks have a fast path that doesn't need a lock record
  * for the common case of locking an unlocked or shallow-nested
- * object, but the technique relies on encoding the thread ID in 15
- * bits (to avoid too much per-object space overhead.)  Unfortunately
- * I don't think it's possible to reliably encode a pthread_t into 15
- * bits. (The JVM implementation used seems to have a 15-bit
- * per-thread identifier available.)
- *
- * This implementation then combines Dice's basic lock model with
- * Bacon's simplification of keeping a lock record for the lifetime of
- * an object.
+ * object.
  */
 
 
@@ -91,6 +83,8 @@ static MonoThreadsSync *monitor_freelist;
 static MonitorArray *monitor_allocated;
 static int array_size = 16;
 
+/* MonoThreadsSync status helpers */
+
 static inline guint32
 mon_status_get_owner (guint32 status)
 {
@@ -135,6 +129,122 @@ mon_status_have_waiters (guint32 status)
        return status & ENTRY_COUNT_WAITERS;
 }
 
+/* LockWord helpers */
+
+static inline MonoThreadsSync*
+lock_word_get_inflated_lock (LockWord lw)
+{
+       lw.lock_word &= (~LOCK_WORD_STATUS_MASK);
+       return lw.sync;
+}
+
+static inline gboolean
+lock_word_is_inflated (LockWord lw)
+{
+       return lw.lock_word & LOCK_WORD_INFLATED;
+}
+
+static inline gboolean
+lock_word_has_hash (LockWord lw)
+{
+       return lw.lock_word & LOCK_WORD_HAS_HASH;
+}
+
+static inline LockWord
+lock_word_set_has_hash (LockWord lw)
+{
+       LockWord nlw;
+       nlw.lock_word = lw.lock_word | LOCK_WORD_HAS_HASH;
+       return nlw;
+}
+
+static inline gboolean
+lock_word_is_free (LockWord lw)
+{
+       return !lw.lock_word;
+}
+
+static inline gboolean
+lock_word_is_flat (LockWord lw)
+{
+       /* Return whether the lock is flat or free */
+       return (lw.lock_word & LOCK_WORD_STATUS_MASK) == LOCK_WORD_FLAT;
+}
+
+static inline gint32
+lock_word_get_hash (LockWord lw)
+{
+       return (gint32) (lw.lock_word >> LOCK_WORD_HASH_SHIFT);
+}
+
+static inline gint32
+lock_word_get_nest (LockWord lw)
+{
+       if (lock_word_is_free (lw))
+               return 0;
+       /* Inword nest count starts from 0 */
+       return ((lw.lock_word & LOCK_WORD_NEST_MASK) >> LOCK_WORD_NEST_SHIFT) + 1;
+}
+
+static inline gboolean
+lock_word_is_nested (LockWord lw)
+{
+       return lw.lock_word & LOCK_WORD_NEST_MASK;
+}
+
+static inline gboolean
+lock_word_is_max_nest (LockWord lw)
+{
+       return (lw.lock_word & LOCK_WORD_NEST_MASK) == LOCK_WORD_NEST_MASK;
+}
+
+static inline LockWord
+lock_word_increment_nest (LockWord lw)
+{
+       lw.lock_word += 1 << LOCK_WORD_NEST_SHIFT;
+       return lw;
+}
+
+static inline LockWord
+lock_word_decrement_nest (LockWord lw)
+{
+       lw.lock_word -= 1 << LOCK_WORD_NEST_SHIFT;
+       return lw;
+}
+
+static inline gint32
+lock_word_get_owner (LockWord lw)
+{
+       return lw.lock_word >> LOCK_WORD_OWNER_SHIFT;
+}
+
+static inline LockWord
+lock_word_new_thin_hash (gint32 hash)
+{
+       LockWord lw;
+       lw.lock_word = (guint32)hash;
+       lw.lock_word = (lw.lock_word << LOCK_WORD_HASH_SHIFT) | LOCK_WORD_HAS_HASH;
+       return lw;
+}
+
+static inline LockWord
+lock_word_new_inflated (MonoThreadsSync *mon)
+{
+       LockWord lw;
+       lw.sync = mon;
+       lw.lock_word |= LOCK_WORD_INFLATED;
+       return lw;
+}
+
+static inline LockWord
+lock_word_new_flat (gint32 owner)
+{
+       LockWord lw;
+       lw.lock_word = owner;
+       lw.lock_word <<= LOCK_WORD_OWNER_SHIFT;
+       return lw;
+}
+
 void
 mono_monitor_init (void)
 {
@@ -337,26 +447,107 @@ mon_new (gsize id)
        return new;
 }
 
-/*
- * Format of the lock word:
- * thinhash | fathash | data
- *
- * thinhash is the lower bit: if set data is the shifted hashcode of the object.
- * fathash is another bit: if set the hash code is stored in the MonoThreadsSync
- *   struct pointed to by data
- * if neither bit is set and data is non-NULL, data is a MonoThreadsSync
- */
-typedef union {
-       gsize lock_word;
-       MonoThreadsSync *sync;
-} LockWord;
+static MonoThreadsSync*
+alloc_mon (MonoObject *obj, gint32 id)
+{
+       MonoThreadsSync *mon;
 
-enum {
-       LOCK_WORD_THIN_HASH = 1,
-       LOCK_WORD_FAT_HASH = 1 << 1,
-       LOCK_WORD_BITS_MASK = 0x3,
-       LOCK_WORD_HASH_SHIFT = 2
-};
+       mono_monitor_allocator_lock ();
+       mon = mon_new (id);
+       mono_gc_weak_link_add (&mon->data, obj, TRUE);
+       mono_monitor_allocator_unlock ();
+
+       return mon;
+}
+
+
+static void
+discard_mon (MonoThreadsSync *mon)
+{
+       mono_monitor_allocator_lock ();
+       mono_gc_weak_link_remove (&mon->data, TRUE);
+       mon_finalize (mon);
+       mono_monitor_allocator_unlock ();
+}
+
+static void
+mono_monitor_inflate_owned (MonoObject *obj, int id)
+{
+       MonoThreadsSync *mon;
+       LockWord nlw, old_lw, tmp_lw;
+       guint32 nest;
+
+       old_lw.sync = obj->synchronisation;
+       LOCK_DEBUG (g_message ("%s: (%d) Inflating owned lock object %p; LW = %p", __func__, id, obj, old_lw.sync));
+
+       if (lock_word_is_inflated (old_lw)) {
+               /* Someone else inflated the lock in the meantime */
+               return;
+       }
+
+       mon = alloc_mon (obj, id);
+
+       nest = lock_word_get_nest (old_lw);
+       mon->nest = nest;
+
+       nlw = lock_word_new_inflated (mon);
+
+       mono_memory_write_barrier ();
+       tmp_lw.sync = InterlockedCompareExchangePointer ((gpointer*)&obj->synchronisation, nlw.sync, old_lw.sync);
+       if (tmp_lw.sync != old_lw.sync) {
+               /* Someone else inflated the lock in the meantime */
+               discard_mon (mon);
+       }
+}
+
+static void
+mono_monitor_inflate (MonoObject *obj)
+{
+       MonoThreadsSync *mon;
+       LockWord nlw, old_lw;
+
+       LOCK_DEBUG (g_message ("%s: (%d) Inflating lock object %p; LW = %p", __func__, mono_thread_info_get_small_id (), obj, obj->synchronisation));
+
+       mon = alloc_mon (obj, 0);
+
+       nlw = lock_word_new_inflated (mon);
+
+       old_lw.sync = obj->synchronisation;
+
+       for (;;) {
+               LockWord tmp_lw;
+
+               if (lock_word_is_inflated (old_lw)) {
+                       break;
+               }
+#ifdef HAVE_MOVING_COLLECTOR
+                else if (lock_word_has_hash (old_lw)) {
+                       mon->hash_code = lock_word_get_hash (old_lw);
+                       mon->status = mon_status_set_owner (mon->status, 0);
+                       nlw = lock_word_set_has_hash (nlw);
+               }
+#endif
+               else if (lock_word_is_free (old_lw)) {
+                       mon->status = mon_status_set_owner (mon->status, 0);
+                       mon->nest = 1;
+               } else {
+                       /* Lock is flat */
+                       mon->status = mon_status_set_owner (mon->status, lock_word_get_owner (old_lw));
+                       mon->nest = lock_word_get_nest (old_lw);
+               }
+               mono_memory_write_barrier ();
+               tmp_lw.sync = InterlockedCompareExchangePointer ((gpointer*)&obj->synchronisation, nlw.sync, old_lw.sync);
+               if (tmp_lw.sync == old_lw.sync) {
+                       /* Successfully inflated the lock */
+                       return;
+               }
+
+               old_lw.sync = tmp_lw.sync;
+       }
+
+       /* Someone else inflated the lock before us */
+       discard_mon (mon);
+}
 
 #define MONO_OBJECT_ALIGNMENT_SHIFT    3
 
@@ -375,14 +566,15 @@ mono_object_hash (MonoObject* obj)
        if (!obj)
                return 0;
        lw.sync = obj->synchronisation;
-       if (lw.lock_word & LOCK_WORD_THIN_HASH) {
-               /*g_print ("fast thin hash %d for obj %p store\n", (unsigned int)lw.lock_word >> LOCK_WORD_HASH_SHIFT, obj);*/
-               return (unsigned int)lw.lock_word >> LOCK_WORD_HASH_SHIFT;
-       }
-       if (lw.lock_word & LOCK_WORD_FAT_HASH) {
-               lw.lock_word &= ~LOCK_WORD_BITS_MASK;
-               /*g_print ("fast fat hash %d for obj %p store\n", lw.sync->hash_code, obj);*/
-               return lw.sync->hash_code;
+
+       LOCK_DEBUG (g_message("%s: (%d) Get hash for object %p; LW = %p", __func__, mono_thread_info_get_small_id (), obj, obj->synchronisation));
+
+       if (lock_word_has_hash (lw)) {
+               if (lock_word_is_inflated (lw)) {
+                       return lock_word_get_inflated_lock (lw)->hash_code;
+               } else {
+                       return lock_word_get_hash (lw);
+               }
        }
        /*
         * while we are inside this function, the GC will keep this object pinned,
@@ -392,31 +584,40 @@ mono_object_hash (MonoObject* obj)
         * with the same value.
         */
        hash = (GPOINTER_TO_UINT (obj) >> MONO_OBJECT_ALIGNMENT_SHIFT) * 2654435761u;
+#if SIZEOF_VOID_P == 4
        /* clear the top bits as they can be discarded */
-       hash &= ~(LOCK_WORD_BITS_MASK << 30);
-       /* no hash flags were set, so it must be a MonoThreadsSync pointer if not NULL */
-       if (lw.sync) {
-               lw.sync->hash_code = hash;
-               /*g_print ("storing hash code %d for obj %p in sync %p\n", hash, obj, lw.sync);*/
-               lw.lock_word |= LOCK_WORD_FAT_HASH;
-               /* this is safe since we don't deflate locks */
-               obj->synchronisation = lw.sync;
-       } else {
-               /*g_print ("storing thin hash code %d for obj %p\n", hash, obj);*/
-               lw.lock_word = LOCK_WORD_THIN_HASH | (hash << LOCK_WORD_HASH_SHIFT);
-               if (InterlockedCompareExchangePointer ((gpointer*)&obj->synchronisation, lw.sync, NULL) == NULL)
+       hash &= ~(LOCK_WORD_STATUS_MASK << (32 - LOCK_WORD_STATUS_BITS));
+#endif
+       if (lock_word_is_free (lw)) {
+               LockWord old_lw;
+               lw = lock_word_new_thin_hash (hash);
+
+               old_lw.sync = InterlockedCompareExchangePointer ((gpointer*)&obj->synchronisation, lw.sync, NULL);
+               if (old_lw.sync == NULL) {
                        return hash;
-               /*g_print ("failed store\n");*/
-               /* someone set the hash flag or someone inflated the object */
-               lw.sync = obj->synchronisation;
-               if (lw.lock_word & LOCK_WORD_THIN_HASH)
+               }
+
+               if (lock_word_has_hash (old_lw)) {
+                       /* Done by somebody else */
                        return hash;
-               lw.lock_word &= ~LOCK_WORD_BITS_MASK;
-               lw.sync->hash_code = hash;
-               lw.lock_word |= LOCK_WORD_FAT_HASH;
-               /* this is safe since we don't deflate locks */
-               obj->synchronisation = lw.sync;
+               }
+                       
+               mono_monitor_inflate (obj);
+               lw.sync = obj->synchronisation;
+       } else if (lock_word_is_flat (lw)) {
+               int id = mono_thread_info_get_small_id ();
+               if (lock_word_get_owner (lw) == id)
+                       mono_monitor_inflate_owned (obj, id);
+               else
+                       mono_monitor_inflate (obj);
+               lw.sync = obj->synchronisation;
        }
+
+       /* At this point, the lock is inflated */
+       lock_word_get_inflated_lock (lw)->hash_code = hash;
+       lw = lock_word_set_has_hash (lw);
+       mono_memory_write_barrier ();
+       obj->synchronisation = lw.sync;
        return hash;
 #else
 /*
@@ -427,6 +628,94 @@ mono_object_hash (MonoObject* obj)
 #endif
 }
 
+static void
+mono_monitor_ensure_owned (LockWord lw, guint32 id)
+{
+       if (lock_word_is_flat (lw)) {
+               if (lock_word_get_owner (lw) == id)
+                       return;
+       } else if (lock_word_is_inflated (lw)) {
+               if (mon_status_get_owner (lock_word_get_inflated_lock (lw)->status) == id)
+                       return;
+       }
+
+       mono_set_pending_exception (mono_get_exception_synchronization_lock ("Object synchronization method was called from an unsynchronized block of code."));
+}
+
+/*
+ * When this function is called it has already been established that the
+ * current thread owns the monitor.
+ */
+static void
+mono_monitor_exit_inflated (MonoObject *obj)
+{
+       LockWord lw;
+       MonoThreadsSync *mon;
+       guint32 nest;
+
+       lw.sync = obj->synchronisation;
+       mon = lock_word_get_inflated_lock (lw);
+
+       nest = mon->nest - 1;
+       if (nest == 0) {
+               guint32 new_status, old_status, tmp_status;
+
+               old_status = mon->status;
+
+               /*
+                * Release lock and do the wakeup stuff. It's possible that
+                * the last blocking thread gave up waiting just before we
+                * release the semaphore resulting in a negative entry count
+                * and a futile wakeup next time there's contention for this
+                * object.
+                */
+               for (;;) {
+                       gboolean have_waiters = mon_status_have_waiters (old_status);
+       
+                       new_status = mon_status_set_owner (old_status, 0);
+                       if (have_waiters)
+                               new_status = mon_status_decrement_entry_count (new_status);
+                       tmp_status = InterlockedCompareExchange ((gint32*)&mon->status, new_status, old_status);
+                       if (tmp_status == old_status) {
+                               if (have_waiters)
+                                       ReleaseSemaphore (mon->entry_sem, 1, NULL);
+                               break;
+                       }
+                       old_status = tmp_status;
+               }
+               LOCK_DEBUG (g_message ("%s: (%d) Object %p is now unlocked", __func__, mono_thread_info_get_small_id (), obj));
+       
+               /* object is now unlocked, leave nest==1 so we don't
+                * need to set it when the lock is reacquired
+                */
+       } else {
+               LOCK_DEBUG (g_message ("%s: (%d) Object %p is now locked %d times", __func__, mono_thread_info_get_small_id (), obj, nest));
+               mon->nest = nest;
+       }
+}
+
+/*
+ * When this function is called it has already been established that the
+ * current thread owns the monitor.
+ */
+static void
+mono_monitor_exit_flat (MonoObject *obj, LockWord old_lw)
+{
+       LockWord new_lw, tmp_lw;
+       if (G_UNLIKELY (lock_word_is_nested (old_lw)))
+               new_lw = lock_word_decrement_nest (old_lw);
+       else
+               new_lw.lock_word = 0;
+
+       tmp_lw.sync = InterlockedCompareExchangePointer ((gpointer*)&obj->synchronisation, new_lw.sync, old_lw.sync);
+       if (old_lw.sync != tmp_lw.sync) {
+               /* Someone inflated the lock in the meantime */
+               mono_monitor_exit_inflated (obj);
+       }
+
+       LOCK_DEBUG (g_message ("%s: (%d) Object %p is now locked %d times; LW = %p", __func__, mono_thread_info_get_small_id (), obj, lock_word_get_nest (new_lw), obj->synchronisation));
+}
+
 static void
 mon_decrement_entry_count (MonoThreadsSync *mon)
 {
@@ -448,10 +737,10 @@ mon_decrement_entry_count (MonoThreadsSync *mon)
  * is requested. In this case it returns -1.
  */ 
 static inline gint32 
-mono_monitor_try_enter_internal (MonoObject *obj, guint32 ms, gboolean allow_interruption)
+mono_monitor_try_enter_inflated (MonoObject *obj, guint32 ms, gboolean allow_interruption, guint32 id)
 {
+       LockWord lw;
        MonoThreadsSync *mon;
-       gsize id = mono_thread_info_get_small_id ();
        HANDLE sem;
        guint32 then = 0, now, delta;
        guint32 waitms;
@@ -463,96 +752,13 @@ mono_monitor_try_enter_internal (MonoObject *obj, guint32 ms, gboolean allow_int
        LOCK_DEBUG (g_message("%s: (%d) Trying to lock object %p (%d ms)", __func__, id, obj, ms));
 
        if (G_UNLIKELY (!obj)) {
-               mono_raise_exception (mono_get_exception_argument_null ("obj"));
+               mono_set_pending_exception (mono_get_exception_argument_null ("obj"));
                return FALSE;
        }
 
+       lw.sync = obj->synchronisation;
+       mon = lock_word_get_inflated_lock (lw);
 retry:
-       mon = obj->synchronisation;
-
-       /* If the object has never been locked... */
-       if (G_UNLIKELY (mon == NULL)) {
-               mono_monitor_allocator_lock ();
-               mon = mon_new (id);
-               if (InterlockedCompareExchangePointer ((gpointer*)&obj->synchronisation, mon, NULL) == NULL) {
-                       mono_gc_weak_link_add (&mon->data, obj, TRUE);
-                       mono_monitor_allocator_unlock ();
-                       /* Successfully locked */
-                       return 1;
-               } else {
-#ifdef HAVE_MOVING_COLLECTOR
-                       LockWord lw;
-                       lw.sync = obj->synchronisation;
-                       if (lw.lock_word & LOCK_WORD_THIN_HASH) {
-                               MonoThreadsSync *oldlw = lw.sync;
-                               /* move the already calculated hash */
-                               mon->hash_code = lw.lock_word >> LOCK_WORD_HASH_SHIFT;
-                               lw.sync = mon;
-                               lw.lock_word |= LOCK_WORD_FAT_HASH;
-                               if (InterlockedCompareExchangePointer ((gpointer*)&obj->synchronisation, lw.sync, oldlw) == oldlw) {
-                                       mono_gc_weak_link_add (&mon->data, obj, TRUE);
-                                       mono_monitor_allocator_unlock ();
-                                       /* Successfully locked */
-                                       return 1;
-                               } else {
-                                       mon_finalize (mon);
-                                       mono_monitor_allocator_unlock ();
-                                       goto retry;
-                               }
-                       } else if (lw.lock_word & LOCK_WORD_FAT_HASH) {
-                               mon_finalize (mon);
-                               mono_monitor_allocator_unlock ();
-                               /* get the old lock without the fat hash bit */
-                               lw.lock_word &= ~LOCK_WORD_BITS_MASK;
-                               mon = lw.sync;
-                       } else {
-                               mon_finalize (mon);
-                               mono_monitor_allocator_unlock ();
-                               mon = obj->synchronisation;
-                       }
-#else
-                       mon_finalize (mon);
-                       mono_monitor_allocator_unlock ();
-                       mon = obj->synchronisation;
-#endif
-               }
-       } else {
-#ifdef HAVE_MOVING_COLLECTOR
-               LockWord lw;
-               lw.sync = mon;
-               if (lw.lock_word & LOCK_WORD_THIN_HASH) {
-                       MonoThreadsSync *oldlw = lw.sync;
-                       mono_monitor_allocator_lock ();
-                       mon = mon_new (id);
-                       /* move the already calculated hash */
-                       mon->hash_code = lw.lock_word >> LOCK_WORD_HASH_SHIFT;
-                       lw.sync = mon;
-                       lw.lock_word |= LOCK_WORD_FAT_HASH;
-                       if (InterlockedCompareExchangePointer ((gpointer*)&obj->synchronisation, lw.sync, oldlw) == oldlw) {
-                               mono_gc_weak_link_add (&mon->data, obj, TRUE);
-                               mono_monitor_allocator_unlock ();
-                               /* Successfully locked */
-                               return 1;
-                       } else {
-                               mon_finalize (mon);
-                               mono_monitor_allocator_unlock ();
-                               goto retry;
-                       }
-               }
-#endif
-       }
-
-#ifdef HAVE_MOVING_COLLECTOR
-       {
-               LockWord lw;
-               lw.sync = mon;
-               lw.lock_word &= ~LOCK_WORD_BITS_MASK;
-               mon = lw.sync;
-       }
-#endif
-
-       /* If the object has previously been locked but isn't now... */
-
        /* This case differs from Dice's case 3 because we don't
         * deflate locks or cache unused lock records
         */
@@ -674,9 +880,9 @@ retry_contended:
         * We pass TRUE instead of allow_interruption since we have to check for the
         * StopRequested case below.
         */
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        ret = WaitForSingleObjectEx (mon->entry_sem, waitms, TRUE);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        mono_thread_clr_state (thread, ThreadState_WaitSleepJoin);
        
@@ -737,6 +943,65 @@ retry_contended:
        }
 }
 
+/*
+ * If allow_interruption == TRUE, the method will be interrupted if abort or suspend
+ * is requested. In this case it returns -1.
+ */
+static inline gint32
+mono_monitor_try_enter_internal (MonoObject *obj, guint32 ms, gboolean allow_interruption)
+{
+       LockWord lw;
+       int id = mono_thread_info_get_small_id ();
+
+       LOCK_DEBUG (g_message("%s: (%d) Trying to lock object %p (%d ms)", __func__, id, obj, ms));
+
+       if (G_UNLIKELY (!obj)) {
+               mono_set_pending_exception (mono_get_exception_argument_null ("obj"));
+               return FALSE;
+       }
+
+       lw.sync = obj->synchronisation;
+
+       if (G_LIKELY (lock_word_is_free (lw))) {
+               LockWord nlw = lock_word_new_flat (id);
+               if (InterlockedCompareExchangePointer ((gpointer*)&obj->synchronisation, nlw.sync, NULL) == NULL) {
+                       return 1;
+               } else {
+                       /* Someone acquired it in the meantime or put a hash */
+                       mono_monitor_inflate (obj);
+                       return mono_monitor_try_enter_inflated (obj, ms, allow_interruption, id);
+               }
+       } else if (lock_word_is_inflated (lw)) {
+               return mono_monitor_try_enter_inflated (obj, ms, allow_interruption, id);
+       } else if (lock_word_is_flat (lw)) {
+               if (lock_word_get_owner (lw) == id) {
+                       if (lock_word_is_max_nest (lw)) {
+                               mono_monitor_inflate_owned (obj, id);
+                               return mono_monitor_try_enter_inflated (obj, ms, allow_interruption, id);
+                       } else {
+                               LockWord nlw, old_lw;
+                               nlw = lock_word_increment_nest (lw);
+                               old_lw.sync = InterlockedCompareExchangePointer ((gpointer*)&obj->synchronisation, nlw.sync, lw.sync);
+                               if (old_lw.sync != lw.sync) {
+                                       /* Someone else inflated it in the meantime */
+                                       g_assert (lock_word_is_inflated (old_lw));
+                                       return mono_monitor_try_enter_inflated (obj, ms, allow_interruption, id);
+                               }
+                               return 1;
+                       }
+               } else {
+                       mono_monitor_inflate (obj);
+                       return mono_monitor_try_enter_inflated (obj, ms, allow_interruption, id);
+               }
+       } else if (lock_word_has_hash (lw)) {
+               mono_monitor_inflate (obj);
+               return mono_monitor_try_enter_inflated (obj, ms, allow_interruption, id);
+       }
+
+       g_assert_not_reached ();
+       return -1;
+}
+
 gboolean 
 mono_monitor_enter (MonoObject *obj)
 {
@@ -752,90 +1017,37 @@ mono_monitor_try_enter (MonoObject *obj, guint32 ms)
 void
 mono_monitor_exit (MonoObject *obj)
 {
-       MonoThreadsSync *mon;
-       guint32 nest;
-       guint32 new_status, old_status, tmp_status;
+       LockWord lw;
        
        LOCK_DEBUG (g_message ("%s: (%d) Unlocking %p", __func__, mono_thread_info_get_small_id (), obj));
 
        if (G_UNLIKELY (!obj)) {
-               mono_raise_exception (mono_get_exception_argument_null ("obj"));
+               mono_set_pending_exception (mono_get_exception_argument_null ("obj"));
                return;
        }
 
-       mon = obj->synchronisation;
+       lw.sync = obj->synchronisation;
 
-#ifdef HAVE_MOVING_COLLECTOR
-       {
-               LockWord lw;
-               lw.sync = mon;
-               if (lw.lock_word & LOCK_WORD_THIN_HASH)
-                       return;
-               lw.lock_word &= ~LOCK_WORD_BITS_MASK;
-               mon = lw.sync;
-       }
-#endif
-       if (G_UNLIKELY (mon == NULL)) {
-               /* No one ever used Enter. Just ignore the Exit request as MS does */
-               return;
-       }
+       mono_monitor_ensure_owned (lw, mono_thread_info_get_small_id ());
 
-       old_status = mon->status;
-       if (G_UNLIKELY (mon_status_get_owner (old_status) != mono_thread_info_get_small_id ())) {
-               return;
-       }
-       
-       nest = mon->nest - 1;
-       if (nest == 0) {
-               /*
-                * Release lock and do the wakeup stuff. It's possible that
-                * the last blocking thread gave up waiting just before we
-                * release the semaphore resulting in a negative entry count
-                * and a futile wakeup next time there's contention for this
-                * object.
-                */
-               for (;;) {
-                       gboolean have_waiters = mon_status_have_waiters (old_status);
-       
-                       new_status = mon_status_set_owner (old_status, 0);
-                       if (have_waiters)
-                               new_status = mon_status_decrement_entry_count (new_status);
-                       tmp_status = InterlockedCompareExchange ((gint32*)&mon->status, new_status, old_status);
-                       if (tmp_status == old_status) {
-                               if (have_waiters)
-                                       ReleaseSemaphore (mon->entry_sem, 1, NULL);
-                               break;
-                       }
-                       old_status = tmp_status;
-               }
-               LOCK_DEBUG (g_message ("%s: (%d) Object %p is now unlocked", __func__, mono_thread_info_get_small_id (), obj));
-       
-               /* object is now unlocked, leave nest==1 so we don't
-                * need to set it when the lock is reacquired
-                */
-
-       } else {
-               LOCK_DEBUG (g_message ("%s: (%d) Object %p is now locked %d times", __func__, mono_thread_info_get_small_id (), obj, nest));
-               mon->nest = nest;
-       }
+       if (G_UNLIKELY (lock_word_is_inflated (lw)))
+               mono_monitor_exit_inflated (obj);
+       else
+               mono_monitor_exit_flat (obj, lw);
 }
 
 void**
 mono_monitor_get_object_monitor_weak_link (MonoObject *object)
 {
        LockWord lw;
-       MonoThreadsSync *sync = NULL;
 
        lw.sync = object->synchronisation;
-       if (lw.lock_word & LOCK_WORD_FAT_HASH) {
-               lw.lock_word &= ~LOCK_WORD_BITS_MASK;
-               sync = lw.sync;
-       } else if (!(lw.lock_word & LOCK_WORD_THIN_HASH)) {
-               sync = lw.sync;
-       }
 
-       if (sync && sync->data)
-               return &sync->data;
+       if (lock_word_is_inflated (lw)) {
+               MonoThreadsSync *mon = lock_word_get_inflated_lock (lw);
+               if (mon->data)
+                       return &mon->data;
+       }
        return NULL;
 }
 
@@ -889,8 +1101,11 @@ ves_icall_System_Threading_Monitor_Monitor_try_enter_with_atomic_var (MonoObject
 void
 mono_monitor_enter_v4 (MonoObject *obj, char *lock_taken)
 {
-       if (*lock_taken == 1)
-               mono_raise_exception (mono_get_exception_argument ("lockTaken", "lockTaken is already true"));
+
+       if (*lock_taken == 1) {
+               mono_set_pending_exception (mono_get_exception_argument ("lockTaken", "lockTaken is already true"));
+               return;
+       }
 
        ves_icall_System_Threading_Monitor_Monitor_try_enter_with_atomic_var (obj, INFINITE, lock_taken);
 }
@@ -898,27 +1113,16 @@ mono_monitor_enter_v4 (MonoObject *obj, char *lock_taken)
 gboolean 
 ves_icall_System_Threading_Monitor_Monitor_test_owner (MonoObject *obj)
 {
-       MonoThreadsSync *mon;
-       
+       LockWord lw;
+
        LOCK_DEBUG (g_message ("%s: Testing if %p is owned by thread %d", __func__, obj, mono_thread_info_get_small_id()));
 
-       mon = obj->synchronisation;
-#ifdef HAVE_MOVING_COLLECTOR
-       {
-               LockWord lw;
-               lw.sync = mon;
-               if (lw.lock_word & LOCK_WORD_THIN_HASH)
-                       return FALSE;
-               lw.lock_word &= ~LOCK_WORD_BITS_MASK;
-               mon = lw.sync;
-       }
-#endif
-       if (mon == NULL) {
-               return FALSE;
-       }
-       
-       if (mon_status_get_owner (mon->status) == mono_thread_info_get_small_id ()) {
-               return(TRUE);
+       lw.sync = obj->synchronisation;
+
+       if (lock_word_is_flat (lw)) {
+               return lock_word_get_owner (lw) == mono_thread_info_get_small_id ();
+       } else if (lock_word_is_inflated (lw)) {
+               return mon_status_get_owner (lock_word_get_inflated_lock (lw)->status) == mono_thread_info_get_small_id ();
        }
        
        return(FALSE);
@@ -927,29 +1131,18 @@ ves_icall_System_Threading_Monitor_Monitor_test_owner (MonoObject *obj)
 gboolean 
 ves_icall_System_Threading_Monitor_Monitor_test_synchronised (MonoObject *obj)
 {
-       MonoThreadsSync *mon;
+       LockWord lw;
 
        LOCK_DEBUG (g_message("%s: (%d) Testing if %p is owned by any thread", __func__, mono_thread_info_get_small_id (), obj));
-       
-       mon = obj->synchronisation;
-#ifdef HAVE_MOVING_COLLECTOR
-       {
-               LockWord lw;
-               lw.sync = mon;
-               if (lw.lock_word & LOCK_WORD_THIN_HASH)
-                       return FALSE;
-               lw.lock_word &= ~LOCK_WORD_BITS_MASK;
-               mon = lw.sync;
-       }
-#endif
-       if (mon == NULL) {
-               return FALSE;
-       }
-       
-       if (mon_status_get_owner (mon->status) != 0) {
-               return TRUE;
+
+       lw.sync = obj->synchronisation;
+
+       if (lock_word_is_flat (lw)) {
+               return !lock_word_is_free (lw);
+       } else if (lock_word_is_inflated (lw)) {
+               return mon_status_get_owner (lock_word_get_inflated_lock (lw)->status) != 0;
        }
-       
+
        return FALSE;
 }
 
@@ -961,34 +1154,26 @@ ves_icall_System_Threading_Monitor_Monitor_test_synchronised (MonoObject *obj)
 void
 ves_icall_System_Threading_Monitor_Monitor_pulse (MonoObject *obj)
 {
+       int id;
+       LockWord lw;
        MonoThreadsSync *mon;
-       
+
        LOCK_DEBUG (g_message ("%s: (%d) Pulsing %p", __func__, mono_thread_info_get_small_id (), obj));
        
-       mon = obj->synchronisation;
-#ifdef HAVE_MOVING_COLLECTOR
-       {
-               LockWord lw;
-               lw.sync = mon;
-               if (lw.lock_word & LOCK_WORD_THIN_HASH) {
-                       mono_set_pending_exception (mono_get_exception_synchronization_lock ("Not locked"));
-                       return;
-               }
-               lw.lock_word &= ~LOCK_WORD_BITS_MASK;
-               mon = lw.sync;
-       }
-#endif
-       if (mon == NULL) {
-               mono_set_pending_exception (mono_get_exception_synchronization_lock ("Not locked"));
-               return;
-       }
-       if (mon_status_get_owner (mon->status) != mono_thread_info_get_small_id ()) {
-               mono_set_pending_exception (mono_get_exception_synchronization_lock ("Not locked by this thread"));
+       id = mono_thread_info_get_small_id ();
+       lw.sync = obj->synchronisation;
+
+       mono_monitor_ensure_owned (lw, id);
+
+       if (!lock_word_is_inflated (lw)) {
+               /* No threads waiting. A wait would have inflated the lock */
                return;
        }
 
+       mon = lock_word_get_inflated_lock (lw);
+
        LOCK_DEBUG (g_message ("%s: (%d) %d threads waiting", __func__, mono_thread_info_get_small_id (), g_slist_length (mon->wait_list)));
-       
+
        if (mon->wait_list != NULL) {
                LOCK_DEBUG (g_message ("%s: (%d) signalling and dequeuing handle %p", __func__, mono_thread_info_get_small_id (), mon->wait_list->data));
        
@@ -1000,32 +1185,24 @@ ves_icall_System_Threading_Monitor_Monitor_pulse (MonoObject *obj)
 void
 ves_icall_System_Threading_Monitor_Monitor_pulse_all (MonoObject *obj)
 {
+       int id;
+       LockWord lw;
        MonoThreadsSync *mon;
        
        LOCK_DEBUG (g_message("%s: (%d) Pulsing all %p", __func__, mono_thread_info_get_small_id (), obj));
 
-       mon = obj->synchronisation;
-#ifdef HAVE_MOVING_COLLECTOR
-       {
-               LockWord lw;
-               lw.sync = mon;
-               if (lw.lock_word & LOCK_WORD_THIN_HASH) {
-                       mono_set_pending_exception (mono_get_exception_synchronization_lock ("Not locked"));
-                       return;
-               }
-               lw.lock_word &= ~LOCK_WORD_BITS_MASK;
-               mon = lw.sync;
-       }
-#endif
-       if (mon == NULL) {
-               mono_set_pending_exception (mono_get_exception_synchronization_lock ("Not locked"));
-               return;
-       }
-       if (mon_status_get_owner (mon->status) != mono_thread_info_get_small_id ()) {
-               mono_set_pending_exception (mono_get_exception_synchronization_lock ("Not locked by this thread"));
+       id = mono_thread_info_get_small_id ();
+       lw.sync = obj->synchronisation;
+
+       mono_monitor_ensure_owned (lw, id);
+
+       if (!lock_word_is_inflated (lw)) {
+               /* No threads waiting. A wait would have inflated the lock */
                return;
        }
 
+       mon = lock_word_get_inflated_lock (lw);
+
        LOCK_DEBUG (g_message ("%s: (%d) %d threads waiting", __func__, mono_thread_info_get_small_id (), g_slist_length (mon->wait_list)));
 
        while (mon->wait_list != NULL) {
@@ -1039,6 +1216,7 @@ ves_icall_System_Threading_Monitor_Monitor_pulse_all (MonoObject *obj)
 gboolean
 ves_icall_System_Threading_Monitor_Monitor_wait (MonoObject *obj, guint32 ms)
 {
+       LockWord lw;
        MonoThreadsSync *mon;
        HANDLE event;
        guint32 nest;
@@ -1046,31 +1224,21 @@ ves_icall_System_Threading_Monitor_Monitor_wait (MonoObject *obj, guint32 ms)
        gboolean success = FALSE;
        gint32 regain;
        MonoInternalThread *thread = mono_thread_internal_current ();
+       int id = mono_thread_info_get_small_id ();
 
        LOCK_DEBUG (g_message ("%s: (%d) Trying to wait for %p with timeout %dms", __func__, mono_thread_info_get_small_id (), obj, ms));
-       
-       mon = obj->synchronisation;
-#ifdef HAVE_MOVING_COLLECTOR
-       {
-               LockWord lw;
-               lw.sync = mon;
-               if (lw.lock_word & LOCK_WORD_THIN_HASH) {
-                       mono_set_pending_exception (mono_get_exception_synchronization_lock ("Not locked"));
-                       return FALSE;
-               }
-               lw.lock_word &= ~LOCK_WORD_BITS_MASK;
-               mon = lw.sync;
-       }
-#endif
-       if (mon == NULL) {
-               mono_set_pending_exception (mono_get_exception_synchronization_lock ("Not locked"));
-               return FALSE;
-       }
-       if (mon_status_get_owner (mon->status) != mono_thread_info_get_small_id ()) {
-               mono_set_pending_exception (mono_get_exception_synchronization_lock ("Not locked by this thread"));
-               return FALSE;
+
+       lw.sync = obj->synchronisation;
+
+       mono_monitor_ensure_owned (lw, id);
+
+       if (!lock_word_is_inflated (lw)) {
+               mono_monitor_inflate_owned (obj, id);
+               lw.sync = obj->synchronisation;
        }
 
+       mon = lock_word_get_inflated_lock (lw);
+
        /* Do this WaitSleepJoin check before creating the event handle */
        mono_thread_current_check_pending_interrupt ();
        
@@ -1091,7 +1259,8 @@ ves_icall_System_Threading_Monitor_Monitor_wait (MonoObject *obj, guint32 ms)
        /* Save the nest count, and release the lock */
        nest = mon->nest;
        mon->nest = 1;
-       mono_monitor_exit (obj);
+       mono_memory_write_barrier ();
+       mono_monitor_exit_inflated (obj);
 
        LOCK_DEBUG (g_message ("%s: (%d) Unlocked %p lock %p", __func__, mono_thread_info_get_small_id (), obj, mon));
 
@@ -1100,9 +1269,9 @@ ves_icall_System_Threading_Monitor_Monitor_wait (MonoObject *obj, guint32 ms)
         * is private to this thread.  Therefore even if the event was
         * signalled before we wait, we still succeed.
         */
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        ret = WaitForSingleObjectEx (event, ms, TRUE);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        /* Reset the thread state fairly early, so we don't have to worry
         * about the monitor error checking
@@ -1123,7 +1292,7 @@ ves_icall_System_Threading_Monitor_Monitor_wait (MonoObject *obj, guint32 ms)
 
        /* Regain the lock with the previous nest count */
        do {
-               regain = mono_monitor_try_enter_internal (obj, INFINITE, TRUE);
+               regain = mono_monitor_try_enter_inflated (obj, INFINITE, TRUE, id);
                if (regain == -1) 
                        mono_thread_interruption_checkpoint ();
        } while (regain == -1);
@@ -1145,9 +1314,9 @@ ves_icall_System_Threading_Monitor_Monitor_wait (MonoObject *obj, guint32 ms)
                /* Poll the event again, just in case it was signalled
                 * while we were trying to regain the monitor lock
                 */
-               MONO_PREPARE_BLOCKING
+               MONO_PREPARE_BLOCKING;
                ret = WaitForSingleObjectEx (event, 0, FALSE);
-               MONO_FINISH_BLOCKING
+               MONO_FINISH_BLOCKING;
        }
 
        /* Pulse will have popped our event from the queue if it signalled
index 0a7fe777eaad0dbbb75ecb6c0121f8d72bddb6e1..cc00f2044dc08d8638a7e1b0dfe4b4505ed18db1 100644 (file)
@@ -44,6 +44,62 @@ struct _MonoThreadsSync
        void *data;
 };
 
+/*
+ * Lock word format:
+ *
+ * The least significant bit stores whether a hash for the object is computed
+ * which is stored either in the lock word or in the MonoThreadsSync structure
+ * that the lock word points to.
+ *
+ * The second bit stores whether the lock word is inflated, containing an
+ * address to the MonoThreadsSync structure.
+ *
+ * If both bits are 0, either the lock word is free (entire lock word is 0)
+ * or it is a thin/flat lock.
+ *
+ * 32-bit
+ *            LOCK_WORD_FLAT:    [owner:22 | nest:8 | status:2]
+ *       LOCK_WORD_THIN_HASH:    [hash:30 | status:2]
+ *        LOCK_WORD_INFLATED:    [sync:30 | status:2]
+ *        LOCK_WORD_FAT_HASH:    [sync:30 | status:2]
+ *
+ * 64-bit
+ *            LOCK_WORD_FLAT:    [unused:22 | owner:32 | nest:8 | status:2]
+ *       LOCK_WORD_THIN_HASH:    [hash:62 | status:2]
+ *        LOCK_WORD_INFLATED:    [sync:62 | status:2]
+ *        LOCK_WORD_FAT_HASH:    [sync:62 | status:2]
+ *
+ * In order to save processing time and to have one additional value, the nest
+ * count starts from 0 for the lock word (just valid thread ID in the lock word
+ * means that the thread holds the lock once, although nest is 0).
+ * FIXME Have the same convention on inflated locks
+ */
+
+typedef union {
+#if SIZEOF_REGISTER == 8
+       guint64 lock_word;
+#elif SIZEOF_REGISTER == 4
+       guint32 lock_word;
+#endif
+       MonoThreadsSync *sync;
+} LockWord;
+
+
+enum {
+       LOCK_WORD_FLAT = 0,
+       LOCK_WORD_HAS_HASH = 1,
+       LOCK_WORD_INFLATED = 2,
+
+       LOCK_WORD_STATUS_BITS = 2,
+       LOCK_WORD_NEST_BITS = 8,
+
+       LOCK_WORD_STATUS_MASK = (1 << LOCK_WORD_STATUS_BITS) - 1,
+       LOCK_WORD_NEST_MASK = ((1 << LOCK_WORD_NEST_BITS) - 1) << LOCK_WORD_STATUS_BITS,
+
+       LOCK_WORD_HASH_SHIFT = LOCK_WORD_STATUS_BITS,
+       LOCK_WORD_NEST_SHIFT = LOCK_WORD_STATUS_BITS,
+       LOCK_WORD_OWNER_SHIFT = LOCK_WORD_STATUS_BITS + LOCK_WORD_NEST_BITS
+};
 
 MONO_API void mono_locks_dump (gboolean include_untaken);
 
index cfa830cca82fa944915b48e6812e5f8d8d823ba1..a361f617911e9f22c11d9f98dc86584c63b8eb73 100644 (file)
@@ -277,9 +277,21 @@ dllmap_start (gpointer user_data,
                for (i = 0; attribute_names [i]; ++i) {
                        if (strcmp (attribute_names [i], "dll") == 0)
                                info->dll = g_strdup (attribute_values [i]);
-                       else if (strcmp (attribute_names [i], "target") == 0)
-                               info->target = g_strdup (attribute_values [i]);
-                       else if (strcmp (attribute_names [i], "os") == 0 && !arch_matches (CONFIG_OS, attribute_values [i]))
+                       else if (strcmp (attribute_names [i], "target") == 0){
+                               char *p = strstr (attribute_values [i], "$mono_libdir");
+                               if (p != NULL){
+                                       const char *libdir = mono_assembly_getrootdir ();
+                                       int libdir_len = strlen (libdir);
+                                       char *result;
+                                       
+                                       result = g_malloc (libdir_len-strlen("$mono_libdir")+strlen(attribute_values[i])+1);
+                                       strncpy (result, attribute_names[i], p-attribute_values[i]);
+                                       strcat (result, libdir);
+                                       strcat (result, p+strlen("$mono_libdir"));
+                                       info->target = result;
+                               } else 
+                                       info->target = g_strdup (attribute_values [i]);
+                       } else if (strcmp (attribute_names [i], "os") == 0 && !arch_matches (CONFIG_OS, attribute_values [i]))
                                info->ignore = TRUE;
                        else if (strcmp (attribute_names [i], "cpu") == 0 && !arch_matches (CONFIG_CPU, attribute_values [i]))
                                info->ignore = TRUE;
diff --git a/mono/metadata/mono-cq.c b/mono/metadata/mono-cq.c
deleted file mode 100644 (file)
index 4be4640..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * mono-cq.c: concurrent queue
- *
- * Authors:
- *   Gonzalo Paniagua Javier (gonzalo@novell.com)
- *
- * Copyright (c) 2011 Novell, Inc (http://www.novell.com)
- * Copyright 2011 Xamarin Inc
- */
-
-#include <mono/metadata/object.h>
-#include <mono/metadata/mono-cq.h>
-#include <mono/metadata/mono-mlist.h>
-#include <mono/utils/mono-memory-model.h>
-#include <mono/utils/atomic.h>
-
-#define CQ_DEBUG(...)
-//#define CQ_DEBUG(...) g_message(__VA_ARGS__)
-
-struct _MonoCQ {
-       MonoMList *head;
-       MonoMList *tail;
-       volatile gint32 count;
-};
-
-/* matches the System.MonoListItem object */
-struct _MonoMList {
-       MonoObject object;
-       MonoMList *next;
-       MonoObject *data;
-};
-
-/* matches the System.MonoCQItem object */
-struct _MonoCQItem {
-       MonoObject object;
-       MonoArray *array; // MonoObjects
-       MonoArray *array_state; // byte array
-       volatile gint32 first;
-       volatile gint32 last;
-};
-
-typedef struct _MonoCQItem MonoCQItem;
-#define CQ_ARRAY_SIZE  64
-
-static MonoVTable *monocq_item_vtable = NULL;
-
-static MonoCQItem *
-mono_cqitem_alloc (void)
-{
-       MonoCQItem *queue;
-       MonoDomain *domain = mono_get_root_domain ();
-
-       if (!monocq_item_vtable) {
-               MonoClass *klass = mono_class_from_name (mono_defaults.corlib, "System", "MonoCQItem");
-               monocq_item_vtable = mono_class_vtable (domain, klass);
-               g_assert (monocq_item_vtable);
-       }
-       queue = (MonoCQItem *) mono_object_new_fast (monocq_item_vtable);
-       MONO_OBJECT_SETREF (queue, array, mono_array_new (domain, mono_defaults.object_class, CQ_ARRAY_SIZE));
-       MONO_OBJECT_SETREF (queue, array_state, mono_array_new (domain, mono_defaults.byte_class, CQ_ARRAY_SIZE));
-       return queue;
-}
-
-MonoCQ *
-mono_cq_create ()
-{
-       MonoCQ *cq;
-
-       cq = g_new0 (MonoCQ, 1);
-       MONO_GC_REGISTER_ROOT_SINGLE (cq->head);
-       MONO_GC_REGISTER_ROOT_SINGLE (cq->tail);
-       cq->head = mono_mlist_alloc ((MonoObject *) mono_cqitem_alloc ());
-       cq->tail = cq->head;
-       CQ_DEBUG ("Created %p", cq);
-       return cq;
-}
-
-void
-mono_cq_destroy (MonoCQ *cq)
-{
-       CQ_DEBUG ("Destroy %p", cq);
-       if (!cq)
-               return;
-
-       mono_gc_bzero_aligned (cq, sizeof (MonoCQ));
-       MONO_GC_UNREGISTER_ROOT (cq->tail);
-       MONO_GC_UNREGISTER_ROOT (cq->head);
-       g_free (cq);
-}
-
-gint32
-mono_cq_count (MonoCQ *cq)
-{
-       if (!cq)
-               return 0;
-
-       CQ_DEBUG ("Count %d", cq->count);
-       return cq->count;
-}
-
-static void
-mono_cq_add_node (MonoCQ *cq)
-{
-       MonoMList *n;
-       MonoMList *prev_tail;
-
-       CQ_DEBUG ("Adding node");
-       n = mono_mlist_alloc ((MonoObject *) mono_cqitem_alloc ());
-       prev_tail = cq->tail;
-       MONO_OBJECT_SETREF (prev_tail, next, n);
-
-       /* prev_tail->next must be visible before the new tail is */
-       STORE_STORE_FENCE;
-
-       cq->tail = n;
-}
-
-static gboolean
-mono_cqitem_try_enqueue (MonoCQ *cq, MonoObject *obj)
-{
-       MonoCQItem *queue;
-       MonoMList *tail;
-       gint32 pos;
-
-       tail = cq->tail;
-       queue = (MonoCQItem *) tail->data;
-       do {
-               pos = queue->last;
-               if (pos >= CQ_ARRAY_SIZE) {
-                       CQ_DEBUG ("enqueue(): pos >= CQ_ARRAY_SIZE, %d >= %d", pos, CQ_ARRAY_SIZE);
-                       return FALSE;
-               }
-
-               if (InterlockedCompareExchange (&queue->last, pos + 1, pos) == pos) {
-                       mono_array_setref_fast (queue->array, pos, obj);
-                       STORE_STORE_FENCE;
-                       mono_array_set_fast (queue->array_state, char, pos, TRUE);
-                       if ((pos + 1) == CQ_ARRAY_SIZE) {
-                               CQ_DEBUG ("enqueue(): pos + 1 == CQ_ARRAY_SIZE, %d. Adding node.", CQ_ARRAY_SIZE);
-                               mono_cq_add_node (cq);
-                       }
-                       return TRUE;
-               }
-       } while (TRUE);
-       g_assert_not_reached ();
-}
-
-void
-mono_cq_enqueue (MonoCQ *cq, MonoObject *obj)
-{
-       if (cq == NULL || obj == NULL)
-               return;
-
-       do {
-               if (mono_cqitem_try_enqueue (cq, obj)) {
-                       CQ_DEBUG ("Queued one");
-                       InterlockedIncrement (&cq->count);
-                       break;
-               }
-               SleepEx (0, FALSE);
-       } while (TRUE);
-}
-
-static void
-mono_cq_remove_node (MonoCQ *cq)
-{
-       MonoMList *old_head;
-
-       CQ_DEBUG ("Removing node");
-       old_head = cq->head;
-       /* Not needed now that array_state is GC memory
-       MonoCQItem *queue;
-       int i;
-       gboolean retry;
-       queue = (MonoCQItem *) old_head->data;
-       do {
-               retry = FALSE;
-               for (i = 0; i < CQ_ARRAY_SIZE; i++) {
-                       if (mono_array_get (queue->array_state, char, i) == TRUE) {
-                               retry = TRUE;
-                               break;
-                       }
-               }
-               if (retry)
-                       SleepEx (0, FALSE);
-       } while (retry);
-        */
-       while (old_head->next == NULL)
-               SleepEx (0, FALSE);
-       cq->head = old_head->next;
-       
-       MONO_OBJECT_SETREF (old_head, next, NULL);
-       old_head = NULL;
-}
-
-static gboolean
-mono_cqitem_try_dequeue (MonoCQ *cq, MonoObject **obj)
-{
-       MonoCQItem *queue;
-       MonoMList *head;
-       gint32 pos;
-
-       head = cq->head;
-       queue = (MonoCQItem *) head->data;
-       do {
-               pos = queue->first;
-               if (pos >= queue->last || pos >= CQ_ARRAY_SIZE)
-                       return FALSE;
-
-               if (InterlockedCompareExchange (&queue->first, pos + 1, pos) == pos) {
-                       while (mono_array_get (queue->array_state, char, pos) == FALSE) {
-                               SleepEx (0, FALSE);
-                       }
-                       LOAD_LOAD_FENCE;
-                       *obj = mono_array_get (queue->array, MonoObject *, pos);
-
-                       /*
-                       Here don't need to fence since the only spot that reads it is the one above.
-                       Additionally, the first store is superfluous, so it can happen OOO with the second.
-                       */
-                       mono_array_set (queue->array, MonoObject *, pos, NULL);
-                       mono_array_set (queue->array_state, char, pos, FALSE);
-                       
-                       /*
-                       We should do a STORE_LOAD fence here to make sure subsequent loads see new state instead
-                       of the above stores. We can safely ignore this as the only issue of seeing a stale value
-                       is the thread yielding. Given how unfrequent this will be in practice, we better avoid the
-                       very expensive STORE_LOAD fence.
-                       */
-                       
-                       if ((pos + 1) == CQ_ARRAY_SIZE) {
-                               mono_cq_remove_node (cq);
-                       }
-                       return TRUE;
-               }
-       } while (TRUE);
-       g_assert_not_reached ();
-}
-
-gboolean
-mono_cq_dequeue (MonoCQ *cq, MonoObject **result)
-{
-       while (cq->count > 0) {
-               if (mono_cqitem_try_dequeue (cq, result)) {
-                       CQ_DEBUG ("Dequeued one");
-                       InterlockedDecrement (&cq->count);
-                       return TRUE;
-               }
-               SleepEx (0, FALSE);
-       }
-       return FALSE;
-}
-
diff --git a/mono/metadata/mono-cq.h b/mono/metadata/mono-cq.h
deleted file mode 100644 (file)
index db776c5..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _MONO_CQ_H
-#define _MONO_CQ_H
-
-#include <config.h>
-#include <glib.h>
-#include <mono/metadata/object.h>
-#include <mono/metadata/gc-internal.h>
-
-G_BEGIN_DECLS
-
-typedef struct _MonoCQ MonoCQ;
-
-MonoCQ *mono_cq_create (void);
-void mono_cq_destroy (MonoCQ *cq);
-gint mono_cq_count (MonoCQ *cq);
-void mono_cq_enqueue (MonoCQ *cq, MonoObject *obj);
-gboolean mono_cq_dequeue (MonoCQ *cq, MonoObject **result);
-
-G_END_DECLS
-
-#endif
-
index 11fd4641042f7b7063b19063639cd3e4f3799864..7ca1ebe857d0cba30c3ccc5eefa03abdff4df0a5 100644 (file)
@@ -45,8 +45,8 @@
 typedef struct _Slot Slot;
 
 struct _Slot {
-       gpointer key;
-       gpointer value;
+       MonoObject *key;
+       MonoObject *value;
        Slot    *next;
 };
 
@@ -65,8 +65,11 @@ struct _MonoGHashTable {
        MonoGHashGCType gc_type;
 };
 
+static MonoGHashTable *
+mono_g_hash_table_new (GHashFunc hash_func, GEqualFunc key_equal_func);
+
 #ifdef HAVE_SGEN_GC
-static void *table_hash_descr = NULL;
+static MonoGCDescriptor table_hash_descr = MONO_GC_DESCRIPTOR_NULL;
 
 static void mono_g_hash_mark (void *addr, MonoGCMarkFunc mark_func, void *gc_data);
 
@@ -74,7 +77,7 @@ static Slot*
 new_slot (MonoGHashTable *hash)
 {
        if (hash->gc_type == MONO_HASH_CONSERVATIVE_GC)
-               return mono_gc_alloc_fixed (sizeof (Slot), NULL);
+               return mono_gc_alloc_fixed (sizeof (Slot), MONO_GC_DESCRIPTOR_NULL);
        else
                return mg_new (Slot, 1);
 }
@@ -144,7 +147,7 @@ mono_g_hash_table_new_type (GHashFunc hash_func, GEqualFunc key_equal_func, Mono
        return hash;
 }
 
-MonoGHashTable *
+static MonoGHashTable *
 mono_g_hash_table_new (GHashFunc hash_func, GEqualFunc key_equal_func)
 {
        MonoGHashTable *hash;
@@ -165,20 +168,6 @@ mono_g_hash_table_new (GHashFunc hash_func, GEqualFunc key_equal_func)
        return hash;
 }
 
-MonoGHashTable *
-mono_g_hash_table_new_full (GHashFunc hash_func, GEqualFunc key_equal_func,
-                           GDestroyNotify key_destroy_func, GDestroyNotify value_destroy_func)
-{
-       MonoGHashTable *hash = mono_g_hash_table_new (hash_func, key_equal_func);
-       if (hash == NULL)
-               return NULL;
-       
-       hash->key_destroy_func = key_destroy_func;
-       hash->value_destroy_func = value_destroy_func;
-       
-       return hash;
-}
-
 typedef struct {
        MonoGHashTable *hash;
        int new_size;
index 9d382f15476457b2fd7b02a2b3242a927245dc17..970302d84db025307b7de777e9e42166bcc5b019 100644 (file)
@@ -23,9 +23,6 @@ typedef enum {
 typedef struct _MonoGHashTable MonoGHashTable;
 
 MONO_API MonoGHashTable *mono_g_hash_table_new_type (GHashFunc hash_func, GEqualFunc key_equal_func, MonoGHashGCType type);
-MONO_API MonoGHashTable *mono_g_hash_table_new      (GHashFunc hash_func, GEqualFunc key_equal_func);
-MONO_API MonoGHashTable *mono_g_hash_table_new_full (GHashFunc hash_func, GEqualFunc key_equal_func,
-                                                    GDestroyNotify key_destroy_func, GDestroyNotify value_destroy_func);
 MONO_API guint    mono_g_hash_table_size            (MonoGHashTable *hash);
 MONO_API gpointer mono_g_hash_table_lookup          (MonoGHashTable *hash, gconstpointer key);
 MONO_API gboolean mono_g_hash_table_lookup_extended (MonoGHashTable *hash, gconstpointer key, gpointer *orig_key, gpointer *value);
diff --git a/mono/metadata/mono-wsq.c b/mono/metadata/mono-wsq.c
deleted file mode 100644 (file)
index 859fb69..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * mono-wsq.c: work-stealing queue
- *
- * Authors:
- *   Gonzalo Paniagua Javier (gonzalo@novell.com)
- *
- * Copyright (c) 2010 Novell, Inc (http://www.novell.com)
- * Copyright 2011 Xamarin, Inc (http://www.xamarin.com)
- */
-
-#include <string.h>
-#include <mono/metadata/object.h>
-#include <mono/metadata/mono-wsq.h>
-#include <mono/utils/mono-semaphore.h>
-#include <mono/utils/mono-tls.h>
-#include <mono/utils/atomic.h>
-
-#define INITIAL_LENGTH 32
-#define WSQ_DEBUG(...)
-//#define WSQ_DEBUG(...) g_message(__VA_ARGS__)
-
-struct _MonoWSQ {
-       volatile gint head;
-       volatile gint tail;
-       MonoArray *queue;
-       gint32 mask;
-       gint32 suspended;
-       MonoSemType lock;
-};
-
-#define NO_KEY ((guint32) -1)
-static MonoNativeTlsKey wsq_tlskey;
-static gboolean wsq_tlskey_inited = FALSE;
-
-void
-mono_wsq_init ()
-{
-       if (wsq_tlskey_inited)
-               return;
-
-       mono_native_tls_alloc (&wsq_tlskey, NULL);
-       wsq_tlskey_inited = TRUE;
-}
-
-void
-mono_wsq_cleanup ()
-{
-       if (!wsq_tlskey_inited)
-               return;
-       mono_native_tls_free (wsq_tlskey);
-       wsq_tlskey_inited = FALSE;
-}
-
-MonoWSQ *
-mono_wsq_create ()
-{
-       MonoWSQ *wsq;
-       MonoDomain *root;
-
-       if (!wsq_tlskey_inited)
-               return NULL;
-
-       wsq = g_new0 (MonoWSQ, 1);
-       wsq->mask = INITIAL_LENGTH - 1;
-       wsq->suspended = 0;
-       MONO_GC_REGISTER_ROOT_SINGLE (wsq->queue);
-       root = mono_get_root_domain ();
-       wsq->queue = mono_array_new_cached (root, mono_defaults.object_class, INITIAL_LENGTH);
-       MONO_SEM_INIT (&wsq->lock, 1);
-       if (!mono_native_tls_set_value (wsq_tlskey, wsq)) {
-               mono_wsq_destroy (wsq);
-               wsq = NULL;
-       }
-       return wsq;
-}
-
-gboolean
-mono_wsq_suspend (MonoWSQ *wsq)
-{
-       return InterlockedCompareExchange (&wsq->suspended, 1, 0) == 0;
-}
-
-void
-mono_wsq_destroy (MonoWSQ *wsq)
-{
-       if (wsq == NULL || wsq->queue == NULL)
-               return;
-
-       g_assert (mono_wsq_count (wsq) == 0);
-       MONO_GC_UNREGISTER_ROOT (wsq->queue);
-       MONO_SEM_DESTROY (&wsq->lock);
-       memset (wsq, 0, sizeof (MonoWSQ));
-       if (wsq_tlskey_inited && mono_native_tls_get_value (wsq_tlskey) == wsq)
-               mono_native_tls_set_value (wsq_tlskey, NULL);
-       g_free (wsq);
-}
-
-gint
-mono_wsq_count (MonoWSQ *wsq)
-{
-       if (!wsq)
-               return 0;
-       return ((wsq->tail - wsq->head) & wsq->mask);
-}
-
-gboolean
-mono_wsq_local_push (void *obj)
-{
-       int tail;
-       int head;
-       int count;
-       MonoWSQ *wsq;
-
-       if (obj == NULL || !wsq_tlskey_inited)
-               return FALSE;
-
-       wsq = (MonoWSQ *) mono_native_tls_get_value (wsq_tlskey);
-       if (wsq == NULL) {
-               WSQ_DEBUG ("local_push: no wsq\n");
-               return FALSE;
-       }
-
-       if (wsq->suspended) {
-               WSQ_DEBUG ("local_push: wsq suspended\n");
-               return FALSE;
-       }
-
-       tail = wsq->tail;
-       if (tail < wsq->head + wsq->mask) {
-               mono_array_setref (wsq->queue, tail & wsq->mask, (MonoObject *) obj);
-               wsq->tail = tail + 1;
-               WSQ_DEBUG ("local_push: OK %p %p\n", wsq, obj);
-               return TRUE;
-       }
-
-       MONO_SEM_WAIT (&wsq->lock);
-       head = wsq->head;
-       count = wsq->tail - wsq->head;
-       if (count >= wsq->mask) {
-               MonoArray *new_array;
-               int length;
-               int i;
-
-               length = mono_array_length (wsq->queue);
-               new_array = mono_array_new_cached (mono_get_root_domain (), mono_defaults.object_class, length * 2);
-               for (i = 0; i < length; i++)
-                       mono_array_setref (new_array, i, mono_array_get (wsq->queue, MonoObject*, (i + head) & wsq->mask));
-
-               mono_gc_bzero_aligned (mono_array_addr (wsq->queue, MonoObject *, 0), sizeof (MonoObject*) * length);
-               wsq->queue = new_array;
-               wsq->head = 0;
-               wsq->tail = tail = count;
-               wsq->mask = (wsq->mask << 1) | 1;
-       }
-       mono_array_setref (wsq->queue, tail & wsq->mask, obj);
-       wsq->tail = tail + 1;
-       MONO_SEM_POST (&wsq->lock);
-       WSQ_DEBUG ("local_push: LOCK %p  %p\n", wsq, obj);
-       return TRUE;
-}
-
-gboolean
-mono_wsq_local_pop (void **ptr)
-{
-       int tail;
-       gboolean res;
-       MonoWSQ *wsq;
-
-       if (ptr == NULL || !wsq_tlskey_inited)
-               return FALSE;
-
-       wsq = (MonoWSQ *) mono_native_tls_get_value (wsq_tlskey);
-       if (wsq == NULL) {
-               WSQ_DEBUG ("local_pop: no wsq\n");
-               return FALSE;
-       }
-
-       tail = wsq->tail;
-       if (wsq->head >= tail) {
-               WSQ_DEBUG ("local_pop: empty\n");
-               return FALSE;
-       }
-       tail--;
-       InterlockedExchange (&wsq->tail, tail);
-       if (wsq->head <= tail) {
-               *ptr = mono_array_get (wsq->queue, void *, tail & wsq->mask);
-               mono_array_set (wsq->queue, void *, tail & wsq->mask, NULL);
-               WSQ_DEBUG ("local_pop: GOT ONE %p %p\n", wsq, *ptr);
-               return TRUE;
-       }
-
-       MONO_SEM_WAIT (&wsq->lock);
-       if (wsq->head <= tail) {
-               *ptr = mono_array_get (wsq->queue, void *, tail & wsq->mask);
-               mono_array_set (wsq->queue, void *, tail & wsq->mask, NULL);
-               res = TRUE;
-       } else {
-               wsq->tail = tail + 1;
-               res = FALSE;
-       }
-       MONO_SEM_POST (&wsq->lock);
-       WSQ_DEBUG ("local_pop: LOCK %d %p %p\n", res, wsq, *ptr);
-       return res;
-}
-
-void
-mono_wsq_try_steal (MonoWSQ *wsq, void **ptr, guint32 ms_timeout)
-{
-       if (wsq == NULL || ptr == NULL || *ptr != NULL || !wsq_tlskey_inited)
-               return;
-
-       if (mono_native_tls_get_value (wsq_tlskey) == wsq)
-               return;
-
-       if (mono_sem_timedwait (&wsq->lock, ms_timeout, FALSE) == 0) {
-               int head;
-
-               head = wsq->head;
-               InterlockedExchange (&wsq->head, head + 1);
-               if (head < wsq->tail) {
-                       *ptr = mono_array_get (wsq->queue, void *, head & wsq->mask);
-                       mono_array_set (wsq->queue, void *, head & wsq->mask, NULL);
-                       WSQ_DEBUG ("STEAL %p %p\n", wsq, *ptr);
-               } else {
-                       wsq->head = head;
-               }
-               MONO_SEM_POST (&wsq->lock);
-       }
-}
-
diff --git a/mono/metadata/mono-wsq.h b/mono/metadata/mono-wsq.h
deleted file mode 100644 (file)
index 3550013..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef _MONO_WSQ_H
-#define _MONO_WSQ_H
-
-#include <config.h>
-#include <glib.h>
-#include <mono/metadata/object.h>
-#include <mono/metadata/gc-internal.h>
-#include <mono/io-layer/io-layer.h>
-
-G_BEGIN_DECLS
-
-typedef struct _MonoWSQ MonoWSQ;
-
-void mono_wsq_init (void);
-void mono_wsq_cleanup (void);
-
-MonoWSQ *mono_wsq_create (void);
-void mono_wsq_destroy (MonoWSQ *wsq);
-gboolean mono_wsq_local_push (void *obj);
-gboolean mono_wsq_local_pop (void **ptr);
-void mono_wsq_try_steal (MonoWSQ *wsq, void **ptr, guint32 ms_timeout);
-gint mono_wsq_count (MonoWSQ *wsq);
-gboolean mono_wsq_suspend (MonoWSQ *wsq);
-
-G_END_DECLS
-
-#endif
index 15482c9771dfa19b8570bcbf8fa8bacf15c5c015..a303331d444f536ec9d60eb2a688953194dc851a 100644 (file)
@@ -416,7 +416,6 @@ struct _MonoInternalThread {
        gpointer interrupt_on_stop;
        gsize    flags;
        gpointer thread_pinning_ref;
-       MonoMethod *async_invoke_method;
        /* 
         * These fields are used to avoid having to increment corlib versions
         * when a new field is added to this structure.
@@ -635,10 +634,7 @@ mono_async_result_new          (MonoDomain *domain, HANDLE handle,
                             MonoObject *state, gpointer data, MonoObject *object_data);
 
 MonoObject *
-mono_async_result_invoke    (MonoAsyncResult *ares, MonoObject **exc);
-
-MonoObject *
-ves_icall_System_Runtime_Remoting_Messaging_AsyncResult_Invoke (MonoAsyncResult *this);
+ves_icall_System_Runtime_Remoting_Messaging_AsyncResult_Invoke (MonoAsyncResult *ares);
 
 MonoWaitHandle *
 mono_wait_handle_new       (MonoDomain *domain, HANDLE handle);
index cc42ab867a124b20915b2bd4ad431e0571da77a6..2e753bcfe5d4e0ecd7b7c10f0a3bf7c472a63565 100644 (file)
@@ -191,6 +191,7 @@ DECL_OFFSET(MonoLMF, fregs)
 #elif defined(TARGET_ARM64)
 DECL_OFFSET(MonoLMF, pc)
 DECL_OFFSET(MonoLMF, gregs)
+DECL_OFFSET(DynCallArgs, regs)
 DECL_OFFSET(DynCallArgs, fpregs)
 DECL_OFFSET(DynCallArgs, n_fpargs)
 DECL_OFFSET(DynCallArgs, n_fpret)
index b326bd84233b7374aa73b2c3a541a1c591465439..6df545ea076b80f19c0de31872c0c26c2c3e0ca3 100644 (file)
@@ -27,7 +27,6 @@
 #include "mono/metadata/metadata-internals.h"
 #include "mono/metadata/class-internals.h"
 #include <mono/metadata/assembly.h>
-#include <mono/metadata/threadpool.h>
 #include <mono/metadata/marshal.h>
 #include "mono/metadata/debug-helpers.h"
 #include "mono/metadata/marshal.h"
 #include <mono/utils/mono-counters.h>
 #include <mono/utils/mono-error-internals.h>
 #include <mono/utils/mono-memory-model.h>
+#include <mono/utils/checked-build.h>
 #include "cominterop.h"
 
-#if defined(HAVE_BOEHM_GC)
-#define GC_NO_DESCRIPTOR ((gpointer)(0 | GC_DS_LENGTH))
-#elif defined(HAVE_SGEN_GC)
-#define GC_NO_DESCRIPTOR (NULL)
-#else
-#define GC_NO_DESCRIPTOR (NULL)
-#endif
-
 static void
 get_default_field_value (MonoDomain* domain, MonoClassField *field, void *value);
 
@@ -73,6 +65,8 @@ static mono_mutex_t ldstr_section;
 void
 mono_runtime_object_init (MonoObject *this)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoMethod *method = NULL;
        MonoClass *klass = this->vtable->klass;
 
@@ -117,17 +111,31 @@ typedef struct
 } TypeInitializationLock;
 
 /* for locking access to type_initialization_hash and blocked_thread_hash */
-#define mono_type_initialization_lock() mono_mutex_lock (&type_initialization_section)
-#define mono_type_initialization_unlock() mono_mutex_unlock (&type_initialization_section)
 static mono_mutex_t type_initialization_section;
 
+static inline void
+mono_type_initialization_lock (void)
+{
+       /* The critical sections protected by this lock in mono_runtime_class_init_full () can block */
+       MONO_PREPARE_BLOCKING;
+       mono_mutex_lock (&type_initialization_section);
+       MONO_FINISH_BLOCKING;
+}
+
+static inline void
+mono_type_initialization_unlock (void)
+{
+       mono_mutex_unlock (&type_initialization_section);
+}
 
 static void
 mono_type_init_lock (TypeInitializationLock *lock)
 {
-       MONO_TRY_BLOCKING
+       MONO_REQ_GC_NEUTRAL_MODE;
+
+       MONO_TRY_BLOCKING;
        mono_mutex_lock (&lock->initialization_section);
-       MONO_FINISH_TRY_BLOCKING
+       MONO_FINISH_TRY_BLOCKING;
 }
 
 static void
@@ -160,6 +168,8 @@ static MonoRuntimeCallbacks callbacks;
 void
 mono_thread_set_main (MonoThread *thread)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        static gboolean registered = FALSE;
 
        if (!registered) {
@@ -173,6 +183,8 @@ mono_thread_set_main (MonoThread *thread)
 MonoThread*
 mono_thread_get_main (void)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return main_thread;
 }
 
@@ -211,6 +223,8 @@ mono_type_initialization_cleanup (void)
 static MonoException*
 get_type_init_exception_for_vtable (MonoVTable *vtable)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDomain *domain = vtable->domain;
        MonoClass *klass = vtable->klass;
        MonoException *ex;
@@ -249,6 +263,8 @@ get_type_init_exception_for_vtable (MonoVTable *vtable)
 void
 mono_runtime_class_init (MonoVTable *vtable)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        mono_runtime_class_init_full (vtable, TRUE);
 }
 
@@ -261,11 +277,18 @@ mono_runtime_class_init (MonoVTable *vtable)
 MonoException *
 mono_runtime_class_init_full (MonoVTable *vtable, gboolean raise_exception)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoException *exc;
        MonoException *exc_to_throw;
        MonoMethod *method = NULL;
        MonoClass *klass;
        gchar *full_name;
+       MonoDomain *domain = vtable->domain;
+       TypeInitializationLock *lock;
+       guint32 tid;
+       int do_initialization = 0;
+       MonoDomain *last_domain = NULL;
 
        if (vtable->initialized)
                return NULL;
@@ -297,143 +320,139 @@ mono_runtime_class_init_full (MonoVTable *vtable, gboolean raise_exception)
                }
        }
        method = mono_class_get_cctor (klass);
+       if (!method) {
+               vtable->initialized = 1;
+               return NULL;
+       }
 
-       if (method) {
-               MonoDomain *domain = vtable->domain;
-               TypeInitializationLock *lock;
-               guint32 tid = GetCurrentThreadId();
-               int do_initialization = 0;
-               MonoDomain *last_domain = NULL;
+       tid = GetCurrentThreadId ();
 
-               mono_type_initialization_lock ();
-               /* double check... */
-               if (vtable->initialized) {
+       mono_type_initialization_lock ();
+       /* double check... */
+       if (vtable->initialized) {
+               mono_type_initialization_unlock ();
+               return NULL;
+       }
+       if (vtable->init_failed) {
+               mono_type_initialization_unlock ();
+
+               /* The type initialization already failed once, rethrow the same exception */
+               if (raise_exception)
+                       mono_raise_exception (get_type_init_exception_for_vtable (vtable));
+               return get_type_init_exception_for_vtable (vtable);
+       }
+       lock = g_hash_table_lookup (type_initialization_hash, vtable);
+       if (lock == NULL) {
+               /* This thread will get to do the initialization */
+               if (mono_domain_get () != domain) {
+                       /* Transfer into the target domain */
+                       last_domain = mono_domain_get ();
+                       if (!mono_domain_set (domain, FALSE)) {
+                               vtable->initialized = 1;
+                               mono_type_initialization_unlock ();
+                               if (raise_exception)
+                                       mono_raise_exception (mono_get_exception_appdomain_unloaded ());
+                               return mono_get_exception_appdomain_unloaded ();
+                       }
+               }
+               lock = g_malloc (sizeof(TypeInitializationLock));
+               mono_mutex_init_recursive (&lock->initialization_section);
+               lock->initializing_tid = tid;
+               lock->waiting_count = 1;
+               lock->done = FALSE;
+               /* grab the vtable lock while this thread still owns type_initialization_section */
+               /* This is why type_initialization_lock needs to enter blocking mode */
+               mono_type_init_lock (lock);
+               g_hash_table_insert (type_initialization_hash, vtable, lock);
+               do_initialization = 1;
+       } else {
+               gpointer blocked;
+               TypeInitializationLock *pending_lock;
+
+               if (lock->initializing_tid == tid || lock->done) {
                        mono_type_initialization_unlock ();
                        return NULL;
                }
-               if (vtable->init_failed) {
-                       mono_type_initialization_unlock ();
-
-                       /* The type initialization already failed once, rethrow the same exception */
-                       if (raise_exception)
-                               mono_raise_exception (get_type_init_exception_for_vtable (vtable));
-                       return get_type_init_exception_for_vtable (vtable);
-               }                       
-               lock = g_hash_table_lookup (type_initialization_hash, vtable);
-               if (lock == NULL) {
-                       /* This thread will get to do the initialization */
-                       if (mono_domain_get () != domain) {
-                               /* Transfer into the target domain */
-                               last_domain = mono_domain_get ();
-                               if (!mono_domain_set (domain, FALSE)) {
-                                       vtable->initialized = 1;
+               /* see if the thread doing the initialization is already blocked on this thread */
+               blocked = GUINT_TO_POINTER (lock->initializing_tid);
+               while ((pending_lock = (TypeInitializationLock*) g_hash_table_lookup (blocked_thread_hash, blocked))) {
+                       if (pending_lock->initializing_tid == tid) {
+                               if (!pending_lock->done) {
                                        mono_type_initialization_unlock ();
-                                       if (raise_exception)
-                                               mono_raise_exception (mono_get_exception_appdomain_unloaded ());
-                                       return mono_get_exception_appdomain_unloaded ();
-                               }
-                       }
-                       lock = g_malloc (sizeof(TypeInitializationLock));
-                       mono_mutex_init_recursive (&lock->initialization_section);
-                       lock->initializing_tid = tid;
-                       lock->waiting_count = 1;
-                       lock->done = FALSE;
-                       /* grab the vtable lock while this thread still owns type_initialization_section */
-                       mono_type_init_lock (lock);
-                       g_hash_table_insert (type_initialization_hash, vtable, lock);
-                       do_initialization = 1;
-               } else {
-                       gpointer blocked;
-                       TypeInitializationLock *pending_lock;
-
-                       if (lock->initializing_tid == tid || lock->done) {
-                               mono_type_initialization_unlock ();
-                               return NULL;
-                       }
-                       /* see if the thread doing the initialization is already blocked on this thread */
-                       blocked = GUINT_TO_POINTER (lock->initializing_tid);
-                       while ((pending_lock = (TypeInitializationLock*) g_hash_table_lookup (blocked_thread_hash, blocked))) {
-                               if (pending_lock->initializing_tid == tid) {
-                                       if (!pending_lock->done) {
-                                               mono_type_initialization_unlock ();
-                                               return NULL;
-                                       } else {
-                                               /* the thread doing the initialization is blocked on this thread,
-                                                  but on a lock that has already been freed. It just hasn't got
-                                                  time to awake */
-                                               break;
-                                       }
+                                       return NULL;
+                               } else {
+                                       /* the thread doing the initialization is blocked on this thread,
+                                          but on a lock that has already been freed. It just hasn't got
+                                          time to awake */
+                                       break;
                                }
-                               blocked = GUINT_TO_POINTER (pending_lock->initializing_tid);
                        }
-                       ++lock->waiting_count;
-                       /* record the fact that we are waiting on the initializing thread */
-                       g_hash_table_insert (blocked_thread_hash, GUINT_TO_POINTER (tid), lock);
+                       blocked = GUINT_TO_POINTER (pending_lock->initializing_tid);
                }
-               mono_type_initialization_unlock ();
-
-               if (do_initialization) {
-                       mono_runtime_invoke (method, NULL, NULL, (MonoObject **) &exc);
-
-                       /* If the initialization failed, mark the class as unusable. */
-                       /* Avoid infinite loops */
-                       if (!(exc == NULL ||
-                                 (klass->image == mono_defaults.corlib &&              
-                                  !strcmp (klass->name_space, "System") &&
-                                  !strcmp (klass->name, "TypeInitializationException")))) {
-                               vtable->init_failed = 1;
+               ++lock->waiting_count;
+               /* record the fact that we are waiting on the initializing thread */
+               g_hash_table_insert (blocked_thread_hash, GUINT_TO_POINTER (tid), lock);
+       }
+       mono_type_initialization_unlock ();
 
-                               if (klass->name_space && *klass->name_space)
-                                       full_name = g_strdup_printf ("%s.%s", klass->name_space, klass->name);
-                               else
-                                       full_name = g_strdup (klass->name);
-                               exc_to_throw = mono_get_exception_type_initialization (full_name, exc);
-                               g_free (full_name);
+       if (do_initialization) {
+               mono_runtime_invoke (method, NULL, NULL, (MonoObject **) &exc);
 
-                               /* 
-                                * Store the exception object so it could be thrown on subsequent 
-                                * accesses.
-                                */
-                               mono_domain_lock (domain);
-                               if (!domain->type_init_exception_hash)
-                                       domain->type_init_exception_hash = mono_g_hash_table_new_type (mono_aligned_addr_hash, NULL, MONO_HASH_VALUE_GC);
-                               mono_g_hash_table_insert (domain->type_init_exception_hash, klass, exc_to_throw);
-                               mono_domain_unlock (domain);
-                       }
+               /* If the initialization failed, mark the class as unusable. */
+               /* Avoid infinite loops */
+               if (!(exc == NULL ||
+                         (klass->image == mono_defaults.corlib &&
+                          !strcmp (klass->name_space, "System") &&
+                          !strcmp (klass->name, "TypeInitializationException")))) {
+                       vtable->init_failed = 1;
 
-                       if (last_domain)
-                               mono_domain_set (last_domain, TRUE);
-                       lock->done = TRUE;
-                       mono_type_init_unlock (lock);
-               } else {
-                       /* this just blocks until the initializing thread is done */
-                       mono_type_init_lock (lock);
-                       mono_type_init_unlock (lock);
-               }
+                       if (klass->name_space && *klass->name_space)
+                               full_name = g_strdup_printf ("%s.%s", klass->name_space, klass->name);
+                       else
+                               full_name = g_strdup (klass->name);
+                       exc_to_throw = mono_get_exception_type_initialization (full_name, exc);
+                       g_free (full_name);
 
-               mono_type_initialization_lock ();
-               if (lock->initializing_tid != tid)
-                       g_hash_table_remove (blocked_thread_hash, GUINT_TO_POINTER (tid));
-               --lock->waiting_count;
-               if (lock->waiting_count == 0) {
-                       mono_mutex_destroy (&lock->initialization_section);
-                       g_hash_table_remove (type_initialization_hash, vtable);
-                       g_free (lock);
+                       /*
+                        * Store the exception object so it could be thrown on subsequent
+                        * accesses.
+                        */
+                       mono_domain_lock (domain);
+                       if (!domain->type_init_exception_hash)
+                               domain->type_init_exception_hash = mono_g_hash_table_new_type (mono_aligned_addr_hash, NULL, MONO_HASH_VALUE_GC);
+                       mono_g_hash_table_insert (domain->type_init_exception_hash, klass, exc_to_throw);
+                       mono_domain_unlock (domain);
                }
-               mono_memory_barrier ();
-               if (!vtable->init_failed)
-                       vtable->initialized = 1;
-               mono_type_initialization_unlock ();
 
-               if (vtable->init_failed) {
-                       /* Either we were the initializing thread or we waited for the initialization */
-                       if (raise_exception)
-                               mono_raise_exception (get_type_init_exception_for_vtable (vtable));
-                       return get_type_init_exception_for_vtable (vtable);
-               }
+               if (last_domain)
+                       mono_domain_set (last_domain, TRUE);
+               lock->done = TRUE;
+               mono_type_init_unlock (lock);
        } else {
+               /* this just blocks until the initializing thread is done */
+               mono_type_init_lock (lock);
+               mono_type_init_unlock (lock);
+       }
+
+       mono_type_initialization_lock ();
+       if (lock->initializing_tid != tid)
+               g_hash_table_remove (blocked_thread_hash, GUINT_TO_POINTER (tid));
+       --lock->waiting_count;
+       if (lock->waiting_count == 0) {
+               mono_mutex_destroy (&lock->initialization_section);
+               g_hash_table_remove (type_initialization_hash, vtable);
+               g_free (lock);
+       }
+       mono_memory_barrier ();
+       if (!vtable->init_failed)
                vtable->initialized = 1;
-               return NULL;
+       mono_type_initialization_unlock ();
+
+       if (vtable->init_failed) {
+               /* Either we were the initializing thread or we waited for the initialization */
+               if (raise_exception)
+                       mono_raise_exception (get_type_init_exception_for_vtable (vtable));
+               return get_type_init_exception_for_vtable (vtable);
        }
        return NULL;
 }
@@ -441,6 +460,8 @@ mono_runtime_class_init_full (MonoVTable *vtable, gboolean raise_exception)
 static
 gboolean release_type_locks (gpointer key, gpointer value, gpointer user)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        MonoVTable *vtable = (MonoVTable*)key;
 
        TypeInitializationLock *lock = (TypeInitializationLock*) value;
@@ -466,6 +487,8 @@ gboolean release_type_locks (gpointer key, gpointer value, gpointer user)
 void
 mono_release_type_locks (MonoInternalThread *thread)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        mono_type_initialization_lock ();
        g_hash_table_foreach_remove (type_initialization_hash, release_type_locks, (gpointer)(gsize)(thread->tid));
        mono_type_initialization_unlock ();
@@ -579,6 +602,8 @@ mono_install_compile_method (MonoCompileFunc func)
 gpointer 
 mono_compile_method (MonoMethod *method)
 {
+       MONO_REQ_GC_NEUTRAL_MODE
+
        if (!default_mono_compile_method) {
                g_error ("compile method called on uninitialized runtime");
                return NULL;
@@ -589,12 +614,16 @@ mono_compile_method (MonoMethod *method)
 gpointer
 mono_runtime_create_jump_trampoline (MonoDomain *domain, MonoMethod *method, gboolean add_sync_wrapper)
 {
+       MONO_REQ_GC_NEUTRAL_MODE
+
        return arch_create_jump_trampoline (domain, method, add_sync_wrapper);
 }
 
 gpointer
 mono_runtime_create_delegate_trampoline (MonoClass *klass)
 {
+       MONO_REQ_GC_NEUTRAL_MODE
+
        return arch_create_delegate_trampoline (mono_domain_get (), klass);
 }
 
@@ -629,6 +658,8 @@ mono_install_free_method (MonoFreeMethodFunc func)
 void
 mono_runtime_free_method (MonoDomain *domain, MonoMethod *method)
 {
+       MONO_REQ_GC_NEUTRAL_MODE
+
        if (default_mono_free_method != NULL)
                default_mono_free_method (domain, method);
 
@@ -650,6 +681,8 @@ mono_runtime_free_method (MonoDomain *domain, MonoMethod *method)
 static gsize*
 compute_class_bitmap (MonoClass *class, gsize *bitmap, int size, int offset, int *max_set, gboolean static_fields)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        MonoClassField *field;
        MonoClass *p;
        guint32 pos;
@@ -774,6 +807,8 @@ compute_class_bitmap (MonoClass *class, gsize *bitmap, int size, int offset, int
 gsize*
 mono_class_compute_bitmap (MonoClass *class, gsize *bitmap, int size, int offset, int *max_set, gboolean static_fields)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        return compute_class_bitmap (class, bitmap, size, offset, max_set, static_fields);
 }
 
@@ -922,12 +957,15 @@ mono_class_insecure_overlapping (MonoClass *klass)
 MonoString*
 mono_string_alloc (int length)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
        return mono_string_new_size (mono_domain_get (), length);
 }
 
 void
 mono_class_compute_gc_descriptor (MonoClass *class)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        int max_set = 0;
        gsize *bitmap;
        gsize default_bitmap [4] = {0};
@@ -950,11 +988,11 @@ mono_class_compute_gc_descriptor (MonoClass *class)
                return;
 
        class->gc_descr_inited = TRUE;
-       class->gc_descr = GC_NO_DESCRIPTOR;
+       class->gc_descr = MONO_GC_DESCRIPTOR_NULL;
 
        bitmap = default_bitmap;
        if (class == mono_defaults.string_class) {
-               class->gc_descr = (gpointer)mono_gc_make_descr_for_string (bitmap, 2);
+               class->gc_descr = mono_gc_make_descr_for_string (bitmap, 2);
        } else if (class->rank) {
                mono_class_compute_gc_descriptor (class->element_class);
                if (MONO_TYPE_IS_REFERENCE (&class->element_class->byval_arg)) {
@@ -976,9 +1014,9 @@ mono_class_compute_gc_descriptor (MonoClass *class)
                if (count++ > 58)
                        return;*/
                bitmap = compute_class_bitmap (class, default_bitmap, sizeof (default_bitmap) * 8, 0, &max_set, FALSE);
-               class->gc_descr = (gpointer)mono_gc_make_descr_for_object (bitmap, max_set + 1, class->instance_size);
+               class->gc_descr = mono_gc_make_descr_for_object (bitmap, max_set + 1, class->instance_size);
                /*
-               if (class->gc_descr == GC_NO_DESCRIPTOR)
+               if (class->gc_descr == MONO_GC_DESCRIPTOR_NULL)
                        g_print ("disabling typed alloc (%d) for %s.%s\n", max_set, class->name_space, class->name);
                */
                /*printf ("new descriptor: %p 0x%x for %s.%s\n", class->gc_descr, bitmap [0], class->name_space, class->name);*/
@@ -998,6 +1036,8 @@ mono_class_compute_gc_descriptor (MonoClass *class)
 static gint32
 field_is_special_static (MonoClass *fklass, MonoClassField *field)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        MonoCustomAttrInfo *ainfo;
        int i;
        ainfo = mono_custom_attrs_from_field (fklass, field);
@@ -1050,6 +1090,8 @@ field_is_special_static (MonoClass *fklass, MonoClassField *field)
 guint32
 mono_method_get_imt_slot (MonoMethod *method)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        MonoMethodSignature *sig;
        int hashes_count;
        guint32 *hashes_start, *hashes;
@@ -1122,6 +1164,8 @@ mono_method_get_imt_slot (MonoMethod *method)
 
 static void
 add_imt_builder_entry (MonoImtBuilderEntry **imt_builder, MonoMethod *method, guint32 *imt_collisions_bitmap, int vtable_slot, int slot_num) {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        guint32 imt_slot = mono_method_get_imt_slot (method);
        MonoImtBuilderEntry *entry;
 
@@ -1184,6 +1228,8 @@ compare_imt_builder_entries (const void *p1, const void *p2) {
 static int
 imt_emit_ir (MonoImtBuilderEntry **sorted_array, int start, int end, GPtrArray *out_array)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        int count = end - start;
        int chunk_start = out_array->len;
        if (count < 4) {
@@ -1215,6 +1261,8 @@ imt_emit_ir (MonoImtBuilderEntry **sorted_array, int start, int end, GPtrArray *
 
 static GPtrArray*
 imt_sort_slot_entries (MonoImtBuilderEntry *entries) {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        int number_of_entries = entries->children + 1;
        MonoImtBuilderEntry **sorted_array = malloc (sizeof (MonoImtBuilderEntry*) * number_of_entries);
        GPtrArray *result = g_ptr_array_new ();
@@ -1239,6 +1287,8 @@ imt_sort_slot_entries (MonoImtBuilderEntry *entries) {
 static gpointer
 initialize_imt_slot (MonoVTable *vtable, MonoDomain *domain, MonoImtBuilderEntry *imt_builder_entry, gpointer fail_tramp)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        if (imt_builder_entry != NULL) {
                if (imt_builder_entry->children == 0 && !fail_tramp) {
                        /* No collision, return the vtable slot contents */
@@ -1274,6 +1324,8 @@ get_generic_virtual_entries (MonoDomain *domain, gpointer *vtable_slot);
 static void
 build_imt_slots (MonoClass *klass, MonoVTable *vt, MonoDomain *domain, gpointer* imt, GSList *extra_interfaces, int slot_num)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        int i;
        GSList *list_item;
        guint32 imt_collisions_bitmap = 0;
@@ -1415,6 +1467,8 @@ build_imt_slots (MonoClass *klass, MonoVTable *vt, MonoDomain *domain, gpointer*
 
 static void
 build_imt (MonoClass *klass, MonoVTable *vt, MonoDomain *domain, gpointer* imt, GSList *extra_interfaces) {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        build_imt_slots (klass, vt, domain, imt, extra_interfaces, -1);
 }
 
@@ -1432,6 +1486,8 @@ build_imt (MonoClass *klass, MonoVTable *vt, MonoDomain *domain, gpointer* imt,
 void
 mono_vtable_build_imt_slot (MonoVTable* vtable, int imt_slot)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        gpointer *imt = (gpointer*)vtable;
        imt -= MONO_IMT_SIZE;
        g_assert (imt_slot >= 0 && imt_slot < MONO_IMT_SIZE);
@@ -1472,6 +1528,8 @@ mono_vtable_build_imt_slot (MonoVTable* vtable, int imt_slot)
 static void
 init_thunk_free_lists (MonoDomain *domain)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        if (domain->thunk_free_lists)
                return;
        domain->thunk_free_lists = mono_domain_alloc0 (domain, sizeof (gpointer) * NUM_FREE_LISTS);
@@ -1505,6 +1563,8 @@ list_index_for_size (int item_size)
 gpointer
 mono_method_alloc_generic_virtual_thunk (MonoDomain *domain, int size)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        static gboolean inited = FALSE;
        static int generic_virtual_thunks_size = 0;
 
@@ -1563,6 +1623,8 @@ mono_method_alloc_generic_virtual_thunk (MonoDomain *domain, int size)
 static void
 invalidate_generic_virtual_thunk (MonoDomain *domain, gpointer code)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        guint32 *p = code;
        MonoThunkFreeList *l = (MonoThunkFreeList*)(p - 1);
        gboolean found = FALSE;
@@ -1624,6 +1686,8 @@ typedef struct _GenericVirtualCase {
 static MonoImtBuilderEntry*
 get_generic_virtual_entries (MonoDomain *domain, gpointer *vtable_slot)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        GenericVirtualCase *list;
        MonoImtBuilderEntry *entries;
   
@@ -1673,6 +1737,8 @@ mono_method_add_generic_virtual_invocation (MonoDomain *domain, MonoVTable *vtab
                                                                                        gpointer *vtable_slot,
                                                                                        MonoMethod *method, gpointer code)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        static gboolean inited = FALSE;
        static int num_added = 0;
 
@@ -1784,6 +1850,8 @@ mono_class_vtable (MonoDomain *domain, MonoClass *class)
 MonoVTable *
 mono_class_vtable_full (MonoDomain *domain, MonoClass *class, gboolean raise_on_error)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoClassRuntimeInfo *runtime_info;
 
        g_assert (class);
@@ -1812,6 +1880,8 @@ mono_class_vtable_full (MonoDomain *domain, MonoClass *class, gboolean raise_on_
 MonoVTable *
 mono_class_try_get_vtable (MonoDomain *domain, MonoClass *class)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        MonoClassRuntimeInfo *runtime_info;
 
        g_assert (class);
@@ -1825,6 +1895,8 @@ mono_class_try_get_vtable (MonoDomain *domain, MonoClass *class)
 static gpointer*
 alloc_vtable (MonoDomain *domain, size_t vtable_size, size_t imt_table_bytes)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        size_t alloc_offset;
 
        /*
@@ -1846,6 +1918,8 @@ alloc_vtable (MonoDomain *domain, size_t vtable_size, size_t imt_table_bytes)
 static MonoVTable *
 mono_class_create_runtime_vtable (MonoDomain *domain, MonoClass *class, gboolean raise_on_error)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoVTable *vt;
        MonoClassRuntimeInfo *runtime_info, *old_info;
        MonoClassField *field;
@@ -1960,7 +2034,7 @@ mono_class_create_runtime_vtable (MonoDomain *domain, MonoClass *class, gboolean
                 */
 #ifdef HAVE_BOEHM_GC
        if (domain != mono_get_root_domain () && !mono_dont_free_domains)
-               vt->gc_descr = GC_NO_DESCRIPTOR;
+               vt->gc_descr = MONO_GC_DESCRIPTOR_NULL;
        else
 #endif
                vt->gc_descr = class->gc_descr;
@@ -1973,7 +2047,7 @@ mono_class_create_runtime_vtable (MonoDomain *domain, MonoClass *class, gboolean
        if (class_size) {
                /* we store the static field pointer at the end of the vtable: vt->vtable [class->vtable_size] */
                if (class->has_static_refs) {
-                       gpointer statics_gc_descr;
+                       MonoGCDescriptor statics_gc_descr;
                        int max_set = 0;
                        gsize default_bitmap [4] = {0};
                        gsize *bitmap;
@@ -2179,6 +2253,8 @@ mono_class_create_runtime_vtable (MonoDomain *domain, MonoClass *class, gboolean
 static MonoVTable *
 mono_class_proxy_vtable (MonoDomain *domain, MonoRemoteClass *remote_class, MonoRemotingTarget target_type)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoError error;
        MonoVTable *vt, *pvt;
        int i, j, vtsize, max_interface_id, extra_interface_vtsize = 0;
@@ -2336,6 +2412,8 @@ mono_class_proxy_vtable (MonoDomain *domain, MonoRemoteClass *remote_class, Mono
 gboolean
 mono_class_field_is_special_static (MonoClassField *field)
 {
+       MONO_REQ_GC_NEUTRAL_MODE
+
        if (!(field->type->attrs & FIELD_ATTRIBUTE_STATIC))
                return FALSE;
        if (mono_field_is_deleted (field))
@@ -2357,6 +2435,8 @@ mono_class_field_is_special_static (MonoClassField *field)
 guint32
 mono_class_field_get_special_static_type (MonoClassField *field)
 {
+       MONO_REQ_GC_NEUTRAL_MODE
+
        if (!(field->type->attrs & FIELD_ATTRIBUTE_STATIC))
                return SPECIAL_STATIC_NONE;
        if (mono_field_is_deleted (field))
@@ -2374,6 +2454,8 @@ mono_class_field_get_special_static_type (MonoClassField *field)
 gboolean
 mono_class_has_special_static_fields (MonoClass *klass)
 {
+       MONO_REQ_GC_NEUTRAL_MODE
+
        MonoClassField *field;
        gpointer iter;
 
@@ -2396,6 +2478,8 @@ mono_class_has_special_static_fields (MonoClass *klass)
 static gpointer*
 create_remote_class_key (MonoRemoteClass *remote_class, MonoClass *extra_class)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        gpointer *key;
        int i, j;
        
@@ -2447,6 +2531,8 @@ create_remote_class_key (MonoRemoteClass *remote_class, MonoClass *extra_class)
 static gpointer*
 copy_remote_class_key (MonoDomain *domain, gpointer *key)
 {
+       MONO_REQ_GC_NEUTRAL_MODE
+
        int key_size = (GPOINTER_TO_UINT (key [0]) + 1) * sizeof (gpointer);
        gpointer *mp_key = mono_domain_alloc (domain, key_size);
 
@@ -2467,6 +2553,8 @@ copy_remote_class_key (MonoDomain *domain, gpointer *key)
 MonoRemoteClass*
 mono_remote_class (MonoDomain *domain, MonoString *class_name, MonoClass *proxy_class)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoError error;
        MonoRemoteClass *rc;
        gpointer* key, *mp_key;
@@ -2525,6 +2613,8 @@ mono_remote_class (MonoDomain *domain, MonoString *class_name, MonoClass *proxy_
 static MonoRemoteClass*
 clone_remote_class (MonoDomain *domain, MonoRemoteClass* remote_class, MonoClass *extra_class)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        MonoRemoteClass *rc;
        gpointer* key, *mp_key;
        
@@ -2575,6 +2665,8 @@ clone_remote_class (MonoDomain *domain, MonoRemoteClass* remote_class, MonoClass
 gpointer
 mono_remote_class_vtable (MonoDomain *domain, MonoRemoteClass *remote_class, MonoRealProxy *rp)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        mono_loader_lock (); /*FIXME mono_class_from_mono_type and mono_class_proxy_vtable take it*/
        mono_domain_lock (domain);
        if (rp->target_domain_id != -1) {
@@ -2615,6 +2707,8 @@ mono_remote_class_vtable (MonoDomain *domain, MonoRemoteClass *remote_class, Mon
 void
 mono_upgrade_remote_class (MonoDomain *domain, MonoObject *proxy_object, MonoClass *klass)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoTransparentProxy *tproxy;
        MonoRemoteClass *remote_class;
        gboolean redo_vtable;
@@ -2658,6 +2752,8 @@ mono_upgrade_remote_class (MonoDomain *domain, MonoObject *proxy_object, MonoCla
 MonoMethod*
 mono_object_get_virtual_method (MonoObject *obj, MonoMethod *method)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoClass *klass;
        MonoMethod **vtable;
        gboolean is_proxy = FALSE;
@@ -2781,6 +2877,8 @@ static MonoInvokeFunc default_mono_runtime_invoke = dummy_mono_runtime_invoke;
 MonoObject*
 mono_runtime_invoke (MonoMethod *method, void *obj, void **params, MonoObject **exc)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoObject *result;
 
        if (mono_runtime_get_no_exec ())
@@ -2850,13 +2948,24 @@ mono_runtime_invoke (MonoMethod *method, void *obj, void **params, MonoObject **
 gpointer
 mono_method_get_unmanaged_thunk (MonoMethod *method)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+       MONO_REQ_API_ENTRYPOINT;
+
+       gpointer res;
+
+       MONO_PREPARE_RESET_BLOCKING
        method = mono_marshal_get_thunk_invoke_wrapper (method);
-       return mono_compile_method (method);
+       res = mono_compile_method (method);
+       MONO_FINISH_RESET_BLOCKING
+
+       return res;
 }
 
 void
 mono_copy_value (MonoType *type, void *dest, void *value, int deref_pointer)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        int t;
        if (type->byref) {
                /* object fields cannot be byref, so we don't need a
@@ -2962,6 +3071,8 @@ handle_enum:
 void
 mono_field_set_value (MonoObject *obj, MonoClassField *field, void *value)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        void *dest;
 
        g_return_if_fail (!(field->type->attrs & FIELD_ATTRIBUTE_STATIC));
@@ -2983,6 +3094,8 @@ mono_field_set_value (MonoObject *obj, MonoClassField *field, void *value)
 void
 mono_field_static_set_value (MonoVTable *vt, MonoClassField *field, void *value)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        void *dest;
 
        g_return_if_fail (field->type->attrs & FIELD_ATTRIBUTE_STATIC);
@@ -3013,6 +3126,8 @@ mono_field_static_set_value (MonoVTable *vt, MonoClassField *field, void *value)
 void *
 mono_vtable_get_static_field_data (MonoVTable *vt)
 {
+       MONO_REQ_GC_NEUTRAL_MODE
+
        if (!vt->has_static_fields)
                return NULL;
        return vt->vtable [vt->klass->vtable_size];
@@ -3021,6 +3136,8 @@ mono_vtable_get_static_field_data (MonoVTable *vt)
 static guint8*
 mono_field_get_addr (MonoObject *obj, MonoVTable *vt, MonoClassField *field)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        guint8 *src;
 
        if (field->type->attrs & FIELD_ATTRIBUTE_STATIC) {
@@ -3062,6 +3179,8 @@ mono_field_get_addr (MonoObject *obj, MonoVTable *vt, MonoClassField *field)
 void
 mono_field_get_value (MonoObject *obj, MonoClassField *field, void *value)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        void *src;
 
        g_assert (obj);
@@ -3085,6 +3204,8 @@ mono_field_get_value (MonoObject *obj, MonoClassField *field, void *value)
 MonoObject *
 mono_field_get_value_object (MonoDomain *domain, MonoClassField *field, MonoObject *obj)
 {      
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoObject *o;
        MonoClass *klass;
        MonoVTable *vtable = NULL;
@@ -3213,6 +3334,8 @@ mono_field_get_value_object (MonoDomain *domain, MonoClassField *field, MonoObje
 int
 mono_get_constant_value_from_blob (MonoDomain* domain, MonoTypeEnum type, const char *blob, void *value)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        int retval = 0;
        const char *p = blob;
        mono_metadata_decode_blob_size (p, &p);
@@ -3258,6 +3381,8 @@ mono_get_constant_value_from_blob (MonoDomain* domain, MonoTypeEnum type, const
 static void
 get_default_field_value (MonoDomain* domain, MonoClassField *field, void *value)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        MonoTypeEnum def_type;
        const char* data;
        
@@ -3268,6 +3393,8 @@ get_default_field_value (MonoDomain* domain, MonoClassField *field, void *value)
 void
 mono_field_static_get_value_for_thread (MonoInternalThread *thread, MonoVTable *vt, MonoClassField *field, void *value)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        void *src;
 
        g_return_if_fail (field->type->attrs & FIELD_ATTRIBUTE_STATIC);
@@ -3306,6 +3433,8 @@ mono_field_static_get_value_for_thread (MonoInternalThread *thread, MonoVTable *
 void
 mono_field_static_get_value (MonoVTable *vt, MonoClassField *field, void *value)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        mono_field_static_get_value_for_thread (mono_thread_internal_current (), vt, field, value);
 }
 
@@ -3327,6 +3456,8 @@ mono_field_static_get_value (MonoVTable *vt, MonoClassField *field, void *value)
 void
 mono_property_set_value (MonoProperty *prop, void *obj, void **params, MonoObject **exc)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        default_mono_runtime_invoke (prop->set, obj, params, exc);
 }
 
@@ -3350,6 +3481,8 @@ mono_property_set_value (MonoProperty *prop, void *obj, void **params, MonoObjec
 MonoObject*
 mono_property_get_value (MonoProperty *prop, void *obj, void **params, MonoObject **exc)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return default_mono_runtime_invoke (prop->get, obj, params, exc);
 }
 
@@ -3370,6 +3503,8 @@ mono_property_get_value (MonoProperty *prop, void *obj, void **params, MonoObjec
 void
 mono_nullable_init (guint8 *buf, MonoObject *value, MonoClass *klass)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoClass *param_class = klass->cast_class;
 
        mono_class_setup_fields_locking (klass);
@@ -3400,6 +3535,8 @@ mono_nullable_init (guint8 *buf, MonoObject *value, MonoClass *klass)
 MonoObject*
 mono_nullable_box (guint8 *buf, MonoClass *klass)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoClass *param_class = klass->cast_class;
 
        mono_class_setup_fields_locking (klass);
@@ -3429,6 +3566,8 @@ mono_nullable_box (guint8 *buf, MonoClass *klass)
 MonoMethod *
 mono_get_delegate_invoke (MonoClass *klass)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        MonoMethod *im;
 
        /* This is called at runtime, so avoid the slower search in metadata */
@@ -3448,6 +3587,8 @@ mono_get_delegate_invoke (MonoClass *klass)
 MonoMethod *
 mono_get_delegate_begin_invoke (MonoClass *klass)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        MonoMethod *im;
 
        /* This is called at runtime, so avoid the slower search in metadata */
@@ -3467,6 +3608,8 @@ mono_get_delegate_begin_invoke (MonoClass *klass)
 MonoMethod *
 mono_get_delegate_end_invoke (MonoClass *klass)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        MonoMethod *im;
 
        /* This is called at runtime, so avoid the slower search in metadata */
@@ -3493,6 +3636,8 @@ mono_get_delegate_end_invoke (MonoClass *klass)
 MonoObject*
 mono_runtime_delegate_invoke (MonoObject *delegate, void **params, MonoObject **exc)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoMethod *im;
        MonoClass *klass = delegate->vtable->klass;
 
@@ -3514,6 +3659,8 @@ static int num_main_args = 0;
 MonoArray*
 mono_runtime_get_main_args (void)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoArray *res;
        int i;
        MonoDomain *domain = mono_domain_get ();
@@ -3529,6 +3676,8 @@ mono_runtime_get_main_args (void)
 static void
 free_main_args (void)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        int i;
 
        for (i = 0; i < num_main_args; ++i)
@@ -3549,6 +3698,8 @@ free_main_args (void)
 int
 mono_runtime_set_main_args (int argc, char* argv[])
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        int i;
 
        free_main_args ();
@@ -3588,6 +3739,8 @@ int
 mono_runtime_run_main (MonoMethod *method, int argc, char* argv[],
                       MonoObject **exc)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        int i;
        MonoArray *args = NULL;
        MonoDomain *domain = mono_domain_get ();
@@ -3707,6 +3860,8 @@ serialize_object (MonoObject *obj, gboolean *failure, MonoObject **exc)
 static MonoObject*
 deserialize_object (MonoObject *obj, gboolean *failure, MonoObject **exc)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        static MonoMethod *deserialize_method;
 
        void *params [1];
@@ -3734,6 +3889,8 @@ deserialize_object (MonoObject *obj, gboolean *failure, MonoObject **exc)
 static MonoObject*
 make_transparent_proxy (MonoObject *obj, gboolean *failure, MonoObject **exc)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        static MonoMethod *get_proxy_method;
 
        MonoDomain *domain = mono_domain_get ();
@@ -3778,6 +3935,8 @@ make_transparent_proxy (MonoObject *obj, gboolean *failure, MonoObject **exc)
 MonoObject*
 mono_object_xdomain_representation (MonoObject *obj, MonoDomain *target_domain, MonoObject **exc)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoObject *deserialized = NULL;
        gboolean failure = FALSE;
 
@@ -3809,6 +3968,8 @@ mono_object_xdomain_representation (MonoObject *obj, MonoDomain *target_domain,
 static MonoObject *
 create_unhandled_exception_eventargs (MonoObject *exc)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoClass *klass;
        gpointer args [2];
        MonoMethod *method = NULL;
@@ -3836,6 +3997,8 @@ create_unhandled_exception_eventargs (MonoObject *exc)
 /* Used in mono_unhandled_exception */
 static void
 call_unhandled_exception_delegate (MonoDomain *domain, MonoObject *delegate, MonoObject *exc) {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoObject *e = NULL;
        gpointer pa [2];
        MonoDomain *current_domain = mono_domain_get ();
@@ -3925,6 +4088,8 @@ mono_runtime_unhandled_exception_policy_get (void) {
 void
 mono_unhandled_exception (MonoObject *exc)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDomain *current_domain = mono_domain_get ();
        MonoDomain *root_domain = mono_get_root_domain ();
        MonoClassField *field;
@@ -3994,6 +4159,8 @@ mono_runtime_exec_managed_code (MonoDomain *domain,
 int
 mono_runtime_exec_main (MonoMethod *method, MonoArray *args, MonoObject **exc)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDomain *domain;
        gpointer pa [1];
        int rval;
@@ -4125,6 +4292,8 @@ MonoObject*
 mono_runtime_invoke_array (MonoMethod *method, void *obj, MonoArray *params,
                           MonoObject **exc)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoMethodSignature *sig = mono_method_signature (method);
        gpointer *pa = NULL;
        MonoObject *res;
@@ -4302,6 +4471,8 @@ mono_runtime_invoke_array (MonoMethod *method, void *obj, MonoArray *params,
 static void
 arith_overflow (void)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        mono_raise_exception (mono_get_exception_overflow ());
 }
 
@@ -4319,6 +4490,8 @@ arith_overflow (void)
 MonoObject *
 mono_object_new (MonoDomain *domain, MonoClass *klass)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoVTable *vtable;
 
        vtable = mono_class_vtable (domain, klass);
@@ -4336,6 +4509,8 @@ mono_object_new (MonoDomain *domain, MonoClass *klass)
 MonoObject *
 mono_object_new_pinned (MonoDomain *domain, MonoClass *klass)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoVTable *vtable;
 
        vtable = mono_class_vtable (domain, klass);
@@ -4359,6 +4534,8 @@ mono_object_new_pinned (MonoDomain *domain, MonoClass *klass)
 MonoObject *
 mono_object_new_specific (MonoVTable *vtable)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoObject *o;
 
        /* check for is_com_object for COM Interop */
@@ -4390,6 +4567,8 @@ mono_object_new_specific (MonoVTable *vtable)
 MonoObject *
 mono_object_new_alloc_specific (MonoVTable *vtable)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoObject *o = mono_gc_alloc_obj (vtable, vtable->klass->instance_size);
 
        if (G_UNLIKELY (vtable->klass->has_finalize))
@@ -4401,6 +4580,8 @@ mono_object_new_alloc_specific (MonoVTable *vtable)
 MonoObject*
 mono_object_new_fast (MonoVTable *vtable)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return mono_gc_alloc_obj (vtable, vtable->klass->instance_size);
 }
 
@@ -4416,12 +4597,14 @@ mono_object_new_fast (MonoVTable *vtable)
 void*
 mono_class_get_allocation_ftn (MonoVTable *vtable, gboolean for_box, gboolean *pass_size_in_words)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        *pass_size_in_words = FALSE;
 
        if (mono_class_has_finalizer (vtable->klass) || mono_class_is_marshalbyref (vtable->klass) || (mono_profiler_get_events () & MONO_PROFILE_ALLOCATIONS))
                return mono_object_new_specific;
 
-       if (vtable->gc_descr != GC_NO_DESCRIPTOR) {
+       if (vtable->gc_descr != MONO_GC_DESCRIPTOR_NULL) {
 
                return mono_object_new_fast;
 
@@ -4453,6 +4636,8 @@ mono_class_get_allocation_ftn (MonoVTable *vtable, gboolean for_box, gboolean *p
 MonoObject *
 mono_object_new_from_token  (MonoDomain *domain, MonoImage *image, guint32 token)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoError error;
        MonoClass *class;
 
@@ -4472,6 +4657,8 @@ mono_object_new_from_token  (MonoDomain *domain, MonoImage *image, guint32 token
 MonoObject *
 mono_object_clone (MonoObject *obj)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoObject *o;
        int size = obj->vtable->klass->instance_size;
 
@@ -4498,6 +4685,8 @@ mono_object_clone (MonoObject *obj)
 void
 mono_array_full_copy (MonoArray *src, MonoArray *dest)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        uintptr_t size;
        MonoClass *klass = src->obj.vtable->klass;
 
@@ -4531,6 +4720,8 @@ mono_array_full_copy (MonoArray *src, MonoArray *dest)
 MonoArray*
 mono_array_clone_in_domain (MonoDomain *domain, MonoArray *array)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoArray *o;
        uintptr_t size, i;
        uintptr_t *sizes;
@@ -4589,6 +4780,8 @@ mono_array_clone_in_domain (MonoDomain *domain, MonoArray *array)
 MonoArray*
 mono_array_clone (MonoArray *array)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return mono_array_clone_in_domain (((MonoObject *)array)->vtable->domain, array);
 }
 
@@ -4614,6 +4807,8 @@ mono_array_clone (MonoArray *array)
 gboolean
 mono_array_calc_byte_len (MonoClass *class, uintptr_t len, uintptr_t *res)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        uintptr_t byte_len;
 
        byte_len = mono_array_element_size (class);
@@ -4642,6 +4837,8 @@ mono_array_calc_byte_len (MonoClass *class, uintptr_t len, uintptr_t *res)
 MonoArray*
 mono_array_new_full (MonoDomain *domain, MonoClass *array_class, uintptr_t *lengths, intptr_t *lower_bounds)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        uintptr_t byte_len = 0, len, bounds_size;
        MonoObject *o;
        MonoArray *array;
@@ -4719,6 +4916,8 @@ mono_array_new_full (MonoDomain *domain, MonoClass *array_class, uintptr_t *leng
 MonoArray *
 mono_array_new (MonoDomain *domain, MonoClass *eclass, uintptr_t n)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoClass *ac;
 
        ac = mono_array_class_get (eclass, 1);
@@ -4738,6 +4937,8 @@ mono_array_new (MonoDomain *domain, MonoClass *eclass, uintptr_t n)
 MonoArray *
 mono_array_new_specific (MonoVTable *vtable, uintptr_t n)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoObject *o;
        MonoArray *ao;
        uintptr_t byte_len;
@@ -4767,6 +4968,8 @@ mono_array_new_specific (MonoVTable *vtable, uintptr_t n)
 MonoString *
 mono_string_new_utf16 (MonoDomain *domain, const guint16 *text, gint32 len)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoString *s;
        
        s = mono_string_new_size (domain, len);
@@ -4787,6 +4990,8 @@ mono_string_new_utf16 (MonoDomain *domain, const guint16 *text, gint32 len)
 MonoString *
 mono_string_new_utf32 (MonoDomain *domain, const mono_unichar4 *text, gint32 len)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoString *s;
        mono_unichar2 *utf16_output = NULL;
        gint32 utf16_len = 0;
@@ -4820,6 +5025,8 @@ mono_string_new_utf32 (MonoDomain *domain, const mono_unichar4 *text, gint32 len
 MonoString *
 mono_string_new_size (MonoDomain *domain, gint32 len)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoString *s;
        MonoVTable *vtable;
        size_t size;
@@ -4849,6 +5056,8 @@ mono_string_new_size (MonoDomain *domain, gint32 len)
 MonoString*
 mono_string_new_len (MonoDomain *domain, const char *text, guint length)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        GError *error = NULL;
        MonoString *o = NULL;
        guint16 *ut;
@@ -4875,6 +5084,8 @@ mono_string_new_len (MonoDomain *domain, const char *text, guint length)
 MonoString*
 mono_string_new (MonoDomain *domain, const char *text)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
     GError *error = NULL;
     MonoString *o = NULL;
     guint16 *ut;
@@ -4922,6 +5133,8 @@ mono_string_new (MonoDomain *domain, const char *text)
 MonoString*
 mono_string_new_wrapper (const char *text)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDomain *domain = mono_domain_get ();
 
        if (text)
@@ -4940,6 +5153,8 @@ mono_string_new_wrapper (const char *text)
 MonoObject *
 mono_value_box (MonoDomain *domain, MonoClass *class, gpointer value)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoObject *res;
        int size;
        MonoVTable *vtable;
@@ -4998,6 +5213,8 @@ mono_value_box (MonoDomain *domain, MonoClass *class, gpointer value)
 void
 mono_value_copy (gpointer dest, gpointer src, MonoClass *klass)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        mono_gc_wbarrier_value_copy (dest, src, 1, klass);
 }
 
@@ -5015,6 +5232,8 @@ mono_value_copy (gpointer dest, gpointer src, MonoClass *klass)
 void
 mono_value_copy_array (MonoArray *dest, int dest_idx, gpointer src, int count)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        int size = mono_array_element_size (dest->obj.vtable->klass);
        char *d = mono_array_addr_with_size_fast (dest, size, dest_idx);
        g_assert (size == mono_class_value_size (mono_object_class (dest)->element_class, NULL));
@@ -5030,6 +5249,8 @@ mono_value_copy_array (MonoArray *dest, int dest_idx, gpointer src, int count)
 MonoDomain*
 mono_object_get_domain (MonoObject *obj)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return mono_object_domain (obj);
 }
 
@@ -5042,6 +5263,8 @@ mono_object_get_domain (MonoObject *obj)
 MonoClass*
 mono_object_get_class (MonoObject *obj)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return mono_object_class (obj);
 }
 /**
@@ -5053,6 +5276,8 @@ mono_object_get_class (MonoObject *obj)
 guint
 mono_object_get_size (MonoObject* o)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoClass* klass = mono_object_class (o);
        if (klass == mono_defaults.string_class) {
                return sizeof (MonoString) + 2 * mono_string_length ((MonoString*) o) + 2;
@@ -5082,6 +5307,8 @@ mono_object_get_size (MonoObject* o)
 gpointer
 mono_object_unbox (MonoObject *obj)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        /* add assert for valuetypes? */
        g_assert (obj->vtable->klass->valuetype);
        return ((char*)obj) + sizeof (MonoObject);
@@ -5097,6 +5324,8 @@ mono_object_unbox (MonoObject *obj)
 MonoObject *
 mono_object_isinst (MonoObject *obj, MonoClass *klass)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        if (!klass->inited)
                mono_class_init (klass);
 
@@ -5112,6 +5341,8 @@ mono_object_isinst (MonoObject *obj, MonoClass *klass)
 MonoObject *
 mono_object_isinst_mbyref (MonoObject *obj, MonoClass *klass)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoVTable *vt;
 
        if (!obj)
@@ -5175,6 +5406,8 @@ mono_object_isinst_mbyref (MonoObject *obj, MonoClass *klass)
 MonoObject *
 mono_object_castclass_mbyref (MonoObject *obj, MonoClass *klass)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        if (!obj) return NULL;
        if (mono_object_isinst_mbyref (obj, klass)) return obj;
                
@@ -5193,6 +5426,8 @@ typedef struct {
 static void
 str_lookup (MonoDomain *domain, gpointer user_data)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        LDStrInfo *info = user_data;
        if (info->res || domain == info->orig_domain)
                return;
@@ -5204,6 +5439,8 @@ str_lookup (MonoDomain *domain, gpointer user_data)
 static MonoString*
 mono_string_get_pinned (MonoString *str)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        int size;
        MonoString *news;
        size = sizeof (MonoString) + 2 * (mono_string_length (str) + 1);
@@ -5222,6 +5459,8 @@ mono_string_get_pinned (MonoString *str)
 static MonoString*
 mono_string_is_interned_lookup (MonoString *str, int insert)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoGHashTable *ldstr_table;
        MonoString *s, *res;
        MonoDomain *domain;
@@ -5279,6 +5518,8 @@ mono_string_is_interned_lookup (MonoString *str, int insert)
 MonoString*
 mono_string_is_interned (MonoString *o)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return mono_string_is_interned_lookup (o, FALSE);
 }
 
@@ -5292,6 +5533,8 @@ mono_string_is_interned (MonoString *o)
 MonoString*
 mono_string_intern (MonoString *str)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return mono_string_is_interned_lookup (str, TRUE);
 }
 
@@ -5307,6 +5550,8 @@ mono_string_intern (MonoString *str)
 MonoString*
 mono_ldstr (MonoDomain *domain, MonoImage *image, guint32 idx)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        if (image->dynamic) {
                MonoString *str = mono_lookup_dynamic_token (image, MONO_TOKEN_STRING | idx, NULL);
                return str;
@@ -5327,6 +5572,8 @@ mono_ldstr (MonoDomain *domain, MonoImage *image, guint32 idx)
 static MonoString*
 mono_ldstr_metadata_sig (MonoDomain *domain, const char* sig)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        const char *str = sig;
        MonoString *o, *interned;
        size_t len2;
@@ -5377,6 +5624,8 @@ mono_ldstr_metadata_sig (MonoDomain *domain, const char* sig)
 char *
 mono_string_to_utf8 (MonoString *s)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoError error;
        char *result = mono_string_to_utf8_checked (s, &error);
        
@@ -5397,6 +5646,8 @@ mono_string_to_utf8 (MonoString *s)
 char *
 mono_string_to_utf8_checked (MonoString *s, MonoError *error)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        long written = 0;
        char *as;
        GError *gerror = NULL;
@@ -5439,6 +5690,8 @@ mono_string_to_utf8_checked (MonoString *s, MonoError *error)
 char *
 mono_string_to_utf8_ignore (MonoString *s)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        long written = 0;
        char *as;
 
@@ -5471,6 +5724,8 @@ mono_string_to_utf8_ignore (MonoString *s)
 char *
 mono_string_to_utf8_image_ignore (MonoImage *image, MonoString *s)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return mono_string_to_utf8_internal (NULL, image, s, TRUE, NULL);
 }
 
@@ -5483,6 +5738,8 @@ mono_string_to_utf8_image_ignore (MonoImage *image, MonoString *s)
 char *
 mono_string_to_utf8_mp_ignore (MonoMemPool *mp, MonoString *s)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return mono_string_to_utf8_internal (mp, NULL, s, TRUE, NULL);
 }
 
@@ -5499,6 +5756,8 @@ mono_string_to_utf8_mp_ignore (MonoMemPool *mp, MonoString *s)
 mono_unichar2*
 mono_string_to_utf16 (MonoString *s)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        char *as;
 
        if (s == NULL)
@@ -5526,6 +5785,8 @@ mono_string_to_utf16 (MonoString *s)
 mono_unichar4*
 mono_string_to_utf32 (MonoString *s)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        mono_unichar4 *utf32_output = NULL; 
        GError *error = NULL;
        glong items_written;
@@ -5552,6 +5813,8 @@ mono_string_to_utf32 (MonoString *s)
 MonoString *
 mono_string_from_utf16 (gunichar2 *data)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDomain *domain = mono_domain_get ();
        int len = 0;
 
@@ -5574,6 +5837,8 @@ mono_string_from_utf16 (gunichar2 *data)
 MonoString *
 mono_string_from_utf32 (mono_unichar4 *data)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoString* result = NULL;
        mono_unichar2 *utf16_output = NULL;
        GError *error = NULL;
@@ -5598,6 +5863,8 @@ mono_string_from_utf32 (mono_unichar4 *data)
 static char *
 mono_string_to_utf8_internal (MonoMemPool *mp, MonoImage *image, MonoString *s, gboolean ignore_error, MonoError *error)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        char *r;
        char *mp_s;
        int len;
@@ -5635,6 +5902,8 @@ mono_string_to_utf8_internal (MonoMemPool *mp, MonoImage *image, MonoString *s,
 char *
 mono_string_to_utf8_image (MonoImage *image, MonoString *s, MonoError *error)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return mono_string_to_utf8_internal (NULL, image, s, FALSE, error);
 }
 
@@ -5647,6 +5916,8 @@ mono_string_to_utf8_image (MonoImage *image, MonoString *s, MonoError *error)
 char *
 mono_string_to_utf8_mp (MonoMemPool *mp, MonoString *s, MonoError *error)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return mono_string_to_utf8_internal (mp, NULL, s, FALSE, error);
 }
 
@@ -5674,6 +5945,8 @@ mono_get_eh_callbacks (void)
 void
 mono_raise_exception (MonoException *ex) 
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        /*
         * NOTE: Do NOT annotate this function with G_GNUC_NORETURN, since
         * that will cause gcc to omit the function epilog, causing problems when
@@ -5686,6 +5959,8 @@ mono_raise_exception (MonoException *ex)
 void
 mono_raise_exception_with_context (MonoException *ex, MonoContext *ctx) 
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        eh_callbacks.mono_raise_exception_with_ctx (ex, ctx);
 }
 
@@ -5699,6 +5974,8 @@ mono_raise_exception_with_context (MonoException *ex, MonoContext *ctx)
 MonoWaitHandle *
 mono_wait_handle_new (MonoDomain *domain, HANDLE handle)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoWaitHandle *res;
        gpointer params [1];
        static MonoMethod *handle_set;
@@ -5718,6 +5995,8 @@ mono_wait_handle_new (MonoDomain *domain, HANDLE handle)
 HANDLE
 mono_wait_handle_get_handle (MonoWaitHandle *handle)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        static MonoClassField *f_os_handle;
        static MonoClassField *f_safe_handle;
 
@@ -5741,6 +6020,8 @@ mono_wait_handle_get_handle (MonoWaitHandle *handle)
 static MonoObject*
 mono_runtime_capture_context (MonoDomain *domain)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        RuntimeInvokeFunction runtime_invoke;
 
        if (!domain->capture_context_runtime_invoke || !domain->capture_context_method) {
@@ -5771,6 +6052,8 @@ mono_runtime_capture_context (MonoDomain *domain)
 MonoAsyncResult *
 mono_async_result_new (MonoDomain *domain, HANDLE handle, MonoObject *state, gpointer data, MonoObject *object_data)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoAsyncResult *res = (MonoAsyncResult *)mono_object_new (domain, mono_defaults.asyncresult_class);
        MonoObject *context = mono_runtime_capture_context (domain);
        /* we must capture the execution context from the original thread */
@@ -5792,31 +6075,25 @@ mono_async_result_new (MonoDomain *domain, HANDLE handle, MonoObject *state, gpo
 }
 
 MonoObject *
-mono_async_result_invoke (MonoAsyncResult *ares, MonoObject **exc)
+ves_icall_System_Runtime_Remoting_Messaging_AsyncResult_Invoke (MonoAsyncResult *ares)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoAsyncCall *ac;
        MonoObject *res;
-       MonoInternalThread *thread;
 
        g_assert (ares);
        g_assert (ares->async_delegate);
 
-       thread = mono_thread_internal_current ();
-
        ac = (MonoAsyncCall*) ares->object_data;
        if (!ac) {
-               thread->async_invoke_method = ((MonoDelegate*) ares->async_delegate)->method;
-               res = mono_runtime_delegate_invoke (ares->async_delegate, (void**) &ares->async_state, exc);
-               thread->async_invoke_method = NULL;
+               res = mono_runtime_delegate_invoke (ares->async_delegate, (void**) &ares->async_state, NULL);
        } else {
-               MonoArray *out_args = NULL;
                gpointer wait_event = NULL;
 
                ac->msg->exc = NULL;
-               res = mono_message_invoke (ares->async_delegate, ac->msg, exc, &out_args);
-               MONO_OBJECT_SETREF (ac->msg, exc, *exc);
+               res = mono_message_invoke (ares->async_delegate, ac->msg, &ac->msg->exc, &ac->out_args);
                MONO_OBJECT_SETREF (ac, res, res);
-               MONO_OBJECT_SETREF (ac, out_args, out_args);
 
                mono_monitor_enter ((MonoObject*) ares);
                ares->completed = 1;
@@ -5827,34 +6104,26 @@ mono_async_result_invoke (MonoAsyncResult *ares, MonoObject **exc)
                if (wait_event != NULL)
                        SetEvent (wait_event);
 
-               if (!ac->cb_method) {
-                       *exc = NULL;
-               } else {
-                       thread->async_invoke_method = ac->cb_method;
-                       mono_runtime_invoke (ac->cb_method, ac->cb_target, (gpointer*) &ares, exc);
-                       thread->async_invoke_method = NULL;
+               if (ac->cb_method) {
+                       /* we swallow the excepton as it is the behavior on .NET */
+                       MonoObject *exc = NULL;
+                       mono_runtime_invoke (ac->cb_method, ac->cb_target, (gpointer*) &ares, &exc);
+                       if (exc)
+                               mono_unhandled_exception (exc);
                }
        }
 
        return res;
 }
 
-MonoObject *
-ves_icall_System_Runtime_Remoting_Messaging_AsyncResult_Invoke (MonoAsyncResult *this)
-{
-       MonoObject *exc = NULL;
-       MonoObject *res = mono_async_result_invoke (this, &exc);
-       if (exc)
-               mono_raise_exception ((MonoException*) exc);
-       return res;
-}
-
 void
 mono_message_init (MonoDomain *domain,
-                  MonoMethodMessage *this, 
+                  MonoMethodMessage *this_obj
                   MonoReflectionMethod *method,
                   MonoArray *out_args)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        static MonoClass *object_array_klass;
        static MonoClass *byte_array_klass;
        static MonoClass *string_array_klass;
@@ -5881,20 +6150,20 @@ mono_message_init (MonoDomain *domain,
                mono_atomic_store_release (&object_array_klass, klass);
        }
 
-       MONO_OBJECT_SETREF (this, method, method);
+       MONO_OBJECT_SETREF (this_obj, method, method);
 
-       MONO_OBJECT_SETREF (this, args, mono_array_new_specific (mono_class_vtable (domain, object_array_klass), sig->param_count));
-       MONO_OBJECT_SETREF (this, arg_types, mono_array_new_specific (mono_class_vtable (domain, byte_array_klass), sig->param_count));
-       this->async_result = NULL;
-       this->call_type = CallType_Sync;
+       MONO_OBJECT_SETREF (this_obj, args, mono_array_new_specific (mono_class_vtable (domain, object_array_klass), sig->param_count));
+       MONO_OBJECT_SETREF (this_obj, arg_types, mono_array_new_specific (mono_class_vtable (domain, byte_array_klass), sig->param_count));
+       this_obj->async_result = NULL;
+       this_obj->call_type = CallType_Sync;
 
        names = g_new (char *, sig->param_count);
        mono_method_get_param_names (method->method, (const char **) names);
-       MONO_OBJECT_SETREF (this, names, mono_array_new_specific (mono_class_vtable (domain, string_array_klass), sig->param_count));
+       MONO_OBJECT_SETREF (this_obj, names, mono_array_new_specific (mono_class_vtable (domain, string_array_klass), sig->param_count));
        
        for (i = 0; i < sig->param_count; i++) {
                name = mono_string_new (domain, names [i]);
-               mono_array_setref (this->names, i, name);       
+               mono_array_setref (this_obj->names, i, name);   
        }
 
        g_free (names);
@@ -5902,7 +6171,7 @@ mono_message_init (MonoDomain *domain,
                if (sig->params [i]->byref) {
                        if (out_args) {
                                MonoObject* arg = mono_array_get (out_args, gpointer, j);
-                               mono_array_setref (this->args, i, arg);
+                               mono_array_setref (this_obj->args, i, arg);
                                j++;
                        }
                        arg_type = 2;
@@ -5913,7 +6182,7 @@ mono_message_init (MonoDomain *domain,
                        if (sig->params [i]->attrs & PARAM_ATTRIBUTE_OUT)
                                arg_type |= 4;
                }
-               mono_array_set (this->arg_types, guint8, i, arg_type);
+               mono_array_set (this_obj->arg_types, guint8, i, arg_type);
        }
 }
 
@@ -5936,6 +6205,8 @@ MonoObject *
 mono_remoting_invoke (MonoObject *real_proxy, MonoMethodMessage *msg, 
                      MonoObject **exc, MonoArray **out_args)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoMethod *im = real_proxy->vtable->domain->private_invoke_method;
        gpointer pa [4];
 
@@ -5960,6 +6231,8 @@ MonoObject *
 mono_message_invoke (MonoObject *target, MonoMethodMessage *msg, 
                     MonoObject **exc, MonoArray **out_args) 
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        static MonoClass *object_array_klass;
        MonoDomain *domain; 
        MonoMethod *method;
@@ -5997,8 +6270,7 @@ mono_message_invoke (MonoObject *target, MonoMethodMessage *msg,
                object_array_klass = klass;
        }
 
-       /* FIXME: GC ensure we insert a write barrier for out_args, maybe in the caller? */
-       *out_args = mono_array_new_specific (mono_class_vtable (domain, object_array_klass), outarg_count);
+       mono_gc_wbarrier_generic_store (out_args, (MonoObject*) mono_array_new_specific (mono_class_vtable (domain, object_array_klass), outarg_count));
        *exc = NULL;
 
        ret = mono_runtime_invoke_array (method, method->klass->valuetype? mono_object_unbox (target): target, msg->args, exc);
@@ -6025,6 +6297,8 @@ mono_message_invoke (MonoObject *target, MonoMethodMessage *msg,
 MonoString *
 mono_object_to_string (MonoObject *obj, MonoObject **exc)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        static MonoMethod *to_string = NULL;
        MonoMethod *method;
        void *target = obj;
@@ -6053,6 +6327,8 @@ mono_object_to_string (MonoObject *obj, MonoObject **exc)
 void
 mono_print_unhandled_exception (MonoObject *exc)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoString * str;
        char *message = (char*)"";
        gboolean free_message = FALSE;
@@ -6117,14 +6393,16 @@ mono_print_unhandled_exception (MonoObject *exc)
  * correct instantiation of the method.
  */
 void
-mono_delegate_ctor_with_method (MonoObject *this, MonoObject *target, gpointer addr, MonoMethod *method)
+mono_delegate_ctor_with_method (MonoObject *this_obj, MonoObject *target, gpointer addr, MonoMethod *method)
 {
-       MonoDelegate *delegate = (MonoDelegate *)this;
+       MONO_REQ_GC_UNSAFE_MODE;
 
-       g_assert (this);
+       MonoDelegate *delegate = (MonoDelegate *)this_obj;
+
+       g_assert (this_obj);
        g_assert (addr);
 
-       g_assert (mono_class_has_parent (mono_object_class (this), mono_defaults.multicastdelegate_class));
+       g_assert (mono_class_has_parent (mono_object_class (this_obj), mono_defaults.multicastdelegate_class));
 
        if (method)
                delegate->method = method;
@@ -6156,8 +6434,10 @@ mono_delegate_ctor_with_method (MonoObject *this, MonoObject *target, gpointer a
  * This is used to initialize a delegate.
  */
 void
-mono_delegate_ctor (MonoObject *this, MonoObject *target, gpointer addr)
+mono_delegate_ctor (MonoObject *this_obj, MonoObject *target, gpointer addr)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDomain *domain = mono_domain_get ();
        MonoJitInfo *ji;
        MonoMethod *method = NULL;
@@ -6173,7 +6453,7 @@ mono_delegate_ctor (MonoObject *this, MonoObject *target, gpointer addr)
                g_assert (!method->klass->generic_container);
        }
 
-       mono_delegate_ctor_with_method (this, target, addr, method);
+       mono_delegate_ctor_with_method (this_obj, target, addr, method);
 }
 
 /**
@@ -6190,6 +6470,8 @@ MonoMethodMessage *
 mono_method_call_message_new (MonoMethod *method, gpointer *params, MonoMethod *invoke, 
                              MonoDelegate **cb, MonoObject **state)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDomain *domain = mono_domain_get ();
        MonoMethodSignature *sig = mono_method_signature (method);
        MonoMethodMessage *msg;
@@ -6242,6 +6524,8 @@ mono_method_call_message_new (MonoMethod *method, gpointer *params, MonoMethod *
 void
 mono_method_return_message_restore (MonoMethod *method, gpointer *params, MonoArray *out_args)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoMethodSignature *sig = mono_method_signature (method);
        int i, j, type, size, out_len;
        
@@ -6302,18 +6586,20 @@ mono_method_return_message_restore (MonoMethod *method, gpointer *params, MonoAr
  * Returns: an address pointing to the value of field.
  */
 gpointer
-mono_load_remote_field (MonoObject *this, MonoClass *klass, MonoClassField *field, gpointer *res)
+mono_load_remote_field (MonoObject *this_obj, MonoClass *klass, MonoClassField *field, gpointer *res)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        static MonoMethod *getter = NULL;
        MonoDomain *domain = mono_domain_get ();
-       MonoTransparentProxy *tp = (MonoTransparentProxy *) this;
+       MonoTransparentProxy *tp = (MonoTransparentProxy *) this_obj;
        MonoClass *field_class;
        MonoMethodMessage *msg;
        MonoArray *out_args;
        MonoObject *exc;
        char* full_name;
 
-       g_assert (mono_object_is_transparent_proxy (this));
+       g_assert (mono_object_is_transparent_proxy (this_obj));
        g_assert (res != NULL);
 
        if (mono_class_is_contextbound (tp->remote_class->proxy_class) && tp->rp->context == (MonoObject *) mono_context_get ()) {
@@ -6361,18 +6647,20 @@ mono_load_remote_field (MonoObject *this, MonoClass *klass, MonoClassField *fiel
  * Missing documentation.
  */
 MonoObject *
-mono_load_remote_field_new (MonoObject *this, MonoClass *klass, MonoClassField *field)
+mono_load_remote_field_new (MonoObject *this_obj, MonoClass *klass, MonoClassField *field)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        static MonoMethod *getter = NULL;
        MonoDomain *domain = mono_domain_get ();
-       MonoTransparentProxy *tp = (MonoTransparentProxy *) this;
+       MonoTransparentProxy *tp = (MonoTransparentProxy *) this_obj;
        MonoClass *field_class;
        MonoMethodMessage *msg;
        MonoArray *out_args;
        MonoObject *exc, *res;
        char* full_name;
 
-       g_assert (mono_object_is_transparent_proxy (this));
+       g_assert (mono_object_is_transparent_proxy (this_obj));
 
        field_class = mono_class_from_mono_type (field->type);
 
@@ -6417,21 +6705,23 @@ mono_load_remote_field_new (MonoObject *this, MonoClass *klass, MonoClassField *
 
 /**
  * mono_store_remote_field:
- * @this: pointer to an object
+ * @this_obj: pointer to an object
  * @klass: klass of the object containing @field
  * @field: the field to load
  * @val: the value/object to store
  *
  * This method is called by the runtime on attempts to store fields of
- * transparent proxy objects. @this points to such TP, @klass is the class of
+ * transparent proxy objects. @this_obj points to such TP, @klass is the class of
  * the object containing @field. @val is the new value to store in @field.
  */
 void
-mono_store_remote_field (MonoObject *this, MonoClass *klass, MonoClassField *field, gpointer val)
+mono_store_remote_field (MonoObject *this_obj, MonoClass *klass, MonoClassField *field, gpointer val)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        static MonoMethod *setter = NULL;
        MonoDomain *domain = mono_domain_get ();
-       MonoTransparentProxy *tp = (MonoTransparentProxy *) this;
+       MonoTransparentProxy *tp = (MonoTransparentProxy *) this_obj;
        MonoClass *field_class;
        MonoMethodMessage *msg;
        MonoArray *out_args;
@@ -6439,7 +6729,7 @@ mono_store_remote_field (MonoObject *this, MonoClass *klass, MonoClassField *fie
        MonoObject *arg;
        char* full_name;
 
-       g_assert (mono_object_is_transparent_proxy (this));
+       g_assert (mono_object_is_transparent_proxy (this_obj));
 
        field_class = mono_class_from_mono_type (field->type);
 
@@ -6476,7 +6766,7 @@ mono_store_remote_field (MonoObject *this, MonoClass *klass, MonoClassField *fie
 
 /**
  * mono_store_remote_field_new:
- * @this:
+ * @this_obj:
  * @klass:
  * @field:
  * @arg:
@@ -6484,18 +6774,20 @@ mono_store_remote_field (MonoObject *this, MonoClass *klass, MonoClassField *fie
  * Missing documentation
  */
 void
-mono_store_remote_field_new (MonoObject *this, MonoClass *klass, MonoClassField *field, MonoObject *arg)
+mono_store_remote_field_new (MonoObject *this_obj, MonoClass *klass, MonoClassField *field, MonoObject *arg)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        static MonoMethod *setter = NULL;
        MonoDomain *domain = mono_domain_get ();
-       MonoTransparentProxy *tp = (MonoTransparentProxy *) this;
+       MonoTransparentProxy *tp = (MonoTransparentProxy *) this_obj;
        MonoClass *field_class;
        MonoMethodMessage *msg;
        MonoArray *out_args;
        MonoObject *exc;
        char* full_name;
 
-       g_assert (mono_object_is_transparent_proxy (this));
+       g_assert (mono_object_is_transparent_proxy (this_obj));
 
        field_class = mono_class_from_mono_type (field->type);
 
@@ -6558,6 +6850,8 @@ mono_get_addr_from_ftnptr (gpointer descr)
 gunichar2 *
 mono_string_chars (MonoString *s)
 {
+       // MONO_REQ_GC_UNSAFE_MODE; //FIXME too much trouble for now
+
        return s->chars;
 }
 
@@ -6570,6 +6864,8 @@ mono_string_chars (MonoString *s)
 int
 mono_string_length (MonoString *s)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return s->length;
 }
 
@@ -6583,6 +6879,8 @@ mono_string_length (MonoString *s)
 uintptr_t
 mono_array_length (MonoArray *array)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return array->max_length;
 }
 
@@ -6597,6 +6895,8 @@ mono_array_length (MonoArray *array)
 char*
 mono_array_addr_with_size (MonoArray *array, int size, uintptr_t idx)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return ((char*)(array)->vector) + size * idx;
 }
 
index f760b21a7748f94aedbf557c4ab0a27137a78c69..7aef3ad2e6095f3fb203843a5ece7843f2b09339 100644 (file)
@@ -36,6 +36,7 @@ typedef void*    (*MonoCompileFunc)        (MonoMethod *method);
 typedef void       (*MonoMainThreadFunc)    (void* user_data);
 
 #define MONO_OBJECT_SETREF(obj,fieldname,value) do {   \
+               g_assert (sizeof((obj)->fieldname) == sizeof (gpointer*));      \
                mono_gc_wbarrier_set_field ((MonoObject*)(obj), &((obj)->fieldname), (MonoObject*)value);       \
                /*(obj)->fieldname = (value);*/ \
        } while (0)
index 121f6ce73619af42b2b54a265fcd25b85b3df531..d547e867fe6751c94ee5e48f5fd32790b4967f36 100644 (file)
@@ -20,6 +20,7 @@
 #include <mono/metadata/image.h>
 #include <mono/metadata/cil-coff.h>
 #include <mono/metadata/exception.h>
+#include <mono/metadata/threadpool-ms-io.h>
 #include <mono/utils/strenc.h>
 #include <mono/utils/mono-proclib.h>
 #include <mono/io-layer/io-layer.h>
@@ -53,11 +54,11 @@ ves_icall_System_Diagnostics_Process_GetPid_internal (void)
        return mono_process_current_pid ();
 }
 
-void ves_icall_System_Diagnostics_Process_Process_free_internal (MonoObject *this,
+void ves_icall_System_Diagnostics_Process_Process_free_internal (MonoObject *this_obj,
                                                                 HANDLE process)
 {
 #ifdef THREAD_DEBUG
-       g_message ("%s: Closing process %p, handle %p", __func__, this, process);
+       g_message ("%s: Closing process %p, handle %p", __func__, this_obj, process);
 #endif
 
 #if defined(TARGET_WIN32) || defined(HOST_WIN32)
@@ -67,9 +68,9 @@ void ves_icall_System_Diagnostics_Process_Process_free_internal (MonoObject *thi
 #endif
 }
 
-#define STASH_SYS_ASS(this) \
+#define STASH_SYS_ASS(this_obj) \
        if(system_assembly == NULL) { \
-               system_assembly=this->vtable->klass->image; \
+               system_assembly=this_obj->vtable->klass->image; \
        }
 
 static MonoImage *system_assembly=NULL;
@@ -113,6 +114,20 @@ static void process_set_field_string (MonoObject *obj, const gchar *fieldname,
        mono_gc_wbarrier_generic_store (((char *)obj) + field->offset, (MonoObject*)string);
 }
 
+static void process_set_field_string_char (MonoObject *obj, const gchar *fieldname,
+                                     const gchar *val)
+{
+       MonoClassField *field;
+       MonoString *string;
+
+       LOGDEBUG (g_message ("%s: Setting field %s to [%s]", __func__, fieldname, val));
+
+       string=mono_string_new (mono_object_domain (obj), val);
+       
+       field=mono_class_get_field_from_name (mono_object_class (obj), fieldname);
+       mono_gc_wbarrier_generic_store (((char *)obj) + field->offset, (MonoObject*)string);
+}
+
 static void process_set_field_int (MonoObject *obj, const gchar *fieldname,
                                   guint32 val)
 {
@@ -350,9 +365,49 @@ static void process_get_fileversion (MonoObject *filever, gunichar2 *filename)
        }
 }
 
+static void process_get_assembly_fileversion (MonoObject *filever, MonoAssembly *assembly)
+{
+       process_set_field_int (filever, "filemajorpart", assembly->aname.major);
+       process_set_field_int (filever, "fileminorpart", assembly->aname.minor);
+       process_set_field_int (filever, "filebuildpart", assembly->aname.build);
+}
+
+static MonoObject* get_process_module (MonoAssembly *assembly, MonoClass *proc_class)
+{
+       static MonoClass *filever_class = NULL;
+       MonoObject *item, *filever;
+       MonoDomain *domain = mono_domain_get ();
+       char filename [80] = "[In Memory] ";
+       const char *modulename = assembly->aname.name;
+
+       strncat (filename, modulename, 80);
+
+       /* Build a System.Diagnostics.ProcessModule with the data.
+        */
+       item = mono_object_new (domain, proc_class);
+
+       if (!filever_class)
+               filever_class = mono_class_from_name (system_assembly,
+                                           "System.Diagnostics",
+                                           "FileVersionInfo");
+
+       filever = mono_object_new (domain, filever_class);
+
+       process_get_assembly_fileversion (filever, assembly);
+       process_set_field_string_char (filever, "filename", filename);
+       process_set_field_object (item, "version_info", filever);
+
+       process_set_field_intptr (item, "baseaddr", assembly->image->raw_data);
+       process_set_field_int (item, "memory_size", assembly->image->raw_data_len);
+       process_set_field_string_char (item, "filename", filename);
+       process_set_field_string_char (item, "modulename", modulename);
+
+       return item;
+}
+
 static MonoObject* process_add_module (HANDLE process, HMODULE mod, gunichar2 *filename, gunichar2 *modulename, MonoClass *proc_class)
 {
-       MonoClass *filever_class;
+       static MonoClass *filever_class = NULL;
        MonoObject *item, *filever;
        MonoDomain *domain=mono_domain_get ();
        MODULEINFO modinfo;
@@ -362,9 +417,11 @@ static MonoObject* process_add_module (HANDLE process, HMODULE mod, gunichar2 *f
         */
        item=mono_object_new (domain, proc_class);
 
-       filever_class=mono_class_from_name (system_assembly,
+       if (!filever_class)
+               filever_class=mono_class_from_name (system_assembly,
                                            "System.Diagnostics",
                                            "FileVersionInfo");
+
        filever=mono_object_new (domain, filever_class);
 
        process_get_fileversion (filever, filename);
@@ -390,8 +447,30 @@ static MonoObject* process_add_module (HANDLE process, HMODULE mod, gunichar2 *f
        return item;
 }
 
+static GPtrArray* get_domain_assemblies (MonoDomain *domain)
+{
+       GSList *tmp;
+       GPtrArray *assemblies;
+
+       /* 
+        * Make a copy of the list of assemblies because we can't hold the assemblies
+        * lock while creating objects etc.
+        */
+       assemblies = g_ptr_array_new ();
+       mono_domain_assemblies_lock (domain);
+       for (tmp = domain->domain_assemblies; tmp; tmp = tmp->next) {
+               MonoAssembly *ass = tmp->data;
+               if (ass->image->fileio_used)
+                       continue;
+               g_ptr_array_add (assemblies, ass);
+       }
+       mono_domain_assemblies_unlock (domain);
+
+       return assemblies;
+}
+
 /* Returns an array of System.Diagnostics.ProcessModule */
-MonoArray *ves_icall_System_Diagnostics_Process_GetModules_internal (MonoObject *this, HANDLE process)
+MonoArray *ves_icall_System_Diagnostics_Process_GetModules_internal (MonoObject *this_obj, HANDLE process)
 {
        MonoArray *temp_arr = NULL;
        MonoArray *arr;
@@ -399,26 +478,62 @@ MonoArray *ves_icall_System_Diagnostics_Process_GetModules_internal (MonoObject
        gunichar2 filename[MAX_PATH];
        gunichar2 modname[MAX_PATH];
        DWORD needed;
-       guint32 count = 0;
+       guint32 count = 0, module_count = 0, assembly_count = 0;
        guint32 i, num_added = 0;
-       MonoClass *proc_class;
+       static MonoClass *proc_class = NULL;
+       GPtrArray *assemblies = NULL;
+       static HANDLE current_process = 0;
+       
+       if (current_process == 0) {
+               int pid = mono_process_current_pid ();
+               current_process = ves_icall_System_Diagnostics_Process_GetProcess_internal (pid);
+       }
+
+       STASH_SYS_ASS (this_obj);
 
-       STASH_SYS_ASS (this);
+       if (process == current_process) {
+               assemblies = get_domain_assemblies (mono_domain_get ());
+               assembly_count = assemblies->len;
+       }
 
        if (EnumProcessModules (process, mods, sizeof(mods), &needed)) {
-               count = needed / sizeof(HMODULE);
+               module_count += needed / sizeof(HMODULE);
+       }
+
+       count = module_count + assembly_count; 
+       if (!proc_class)
                proc_class = mono_class_from_name (system_assembly, "System.Diagnostics", "ProcessModule");
-               temp_arr = mono_array_new (mono_domain_get (), proc_class, count);
-               for (i = 0; i < count; i++) {
-                       if (GetModuleBaseName (process, mods[i], modname, MAX_PATH) &&
-                                       GetModuleFileNameEx (process, mods[i], filename, MAX_PATH)) {
-                               MonoObject *module = process_add_module (process, mods[i],
-                                               filename, modname, proc_class);
-                               mono_array_setref (temp_arr, num_added++, module);
-                       }
+
+       temp_arr = mono_array_new (mono_domain_get (), proc_class, count);
+
+       for (i = 0; i < module_count; i++) {
+               if (GetModuleBaseName (process, mods[i], modname, MAX_PATH) &&
+                               GetModuleFileNameEx (process, mods[i], filename, MAX_PATH)) {
+                       MonoObject *module = process_add_module (process, mods[i],
+                                       filename, modname, proc_class);
+                       mono_array_setref (temp_arr, num_added++, module);
                }
        }
 
+       if (assemblies) {
+               for (i = 0; i < assembly_count; i++) {
+                       MonoAssembly *ass = g_ptr_array_index (assemblies, i);
+                       MonoObject *module = get_process_module (ass, proc_class);
+                       mono_array_setref (temp_arr, num_added++, module);
+               }
+               g_ptr_array_free (assemblies, TRUE);
+       }
+
+       if (count == num_added) {
+               arr = temp_arr;
+       } else {
+               /* shorter version of the array */
+               arr = mono_array_new (mono_domain_get (), proc_class, num_added);
+
+               for (i = 0; i < num_added; i++)
+                       mono_array_setref (arr, i, mono_array_get (temp_arr, MonoObject*, i));
+       }
+
        if (count == num_added) {
                arr = temp_arr;
        } else {
@@ -432,12 +547,12 @@ MonoArray *ves_icall_System_Diagnostics_Process_GetModules_internal (MonoObject
        return arr;
 }
 
-void ves_icall_System_Diagnostics_FileVersionInfo_GetVersionInfo_internal (MonoObject *this, MonoString *filename)
+void ves_icall_System_Diagnostics_FileVersionInfo_GetVersionInfo_internal (MonoObject *this_obj, MonoString *filename)
 {
-       STASH_SYS_ASS (this);
+       STASH_SYS_ASS (this_obj);
        
-       process_get_fileversion (this, mono_string_chars (filename));
-       process_set_field_string (this, "filename",
+       process_get_fileversion (this_obj, mono_string_chars (filename));
+       process_set_field_string (this_obj, "filename",
                                  mono_string_chars (filename),
                                  mono_string_length (filename));
 }
@@ -548,10 +663,7 @@ MonoBoolean ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal (MonoPr
        } else {
                process_info->process_handle = shellex.hProcess;
                process_info->thread_handle = NULL;
-               /* It appears that there's no way to get the pid from a
-                * process handle before windows xp.  Really.
-                */
-#if defined(HAVE_GETPROCESSID) && !defined(MONO_CROSS_COMPILE)
+#if !defined(MONO_CROSS_COMPILE)
                process_info->pid = GetProcessId (shellex.hProcess);
 #else
                process_info->pid = 0;
@@ -688,18 +800,18 @@ MonoBoolean ves_icall_System_Diagnostics_Process_CreateProcess_internal (MonoPro
        return(ret);
 }
 
-MonoBoolean ves_icall_System_Diagnostics_Process_WaitForExit_internal (MonoObject *this, HANDLE process, gint32 ms)
+MonoBoolean ves_icall_System_Diagnostics_Process_WaitForExit_internal (MonoObject *this_obj, HANDLE process, gint32 ms)
 {
        guint32 ret;
        
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        if(ms<0) {
                /* Wait forever */
                ret=WaitForSingleObjectEx (process, INFINITE, TRUE);
        } else {
                ret=WaitForSingleObjectEx (process, ms, TRUE);
        }
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        if(ret==WAIT_OBJECT_0) {
                return(TRUE);
@@ -708,7 +820,7 @@ MonoBoolean ves_icall_System_Diagnostics_Process_WaitForExit_internal (MonoObjec
        }
 }
 
-MonoBoolean ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal (MonoObject *this, HANDLE process, gint32 ms)
+MonoBoolean ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal (MonoObject *this_obj, HANDLE process, gint32 ms)
 {
        guint32 ret;
        
@@ -962,3 +1074,9 @@ ves_icall_System_Diagnostics_Process_GetProcessData (int pid, gint32 data_type,
        return res;
 }
 
+void
+ves_icall_System_Diagnostics_Process_ProcessAsyncReader_RemoveFromIOThreadPool (HANDLE handle)
+{
+       mono_threadpool_ms_io_remove_socket (GPOINTER_TO_INT (handle));
+}
+
index 39247874b0f2e638ca61e4e6ea2c47c684af4299..affa79633a486eb016870595b3a0acbb689cda3e 100644 (file)
@@ -82,6 +82,8 @@ gint64 ves_icall_System_Diagnostics_Process_GetProcessData (int pid, gint32 data
 HANDLE ves_icall_System_Diagnostics_Process_ProcessHandle_duplicate (HANDLE process);
 void ves_icall_System_Diagnostics_Process_ProcessHandle_close (HANDLE process);
 
+void ves_icall_System_Diagnostics_Process_ProcessAsyncReader_RemoveFromIOThreadPool (HANDLE handle);
+
 G_END_DECLS
 
 #endif /* _MONO_METADATA_PROCESS_H_ */
index ab329842c732fc60ec7dd3679e2c0fb34cfd7ea8..5888b90fca925bdcfd35082990fa52a0fa83fb4d 100644 (file)
@@ -59,6 +59,10 @@ void mono_profiler_class_loaded (MonoClass *klass, int result);
 
 void mono_profiler_appdomain_event  (MonoDomain *domain, int code);
 void mono_profiler_appdomain_loaded (MonoDomain *domain, int result);
+void mono_profiler_appdomain_name   (MonoDomain *domain, const char *name);
+
+void mono_profiler_context_loaded (MonoAppContext *context);
+void mono_profiler_context_unloaded (MonoAppContext *context);
 
 void mono_profiler_iomap (char *report, const char *pathname, const char *new_pathname);
 
index 61595ddf2c4a64ffe3c84ca5da59800809452d41..a9d0e68f6dee9c9a678c548c321b55d3304898ca 100644 (file)
@@ -44,6 +44,10 @@ struct _ProfilerDesc {
        MonoProfileAppDomainResult domain_end_load;
        MonoProfileAppDomainFunc   domain_start_unload;
        MonoProfileAppDomainFunc   domain_end_unload;
+       MonoProfileAppDomainFriendlyNameFunc   domain_name;
+
+       MonoProfileContextFunc context_load;
+       MonoProfileContextFunc context_unload;
 
        MonoProfileAssemblyFunc   assembly_start_load;
        MonoProfileAssemblyResult assembly_end_load;
@@ -381,6 +385,25 @@ mono_profiler_install_appdomain   (MonoProfileAppDomainFunc start_load, MonoProf
        prof_list->domain_end_unload = end_unload;
 }
 
+void
+mono_profiler_install_appdomain_name (MonoProfileAppDomainFriendlyNameFunc domain_name_cb)
+{
+       if (!prof_list)
+               return;
+
+       prof_list->domain_name = domain_name_cb;
+}
+
+void
+mono_profiler_install_context (MonoProfileContextFunc load, MonoProfileContextFunc unload)
+{
+       if (!prof_list)
+               return;
+
+       prof_list->context_load = load;
+       prof_list->context_unload = unload;
+}
+
 void 
 mono_profiler_install_assembly    (MonoProfileAssemblyFunc start_load, MonoProfileAssemblyResult end_load,
                                    MonoProfileAssemblyFunc start_unload, MonoProfileAssemblyFunc end_unload)
@@ -757,6 +780,30 @@ mono_profiler_appdomain_loaded (MonoDomain *domain, int result)
        }
 }
 
+void
+mono_profiler_appdomain_name (MonoDomain *domain, const char *name)
+{
+       for (ProfilerDesc *prof = prof_list; prof; prof = prof->next)
+               if ((prof->events & MONO_PROFILE_APPDOMAIN_EVENTS) && prof->domain_name)
+                       prof->domain_name (prof->profiler, domain, name);
+}
+
+void
+mono_profiler_context_loaded (MonoAppContext *context)
+{
+       for (ProfilerDesc *prof = prof_list; prof; prof = prof->next)
+               if ((prof->events & MONO_PROFILE_CONTEXT_EVENTS) && prof->context_load)
+                       prof->context_load (prof->profiler, context);
+}
+
+void
+mono_profiler_context_unloaded (MonoAppContext *context)
+{
+       for (ProfilerDesc *prof = prof_list; prof; prof = prof->next)
+               if ((prof->events & MONO_PROFILE_CONTEXT_EVENTS) && prof->context_unload)
+                       prof->context_unload (prof->profiler, context);
+}
+
 void 
 mono_profiler_shutdown (void)
 {
index 42e2f1f27dd50f0ce0f9e4d56a518729235b9736..17128a1cb5a79d950d70cc90c6a73337fae24b0b 100644 (file)
@@ -30,7 +30,8 @@ typedef enum {
        MONO_PROFILE_MONITOR_EVENTS   = 1 << 17,
        MONO_PROFILE_IOMAP_EVENTS     = 1 << 18, /* this should likely be removed, too */
        MONO_PROFILE_GC_MOVES         = 1 << 19,
-       MONO_PROFILE_GC_ROOTS         = 1 << 20
+       MONO_PROFILE_GC_ROOTS         = 1 << 20,
+       MONO_PROFILE_CONTEXT_EVENTS   = 1 << 21
 } MonoProfileFlags;
 
 typedef enum {
@@ -118,6 +119,7 @@ typedef enum {
 typedef void (*MonoProfileFunc) (MonoProfiler *prof);
 
 typedef void (*MonoProfileAppDomainFunc) (MonoProfiler *prof, MonoDomain   *domain);
+typedef void (*MonoProfileContextFunc)   (MonoProfiler *prof, MonoAppContext *context);
 typedef void (*MonoProfileMethodFunc)   (MonoProfiler *prof, MonoMethod   *method);
 typedef void (*MonoProfileClassFunc)    (MonoProfiler *prof, MonoClass    *klass);
 typedef void (*MonoProfileModuleFunc)   (MonoProfiler *prof, MonoImage    *module);
@@ -128,6 +130,7 @@ typedef void (*MonoProfileExceptionFunc) (MonoProfiler *prof, MonoObject *object
 typedef void (*MonoProfileExceptionClauseFunc) (MonoProfiler *prof, MonoMethod *method, int clause_type, int clause_num);
 
 typedef void (*MonoProfileAppDomainResult)(MonoProfiler *prof, MonoDomain   *domain,   int result);
+typedef void (*MonoProfileAppDomainFriendlyNameFunc) (MonoProfiler *prof, MonoDomain *domain, const char *name);
 typedef void (*MonoProfileMethodResult)   (MonoProfiler *prof, MonoMethod   *method,   int result);
 typedef void (*MonoProfileJitResult)      (MonoProfiler *prof, MonoMethod   *method,   MonoJitInfo* jinfo,   int result);
 typedef void (*MonoProfileClassResult)    (MonoProfiler *prof, MonoClass    *klass,    int result);
@@ -167,6 +170,8 @@ MONO_API MonoProfileFlags mono_profiler_get_events (void);
 
 MONO_API void mono_profiler_install_appdomain   (MonoProfileAppDomainFunc start_load, MonoProfileAppDomainResult end_load,
                                         MonoProfileAppDomainFunc start_unload, MonoProfileAppDomainFunc end_unload);
+MONO_API void mono_profiler_install_appdomain_name (MonoProfileAppDomainFriendlyNameFunc domain_name_cb);
+MONO_API void mono_profiler_install_context     (MonoProfileContextFunc load, MonoProfileContextFunc unload);
 MONO_API void mono_profiler_install_assembly    (MonoProfileAssemblyFunc start_load, MonoProfileAssemblyResult end_load,
                                         MonoProfileAssemblyFunc start_unload, MonoProfileAssemblyFunc end_unload);
 MONO_API void mono_profiler_install_module      (MonoProfileModuleFunc start_load, MonoProfileModuleResult end_load,
index 16b0752e186959cb79a05982a54298602b7db16f..096db3127ae0586e894e39196b9f2b367716450d 100644 (file)
@@ -8304,7 +8304,7 @@ create_custom_attr (MonoImage *image, MonoMethod *method, const guchar *data, gu
                memset (params, 0, sizeof (void*) * sig->param_count);
        } else {
                /* Allocate using GC so it gets GC tracking */
-               params = mono_gc_alloc_fixed (sig->param_count * sizeof (void*), NULL);
+               params = mono_gc_alloc_fixed (sig->param_count * sizeof (void*), MONO_GC_DESCRIPTOR_NULL);
        }
 
        /* skip prolog */
index ef08c679bad43cd3d2daceaf305249ec73d8d82e..dcc60ecc5504a93656884ca5c78eb8ad47709457 100644 (file)
@@ -262,13 +262,11 @@ static inline MonoMethod*
 mono_marshal_remoting_find_in_cache (MonoMethod *method, int wrapper_type)
 {
        MonoMethod *res = NULL;
-       MonoRemotingMethods *wrps;
+       MonoRemotingMethods *wrps = NULL;
 
        mono_marshal_lock_internal ();
-       if (method->klass->image->remoting_invoke_cache)
-               wrps = g_hash_table_lookup (method->klass->image->remoting_invoke_cache, method);
-       else
-               wrps = NULL;
+       if (mono_method_get_wrapper_cache (method)->remoting_invoke_cache)
+               wrps = g_hash_table_lookup (mono_method_get_wrapper_cache (method)->remoting_invoke_cache, method);
 
        if (wrps) {
                switch (wrapper_type) {
@@ -294,7 +292,9 @@ mono_remoting_mb_create_and_cache (MonoMethod *key, MonoMethodBuilder *mb,
 {
        MonoMethod **res = NULL;
        MonoRemotingMethods *wrps;
-       GHashTable *cache = get_cache_full (&key->klass->image->remoting_invoke_cache, mono_aligned_addr_hash, NULL, NULL, g_free);
+       GHashTable *cache;
+
+       cache = get_cache_full (&mono_method_get_wrapper_cache (key)->remoting_invoke_cache, mono_aligned_addr_hash, NULL, NULL, g_free);
 
        mono_marshal_lock_internal ();
        wrps = g_hash_table_lookup (cache, key);
@@ -334,19 +334,19 @@ static MonoObject *
 mono_remoting_wrapper (MonoMethod *method, gpointer *params)
 {
        MonoMethodMessage *msg;
-       MonoTransparentProxy *this;
+       MonoTransparentProxy *this_obj;
        MonoObject *res, *exc;
        MonoArray *out_args;
 
-       this = *((MonoTransparentProxy **)params [0]);
+       this_obj = *((MonoTransparentProxy **)params [0]);
 
-       g_assert (this);
-       g_assert (((MonoObject *)this)->vtable->klass == mono_defaults.transparent_proxy_class);
+       g_assert (this_obj);
+       g_assert (((MonoObject *)this_obj)->vtable->klass == mono_defaults.transparent_proxy_class);
        
        /* skip the this pointer */
        params++;
 
-       if (mono_class_is_contextbound (this->remote_class->proxy_class) && this->rp->context == (MonoObject *) mono_context_get ())
+       if (mono_class_is_contextbound (this_obj->remote_class->proxy_class) && this_obj->rp->context == (MonoObject *) mono_context_get ())
        {
                int i;
                MonoMethodSignature *sig = mono_method_signature (method);
@@ -370,12 +370,12 @@ mono_remoting_wrapper (MonoMethod *method, gpointer *params)
                        }
                }
 
-               return mono_runtime_invoke (method, method->klass->valuetype? mono_object_unbox ((MonoObject*)this): this, mparams, NULL);
+               return mono_runtime_invoke (method, method->klass->valuetype? mono_object_unbox ((MonoObject*)this_obj): this_obj, mparams, NULL);
        }
 
        msg = mono_method_call_message_new (method, params, NULL, NULL, NULL);
 
-       res = mono_remoting_invoke ((MonoObject *)this->rp, msg, &exc, &out_args);
+       res = mono_remoting_invoke ((MonoObject *)this_obj->rp, msg, &exc, &out_args);
 
        if (exc)
                mono_raise_exception ((MonoException *)exc);
index 2b8118f693749bca3761ca69a0090fe88ddf18c3..7e001b9984945bc85930752e9e7ba9da436d58c7 100644 (file)
@@ -17,7 +17,7 @@
 #include <mono/metadata/runtime.h>
 #include <mono/metadata/monitor.h>
 #include <mono/metadata/threads-types.h>
-#include <mono/metadata/threadpool.h>
+#include <mono/metadata/threadpool-ms.h>
 #include <mono/metadata/marshal.h>
 #include <mono/utils/atomic.h>
 
@@ -104,7 +104,7 @@ mono_runtime_try_shutdown (void)
        mono_runtime_set_shutting_down ();
 
        /* This will kill the tp threads which cannot be suspended */
-       mono_thread_pool_cleanup ();
+       mono_threadpool_ms_cleanup ();
 
        /*TODO move the follow to here:
        mono_thread_suspend_all_other_threads (); OR  mono_thread_wait_all_other_threads
@@ -132,6 +132,5 @@ void
 mono_runtime_init_tls (void)
 {
        mono_marshal_init_tls ();
-       mono_thread_pool_init_tls ();
        mono_thread_init_tls ();
 }
index eb52ac990f34625a2e2b49552776b62c65363de9..2847011dc22d42f47fb168607d3a12ccb77b946b 100644 (file)
 #include "metadata/object-internals.h"
 
 typedef MonoObject GCObject;
-typedef MonoVTable GCVTable;
+typedef MonoVTable* GCVTable;
 
-/* FIXME: This should return a GCVTable* and be a function. */
-#define SGEN_LOAD_VTABLE_UNCHECKED(obj)        ((void*)(((GCObject*)(obj))->vtable))
-
-static inline mword
-sgen_vtable_get_descriptor (GCVTable *vtable)
+static inline GCVTable
+SGEN_LOAD_VTABLE_UNCHECKED (GCObject *obj)
 {
-       return (mword)vtable->gc_descr;
+       return obj->vtable;
 }
 
-static mword /*__attribute__((noinline)) not sure if this hint is a good idea*/
-sgen_client_slow_object_get_size (GCVTable *vtable, GCObject* o)
+static inline SgenDescriptor
+sgen_vtable_get_descriptor (GCVTable vtable)
 {
-       MonoClass *klass = ((MonoVTable*)vtable)->klass;
-
-       /*
-        * We depend on mono_string_length_fast and
-        * mono_array_length_fast not using the object's vtable.
-        */
-       if (klass == mono_defaults.string_class) {
-               return G_STRUCT_OFFSET (MonoString, chars) + 2 * mono_string_length_fast ((MonoString*) o) + 2;
-       } else if (klass->rank) {
-               MonoArray *array = (MonoArray*)o;
-               size_t size = sizeof (MonoArray) + klass->sizes.element_size * mono_array_length_fast (array);
-               if (G_UNLIKELY (array->bounds)) {
-                       size += sizeof (mono_array_size_t) - 1;
-                       size &= ~(sizeof (mono_array_size_t) - 1);
-                       size += sizeof (MonoArrayBounds) * klass->rank;
-               }
-               return size;
-       } else {
-               /* from a created object: the class must be inited already */
-               return klass->instance_size;
-       }
-}
-
-/*
- * This function can be called on an object whose first word, the
- * vtable field, is not intact.  This is necessary for the parallel
- * collector.
- */
-static MONO_NEVER_INLINE mword
-sgen_client_par_object_get_size (GCVTable *vtable, GCObject* o)
-{
-       mword descr = sgen_vtable_get_descriptor (vtable);
-       mword type = descr & DESC_TYPE_MASK;
-
-       if (type == DESC_TYPE_RUN_LENGTH || type == DESC_TYPE_SMALL_PTRFREE) {
-               mword size = descr & 0xfff8;
-               SGEN_ASSERT (9, size >= sizeof (MonoObject), "Run length object size to small");
-               return size;
-       } else if (descr == SGEN_DESC_STRING) {
-               return G_STRUCT_OFFSET (MonoString, chars) + 2 * mono_string_length_fast ((MonoString*) o) + 2;
-       } else if (type == DESC_TYPE_VECTOR) {
-               int element_size = ((descr) >> VECTOR_ELSIZE_SHIFT) & MAX_ELEMENT_SIZE;
-               MonoArray *array = (MonoArray*)o;
-               size_t size = sizeof (MonoArray) + element_size * mono_array_length_fast (array);
-
-               /*
-                * Non-vector arrays with a single dimension whose lower bound is zero are
-                * allocated without bounds.
-                */
-               if ((descr & VECTOR_KIND_ARRAY) && array->bounds) {
-                       size += sizeof (mono_array_size_t) - 1;
-                       size &= ~(sizeof (mono_array_size_t) - 1);
-                       size += sizeof (MonoArrayBounds) * ((MonoVTable*)vtable)->klass->rank;
-               }
-               return size;
-       }
-
-       return sgen_client_slow_object_get_size (vtable, o);
+       return (SgenDescriptor)vtable->gc_descr;
 }
 
 typedef struct _SgenClientThreadInfo SgenClientThreadInfo;
@@ -166,8 +106,71 @@ enum {
 #define SGEN_CLIENT_OBJECT_HEADER_SIZE         (sizeof (GCObject))
 #define SGEN_CLIENT_MINIMUM_OBJECT_SIZE                SGEN_CLIENT_OBJECT_HEADER_SIZE
 
+static mword /*__attribute__((noinline)) not sure if this hint is a good idea*/
+sgen_client_slow_object_get_size (GCVTable vtable, GCObject* o)
+{
+       MonoClass *klass = ((MonoVTable*)vtable)->klass;
+
+       /*
+        * We depend on mono_string_length_fast and
+        * mono_array_length_fast not using the object's vtable.
+        */
+       if (klass == mono_defaults.string_class) {
+               return G_STRUCT_OFFSET (MonoString, chars) + 2 * mono_string_length_fast ((MonoString*) o) + 2;
+       } else if (klass->rank) {
+               MonoArray *array = (MonoArray*)o;
+               size_t size = sizeof (MonoArray) + klass->sizes.element_size * mono_array_length_fast (array);
+               if (G_UNLIKELY (array->bounds)) {
+                       size += sizeof (mono_array_size_t) - 1;
+                       size &= ~(sizeof (mono_array_size_t) - 1);
+                       size += sizeof (MonoArrayBounds) * klass->rank;
+               }
+               return size;
+       } else {
+               /* from a created object: the class must be inited already */
+               return klass->instance_size;
+       }
+}
+
+/*
+ * This function can be called on an object whose first word, the
+ * vtable field, is not intact.  This is necessary for the parallel
+ * collector.
+ */
+static MONO_NEVER_INLINE mword
+sgen_client_par_object_get_size (GCVTable vtable, GCObject* o)
+{
+       SgenDescriptor descr = sgen_vtable_get_descriptor (vtable);
+       mword type = descr & DESC_TYPE_MASK;
+
+       if (type == DESC_TYPE_RUN_LENGTH || type == DESC_TYPE_SMALL_PTRFREE) {
+               mword size = descr & 0xfff8;
+               SGEN_ASSERT (9, size >= sizeof (MonoObject), "Run length object size to small");
+               return size;
+       } else if (descr == SGEN_DESC_STRING) {
+               return G_STRUCT_OFFSET (MonoString, chars) + 2 * mono_string_length_fast ((MonoString*) o) + 2;
+       } else if (type == DESC_TYPE_VECTOR) {
+               int element_size = ((descr) >> VECTOR_ELSIZE_SHIFT) & MAX_ELEMENT_SIZE;
+               MonoArray *array = (MonoArray*)o;
+               size_t size = sizeof (MonoArray) + element_size * mono_array_length_fast (array);
+
+               /*
+                * Non-vector arrays with a single dimension whose lower bound is zero are
+                * allocated without bounds.
+                */
+               if ((descr & VECTOR_KIND_ARRAY) && array->bounds) {
+                       size += sizeof (mono_array_size_t) - 1;
+                       size &= ~(sizeof (mono_array_size_t) - 1);
+                       size += sizeof (MonoArrayBounds) * ((MonoVTable*)vtable)->klass->rank;
+               }
+               return size;
+       }
+
+       return sgen_client_slow_object_get_size (vtable, o);
+}
+
 static MONO_ALWAYS_INLINE size_t G_GNUC_UNUSED
-sgen_client_array_element_size (GCVTable *gc_vtable)
+sgen_client_array_element_size (GCVTable gc_vtable)
 {
        MonoVTable *vt = (MonoVTable*)gc_vtable;
        return mono_array_element_size (vt->klass);
@@ -192,14 +195,14 @@ sgen_client_object_is_array_fill (GCObject *o)
 }
 
 static MONO_ALWAYS_INLINE void G_GNUC_UNUSED
-sgen_client_pre_copy_checks (char *destination, GCVTable *gc_vtable, void *obj, mword objsize)
+sgen_client_pre_copy_checks (char *destination, GCVTable gc_vtable, void *obj, mword objsize)
 {
        MonoVTable *vt = (MonoVTable*)gc_vtable;
        SGEN_ASSERT (9, vt->klass->inited, "vtable %p for class %s:%s was not initialized", vt, vt->klass->name_space, vt->klass->name);
 }
 
 static MONO_ALWAYS_INLINE void G_GNUC_UNUSED
-sgen_client_update_copied_object (char *destination, GCVTable *gc_vtable, void *obj, mword objsize)
+sgen_client_update_copied_object (char *destination, GCVTable gc_vtable, void *obj, mword objsize)
 {
        MonoVTable *vt = (MonoVTable*)gc_vtable;
        if (G_UNLIKELY (vt->rank && ((MonoArray*)obj)->bounds)) {
@@ -242,13 +245,13 @@ sgen_client_object_has_critical_finalizer (GCObject *obj)
        if (!mono_defaults.critical_finalizer_object)
                return FALSE;
 
-       class = ((MonoVTable*)SGEN_LOAD_VTABLE (obj))->klass;
+       class = SGEN_LOAD_VTABLE (obj)->klass;
 
        return mono_class_has_parent_fast (class, mono_defaults.critical_finalizer_object);
 }
 
-const char* sgen_client_vtable_get_namespace (GCVTable *vtable);
-const char* sgen_client_vtable_get_name (GCVTable *vtable);
+const char* sgen_client_vtable_get_namespace (GCVTable vtable);
+const char* sgen_client_vtable_get_name (GCVTable vtable);
 
 static gboolean G_GNUC_UNUSED
 sgen_client_bridge_need_processing (void)
@@ -568,7 +571,7 @@ sgen_client_binary_protocol_dislink_update (gpointer link, gpointer obj, gboolea
 {
 #ifdef ENABLE_DTRACE
        if (MONO_GC_WEAK_UPDATE_ENABLED ()) {
-               GCVTable *vt = obj ? (GCVTable*)SGEN_LOAD_VTABLE (obj) : NULL;
+               GCVTable vt = obj ? SGEN_LOAD_VTABLE (obj) : NULL;
                MONO_GC_WEAK_UPDATE ((mword)link,
                                (mword)obj,
                                obj ? (mword)sgen_safe_object_get_size (obj) : (mword)0,
index 9050c3b1d2f9d45bfaa907bc35d4c83330e5dc5d..bb44f590762d61a3903b3500e8fb4f1d65b8aadf 100644 (file)
@@ -112,7 +112,7 @@ mono_gc_wbarrier_value_copy (gpointer dest, gpointer src, int count, MonoClass *
        HEAVY_STAT (++stat_wbarrier_value_copy);
        g_assert (klass->valuetype);
 
-       SGEN_LOG (8, "Adding value remset at %p, count %d, descr %p for class %s (%p)", dest, count, klass->gc_descr, klass->name, klass);
+       SGEN_LOG (8, "Adding value remset at %p, count %d, descr %p for class %s (%p)", dest, count, (gpointer)klass->gc_descr, klass->name, klass);
 
        if (sgen_ptr_in_nursery (dest) || ptr_on_stack (dest) || !sgen_gc_descr_has_references ((mword)klass->gc_descr)) {
                size_t element_size = mono_class_value_size (klass, NULL);
@@ -354,9 +354,9 @@ mono_gc_get_write_barrier (void)
  */
 
 /* Vtable of the objects used to fill out nursery fragments before a collection */
-static GCVTable *array_fill_vtable;
+static GCVTable array_fill_vtable;
 
-static GCVTable*
+static GCVTable
 get_array_fill_vtable (void)
 {
        if (!array_fill_vtable) {
@@ -379,7 +379,7 @@ get_array_fill_vtable (void)
                vtable->gc_descr = mono_gc_make_descr_for_array (TRUE, &bmap, 0, 1);
                vtable->rank = 1;
 
-               array_fill_vtable = (GCVTable*)vtable;
+               array_fill_vtable = vtable;
        }
        return array_fill_vtable;
 }
@@ -450,7 +450,7 @@ mono_gc_get_vtable_bits (MonoClass *class)
 static gboolean
 is_finalization_aware (MonoObject *obj)
 {
-       MonoVTable *vt = ((MonoVTable*)SGEN_LOAD_VTABLE (obj));
+       MonoVTable *vt = SGEN_LOAD_VTABLE (obj);
        return (vt->gc_bits & SGEN_GC_BIT_FINALIZER_AWARE) == SGEN_GC_BIT_FINALIZER_AWARE;
 }
 
@@ -463,7 +463,7 @@ sgen_client_object_queued_for_finalization (GCObject *obj)
 #ifdef ENABLE_DTRACE
        if (G_UNLIKELY (MONO_GC_FINALIZE_ENQUEUE_ENABLED ())) {
                int gen = sgen_ptr_in_nursery (obj) ? GENERATION_NURSERY : GENERATION_OLD;
-               GCVTable *vt = (GCVTable*)SGEN_LOAD_VTABLE (obj);
+               GCVTable vt = SGEN_LOAD_VTABLE (obj);
                MONO_GC_FINALIZE_ENQUEUE ((mword)obj, sgen_safe_object_get_size (obj),
                                sgen_client_vtable_get_namespace (vt), sgen_client_vtable_get_name (vt), gen,
                                sgen_client_object_has_critical_finalizer (obj));
@@ -548,12 +548,12 @@ typedef struct _EphemeronLinkNode EphemeronLinkNode;
 
 struct _EphemeronLinkNode {
        EphemeronLinkNode *next;
-       char *array;
+       MonoArray *array;
 };
 
 typedef struct {
-       void *key;
-       void *value;
+       GCObject *key;
+       GCObject *value;
 } Ephemeron;
 
 static EphemeronLinkNode *ephemeron_list;
@@ -594,17 +594,16 @@ sgen_client_clear_unreachable_ephemerons (ScanCopyContext ctx)
        CopyOrMarkObjectFunc copy_func = ctx.ops->copy_or_mark_object;
        SgenGrayQueue *queue = ctx.queue;
        EphemeronLinkNode *current = ephemeron_list, *prev = NULL;
-       MonoArray *array;
        Ephemeron *cur, *array_end;
-       char *tombstone;
+       GCObject *tombstone;
 
        while (current) {
-               char *object = current->array;
+               MonoArray *array = current->array;
 
-               if (!sgen_is_object_alive_for_current_gen (object)) {
+               if (!sgen_is_object_alive_for_current_gen ((GCObject*)array)) {
                        EphemeronLinkNode *tmp = current;
 
-                       SGEN_LOG (5, "Dead Ephemeron array at %p", object);
+                       SGEN_LOG (5, "Dead Ephemeron array at %p", array);
 
                        if (prev)
                                prev->next = current->next;
@@ -617,18 +616,17 @@ sgen_client_clear_unreachable_ephemerons (ScanCopyContext ctx)
                        continue;
                }
 
-               copy_func ((void**)&object, queue);
-               current->array = object;
+               copy_func ((GCObject**)&array, queue);
+               current->array = array;
 
-               SGEN_LOG (5, "Clearing unreachable entries for ephemeron array at %p", object);
+               SGEN_LOG (5, "Clearing unreachable entries for ephemeron array at %p", array);
 
-               array = (MonoArray*)object;
                cur = mono_array_addr (array, Ephemeron, 0);
                array_end = cur + mono_array_length_fast (array);
-               tombstone = (char*)((MonoVTable*)SGEN_LOAD_VTABLE (object))->domain->ephemeron_tombstone;
+               tombstone = SGEN_LOAD_VTABLE ((GCObject*)array)->domain->ephemeron_tombstone;
 
                for (; cur < array_end; ++cur) {
-                       char *key = (char*)cur->key;
+                       GCObject *key = cur->key;
 
                        if (!key || key == tombstone)
                                continue;
@@ -660,29 +658,27 @@ sgen_client_mark_ephemerons (ScanCopyContext ctx)
        SgenGrayQueue *queue = ctx.queue;
        gboolean nothing_marked = TRUE;
        EphemeronLinkNode *current = ephemeron_list;
-       MonoArray *array;
        Ephemeron *cur, *array_end;
-       char *tombstone;
+       GCObject *tombstone;
 
        for (current = ephemeron_list; current; current = current->next) {
-               char *object = current->array;
-               SGEN_LOG (5, "Ephemeron array at %p", object);
+               MonoArray *array = current->array;
+               SGEN_LOG (5, "Ephemeron array at %p", array);
 
                /*It has to be alive*/
-               if (!sgen_is_object_alive_for_current_gen (object)) {
+               if (!sgen_is_object_alive_for_current_gen ((GCObject*)array)) {
                        SGEN_LOG (5, "\tnot reachable");
                        continue;
                }
 
-               copy_func ((void**)&object, queue);
+               copy_func ((GCObject**)&array, queue);
 
-               array = (MonoArray*)object;
                cur = mono_array_addr (array, Ephemeron, 0);
                array_end = cur + mono_array_length_fast (array);
-               tombstone = (char*)((MonoVTable*)SGEN_LOAD_VTABLE (object))->domain->ephemeron_tombstone;
+               tombstone = SGEN_LOAD_VTABLE ((GCObject*)array)->domain->ephemeron_tombstone;
 
                for (; cur < array_end; ++cur) {
-                       char *key = cur->key;
+                       GCObject *key = cur->key;
 
                        if (!key || key == tombstone)
                                continue;
@@ -692,13 +688,13 @@ sgen_client_mark_ephemerons (ScanCopyContext ctx)
                                cur->value, cur->value && sgen_is_object_alive_for_current_gen (cur->value) ? "reachable" : "unreachable");
 
                        if (sgen_is_object_alive_for_current_gen (key)) {
-                               char *value = cur->value;
+                               GCObject *value = cur->value;
 
-                               copy_func ((void**)&cur->key, queue);
+                               copy_func (&cur->key, queue);
                                if (value) {
                                        if (!sgen_is_object_alive_for_current_gen (value))
                                                nothing_marked = FALSE;
-                                       copy_func ((void**)&cur->value, queue);
+                                       copy_func (&cur->value, queue);
                                }
                        }
                }
@@ -720,7 +716,7 @@ mono_gc_ephemeron_array_add (MonoObject *obj)
                UNLOCK_GC;
                return FALSE;
        }
-       node->array = (char*)obj;
+       node->array = (MonoArray*)obj;
        node->next = ephemeron_list;
        ephemeron_list = node;
 
@@ -747,7 +743,7 @@ mono_gc_set_current_thread_appdomain (MonoDomain *domain)
 }
 
 static gboolean
-need_remove_object_for_domain (char *start, MonoDomain *domain)
+need_remove_object_for_domain (GCObject *start, MonoDomain *domain)
 {
        if (mono_object_domain (start) == domain) {
                SGEN_LOG (4, "Need to cleanup object %p", start);
@@ -758,9 +754,9 @@ need_remove_object_for_domain (char *start, MonoDomain *domain)
 }
 
 static void
-process_object_for_domain_clearing (char *start, MonoDomain *domain)
+process_object_for_domain_clearing (GCObject *start, MonoDomain *domain)
 {
-       MonoVTable *vt = (MonoVTable*)SGEN_LOAD_VTABLE (start);
+       MonoVTable *vt = SGEN_LOAD_VTABLE (start);
        if (vt->klass == mono_defaults.internal_thread_class)
                g_assert (mono_object_domain (start) == mono_get_root_domain ());
        /* The object could be a proxy for an object in the domain
@@ -780,15 +776,15 @@ process_object_for_domain_clearing (char *start, MonoDomain *domain)
 }
 
 static gboolean
-clear_domain_process_object (char *obj, MonoDomain *domain)
+clear_domain_process_object (GCObject *obj, MonoDomain *domain)
 {
        gboolean remove;
 
        process_object_for_domain_clearing (obj, domain);
        remove = need_remove_object_for_domain (obj, domain);
 
-       if (remove && ((MonoObject*)obj)->synchronisation) {
-               void **dislink = mono_monitor_get_object_monitor_weak_link ((MonoObject*)obj);
+       if (remove && obj->synchronisation) {
+               void **dislink = mono_monitor_get_object_monitor_weak_link (obj);
                if (dislink)
                        sgen_register_disappearing_link (NULL, dislink, FALSE, TRUE);
        }
@@ -797,7 +793,7 @@ clear_domain_process_object (char *obj, MonoDomain *domain)
 }
 
 static void
-clear_domain_process_minor_object_callback (char *obj, size_t size, MonoDomain *domain)
+clear_domain_process_minor_object_callback (GCObject *obj, size_t size, MonoDomain *domain)
 {
        if (clear_domain_process_object (obj, domain)) {
                CANARIFY_SIZE (size);
@@ -806,20 +802,20 @@ clear_domain_process_minor_object_callback (char *obj, size_t size, MonoDomain *
 }
 
 static void
-clear_domain_process_major_object_callback (char *obj, size_t size, MonoDomain *domain)
+clear_domain_process_major_object_callback (GCObject *obj, size_t size, MonoDomain *domain)
 {
        clear_domain_process_object (obj, domain);
 }
 
 static void
-clear_domain_free_major_non_pinned_object_callback (char *obj, size_t size, MonoDomain *domain)
+clear_domain_free_major_non_pinned_object_callback (GCObject *obj, size_t size, MonoDomain *domain)
 {
        if (need_remove_object_for_domain (obj, domain))
                major_collector.free_non_pinned_object (obj, size);
 }
 
 static void
-clear_domain_free_major_pinned_object_callback (char *obj, size_t size, MonoDomain *domain)
+clear_domain_free_major_pinned_object_callback (GCObject *obj, size_t size, MonoDomain *domain)
 {
        if (need_remove_object_for_domain (obj, domain))
                major_collector.free_pinned_object (obj, size);
@@ -874,7 +870,7 @@ mono_gc_clear_domain (MonoDomain * domain)
                sgen_remove_finalizers_if (object_in_domain_predicate, domain, i);
 
        sgen_scan_area_with_callback (nursery_section->data, nursery_section->end_data,
-                       (IterateObjectCallbackFunc)clear_domain_process_minor_object_callback, domain, FALSE);
+                       (IterateObjectCallbackFunc)clear_domain_process_minor_object_callback, domain, FALSE, TRUE);
 
        /* We need two passes over major and large objects because
           freeing such objects might give their memory back to the OS
@@ -885,11 +881,11 @@ mono_gc_clear_domain (MonoDomain * domain)
           the first object is a proxy. */
        major_collector.iterate_objects (ITERATE_OBJECTS_SWEEP_ALL, (IterateObjectCallbackFunc)clear_domain_process_major_object_callback, domain);
        for (bigobj = los_object_list; bigobj; bigobj = bigobj->next)
-               clear_domain_process_object (bigobj->data, domain);
+               clear_domain_process_object ((GCObject*)bigobj->data, domain);
 
        prev = NULL;
        for (bigobj = los_object_list; bigobj;) {
-               if (need_remove_object_for_domain (bigobj->data, domain)) {
+               if (need_remove_object_for_domain ((GCObject*)bigobj->data, domain)) {
                        LOSObject *to_free = bigobj;
                        if (prev)
                                prev->next = bigobj->next;
@@ -968,7 +964,7 @@ mono_gc_alloc_mature (MonoVTable *vtable)
 }
 
 void*
-mono_gc_alloc_fixed (size_t size, void *descr)
+mono_gc_alloc_fixed (size_t size, MonoGCDescriptor descr)
 {
        /* FIXME: do a single allocation */
        void *res = calloc (1, size);
@@ -1014,7 +1010,7 @@ static gboolean use_managed_allocator = TRUE;
 
 #else
 
-#if defined(__APPLE__) || defined (HOST_WIN32)
+#if defined(TARGET_OSX) || defined(TARGET_WIN32) || defined(TARGET_ANDROID) || defined(TARGET_IOS)
 #define EMIT_TLS_ACCESS_NEXT_ADDR(mb)  do {    \
        mono_mb_emit_byte ((mb), MONO_CUSTOM_PREFIX);   \
        mono_mb_emit_byte ((mb), CEE_MONO_TLS);         \
@@ -1385,7 +1381,9 @@ create_allocator (int atype, gboolean slowpath)
 
        res = mono_mb_create_method (mb, csig, 8);
        mono_mb_free (mb);
+#ifndef DISABLE_JIT
        mono_method_get_header (res)->init_locals = FALSE;
+#endif
 
        info = mono_image_alloc0 (mono_defaults.corlib, sizeof (AllocatorWrapperInfo));
        info->gc_name = "sgen";
@@ -1590,19 +1588,19 @@ find_next_card (guint8 *card_data, guint8 *end)
 #define ARRAY_OBJ_INDEX(ptr,array,elem_size) (((char*)(ptr) - ((char*)(array) + G_STRUCT_OFFSET (MonoArray, vector))) / (elem_size))
 
 gboolean
-sgen_client_cardtable_scan_object (char *obj, mword block_obj_size, guint8 *cards, gboolean mod_union, ScanCopyContext ctx)
+sgen_client_cardtable_scan_object (GCObject *obj, mword block_obj_size, guint8 *cards, gboolean mod_union, ScanCopyContext ctx)
 {
-       MonoVTable *vt = (MonoVTable*)SGEN_LOAD_VTABLE (obj);
+       MonoVTable *vt = SGEN_LOAD_VTABLE (obj);
        MonoClass *klass = vt->klass;
 
-       SGEN_ASSERT (0, SGEN_VTABLE_HAS_REFERENCES ((GCVTable*)vt), "Why would we ever call this on reference-free objects?");
+       SGEN_ASSERT (0, SGEN_VTABLE_HAS_REFERENCES (vt), "Why would we ever call this on reference-free objects?");
 
        if (vt->rank) {
                guint8 *card_data, *card_base;
                guint8 *card_data_end;
                char *obj_start = sgen_card_table_align_pointer (obj);
-               mword obj_size = sgen_client_par_object_get_size (vt, (GCObject*)obj);
-               char *obj_end = obj + obj_size;
+               mword obj_size = sgen_client_par_object_get_size (vt, obj);
+               char *obj_end = (char*)obj + obj_size;
                size_t card_count;
                size_t extra_idx = 0;
 
@@ -1675,7 +1673,7 @@ LOOP_HEAD:
                                        gpointer new, old = *(gpointer*)elem;
                                        if ((mod_union && old) || G_UNLIKELY (sgen_ptr_in_nursery (old))) {
                                                HEAVY_STAT (++los_array_remsets);
-                                               copy_func ((void**)elem, ctx.queue);
+                                               copy_func ((GCObject**)elem, ctx.queue);
                                                new = *(gpointer*)elem;
                                                if (G_UNLIKELY (sgen_ptr_in_nursery (new)))
                                                        sgen_add_to_global_remset (elem, new);
@@ -1716,7 +1714,7 @@ mono_gc_alloc_vector (MonoVTable *vtable, size_t size, uintptr_t max_length)
 
 #ifndef DISABLE_CRITICAL_REGION
        ENTER_CRITICAL_REGION;
-       arr = sgen_try_alloc_obj_nolock ((GCVTable*)vtable, size);
+       arr = (MonoArray*)sgen_try_alloc_obj_nolock (vtable, size);
        if (arr) {
                /*This doesn't require fencing since EXIT_CRITICAL_REGION already does it for us*/
                arr->max_length = (mono_array_size_t)max_length;
@@ -1728,7 +1726,7 @@ mono_gc_alloc_vector (MonoVTable *vtable, size_t size, uintptr_t max_length)
 
        LOCK_GC;
 
-       arr = sgen_alloc_obj_nolock ((GCVTable*)vtable, size);
+       arr = (MonoArray*)sgen_alloc_obj_nolock (vtable, size);
        if (G_UNLIKELY (!arr)) {
                UNLOCK_GC;
                return mono_gc_out_of_memory (size);
@@ -1742,7 +1740,7 @@ mono_gc_alloc_vector (MonoVTable *vtable, size_t size, uintptr_t max_length)
        if (G_UNLIKELY (alloc_events))
                mono_profiler_allocation (&arr->obj);
 
-       SGEN_ASSERT (6, SGEN_ALIGN_UP (size) == SGEN_ALIGN_UP (sgen_client_par_object_get_size ((GCVTable*)vtable, (GCObject*)arr)), "Vector has incorrect size.");
+       SGEN_ASSERT (6, SGEN_ALIGN_UP (size) == SGEN_ALIGN_UP (sgen_client_par_object_get_size (vtable, (GCObject*)arr)), "Vector has incorrect size.");
        return arr;
 }
 
@@ -1758,7 +1756,7 @@ mono_gc_alloc_array (MonoVTable *vtable, size_t size, uintptr_t max_length, uint
 
 #ifndef DISABLE_CRITICAL_REGION
        ENTER_CRITICAL_REGION;
-       arr = sgen_try_alloc_obj_nolock ((GCVTable*)vtable, size);
+       arr = (MonoArray*)sgen_try_alloc_obj_nolock (vtable, size);
        if (arr) {
                /*This doesn't require fencing since EXIT_CRITICAL_REGION already does it for us*/
                arr->max_length = (mono_array_size_t)max_length;
@@ -1773,7 +1771,7 @@ mono_gc_alloc_array (MonoVTable *vtable, size_t size, uintptr_t max_length, uint
 
        LOCK_GC;
 
-       arr = sgen_alloc_obj_nolock ((GCVTable*)vtable, size);
+       arr = (MonoArray*)sgen_alloc_obj_nolock (vtable, size);
        if (G_UNLIKELY (!arr)) {
                UNLOCK_GC;
                return mono_gc_out_of_memory (size);
@@ -1790,7 +1788,7 @@ mono_gc_alloc_array (MonoVTable *vtable, size_t size, uintptr_t max_length, uint
        if (G_UNLIKELY (alloc_events))
                mono_profiler_allocation (&arr->obj);
 
-       SGEN_ASSERT (6, SGEN_ALIGN_UP (size) == SGEN_ALIGN_UP (sgen_client_par_object_get_size ((GCVTable*)vtable, (GCObject*)arr)), "Array has incorrect size.");
+       SGEN_ASSERT (6, SGEN_ALIGN_UP (size) == SGEN_ALIGN_UP (sgen_client_par_object_get_size (vtable, (GCObject*)arr)), "Array has incorrect size.");
        return arr;
 }
 
@@ -1805,7 +1803,7 @@ mono_gc_alloc_string (MonoVTable *vtable, size_t size, gint32 len)
 
 #ifndef DISABLE_CRITICAL_REGION
        ENTER_CRITICAL_REGION;
-       str = sgen_try_alloc_obj_nolock ((GCVTable*)vtable, size);
+       str = (MonoString*)sgen_try_alloc_obj_nolock (vtable, size);
        if (str) {
                /*This doesn't require fencing since EXIT_CRITICAL_REGION already does it for us*/
                str->length = len;
@@ -1817,7 +1815,7 @@ mono_gc_alloc_string (MonoVTable *vtable, size_t size, gint32 len)
 
        LOCK_GC;
 
-       str = sgen_alloc_obj_nolock ((GCVTable*)vtable, size);
+       str = (MonoString*)sgen_alloc_obj_nolock (vtable, size);
        if (G_UNLIKELY (!str)) {
                UNLOCK_GC;
                return mono_gc_out_of_memory (size);
@@ -1847,7 +1845,7 @@ mono_gc_set_string_length (MonoString *str, gint32 new_length)
         * the space to be reclaimed by SGen. */
 
        if (nursery_canaries_enabled () && sgen_ptr_in_nursery (str)) {
-               CHECK_CANARY_FOR_OBJECT (str);
+               CHECK_CANARY_FOR_OBJECT ((GCObject*)str, TRUE);
                memset (new_end, 0, (str->length - new_length + 1) * sizeof (mono_unichar2) + CANARY_SIZE);
                memcpy (new_end + 1 , CANARY_STRING, CANARY_SIZE);
        } else {
@@ -1885,7 +1883,7 @@ add_profile_gc_root (GCRootReport *report, void *object, int rtype, uintptr_t ex
                notify_gc_roots (report);
        report->objects [report->count] = object;
        report->root_types [report->count] = rtype;
-       report->extra_info [report->count++] = (uintptr_t)((MonoVTable*)SGEN_LOAD_VTABLE (object))->klass;
+       report->extra_info [report->count++] = (uintptr_t)SGEN_LOAD_VTABLE (object)->klass;
 }
 
 void
@@ -1927,7 +1925,7 @@ report_finalizer_roots (SgenPointerQueue *fin_ready_queue, SgenPointerQueue *cri
 static GCRootReport *root_report;
 
 static void
-single_arg_report_root (void **obj, void *gc_data)
+single_arg_report_root (MonoObject **obj, void *gc_data)
 {
        if (*obj)
                add_profile_gc_root (root_report, *obj, MONO_PROFILE_GC_ROOT_OTHER, 0);
@@ -1967,9 +1965,9 @@ precisely_report_roots_from (GCRootReport *report, void** start_root, void** end
                break;
        }
        case ROOT_DESC_USER: {
-               MonoGCRootMarkFunc marker = sgen_get_user_descriptor_func (desc);
+               MonoGCRootMarkFunc marker = (MonoGCRootMarkFunc)sgen_get_user_descriptor_func (desc);
                root_report = report;
-               marker (start_root, single_arg_report_root, NULL);
+               marker ((MonoObject**)start_root, single_arg_report_root, NULL);
                break;
        }
        case ROOT_DESC_RUN_LEN:
@@ -2020,10 +2018,10 @@ sgen_client_collecting_major_1 (void)
 }
 
 void
-sgen_client_pinned_los_object (char *obj)
+sgen_client_pinned_los_object (GCObject *obj)
 {
        if (profile_roots)
-               add_profile_gc_root (&major_root_report, obj, MONO_PROFILE_GC_ROOT_PINNING | MONO_PROFILE_GC_ROOT_MISC, 0);
+               add_profile_gc_root (&major_root_report, (char*)obj, MONO_PROFILE_GC_ROOT_PINNING | MONO_PROFILE_GC_ROOT_MISC, 0);
 }
 
 void
@@ -2098,22 +2096,23 @@ typedef struct {
        } while (0)
 
 static void
-collect_references (HeapWalkInfo *hwi, char *start, size_t size)
+collect_references (HeapWalkInfo *hwi, GCObject *obj, size_t size)
 {
-       mword desc = sgen_obj_get_descriptor (start);
+       char *start = (char*)obj;
+       mword desc = sgen_obj_get_descriptor (obj);
 
 #include "sgen/sgen-scan-object.h"
 }
 
 static void
-walk_references (char *start, size_t size, void *data)
+walk_references (GCObject *start, size_t size, void *data)
 {
        HeapWalkInfo *hwi = data;
        hwi->called = 0;
        hwi->count = 0;
        collect_references (hwi, start, size);
        if (hwi->count || !hwi->called)
-               hwi->callback ((MonoObject*)start, mono_object_class (start), hwi->called? 0: size, hwi->count, hwi->refs, hwi->offsets, hwi->data);
+               hwi->callback (start, mono_object_class (start), hwi->called? 0: size, hwi->count, hwi->refs, hwi->offsets, hwi->data);
 }
 
 /**
@@ -2145,7 +2144,7 @@ mono_gc_walk_heap (int flags, MonoGCReferences callback, void *data)
        hwi.data = data;
 
        sgen_clear_nursery_fragments ();
-       sgen_scan_area_with_callback (nursery_section->data, nursery_section->end_data, walk_references, &hwi, FALSE);
+       sgen_scan_area_with_callback (nursery_section->data, nursery_section->end_data, walk_references, &hwi, FALSE, TRUE);
 
        major_collector.iterate_objects (ITERATE_OBJECTS_SWEEP_ALL, walk_references, &hwi);
        sgen_los_iterate_objects (walk_references, &hwi);
@@ -2323,7 +2322,7 @@ void*
 mono_gc_scan_object (void *obj, void *gc_data)
 {
        ScanCopyContext *ctx = gc_data;
-       ctx->ops->copy_or_mark_object (&obj, ctx->queue);
+       ctx->ops->copy_or_mark_object ((GCObject**)&obj, ctx->queue);
        return obj;
 }
 
@@ -2405,13 +2404,13 @@ mono_gc_set_stack_end (void *stack_end)
  */
 
 int
-mono_gc_register_root (char *start, size_t size, void *descr)
+mono_gc_register_root (char *start, size_t size, MonoGCDescriptor descr)
 {
        return sgen_register_root (start, size, descr, descr ? ROOT_TYPE_NORMAL : ROOT_TYPE_PINNED);
 }
 
 int
-mono_gc_register_root_wbarrier (char *start, size_t size, void *descr)
+mono_gc_register_root_wbarrier (char *start, size_t size, MonoGCDescriptor descr)
 {
        return sgen_register_root (start, size, descr, ROOT_TYPE_WBARRIER);
 }
@@ -2541,16 +2540,16 @@ mono_gc_get_heap_size (void)
        return (int64_t)sgen_gc_get_total_heap_allocation ();
 }
 
-void*
+MonoGCDescriptor
 mono_gc_make_root_descr_user (MonoGCRootMarkFunc marker)
 {
        return sgen_make_user_root_descriptor (marker);
 }
 
-void*
+MonoGCDescriptor
 mono_gc_make_descr_for_string (gsize *bitmap, int numbits)
 {
-       return (void*)SGEN_DESC_STRING;
+       return SGEN_DESC_STRING;
 }
 
 void*
@@ -2707,23 +2706,20 @@ sgen_client_pre_collection_checks (void)
 }
 
 gboolean
-sgen_client_vtable_is_inited (GCVTable *gc_vtable)
+sgen_client_vtable_is_inited (MonoVTable *vt)
 {
-       MonoVTable *vt = (MonoVTable*)gc_vtable;
        return vt->klass->inited;
 }
 
 const char*
-sgen_client_vtable_get_namespace (GCVTable *gc_vtable)
+sgen_client_vtable_get_namespace (MonoVTable *vt)
 {
-       MonoVTable *vt = (MonoVTable*)gc_vtable;
        return vt->klass->name_space;
 }
 
 const char*
-sgen_client_vtable_get_name (GCVTable *gc_vtable)
+sgen_client_vtable_get_name (MonoVTable *vt)
 {
-       MonoVTable *vt = (MonoVTable*)gc_vtable;
        return vt->klass->name;
 }
 
@@ -2756,7 +2752,7 @@ sgen_client_init (void)
 
 #ifndef HAVE_KW_THREAD
        mono_native_tls_alloc (&thread_info_key, NULL);
-#if defined(__APPLE__) || defined (HOST_WIN32)
+#if defined(TARGET_OSX) || defined(TARGET_WIN32) || defined(TARGET_ANDROID) || defined(TARGET_IOS)
        /* 
         * CEE_MONO_TLS requires the tls offset, not the key, so the code below only works on darwin,
         * where the two are the same.
index 38997535e5e8190619825563aded2e78580cceda..c894b065bedb7fd513273d40edaf15945774d439 100644 (file)
@@ -664,7 +664,7 @@ dfs1 (HashEntry *obj_entry)
 
                        if (!obj_entry->v.dfs1.is_visited) {
                                int num_links = 0;
-                               mword desc = sgen_obj_get_descriptor_safe (start);
+                               mword desc = sgen_obj_get_descriptor_safe (obj);
 
                                obj_entry->v.dfs1.is_visited = 1;
 
@@ -932,7 +932,7 @@ dump_graph (void)
 
        fprintf (file, "<nodes>\n");
        SGEN_HASH_TABLE_FOREACH (&hash_table, obj, entry) {
-               MonoVTable *vt = (MonoVTable*) SGEN_LOAD_VTABLE (obj);
+               MonoVTable *vt = SGEN_LOAD_VTABLE (obj);
                fprintf (file, "<node id=\"%p\"><attvalues><attvalue for=\"0\" value=\"%s.%s\"/><attvalue for=\"1\" value=\"%s\"/></attvalues></node>\n",
                                obj, vt->klass->name_space, vt->klass->name, entry->is_bridge ? "true" : "false");
        } SGEN_HASH_TABLE_FOREACH_END;
@@ -1201,7 +1201,7 @@ processing_build_callback_data (int generation)
                        HashEntryWithAccounting *entry = (HashEntryWithAccounting*)all_entries [i];
                        if (entry->entry.is_bridge) {
                                MonoObject *obj = sgen_hash_table_key_for_value_pointer (entry);
-                               MonoClass *klass = ((MonoVTable*)SGEN_LOAD_VTABLE (obj))->klass;
+                               MonoClass *klass = SGEN_LOAD_VTABLE (obj)->klass;
                                mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "OBJECT %s::%s (%p) weight %f", klass->name_space, klass->name, obj, entry->weight);
                        }
                }
@@ -1325,7 +1325,7 @@ processing_after_callback (int generation)
        if (bridge_accounting_enabled) {
                for (i = 0; i < num_sccs; ++i) {
                        for (j = 0; j < api_sccs [i]->num_objs; ++j) {
-                               GCVTable *vtable = SGEN_LOAD_VTABLE (api_sccs [i]->objs [j]);
+                               GCVTable vtable = SGEN_LOAD_VTABLE (api_sccs [i]->objs [j]);
                                mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC,
                                        "OBJECT %s (%p) SCC [%d] %s",
                                                sgen_client_vtable_get_namespace (vtable), sgen_client_vtable_get_name (vtable), api_sccs [i]->objs [j],
index 2cef968485d4b0c88cc3488fab635ff2c9b73e57..581bb67d3a2adc38837c72c001293dfc75a3a321 100644 (file)
@@ -514,17 +514,16 @@ dfs1 (HashEntry *obj_entry)
 
        do {
                GCObject *obj;
-               char *start;
                ++dfs1_passes;
 
                obj_entry = dyn_array_ptr_pop (&dfs_stack);
                if (obj_entry) {
+                       char *start;
                        mword desc;
                        src = dyn_array_ptr_pop (&dfs_stack);
 
                        obj = obj_entry->obj;
-                       start = (char*)obj;
-                       desc = sgen_obj_get_descriptor_safe (start);
+                       desc = sgen_obj_get_descriptor_safe (obj);
 
                        if (src) {
                                //g_print ("link %s -> %s\n", sgen_safe_name (src->obj), sgen_safe_name (obj));
@@ -542,6 +541,7 @@ dfs1 (HashEntry *obj_entry)
                        /* NULL marks that the next entry is to be finished */
                        dyn_array_ptr_push (&dfs_stack, NULL);
 
+                       start = (char*)obj;
 #include "sgen/sgen-scan-object.h"
                } else {
                        obj_entry = dyn_array_ptr_pop (&dfs_stack);
@@ -765,7 +765,7 @@ processing_build_callback_data (int generation)
                for (i = 0; i < hash_table.num_entries; ++i) {
                        HashEntryWithAccounting *entry = (HashEntryWithAccounting*)all_entries [i];
                        if (entry->entry.is_bridge) {
-                               MonoClass *klass = ((MonoVTable*)SGEN_LOAD_VTABLE (entry->entry.obj))->klass;
+                               MonoClass *klass = SGEN_LOAD_VTABLE (entry->entry.obj)->klass;
                                mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "OBJECT %s::%s (%p) weight %f", klass->name_space, klass->name, entry->entry.obj, entry->weight);
                        }
                }
@@ -884,7 +884,7 @@ processing_after_callback (int generation)
        if (bridge_accounting_enabled) {
                for (i = 0; i < num_sccs; ++i) {
                        for (j = 0; j < api_sccs [i]->num_objs; ++j) {
-                               GCVTable *vtable = SGEN_LOAD_VTABLE (api_sccs [i]->objs [j]);
+                               GCVTable vtable = SGEN_LOAD_VTABLE (api_sccs [i]->objs [j]);
                                mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC,
                                        "OBJECT %s.%s (%p) SCC [%d] %s",
                                                sgen_client_vtable_get_namespace (vtable), sgen_client_vtable_get_name (vtable), api_sccs [i]->objs [j],
diff --git a/mono/metadata/sgen-os-coop.c b/mono/metadata/sgen-os-coop.c
new file mode 100644 (file)
index 0000000..165c0d4
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * sgen-os-coop.c: SGen Cooperative backend support.
+ *
+ * Author:
+ *     João Matos (joao.matos@xamarin.com)
+ * Copyright (C) 2015 Xamarin Inc
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License 2.0 as published by the Free Software Foundation;
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License 2.0 along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include "config.h"
+#ifdef HAVE_SGEN_GC
+
+
+#include <glib.h>
+#include "sgen/sgen-gc.h"
+#include "sgen/sgen-archdep.h"
+#include "sgen/sgen-protocol.h"
+#include "metadata/object-internals.h"
+#include "metadata/gc-internal.h"
+
+
+#if defined(USE_COOP_GC)
+
+gboolean
+sgen_resume_thread (SgenThreadInfo *info)
+{
+       g_error ("FIXME");
+       return FALSE;
+}
+
+gboolean
+sgen_suspend_thread (SgenThreadInfo *info)
+{
+       g_error ("FIXME");
+       return FALSE;
+}
+
+void
+sgen_wait_for_suspend_ack (int count)
+{
+}
+
+/* LOCKING: assumes the GC lock is held */
+int
+sgen_thread_handshake (BOOL suspend)
+{
+       g_error ("FIXME");
+       return 0;
+}
+
+void
+sgen_os_init (void)
+{
+}
+
+int
+mono_gc_get_suspend_signal (void)
+{
+       return -1;
+}
+
+int
+mono_gc_get_restart_signal (void)
+{
+       return -1;
+}
+
+#endif
+#endif
\ No newline at end of file
index eee4d837d3f728e4441833faec69aaa647b7396c..46d30d81c4d664f3386c040356e0e60f2023ae4d 100644 (file)
@@ -40,6 +40,8 @@
 #endif
 
 #if defined(__MACH__) && MONO_MACH_ARCH_SUPPORTED
+
+#if !defined(USE_COOP_GC)
 gboolean
 sgen_resume_thread (SgenThreadInfo *info)
 {
@@ -154,3 +156,4 @@ mono_gc_get_restart_signal (void)
 }
 #endif
 #endif
+#endif
index d0aa841296abca3ffc5e6da7ec0a5080bf7ccacb..a45d6be1d9c44c13c527d31cfa2f4eded804f868 100644 (file)
@@ -25,7 +25,7 @@
 
 #include "config.h"
 
-#ifdef HAVE_SGEN_GC
+#if defined(HAVE_SGEN_GC) && !defined(USE_COOP_GC)
 #if !defined(__MACH__) && !MONO_MACH_ARCH_SUPPORTED && defined(HAVE_PTHREAD_KILL)
 
 #include <errno.h>
index 270b091e0efdca8a45345d0a9d48f738c64647d9..9537c0710bee73f26bb018c8df30d9f349825e4d 100644 (file)
@@ -448,7 +448,7 @@ bridge_object_forward (GCObject *obj)
 static const char*
 safe_name_bridge (GCObject *obj)
 {
-       GCVTable *vt = (GCVTable*)SGEN_LOAD_VTABLE (obj);
+       GCVTable vt = SGEN_LOAD_VTABLE (obj);
        return vt->klass->name;
 }
 
@@ -591,7 +591,7 @@ register_bridge_object (GCObject *obj)
 static gboolean
 is_opaque_object (GCObject *obj)
 {
-       MonoVTable *vt = (MonoVTable*)SGEN_LOAD_VTABLE (obj);
+       MonoVTable *vt = SGEN_LOAD_VTABLE (obj);
        if ((vt->gc_bits & SGEN_GC_BIT_BRIDGE_OPAQUE_OBJECT) == SGEN_GC_BIT_BRIDGE_OPAQUE_OBJECT) {
                SGEN_LOG (6, "ignoring %s\n", vt->klass->name);
                ++ignored_objects;
@@ -658,7 +658,7 @@ push_all (ScanData *data)
 {
        GCObject *obj = data->obj;
        char *start = (char*)obj;
-       mword desc = sgen_obj_get_descriptor_safe (start);
+       mword desc = sgen_obj_get_descriptor_safe (obj);
 
 #if DUMP_GRAPH
        printf ("**scanning %p %s\n", obj, safe_name_bridge (obj));
@@ -710,7 +710,7 @@ compute_low (ScanData *data)
 {
        GCObject *obj = data->obj;
        char *start = (char*)obj;
-       mword desc = sgen_obj_get_descriptor_safe (start);
+       mword desc = sgen_obj_get_descriptor_safe (obj);
 
        #include "sgen/sgen-scan-object.h"
 }
index 94c11ddc0b612a5056ccb7ee5e74067930157885..66c746b0da3e9fb00c81b0949dc3c91f1eb331e8 100644 (file)
@@ -32,8 +32,8 @@
 
 /*only one of the two can be non null at a given time*/
 typedef struct {
-       void *strong_ref;
-       void *weak_ref;
+       GCObject *strong_ref;
+       GCObject *weak_ref;
 } MonoGCToggleRef;
 
 static MonoToggleRefStatus (*toggleref_callback) (MonoObject *obj);
@@ -101,8 +101,8 @@ void sgen_client_mark_togglerefs (char *start, char *end, ScanCopyContext ctx)
 
        for (i = 0; i < toggleref_array_size; ++i) {
                if (toggleref_array [i].strong_ref) {
-                       char *object = toggleref_array [i].strong_ref;
-                       if (object >= start && object < end) {
+                       GCObject *object = toggleref_array [i].strong_ref;
+                       if ((char*)object >= start && (char*)object < end) {
                                SGEN_LOG (6, "\tcopying strong slot %d", i);
                                copy_func (&toggleref_array [i].strong_ref, queue);
                        }
@@ -121,9 +121,9 @@ void sgen_client_clear_togglerefs (char *start, char *end, ScanCopyContext ctx)
 
        for (i = 0; i < toggleref_array_size; ++i) {
                if (toggleref_array [i].weak_ref) {
-                       char *object = toggleref_array [i].weak_ref;
+                       GCObject *object = toggleref_array [i].weak_ref;
 
-                       if (object >= start && object < end) {
+                       if ((char*)object >= start && (char*)object < end) {
                                if (sgen_gc_is_object_ready_for_finalization (object)) {
                                        SGEN_LOG (6, "\tcleaning weak slot %d", i);
                                        toggleref_array [i].weak_ref = NULL; /* We defer compaction to only happen on the callback step. */
index fb9dd8664deaa702a0d7d99064a8d5024679ef46..475d8321378203b1ef83c3482f998149b2b6efba 100644 (file)
 #include <mono/metadata/file-io.h>
 #include <mono/metadata/threads.h>
 #include <mono/metadata/threads-types.h>
+#include <mono/metadata/threadpool-ms-io.h>
 #include <mono/utils/mono-poll.h>
 /* FIXME change this code to not mess so much with the internals */
 #include <mono/metadata/class-internals.h>
-#include <mono/metadata/threadpool-internals.h>
 #include <mono/metadata/domain-internals.h>
 #include <mono/utils/mono-threads.h>
 #include <mono/utils/mono-memory-model.h>
@@ -668,7 +668,7 @@ static gint32 get_family_hint(void)
        }
 }
 
-gpointer ves_icall_System_Net_Sockets_Socket_Socket_internal(MonoObject *this, gint32 family, gint32 type, gint32 proto, gint32 *error)
+gpointer ves_icall_System_Net_Sockets_Socket_Socket_internal(MonoObject *this_obj, gint32 family, gint32 type, gint32 proto, gint32 *error)
 {
        SOCKET sock;
        gint32 sock_family;
@@ -718,7 +718,7 @@ void ves_icall_System_Net_Sockets_Socket_Close_internal(SOCKET sock,
 
        /* Clear any pending work item from this socket if the underlying
         * polling system does not notify when the socket is closed */
-       mono_thread_pool_remove_socket (GPOINTER_TO_INT (sock));
+       mono_threadpool_ms_io_remove_socket (GPOINTER_TO_INT (sock));
        closesocket(sock);
 }
 
@@ -773,7 +773,7 @@ gpointer ves_icall_System_Net_Sockets_Socket_Accept_internal(SOCKET sock,
 {
        SOCKET newsock;
        MonoInternalThread* curthread G_GNUC_UNUSED = mono_thread_internal_current ();
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        
        *error = 0;
 #ifdef HOST_WIN32
@@ -785,7 +785,7 @@ gpointer ves_icall_System_Net_Sockets_Socket_Accept_internal(SOCKET sock,
 #else
        newsock = _wapi_accept (sock, NULL, 0);
 #endif
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        if(newsock==INVALID_SOCKET) {
                *error = WSAGetLastError ();
@@ -976,9 +976,9 @@ extern MonoObject *ves_icall_System_Net_Sockets_Socket_LocalEndPoint_internal(SO
                return NULL;
        }
        sa = (salen <= 128) ? alloca (salen) : g_malloc0 (salen);
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        ret = _wapi_getsockname (sock, (struct sockaddr *)sa, &salen);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        
        if(ret==SOCKET_ERROR) {
                *error = WSAGetLastError ();
@@ -1011,9 +1011,9 @@ extern MonoObject *ves_icall_System_Net_Sockets_Socket_RemoteEndPoint_internal(S
        }
        sa = (salen <= 128) ? alloca (salen) : g_malloc0 (salen);
        /* Note: linux returns just 2 for AF_UNIX. Always. */
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        ret = _wapi_getpeername (sock, (struct sockaddr *)sa, &salen);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        if(ret==SOCKET_ERROR) {
                *error = WSAGetLastError ();
                if (salen > 128)
@@ -1254,9 +1254,9 @@ extern void ves_icall_System_Net_Sockets_Socket_Connect_internal(SOCKET sock, Mo
        
        LOGDEBUG (g_message("%s: connecting to %s port %d", __func__, inet_ntoa(((struct sockaddr_in *)sa)->sin_addr), ntohs (((struct sockaddr_in *)sa)->sin_port)));
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        ret = _wapi_connect (sock, sa, sa_size);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        if(ret==SOCKET_ERROR) {
                *error = WSAGetLastError ();
@@ -1288,7 +1288,7 @@ extern void ves_icall_System_Net_Sockets_Socket_Disconnect_internal(SOCKET sock,
        LPFN_DISCONNECTEX _wapi_disconnectex = NULL;
        LPFN_TRANSMITFILE _wapi_transmitfile = NULL;
        gboolean bret;
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        
        *error = 0;
        
@@ -1340,7 +1340,7 @@ extern void ves_icall_System_Net_Sockets_Socket_Disconnect_internal(SOCKET sock,
                *error = WSAGetLastError ();
        }
 
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 }
 
 gint32 ves_icall_System_Net_Sockets_Socket_Receive_internal(SOCKET sock, MonoArray *buffer, gint32 offset, gint32 count, gint32 flags, gint32 *error)
@@ -1366,7 +1366,7 @@ gint32 ves_icall_System_Net_Sockets_Socket_Receive_internal(SOCKET sock, MonoArr
                return (0);
        }
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
 #ifdef HOST_WIN32
        {
                curthread->interrupt_on_stop = (gpointer)TRUE;
@@ -1376,7 +1376,7 @@ gint32 ves_icall_System_Net_Sockets_Socket_Receive_internal(SOCKET sock, MonoArr
 #else
        ret = _wapi_recv (sock, buf, count, recvflags);
 #endif
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        if(ret==SOCKET_ERROR) {
                *error = WSAGetLastError ();
@@ -1442,9 +1442,9 @@ gint32 ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal(SOCKET sock, Mon
                return (0);
        }
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        ret = _wapi_recvfrom (sock, buf, count, recvflags, sa, &sa_size);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        if(ret==SOCKET_ERROR) {
                g_free(sa);
@@ -1492,9 +1492,9 @@ gint32 ves_icall_System_Net_Sockets_Socket_Send_internal(SOCKET sock, MonoArray
                return (0);
        }
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        ret = _wapi_send (sock, buf, count, sendflags);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        if(ret==SOCKET_ERROR) {
                *error = WSAGetLastError ();
                return(0);
@@ -1563,9 +1563,9 @@ gint32 ves_icall_System_Net_Sockets_Socket_SendTo_internal(SOCKET sock, MonoArra
                return (0);
        }
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        ret = _wapi_sendto (sock, buf, count, sendflags, sa, sa_size);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        if(ret==SOCKET_ERROR) {
                *error = WSAGetLastError ();
        }
@@ -2189,19 +2189,18 @@ void ves_icall_System_Net_Sockets_Socket_Shutdown_internal(SOCKET sock,
                                                           gint32 *error)
 {
        int ret;
-       MONO_PREPARE_BLOCKING
 
        *error = 0;
        
        /* Currently, the values for how (recv=0, send=1, both=2) match
         * the BSD API
         */
+       MONO_PREPARE_BLOCKING;
        ret = _wapi_shutdown (sock, how);
+       MONO_FINISH_BLOCKING;
        if(ret==SOCKET_ERROR) {
                *error = WSAGetLastError ();
        }
-
-       MONO_FINISH_BLOCKING
 }
 
 gint
@@ -2381,12 +2380,11 @@ MonoBoolean ves_icall_System_Net_Dns_GetHostByName_internal(MonoString *host, Mo
        char *hostname = mono_string_to_utf8 (host);
        int hint = get_addrinfo_family_hint ();
 
-       MONO_PREPARE_BLOCKING
-
        if (*hostname == '\0') {
                add_local_ips = TRUE;
                *h_name = host;
        }
+       MONO_PREPARE_BLOCKING;
        if (!add_local_ips && gethostname (this_hostname, sizeof (this_hostname)) != -1) {
                if (!strcmp (hostname, this_hostname)) {
                        add_local_ips = TRUE;
@@ -2398,7 +2396,7 @@ MonoBoolean ves_icall_System_Net_Dns_GetHostByName_internal(MonoString *host, Mo
                add_info_ok = FALSE;
 
        g_free(hostname);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        if (add_info_ok)
                return addrinfo_to_IPHostEntry(info, h_name, h_aliases, h_addr_list, add_local_ips);
@@ -2417,8 +2415,6 @@ extern MonoBoolean ves_icall_System_Net_Dns_GetHostByAddr_internal(MonoString *a
        int hint = get_addrinfo_family_hint ();
        gboolean add_info_ok;
 
-       MONO_PREPARE_BLOCKING
-
        address = mono_string_to_utf8 (addr);
 
        if (inet_pton (AF_INET, address, &saddr.sin_addr ) <= 0) {
@@ -2438,6 +2434,8 @@ extern MonoBoolean ves_icall_System_Net_Dns_GetHostByAddr_internal(MonoString *a
        }
        g_free(address);
 
+       MONO_PREPARE_BLOCKING;
+
        if(family == AF_INET) {
 #if HAVE_SOCKADDR_IN_SIN_LEN
                saddr.sin_len = sizeof (saddr);
@@ -2459,7 +2457,7 @@ extern MonoBoolean ves_icall_System_Net_Dns_GetHostByAddr_internal(MonoString *a
        }
 
        add_info_ok = !mono_get_address_info (hostname, 0, hint | MONO_HINT_CANONICAL_NAME | MONO_HINT_CONFIGURED_ONLY, &info);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        if (add_info_ok)
                return addrinfo_to_IPHostEntry (info, h_name, h_aliases, h_addr_list, FALSE);
index de24fcb0fa51d5c40bc1b613658527350e7653ed..47cbcfd599f3281305c628b8e82f994c2dd3bb02 100644 (file)
  *
  * Author:
  *     Mono Project (http://www.mono-project.com)
+ *     Ludovic Henry (ludovic@xamarin.com)
  *
  * Copyright 2001-2003 Ximian, Inc (http://www.ximian.com)
  * Copyright 2004-2009 Novell, Inc (http://www.novell.com)
+ * Copyright 2015 Xamarin, Inc (https://www.xamarin.com)
  */
+
+//
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+//
+// Files:
+//  - src/classlibnative/float/floatnative.cpp
+//  - src/pal/src/cruntime/floatnative.cpp
+//
+// Ported from C++ to C and adjusted to Mono runtime
+
 #define __USE_ISOC99
+
 #include <math.h>
 #include <mono/metadata/sysmath.h>
-#include <mono/metadata/exception.h>
-
-#ifndef NAN
-# if G_BYTE_ORDER == G_BIG_ENDIAN
-#  define __nan_bytes           { 0x7f, 0xc0, 0, 0 }
-# endif
-# if G_BYTE_ORDER == G_LITTLE_ENDIAN
-#  define __nan_bytes           { 0, 0, 0xc0, 0x7f }
-# endif
-
-static union { unsigned char __c[4]; float __d; } __nan_union = { __nan_bytes };
-# define NAN    (__nan_union.__d)
-#endif
-
-#ifndef HUGE_VAL
-#define __huge_val_t   union { unsigned char __c[8]; double __d; }
-# if G_BYTE_ORDER == G_BIG_ENDIAN
-#  define __HUGE_VAL_bytes       { 0x7f, 0xf0, 0, 0, 0, 0, 0, 0 }
-# endif
-# if G_BYTE_ORDER == G_LITTLE_ENDIAN
-#  define __HUGE_VAL_bytes       { 0, 0, 0, 0, 0, 0, 0xf0, 0x7f }
-# endif
-static __huge_val_t __huge_val = { __HUGE_VAL_bytes };
-#  define HUGE_VAL      (__huge_val.__d)
-#endif
-
-
-gdouble ves_icall_System_Math_Floor (gdouble x) {
+
+#include "number-ms.h"
+#include "utils/mono-compiler.h"
+
+static const MonoDouble_double NaN = { .s = { .sign = 0x0, .exp = 0x7FF, .mantHi = 0x80000, .mantLo = 0x0 } };
+
+/* +Infinity */
+static const MonoDouble_double PInfinity = { .s = { .sign = 0x0, .exp = 0x7FF, .mantHi = 0x0, .mantLo = 0x0 } };
+
+/* -Infinity */
+static const MonoDouble_double MInfinity = { .s = { .sign = 0x1, .exp = 0x7FF, .mantHi = 0x0, .mantLo = 0x0 } };
+
+/* +1 */
+static const MonoDouble_double POne = { .s = { .sign = 0x0, .exp = 0x3FF, .mantHi = 0x0, .mantLo = 0x0 } };
+
+/* -1 */
+static const MonoDouble_double MOne = { .s = { .sign = 0x1, .exp = 0x3FF, .mantHi = 0x0, .mantLo = 0x0 } };
+
+static MONO_ALWAYS_INLINE gboolean
+isplusinfinity (gdouble d)
+{
+       return d == PInfinity.d;
+}
+
+static MONO_ALWAYS_INLINE gboolean
+isminusinfinity (gdouble d)
+{
+       return d == MInfinity.d;
+}
+
+static MONO_ALWAYS_INLINE gboolean
+isinfinity (gdouble d)
+{
+       return isplusinfinity (d) || isminusinfinity (d);
+}
+
+static MONO_ALWAYS_INLINE gboolean
+isplusone (gdouble d)
+{
+       return d == POne.d;
+}
+
+static MONO_ALWAYS_INLINE gboolean
+isminusone (gdouble d)
+{
+       return d == MOne.d;
+}
+
+gdouble
+ves_icall_System_Math_Floor (gdouble x)
+{
        return floor(x);
 }
 
-gdouble ves_icall_System_Math_Round (gdouble x) {
-       double int_part, dec_part;
+gdouble
+ves_icall_System_Math_Round (gdouble x)
+{
+       gdouble tmp, floor_tmp;
 
-       int_part = floor(x);
-       dec_part = x - int_part;
-       if (((dec_part == 0.5) &&
-               ((2.0 * ((int_part / 2.0) - floor(int_part / 2.0))) != 0.0)) ||
-               (dec_part > 0.5)) {
-               int_part++;
+       /* If the number has no fractional part do nothing This shortcut is necessary
+        * to workaround precision loss in borderline cases on some platforms */
+       if (x == (gdouble)(gint64) x)
+               return x;
+
+       tmp = x + 0.5;
+       floor_tmp = floor (tmp);
+
+       if (floor_tmp == tmp) {
+               if (fmod (tmp, 2.0) != 0)
+                       floor_tmp -= 1.0;
        }
-       return int_part;
-}
-
-gdouble ves_icall_System_Math_Round2 (gdouble value, gint32 digits, gboolean away_from_zero) {
-#if !defined (HAVE_ROUND) || !defined (HAVE_RINT)
-       double int_part, dec_part;
-#endif
-       double p;
-
-       if (value == HUGE_VAL)
-               return HUGE_VAL;
-       if (value == -HUGE_VAL)
-               return -HUGE_VAL;
-       p = pow(10, digits);
-#if defined (HAVE_ROUND) && defined (HAVE_RINT)
-       if (away_from_zero)
-               return round (value * p) / p;
-       else
-               return rint (value * p) / p;
-#else
-       dec_part = modf (value, &int_part);
-       dec_part *= 1000000000000000ULL;
-       if (away_from_zero && dec_part > 0)
-               dec_part = ceil (dec_part);
-       else
-               dec_part = floor (dec_part);
-       dec_part /= (1000000000000000ULL / p);
-       if (away_from_zero) {
-               if (dec_part > 0)
-                       dec_part = floor (dec_part + 0.5);
-               else
-                       dec_part = ceil (dec_part - 0.5);
-       } else
-               dec_part = ves_icall_System_Math_Round (dec_part);
-       dec_part /= p;
-       return ves_icall_System_Math_Round ((int_part + dec_part) * p) / p;
-#endif
+
+       return copysign (floor_tmp, x);
 }
 
 gdouble 
@@ -130,7 +139,7 @@ gdouble
 ves_icall_System_Math_Acos (gdouble x)
 {
        if (x < -1 || x > 1)
-               return NAN;
+               return NaN.d;
 
        return acos (x);
 }
@@ -139,7 +148,7 @@ gdouble
 ves_icall_System_Math_Asin (gdouble x)
 {
        if (x < -1 || x > 1)
-               return NAN;
+               return NaN.d;
 
        return asin (x);
 }
@@ -153,21 +162,21 @@ ves_icall_System_Math_Atan (gdouble x)
 gdouble 
 ves_icall_System_Math_Atan2 (gdouble y, gdouble x)
 {
-       double result;
+       gdouble result;
+
+       if (isinfinity (x) && isinfinity (y))
+               return NaN.d;
 
-       if ((y == HUGE_VAL && x == HUGE_VAL) ||
-               (y == HUGE_VAL && x == -HUGE_VAL) ||
-               (y == -HUGE_VAL && x == HUGE_VAL) ||
-               (y == -HUGE_VAL && x == -HUGE_VAL)) {
-               return NAN;
-       }
        result = atan2 (y, x);
-       return (result == -0)? 0: result;
+       return result == -0.0 ? 0.0: result;
 }
 
 gdouble 
 ves_icall_System_Math_Exp (gdouble x)
 {
+       if (isinfinity (x))
+               return x < 0 ? 0.0 : x;
+
        return exp (x);
 }
 
@@ -175,9 +184,9 @@ gdouble
 ves_icall_System_Math_Log (gdouble x)
 {
        if (x == 0)
-               return -HUGE_VAL;
+               return MInfinity.d;
        else if (x < 0)
-               return NAN;
+               return NaN.d;
 
        return log (x);
 }
@@ -186,9 +195,9 @@ gdouble
 ves_icall_System_Math_Log10 (gdouble x)
 {
        if (x == 0)
-               return -HUGE_VAL;
+               return MInfinity.d;
        else if (x < 0)
-               return NAN;
+               return NaN.d;
 
        return log10 (x);
 }
@@ -196,43 +205,96 @@ ves_icall_System_Math_Log10 (gdouble x)
 gdouble 
 ves_icall_System_Math_Pow (gdouble x, gdouble y)
 {
-       double result;
-
-       if (isnan(x) || isnan(y)) {
-               return NAN;
-       }
-
-       if ((x == 1 || x == -1) && (y == HUGE_VAL || y == -HUGE_VAL)) {
-               return NAN;
+       gdouble result;
+
+       if (isnan (y))
+               return y;
+       if (isnan (x))
+               return x;
+
+       if (isinfinity (y)) {
+               if (isplusone (x))
+                       return x;
+               if (isminusone (x))
+                       return NaN.d;
        }
 
-       /* This code is for return the same results as MS.NET for certain
-        * limit values */
-       if (x < -9007199254740991.0) {
-               if (y > 9007199254740991.0)
-                       return HUGE_VAL;
-               if (y < -9007199254740991.0)
-                       return 0;
-       }
-
-       result = pow (x, y);
+       /* following are cases from PAL_pow which abstract the implementation of pow for posix and win32 platforms
+        * (https://github.com/dotnet/coreclr/blob/master/src/pal/src/cruntime/finite.cpp#L331) */
 
-       /* This code is for return the same results as MS.NET for certain
-        * limit values */
-       if (isnan(result) &&
-               (x == -1.0) &&
-               ((y > 9007199254740991.0) || (y < -9007199254740991.0))) {
-               return 1;
+       if (isplusinfinity (y) && !isnan (x)) {
+               if (isplusone (x) || isminusone (x))
+                       result = NaN.d;
+               else if (x > MOne.d && x < POne.d)
+                       result = 0.0;
+               else
+                       result = PInfinity.d;
+       } else if (isminusinfinity (y) && !isnan (x)) {
+               if (isplusone (x) || isminusone (x))
+                       result = NaN.d;
+               if (x > MOne.d && x < POne.d)
+                       result = PInfinity.d;
+               else
+                       result = 0.0;
+       } else if (x == 0.0 && y < 0.0) {
+               result = PInfinity.d;
+       } else if (y == 0.0 && isnan (x)) {
+               /* Windows returns NaN for pow(NaN, 0), but POSIX specifies
+                * a return value of 1 for that case.  We need to return
+                * the same result as Windows. */
+               result = NaN.d;
+       } else {
+               result = pow (x, y);
        }
 
-       return (result == -0)? 0: result;
+       if (result == PInfinity.d && x < 0.0 && isfinite (x) && ceil (y / 2) != floor (y / 2))
+               result = MInfinity.d;
+
+       /*
+        * The even/odd test in the if (this one and the one above) used to be ((long long) y % 2 == 0)
+        * on SPARC (long long) y for large y (>2**63) is always 0x7fffffff7fffffff, which
+        * is an odd number, so the test ((long long) y % 2 == 0) will always fail for
+        * large y. Since large double numbers are always even (e.g., the representation of
+        * 1E20+1 is the same as that of 1E20, the last .+1. is too insignificant to be part
+        * of the representation), this test will always return the wrong result for large y.
+        *
+        * The (ceil(y/2) == floor(y/2)) test is slower, but more robust.
+        */
+       if (result == MInfinity.d && x < 0.0 && isfinite (x) && ceil (y / 2) == floor (y / 2))
+               result = PInfinity.d;
+
+       return result == -0.0 ? 0 : result;
 }
 
 gdouble 
 ves_icall_System_Math_Sqrt (gdouble x)
 {
        if (x < 0)
-               return NAN;
+               return NaN.d;
 
        return sqrt (x);
 }
+
+gdouble
+ves_icall_System_Math_Abs_double (gdouble v)
+{
+       return fabs (v);
+}
+
+gfloat
+ves_icall_System_Math_Abs_single (gfloat v)
+{
+       return fabsf (v);
+}
+
+gdouble
+ves_icall_System_Math_Ceiling (gdouble v)
+{
+       return ceil (v);
+}
+
+gdouble
+ves_icall_System_Math_SplitFractionDouble (gdouble *v)
+{
+       return modf (*v, v);
+}
index f8f5778ab418c7fdd52f28a9f8f6cc311d3b9815..bb3cf92bfd5d1906d1a53e04f4c59a0cdacc5e87 100644 (file)
@@ -3,8 +3,10 @@
  *
  * Author:
  *   Dan Lewis (dihlewis@yahoo.co.uk)
+ *   Ludovic Henry (ludovic@xamarin.com)
  *
  * (C) Ximian, Inc. 2002
+ * Copyright 2015 Xamarin, Inc (https://www.xamarin.com)
  */
 
 #ifndef __METADATA_SYSMATH_H__
 
 #include <config.h>
 #include <glib.h>
-#include "mono/utils/mono-compiler.h"
 
-extern gdouble ves_icall_System_Math_Floor (gdouble x);
-extern gdouble ves_icall_System_Math_Round (gdouble x);
-extern gdouble ves_icall_System_Math_Round2 (gdouble value, gint32 digits, gboolean away_from_zero);
+gdouble
+ves_icall_System_Math_Floor (gdouble x);
 
-extern gdouble 
+gdouble
+ves_icall_System_Math_Round (gdouble x);
+
+gdouble
 ves_icall_System_Math_Sin (gdouble x);
 
-extern gdouble 
+gdouble
 ves_icall_System_Math_Cos (gdouble x);
 
-extern gdouble 
+gdouble
 ves_icall_System_Math_Tan (gdouble x);
 
-extern gdouble 
+gdouble
 ves_icall_System_Math_Sinh (gdouble x);
 
-extern gdouble 
+gdouble
 ves_icall_System_Math_Cosh (gdouble x);
 
-extern gdouble 
+gdouble
 ves_icall_System_Math_Tanh (gdouble x);
 
-extern gdouble 
+gdouble
 ves_icall_System_Math_Acos (gdouble x);
 
-extern gdouble 
+gdouble
 ves_icall_System_Math_Asin (gdouble x);
 
-extern gdouble 
+gdouble
 ves_icall_System_Math_Atan (gdouble x);
 
-extern gdouble 
+gdouble
 ves_icall_System_Math_Atan2 (gdouble y, gdouble x);
 
-extern gdouble 
+gdouble
 ves_icall_System_Math_Exp (gdouble x);
 
-extern gdouble 
+gdouble
 ves_icall_System_Math_Log (gdouble x);
 
-extern gdouble 
+gdouble
 ves_icall_System_Math_Log10 (gdouble x);
 
-extern gdouble 
+gdouble
 ves_icall_System_Math_Pow (gdouble x, gdouble y);
 
-extern gdouble 
+gdouble
 ves_icall_System_Math_Sqrt (gdouble x);
 
+gdouble
+ves_icall_System_Math_Abs_double (gdouble v);
+
+gfloat
+ves_icall_System_Math_Abs_single (gfloat v);
+
+gdouble
+ves_icall_System_Math_SplitFractionDouble (gdouble *v);
+
+gdouble
+ves_icall_System_Math_Ceiling (gdouble v);
+
 #endif
diff --git a/mono/metadata/threadpool-internals.h b/mono/metadata/threadpool-internals.h
deleted file mode 100644 (file)
index 069157c..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef _MONO_THREADPOOL_INTERNALS_H_
-#define _MONO_THREADPOOL_INTERNALS_H_
-
-#include <glib.h>
-#include <mono/metadata/object.h>
-#include <mono/metadata/mono-hash.h>
-#include <mono/metadata/mono-mlist.h>
-#include <mono/utils/mono-compiler.h>
-#include <mono/utils/mono-mutex.h>
-
-typedef struct {
-       mono_mutex_t io_lock; /* access to sock_to_state */
-       int inited; // 0 -> not initialized , 1->initializing, 2->initialized, 3->cleaned up
-       MonoGHashTable *sock_to_state;
-
-       gint event_system;
-       gpointer event_data;
-       void (*modify) (gpointer p, int fd, int operation, int events, gboolean is_new);
-       void (*wait) (gpointer sock_data);
-       void (*shutdown) (gpointer event_data);
-} SocketIOData;
-
-void mono_thread_pool_remove_socket (int sock);
-gboolean mono_thread_pool_is_queue_array (MonoArray *o);
-void mono_internal_thread_unhandled_exception (MonoObject* exc);
-
-//TP internals the impls use
-void check_for_interruption_critical (void);
-void socket_io_cleanup (SocketIOData *data);
-MonoObject *get_io_event (MonoMList **list, gint event);
-int get_events_from_list (MonoMList *list);
-void threadpool_append_async_io_jobs (MonoObject **jobs, gint njobs);
-
-#endif
index 8fce1399ad7bb795e277bd7335ca2074ade74c46..b7deef04375ac1cb7c669f40a1ba7ab970a1ce7b 100644 (file)
@@ -27,9 +27,9 @@ epoll_init (gint wakeup_pipe_fd)
 
        if (epoll_fd == -1) {
 #ifdef EPOOL_CLOEXEC
-               g_warning ("epoll_init: epoll (EPOLL_CLOEXEC) failed, error (%d) %s\n", errno, g_strerror (errno));
+               g_error ("epoll_init: epoll (EPOLL_CLOEXEC) failed, error (%d) %s\n", errno, g_strerror (errno));
 #else
-               g_warning ("epoll_init: epoll (256) failed, error (%d) %s\n", errno, g_strerror (errno));
+               g_error ("epoll_init: epoll (256) failed, error (%d) %s\n", errno, g_strerror (errno));
 #endif
                return FALSE;
        }
@@ -37,7 +37,7 @@ epoll_init (gint wakeup_pipe_fd)
        event.events = EPOLLIN;
        event.data.fd = wakeup_pipe_fd;
        if (epoll_ctl (epoll_fd, EPOLL_CTL_ADD, event.data.fd, &event) == -1) {
-               g_warning ("epoll_init: epoll_ctl () failed, error (%d) %s", errno, g_strerror (errno));
+               g_error ("epoll_init: epoll_ctl () failed, error (%d) %s", errno, g_strerror (errno));
                close (epoll_fd);
                return FALSE;
        }
@@ -55,18 +55,29 @@ epoll_cleanup (void)
 }
 
 static void
-epoll_update_add (ThreadPoolIOUpdate *update)
+epoll_register_fd (gint fd, gint events, gboolean is_new)
 {
-       struct epoll_event event;
+       if (events == 0) {
+               if (!is_new && epoll_ctl (epoll_fd, EPOLL_CTL_DEL, fd, NULL) == -1)
+                       g_error ("epoll_register_fd: epoll_ctl (EPOLL_CTL_DEL) failed, error (%d) %s", errno, g_strerror (errno));
+       } else {
+               struct epoll_event event;
+
+#ifndef EPOLLONESHOT
+/* it was only defined on android in May 2013 */
+#define EPOLLONESHOT 0x40000000
+#endif
 
-       event.data.fd = update->fd;
-       if ((update->events & MONO_POLLIN) != 0)
-               event.events |= EPOLLIN;
-       if ((update->events & MONO_POLLOUT) != 0)
-               event.events |= EPOLLOUT;
+               event.data.fd = fd;
+               event.events = EPOLLONESHOT;
+               if ((events & MONO_POLLIN) != 0)
+                       event.events |= EPOLLIN;
+               if ((events & MONO_POLLOUT) != 0)
+                       event.events |= EPOLLOUT;
 
-       if (epoll_ctl (epoll_fd, update->is_new ? EPOLL_CTL_ADD : EPOLL_CTL_MOD, event.data.fd, &event) == -1)
-               g_warning ("epoll_update_add: epoll_ctl(%s) failed, error (%d) %s", update->is_new ? "EPOLL_CTL_ADD" : "EPOLL_CTL_MOD", errno, g_strerror (errno));
+               if (epoll_ctl (epoll_fd, is_new ? EPOLL_CTL_ADD : EPOLL_CTL_MOD, event.data.fd, &event) == -1)
+                       g_error ("epoll_register_fd: epoll_ctl(%s) failed, error (%d) %s", is_new ? "EPOLL_CTL_ADD" : "EPOLL_CTL_MOD", errno, g_strerror (errno));
+       }
 }
 
 static gint
@@ -74,15 +85,17 @@ epoll_event_wait (void)
 {
        gint ready;
 
+       memset (epoll_events, 0, sizeof (struct epoll_event) * EPOLL_NEVENTS);
+
        ready = epoll_wait (epoll_fd, epoll_events, EPOLL_NEVENTS, -1);
        if (ready == -1) {
                switch (errno) {
                case EINTR:
-                       check_for_interruption_critical ();
+                       mono_thread_internal_check_for_interruption_critical (mono_thread_internal_current ());
                        ready = 0;
                        break;
                default:
-                       g_warning ("epoll_event_wait: epoll_wait () failed, error (%d) %s", errno, g_strerror (errno));
+                       g_error ("epoll_event_wait: epoll_wait () failed, error (%d) %s", errno, g_strerror (errno));
                        break;
                }
        }
@@ -91,63 +104,29 @@ epoll_event_wait (void)
 }
 
 static gint
-epoll_event_max (void)
+epoll_event_get_fd_max (void)
 {
        return EPOLL_NEVENTS;
 }
 
 static gint
-epoll_event_fd_at (guint i)
+epoll_event_get_fd_at (gint i, gint *events)
 {
-       return epoll_events [i].data.fd;
-}
-
-static gboolean
-epoll_event_create_sockares_at (guint i, gint fd, MonoMList **list)
-{
-       struct epoll_event *epoll_event;
-
-       g_assert (list);
+       g_assert (events);
 
-       epoll_event = &epoll_events [i];
-       g_assert (epoll_event);
+       *events = ((epoll_events [i].events & (EPOLLIN | EPOLLERR | EPOLLHUP)) ? MONO_POLLIN : 0)
+                   | ((epoll_events [i].events & (EPOLLOUT | EPOLLERR | EPOLLHUP)) ? MONO_POLLOUT : 0);
 
-       g_assert (fd == epoll_event->data.fd);
-
-       if (*list && (epoll_event->events & (EPOLLIN | EPOLLERR | EPOLLHUP)) != 0) {
-               MonoSocketAsyncResult *io_event = get_sockares_for_event (list, MONO_POLLIN);
-               if (io_event)
-                       mono_threadpool_ms_enqueue_work_item (((MonoObject*) io_event)->vtable->domain, (MonoObject*) io_event);
-       }
-       if (*list && (epoll_event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP)) != 0) {
-               MonoSocketAsyncResult *io_event = get_sockares_for_event (list, MONO_POLLOUT);
-               if (io_event)
-                       mono_threadpool_ms_enqueue_work_item (((MonoObject*) io_event)->vtable->domain, (MonoObject*) io_event);
-       }
-
-       if (*list) {
-               gint events = get_events (*list);
-
-               epoll_event->events = ((events & MONO_POLLOUT) ? EPOLLOUT : 0) | ((events & MONO_POLLIN) ? EPOLLIN : 0);
-               if (epoll_ctl (epoll_fd, EPOLL_CTL_MOD, fd, epoll_event) == -1) {
-                       if (epoll_ctl (epoll_fd, EPOLL_CTL_ADD, fd, epoll_event) == -1)
-                               g_warning ("epoll_event_create_sockares_at: epoll_ctl () failed, error (%d) %s", errno, g_strerror (errno));
-               }
-       } else {
-               epoll_ctl (epoll_fd, EPOLL_CTL_DEL, fd, epoll_event);
-       }
-
-       return TRUE;
+       return epoll_events [i].data.fd;
 }
 
 static ThreadPoolIOBackend backend_epoll = {
        .init = epoll_init,
        .cleanup = epoll_cleanup,
-       .update_add = epoll_update_add,
+       .register_fd = epoll_register_fd,
        .event_wait = epoll_event_wait,
-       .event_max = epoll_event_max,
-       .event_fd_at = epoll_event_fd_at,
-       .event_create_sockares_at = epoll_event_create_sockares_at,
+       .event_get_fd_max = epoll_event_get_fd_max,
+       .event_get_fd_at = epoll_event_get_fd_at,
 };
 
 #endif
index f6afe7f71a8d603f67acb767f870331a4ade7375..b06ea74aa1e11ee189cb0a12f3f499cfb5a8cd5c 100644 (file)
@@ -46,17 +46,20 @@ kqueue_cleanup (void)
 }
 
 static void
-kqueue_update_add (ThreadPoolIOUpdate *update)
+kqueue_register_fd (gint fd, gint events, gboolean is_new)
 {
        struct kevent event;
 
-       if ((update->events & MONO_POLLIN) != 0)
-               EV_SET (&event, update->fd, EVFILT_READ, EV_ADD | EV_ENABLE | EV_ONESHOT, 0, 0, 0);
-       if ((update->events & MONO_POLLOUT) != 0)
-               EV_SET (&event, update->fd, EVFILT_WRITE, EV_ADD | EV_ENABLE | EV_ONESHOT, 0, 0, 0);
+       if (events == 0)
+               return;
+
+       if ((events & MONO_POLLIN) != 0)
+               EV_SET (&event, fd, EVFILT_READ, EV_ADD | EV_ENABLE | EV_ONESHOT, 0, 0, 0);
+       if ((events & MONO_POLLOUT) != 0)
+               EV_SET (&event, fd, EVFILT_WRITE, EV_ADD | EV_ENABLE | EV_ONESHOT, 0, 0, 0);
 
        if (kevent (kqueue_fd, &event, 1, NULL, 0, NULL) == -1)
-               g_warning ("kqueue_update_add: kevent(update) failed, error (%d) %s", errno, g_strerror (errno));
+               g_warning ("kqueue_register_fd: kevent(update) failed, error (%d) %s", errno, g_strerror (errno));
 }
 
 static gint
@@ -68,7 +71,7 @@ kqueue_event_wait (void)
        if (ready == -1) {
                switch (errno) {
                case EINTR:
-                       check_for_interruption_critical ();
+                       mono_thread_internal_check_for_interruption_critical (mono_thread_internal_current ());
                        ready = 0;
                        break;
                default:
@@ -80,66 +83,30 @@ kqueue_event_wait (void)
        return ready;
 }
 
-static inline gint
-kqueue_event_fd_at (guint i)
+static gint
+kqueue_event_get_fd_at (gint i, gint *events)
 {
+       g_assert (events);
+
+       *events = ((kqueue_events [i].filter == EVFILT_READ || (kqueue_events [i].flags & EV_ERROR) != 0) ? MONO_POLLIN : 0)
+                   | ((kqueue_events [i].filter == EVFILT_WRITE || (kqueue_events [i].flags & EV_ERROR) != 0) ? MONO_POLLOUT : 0);
+
        return kqueue_events [i].ident;
 }
 
 static gint
-kqueue_event_max (void)
+kqueue_event_get_fd_max (void)
 {
        return KQUEUE_NEVENTS;
 }
 
-static gboolean
-kqueue_event_create_sockares_at (guint i, gint fd, MonoMList **list)
-{
-       struct kevent *kqueue_event;
-
-       g_assert (list);
-
-       kqueue_event = &kqueue_events [i];
-       g_assert (kqueue_event);
-
-       g_assert (fd == kqueue_event->ident);
-
-       if (*list && (kqueue_event->filter == EVFILT_READ || (kqueue_event->flags & EV_ERROR) != 0)) {
-               MonoSocketAsyncResult *io_event = get_sockares_for_event (list, MONO_POLLIN);
-               if (io_event)
-                       mono_threadpool_ms_enqueue_work_item (((MonoObject*) io_event)->vtable->domain, (MonoObject*) io_event);
-       }
-       if (*list && (kqueue_event->filter == EVFILT_WRITE || (kqueue_event->flags & EV_ERROR) != 0)) {
-               MonoSocketAsyncResult *io_event = get_sockares_for_event (list, MONO_POLLOUT);
-               if (io_event)
-                       mono_threadpool_ms_enqueue_work_item (((MonoObject*) io_event)->vtable->domain, (MonoObject*) io_event);
-       }
-
-       if (*list) {
-               gint events = get_events (*list);
-               if (kqueue_event->filter == EVFILT_READ && (events & MONO_POLLIN) != 0) {
-                       EV_SET (kqueue_event, fd, EVFILT_READ, EV_ADD | EV_ENABLE | EV_ONESHOT, 0, 0, 0);
-                       if (kevent (kqueue_fd, kqueue_event, 1, NULL, 0, NULL) == -1)
-                               g_warning ("kqueue_event_create_sockares_at: kevent (read) failed, error (%d) %s", errno, g_strerror (errno));
-               }
-               if (kqueue_event->filter == EVFILT_WRITE && (events & MONO_POLLOUT) != 0) {
-                       EV_SET (kqueue_event, fd, EVFILT_WRITE, EV_ADD | EV_ENABLE | EV_ONESHOT, 0, 0, 0);
-                       if (kevent (kqueue_fd, kqueue_event, 1, NULL, 0, NULL) == -1)
-                               g_warning ("kqueue_event_create_sockares_at: kevent (write) failed, error (%d) %s", errno, g_strerror (errno));
-               }
-       }
-
-       return TRUE;
-}
-
 static ThreadPoolIOBackend backend_kqueue = {
        .init = kqueue_init,
        .cleanup = kqueue_cleanup,
-       .update_add = kqueue_update_add,
+       .register_fd = kqueue_register_fd,
        .event_wait = kqueue_event_wait,
-       .event_max = kqueue_event_max,
-       .event_fd_at = kqueue_event_fd_at,
-       .event_create_sockares_at = kqueue_event_create_sockares_at,
+       .event_get_fd_max = kqueue_event_get_fd_max,
+       .event_get_fd_at = kqueue_event_get_fd_at,
 };
 
 #endif
index 7e0e1f42e5a11958598ea887f4fe19acc3e80765..88bdc9f839be81a2bdcff84a7f8ae9207143ca55 100644 (file)
@@ -68,19 +68,25 @@ poll_mark_bad_fds (mono_pollfd *poll_fds, gint poll_fds_size)
 }
 
 static void
-poll_update_add (ThreadPoolIOUpdate *update)
+poll_register_fd (gint fd, gint events, gboolean is_new)
 {
        gboolean found = FALSE;
        gint j, k;
 
        for (j = 1; j < poll_fds_size; ++j) {
                mono_pollfd *poll_fd = poll_fds + j;
-               if (poll_fd->fd == update->fd) {
+               if (poll_fd->fd == fd) {
                        found = TRUE;
                        break;
                }
        }
 
+       if (events == 0) {
+               if (found)
+                       POLL_INIT_FD (poll_fds + j, -1, 0);
+               return;
+       }
+
        if (!found) {
                for (j = 1; j < poll_fds_capacity; ++j) {
                        mono_pollfd *poll_fd = poll_fds + j;
@@ -96,7 +102,7 @@ poll_update_add (ThreadPoolIOUpdate *update)
                        POLL_INIT_FD (poll_fds + k, -1, 0);
        }
 
-       POLL_INIT_FD (poll_fds + j, update->fd, update->events);
+       POLL_INIT_FD (poll_fds + j, fd, events);
 
        if (j >= poll_fds_size)
                poll_fds_size = j + 1;
@@ -133,7 +139,7 @@ poll_event_wait (void)
 #else
                case WSAEINTR:
 #endif
-                       check_for_interruption_critical ();
+                       mono_thread_internal_check_for_interruption_critical (mono_thread_internal_current ());
                        ready = 0;
                        break;
 #if !defined(HOST_WIN32)
@@ -156,58 +162,30 @@ poll_event_wait (void)
        return ready;
 }
 
-static inline gint
-poll_event_fd_at (guint i)
+static gint
+poll_event_get_fd_at (gint i, gint *events)
 {
-       return poll_fds [i].fd;
+       g_assert (events);
+
+       *events = ((poll_fds [i].revents & (MONO_POLLIN | MONO_POLLERR | MONO_POLLHUP | MONO_POLLNVAL)) ? MONO_POLLIN : 0)
+                   | ((poll_fds [i].revents & (MONO_POLLOUT | MONO_POLLERR | MONO_POLLHUP | MONO_POLLNVAL)) ? MONO_POLLOUT : 0);
+
+       /* if nothing happened on the fd, then just return
+        * an invalid fd number so it is discarded */
+       return poll_fds [i].revents == 0 ? -1 : poll_fds [i].fd;
 }
 
 static gint
-poll_event_max (void)
+poll_event_get_fd_max (void)
 {
        return poll_fds_size;
 }
 
-static gboolean
-poll_event_create_sockares_at (guint i, gint fd, MonoMList **list)
-{
-       mono_pollfd *poll_fd;
-
-       g_assert (list);
-
-       poll_fd = &poll_fds [i];
-       g_assert (poll_fd);
-
-       g_assert (fd == poll_fd->fd);
-
-       if (fd == -1 || poll_fd->revents == 0)
-               return FALSE;
-
-       if (*list && (poll_fd->revents & (MONO_POLLIN | MONO_POLLERR | MONO_POLLHUP | MONO_POLLNVAL)) != 0) {
-               MonoSocketAsyncResult *io_event = get_sockares_for_event (list, MONO_POLLIN);
-               if (io_event)
-                       mono_threadpool_ms_enqueue_work_item (((MonoObject*) io_event)->vtable->domain, (MonoObject*) io_event);
-       }
-       if (*list && (poll_fd->revents & (MONO_POLLOUT | MONO_POLLERR | MONO_POLLHUP | MONO_POLLNVAL)) != 0) {
-               MonoSocketAsyncResult *io_event = get_sockares_for_event (list, MONO_POLLOUT);
-               if (io_event)
-                       mono_threadpool_ms_enqueue_work_item (((MonoObject*) io_event)->vtable->domain, (MonoObject*) io_event);
-       }
-
-       if (*list)
-               poll_fd->events = get_events (*list);
-       else
-               POLL_INIT_FD (poll_fd, -1, 0);
-
-       return TRUE;
-}
-
 static ThreadPoolIOBackend backend_poll = {
        .init = poll_init,
        .cleanup = poll_cleanup,
-       .update_add = poll_update_add,
+       .register_fd = poll_register_fd,
        .event_wait = poll_event_wait,
-       .event_max = poll_event_max,
-       .event_fd_at = poll_event_fd_at,
-       .event_create_sockares_at = poll_event_create_sockares_at,
+       .event_get_fd_max = poll_event_get_fd_max,
+       .event_get_fd_at = poll_event_get_fd_at,
 };
index 29e86a0debc2c0f45dd556d2d129e730ad40d7e9..8da9d2f5d8c409b7dafe59b89caf9b0e6727ef16 100644 (file)
 
 #include <mono/metadata/gc-internal.h>
 #include <mono/metadata/mono-mlist.h>
-#include <mono/metadata/threadpool-internals.h>
 #include <mono/metadata/threadpool-ms.h>
 #include <mono/metadata/threadpool-ms-io.h>
 #include <mono/utils/atomic.h>
 #include <mono/utils/mono-poll.h>
 #include <mono/utils/mono-threads.h>
+#include <mono/utils/mono-lazy-init.h>
+
+typedef struct {
+       gboolean (*init) (gint wakeup_pipe_fd);
+       void     (*cleanup) (void);
+       void     (*register_fd) (gint fd, gint events, gboolean is_new);
+       gint     (*event_wait) (void);
+       gint     (*event_get_fd_max) (void);
+       gint     (*event_get_fd_at) (gint i, gint *events);
+} ThreadPoolIOBackend;
+
+#include "threadpool-ms-io-epoll.c"
+#include "threadpool-ms-io-kqueue.c"
+#include "threadpool-ms-io-poll.c"
 
 /* Keep in sync with System.Net.Sockets.Socket.SocketOperation */
 enum {
@@ -51,19 +64,34 @@ enum {
 
 typedef struct {
        gint fd;
-       gint events;
-       gboolean is_new;
+       MonoSocketAsyncResult *sockares;
 } ThreadPoolIOUpdate;
 
 typedef struct {
-       gboolean (*init) (gint wakeup_pipe_fd);
-       void     (*cleanup) (void);
-       void     (*update_add) (ThreadPoolIOUpdate *update);
-       gint     (*event_wait) (void);
-       gint     (*event_max) (void);
-       gint     (*event_fd_at) (guint i);
-       gboolean (*event_create_sockares_at) (guint i, gint fd, MonoMList **list);
-} ThreadPoolIOBackend;
+       ThreadPoolIOBackend backend;
+
+       mono_mutex_t lock;
+
+       mono_cond_t updates_signal;
+
+       MonoGHashTable *states;
+
+       ThreadPoolIOUpdate *updates;
+       guint updates_size;
+       guint updates_capacity;
+
+#if !defined(HOST_WIN32)
+       gint wakeup_pipes [2];
+#else
+       SOCKET wakeup_pipes [2];
+#endif
+} ThreadPoolIO;
+
+static mono_lazy_init_t io_status = MONO_LAZY_INIT_STATUS_NOT_INITIALIZED;
+
+static gboolean io_selector_running = FALSE;
+
+static ThreadPoolIO* threadpool_io;
 
 static int
 get_events_from_sockares (MonoSocketAsyncResult *ares)
@@ -92,62 +120,148 @@ get_events_from_sockares (MonoSocketAsyncResult *ares)
 static MonoSocketAsyncResult*
 get_sockares_for_event (MonoMList **list, gint event)
 {
-       MonoSocketAsyncResult *state = NULL;
        MonoMList *current;
 
        g_assert (list);
 
        for (current = *list; current; current = mono_mlist_next (current)) {
-               state = (MonoSocketAsyncResult*) mono_mlist_get_data (current);
-               if (get_events_from_sockares ((MonoSocketAsyncResult*) state) == event)
-                       break;
-               state = NULL;
+               MonoSocketAsyncResult *ares = (MonoSocketAsyncResult*) mono_mlist_get_data (current);
+               if (get_events_from_sockares (ares) == event) {
+                       *list = mono_mlist_remove_item (*list, current);
+                       return ares;
+               }
        }
 
-       if (current)
-               *list = mono_mlist_remove_item (*list, current);
-
-       return state;
+       return NULL;
 }
 
 static gint
 get_events (MonoMList *list)
 {
-       MonoSocketAsyncResult *ares;
+       MonoMList *current;
        gint events = 0;
 
-       for (; list; list = mono_mlist_next (list))
-               if ((ares = (MonoSocketAsyncResult*) mono_mlist_get_data (list)))
+       for (current = list; current; current = mono_mlist_next (current)) {
+               MonoSocketAsyncResult *ares = (MonoSocketAsyncResult*) mono_mlist_get_data (current);
+               if (ares)
                        events |= get_events_from_sockares (ares);
+       }
 
        return events;
 }
 
-#include "threadpool-ms-io-epoll.c"
-#include "threadpool-ms-io-kqueue.c"
-#include "threadpool-ms-io-poll.c"
+static void
+selector_thread_wakeup (void);
 
-typedef struct {
-       MonoGHashTable *states;
-       mono_mutex_t states_lock;
+/*
+ * If sockares is NULL, then it means we want to delete the corresponding fd
+ */
+static void
+update_add (gint fd, MonoSocketAsyncResult *sockares)
+{
+       ThreadPoolIOUpdate *update;
 
-       ThreadPoolIOBackend backend;
+       mono_mutex_lock (&threadpool_io->lock);
 
-       ThreadPoolIOUpdate *updates;
-       guint updates_size;
-       mono_mutex_t updates_lock;
+       threadpool_io->updates_size += 1;
+       if (threadpool_io->updates_size > threadpool_io->updates_capacity) {
+               ThreadPoolIOUpdate *updates_new, *updates_old;
+               gint updates_new_capacity, updates_old_capacity;
 
-#if !defined(HOST_WIN32)
-       gint wakeup_pipes [2];
-#else
-       SOCKET wakeup_pipes [2];
-#endif
-} ThreadPoolIO;
+               updates_old_capacity = threadpool_io->updates_capacity;
+               updates_new_capacity = updates_old_capacity + 16;
 
-static gint32 io_status = STATUS_NOT_INITIALIZED;
-static gint32 io_thread_status = STATUS_NOT_INITIALIZED;
+               updates_old = threadpool_io->updates;
+               updates_new = mono_gc_alloc_fixed (sizeof (ThreadPoolIOUpdate) * updates_new_capacity, MONO_GC_DESCRIPTOR_NULL);
+               g_assert (updates_new);
 
-static ThreadPoolIO* threadpool_io;
+               if (updates_old)
+                       memcpy (updates_new, updates_old, sizeof (ThreadPoolIOUpdate) * updates_old_capacity);
+
+               threadpool_io->updates = updates_new;
+               threadpool_io->updates_capacity = updates_new_capacity;
+
+               if (updates_old)
+                       mono_gc_free_fixed (updates_old);
+       }
+
+       update = &threadpool_io->updates [threadpool_io->updates_size - 1];
+       update->fd = fd;
+       update->sockares = sockares;
+
+       selector_thread_wakeup ();
+
+       mono_cond_wait (&threadpool_io->updates_signal, &threadpool_io->lock);
+
+       mono_mutex_unlock (&threadpool_io->lock);
+}
+
+static void
+update_drain (void (*callback) (gint fd, gint events, gboolean is_new))
+{
+       gint i;
+
+       mono_mutex_lock (&threadpool_io->lock);
+
+       for (i = 0; i < threadpool_io->updates_size; ++i) {
+               ThreadPoolIOUpdate *update;
+               MonoMList *list = NULL;
+               gpointer k;
+               gboolean is_new;
+
+               update = &threadpool_io->updates [i];
+
+               is_new = !mono_g_hash_table_lookup_extended (threadpool_io->states, GINT_TO_POINTER (update->fd), &k, (gpointer*) &list);
+
+               if (!update->sockares) {
+                       callback (update->fd, 0, is_new);
+               } else {
+                       list = mono_mlist_append (list, (MonoObject*) update->sockares);
+                       mono_g_hash_table_replace (threadpool_io->states, update->sockares->handle, list);
+
+                       callback (update->fd, get_events (list), is_new);
+               }
+       }
+
+       mono_cond_broadcast (&threadpool_io->updates_signal);
+
+       if (threadpool_io->updates_size > 0) {
+               ThreadPoolIOUpdate *updates_old;
+
+               threadpool_io->updates_size = 0;
+               threadpool_io->updates_capacity = 16;
+
+               updates_old = threadpool_io->updates;
+
+               threadpool_io->updates = mono_gc_alloc_fixed (sizeof (ThreadPoolIOUpdate) * threadpool_io->updates_capacity, MONO_GC_DESCRIPTOR_NULL);
+               g_assert (threadpool_io->updates);
+
+               mono_gc_free_fixed (updates_old);
+       }
+
+       mono_mutex_unlock (&threadpool_io->lock);
+}
+
+static void
+update_remove (gboolean (*predicate) (ThreadPoolIOUpdate *update, gpointer user_data), gpointer user_data)
+{
+       gint i;
+
+       mono_mutex_lock (&threadpool_io->lock);
+
+       for (i = 0; i < threadpool_io->updates_size; ++i) {
+               if (predicate (&threadpool_io->updates [i], user_data)) {
+                       if (i < threadpool_io->updates_size - 1)
+                               memmove (threadpool_io->updates + i, threadpool_io->updates + i + 1, sizeof (ThreadPoolIOUpdate) * threadpool_io->updates_size - i - 1);
+                       memset (threadpool_io->updates + threadpool_io->updates_size - 1, 0, sizeof (ThreadPoolIOUpdate));
+
+                       threadpool_io->updates_size --;
+                       i --;
+               }
+       }
+
+       mono_mutex_unlock (&threadpool_io->lock);
+}
 
 static void
 selector_thread_wakeup (void)
@@ -208,65 +322,78 @@ selector_thread_wakeup_drain_pipes (void)
 static void
 selector_thread (gpointer data)
 {
-       io_thread_status = STATUS_INITIALIZED;
+       io_selector_running = TRUE;
+
+       if (mono_runtime_is_shutting_down ()) {
+               io_selector_running = FALSE;
+               return;
+       }
+
+       mono_mutex_lock (&threadpool_io->lock);
 
        for (;;) {
                guint i;
                guint max;
                gint ready = 0;
 
-               mono_gc_set_skip_thread (TRUE);
+               update_drain (threadpool_io->backend.register_fd);
 
-               mono_mutex_lock (&threadpool_io->updates_lock);
-               for (i = 0; i < threadpool_io->updates_size; ++i) {
-                       threadpool_io->backend.update_add (&threadpool_io->updates [i]);
-               }
-               if (threadpool_io->updates_size > 0) {
-                       threadpool_io->updates_size = 0;
-                       threadpool_io->updates = g_renew (ThreadPoolIOUpdate, threadpool_io->updates, threadpool_io->updates_size);
-               }
-               mono_mutex_unlock (&threadpool_io->updates_lock);
+               mono_mutex_unlock (&threadpool_io->lock);
+
+               mono_gc_set_skip_thread (TRUE);
 
                ready = threadpool_io->backend.event_wait ();
 
                mono_gc_set_skip_thread (FALSE);
 
+               mono_mutex_lock (&threadpool_io->lock);
+
                if (ready == -1 || mono_runtime_is_shutting_down ())
                        break;
 
-               max = threadpool_io->backend.event_max ();
+               max = threadpool_io->backend.event_get_fd_max ();
 
-               mono_mutex_lock (&threadpool_io->states_lock);
                for (i = 0; i < max && ready > 0; ++i) {
-                       MonoMList *list;
-                       gboolean valid_fd;
-                       gint fd;
+                       gint events;
+                       gint fd = threadpool_io->backend.event_get_fd_at (i, &events);
 
-                       fd = threadpool_io->backend.event_fd_at (i);
+                       if (fd == -1)
+                               continue;
 
                        if (fd == threadpool_io->wakeup_pipes [0]) {
                                selector_thread_wakeup_drain_pipes ();
-                               ready -= 1;
-                               continue;
+                       } else {
+                               MonoMList *list = NULL;
+                               gpointer k;
+
+                               if (mono_g_hash_table_lookup_extended (threadpool_io->states, GINT_TO_POINTER (fd), &k, (gpointer*) &list)) {
+                                       if (list && (events & MONO_POLLIN) != 0) {
+                                               MonoSocketAsyncResult *sockares = get_sockares_for_event (&list, MONO_POLLIN);
+                                               if (sockares)
+                                                       mono_threadpool_ms_enqueue_work_item (((MonoObject*) sockares)->vtable->domain, (MonoObject*) sockares);
+                                       }
+                                       if (list && (events & MONO_POLLOUT) != 0) {
+                                               MonoSocketAsyncResult *sockares = get_sockares_for_event (&list, MONO_POLLOUT);
+                                               if (sockares)
+                                                       mono_threadpool_ms_enqueue_work_item (((MonoObject*) sockares)->vtable->domain, (MonoObject*) sockares);
+                                       }
+
+                                       if (!list)
+                                               mono_g_hash_table_remove (threadpool_io->states, GINT_TO_POINTER (fd));
+                                       else
+                                               mono_g_hash_table_replace (threadpool_io->states, GINT_TO_POINTER (fd), list);
+
+                                       threadpool_io->backend.register_fd (fd, get_events (list), FALSE);
+                               }
                        }
 
-                       list = mono_g_hash_table_lookup (threadpool_io->states, GINT_TO_POINTER (fd));
-
-                       valid_fd = threadpool_io->backend.event_create_sockares_at (i, fd, &list);
-                       if (!valid_fd)
-                               continue;
-
-                       if (list)
-                               mono_g_hash_table_replace (threadpool_io->states, GINT_TO_POINTER (fd), list);
-                       else
-                               mono_g_hash_table_remove (threadpool_io->states, GINT_TO_POINTER (fd));
-
                        ready -= 1;
                }
-               mono_mutex_unlock (&threadpool_io->states_lock);
        }
 
-       io_thread_status = STATUS_CLEANED_UP;
+       mono_mutex_unlock (&threadpool_io->lock);
+
+       io_selector_running = FALSE;
 }
 
 static void
@@ -327,28 +454,22 @@ wakeup_pipes_init (void)
 }
 
 static void
-ensure_initialized (void)
+initialize (void)
 {
-       if (io_status >= STATUS_INITIALIZED)
-               return;
-       if (io_status == STATUS_INITIALIZING || InterlockedCompareExchange (&io_status, STATUS_INITIALIZING, STATUS_NOT_INITIALIZED) != STATUS_NOT_INITIALIZED) {
-               while (io_status == STATUS_INITIALIZING)
-                       mono_thread_info_yield ();
-               g_assert (io_status >= STATUS_INITIALIZED);
-               return;
-       }
-
        g_assert (!threadpool_io);
        threadpool_io = g_new0 (ThreadPoolIO, 1);
        g_assert (threadpool_io);
 
+       mono_mutex_init_recursive (&threadpool_io->lock);
+
+       mono_cond_init (&threadpool_io->updates_signal, NULL);
+
        threadpool_io->states = mono_g_hash_table_new_type (g_direct_hash, g_direct_equal, MONO_HASH_VALUE_GC);
        MONO_GC_REGISTER_ROOT_FIXED (threadpool_io->states);
-       mono_mutex_init (&threadpool_io->states_lock);
 
        threadpool_io->updates = NULL;
        threadpool_io->updates_size = 0;
-       mono_mutex_init (&threadpool_io->updates_lock);
+       threadpool_io->updates_capacity = 0;
 
 #if defined(HAVE_EPOLL)
        threadpool_io->backend = backend_epoll;
@@ -363,49 +484,32 @@ ensure_initialized (void)
        wakeup_pipes_init ();
 
        if (!threadpool_io->backend.init (threadpool_io->wakeup_pipes [0]))
-               g_error ("ensure_initialized: backend->init () failed");
+               g_error ("initialize: backend->init () failed");
 
        if (!mono_thread_create_internal (mono_get_root_domain (), selector_thread, NULL, TRUE, SMALL_STACK))
-               g_error ("ensure_initialized: mono_thread_create_internal () failed");
-
-       io_thread_status = STATUS_INITIALIZING;
-       mono_memory_write_barrier ();
-
-       io_status = STATUS_INITIALIZED;
+               g_error ("initialize: mono_thread_create_internal () failed");
 }
 
 static void
-ensure_cleanedup (void)
+cleanup (void)
 {
-       if (io_status == STATUS_NOT_INITIALIZED && InterlockedCompareExchange (&io_status, STATUS_CLEANED_UP, STATUS_NOT_INITIALIZED) == STATUS_NOT_INITIALIZED)
-               return;
-       if (io_status == STATUS_INITIALIZING) {
-               while (io_status == STATUS_INITIALIZING)
-                       mono_thread_info_yield ();
-       }
-       if (io_status == STATUS_CLEANED_UP)
-               return;
-       if (io_status == STATUS_CLEANING_UP || InterlockedCompareExchange (&io_status, STATUS_CLEANING_UP, STATUS_INITIALIZED) != STATUS_INITIALIZED) {
-               while (io_status == STATUS_CLEANING_UP)
-                       mono_thread_info_yield ();
-               g_assert (io_status == STATUS_CLEANED_UP);
-               return;
-       }
-
        /* we make the assumption along the code that we are
         * cleaning up only if the runtime is shutting down */
        g_assert (mono_runtime_is_shutting_down ());
 
        selector_thread_wakeup ();
-       while (io_thread_status != STATUS_CLEANED_UP)
+       while (io_selector_running)
                g_usleep (1000);
 
+       mono_mutex_destroy (&threadpool_io->lock);
+
+       mono_cond_destroy (&threadpool_io->updates_signal);
+
        MONO_GC_UNREGISTER_ROOT (threadpool_io->states);
        mono_g_hash_table_destroy (threadpool_io->states);
-       mono_mutex_destroy (&threadpool_io->states_lock);
 
-       g_free (threadpool_io->updates);
-       mono_mutex_destroy (&threadpool_io->updates_lock);
+       if (threadpool_io->updates)
+               mono_gc_free_fixed (threadpool_io->updates);
 
        threadpool_io->backend.cleanup ();
 
@@ -421,8 +525,6 @@ ensure_cleanedup (void)
        g_free (threadpool_io);
        threadpool_io = NULL;
        g_assert (!threadpool_io);
-
-       io_status = STATUS_CLEANED_UP;
 }
 
 static gboolean
@@ -431,7 +533,6 @@ is_socket_async_callback (MonoImage *system_image, MonoClass *class)
        MonoClass *socket_async_callback_class = NULL;
 
        socket_async_callback_class = mono_class_from_name (system_image, "System.Net.Sockets", "SocketAsyncCallback");
-       g_assert (socket_async_callback_class);
 
        return class == socket_async_callback_class;
 }
@@ -439,12 +540,11 @@ is_socket_async_callback (MonoImage *system_image, MonoClass *class)
 static gboolean
 is_async_read_handler (MonoImage *system_image, MonoClass *class)
 {
-       MonoClass *process_class = NULL;
+       MonoClass *async_read_handler_class = NULL;
 
-       process_class = mono_class_from_name (system_image, "System.Diagnostics", "Process");
-       g_assert (process_class);
+       async_read_handler_class = mono_class_from_name (system_image, "System.Diagnostics", "Process/AsyncReadHandler");
 
-       return class->nested_in && class->nested_in == process_class && strcmp (class->name, "AsyncReadHandler") == 0;
+       return class == async_read_handler_class;
 }
 
 gboolean
@@ -470,92 +570,75 @@ mono_threadpool_ms_is_io (MonoObject *target, MonoObject *state)
 void
 mono_threadpool_ms_io_cleanup (void)
 {
-       ensure_cleanedup ();
+       mono_lazy_cleanup (&io_status, cleanup);
 }
 
 MonoAsyncResult *
 mono_threadpool_ms_io_add (MonoAsyncResult *ares, MonoSocketAsyncResult *sockares)
 {
-       ThreadPoolIOUpdate *update;
-       MonoMList *list;
-       gboolean is_new;
-       gint events;
-       gint fd;
-
        g_assert (ares);
        g_assert (sockares);
 
        if (mono_runtime_is_shutting_down ())
                return NULL;
 
-       ensure_initialized ();
+       mono_lazy_initialize (&io_status, initialize);
 
        MONO_OBJECT_SETREF (sockares, ares, ares);
 
-       fd = GPOINTER_TO_INT (sockares->handle);
-
-       mono_mutex_lock (&threadpool_io->states_lock);
-       g_assert (threadpool_io->states);
-
-       list = mono_g_hash_table_lookup (threadpool_io->states, GINT_TO_POINTER (fd));
-       is_new = list == NULL;
-       list = mono_mlist_append (list, (MonoObject*) sockares);
-       mono_g_hash_table_replace (threadpool_io->states, sockares->handle, list);
-
-       events = get_events (list);
+       update_add (GPOINTER_TO_INT (sockares->handle), sockares);
 
-       mono_mutex_lock (&threadpool_io->updates_lock);
-       threadpool_io->updates_size += 1;
-       threadpool_io->updates = g_renew (ThreadPoolIOUpdate, threadpool_io->updates, threadpool_io->updates_size);
-
-       update = &threadpool_io->updates [threadpool_io->updates_size - 1];
-       update->fd = fd;
-       update->events = events;
-       update->is_new = is_new;
-       mono_mutex_unlock (&threadpool_io->updates_lock);
-
-       mono_mutex_unlock (&threadpool_io->states_lock);
+       return ares;
+}
 
-       selector_thread_wakeup ();
+static gboolean
+remove_update_for_socket (ThreadPoolIOUpdate *update, gpointer user_data)
+{
+       if (!update->sockares)
+               return FALSE;
 
-       return ares;
+       return GPOINTER_TO_INT (update->sockares->handle) == GPOINTER_TO_INT (user_data);
 }
 
 void
 mono_threadpool_ms_io_remove_socket (int fd)
 {
-       MonoMList *list;
+       MonoMList *list = NULL;
+       gpointer k;
 
-       if (io_status != STATUS_INITIALIZED)
+       if (!mono_lazy_is_initialized (&io_status))
                return;
 
-       mono_mutex_lock (&threadpool_io->states_lock);
+       mono_mutex_lock (&threadpool_io->lock);
+
        g_assert (threadpool_io->states);
-       list = mono_g_hash_table_lookup (threadpool_io->states, GINT_TO_POINTER (fd));
-       if (list)
+
+       if (mono_g_hash_table_lookup_extended (threadpool_io->states, GINT_TO_POINTER (fd), &k, (gpointer*) &list))
                mono_g_hash_table_remove (threadpool_io->states, GINT_TO_POINTER (fd));
-       mono_mutex_unlock (&threadpool_io->states_lock);
 
-       while (list) {
-               MonoSocketAsyncResult *sockares, *sockares2;
+       update_remove (remove_update_for_socket, GINT_TO_POINTER (fd));
 
-               sockares = (MonoSocketAsyncResult*) mono_mlist_get_data (list);
-               if (sockares->operation == AIO_OP_RECEIVE)
-                       sockares->operation = AIO_OP_RECV_JUST_CALLBACK;
-               else if (sockares->operation == AIO_OP_SEND)
-                       sockares->operation = AIO_OP_SEND_JUST_CALLBACK;
+       mono_mutex_unlock (&threadpool_io->lock);
+
+       for (; list; list = mono_mlist_remove_item (list, list)) {
+               MonoSocketAsyncResult *sockares = (MonoSocketAsyncResult*) mono_mlist_get_data (list);
 
-               sockares2 = get_sockares_for_event (&list, MONO_POLLIN);
-               if (sockares2)
-                       mono_threadpool_ms_enqueue_work_item (((MonoObject*) sockares2)->vtable->domain, (MonoObject*) sockares2);
+               if (!sockares)
+                       continue;
 
-               if (!list)
+               switch (sockares->operation) {
+               case AIO_OP_RECEIVE:
+                       sockares->operation = AIO_OP_RECV_JUST_CALLBACK;
+                       break;
+               case AIO_OP_SEND:
+                       sockares->operation = AIO_OP_SEND_JUST_CALLBACK;
                        break;
+               }
 
-               sockares2 = get_sockares_for_event (&list, MONO_POLLOUT);
-               if (sockares2)
-                       mono_threadpool_ms_enqueue_work_item (((MonoObject*) sockares2)->vtable->domain, (MonoObject*) sockares2);
+               mono_threadpool_ms_enqueue_work_item (((MonoObject*) sockares)->vtable->domain, (MonoObject*) sockares);
        }
+
+       update_add (fd, NULL);
 }
 
 static gboolean
@@ -576,14 +659,42 @@ remove_sockstate_for_domain (gpointer key, gpointer value, gpointer user_data)
        return remove;
 }
 
+static gboolean
+remove_update_for_domain (ThreadPoolIOUpdate *update, gpointer user_data)
+{
+       if (!update->sockares)
+               return FALSE;
+
+       return mono_object_domain (update->sockares) == (MonoDomain*) user_data;
+}
+
 void
 mono_threadpool_ms_io_remove_domain_jobs (MonoDomain *domain)
 {
-       if (io_status == STATUS_INITIALIZED) {
-               mono_mutex_lock (&threadpool_io->states_lock);
-               mono_g_hash_table_foreach_remove (threadpool_io->states, remove_sockstate_for_domain, domain);
-               mono_mutex_unlock (&threadpool_io->states_lock);
-       }
+       if (!mono_lazy_is_initialized (&io_status))
+               return;
+
+       mono_mutex_lock (&threadpool_io->lock);
+
+       mono_g_hash_table_foreach_remove (threadpool_io->states, remove_sockstate_for_domain, domain);
+
+       update_remove (remove_update_for_domain, domain);
+
+       mono_mutex_unlock (&threadpool_io->lock);
+}
+
+void
+icall_append_io_job (MonoObject *target, MonoSocketAsyncResult *state)
+{
+       MonoAsyncResult *ares;
+
+       /* Don't call mono_async_result_new() to avoid capturing the context */
+       ares = (MonoAsyncResult *) mono_object_new (mono_domain_get (), mono_defaults.asyncresult_class);
+       MONO_OBJECT_SETREF (ares, async_delegate, target);
+       MONO_OBJECT_SETREF (ares, async_state, state);
+
+       mono_threadpool_ms_io_add (ares, state);
+       return;
 }
 
 #else
@@ -618,4 +729,10 @@ mono_threadpool_ms_io_remove_domain_jobs (MonoDomain *domain)
        g_assert_not_reached ();
 }
 
-#endif
\ No newline at end of file
+void
+icall_append_io_job (MonoObject *target, MonoSocketAsyncResult *state)
+{
+       g_assert_not_reached ();
+}
+
+#endif
index e8d7f5f2b179db68bbda59077e5958ba00b67525..4a73e0ee6883b43f063b5b8d78cda529d23ed0bd 100644 (file)
@@ -19,4 +19,7 @@ mono_threadpool_ms_io_remove_domain_jobs (MonoDomain *domain);
 void
 mono_threadpool_ms_io_cleanup (void);
 
+void
+icall_append_io_job (MonoObject *target, MonoSocketAsyncResult *state);
+
 #endif /* _MONO_THREADPOOL_MS_IO_H_ */
index 6d8850767ce61548bf9d693dcfb151362080d784..87c55df114f969fe65939bddd9a7a6669b2ed6f7 100644 (file)
 #include <mono/metadata/object-internals.h>
 #include <mono/metadata/threadpool-ms.h>
 #include <mono/metadata/threadpool-ms-io.h>
-#include <mono/metadata/threadpool-internals.h>
 #include <mono/utils/atomic.h>
 #include <mono/utils/mono-compiler.h>
 #include <mono/utils/mono-complex.h>
+#include <mono/utils/mono-lazy-init.h>
+#include <mono/utils/mono-logger.h>
+#include <mono/utils/mono-logger-internal.h>
 #include <mono/utils/mono-proclib.h>
 #include <mono/utils/mono-threads.h>
 #include <mono/utils/mono-time.h>
@@ -45,6 +47,7 @@
 #define CPU_USAGE_HIGH 95
 
 #define MONITOR_INTERVAL 100 // ms
+#define MONITOR_MINIMAL_LIFETIME 60 * 1000 // ms
 
 /* The exponent to apply to the gain. 1.0 means to use linear gain,
  * higher values will enhance large moves and damp small ones.
@@ -161,13 +164,14 @@ typedef enum {
        TRANSITION_UNDEFINED,
 } ThreadPoolHeuristicStateTransition;
 
+static mono_lazy_init_t status = MONO_LAZY_INIT_STATUS_NOT_INITIALIZED;
+
 enum {
        MONITOR_STATUS_REQUESTED,
        MONITOR_STATUS_WAITING_FOR_REQUEST,
        MONITOR_STATUS_NOT_RUNNING,
 };
 
-static gint32 status = STATUS_NOT_INITIALIZED;
 static gint32 monitor_status = MONITOR_STATUS_NOT_RUNNING;
 
 static ThreadPool* threadpool;
@@ -232,27 +236,13 @@ rand_free (gpointer handle)
 }
 
 static void
-ensure_initialized (MonoBoolean *enable_worker_tracking)
+initialize (void)
 {
        ThreadPoolHillClimbing *hc;
        const char *threads_per_cpu_env;
        gint threads_per_cpu;
        gint threads_count;
 
-       if (enable_worker_tracking) {
-               // TODO implement some kind of switch to have the possibily to use it
-               *enable_worker_tracking = FALSE;
-       }
-
-       if (status >= STATUS_INITIALIZED)
-               return;
-       if (status == STATUS_INITIALIZING || InterlockedCompareExchange (&status, STATUS_INITIALIZING, STATUS_NOT_INITIALIZED) != STATUS_NOT_INITIALIZED) {
-               while (status == STATUS_INITIALIZING)
-                       mono_thread_info_yield ();
-               g_assert (status >= STATUS_INITIALIZED);
-               return;
-       }
-
        g_assert (!threadpool);
        threadpool = g_new0 (ThreadPool, 1);
        g_assert (threadpool);
@@ -311,40 +301,26 @@ ensure_initialized (MonoBoolean *enable_worker_tracking)
        threadpool->cpu_usage_state = g_new0 (MonoCpuUsageState, 1);
 
        threadpool->suspended = FALSE;
-
-       status = STATUS_INITIALIZED;
 }
 
 static void worker_unpark (ThreadPoolParkedThread *thread);
 static void worker_kill (ThreadPoolWorkingThread *thread);
 
 static void
-ensure_cleanedup (void)
+cleanup (void)
 {
        guint i;
 
-       if (status == STATUS_NOT_INITIALIZED && InterlockedCompareExchange (&status, STATUS_CLEANED_UP, STATUS_NOT_INITIALIZED) == STATUS_NOT_INITIALIZED)
-               return;
-       if (status == STATUS_INITIALIZING) {
-               while (status == STATUS_INITIALIZING)
-                       mono_thread_info_yield ();
-       }
-       if (status == STATUS_CLEANED_UP)
-               return;
-       if (status == STATUS_CLEANING_UP || InterlockedCompareExchange (&status, STATUS_CLEANING_UP, STATUS_INITIALIZED) != STATUS_INITIALIZED) {
-               while (status == STATUS_CLEANING_UP)
-                       mono_thread_info_yield ();
-               g_assert (status == STATUS_CLEANED_UP);
-               return;
-       }
-
        /* we make the assumption along the code that we are
         * cleaning up only if the runtime is shutting down */
        g_assert (mono_runtime_is_shutting_down ());
 
+       MONO_PREPARE_BLOCKING;
        while (monitor_status != MONITOR_STATUS_NOT_RUNNING)
                g_usleep (1000);
+       MONO_FINISH_BLOCKING;
 
+       MONO_PREPARE_BLOCKING;
        mono_mutex_lock (&threadpool->active_threads_lock);
 
        /* stop all threadpool->working_threads */
@@ -356,8 +332,7 @@ ensure_cleanedup (void)
                worker_unpark ((ThreadPoolParkedThread*) g_ptr_array_index (threadpool->parked_threads, i));
 
        mono_mutex_unlock (&threadpool->active_threads_lock);
-
-       status = STATUS_CLEANED_UP;
+       MONO_FINISH_BLOCKING;
 }
 
 void
@@ -515,10 +490,14 @@ worker_park (void)
        mono_cond_t cond;
        MonoInternalThread *thread = mono_thread_internal_current ();
 
+       mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] current worker parking", GetCurrentThreadId ());
+
        mono_cond_init (&cond, NULL);
 
        mono_gc_set_skip_thread (TRUE);
 
+       MONO_PREPARE_BLOCKING;
+
        mono_mutex_lock (&threadpool->active_threads_lock);
 
        if (!mono_runtime_is_shutting_down ()) {
@@ -533,9 +512,13 @@ worker_park (void)
 
        mono_mutex_unlock (&threadpool->active_threads_lock);
 
+       MONO_FINISH_BLOCKING;
+
        mono_gc_set_skip_thread (FALSE);
 
        mono_cond_destroy (&cond);
+
+       mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] current worker unparking", GetCurrentThreadId ());
 }
 
 static gboolean
@@ -544,6 +527,10 @@ worker_try_unpark (void)
        gboolean res = FALSE;
        guint len;
 
+       mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] try unpark worker", GetCurrentThreadId ());
+
+       MONO_PREPARE_BLOCKING;
+
        mono_mutex_lock (&threadpool->active_threads_lock);
        len = threadpool->parked_threads->len;
        if (len > 0) {
@@ -552,6 +539,11 @@ worker_try_unpark (void)
                res = TRUE;
        }
        mono_mutex_unlock (&threadpool->active_threads_lock);
+
+       MONO_FINISH_BLOCKING;
+
+       mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] try unpark worker, success? %s", GetCurrentThreadId (), res ? "yes" : "no");
+
        return res;
 }
 
@@ -573,22 +565,12 @@ worker_kill (ThreadPoolWorkingThread *thread)
 static void
 worker_thread (gpointer data)
 {
-       static MonoClass *threadpool_wait_callback_class = NULL;
-       static MonoMethod *perform_wait_callback_method = NULL;
        MonoInternalThread *thread;
        ThreadPoolDomain *tpdomain, *previous_tpdomain;
        ThreadPoolCounter counter;
        gboolean retire = FALSE;
 
-       g_assert (status >= STATUS_INITIALIZED);
-
-       if (!threadpool_wait_callback_class)
-               threadpool_wait_callback_class = mono_class_from_name (mono_defaults.corlib, "System.Threading.Microsoft", "_ThreadPoolWaitCallback");
-       g_assert (threadpool_wait_callback_class);
-
-       if (!perform_wait_callback_method)
-               perform_wait_callback_method = mono_class_get_method_from_name (threadpool_wait_callback_class, "PerformWaitCallback", 0);
-       g_assert (perform_wait_callback_method);
+       mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_THREADPOOL, "[%p] worker starting", GetCurrentThreadId ());
 
        g_assert (threadpool);
 
@@ -597,9 +579,11 @@ worker_thread (gpointer data)
 
        mono_thread_set_name_internal (thread, mono_string_new (mono_domain_get (), "Threadpool worker"), FALSE);
 
+       MONO_PREPARE_BLOCKING;
        mono_mutex_lock (&threadpool->active_threads_lock);
        g_ptr_array_add (threadpool->working_threads, thread);
        mono_mutex_unlock (&threadpool->active_threads_lock);
+       MONO_FINISH_BLOCKING;
 
        previous_tpdomain = NULL;
 
@@ -638,6 +622,9 @@ worker_thread (gpointer data)
                tpdomain->outstanding_request --;
                g_assert (tpdomain->outstanding_request >= 0);
 
+               mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] worker running in domain %p",
+                       GetCurrentThreadId (), tpdomain->domain, tpdomain->outstanding_request);
+
                g_assert (tpdomain->domain);
                g_assert (tpdomain->domain->threadpool_jobs >= 0);
                tpdomain->domain->threadpool_jobs ++;
@@ -647,9 +634,9 @@ worker_thread (gpointer data)
                mono_thread_push_appdomain_ref (tpdomain->domain);
                if (mono_domain_set (tpdomain->domain, FALSE)) {
                        MonoObject *exc = NULL;
-                       MonoObject *res = mono_runtime_invoke (perform_wait_callback_method, NULL, NULL, &exc);
+                       MonoObject *res = mono_runtime_invoke (mono_defaults.threadpool_perform_wait_callback_method, NULL, NULL, &exc);
                        if (exc)
-                               mono_internal_thread_unhandled_exception (exc);
+                               mono_thread_internal_unhandled_exception (exc);
                        else if (res && *(MonoBoolean*) mono_object_unbox (res) == FALSE)
                                retire = TRUE;
 
@@ -680,20 +667,27 @@ worker_thread (gpointer data)
 
        mono_mutex_unlock (&threadpool->domains_lock);
 
+       MONO_PREPARE_BLOCKING;
        mono_mutex_lock (&threadpool->active_threads_lock);
        g_ptr_array_remove_fast (threadpool->working_threads, thread);
        mono_mutex_unlock (&threadpool->active_threads_lock);
+       MONO_FINISH_BLOCKING;
 
        COUNTER_ATOMIC (counter, {
                counter._.working--;
                counter._.active --;
        });
+
+       mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_THREADPOOL, "[%p] worker finishing", GetCurrentThreadId ());
 }
 
 static gboolean
 worker_try_create (void)
 {
        ThreadPoolCounter counter;
+       MonoInternalThread *thread;
+
+       mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] try create worker", GetCurrentThreadId ());
 
        COUNTER_ATOMIC (counter, {
                if (counter._.working >= counter._.max_working)
@@ -702,8 +696,13 @@ worker_try_create (void)
                counter._.active ++;
        });
 
-       if (mono_thread_create_internal (mono_get_root_domain (), worker_thread, NULL, TRUE, 0) != NULL)
+       if ((thread = mono_thread_create_internal (mono_get_root_domain (), worker_thread, NULL, TRUE, 0)) != NULL) {
+               mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] try create worker, created %p",
+                       GetCurrentThreadId (), thread->tid);
                return TRUE;
+       }
+
+       mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] try create worker, failed", GetCurrentThreadId ());
 
        COUNTER_ATOMIC (counter, {
                counter._.working --;
@@ -738,6 +737,9 @@ worker_request (MonoDomain *domain)
        g_assert (tpdomain);
        tpdomain->outstanding_request ++;
 
+       mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] request worker, domain = %p, outstanding_request = %d",
+               GetCurrentThreadId (), tpdomain->domain, tpdomain->outstanding_request);
+
        mono_mutex_unlock (&threadpool->domains_lock);
 
        if (threadpool->suspended)
@@ -745,22 +747,48 @@ worker_request (MonoDomain *domain)
 
        monitor_ensure_running ();
 
-       if (worker_try_unpark ())
+       if (worker_try_unpark ()) {
+               mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] request worker, unparked", GetCurrentThreadId ());
                return TRUE;
+       }
 
-       if (worker_try_create ())
+       if (worker_try_create ()) {
+               mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] request worker, created", GetCurrentThreadId ());
                return TRUE;
+       }
 
+       mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] request worker, failed", GetCurrentThreadId ());
        return FALSE;
 }
 
 static gboolean
 monitor_should_keep_running (void)
 {
+       static gint64 last_should_keep_running = -1;
+
        g_assert (monitor_status == MONITOR_STATUS_WAITING_FOR_REQUEST || monitor_status == MONITOR_STATUS_REQUESTED);
 
        if (InterlockedExchange (&monitor_status, MONITOR_STATUS_WAITING_FOR_REQUEST) == MONITOR_STATUS_WAITING_FOR_REQUEST) {
-               if (mono_runtime_is_shutting_down () || !domain_any_has_request ()) {
+               gboolean should_keep_running = TRUE, force_should_keep_running = FALSE;
+
+               if (mono_runtime_is_shutting_down ()) {
+                       should_keep_running = FALSE;
+               } else {
+                       if (!domain_any_has_request ())
+                               should_keep_running = FALSE;
+
+                       if (!should_keep_running) {
+                               if (last_should_keep_running == -1 || mono_100ns_ticks () - last_should_keep_running < MONITOR_MINIMAL_LIFETIME * 1000 * 10) {
+                                       should_keep_running = force_should_keep_running = TRUE;
+                               }
+                       }
+               }
+
+               if (should_keep_running) {
+                       if (last_should_keep_running == -1 || !force_should_keep_running)
+                               last_should_keep_running = mono_100ns_ticks ();
+               } else {
+                       last_should_keep_running = -1;
                        if (InterlockedCompareExchange (&monitor_status, MONITOR_STATUS_NOT_RUNNING, MONITOR_STATUS_WAITING_FOR_REQUEST) == MONITOR_STATUS_WAITING_FOR_REQUEST)
                                return FALSE;
                }
@@ -799,6 +827,8 @@ monitor_thread (void)
 
        mono_cpu_usage (threadpool->cpu_usage_state);
 
+       mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] monitor thread, started", GetCurrentThreadId ());
+
        do {
                MonoInternalThread *thread;
                gboolean all_waitsleepjoin = TRUE;
@@ -834,6 +864,7 @@ monitor_thread (void)
                if (mono_runtime_is_shutting_down () || !domain_any_has_request ())
                        continue;
 
+               MONO_PREPARE_BLOCKING;
                mono_mutex_lock (&threadpool->active_threads_lock);
                for (i = 0; i < threadpool->working_threads->len; ++i) {
                        thread = g_ptr_array_index (threadpool->working_threads, i);
@@ -843,6 +874,7 @@ monitor_thread (void)
                        }
                }
                mono_mutex_unlock (&threadpool->active_threads_lock);
+               MONO_FINISH_BLOCKING;
 
                if (all_waitsleepjoin) {
                        ThreadPoolCounter counter;
@@ -857,14 +889,20 @@ monitor_thread (void)
                                if (mono_runtime_is_shutting_down ())
                                        break;
 
-                               if (worker_try_unpark ())
+                               if (worker_try_unpark ()) {
+                                       mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] monitor thread, unparked", GetCurrentThreadId ());
                                        break;
+                               }
 
-                               if (worker_try_create ())
+                               if (worker_try_create ()) {
+                                       mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] monitor thread, created", GetCurrentThreadId ());
                                        break;
+                               }
                        }
                }
        } while (monitor_should_keep_running ());
+
+       mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] monitor thread, finished", GetCurrentThreadId ());
 }
 
 static void
@@ -900,6 +938,8 @@ hill_climbing_change_thread_count (gint16 new_thread_count, ThreadPoolHeuristicS
 
        hc = &threadpool->heuristic_hill_climbing;
 
+       mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_THREADPOOL, "[%p] hill climbing, change max number of threads %d", GetCurrentThreadId (), new_thread_count);
+
        hc->last_thread_count = new_thread_count;
        hc->current_sample_interval = rand_next (&hc->random_interval_generator, hc->sample_interval_low, hc->sample_interval_high);
        hc->elapsed_since_last_change = 0;
@@ -1219,7 +1259,7 @@ mono_threadpool_ms_cleanup (void)
        #ifndef DISABLE_SOCKETS
                mono_threadpool_ms_io_cleanup ();
        #endif
-       ensure_cleanedup ();
+       mono_lazy_cleanup (&status, cleanup);
 }
 
 MonoAsyncResult *
@@ -1236,7 +1276,7 @@ mono_threadpool_ms_begin_invoke (MonoDomain *domain, MonoObject *target, MonoMet
                async_call_klass = mono_class_from_name (mono_defaults.corlib, "System", "MonoAsyncCall");
        g_assert (async_call_klass);
 
-       ensure_initialized (NULL);
+       mono_lazy_initialize (&status, initialize);
 
        message = mono_method_call_message_new (method, params, mono_get_delegate_invoke (method->klass), (params != NULL) ? (&async_callback) : NULL, (params != NULL) ? (&state) : NULL);
 
@@ -1282,7 +1322,7 @@ mono_threadpool_ms_end_invoke (MonoAsyncResult *ares, MonoArray **out_args, Mono
                return NULL;
        }
 
-       MONO_OBJECT_SETREF (ares, endinvoke_called, 1);
+       ares->endinvoke_called = 1;
 
        /* wait until we are really finished */
        if (ares->completed) {
@@ -1297,9 +1337,9 @@ mono_threadpool_ms_end_invoke (MonoAsyncResult *ares, MonoArray **out_args, Mono
                        MONO_OBJECT_SETREF (ares, handle, (MonoObject*) mono_wait_handle_new (mono_object_domain (ares), wait_event));
                }
                mono_monitor_exit ((MonoObject*) ares);
-               MONO_PREPARE_BLOCKING
+               MONO_PREPARE_BLOCKING;
                WaitForSingleObjectEx (wait_event, INFINITE, TRUE);
-               MONO_FINISH_BLOCKING
+               MONO_FINISH_BLOCKING;
        }
 
        ac = (MonoAsyncCall*) ares->object_data;
@@ -1348,9 +1388,9 @@ mono_threadpool_ms_remove_domain_jobs (MonoDomain *domain, int timeout)
        mono_memory_write_barrier ();
 
        while (domain->threadpool_jobs) {
-               MONO_PREPARE_BLOCKING
+               MONO_PREPARE_BLOCKING;
                WaitForSingleObject (sem, timeout);
-               MONO_FINISH_BLOCKING
+               MONO_FINISH_BLOCKING;
                if (timeout != -1) {
                        timeout -= mono_msec_ticks () - start;
                        if (timeout <= 0) {
@@ -1369,55 +1409,57 @@ mono_threadpool_ms_remove_domain_jobs (MonoDomain *domain, int timeout)
 void
 mono_threadpool_ms_suspend (void)
 {
-       threadpool->suspended = TRUE;
+       if (threadpool)
+               threadpool->suspended = TRUE;
 }
 
 void
 mono_threadpool_ms_resume (void)
 {
-       threadpool->suspended = FALSE;
+       if (threadpool)
+               threadpool->suspended = FALSE;
 }
 
 void
-ves_icall_System_Threading_Microsoft_ThreadPool_GetAvailableThreadsNative (gint32 *worker_threads, gint32 *completion_port_threads)
+ves_icall_System_Threading_ThreadPool_GetAvailableThreadsNative (gint32 *worker_threads, gint32 *completion_port_threads)
 {
        if (!worker_threads || !completion_port_threads)
                return;
 
-       ensure_initialized (NULL);
+       mono_lazy_initialize (&status, initialize);
 
        *worker_threads = threadpool->limit_worker_max;
        *completion_port_threads = threadpool->limit_io_max;
 }
 
 void
-ves_icall_System_Threading_Microsoft_ThreadPool_GetMinThreadsNative (gint32 *worker_threads, gint32 *completion_port_threads)
+ves_icall_System_Threading_ThreadPool_GetMinThreadsNative (gint32 *worker_threads, gint32 *completion_port_threads)
 {
        if (!worker_threads || !completion_port_threads)
                return;
 
-       ensure_initialized (NULL);
+       mono_lazy_initialize (&status, initialize);
 
        *worker_threads = threadpool->limit_worker_min;
        *completion_port_threads = threadpool->limit_io_min;
 }
 
 void
-ves_icall_System_Threading_Microsoft_ThreadPool_GetMaxThreadsNative (gint32 *worker_threads, gint32 *completion_port_threads)
+ves_icall_System_Threading_ThreadPool_GetMaxThreadsNative (gint32 *worker_threads, gint32 *completion_port_threads)
 {
        if (!worker_threads || !completion_port_threads)
                return;
 
-       ensure_initialized (NULL);
+       mono_lazy_initialize (&status, initialize);
 
        *worker_threads = threadpool->limit_worker_max;
        *completion_port_threads = threadpool->limit_io_max;
 }
 
 MonoBoolean
-ves_icall_System_Threading_Microsoft_ThreadPool_SetMinThreadsNative (gint32 worker_threads, gint32 completion_port_threads)
+ves_icall_System_Threading_ThreadPool_SetMinThreadsNative (gint32 worker_threads, gint32 completion_port_threads)
 {
-       ensure_initialized (NULL);
+       mono_lazy_initialize (&status, initialize);
 
        if (worker_threads <= 0 || worker_threads > threadpool->limit_worker_max)
                return FALSE;
@@ -1431,11 +1473,11 @@ ves_icall_System_Threading_Microsoft_ThreadPool_SetMinThreadsNative (gint32 work
 }
 
 MonoBoolean
-ves_icall_System_Threading_Microsoft_ThreadPool_SetMaxThreadsNative (gint32 worker_threads, gint32 completion_port_threads)
+ves_icall_System_Threading_ThreadPool_SetMaxThreadsNative (gint32 worker_threads, gint32 completion_port_threads)
 {
        gint cpu_count = mono_cpu_count ();
 
-       ensure_initialized (NULL);
+       mono_lazy_initialize (&status, initialize);
 
        if (worker_threads < threadpool->limit_worker_min || worker_threads < cpu_count)
                return FALSE;
@@ -1449,13 +1491,18 @@ ves_icall_System_Threading_Microsoft_ThreadPool_SetMaxThreadsNative (gint32 work
 }
 
 void
-ves_icall_System_Threading_Microsoft_ThreadPool_InitializeVMTp (MonoBoolean *enable_worker_tracking)
+ves_icall_System_Threading_ThreadPool_InitializeVMTp (MonoBoolean *enable_worker_tracking)
 {
-       ensure_initialized (enable_worker_tracking);
+       if (enable_worker_tracking) {
+               // TODO implement some kind of switch to have the possibily to use it
+               *enable_worker_tracking = FALSE;
+       }
+
+       mono_lazy_initialize (&status, initialize);
 }
 
 MonoBoolean
-ves_icall_System_Threading_Microsoft_ThreadPool_NotifyWorkItemComplete (void)
+ves_icall_System_Threading_ThreadPool_NotifyWorkItemComplete (void)
 {
        ThreadPoolCounter counter;
 
@@ -1472,7 +1519,7 @@ ves_icall_System_Threading_Microsoft_ThreadPool_NotifyWorkItemComplete (void)
 }
 
 void
-ves_icall_System_Threading_Microsoft_ThreadPool_NotifyWorkItemProgressNative (void)
+ves_icall_System_Threading_ThreadPool_NotifyWorkItemProgressNative (void)
 {
        heuristic_notify_work_completed ();
 
@@ -1481,20 +1528,20 @@ ves_icall_System_Threading_Microsoft_ThreadPool_NotifyWorkItemProgressNative (vo
 }
 
 void
-ves_icall_System_Threading_Microsoft_ThreadPool_ReportThreadStatus (MonoBoolean is_working)
+ves_icall_System_Threading_ThreadPool_ReportThreadStatus (MonoBoolean is_working)
 {
        // TODO
        mono_raise_exception (mono_get_exception_not_implemented (NULL));
 }
 
 MonoBoolean
-ves_icall_System_Threading_Microsoft_ThreadPool_RequestWorkerThread (void)
+ves_icall_System_Threading_ThreadPool_RequestWorkerThread (void)
 {
        return worker_request (mono_domain_get ());
 }
 
 MonoBoolean G_GNUC_UNUSED
-ves_icall_System_Threading_Microsoft_ThreadPool_PostQueuedCompletionStatus (MonoNativeOverlapped *native_overlapped)
+ves_icall_System_Threading_ThreadPool_PostQueuedCompletionStatus (MonoNativeOverlapped *native_overlapped)
 {
        /* This copy the behavior of the current Mono implementation */
        mono_raise_exception (mono_get_exception_not_implemented (NULL));
@@ -1502,14 +1549,14 @@ ves_icall_System_Threading_Microsoft_ThreadPool_PostQueuedCompletionStatus (Mono
 }
 
 MonoBoolean G_GNUC_UNUSED
-ves_icall_System_Threading_Microsoft_ThreadPool_BindIOCompletionCallbackNative (gpointer file_handle)
+ves_icall_System_Threading_ThreadPool_BindIOCompletionCallbackNative (gpointer file_handle)
 {
        /* This copy the behavior of the current Mono implementation */
        return TRUE;
 }
 
 MonoBoolean G_GNUC_UNUSED
-ves_icall_System_Threading_Microsoft_ThreadPool_IsThreadPoolHosted (void)
+ves_icall_System_Threading_ThreadPool_IsThreadPoolHosted (void)
 {
        return FALSE;
 }
index f576293e229d3ca9e2134368d37cf0421cde707b..8aee68c4c035c10b0cfb88870a771de5ccc79d4e 100644 (file)
@@ -5,31 +5,12 @@
 #include <glib.h>
 
 #include <mono/metadata/exception.h>
+#include <mono/metadata/object-internals.h>
 
 #define SMALL_STACK (sizeof (gpointer) * 32 * 1024)
 
-enum {
-       STATUS_NOT_INITIALIZED,
-       STATUS_INITIALIZING,
-       STATUS_INITIALIZED,
-       STATUS_CLEANING_UP,
-       STATUS_CLEANED_UP,
-};
-
 typedef struct _MonoNativeOverlapped MonoNativeOverlapped;
 
-static void G_GNUC_UNUSED
-mono_threadpool_ms_init (void)
-{
-       /* Initialization is done lazily */
-}
-
-static void G_GNUC_UNUSED
-mono_threadpool_ms_init_tls (void)
-{
-       /* The WSQ is now implemented in managed */
-}
-
 void
 mono_threadpool_ms_cleanup (void);
 
@@ -46,42 +27,35 @@ mono_threadpool_ms_suspend (void);
 void
 mono_threadpool_ms_resume (void);
 
-static gboolean G_GNUC_UNUSED
-mono_threadpool_ms_is_queue_array (MonoArray *arr)
-{
-       /* The queue is in managed code */
-       return FALSE;
-}
-
 void
-ves_icall_System_Threading_Microsoft_ThreadPool_GetAvailableThreadsNative (gint32 *worker_threads, gint32 *completion_port_threads);
+ves_icall_System_Threading_ThreadPool_GetAvailableThreadsNative (gint32 *worker_threads, gint32 *completion_port_threads);
 void
-ves_icall_System_Threading_Microsoft_ThreadPool_GetMinThreadsNative (gint32 *worker_threads, gint32 *completion_port_threads);
+ves_icall_System_Threading_ThreadPool_GetMinThreadsNative (gint32 *worker_threads, gint32 *completion_port_threads);
 void
-ves_icall_System_Threading_Microsoft_ThreadPool_GetMaxThreadsNative (gint32 *worker_threads, gint32 *completion_port_threads);
+ves_icall_System_Threading_ThreadPool_GetMaxThreadsNative (gint32 *worker_threads, gint32 *completion_port_threads);
 MonoBoolean
-ves_icall_System_Threading_Microsoft_ThreadPool_SetMinThreadsNative (gint32 worker_threads, gint32 completion_port_threads);
+ves_icall_System_Threading_ThreadPool_SetMinThreadsNative (gint32 worker_threads, gint32 completion_port_threads);
 MonoBoolean
-ves_icall_System_Threading_Microsoft_ThreadPool_SetMaxThreadsNative (gint32 worker_threads, gint32 completion_port_threads);
+ves_icall_System_Threading_ThreadPool_SetMaxThreadsNative (gint32 worker_threads, gint32 completion_port_threads);
 void
-ves_icall_System_Threading_Microsoft_ThreadPool_InitializeVMTp (MonoBoolean *enable_worker_tracking);
+ves_icall_System_Threading_ThreadPool_InitializeVMTp (MonoBoolean *enable_worker_tracking);
 MonoBoolean
-ves_icall_System_Threading_Microsoft_ThreadPool_NotifyWorkItemComplete (void);
+ves_icall_System_Threading_ThreadPool_NotifyWorkItemComplete (void);
 void
-ves_icall_System_Threading_Microsoft_ThreadPool_NotifyWorkItemProgressNative (void);
+ves_icall_System_Threading_ThreadPool_NotifyWorkItemProgressNative (void);
 void
-ves_icall_System_Threading_Microsoft_ThreadPool_ReportThreadStatus (MonoBoolean is_working);
+ves_icall_System_Threading_ThreadPool_ReportThreadStatus (MonoBoolean is_working);
 MonoBoolean
-ves_icall_System_Threading_Microsoft_ThreadPool_RequestWorkerThread (void);
+ves_icall_System_Threading_ThreadPool_RequestWorkerThread (void);
 
 MonoBoolean
-ves_icall_System_Threading_Microsoft_ThreadPool_PostQueuedCompletionStatus (MonoNativeOverlapped *native_overlapped);
+ves_icall_System_Threading_ThreadPool_PostQueuedCompletionStatus (MonoNativeOverlapped *native_overlapped);
 
 MonoBoolean
-ves_icall_System_Threading_Microsoft_ThreadPool_BindIOCompletionCallbackNative (gpointer file_handle);
+ves_icall_System_Threading_ThreadPool_BindIOCompletionCallbackNative (gpointer file_handle);
 
 MonoBoolean
-ves_icall_System_Threading_Microsoft_ThreadPool_IsThreadPoolHosted (void);
+ves_icall_System_Threading_ThreadPool_IsThreadPoolHosted (void);
 
 /* Internals */
 
diff --git a/mono/metadata/threadpool.c b/mono/metadata/threadpool.c
deleted file mode 100644 (file)
index c901d40..0000000
+++ /dev/null
@@ -1,1864 +0,0 @@
-/*
- * threadpool.c: global thread pool
- *
- * Authors:
- *   Dietmar Maurer (dietmar@ximian.com)
- *   Gonzalo Paniagua Javier (gonzalo@ximian.com)
- *
- * Copyright 2001-2003 Ximian, Inc (http://www.ximian.com)
- * Copyright 2004-2010 Novell, Inc (http://www.novell.com)
- * Copyright 2001 Xamarin Inc (http://www.xamarin.com)
- */
-
-#include <config.h>
-#include <glib.h>
-
-#include <mono/metadata/profiler-private.h>
-#include <mono/metadata/threads.h>
-#include <mono/metadata/threads-types.h>
-#include <mono/metadata/threadpool-internals.h>
-#include <mono/metadata/exception.h>
-#include <mono/metadata/environment.h>
-#include <mono/metadata/mono-config.h>
-#include <mono/metadata/mono-mlist.h>
-#include <mono/metadata/mono-perfcounters.h>
-#include <mono/metadata/socket-io.h>
-#include <mono/metadata/mono-cq.h>
-#include <mono/metadata/mono-wsq.h>
-#include <mono/metadata/mono-ptr-array.h>
-#include <mono/metadata/object-internals.h>
-#include <mono/io-layer/io-layer.h>
-#include <mono/utils/mono-time.h>
-#include <mono/utils/mono-proclib.h>
-#include <mono/utils/mono-semaphore.h>
-#include <mono/utils/atomic.h>
-#include <errno.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#include <sys/types.h>
-#include <fcntl.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <string.h>
-#include <math.h>
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#include <mono/utils/mono-poll.h>
-#ifdef HAVE_EPOLL
-#include <sys/epoll.h>
-#endif
-#ifdef HAVE_KQUEUE
-#include <sys/event.h>
-#endif
-
-
-#ifndef DISABLE_SOCKETS
-#include "mono/io-layer/socket-wrappers.h"
-#endif
-
-#include "threadpool.h"
-#include "threadpool-ms.h"
-#include "threadpool-ms-io.h"
-
-static gboolean
-use_ms_threadpool (void)
-{
-       static gboolean use_ms_tp = -1;
-       const gchar *mono_threadpool_env;
-       if (use_ms_tp != -1)
-               return use_ms_tp;
-       else if (!(mono_threadpool_env = g_getenv ("MONO_THREADPOOL")))
-               return use_ms_tp = FALSE;
-       else if (strcmp (mono_threadpool_env, "microsoft") == 0)
-               return use_ms_tp = TRUE;
-       else
-               return use_ms_tp = FALSE;
-}
-
-#define THREAD_WANTS_A_BREAK(t) ((t->state & (ThreadState_StopRequested | \
-                                               ThreadState_SuspendRequested)) != 0)
-
-/* DEBUG: prints tp data every 2s */
-#undef DEBUG 
-
-/* mono_thread_pool_init called */
-static volatile int tp_inited;
-
-enum {
-       POLL_BACKEND,
-       EPOLL_BACKEND,
-       KQUEUE_BACKEND
-};
-
-enum {
-       MONITOR_STATE_AWAKE,
-       MONITOR_STATE_FALLING_ASLEEP,
-       MONITOR_STATE_SLEEPING
-};
-
-static SocketIOData socket_io_data;
-
-typedef struct {
-       MonoSemType lock;
-       MonoCQ *queue; /* GC root */
-       MonoSemType new_job;
-       volatile gint waiting; /* threads waiting for a work item */
-
-       /**/
-       volatile gint pool_status; /* 0 -> not initialized, 1 -> initialized, 2 -> cleaning up */
-       /* min, max, n and busy -> Interlocked */
-       volatile gint min_threads;
-       volatile gint max_threads;
-       volatile gint nthreads;
-       volatile gint busy_threads;
-
-       void (*async_invoke) (gpointer data);
-       void *pc_nitems; /* Performance counter for total number of items in added */
-       void *pc_nthreads; /* Performance counter for total number of active threads */
-       /**/
-       volatile gint destroy_thread;
-#if DEBUG
-       volatile gint32 njobs;
-#endif
-       volatile gint32 nexecuted;
-       gboolean is_io;
-} ThreadPool;
-
-static ThreadPool async_tp;
-static ThreadPool async_io_tp;
-
-static void async_invoke_thread (gpointer data);
-static MonoObject *mono_async_invoke (ThreadPool *tp, MonoAsyncResult *ares);
-static void threadpool_free_queue (ThreadPool *tp);
-static void threadpool_append_job (ThreadPool *tp, MonoObject *ar);
-static void threadpool_append_jobs (ThreadPool *tp, MonoObject **jobs, gint njobs);
-static void threadpool_init (ThreadPool *tp, int min_threads, int max_threads, void (*async_invoke) (gpointer));
-static void threadpool_start_idle_threads (ThreadPool *tp);
-static void threadpool_kill_idle_threads (ThreadPool *tp);
-static gboolean threadpool_start_thread (ThreadPool *tp);
-static void threadpool_kill_thread (ThreadPool *tp);
-static void monitor_thread (gpointer data);
-static int get_event_from_state (MonoSocketAsyncResult *state);
-
-static MonoClass *async_call_klass;
-static MonoClass *socket_async_call_klass;
-static MonoClass *process_async_call_klass;
-
-static GPtrArray *threads;
-mono_mutex_t threads_lock;
-static GPtrArray *wsqs;
-mono_mutex_t wsqs_lock;
-static gboolean suspended;
-
-static volatile gint32 monitor_njobs = 0;
-static volatile gint32 monitor_state;
-static MonoSemType monitor_sem;
-static MonoInternalThread *monitor_internal_thread;
-
-/* Hooks */
-static MonoThreadPoolFunc tp_start_func;
-static MonoThreadPoolFunc tp_finish_func;
-static gpointer tp_hooks_user_data;
-static MonoThreadPoolItemFunc tp_item_begin_func;
-static MonoThreadPoolItemFunc tp_item_end_func;
-static gpointer tp_item_user_data;
-
-enum {
-       AIO_OP_FIRST,
-       AIO_OP_ACCEPT = 0,
-       AIO_OP_CONNECT,
-       AIO_OP_RECEIVE,
-       AIO_OP_RECEIVEFROM,
-       AIO_OP_SEND,
-       AIO_OP_SENDTO,
-       AIO_OP_RECV_JUST_CALLBACK,
-       AIO_OP_SEND_JUST_CALLBACK,
-       AIO_OP_READPIPE,
-       AIO_OP_CONSOLE2,
-       AIO_OP_DISCONNECT,
-       AIO_OP_ACCEPTRECEIVE,
-       AIO_OP_RECEIVE_BUFFERS,
-       AIO_OP_SEND_BUFFERS,
-       AIO_OP_LAST
-};
-
-// #include <mono/metadata/tpool-poll.c>
-gpointer tp_poll_init (SocketIOData *data);
-
-#ifdef HAVE_EPOLL
-#include <mono/metadata/tpool-epoll.c>
-#elif defined(USE_KQUEUE_FOR_THREADPOOL)
-#include <mono/metadata/tpool-kqueue.c>
-#endif
-/*
- * Functions to check whenever a class is given system class. We need to cache things in MonoDomain since some of the
- * assemblies can be unloaded.
- */
-
-static gboolean
-is_system_type (MonoDomain *domain, MonoClass *klass)
-{
-       if (domain->system_image == NULL)
-               domain->system_image = mono_image_loaded ("System");
-
-       return klass->image == domain->system_image;
-}
-
-static gboolean
-is_corlib_type (MonoDomain *domain, MonoClass *klass)
-{
-       return klass->image == mono_defaults.corlib;
-}
-
-#define check_type_cached(domain, ASSEMBLY, _class, _namespace, _name, loc) do { \
-       if (*loc) \
-               return *loc == _class; \
-       if (is_##ASSEMBLY##_type (domain, _class) && !strcmp (_name, _class->name) && !strcmp (_namespace, _class->name_space)) { \
-               *loc = _class; \
-               return TRUE; \
-       } \
-       return FALSE; \
-} while (0) \
-
-#define check_corlib_type_cached(domain, _class, _namespace, _name, loc) check_type_cached (domain, corlib, _class, _namespace, _name, loc)
-
-#define check_system_type_cached(domain, _class, _namespace, _name, loc) check_type_cached (domain, system, _class, _namespace, _name, loc)
-
-static gboolean
-is_corlib_asyncresult (MonoDomain *domain, MonoClass *klass)
-{
-       check_corlib_type_cached (domain, klass, "System.Runtime.Remoting.Messaging", "AsyncResult", &domain->corlib_asyncresult_class);
-}
-
-static gboolean
-is_socketasyncresult (MonoDomain *domain, MonoClass *klass)
-{
-       static MonoClass *socket_async_result_klass = NULL;
-       check_system_type_cached (domain, klass, "System.Net.Sockets", "SocketAsyncResult", &socket_async_result_klass);
-}
-
-static gboolean
-is_socketasynccall (MonoDomain *domain, MonoClass *klass)
-{
-       static MonoClass *socket_async_callback_klass = NULL;
-       check_system_type_cached (domain, klass, "System.Net.Sockets", "SocketAsyncCallback", &socket_async_callback_klass);
-}
-
-static gboolean
-is_appdomainunloaded_exception (MonoDomain *domain, MonoClass *klass)
-{
-       check_corlib_type_cached (domain, klass, "System", "AppDomainUnloadedException", &domain->ad_unloaded_ex_class);
-}
-
-static gboolean
-is_sd_process (MonoDomain *domain, MonoClass *klass)
-{
-       check_system_type_cached (domain, klass, "System.Diagnostics", "Process", &domain->process_class);
-}
-
-static gboolean
-is_sdp_asyncreadhandler (MonoDomain *domain, MonoClass *klass)
-{
-
-       return (klass->nested_in &&
-                       is_sd_process (domain, klass->nested_in) &&
-               !strcmp (klass->name, "AsyncReadHandler"));
-}
-
-
-#ifdef DISABLE_SOCKETS
-
-void
-socket_io_cleanup (SocketIOData *data)
-{
-}
-
-static int
-get_event_from_state (MonoSocketAsyncResult *state)
-{
-       g_assert_not_reached ();
-       return -1;
-}
-
-int
-get_events_from_list (MonoMList *list)
-{
-       return 0;
-}
-
-#else
-
-void
-socket_io_cleanup (SocketIOData *data)
-{
-       mono_mutex_lock (&data->io_lock);
-       if (data->inited != 2) {
-               mono_mutex_unlock (&data->io_lock);
-               return;
-       }
-       data->inited = 3;
-       data->shutdown (data->event_data);
-       mono_mutex_unlock (&data->io_lock);
-}
-
-static int
-get_event_from_state (MonoSocketAsyncResult *state)
-{
-       switch (state->operation) {
-       case AIO_OP_ACCEPT:
-       case AIO_OP_RECEIVE:
-       case AIO_OP_RECV_JUST_CALLBACK:
-       case AIO_OP_RECEIVEFROM:
-       case AIO_OP_READPIPE:
-       case AIO_OP_ACCEPTRECEIVE:
-       case AIO_OP_RECEIVE_BUFFERS:
-               return MONO_POLLIN;
-       case AIO_OP_SEND:
-       case AIO_OP_SEND_JUST_CALLBACK:
-       case AIO_OP_SENDTO:
-       case AIO_OP_CONNECT:
-       case AIO_OP_SEND_BUFFERS:
-       case AIO_OP_DISCONNECT:
-               return MONO_POLLOUT;
-       default: /* Should never happen */
-               g_message ("get_event_from_state: unknown value in switch!!!");
-               return 0;
-       }
-}
-
-int
-get_events_from_list (MonoMList *list)
-{
-       MonoSocketAsyncResult *state;
-       int events = 0;
-
-       while (list && (state = (MonoSocketAsyncResult *)mono_mlist_get_data (list))) {
-               events |= get_event_from_state (state);
-               list = mono_mlist_next (list);
-       }
-
-       return events;
-}
-
-#endif /* !DISABLE_SOCKETS */
-
-static void
-threadpool_jobs_inc (MonoObject *obj)
-{
-       if (obj)
-               InterlockedIncrement (&obj->vtable->domain->threadpool_jobs);
-}
-
-static gboolean
-threadpool_jobs_dec (MonoObject *obj)
-{
-       MonoDomain *domain;
-       int remaining_jobs;
-
-       if (obj == NULL)
-               return FALSE;
-
-       domain = obj->vtable->domain;
-       remaining_jobs = InterlockedDecrement (&domain->threadpool_jobs);
-       if (remaining_jobs == 0 && domain->cleanup_semaphore) {
-               ReleaseSemaphore (domain->cleanup_semaphore, 1, NULL);
-               return TRUE;
-       }
-       return FALSE;
-}
-
-MonoObject *
-get_io_event (MonoMList **list, gint event)
-{
-       MonoObject *state;
-       MonoMList *current;
-       MonoMList *prev;
-
-       current = *list;
-       prev = NULL;
-       state = NULL;
-       while (current) {
-               state = mono_mlist_get_data (current);
-               if (get_event_from_state ((MonoSocketAsyncResult *) state) == event)
-                       break;
-
-               state = NULL;
-               prev = current;
-               current = mono_mlist_next (current);
-       }
-
-       if (current) {
-               if (prev) {
-                       mono_mlist_set_next (prev, mono_mlist_next (current));
-               } else {
-                       *list = mono_mlist_next (*list);
-               }
-       }
-
-       return state;
-}
-
-/*
- * select/poll wake up when a socket is closed, but epoll just removes
- * the socket from its internal list without notification.
- */
-void
-mono_thread_pool_remove_socket (int sock)
-{
-       MonoMList *list;
-       MonoSocketAsyncResult *state;
-       MonoObject *ares;
-
-       if (use_ms_threadpool ()) {
-#ifndef DISABLE_SOCKETS
-               mono_threadpool_ms_io_remove_socket (sock);
-#endif
-               return;
-       }
-
-       if (socket_io_data.inited == 0)
-               return;
-
-       mono_mutex_lock (&socket_io_data.io_lock);
-       if (socket_io_data.sock_to_state == NULL) {
-               mono_mutex_unlock (&socket_io_data.io_lock);
-               return;
-       }
-       list = mono_g_hash_table_lookup (socket_io_data.sock_to_state, GINT_TO_POINTER (sock));
-       if (list)
-               mono_g_hash_table_remove (socket_io_data.sock_to_state, GINT_TO_POINTER (sock));
-       mono_mutex_unlock (&socket_io_data.io_lock);
-       
-       while (list) {
-               state = (MonoSocketAsyncResult *) mono_mlist_get_data (list);
-               if (state->operation == AIO_OP_RECEIVE)
-                       state->operation = AIO_OP_RECV_JUST_CALLBACK;
-               else if (state->operation == AIO_OP_SEND)
-                       state->operation = AIO_OP_SEND_JUST_CALLBACK;
-
-               ares = get_io_event (&list, MONO_POLLIN);
-               threadpool_append_job (&async_io_tp, ares);
-               if (list) {
-                       ares = get_io_event (&list, MONO_POLLOUT);
-                       threadpool_append_job (&async_io_tp, ares);
-               }
-       }
-}
-
-static void
-init_event_system (SocketIOData *data)
-{
-#ifdef HAVE_EPOLL
-       if (data->event_system == EPOLL_BACKEND) {
-               data->event_data = tp_epoll_init (data);
-               if (data->event_data == NULL) {
-                       if (g_getenv ("MONO_DEBUG"))
-                               g_message ("Falling back to poll()");
-                       data->event_system = POLL_BACKEND;
-               }
-       }
-#elif defined(USE_KQUEUE_FOR_THREADPOOL)
-       if (data->event_system == KQUEUE_BACKEND)
-               data->event_data = tp_kqueue_init (data);
-#endif
-       if (data->event_system == POLL_BACKEND)
-               data->event_data = tp_poll_init (data);
-}
-
-static void
-socket_io_init (SocketIOData *data)
-{
-       int inited;
-
-       if (data->inited >= 2) // 2 -> initialized, 3-> cleaned up
-               return;
-
-       inited = InterlockedCompareExchange (&data->inited, 1, 0);
-       if (inited >= 1) {
-               while (TRUE) {
-                       if (data->inited >= 2)
-                               return;
-                       SleepEx (1, FALSE);
-               }
-       }
-
-       mono_mutex_lock (&data->io_lock);
-       data->sock_to_state = mono_g_hash_table_new_type (g_direct_hash, g_direct_equal, MONO_HASH_VALUE_GC);
-#ifdef HAVE_EPOLL
-       data->event_system = EPOLL_BACKEND;
-#elif defined(USE_KQUEUE_FOR_THREADPOOL)
-       data->event_system = KQUEUE_BACKEND;
-#else
-       data->event_system = POLL_BACKEND;
-#endif
-       if (g_getenv ("MONO_DISABLE_AIO") != NULL)
-               data->event_system = POLL_BACKEND;
-
-       init_event_system (data);
-       mono_thread_create_internal (mono_get_root_domain (), data->wait, data, TRUE, SMALL_STACK);
-       mono_mutex_unlock (&data->io_lock);
-       data->inited = 2;
-       threadpool_start_thread (&async_io_tp);
-}
-
-static void
-socket_io_add (MonoAsyncResult *ares, MonoSocketAsyncResult *state)
-{
-       MonoMList *list;
-       SocketIOData *data = &socket_io_data;
-       int fd;
-       gboolean is_new;
-       int ievt;
-
-       socket_io_init (&socket_io_data);
-       if (mono_runtime_is_shutting_down () || data->inited == 3 || data->sock_to_state == NULL)
-               return;
-       if (async_tp.pool_status == 2)
-               return;
-
-       MONO_OBJECT_SETREF (state, ares, ares);
-
-       fd = GPOINTER_TO_INT (state->handle);
-       mono_mutex_lock (&data->io_lock);
-       if (data->sock_to_state == NULL) {
-               mono_mutex_unlock (&data->io_lock);
-               return;
-       }
-       list = mono_g_hash_table_lookup (data->sock_to_state, GINT_TO_POINTER (fd));
-       if (list == NULL) {
-               list = mono_mlist_alloc ((MonoObject*)state);
-               is_new = TRUE;
-       } else {
-               list = mono_mlist_append (list, (MonoObject*)state);
-               is_new = FALSE;
-       }
-
-       mono_g_hash_table_replace (data->sock_to_state, state->handle, list);
-       ievt = get_events_from_list (list);
-       /* The modify function leaves the io_lock critical section. */
-       data->modify (data, fd, state->operation, ievt, is_new);
-}
-
-#ifndef DISABLE_SOCKETS
-static gboolean
-socket_io_filter (MonoObject *target, MonoObject *state)
-{
-       gint op;
-       MonoSocketAsyncResult *sock_res;
-       MonoClass *klass;
-       MonoDomain *domain;
-
-       if (target == NULL || state == NULL)
-               return FALSE;
-
-       domain = target->vtable->domain;
-       klass = target->vtable->klass;
-       if (socket_async_call_klass == NULL && is_socketasynccall (domain, klass))
-               socket_async_call_klass = klass;
-
-       if (process_async_call_klass == NULL && is_sdp_asyncreadhandler (domain, klass))
-               process_async_call_klass = klass;
-
-       if (klass != socket_async_call_klass && klass != process_async_call_klass)
-               return FALSE;
-
-       sock_res = (MonoSocketAsyncResult *) state;
-       op = sock_res->operation;
-       if (op < AIO_OP_FIRST || op >= AIO_OP_LAST)
-               return FALSE;
-
-       return TRUE;
-}
-#endif /* !DISABLE_SOCKETS */
-
-/* Returns the exception thrown when invoking, if any */
-static MonoObject *
-mono_async_invoke (ThreadPool *tp, MonoAsyncResult *ares)
-{
-       MonoObject *exc = NULL;
-
-       mono_async_result_invoke (ares, &exc);
-
-#if DEBUG
-       InterlockedDecrement (&tp->njobs);
-#endif
-       if (!tp->is_io)
-               InterlockedIncrement (&tp->nexecuted);
-
-       if (InterlockedDecrement (&monitor_njobs) == 0)
-               monitor_state = MONITOR_STATE_FALLING_ASLEEP;
-
-       return exc;
-}
-
-static void
-threadpool_start_idle_threads (ThreadPool *tp)
-{
-       int n;
-       guint32 stack_size;
-
-       stack_size = (!tp->is_io) ? 0 : SMALL_STACK;
-       do {
-               while (1) {
-                       n = tp->nthreads;
-                       if (n >= tp->min_threads)
-                               return;
-                       if (InterlockedCompareExchange (&tp->nthreads, n + 1, n) == n)
-                               break;
-               }
-#ifndef DISABLE_PERFCOUNTERS
-               mono_perfcounter_update_value (tp->pc_nthreads, TRUE, 1);
-#endif
-               mono_thread_create_internal (mono_get_root_domain (), tp->async_invoke, tp, TRUE, stack_size);
-               SleepEx (100, TRUE);
-       } while (1);
-}
-
-static void
-threadpool_init (ThreadPool *tp, int min_threads, int max_threads, void (*async_invoke) (gpointer))
-{
-       memset (tp, 0, sizeof (ThreadPool));
-       tp->min_threads = min_threads;
-       tp->max_threads = max_threads;
-       tp->async_invoke = async_invoke;
-       tp->queue = mono_cq_create ();
-       MONO_SEM_INIT (&tp->new_job, 0);
-}
-
-#ifndef DISABLE_PERFCOUNTERS
-static void *
-init_perf_counter (const char *category, const char *counter)
-{
-       MonoString *category_str;
-       MonoString *counter_str;
-       MonoString *machine;
-       MonoDomain *root;
-       MonoBoolean custom;
-       int type;
-
-       if (category == NULL || counter == NULL)
-               return NULL;
-       root = mono_get_root_domain ();
-       category_str = mono_string_new (root, category);
-       counter_str = mono_string_new (root, counter);
-       machine = mono_string_new (root, ".");
-       return mono_perfcounter_get_impl (category_str, counter_str, NULL, machine, &type, &custom);
-}
-#endif
-
-#ifdef DEBUG
-static void
-print_pool_info (ThreadPool *tp)
-{
-
-//     if (tp->tail - tp->head == 0)
-//             return;
-
-       g_print ("Pool status? %d\n", InterlockedCompareExchange (&tp->pool_status, 0, 0));
-       g_print ("Min. threads: %d\n", InterlockedCompareExchange (&tp->min_threads, 0, 0));
-       g_print ("Max. threads: %d\n", InterlockedCompareExchange (&tp->max_threads, 0, 0));
-       g_print ("nthreads: %d\n", InterlockedCompareExchange (&tp->nthreads, 0, 0));
-       g_print ("busy threads: %d\n", InterlockedCompareExchange (&tp->busy_threads, 0, 0));
-       g_print ("Waiting: %d\n", InterlockedCompareExchange (&tp->waiting, 0, 0));
-       g_print ("Queued: %d\n", (tp->tail - tp->head));
-       if (tp == &async_tp) {
-               int i;
-               mono_mutex_lock (&wsqs_lock);
-               for (i = 0; i < wsqs->len; i++) {
-                       g_print ("\tWSQ %d: %d\n", i, mono_wsq_count (g_ptr_array_index (wsqs, i)));
-               }
-               mono_mutex_unlock (&wsqs_lock);
-       } else {
-               g_print ("\tSockets: %d\n", mono_g_hash_table_size (socket_io_data.sock_to_state));
-       }
-       g_print ("-------------\n");
-}
-
-static void
-signal_handler (int signo)
-{
-       ThreadPool *tp;
-
-       tp = &async_tp;
-       g_print ("\n-----Non-IO-----\n");
-       print_pool_info (tp);
-       tp = &async_io_tp;
-       g_print ("\n-----IO-----\n");
-       print_pool_info (tp);
-       alarm (2);
-}
-#endif
-
-#define SAMPLES_PERIOD 500
-#define HISTORY_SIZE 10
-/* number of iteration without any jobs
-   in the queue before going to sleep */
-#define NUM_WAITING_ITERATIONS 10
-
-typedef struct {
-       gint32 nexecuted;
-       gint32 nthreads;
-       gint8 nthreads_diff;
-} SamplesHistory;
-
-/*
- * returns :
- *  -  1 if the number of threads should increase
- *  -  0 if it should not change
- *  - -1 if it should decrease
- *  - -2 in case of error
- */
-static gint8
-monitor_heuristic (gint16 *current, gint16 *history_size, SamplesHistory *history, ThreadPool *tp)
-{
-       int i;
-       gint8 decision G_GNUC_UNUSED;
-       gint16 cur, max = 0;
-       gboolean all_waitsleepjoin;
-       MonoInternalThread *thread;
-
-       /*
-        * The following heuristic tries to approach the optimal number of threads to maximize jobs throughput. To
-        * achieve this, it simply stores the number of jobs executed (nexecuted), the number of Threads (nthreads)
-        * and the decision (nthreads_diff) for the past HISTORY_SIZE periods of time, each period being of
-        * duration SAMPLES_PERIOD ms. This history gives us an insight into what happened, and to see if we should
-        * increase or reduce the number of threads by comparing the last period (current) to the best one.
-        *
-        * The algorithm can be describe as following :
-        *  - if we have a better throughput than the best period : we should either increase the number of threads
-        *     in case we already have more threads, either reduce the number of threads if we have less threads; this
-        *     is equivalent to move away from the number of threads of the best period, because we are currently better
-        *  - if we have a worse throughput than the best period : we should either decrease the number of threads if
-        *     we have more threads, either increase the number of threads if we have less threads;  this is equivalent
-        *     to get closer to the number of threads of the best period, because we are currently worse
-        */
-
-       *history_size = MIN (*history_size + 1, HISTORY_SIZE);
-       cur = *current = (*current + 1) % *history_size;
-
-       history [cur].nthreads = tp->nthreads;
-       history [cur].nexecuted = InterlockedExchange (&tp->nexecuted, 0);
-
-       if (tp->waiting) {
-               /* if we have waiting thread in the pool, then do not create a new one */
-               history [cur].nthreads_diff = tp->waiting > 1 ? -1 : 0;
-               decision = 0;
-       } else if (tp->nthreads < tp->min_threads) {
-               history [cur].nthreads_diff = 1;
-               decision = 1;
-       } else if (*history_size <= 1) {
-               /* first iteration, let's add a thread by default */
-               history [cur].nthreads_diff = 1;
-               decision = 2;
-       } else {
-               mono_mutex_lock (&threads_lock);
-               if (threads == NULL) {
-                       mono_mutex_unlock (&threads_lock);
-                       return -2;
-               }
-               all_waitsleepjoin = TRUE;
-               for (i = 0; i < threads->len; ++i) {
-                       thread = g_ptr_array_index (threads, i);
-                       if (!(thread->state & ThreadState_WaitSleepJoin)) {
-                               all_waitsleepjoin = FALSE;
-                               break;
-                       }
-               }
-               mono_mutex_unlock (&threads_lock);
-
-               if (all_waitsleepjoin) {
-                       /* we might be in a condition of starvation/deadlock with tasks waiting for each others */
-                       history [cur].nthreads_diff = 1;
-                       decision = 5;
-               } else {
-                       max = cur == 0 ? 1 : 0;
-                       for (i = 0; i < *history_size; i++) {
-                               if (i == cur)
-                                       continue;
-                               if (history [i].nexecuted > history [max].nexecuted)
-                                       max = i;
-                       }
-
-                       if (history [cur].nexecuted >= history [max].nexecuted) {
-                               /* we improved the situation, let's continue ! */
-                               history [cur].nthreads_diff = history [cur].nthreads >= history [max].nthreads ? 1 : -1;
-                               decision = 3;
-                       } else {
-                               /* we made it worse, let's return to previous situation */
-                               history [cur].nthreads_diff = history [cur].nthreads >= history [max].nthreads ? -1 : 1;
-                               decision = 4;
-                       }
-               }
-       }
-
-#if DEBUG
-       printf ("monitor_thread: decision: %1d, history [current]: {nexecuted: %5d, nthreads: %3d, waiting: %2d, nthreads_diff: %2d}, history [max]: {nexecuted: %5d, nthreads: %3d}\n",
-                       decision, history [cur].nexecuted, history [cur].nthreads, tp->waiting, history [cur].nthreads_diff, history [max].nexecuted, history [max].nthreads);
-#endif
-       
-       return history [cur].nthreads_diff;
-}
-
-static void
-monitor_thread (gpointer unused)
-{
-       ThreadPool *pools [2];
-       MonoInternalThread *thread;
-       int i;
-
-       guint32 ms;
-       gint8 num_waiting_iterations = 0;
-
-       gint16 history_size = 0, current = -1;
-       SamplesHistory *history = malloc (sizeof (SamplesHistory) * HISTORY_SIZE);
-
-       pools [0] = &async_tp;
-       pools [1] = &async_io_tp;
-       thread = mono_thread_internal_current ();
-       ves_icall_System_Threading_Thread_SetName_internal (thread, mono_string_new (mono_domain_get (), "Threadpool monitor"));
-       while (1) {
-               ms = SAMPLES_PERIOD;
-               i = 10; //number of spurious awakes we tolerate before doing a round of rebalancing.
-               mono_gc_set_skip_thread (TRUE);
-               MONO_PREPARE_BLOCKING
-               do {
-                       guint32 ts;
-                       ts = mono_msec_ticks ();
-                       if (SleepEx (ms, TRUE) == 0)
-                               break;
-                       ms -= (mono_msec_ticks () - ts);
-                       if (mono_runtime_is_shutting_down ())
-                               break;
-                       check_for_interruption_critical ();
-               } while (ms > 0 && i--);
-               MONO_FINISH_BLOCKING
-               mono_gc_set_skip_thread (FALSE);
-
-               if (mono_runtime_is_shutting_down ())
-                       break;
-
-               if (suspended)
-                       continue;
-
-               /* threadpool is cleaning up */
-               if (async_tp.pool_status == 2 || async_io_tp.pool_status == 2)
-                       break;
-
-               MONO_PREPARE_BLOCKING
-               switch (monitor_state) {
-               case MONITOR_STATE_AWAKE:
-                       num_waiting_iterations = 0;
-                       break;
-               case MONITOR_STATE_FALLING_ASLEEP:
-                       if (++num_waiting_iterations == NUM_WAITING_ITERATIONS) {
-                               if (monitor_state == MONITOR_STATE_FALLING_ASLEEP && InterlockedCompareExchange (&monitor_state, MONITOR_STATE_SLEEPING, MONITOR_STATE_FALLING_ASLEEP) == MONITOR_STATE_FALLING_ASLEEP) {
-                                       MONO_SEM_WAIT (&monitor_sem);
-
-                                       num_waiting_iterations = 0;
-                                       current = -1;
-                                       history_size = 0;
-                               }
-                       }
-                       break;
-               case MONITOR_STATE_SLEEPING:
-                       g_assert_not_reached ();
-               }
-               MONO_FINISH_BLOCKING
-
-               for (i = 0; i < 2; i++) {
-                       ThreadPool *tp;
-                       tp = pools [i];
-
-                       if (tp->is_io) {
-                               if (!tp->waiting && mono_cq_count (tp->queue) > 0)
-                                       threadpool_start_thread (tp);
-                       } else {
-                               gint8 nthreads_diff = monitor_heuristic (&current, &history_size, history, tp);
-
-                               if (nthreads_diff == 1)
-                                       threadpool_start_thread (tp);
-                               else if (nthreads_diff == -1)
-                                       threadpool_kill_thread (tp);
-                       }
-               }
-       }
-}
-
-void
-mono_thread_pool_init_tls (void)
-{
-       if (use_ms_threadpool ()) {
-               mono_threadpool_ms_init_tls ();
-               return;
-       }
-
-       mono_wsq_init ();
-}
-
-void
-mono_thread_pool_init (void)
-{
-       gint threads_per_cpu = 1;
-       gint thread_count;
-       gint cpu_count;
-       int result;
-       
-       if (use_ms_threadpool ()) {
-               mono_threadpool_ms_init ();
-               return;
-       }
-
-       cpu_count = mono_cpu_count ();
-
-       if (tp_inited == 2)
-               return;
-
-       result = InterlockedCompareExchange (&tp_inited, 1, 0);
-       if (result == 1) {
-               while (1) {
-                       SleepEx (1, FALSE);
-                       if (tp_inited == 2)
-                               return;
-               }
-       }
-
-       MONO_GC_REGISTER_ROOT_FIXED (socket_io_data.sock_to_state);
-       mono_mutex_init_recursive (&socket_io_data.io_lock);
-       if (g_getenv ("MONO_THREADS_PER_CPU") != NULL) {
-               threads_per_cpu = atoi (g_getenv ("MONO_THREADS_PER_CPU"));
-               if (threads_per_cpu < 1)
-                       threads_per_cpu = 1;
-       }
-
-       thread_count = MIN (cpu_count * threads_per_cpu, 100 * cpu_count);
-       threadpool_init (&async_tp, thread_count, MAX (100 * cpu_count, thread_count), async_invoke_thread);
-       threadpool_init (&async_io_tp, cpu_count * 2, cpu_count * 4, async_invoke_thread);
-       async_io_tp.is_io = TRUE;
-
-       async_call_klass = mono_class_from_name (mono_defaults.corlib, "System", "MonoAsyncCall");
-       g_assert (async_call_klass);
-
-       mono_mutex_init (&threads_lock);
-       threads = g_ptr_array_sized_new (thread_count);
-       g_assert (threads);
-
-       mono_mutex_init_recursive (&wsqs_lock);
-       wsqs = g_ptr_array_sized_new (MAX (100 * cpu_count, thread_count));
-
-#ifndef DISABLE_PERFCOUNTERS
-       async_tp.pc_nitems = init_perf_counter ("Mono Threadpool", "Work Items Added");
-       g_assert (async_tp.pc_nitems);
-
-       async_io_tp.pc_nitems = init_perf_counter ("Mono Threadpool", "IO Work Items Added");
-       g_assert (async_io_tp.pc_nitems);
-
-       async_tp.pc_nthreads = init_perf_counter ("Mono Threadpool", "# of Threads");
-       g_assert (async_tp.pc_nthreads);
-
-       async_io_tp.pc_nthreads = init_perf_counter ("Mono Threadpool", "# of IO Threads");
-       g_assert (async_io_tp.pc_nthreads);
-#endif
-       tp_inited = 2;
-#ifdef DEBUG
-       signal (SIGALRM, signal_handler);
-       alarm (2);
-#endif
-
-       MONO_SEM_INIT (&monitor_sem, 0);
-       monitor_state = MONITOR_STATE_AWAKE;
-       monitor_njobs = 0;
-}
-
-static MonoAsyncResult *
-create_simple_asyncresult (MonoObject *target, MonoObject *state)
-{
-       MonoDomain *domain = mono_domain_get ();
-       MonoAsyncResult *ares;
-
-       /* Don't call mono_async_result_new() to avoid capturing the context */
-       ares = (MonoAsyncResult *) mono_object_new (domain, mono_defaults.asyncresult_class);
-       MONO_OBJECT_SETREF (ares, async_delegate, target);
-       MONO_OBJECT_SETREF (ares, async_state, state);
-       return ares;
-}
-
-void
-icall_append_io_job (MonoObject *target, MonoSocketAsyncResult *state)
-{
-       MonoAsyncResult *ares;
-
-       ares = create_simple_asyncresult (target, (MonoObject *) state);
-
-       if (use_ms_threadpool ()) {
-#ifndef DISABLE_SOCKETS
-               mono_threadpool_ms_io_add (ares, state);
-#endif
-               return;
-       }
-
-       socket_io_add (ares, state);
-}
-
-MonoAsyncResult *
-mono_thread_pool_begin_invoke (MonoDomain *domain, MonoObject *target, MonoMethod *method, gpointer *params)
-{
-       MonoMethodMessage *message;
-       MonoAsyncResult *async_result;
-       MonoAsyncCall *async_call;
-       MonoDelegate *async_callback = NULL;
-       MonoObject *state = NULL;
-
-       if (use_ms_threadpool ())
-               return mono_threadpool_ms_begin_invoke (domain, target, method, params);
-
-       message = mono_method_call_message_new (method, params, mono_get_delegate_invoke (method->klass), (params != NULL) ? (&async_callback) : NULL, (params != NULL) ? (&state) : NULL);
-
-       async_call = (MonoAsyncCall*)mono_object_new (domain, async_call_klass);
-       MONO_OBJECT_SETREF (async_call, msg, message);
-       MONO_OBJECT_SETREF (async_call, state, state);
-
-       if (async_callback) {
-               async_call->cb_method = mono_get_delegate_invoke (((MonoObject*) async_callback)->vtable->klass);
-               MONO_OBJECT_SETREF (async_call, cb_target, async_callback);
-       }
-
-       async_result = mono_async_result_new (domain, NULL, async_call->state, NULL, (MonoObject*) async_call);
-       MONO_OBJECT_SETREF (async_result, async_delegate, target);
-
-#ifndef DISABLE_SOCKETS
-       if (socket_io_filter (target, state)) {
-               socket_io_add (async_result, (MonoSocketAsyncResult *) state);
-               return async_result;
-       }
-#endif
-       threadpool_append_job (&async_tp, (MonoObject *) async_result);
-       return async_result;
-}
-
-MonoObject *
-mono_thread_pool_end_invoke (MonoAsyncResult *ares, MonoArray **out_args, MonoObject **exc)
-{
-       MonoAsyncCall *ac;
-       HANDLE wait_event;
-
-       if (use_ms_threadpool ()) {
-               return mono_threadpool_ms_end_invoke (ares, out_args, exc);
-       }
-
-       *exc = NULL;
-       *out_args = NULL;
-
-       /* check if already finished */
-       mono_monitor_enter ((MonoObject *) ares);
-       
-       if (ares->endinvoke_called) {
-               *exc = (MonoObject *) mono_get_exception_invalid_operation (NULL);
-               mono_monitor_exit ((MonoObject *) ares);
-               return NULL;
-       }
-
-       ares->endinvoke_called = 1;
-       /* wait until we are really finished */
-       if (!ares->completed) {
-               if (ares->handle == NULL) {
-                       wait_event = CreateEvent (NULL, TRUE, FALSE, NULL);
-                       g_assert(wait_event != 0);
-                       MONO_OBJECT_SETREF (ares, handle, (MonoObject *) mono_wait_handle_new (mono_object_domain (ares), wait_event));
-               } else {
-                       wait_event = mono_wait_handle_get_handle ((MonoWaitHandle *) ares->handle);
-               }
-               mono_monitor_exit ((MonoObject *) ares);
-               MONO_PREPARE_BLOCKING
-               WaitForSingleObjectEx (wait_event, INFINITE, TRUE);
-               MONO_FINISH_BLOCKING
-       } else {
-               mono_monitor_exit ((MonoObject *) ares);
-       }
-
-       ac = (MonoAsyncCall *) ares->object_data;
-       g_assert (ac != NULL);
-       *exc = ac->msg->exc; /* FIXME: GC add write barrier */
-       *out_args = ac->out_args;
-
-       return ac->res;
-}
-
-static void
-threadpool_kill_idle_threads (ThreadPool *tp)
-{
-       gint n;
-
-       n = (gint) InterlockedCompareExchange (&tp->max_threads, 0, -1);
-       while (n) {
-               n--;
-               MONO_SEM_POST (&tp->new_job);
-       }
-}
-
-void
-mono_thread_pool_cleanup (void)
-{
-       if (use_ms_threadpool ()) {
-               mono_threadpool_ms_cleanup ();
-               return;
-       }
-
-       if (InterlockedExchange (&async_io_tp.pool_status, 2) == 1) {
-               socket_io_cleanup (&socket_io_data); /* Empty when DISABLE_SOCKETS is defined */
-               threadpool_kill_idle_threads (&async_io_tp);
-       }
-
-       if (async_io_tp.queue != NULL) {
-               MONO_SEM_DESTROY (&async_io_tp.new_job);
-               threadpool_free_queue (&async_io_tp);
-       }
-
-
-       if (InterlockedExchange (&async_tp.pool_status, 2) == 1) {
-               threadpool_kill_idle_threads (&async_tp);
-               threadpool_free_queue (&async_tp);
-       }
-       
-       if (threads) {
-               mono_mutex_lock (&threads_lock);
-               if (threads)
-                       g_ptr_array_free (threads, FALSE);
-               threads = NULL;
-               mono_mutex_unlock (&threads_lock);
-       }
-
-       if (wsqs) {
-               mono_mutex_lock (&wsqs_lock);
-               mono_wsq_cleanup ();
-               if (wsqs)
-                       g_ptr_array_free (wsqs, TRUE);
-               wsqs = NULL;
-               mono_mutex_unlock (&wsqs_lock);
-               MONO_SEM_DESTROY (&async_tp.new_job);
-       }
-
-       MONO_SEM_DESTROY (&monitor_sem);
-}
-
-static gboolean
-threadpool_start_thread (ThreadPool *tp)
-{
-       gint n;
-       guint32 stack_size;
-       MonoInternalThread *thread;
-
-       stack_size = (!tp->is_io) ? 0 : SMALL_STACK;
-       while (!mono_runtime_is_shutting_down () && (n = tp->nthreads) < tp->max_threads) {
-               if (InterlockedCompareExchange (&tp->nthreads, n + 1, n) == n) {
-#ifndef DISABLE_PERFCOUNTERS
-                       mono_perfcounter_update_value (tp->pc_nthreads, TRUE, 1);
-#endif
-                       if (tp->is_io) {
-                               thread = mono_thread_create_internal (mono_get_root_domain (), tp->async_invoke, tp, TRUE, stack_size);
-                       } else {
-                               mono_mutex_lock (&threads_lock);
-                               thread = mono_thread_create_internal (mono_get_root_domain (), tp->async_invoke, tp, TRUE, stack_size);
-                               g_assert (threads != NULL);
-                               g_ptr_array_add (threads, thread);
-                               mono_mutex_unlock (&threads_lock);
-                       }
-                       return TRUE;
-               }
-       }
-
-       return FALSE;
-}
-
-static void
-pulse_on_new_job (ThreadPool *tp)
-{
-       if (tp->waiting)
-               MONO_SEM_POST (&tp->new_job);
-}
-
-static void
-threadpool_kill_thread (ThreadPool *tp)
-{
-       if (tp->destroy_thread == 0 && InterlockedCompareExchange (&tp->destroy_thread, 1, 0) == 0)
-               pulse_on_new_job (tp);
-}
-
-void
-icall_append_job (MonoObject *ar)
-{
-       threadpool_append_jobs (&async_tp, &ar, 1);
-}
-
-static void
-threadpool_append_job (ThreadPool *tp, MonoObject *ar)
-{
-       threadpool_append_jobs (tp, &ar, 1);
-}
-
-void
-threadpool_append_async_io_jobs (MonoObject **jobs, gint njobs)
-{
-       threadpool_append_jobs (&async_io_tp, jobs, njobs);
-}
-
-static void
-threadpool_append_jobs (ThreadPool *tp, MonoObject **jobs, gint njobs)
-{
-       MonoObject *ar;
-       gint i;
-
-       if (mono_runtime_is_shutting_down ())
-               return;
-
-       if (tp->pool_status == 0 && InterlockedCompareExchange (&tp->pool_status, 1, 0) == 0) {
-               if (!tp->is_io) {
-                       monitor_internal_thread = mono_thread_create_internal (mono_get_root_domain (), monitor_thread, NULL, TRUE, SMALL_STACK);
-                       monitor_internal_thread->flags |= MONO_THREAD_FLAG_DONT_MANAGE;
-                       threadpool_start_thread (tp);
-               }
-               /* Create on demand up to min_threads to avoid startup penalty for apps that don't use
-                * the threadpool that much
-                */
-               if (mono_config_is_server_mode ()) {
-                       mono_thread_create_internal (mono_get_root_domain (), threadpool_start_idle_threads, tp, TRUE, SMALL_STACK);
-               }
-       }
-
-       InterlockedAdd (&monitor_njobs, njobs);
-
-       if (monitor_state == MONITOR_STATE_SLEEPING && InterlockedCompareExchange (&monitor_state, MONITOR_STATE_AWAKE, MONITOR_STATE_SLEEPING) == MONITOR_STATE_SLEEPING)
-               MONO_SEM_POST (&monitor_sem);
-
-       if (monitor_state == MONITOR_STATE_FALLING_ASLEEP)
-               InterlockedCompareExchange (&monitor_state, MONITOR_STATE_AWAKE, MONITOR_STATE_FALLING_ASLEEP);
-
-       for (i = 0; i < njobs; i++) {
-               ar = jobs [i];
-               if (ar == NULL || mono_domain_is_unloading (ar->vtable->domain))
-                       continue; /* Might happen when cleaning domain jobs */
-               threadpool_jobs_inc (ar); 
-#ifndef DISABLE_PERFCOUNTERS
-               mono_perfcounter_update_value (tp->pc_nitems, TRUE, 1);
-#endif
-               if (!tp->is_io && mono_wsq_local_push (ar))
-                       continue;
-
-               mono_cq_enqueue (tp->queue, ar);
-       }
-
-#if DEBUG
-       InterlockedAdd (&tp->njobs, njobs);
-#endif
-
-       for (i = 0; tp->waiting > 0 && i < MIN(njobs, tp->max_threads); i++)
-               pulse_on_new_job (tp);
-}
-
-static void
-threadpool_clear_queue (ThreadPool *tp, MonoDomain *domain)
-{
-       MonoObject *obj;
-       MonoMList *other = NULL;
-       MonoCQ *queue = tp->queue;
-
-       if (!queue)
-               return;
-
-       while (mono_cq_dequeue (queue, &obj)) {
-               if (obj == NULL)
-                       continue;
-               if (obj->vtable->domain != domain)
-                       other = mono_mlist_prepend (other, obj);
-               threadpool_jobs_dec (obj);
-       }
-
-       if (mono_runtime_is_shutting_down ())
-               return;
-
-       while (other) {
-               threadpool_append_job (tp, (MonoObject *) mono_mlist_get_data (other));
-               other = mono_mlist_next (other);
-       }
-}
-
-static gboolean
-remove_sockstate_for_domain (gpointer key, gpointer value, gpointer user_data)
-{
-       MonoMList *list = value;
-       gboolean remove = FALSE;
-       while (list) {
-               MonoObject *data = mono_mlist_get_data (list);
-               if (mono_object_domain (data) == user_data) {
-                       remove = TRUE;
-                       mono_mlist_set_data (list, NULL);
-               }
-               list = mono_mlist_next (list);
-       }
-       //FIXME is there some sort of additional unregistration we need to perform here?
-       return remove;
-}
-
-/*
- * Clean up the threadpool of all domain jobs.
- * Can only be called as part of the domain unloading process as
- * it will wait for all jobs to be visible to the interruption code. 
- */
-gboolean
-mono_thread_pool_remove_domain_jobs (MonoDomain *domain, int timeout)
-{
-       HANDLE sem_handle;
-       int result;
-       guint32 start_time;
-
-       if (use_ms_threadpool ()) {
-               return mono_threadpool_ms_remove_domain_jobs (domain, timeout);
-       }
-
-       result = TRUE;
-       start_time = 0;
-
-       g_assert (domain->state == MONO_APPDOMAIN_UNLOADING);
-
-       threadpool_clear_queue (&async_tp, domain);
-       threadpool_clear_queue (&async_io_tp, domain);
-
-       mono_mutex_lock (&socket_io_data.io_lock);
-       if (socket_io_data.sock_to_state)
-               mono_g_hash_table_foreach_remove (socket_io_data.sock_to_state, remove_sockstate_for_domain, domain);
-
-       mono_mutex_unlock (&socket_io_data.io_lock);
-       
-       /*
-        * There might be some threads out that could be about to execute stuff from the given domain.
-        * We avoid that by setting up a semaphore to be pulsed by the thread that reaches zero.
-        */
-       sem_handle = CreateSemaphore (NULL, 0, 1, NULL);
-
-       domain->cleanup_semaphore = sem_handle;
-       /*
-        * The memory barrier here is required to have global ordering between assigning to cleanup_semaphone
-        * and reading threadpool_jobs.
-        * Otherwise this thread could read a stale version of threadpool_jobs and wait forever.
-        */
-       mono_memory_write_barrier ();
-
-       if (domain->threadpool_jobs && timeout != -1)
-               start_time = mono_msec_ticks ();
-       while (domain->threadpool_jobs) {
-               MONO_PREPARE_BLOCKING
-               WaitForSingleObject (sem_handle, timeout);
-               MONO_FINISH_BLOCKING
-               if (timeout != -1 && (mono_msec_ticks () - start_time) > timeout) {
-                       result = FALSE;
-                       break;
-               }
-       }
-
-       domain->cleanup_semaphore = NULL;
-       CloseHandle (sem_handle);
-       return result;
-}
-
-static void
-threadpool_free_queue (ThreadPool *tp)
-{
-       mono_cq_destroy (tp->queue);
-       tp->queue = NULL;
-}
-
-gboolean
-mono_thread_pool_is_queue_array (MonoArray *o)
-{
-       if (use_ms_threadpool ()) {
-               return mono_threadpool_ms_is_queue_array (o);
-       }
-
-       // gpointer obj = o;
-
-       // FIXME: need some fix in sgen code.
-       return FALSE;
-}
-
-static MonoWSQ *
-add_wsq (void)
-{
-       int i;
-       MonoWSQ *wsq;
-
-       mono_mutex_lock (&wsqs_lock);
-       wsq = mono_wsq_create ();
-       if (wsqs == NULL) {
-               mono_mutex_unlock (&wsqs_lock);
-               return NULL;
-       }
-       for (i = 0; i < wsqs->len; i++) {
-               if (g_ptr_array_index (wsqs, i) == NULL) {
-                       wsqs->pdata [i] = wsq;
-                       mono_mutex_unlock (&wsqs_lock);
-                       return wsq;
-               }
-       }
-       g_ptr_array_add (wsqs, wsq);
-       mono_mutex_unlock (&wsqs_lock);
-       return wsq;
-}
-
-static void
-remove_wsq (MonoWSQ *wsq)
-{
-       gpointer data;
-
-       if (wsq == NULL)
-               return;
-
-       mono_mutex_lock (&wsqs_lock);
-       if (wsqs == NULL) {
-               mono_mutex_unlock (&wsqs_lock);
-               return;
-       }
-       g_ptr_array_remove_fast (wsqs, wsq);
-       data = NULL;
-       /*
-        * Only clean this up when shutting down, any other case will error out
-        * if we're removing a queue that still has work items.
-        */
-       if (mono_runtime_is_shutting_down ()) {
-               while (mono_wsq_local_pop (&data)) {
-                       threadpool_jobs_dec (data);
-                       data = NULL;
-               }
-       }
-       mono_wsq_destroy (wsq);
-       mono_mutex_unlock (&wsqs_lock);
-}
-
-static void
-try_steal (MonoWSQ *local_wsq, gpointer *data, gboolean retry)
-{
-       int i;
-       int ms;
-
-       if (wsqs == NULL || data == NULL || *data != NULL)
-               return;
-
-       ms = 0;
-       do {
-               if (mono_runtime_is_shutting_down ())
-                       return;
-
-               MONO_PREPARE_BLOCKING
-               mono_mutex_lock (&wsqs_lock);
-               MONO_FINISH_BLOCKING
-               for (i = 0; wsqs != NULL && i < wsqs->len; i++) {
-                       MonoWSQ *wsq;
-
-                       wsq = wsqs->pdata [i];
-                       if (wsq == local_wsq || mono_wsq_count (wsq) == 0)
-                               continue;
-                       mono_wsq_try_steal (wsqs->pdata [i], data, ms);
-                       if (*data != NULL) {
-                               mono_mutex_unlock (&wsqs_lock);
-                               return;
-                       }
-               }
-               mono_mutex_unlock (&wsqs_lock);
-               ms += 10;
-       } while (retry && ms < 11);
-}
-
-static gboolean
-dequeue_or_steal (ThreadPool *tp, gpointer *data, MonoWSQ *local_wsq)
-{
-       MonoCQ *queue = tp->queue;
-       if (mono_runtime_is_shutting_down () || !queue)
-               return FALSE;
-       mono_cq_dequeue (queue, (MonoObject **) data);
-       if (!tp->is_io && !*data)
-               try_steal (local_wsq, data, FALSE);
-       return (*data != NULL);
-}
-
-static gboolean
-should_i_die (ThreadPool *tp)
-{
-       gboolean result = FALSE;
-       if (tp->destroy_thread == 1 && InterlockedCompareExchange (&tp->destroy_thread, 0, 1) == 1)
-               result = (tp->nthreads > tp->min_threads);
-       return result;
-}
-
-static void
-set_tp_thread_info (ThreadPool *tp)
-{
-       const gchar *name;
-       MonoInternalThread *thread = mono_thread_internal_current ();
-
-       mono_profiler_thread_start (thread->tid);
-       name = (tp->is_io) ? "IO Threadpool worker" : "Threadpool worker";
-       mono_thread_set_name_internal (thread, mono_string_new (mono_domain_get (), name), FALSE);
-}
-
-static void
-clear_thread_state (void)
-{
-       MonoInternalThread *thread = mono_thread_internal_current ();
-       /* If the callee changes the background status, set it back to TRUE */
-       mono_thread_clr_state (thread , ~ThreadState_Background);
-       if (!mono_thread_test_state (thread , ThreadState_Background))
-               ves_icall_System_Threading_Thread_SetState (thread, ThreadState_Background);
-}
-
-void
-check_for_interruption_critical (void)
-{
-       MonoInternalThread *thread;
-       /*RULE NUMBER ONE OF SKIP_THREAD: NEVER POKE MANAGED STATE.*/
-       mono_gc_set_skip_thread (FALSE);
-
-       thread = mono_thread_internal_current ();
-       if (THREAD_WANTS_A_BREAK (thread))
-               mono_thread_interruption_checkpoint ();
-
-       /*RULE NUMBER TWO OF SKIP_THREAD: READ RULE NUMBER ONE.*/
-       mono_gc_set_skip_thread (TRUE);
-}
-
-static void
-fire_profiler_thread_end (void)
-{
-       MonoInternalThread *thread = mono_thread_internal_current ();
-       mono_profiler_thread_end (thread->tid);
-}
-
-static void
-async_invoke_thread (gpointer data)
-{
-       MonoDomain *domain;
-       MonoWSQ *wsq;
-       ThreadPool *tp;
-       gboolean must_die;
-  
-       tp = data;
-       wsq = NULL;
-       if (!tp->is_io)
-               wsq = add_wsq ();
-
-       set_tp_thread_info (tp);
-
-       if (tp_start_func)
-               tp_start_func (tp_hooks_user_data);
-
-       data = NULL;
-       for (;;) {
-               MonoAsyncResult *ar;
-               MonoClass *klass;
-               gboolean is_io_task;
-               gboolean is_socket;
-               int n_naps = 0;
-
-               is_io_task = FALSE;
-               ar = (MonoAsyncResult *) data;
-               if (ar) {
-                       InterlockedIncrement (&tp->busy_threads);
-                       domain = ((MonoObject *)ar)->vtable->domain;
-#ifndef DISABLE_SOCKETS
-                       klass = ((MonoObject *) data)->vtable->klass;
-                       is_io_task = !is_corlib_asyncresult (domain, klass);
-                       is_socket = FALSE;
-                       if (is_io_task) {
-                               MonoSocketAsyncResult *state = (MonoSocketAsyncResult *) data;
-                               is_socket = is_socketasyncresult (domain, klass);
-                               ar = state->ares;
-                       }
-#endif
-                       /* worker threads invokes methods in different domains,
-                        * so we need to set the right domain here */
-                       g_assert (domain);
-
-                       if (mono_domain_is_unloading (domain) || mono_runtime_is_shutting_down ()) {
-                               threadpool_jobs_dec ((MonoObject *)ar);
-                               data = NULL;
-                               ar = NULL;
-                               InterlockedDecrement (&tp->busy_threads);
-                       } else {
-                               mono_thread_push_appdomain_ref (domain);
-                               if (threadpool_jobs_dec ((MonoObject *)ar)) {
-                                       data = NULL;
-                                       ar = NULL;
-                                       mono_thread_pop_appdomain_ref ();
-                                       InterlockedDecrement (&tp->busy_threads);
-                                       continue;
-                               }
-
-                               if (mono_domain_set (domain, FALSE)) {
-                                       MonoObject *exc;
-
-                                       if (tp_item_begin_func)
-                                               tp_item_begin_func (tp_item_user_data);
-
-                                       exc = mono_async_invoke (tp, ar);
-                                       if (tp_item_end_func)
-                                               tp_item_end_func (tp_item_user_data);
-                                       if (exc)
-                                               mono_internal_thread_unhandled_exception (exc);
-                                       if (is_socket && tp->is_io) {
-                                               MonoSocketAsyncResult *state = (MonoSocketAsyncResult *) data;
-
-                                               if (state->completed && state->callback) {
-                                                       MonoAsyncResult *cb_ares;
-                                                       cb_ares = create_simple_asyncresult ((MonoObject *) state->callback,
-                                                                                               (MonoObject *) state);
-                                                       icall_append_job ((MonoObject *) cb_ares);
-                                               }
-                                       }
-                                       mono_domain_set (mono_get_root_domain (), TRUE);
-                               }
-                               mono_thread_pop_appdomain_ref ();
-                               InterlockedDecrement (&tp->busy_threads);
-                               clear_thread_state ();
-                       }
-               }
-
-               ar = NULL;
-               data = NULL;
-               must_die = should_i_die (tp);
-               if (must_die) {
-                       mono_wsq_suspend (wsq);
-               } else {
-                       if (tp->is_io || !mono_wsq_local_pop (&data))
-                               dequeue_or_steal (tp, &data, wsq);
-               }
-
-               n_naps = 0;
-               while (!must_die && !data && n_naps < 4) {
-                       gboolean res;
-
-                       InterlockedIncrement (&tp->waiting);
-
-                       // Another thread may have added a job into its wsq since the last call to dequeue_or_steal
-                       // Check all the queues again before entering the wait loop
-                       dequeue_or_steal (tp, &data, wsq);
-                       if (data) {
-                               InterlockedDecrement (&tp->waiting);
-                               break;
-                       }
-
-                       mono_gc_set_skip_thread (TRUE);
-                       MONO_PREPARE_BLOCKING
-
-#if defined(__OpenBSD__)
-                       while (mono_cq_count (tp->queue) == 0 && (res = mono_sem_wait (&tp->new_job, TRUE)) == -1) {// && errno == EINTR) {
-#else
-                       while (mono_cq_count (tp->queue) == 0 && (res = mono_sem_timedwait (&tp->new_job, 2000, TRUE)) == -1) {// && errno == EINTR) {
-#endif
-                               if (mono_runtime_is_shutting_down ())
-                                       break;
-                               check_for_interruption_critical ();
-                       }
-                       InterlockedDecrement (&tp->waiting);
-
-                       MONO_FINISH_BLOCKING
-                       mono_gc_set_skip_thread (FALSE);
-
-                       if (mono_runtime_is_shutting_down ())
-                               break;
-                       must_die = should_i_die (tp);
-                       dequeue_or_steal (tp, &data, wsq);
-                       n_naps++;
-               }
-
-               if (!data && !tp->is_io && !mono_runtime_is_shutting_down ()) {
-                       mono_wsq_local_pop (&data);
-                       if (data && must_die) {
-                               InterlockedCompareExchange (&tp->destroy_thread, 1, 0);
-                               pulse_on_new_job (tp);
-                       }
-               }
-
-               if (!data) {
-                       gint nt;
-                       gboolean down;
-                       while (1) {
-                               nt = tp->nthreads;
-                               down = mono_runtime_is_shutting_down ();
-                               if (!down && nt <= tp->min_threads)
-                                       break;
-                               if (down || InterlockedCompareExchange (&tp->nthreads, nt - 1, nt) == nt) {
-#ifndef DISABLE_PERFCOUNTERS
-                                       mono_perfcounter_update_value (tp->pc_nthreads, TRUE, -1);
-#endif
-                                       if (!tp->is_io) {
-                                               remove_wsq (wsq);
-                                       }
-
-                                       fire_profiler_thread_end ();
-
-                                       if (tp_finish_func)
-                                               tp_finish_func (tp_hooks_user_data);
-
-                                       if (!tp->is_io) {
-                                               if (threads) {
-                                                       mono_mutex_lock (&threads_lock);
-                                                       if (threads)
-                                                               g_ptr_array_remove_fast (threads, mono_thread_current ()->internal_thread);
-                                                       mono_mutex_unlock (&threads_lock);
-                                               }
-                                       }
-
-                                       return;
-                               }
-                       }
-               }
-       }
-
-       g_assert_not_reached ();
-}
-
-void
-ves_icall_System_Threading_ThreadPool_GetAvailableThreads (gint *workerThreads, gint *completionPortThreads)
-{
-       *workerThreads = async_tp.max_threads - async_tp.busy_threads;
-       *completionPortThreads = async_io_tp.max_threads - async_io_tp.busy_threads;
-}
-
-void
-ves_icall_System_Threading_ThreadPool_GetMaxThreads (gint *workerThreads, gint *completionPortThreads)
-{
-       *workerThreads = async_tp.max_threads;
-       *completionPortThreads = async_io_tp.max_threads;
-}
-
-void
-ves_icall_System_Threading_ThreadPool_GetMinThreads (gint *workerThreads, gint *completionPortThreads)
-{
-       *workerThreads = async_tp.min_threads;
-       *completionPortThreads = async_io_tp.min_threads;
-}
-
-MonoBoolean
-ves_icall_System_Threading_ThreadPool_SetMinThreads (gint workerThreads, gint completionPortThreads)
-{
-       gint max_threads;
-       gint max_io_threads;
-
-       max_threads = async_tp.max_threads;
-       if (workerThreads <= 0 || workerThreads > max_threads)
-               return FALSE;
-
-       max_io_threads = async_io_tp.max_threads;
-       if (completionPortThreads <= 0 || completionPortThreads > max_io_threads)
-               return FALSE;
-
-       InterlockedExchange (&async_tp.min_threads, workerThreads);
-       InterlockedExchange (&async_io_tp.min_threads, completionPortThreads);
-       if (workerThreads > async_tp.nthreads)
-               mono_thread_create_internal (mono_get_root_domain (), threadpool_start_idle_threads, &async_tp, TRUE, SMALL_STACK);
-       if (completionPortThreads > async_io_tp.nthreads)
-               mono_thread_create_internal (mono_get_root_domain (), threadpool_start_idle_threads, &async_io_tp, TRUE, SMALL_STACK);
-       return TRUE;
-}
-
-MonoBoolean
-ves_icall_System_Threading_ThreadPool_SetMaxThreads (gint workerThreads, gint completionPortThreads)
-{
-       gint min_threads;
-       gint min_io_threads;
-       gint cpu_count;
-
-       cpu_count = mono_cpu_count ();
-       min_threads = async_tp.min_threads;
-       if (workerThreads < min_threads || workerThreads < cpu_count)
-               return FALSE;
-
-       /* We don't really have the concept of completion ports. Do we care here? */
-       min_io_threads = async_io_tp.min_threads;
-       if (completionPortThreads < min_io_threads || completionPortThreads < cpu_count)
-               return FALSE;
-
-       InterlockedExchange (&async_tp.max_threads, workerThreads);
-       InterlockedExchange (&async_io_tp.max_threads, completionPortThreads);
-       return TRUE;
-}
-
-/**
- * mono_install_threadpool_thread_hooks
- * @start_func: the function to be called right after a new threadpool thread is created. Can be NULL.
- * @finish_func: the function to be called right before a thredpool thread is exiting. Can be NULL.
- * @user_data: argument passed to @start_func and @finish_func.
- *
- * @start_fun will be called right after a threadpool thread is created and @finish_func right before a threadpool thread exits.
- * The calls will be made from the thread itself.
- */
-void
-mono_install_threadpool_thread_hooks (MonoThreadPoolFunc start_func, MonoThreadPoolFunc finish_func, gpointer user_data)
-{
-       tp_start_func = start_func;
-       tp_finish_func = finish_func;
-       tp_hooks_user_data = user_data;
-}
-
-/**
- * mono_install_threadpool_item_hooks
- * @begin_func: the function to be called before a threadpool work item processing starts.
- * @end_func: the function to be called after a threadpool work item is finished.
- * @user_data: argument passed to @begin_func and @end_func.
- *
- * The calls will be made from the thread itself and from the same AppDomain
- * where the work item was executed.
- *
- */
-void
-mono_install_threadpool_item_hooks (MonoThreadPoolItemFunc begin_func, MonoThreadPoolItemFunc end_func, gpointer user_data)
-{
-       tp_item_begin_func = begin_func;
-       tp_item_end_func = end_func;
-       tp_item_user_data = user_data;
-}
-
-void
-mono_internal_thread_unhandled_exception (MonoObject* exc)
-{
-       if (mono_runtime_unhandled_exception_policy_get () == MONO_UNHANDLED_POLICY_CURRENT) {
-               gboolean unloaded;
-               MonoClass *klass;
-
-               klass = exc->vtable->klass;
-               unloaded = is_appdomainunloaded_exception (exc->vtable->domain, klass);
-               if (!unloaded && klass != mono_defaults.threadabortexception_class) {
-                       mono_unhandled_exception (exc);
-                       if (mono_environment_exitcode_get () == 1)
-                               exit (255);
-               }
-               if (klass == mono_defaults.threadabortexception_class)
-                mono_thread_internal_reset_abort (mono_thread_internal_current ());
-       }
-}
-
-/*
- * Suspend creation of new threads.
- */
-void
-mono_thread_pool_suspend (void)
-{
-       if (use_ms_threadpool ()) {
-               mono_threadpool_ms_suspend ();
-               return;
-       }
-       suspended = TRUE;
-}
-
-/*
- * Resume creation of new threads.
- */
-void
-mono_thread_pool_resume (void)
-{
-       if (use_ms_threadpool ()) {
-               mono_threadpool_ms_resume ();
-               return;
-       }
-       suspended = FALSE;
-}
diff --git a/mono/metadata/threadpool.h b/mono/metadata/threadpool.h
deleted file mode 100644 (file)
index eab5e1c..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef _MONO_THREADPOOL_H_
-#define _MONO_THREADPOOL_H_
-
-#include <mono/metadata/object-internals.h>
-#include <mono/metadata/reflection.h>
-#include <mono/metadata/socket-io.h>
-
-/* No managed code here */
-void mono_thread_pool_init (void);
-void mono_thread_pool_init_tls (void);
-
-void icall_append_job (MonoObject *ar);
-void icall_append_io_job (MonoObject *target, MonoSocketAsyncResult *state);
-
-MonoAsyncResult *
-mono_thread_pool_begin_invoke (MonoDomain *domain, MonoObject *target, MonoMethod *method, gpointer *params);
-
-MonoObject *
-mono_thread_pool_end_invoke (MonoAsyncResult *ares, MonoArray **out_args, MonoObject **exc);
-
-void mono_thread_pool_cleanup (void);
-
-gboolean mono_thread_pool_remove_domain_jobs (MonoDomain *domain, int timeout);
-
-void mono_thread_pool_suspend (void);
-void mono_thread_pool_resume (void);
-
-void
-ves_icall_System_Threading_ThreadPool_GetAvailableThreads (int *workerThreads,
-                                                          int *completionPortThreads);
-
-void
-ves_icall_System_Threading_ThreadPool_GetMaxThreads (int *workerThreads,
-                                                    int *completionPortThreads);
-
-void
-ves_icall_System_Threading_ThreadPool_GetMinThreads (gint *workerThreads, 
-                                                               gint *completionPortThreads);
-
-MonoBoolean
-ves_icall_System_Threading_ThreadPool_SetMinThreads (gint workerThreads, 
-                                                               gint completionPortThreads);
-
-MonoBoolean
-ves_icall_System_Threading_ThreadPool_SetMaxThreads (gint workerThreads, 
-                                                               gint completionPortThreads);
-
-typedef void  (*MonoThreadPoolFunc) (gpointer user_data);
-MONO_API void mono_install_threadpool_thread_hooks (MonoThreadPoolFunc start_func, MonoThreadPoolFunc finish_func, gpointer user_data);
-
-typedef void  (*MonoThreadPoolItemFunc) (gpointer user_data);
-MONO_API void mono_install_threadpool_item_hooks (MonoThreadPoolItemFunc begin_func, MonoThreadPoolItemFunc end_func, gpointer user_data);
-
-#endif
-
index ac0f482767db24ad6a820d8e69716f021c97be1e..5ffafe61b78e1c8eb1d04385ce7f2ebbb2fc55ee 100644 (file)
@@ -72,13 +72,13 @@ void ves_icall_System_Threading_Thread_ConstructInternalThread (MonoThread *this
 HANDLE ves_icall_System_Threading_Thread_Thread_internal(MonoThread *this_obj, MonoObject *start);
 void ves_icall_System_Threading_InternalThread_Thread_free_internal(MonoInternalThread *this_obj, HANDLE thread);
 void ves_icall_System_Threading_Thread_Sleep_internal(gint32 ms);
-gboolean ves_icall_System_Threading_Thread_Join_internal(MonoThread *this, int ms);
+gboolean ves_icall_System_Threading_Thread_Join_internal(MonoThread *this_obj, int ms);
 gint32 ves_icall_System_Threading_Thread_GetDomainID (void);
 gboolean ves_icall_System_Threading_Thread_Yield (void);
 MonoString* ves_icall_System_Threading_Thread_GetName_internal (MonoInternalThread *this_obj);
 void ves_icall_System_Threading_Thread_SetName_internal (MonoInternalThread *this_obj, MonoString *name);
-int ves_icall_System_Threading_Thread_GetPriority (MonoThread *this);
-void ves_icall_System_Threading_Thread_SetPriority (MonoThread *this, int priority);
+int ves_icall_System_Threading_Thread_GetPriority (MonoThread *this_obj);
+void ves_icall_System_Threading_Thread_SetPriority (MonoThread *this_obj, int priority);
 MonoObject* ves_icall_System_Threading_Thread_GetCachedCurrentCulture (MonoInternalThread *this_obj);
 void ves_icall_System_Threading_Thread_SetCachedCurrentCulture (MonoThread *this_obj, MonoObject *culture);
 MonoObject* ves_icall_System_Threading_Thread_GetCachedCurrentUICulture (MonoInternalThread *this_obj);
@@ -136,9 +136,9 @@ gint32 ves_icall_System_Threading_Interlocked_Decrement_Int(gint32 *location);
 gint64 ves_icall_System_Threading_Interlocked_Decrement_Long(gint64 * location);
 
 void ves_icall_System_Threading_Thread_Abort (MonoInternalThread *thread, MonoObject *state);
-void ves_icall_System_Threading_Thread_ResetAbort (MonoThread *this);
+void ves_icall_System_Threading_Thread_ResetAbort (MonoThread *this_obj);
 MonoObject* ves_icall_System_Threading_Thread_GetAbortExceptionState (MonoThread *thread);
-void ves_icall_System_Threading_Thread_Suspend (MonoThread *this);
+void ves_icall_System_Threading_Thread_Suspend (MonoThread *this_obj);
 void ves_icall_System_Threading_Thread_Resume (MonoThread *thread);
 void ves_icall_System_Threading_Thread_ClrState (MonoInternalThread *thread, guint32 state);
 void ves_icall_System_Threading_Thread_SetState (MonoInternalThread *thread, guint32 state);
@@ -181,19 +181,24 @@ void ves_icall_System_Threading_Volatile_WriteDouble (void *ptr, double);
 void ves_icall_System_Threading_Volatile_Write_T (void *ptr, MonoObject *value);
 
 void ves_icall_System_Threading_Thread_MemoryBarrier (void);
-void ves_icall_System_Threading_Thread_Interrupt_internal (MonoThread *this);
+void ves_icall_System_Threading_Thread_Interrupt_internal (MonoThread *this_obj);
 void ves_icall_System_Threading_Thread_SpinWait_nop (void);
 
 void ves_icall_System_Runtime_Remoting_Contexts_Context_RegisterContext (MonoAppContext *ctx);
+void ves_icall_System_Runtime_Remoting_Contexts_Context_ReleaseContext (MonoAppContext *ctx);
 
 MonoInternalThread *mono_thread_internal_current (void);
 
+void mono_thread_internal_check_for_interruption_critical (MonoInternalThread *thread);
+
 void mono_thread_internal_stop (MonoInternalThread *thread);
 
 gboolean mono_thread_internal_has_appdomain_ref (MonoInternalThread *thread, MonoDomain *domain);
 
 void mono_thread_internal_reset_abort (MonoInternalThread *thread);
 
+void mono_thread_internal_unhandled_exception (MonoObject* exc);
+
 void mono_alloc_special_static_data_free (GHashTable *special_static_fields);
 void mono_thread_current_check_pending_interrupt (void);
 
index 5479f53c9ffbd61115a48e46204943fb2e84f71e..a7de6445040dbe5a69dbc3664f1230c40e0c7430 100644 (file)
@@ -20,7 +20,6 @@
 #include <mono/metadata/domain-internals.h>
 #include <mono/metadata/profiler-private.h>
 #include <mono/metadata/threads.h>
-#include <mono/metadata/threadpool.h>
 #include <mono/metadata/threads-types.h>
 #include <mono/metadata/exception.h>
 #include <mono/metadata/environment.h>
@@ -233,9 +232,9 @@ static gint32 managed_thread_id_counter = 0;
 static void
 mono_threads_lock (void)
 {
-       MONO_TRY_BLOCKING
+       MONO_TRY_BLOCKING;
        mono_locks_acquire (&threads_mutex, ThreadsLock);
-       MONO_FINISH_TRY_BLOCKING
+       MONO_FINISH_TRY_BLOCKING;
 }
 
 static void
@@ -380,9 +379,9 @@ lock_thread (MonoInternalThread *thread)
 
        g_assert (thread->synch_cs);
 
-       MONO_TRY_BLOCKING
+       MONO_TRY_BLOCKING;
        mono_mutex_lock (thread->synch_cs);
-       MONO_FINISH_TRY_BLOCKING
+       MONO_FINISH_TRY_BLOCKING;
 }
 
 static inline void
@@ -805,7 +804,7 @@ create_thread (MonoThread *thread, MonoInternalThread *internal, StartInfo *star
         */
        if (thread_start_args == NULL) {
                MONO_GC_REGISTER_ROOT_FIXED (thread_start_args);
-               thread_start_args = mono_g_hash_table_new (NULL, NULL);
+               thread_start_args = mono_g_hash_table_new_type (NULL, NULL, MONO_HASH_CONSERVATIVE_GC);
        }
        mono_g_hash_table_insert (thread_start_args, thread, start_info->start_arg);
        if (threads_starting_up == NULL) {
@@ -833,10 +832,10 @@ create_thread (MonoThread *thread, MonoInternalThread *internal, StartInfo *star
         */
        create_flags = CREATE_SUSPENDED;
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        thread_handle = mono_threads_create_thread ((LPTHREAD_START_ROUTINE)start_wrapper, start_info,
                                                                                                stack_size, create_flags, &tid);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        if (thread_handle == NULL) {
                /* The thread couldn't be created, so throw an exception */
@@ -868,9 +867,9 @@ create_thread (MonoThread *thread, MonoInternalThread *internal, StartInfo *star
        if (!handle_store (thread, FALSE))
                return FALSE;
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        mono_thread_info_resume (tid);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        if (internal->start_notify) {
                /*
@@ -881,9 +880,9 @@ create_thread (MonoThread *thread, MonoInternalThread *internal, StartInfo *star
                 */
                THREAD_DEBUG (g_message ("%s: (%"G_GSIZE_FORMAT") waiting for thread %p (%"G_GSIZE_FORMAT") to start", __func__, GetCurrentThreadId (), internal, (gsize)internal->tid));
 
-               MONO_PREPARE_BLOCKING
+               MONO_PREPARE_BLOCKING;
                WaitForSingleObjectEx (internal->start_notify, INFINITE, FALSE);
-               MONO_FINISH_BLOCKING
+               MONO_FINISH_BLOCKING;
 
                CloseHandle (internal->start_notify);
                internal->start_notify = NULL;
@@ -1095,28 +1094,28 @@ mono_thread_exit ()
 }
 
 void
-ves_icall_System_Threading_Thread_ConstructInternalThread (MonoThread *this)
+ves_icall_System_Threading_Thread_ConstructInternalThread (MonoThread *this_obj)
 {
        MonoInternalThread *internal = create_internal_thread ();
 
        internal->state = ThreadState_Unstarted;
 
-       InterlockedCompareExchangePointer ((gpointer)&this->internal_thread, internal, NULL);
+       InterlockedCompareExchangePointer ((gpointer)&this_obj->internal_thread, internal, NULL);
 }
 
 HANDLE
-ves_icall_System_Threading_Thread_Thread_internal (MonoThread *this,
+ves_icall_System_Threading_Thread_Thread_internal (MonoThread *this_obj,
                                                                                                   MonoObject *start)
 {
        StartInfo *start_info;
        MonoInternalThread *internal;
        gboolean res;
 
-       THREAD_DEBUG (g_message("%s: Trying to start a new thread: this (%p) start (%p)", __func__, this, start));
+       THREAD_DEBUG (g_message("%s: Trying to start a new thread: this (%p) start (%p)", __func__, this_obj, start));
 
-       if (!this->internal_thread)
-               ves_icall_System_Threading_Thread_ConstructInternalThread (this);
-       internal = this->internal_thread;
+       if (!this_obj->internal_thread)
+               ves_icall_System_Threading_Thread_ConstructInternalThread (this_obj);
+       internal = this_obj->internal_thread;
 
        LOCK_THREAD (internal);
 
@@ -1128,17 +1127,17 @@ ves_icall_System_Threading_Thread_Thread_internal (MonoThread *this,
 
        if ((internal->state & ThreadState_Aborted) != 0) {
                UNLOCK_THREAD (internal);
-               return this;
+               return this_obj;
        }
        /* This is freed in start_wrapper */
        start_info = g_new0 (StartInfo, 1);
        start_info->func = NULL;
-       start_info->start_arg = this->start_obj; /* FIXME: GC object stored in unmanaged memory */
+       start_info->start_arg = this_obj->start_obj; /* FIXME: GC object stored in unmanaged memory */
        start_info->delegate = start;
-       start_info->obj = this;
-       g_assert (this->obj.vtable->domain == mono_domain_get ());
+       start_info->obj = this_obj;
+       g_assert (this_obj->obj.vtable->domain == mono_domain_get ());
 
-       res = create_thread (this, internal, start_info, FALSE, 0, FALSE);
+       res = create_thread (this_obj, internal, start_info, FALSE, 0, FALSE);
        if (!res) {
                UNLOCK_THREAD (internal);
                return NULL;
@@ -1156,7 +1155,7 @@ ves_icall_System_Threading_Thread_Thread_internal (MonoThread *this,
  * This is called from the finalizer of the internal thread object.
  */
 void
-ves_icall_System_Threading_InternalThread_Thread_free_internal (MonoInternalThread *this, HANDLE thread)
+ves_icall_System_Threading_InternalThread_Thread_free_internal (MonoInternalThread *this_obj, HANDLE thread)
 {
        THREAD_DEBUG (g_message ("%s: Closing thread %p, handle %p", __func__, this, thread));
 
@@ -1168,16 +1167,16 @@ ves_icall_System_Threading_InternalThread_Thread_free_internal (MonoInternalThre
        if (thread)
                CloseHandle (thread);
 
-       if (this->synch_cs) {
-               mono_mutex_t *synch_cs = this->synch_cs;
-               this->synch_cs = NULL;
+       if (this_obj->synch_cs) {
+               mono_mutex_t *synch_cs = this_obj->synch_cs;
+               this_obj->synch_cs = NULL;
                mono_mutex_destroy (synch_cs);
                g_free (synch_cs);
        }
 
-       if (this->name) {
-               void *name = this->name;
-               this->name = NULL;
+       if (this_obj->name) {
+               void *name = this_obj->name;
+               this_obj->name = NULL;
                g_free (name);
        }
 }
@@ -1195,9 +1194,9 @@ ves_icall_System_Threading_Thread_Sleep_internal(gint32 ms)
        while (TRUE) {
                mono_thread_set_state (thread, ThreadState_WaitSleepJoin);
        
-               MONO_PREPARE_BLOCKING
+               MONO_PREPARE_BLOCKING;
                res = SleepEx(ms,TRUE);
-               MONO_FINISH_BLOCKING
+               MONO_FINISH_BLOCKING;
        
                mono_thread_clr_state (thread, ThreadState_WaitSleepJoin);
 
@@ -1326,7 +1325,7 @@ ves_icall_System_Threading_Thread_GetPriority (MonoThread *this)
 }
 
 void
-ves_icall_System_Threading_Thread_SetPriority (MonoThread *this, int priority)
+ves_icall_System_Threading_Thread_SetPriority (MonoThread *this_obj, int priority)
 {
 }
 
@@ -1386,36 +1385,36 @@ mono_thread_internal_current (void)
 }
 
 gboolean
-ves_icall_System_Threading_Thread_Join_internal(MonoThread *this, int ms)
+ves_icall_System_Threading_Thread_Join_internal(MonoThread *this_obj, int ms)
 {
-       MonoInternalThread *this_obj = this->internal_thread;
-       HANDLE thread = this_obj->handle;
+       MonoInternalThread *thread = this_obj->internal_thread;
+       HANDLE handle = thread->handle;
        MonoInternalThread *cur_thread = mono_thread_internal_current ();
        gboolean ret;
 
        mono_thread_current_check_pending_interrupt ();
 
-       LOCK_THREAD (this_obj);
+       LOCK_THREAD (thread);
        
-       if ((this_obj->state & ThreadState_Unstarted) != 0) {
-               UNLOCK_THREAD (this_obj);
+       if ((thread->state & ThreadState_Unstarted) != 0) {
+               UNLOCK_THREAD (thread);
                
                mono_set_pending_exception (mono_get_exception_thread_state ("Thread has not been started."));
                return FALSE;
        }
 
-       UNLOCK_THREAD (this_obj);
+       UNLOCK_THREAD (thread);
 
        if(ms== -1) {
                ms=INFINITE;
        }
-       THREAD_DEBUG (g_message ("%s: joining thread handle %p, %d ms", __func__, thread, ms));
+       THREAD_DEBUG (g_message ("%s: joining thread handle %p, %d ms", __func__, handle, ms));
        
        mono_thread_set_state (cur_thread, ThreadState_WaitSleepJoin);
 
-       MONO_PREPARE_BLOCKING
-       ret=WaitForSingleObjectEx (thread, ms, TRUE);
-       MONO_FINISH_BLOCKING
+       MONO_PREPARE_BLOCKING;
+       ret=WaitForSingleObjectEx (handle, ms, TRUE);
+       MONO_FINISH_BLOCKING;
 
        mono_thread_clr_state (cur_thread, ThreadState_WaitSleepJoin);
        
@@ -1441,12 +1440,12 @@ mono_wait_uninterrupted (MonoInternalThread *thread, gboolean multiple, guint32
 
        start = (ms == -1) ? 0 : mono_100ns_ticks ();
        do {
-               MONO_PREPARE_BLOCKING
+               MONO_PREPARE_BLOCKING;
                        if (multiple)
                        ret = WaitForMultipleObjectsEx (numhandles, handles, waitall, wait, alertable);
                else
                        ret = WaitForSingleObjectEx (handles [0], ms, alertable);
-               MONO_FINISH_BLOCKING
+               MONO_FINISH_BLOCKING;
 
                if (ret != WAIT_IO_COMPLETION)
                        break;
@@ -1564,7 +1563,7 @@ gint32 ves_icall_System_Threading_WaitHandle_WaitAny_internal(MonoArray *mono_ha
 }
 
 /* FIXME: exitContext isnt documented */
-gboolean ves_icall_System_Threading_WaitHandle_WaitOne_internal(MonoObject *this, HANDLE handle, gint32 ms, gboolean exitContext)
+gboolean ves_icall_System_Threading_WaitHandle_WaitOne_internal(MonoObject *this_obj, HANDLE handle, gint32 ms, gboolean exitContext)
 {
        guint32 ret;
        MonoInternalThread *thread = mono_thread_internal_current ();
@@ -1607,9 +1606,9 @@ ves_icall_System_Threading_WaitHandle_SignalAndWait_Internal (HANDLE toSignal, H
 
        mono_thread_set_state (thread, ThreadState_WaitSleepJoin);
        
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        ret = SignalObjectAndWait (toSignal, toWait, ms, TRUE);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        
        mono_thread_clr_state (thread, ThreadState_WaitSleepJoin);
 
@@ -2023,23 +2022,23 @@ ves_icall_System_Threading_Thread_GetState (MonoInternalThread* this)
        return state;
 }
 
-void ves_icall_System_Threading_Thread_Interrupt_internal (MonoThread *this)
+void ves_icall_System_Threading_Thread_Interrupt_internal (MonoThread *this_obj)
 {
        MonoInternalThread *current;
        gboolean throw;
-       MonoInternalThread *this_obj = this->internal_thread;
+       MonoInternalThread *thread = this_obj->internal_thread;
 
-       LOCK_THREAD (this_obj);
+       LOCK_THREAD (thread);
 
        current = mono_thread_internal_current ();
 
-       this_obj->thread_interrupt_requested = TRUE;
-       throw = current != this_obj && (this_obj->state & ThreadState_WaitSleepJoin);
+       thread->thread_interrupt_requested = TRUE;
+       throw = current != thread && (thread->state & ThreadState_WaitSleepJoin);
 
-       UNLOCK_THREAD (this_obj);
+       UNLOCK_THREAD (thread);
        
        if (throw) {
-               abort_thread_internal (this_obj, TRUE, FALSE);
+               abort_thread_internal (thread, TRUE, FALSE);
        }
 }
 
@@ -2105,7 +2104,7 @@ ves_icall_System_Threading_Thread_Abort (MonoInternalThread *thread, MonoObject
 }
 
 void
-ves_icall_System_Threading_Thread_ResetAbort (MonoThread *this)
+ves_icall_System_Threading_Thread_ResetAbort (MonoThread *this_obj)
 {
        MonoInternalThread *thread = mono_thread_internal_current ();
        gboolean was_aborting;
@@ -2150,9 +2149,9 @@ mono_thread_internal_reset_abort (MonoInternalThread *thread)
 }
 
 MonoObject*
-ves_icall_System_Threading_Thread_GetAbortExceptionState (MonoThread *this)
+ves_icall_System_Threading_Thread_GetAbortExceptionState (MonoThread *this_obj)
 {
-       MonoInternalThread *thread = this->internal_thread;
+       MonoInternalThread *thread = this_obj->internal_thread;
        MonoObject *state, *deserialized = NULL, *exc;
        MonoDomain *domain;
 
@@ -2209,9 +2208,9 @@ mono_thread_suspend (MonoInternalThread *thread)
 }
 
 void
-ves_icall_System_Threading_Thread_Suspend (MonoThread *this)
+ves_icall_System_Threading_Thread_Suspend (MonoThread *this_obj)
 {
-       if (!mono_thread_suspend (this->internal_thread)) {
+       if (!mono_thread_suspend (this_obj->internal_thread)) {
                mono_set_pending_exception (mono_get_exception_thread_state ("Thread has not been started, or is dead."));
                return;
        }
@@ -2585,6 +2584,24 @@ ves_icall_System_Runtime_Remoting_Contexts_Context_RegisterContext (MonoAppConte
        g_hash_table_insert (contexts, gch, gch);
 
        mono_threads_unlock ();
+
+       mono_profiler_context_loaded (ctx);
+}
+
+void
+ves_icall_System_Runtime_Remoting_Contexts_Context_ReleaseContext (MonoAppContext *ctx)
+{
+       /*
+        * NOTE: Since finalizers are unreliable for the purposes of ensuring
+        * cleanup in exceptional circumstances, we don't actually do any
+        * cleanup work here. We instead do this when we iterate the `contexts`
+        * hash table. The only purpose of this finalizer, at the moment, is to
+        * notify the profiler.
+        */
+
+       //g_print ("Releasing context %d in domain %d\n", ctx->context_id, ctx->domain_id);
+
+       mono_profiler_context_unloaded (ctx);
 }
 
 void
@@ -2692,9 +2709,9 @@ static void wait_for_tids (struct wait_data *wait, guint32 timeout)
        
        THREAD_DEBUG (g_message("%s: %d threads to wait for in this batch", __func__, wait->num));
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        ret=WaitForMultipleObjectsEx(wait->num, wait->handles, TRUE, timeout, TRUE);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        if(ret==WAIT_FAILED) {
                /* See the comment in build_wait_tids() */
@@ -2755,9 +2772,9 @@ static void wait_for_tids_or_state_change (struct wait_data *wait, guint32 timeo
                count++;
        }
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        ret=WaitForMultipleObjectsEx (count, wait->handles, FALSE, timeout, TRUE);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        if(ret==WAIT_FAILED) {
                /* See the comment in build_wait_tids() */
@@ -3163,7 +3180,7 @@ print_stack_frame_to_string (MonoStackFrameInfo *frame, MonoContext *ctx, gpoint
 {
        GString *p = (GString*)data;
        MonoMethod *method = NULL;
-       if (frame->ji)
+       if (frame->type == FRAME_TYPE_MANAGED)
                method = mono_jit_info_get_method (frame->ji);
 
        if (method) {
@@ -3564,7 +3581,7 @@ mark_slots (void *addr, MonoBitSet **bitmaps, MonoGCMarkFunc mark_func, void *gc
                        void **p = ptr + idx;
 
                        if (*p)
-                               mark_func (p, gc_data);
+                               mark_func ((MonoObject**)p, gc_data);
                });
        }
 }
@@ -3594,14 +3611,14 @@ mono_alloc_static_data (gpointer **static_data_ptr, guint32 offset, gboolean thr
 
        gpointer* static_data = *static_data_ptr;
        if (!static_data) {
-               static void *tls_desc = NULL;
-               static void *ctx_desc = NULL;
+               static MonoGCDescriptor tls_desc = MONO_GC_DESCRIPTOR_NULL;
+               static MonoGCDescriptor ctx_desc = MONO_GC_DESCRIPTOR_NULL;
 
                if (mono_gc_user_markers_supported ()) {
-                       if (!tls_desc)
+                       if (tls_desc == MONO_GC_DESCRIPTOR_NULL)
                                tls_desc = mono_gc_make_root_descr_user (mark_tls_slots);
 
-                       if (!ctx_desc)
+                       if (ctx_desc == MONO_GC_DESCRIPTOR_NULL)
                                ctx_desc = mono_gc_make_root_descr_user (mark_ctx_slots);
                }
 
@@ -3617,7 +3634,7 @@ mono_alloc_static_data (gpointer **static_data_ptr, guint32 offset, gboolean thr
                if (mono_gc_user_markers_supported ())
                        static_data [i] = g_malloc0 (static_data_size [i]);
                else
-                       static_data [i] = mono_gc_alloc_fixed (static_data_size [i], NULL);
+                       static_data [i] = mono_gc_alloc_fixed (static_data_size [i], MONO_GC_DESCRIPTOR_NULL);
        }
 }
 
@@ -3703,17 +3720,16 @@ thread_adjust_static_data (MonoInternalThread *thread)
        mono_threads_unlock ();
 }
 
+/*
+ * LOCKING: requires that threads_mutex is held
+ */
 static void
 context_adjust_static_data (MonoAppContext *ctx)
 {
-       mono_threads_lock ();
-
        if (context_static_info.offset || context_static_info.idx > 0) {
                guint32 offset = MAKE_SPECIAL_STATIC_OFFSET (context_static_info.idx, context_static_info.offset, 0);
                mono_alloc_static_data (&ctx->static_data, offset, FALSE);
        }
-
-       mono_threads_unlock ();
 }
 
 /*
@@ -3731,20 +3747,21 @@ alloc_thread_static_data_helper (gpointer key, gpointer value, gpointer user)
 /*
  * LOCKING: requires that threads_mutex is held
  */
-static void
+static gboolean
 alloc_context_static_data_helper (gpointer key, gpointer value, gpointer user)
 {
        uint32_t gch = GPOINTER_TO_INT (key);
        MonoAppContext *ctx = (MonoAppContext *) mono_gchandle_get_target (gch);
 
        if (!ctx) {
-               g_hash_table_remove (contexts, key);
                mono_gchandle_free (gch);
-               return;
+               return TRUE; // Remove this key/value pair
        }
 
        guint32 offset = GPOINTER_TO_UINT (user);
        mono_alloc_static_data (&ctx->static_data, offset, FALSE);
+
+       return FALSE; // Don't remove it
 }
 
 static StaticDataFreeList*
@@ -3836,7 +3853,7 @@ mono_alloc_special_static_data (guint32 static_type, guint32 size, guint32 align
                        mono_g_hash_table_foreach (threads, alloc_thread_static_data_helper, GUINT_TO_POINTER (offset));
        } else {
                if (contexts != NULL)
-                       g_hash_table_foreach (contexts, alloc_context_static_data_helper, GUINT_TO_POINTER (offset));
+                       g_hash_table_foreach_remove (contexts, alloc_context_static_data_helper, GUINT_TO_POINTER (offset));
 
                ACCESS_SPECIAL_STATIC_OFFSET (offset, type) = SPECIAL_STATIC_OFFSET_TYPE_CONTEXT;
        }
@@ -3890,16 +3907,15 @@ free_thread_static_data_helper (gpointer key, gpointer value, gpointer user)
 /*
  * LOCKING: requires that threads_mutex is held
  */
-static void
+static gboolean
 free_context_static_data_helper (gpointer key, gpointer value, gpointer user)
 {
        uint32_t gch = GPOINTER_TO_INT (key);
        MonoAppContext *ctx = (MonoAppContext *) mono_gchandle_get_target (gch);
 
        if (!ctx) {
-               g_hash_table_remove (contexts, key);
                mono_gchandle_free (gch);
-               return;
+               return TRUE; // Remove this key/value pair
        }
 
        OffsetSize *data = user;
@@ -3908,10 +3924,12 @@ free_context_static_data_helper (gpointer key, gpointer value, gpointer user)
        char *ptr;
 
        if (!ctx->static_data || !ctx->static_data [idx])
-               return;
+               return FALSE; // Don't remove this key/value pair
 
        ptr = ((char*) ctx->static_data [idx]) + off;
        mono_gc_bzero_atomic (ptr, data->size);
+
+       return FALSE; // Don't remove this key/value pair
 }
 
 static void
@@ -3940,7 +3958,7 @@ do_free_special_slot (guint32 offset, guint32 size)
                        mono_g_hash_table_foreach (threads, free_thread_static_data_helper, &data);
        } else {
                if (contexts != NULL)
-                       g_hash_table_foreach (contexts, free_context_static_data_helper, &data);
+                       g_hash_table_foreach_remove (contexts, free_context_static_data_helper, &data);
        }
 
        if (!mono_runtime_is_shutting_down ()) {
@@ -4010,8 +4028,9 @@ mono_thread_execute_interruption (MonoInternalThread *thread)
                WaitForSingleObjectEx (GetCurrentThread(), 0, TRUE);
 #endif
                InterlockedDecrement (&thread_interruption_requested);
+
                /* Clear the interrupted flag of the thread so it can wait again */
-               mono_thread_info_clear_interruption ();
+               mono_thread_info_clear_self_interrupt ();
        }
 
        if ((thread->state & ThreadState_AbortRequested) != 0) {
@@ -4381,7 +4400,7 @@ mono_thread_info_get_last_managed (MonoThreadInfo *info)
 typedef struct {
        MonoInternalThread *thread;
        gboolean install_async_abort;
-       gpointer interrupt_handle;
+       MonoThreadInfoInterruptToken *interrupt_token;
 } AbortThreadData;
 
 static SuspendThreadResult
@@ -4403,7 +4422,7 @@ abort_thread_critical (MonoThreadInfo *info, gpointer ud)
        InterlockedIncrement (&thread_interruption_requested);
 
        ji = mono_thread_info_get_last_managed (info);
-       protected_wrapper = ji && mono_threads_is_critical_method (mono_jit_info_get_method (ji));
+       protected_wrapper = ji && !ji->is_trampoline && !ji->async && mono_threads_is_critical_method (mono_jit_info_get_method (ji));
        running_managed = mono_jit_info_match (ji, MONO_CONTEXT_GET_IP (&mono_thread_info_get_suspend_state (info)->ctx));
 
        if (!protected_wrapper && running_managed) {
@@ -4424,7 +4443,8 @@ abort_thread_critical (MonoThreadInfo *info, gpointer ud)
                 * functions in the io-layer until the signal handler calls QueueUserAPC which will
                 * make it return.
                 */
-               data->interrupt_handle = mono_thread_info_prepare_interrupt (thread->handle);
+               data->interrupt_token = mono_thread_info_prepare_interrupt (info);
+
                return MonoResumeThread;
        }
 }
@@ -4445,20 +4465,22 @@ abort_thread_internal (MonoInternalThread *thread, gboolean can_raise_exception,
                MonoException *exc = mono_thread_request_interruption (can_raise_exception); 
                if (exc)
                        mono_raise_exception (exc);
-               mono_thread_info_interrupt (thread->handle);
+
+               mono_thread_info_self_interrupt ();
+
                return;
        }
 
        mono_thread_info_safe_suspend_and_run ((MonoNativeThreadId)(gsize)thread->tid, TRUE, abort_thread_critical, &data);
-       if (data.interrupt_handle)
-               mono_thread_info_finish_interrupt (data.interrupt_handle);
+       if (data.interrupt_token)
+               mono_thread_info_finish_interrupt (data.interrupt_token);
        /*FIXME we need to wait for interruption to complete -- figure out how much into interruption we should wait for here*/
 }
 
 typedef struct{
        MonoInternalThread *thread;
        gboolean interrupt;
-       gpointer interrupt_handle;
+       MonoThreadInfoInterruptToken *interrupt_token;
 } SuspendThreadData;
 
 static SuspendThreadResult
@@ -4471,7 +4493,7 @@ suspend_thread_critical (MonoThreadInfo *info, gpointer ud)
        gboolean running_managed;
 
        ji = mono_thread_info_get_last_managed (info);
-       protected_wrapper = ji && !ji->async && mono_threads_is_critical_method (mono_jit_info_get_method (ji));
+       protected_wrapper = ji && !ji->is_trampoline && !ji->async && mono_threads_is_critical_method (mono_jit_info_get_method (ji));
        running_managed = mono_jit_info_match (ji, MONO_CONTEXT_GET_IP (&mono_thread_info_get_suspend_state (info)->ctx));
 
        if (running_managed && !protected_wrapper) {
@@ -4482,7 +4504,7 @@ suspend_thread_critical (MonoThreadInfo *info, gpointer ud)
                if (InterlockedCompareExchange (&thread->interruption_requested, 1, 0) == 0)
                        InterlockedIncrement (&thread_interruption_requested);
                if (data->interrupt)
-                       data->interrupt_handle = mono_thread_info_prepare_interrupt (thread->handle);
+                       data->interrupt_token = mono_thread_info_prepare_interrupt (thread->thread_info);
                
                if (mono_thread_notify_pending_exc_fn && !running_managed)
                        /* The JIT will notify the thread about the interruption */
@@ -4508,8 +4530,8 @@ suspend_thread_internal (MonoInternalThread *thread, gboolean interrupt)
                data.interrupt = interrupt;
 
                mono_thread_info_safe_suspend_and_run ((MonoNativeThreadId)(gsize)thread->tid, interrupt, suspend_thread_critical, &data);
-               if (data.interrupt_handle)
-                       mono_thread_info_finish_interrupt (data.interrupt_handle);
+               if (data.interrupt_token)
+                       mono_thread_info_finish_interrupt (data.interrupt_token);
                UNLOCK_THREAD (thread);
        }
 }
@@ -4653,3 +4675,43 @@ mono_thread_join (gpointer tid)
        pthread_join (thread, NULL);
 #endif
 }
+
+void
+mono_thread_internal_check_for_interruption_critical (MonoInternalThread *thread)
+{
+       if ((thread->state & (ThreadState_StopRequested | ThreadState_SuspendRequested)) != 0)
+               mono_thread_interruption_checkpoint ();
+}
+
+static inline gboolean
+is_appdomainunloaded_exception (MonoClass *klass)
+{
+       static MonoClass *app_domain_unloaded_exception_klass = NULL;
+
+       if (!app_domain_unloaded_exception_klass)
+               app_domain_unloaded_exception_klass = mono_class_from_name (mono_defaults.corlib, "System", "AppDomainUnloadedException");
+       g_assert (app_domain_unloaded_exception_klass);
+
+       return klass == app_domain_unloaded_exception_klass;
+}
+
+static inline gboolean
+is_threadabort_exception (MonoClass *klass)
+{
+       return klass == mono_defaults.threadabortexception_class;
+}
+
+void
+mono_thread_internal_unhandled_exception (MonoObject* exc)
+{
+       if (mono_runtime_unhandled_exception_policy_get () == MONO_UNHANDLED_POLICY_CURRENT) {
+               MonoClass *klass = exc->vtable->klass;
+               if (is_threadabort_exception (klass)) {
+                       mono_thread_internal_reset_abort (mono_thread_internal_current ());
+               } else if (!is_appdomainunloaded_exception (klass)) {
+                       mono_unhandled_exception (exc);
+                       if (mono_environment_exitcode_get () == 1)
+                               exit (255);
+               }
+       }
+}
diff --git a/mono/metadata/tpool-epoll.c b/mono/metadata/tpool-epoll.c
deleted file mode 100644 (file)
index bab57ab..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * tpool-epoll.c: epoll related stuff
- *
- * Authors:
- *   Dietmar Maurer (dietmar@ximian.com)
- *   Gonzalo Paniagua Javier (gonzalo@ximian.com)
- *
- * Copyright 2001-2003 Ximian, Inc (http://www.ximian.com)
- * Copyright 2004-2011 Novell, Inc (http://www.novell.com)
- * Copyright 2011 Xamarin Inc (http://www.xamarin.com)
- */
-
-struct _tp_epoll_data {
-       int epollfd;
-};
-
-typedef struct _tp_epoll_data tp_epoll_data;
-static void tp_epoll_modify (gpointer p, int fd, int operation, int events, gboolean is_new);
-static void tp_epoll_shutdown (gpointer event_data);
-static void tp_epoll_wait (gpointer event_data);
-
-static gpointer
-tp_epoll_init (SocketIOData *data)
-{
-       tp_epoll_data *result;
-
-       result = g_new0 (tp_epoll_data, 1);
-#ifdef EPOLL_CLOEXEC
-       result->epollfd = epoll_create1 (EPOLL_CLOEXEC);
-#else
-       result->epollfd = epoll_create (256); /* The number does not really matter */
-       fcntl (result->epollfd, F_SETFD, FD_CLOEXEC);
-#endif
-       if (result->epollfd == -1) {
-               int err = errno;
-               if (g_getenv ("MONO_DEBUG")) {
-#ifdef EPOLL_CLOEXEC
-                       g_message ("epoll_create1(EPOLL_CLOEXEC) failed: %d %s", err, g_strerror (err));
-#else
-                       g_message ("epoll_create(256) failed: %d %s", err, g_strerror (err));
-#endif
-               }
-
-               return NULL;
-       }
-
-       data->shutdown = tp_epoll_shutdown;
-       data->modify = tp_epoll_modify;
-       data->wait = tp_epoll_wait;
-       return result;
-}
-
-static void
-tp_epoll_modify (gpointer p, int fd, int operation, int events, gboolean is_new)
-{
-       SocketIOData *socket_io_data;
-       tp_epoll_data *data;
-       struct epoll_event evt;
-       int epoll_op;
-
-       socket_io_data = p;
-       data = socket_io_data->event_data;
-
-       memset (&evt, 0, sizeof (evt));
-       evt.data.fd = fd;
-       if ((events & MONO_POLLIN) != 0)
-               evt.events |= EPOLLIN;
-       if ((events & MONO_POLLOUT) != 0)
-               evt.events |= EPOLLOUT;
-
-       epoll_op = (is_new) ? EPOLL_CTL_ADD : EPOLL_CTL_MOD;
-       if (epoll_ctl (data->epollfd, epoll_op, fd, &evt) == -1) {
-               int err = errno;
-               if (epoll_op == EPOLL_CTL_ADD && err == EEXIST) {
-                       epoll_op = EPOLL_CTL_MOD;
-                       if (epoll_ctl (data->epollfd, epoll_op, fd, &evt) == -1) {
-                               g_message ("epoll_ctl(MOD): %d %s", err, g_strerror (err));
-                       }
-               }
-       }
-       mono_mutex_unlock (&socket_io_data->io_lock);
-}
-
-static void
-tp_epoll_shutdown (gpointer event_data)
-{
-       tp_epoll_data *data = event_data;
-
-       close (data->epollfd);
-       g_free (data);
-}
-
-#define EPOLL_ERRORS (EPOLLERR | EPOLLHUP)
-#define EPOLL_NEVENTS  128
-static void
-tp_epoll_wait (gpointer p)
-{
-       SocketIOData *socket_io_data;
-       int epollfd;
-       struct epoll_event *events, *evt;
-       int ready = 0, i;
-       gpointer async_results [EPOLL_NEVENTS * 2]; // * 2 because each loop can add up to 2 results here
-       gint nresults;
-       tp_epoll_data *data;
-
-       socket_io_data = p;
-       data = socket_io_data->event_data;
-       epollfd = data->epollfd;
-       events = g_new0 (struct epoll_event, EPOLL_NEVENTS);
-
-       while (1) {
-               mono_gc_set_skip_thread (TRUE);
-
-               do {
-                       if (ready == -1) {
-                               check_for_interruption_critical ();
-                       }
-                       ready = epoll_wait (epollfd, events, EPOLL_NEVENTS, -1);
-               } while (ready == -1 && errno == EINTR);
-
-               mono_gc_set_skip_thread (FALSE);
-
-               if (ready == -1) {
-                       int err = errno;
-                       g_free (events);
-                       if (err != EBADF)
-                               g_warning ("epoll_wait: %d %s", err, g_strerror (err));
-
-                       return;
-               }
-
-               mono_mutex_lock (&socket_io_data->io_lock);
-               if (socket_io_data->inited == 3) {
-                       g_free (events);
-                       mono_mutex_unlock (&socket_io_data->io_lock);
-                       return; /* cleanup called */
-               }
-
-               nresults = 0;
-               for (i = 0; i < ready; i++) {
-                       int fd;
-                       MonoMList *list;
-                       MonoObject *ares;
-
-                       evt = &events [i];
-                       fd = evt->data.fd;
-                       list = mono_g_hash_table_lookup (socket_io_data->sock_to_state, GINT_TO_POINTER (fd));
-                       if (list != NULL && (evt->events & (EPOLLIN | EPOLL_ERRORS)) != 0) {
-                               ares = get_io_event (&list, MONO_POLLIN);
-                               if (ares != NULL)
-                                       async_results [nresults++] = ares;
-                       }
-
-                       if (list != NULL && (evt->events & (EPOLLOUT | EPOLL_ERRORS)) != 0) {
-                               ares = get_io_event (&list, MONO_POLLOUT);
-                               if (ares != NULL)
-                                       async_results [nresults++] = ares;
-                       }
-
-                       if (list != NULL) {
-                               int p;
-
-                               mono_g_hash_table_replace (socket_io_data->sock_to_state, GINT_TO_POINTER (fd), list);
-                               p = get_events_from_list (list);
-                               evt->events = (p & MONO_POLLOUT) ? EPOLLOUT : 0;
-                               evt->events |= (p & MONO_POLLIN) ? EPOLLIN : 0;
-                               if (epoll_ctl (epollfd, EPOLL_CTL_MOD, fd, evt) == -1) {
-                                       if (epoll_ctl (epollfd, EPOLL_CTL_ADD, fd, evt) == -1) {
-                                               int err = errno;
-                                               g_message ("epoll(ADD): %d %s", err, g_strerror (err));
-                                       }
-                               }
-                       } else {
-                               mono_g_hash_table_remove (socket_io_data->sock_to_state, GINT_TO_POINTER (fd));
-                               epoll_ctl (epollfd, EPOLL_CTL_DEL, fd, evt);
-                       }
-               }
-               mono_mutex_unlock (&socket_io_data->io_lock);
-               threadpool_append_jobs (&async_io_tp, (MonoObject **) async_results, nresults);
-               mono_gc_bzero_aligned (async_results, sizeof (gpointer) * nresults);
-       }
-}
-#undef EPOLL_NEVENTS
-#undef EPOLL_ERRORS
diff --git a/mono/metadata/tpool-kqueue.c b/mono/metadata/tpool-kqueue.c
deleted file mode 100644 (file)
index 1cbd26f..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * tpool-kqueue.c: kqueue related stuff
- *
- * Authors:
- *   Gonzalo Paniagua Javier (gonzalo@ximian.com)
- *
- * Copyright 2011 Novell, Inc (http://www.novell.com)
- */
-
-struct _tp_kqueue_data {
-       int fd;
-};
-
-typedef struct _tp_kqueue_data tp_kqueue_data;
-static void tp_kqueue_modify (gpointer p, int fd, int operation, int events, gboolean is_new);
-static void tp_kqueue_shutdown (gpointer event_data);
-static void tp_kqueue_wait (gpointer event_data);
-
-static gpointer
-tp_kqueue_init (SocketIOData *data)
-{
-       tp_kqueue_data *result;
-
-       result = g_new0 (tp_kqueue_data, 1);
-       result->fd = kqueue ();
-       if (result->fd == -1)
-               return NULL;
-
-       data->shutdown = tp_kqueue_shutdown;
-       data->modify = tp_kqueue_modify;
-       data->wait = tp_kqueue_wait;
-       return result;
-}
-
-static void
-kevent_change (int kfd, struct kevent *evt, const char *error_str)
-{
-       if (kevent (kfd, evt, 1, NULL, 0, NULL) == -1) {
-               int err = errno;
-               g_message ("kqueue(%s): %d %s", error_str, err, g_strerror (err));
-       }
-}
-
-static void
-tp_kqueue_modify (gpointer p, int fd, int operation, int events, gboolean is_new)
-{
-       SocketIOData *socket_io_data;
-       socket_io_data = p;
-       tp_kqueue_data *data = socket_io_data->event_data;
-       struct kevent evt;
-
-       memset (&evt, 0, sizeof (evt));
-       if ((events & MONO_POLLIN) != 0) {
-               EV_SET (&evt, fd, EVFILT_READ, EV_ADD | EV_ENABLE | EV_ONESHOT, 0, 0, 0);
-               kevent_change (data->fd, &evt, "ADD read");
-       }
-
-       if ((events & MONO_POLLOUT) != 0) {
-               EV_SET (&evt, fd, EVFILT_WRITE, EV_ADD | EV_ENABLE | EV_ONESHOT, 0, 0, 0);
-               kevent_change (data->fd, &evt, "ADD write");
-       }
-       mono_mutex_unlock (&socket_io_data->io_lock);
-}
-
-static void
-tp_kqueue_shutdown (gpointer event_data)
-{
-       tp_kqueue_data *data = event_data;
-
-       close (data->fd);
-       g_free (data);
-}
-
-#define KQUEUE_NEVENTS 128
-static void
-tp_kqueue_wait (gpointer p)
-{
-       SocketIOData *socket_io_data;
-       int kfd;
-       struct kevent *events, *evt;
-       int ready = 0, i;
-       gpointer async_results [KQUEUE_NEVENTS * 2]; // * 2 because each loop can add up to 2 results here
-       gint nresults;
-       tp_kqueue_data *data;
-
-       socket_io_data = p;
-       data = socket_io_data->event_data;
-       kfd = data->fd;
-       events = g_new0 (struct kevent, KQUEUE_NEVENTS);
-
-       while (1) {
-       
-               mono_gc_set_skip_thread (TRUE);
-
-               do {
-                       if (ready == -1) {
-                               check_for_interruption_critical ();
-                       }
-                       ready = kevent (kfd, NULL, 0, events, KQUEUE_NEVENTS, NULL);
-               } while (ready == -1 && errno == EINTR);
-
-               mono_gc_set_skip_thread (FALSE);
-
-               if (ready == -1) {
-                       int err = errno;
-                       g_free (events);
-                       if (err != EBADF)
-                               g_warning ("kevent wait: %d %s", err, g_strerror (err));
-
-                       return;
-               }
-
-               mono_mutex_lock (&socket_io_data->io_lock);
-               if (socket_io_data->inited == 3) {
-                       g_free (events);
-                       mono_mutex_unlock (&socket_io_data->io_lock);
-                       return; /* cleanup called */
-               }
-
-               nresults = 0;
-               for (i = 0; i < ready; i++) {
-                       int fd;
-                       MonoMList *list;
-                       MonoObject *ares;
-
-                       evt = &events [i];
-                       fd = evt->ident;
-                       list = mono_g_hash_table_lookup (socket_io_data->sock_to_state, GINT_TO_POINTER (fd));
-                       if (list != NULL && (evt->filter == EVFILT_READ || (evt->flags & EV_ERROR) != 0)) {
-                               ares = get_io_event (&list, MONO_POLLIN);
-                               if (ares != NULL)
-                                       async_results [nresults++] = ares;
-                       }
-                       if (list != NULL && (evt->filter == EVFILT_WRITE || (evt->flags & EV_ERROR) != 0)) {
-                               ares = get_io_event (&list, MONO_POLLOUT);
-                               if (ares != NULL)
-                                       async_results [nresults++] = ares;
-                       }
-
-                       if (list != NULL) {
-                               int p;
-
-                               mono_g_hash_table_replace (socket_io_data->sock_to_state, GINT_TO_POINTER (fd), list);
-                               p = get_events_from_list (list);
-                               if (evt->filter == EVFILT_READ && (p & MONO_POLLIN) != 0) {
-                                       EV_SET (evt, fd, EVFILT_READ, EV_ADD | EV_ENABLE | EV_ONESHOT, 0, 0, 0);
-                                       kevent_change (kfd, evt, "READD read");
-                               }
-
-                               if (evt->filter == EVFILT_WRITE && (p & MONO_POLLOUT) != 0) {
-                                       EV_SET (evt, fd, EVFILT_WRITE, EV_ADD | EV_ENABLE | EV_ONESHOT, 0, 0, 0);
-                                       kevent_change (kfd, evt, "READD write");
-                               }
-                       } else {
-                               mono_g_hash_table_remove (socket_io_data->sock_to_state, GINT_TO_POINTER (fd));
-                       }
-               }
-               mono_mutex_unlock (&socket_io_data->io_lock);
-               threadpool_append_jobs (&async_io_tp, (MonoObject **) async_results, nresults);
-               mono_gc_bzero_aligned (async_results, sizeof (gpointer) * nresults);
-       }
-}
-#undef KQUEUE_NEVENTS
-
diff --git a/mono/metadata/tpool-poll.c b/mono/metadata/tpool-poll.c
deleted file mode 100644 (file)
index 201385d..0000000
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
- * tpool-poll.c: poll related stuff
- *
- * Authors:
- *   Dietmar Maurer (dietmar@ximian.com)
- *   Gonzalo Paniagua Javier (gonzalo@ximian.com)
- *
- * Copyright 2001-2003 Ximian, Inc (http://www.ximian.com)
- * Copyright 2004-2011 Novell, Inc (http://www.novell.com)
- */
-#include <config.h>
-#include <glib.h>
-#include <errno.h>
-
-#include <mono/metadata/mono-ptr-array.h>
-#include <mono/metadata/threadpool.h>
-#include <mono/metadata/threadpool-internals.h>
-#include <mono/utils/mono-semaphore.h>
-#include <mono/utils/mono-poll.h>
-
-#define INIT_POLLFD(a, b, c) {(a)->fd = b; (a)->events = c; (a)->revents = 0;}
-struct _tp_poll_data {
-       int pipe [2];
-       MonoSemType new_sem;
-       mono_pollfd newpfd;
-};
-
-typedef struct _tp_poll_data tp_poll_data;
-
-static void tp_poll_shutdown (gpointer event_data);
-static void tp_poll_modify (gpointer p, int fd, int operation, int events, gboolean is_new);
-static void tp_poll_wait (gpointer p);
-
-gpointer tp_poll_init (SocketIOData *data);
-
-gpointer
-tp_poll_init (SocketIOData *data)
-{
-       tp_poll_data *result;
-#ifdef HOST_WIN32
-       struct sockaddr_in client;
-       struct sockaddr_in server;
-       SOCKET srv;
-       int len;
-#endif
-
-       result = g_new0 (tp_poll_data, 1);
-#ifndef HOST_WIN32
-       if (pipe (result->pipe) != 0) {
-               int err = errno;
-               perror ("mono");
-               g_assert (err);
-       }
-#else
-       srv = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
-       g_assert (srv != INVALID_SOCKET);
-       result->pipe [1] = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
-       g_assert (result->pipe [1] != INVALID_SOCKET);
-
-       server.sin_family = AF_INET;
-       server.sin_addr.s_addr = inet_addr ("127.0.0.1");
-       server.sin_port = 0;
-       if (bind (srv, (SOCKADDR *) &server, sizeof (struct sockaddr_in))) {
-               g_print ("%d\n", WSAGetLastError ());
-               g_assert (1 != 0);
-       }
-
-       len = sizeof (server);
-       getsockname (srv, (SOCKADDR *) &server, &len);
-       listen (srv, 1);
-       if (connect ((SOCKET) result->pipe [1], (SOCKADDR *) &server, sizeof (server)) == SOCKET_ERROR) {
-               g_print ("%d\n", WSAGetLastError ());
-               g_assert (1 != 0);
-       }
-       len = sizeof (client);
-       result->pipe [0] = accept (srv, (SOCKADDR *) &client, &len);
-       g_assert (result->pipe [0] != INVALID_SOCKET);
-       closesocket (srv);
-#endif
-       MONO_SEM_INIT (&result->new_sem, 1);
-       data->shutdown = tp_poll_shutdown;
-       data->modify = tp_poll_modify;
-       data->wait = tp_poll_wait;
-       return result;
-}
-
-static void
-tp_poll_modify (gpointer p, int fd, int operation, int events, gboolean is_new)
-{
-       SocketIOData *socket_io_data;
-       tp_poll_data *data;
-       char msg [1];
-       int unused G_GNUC_UNUSED;
-
-       socket_io_data = p;
-       data = socket_io_data->event_data;
-
-       mono_mutex_unlock (&socket_io_data->io_lock);
-       
-       MONO_SEM_WAIT (&data->new_sem);
-       INIT_POLLFD (&data->newpfd, GPOINTER_TO_INT (fd), events);
-       *msg = (char) operation;
-#ifndef HOST_WIN32
-       unused = write (data->pipe [1], msg, 1);
-#else
-       unused = send ((SOCKET) data->pipe [1], msg, 1, 0);
-#endif
-}
-
-static void
-tp_poll_shutdown (gpointer event_data)
-{
-       tp_poll_data *data = event_data;
-
-#ifdef HOST_WIN32
-       closesocket (data->pipe [0]);
-       closesocket (data->pipe [1]);
-#else
-       if (data->pipe [0] > -1)
-               close (data->pipe [0]);
-       if (data->pipe [1] > -1)
-               close (data->pipe [1]);
-#endif
-       data->pipe [0] = -1;
-       data->pipe [1] = -1;
-       MONO_SEM_DESTROY (&data->new_sem);
-}
-
-static int
-mark_bad_fds (mono_pollfd *pfds, int nfds)
-{
-       int i, ret;
-       mono_pollfd *pfd;
-       int count = 0;
-
-       for (i = 0; i < nfds; i++) {
-               pfd = &pfds [i];
-               if (pfd->fd == -1)
-                       continue;
-
-               ret = mono_poll (pfd, 1, 0);
-               if (ret == -1 && errno == EBADF) {
-                       pfd->revents |= MONO_POLLNVAL;
-                       count++;
-               } else if (ret == 1) {
-                       count++;
-               }
-       }
-
-       return count;
-}
-
-static void
-tp_poll_wait (gpointer p)
-{
-#if MONO_SMALL_CONFIG
-#define INITIAL_POLLFD_SIZE    128
-#else
-#define INITIAL_POLLFD_SIZE    1024
-#endif
-#define POLL_ERRORS (MONO_POLLERR | MONO_POLLHUP | MONO_POLLNVAL)
-
-#ifdef DISABLE_SOCKETS
-#define socket_io_cleanup(x)
-#endif
-       mono_pollfd *pfds;
-       gint maxfd = 1;
-       gint allocated;
-       gint i;
-       tp_poll_data *data;
-       SocketIOData *socket_io_data = p;
-       MonoPtrArray async_results;
-       gint nresults;
-
-       data = socket_io_data->event_data;
-       allocated = INITIAL_POLLFD_SIZE;
-       pfds = g_new0 (mono_pollfd, allocated);
-       mono_ptr_array_init (async_results, allocated * 2);
-       INIT_POLLFD (pfds, data->pipe [0], MONO_POLLIN);
-       for (i = 1; i < allocated; i++)
-               INIT_POLLFD (&pfds [i], -1, 0);
-
-       while (1) {
-               int nsock = 0;
-               mono_pollfd *pfd;
-               char one [1];
-               MonoMList *list;
-               MonoObject *ares;
-
-               mono_gc_set_skip_thread (TRUE);
-
-               do {
-                       if (nsock == -1) {
-                               check_for_interruption_critical ();
-                       }
-
-                       nsock = mono_poll (pfds, maxfd, -1);
-               } while (nsock == -1 && errno == EINTR);
-
-               mono_gc_set_skip_thread (FALSE);
-
-               /* 
-                * Apart from EINTR, we only check EBADF, for the rest:
-                *  EINVAL: mono_poll() 'protects' us from descriptor
-                *      numbers above the limit if using select() by marking
-                *      then as MONO_POLLERR.  If a system poll() is being
-                *      used, the number of descriptor we're passing will not
-                *      be over sysconf(_SC_OPEN_MAX), as the error would have
-                *      happened when opening.
-                *
-                *  EFAULT: we own the memory pointed by pfds.
-                *  ENOMEM: we're doomed anyway
-                *
-                */
-
-               if (nsock == -1 && errno == EBADF) {
-                       pfds->revents = 0; /* Just in case... */
-                       nsock = mark_bad_fds (pfds, maxfd);
-               }
-
-               if ((pfds->revents & POLL_ERRORS) != 0) {
-                       /* We're supposed to die now, as the pipe has been closed */
-                       g_free (pfds);
-                       mono_ptr_array_destroy (async_results);
-                       socket_io_cleanup (socket_io_data);
-                       return;
-               }
-
-               /* Got a new socket */
-               if ((pfds->revents & MONO_POLLIN) != 0) {
-                       int nread;
-                       gboolean found = FALSE;
-
-                       for (i = 1; i < allocated; i++) {
-                               pfd = &pfds [i];
-                               if (pfd->fd == data->newpfd.fd) {
-                                       found = TRUE;
-                                       break;
-                               }
-                       }
-
-                       if (!found) {
-                               for (i = 1; i < allocated; i++) {
-                                       pfd = &pfds [i];
-                                       if (pfd->fd == -1)
-                                               break;
-                               }
-                       }
-
-                       if (i == allocated) {
-                               mono_pollfd *oldfd;
-
-                               oldfd = pfds;
-                               i = allocated;
-                               allocated = allocated * 2;
-                               pfds = g_renew (mono_pollfd, oldfd, allocated);
-                               g_free (oldfd);
-                               for (; i < allocated; i++)
-                                       INIT_POLLFD (&pfds [i], -1, 0);
-                               //async_results = g_renew (gpointer, async_results, allocated * 2);
-                       }
-#ifndef HOST_WIN32
-                       nread = read (data->pipe [0], one, 1);
-#else
-                       nread = recv ((SOCKET) data->pipe [0], one, 1, 0);
-#endif
-                       if (nread <= 0) {
-                               g_free (pfds);
-                               mono_ptr_array_destroy (async_results);
-                               return; /* we're closed */
-                       }
-
-                       INIT_POLLFD (&pfds [i], data->newpfd.fd, data->newpfd.events);
-                       memset (&data->newpfd, 0, sizeof (mono_pollfd));
-                       MONO_SEM_POST (&data->new_sem);
-                       if (i >= maxfd)
-                               maxfd = i + 1;
-                       nsock--;
-               }
-
-               if (nsock == 0)
-                       continue;
-
-               mono_mutex_lock (&socket_io_data->io_lock);
-               if (socket_io_data->inited == 3) {
-                       g_free (pfds);
-                       mono_ptr_array_destroy (async_results);
-                       mono_mutex_unlock (&socket_io_data->io_lock);
-                       return; /* cleanup called */
-               }
-
-               nresults = 0;
-               mono_ptr_array_clear (async_results);
-
-               for (i = 1; i < maxfd && nsock > 0; i++) {
-                       pfd = &pfds [i];
-                       if (pfd->fd == -1 || pfd->revents == 0)
-                               continue;
-
-                       nsock--;
-                       list = mono_g_hash_table_lookup (socket_io_data->sock_to_state, GINT_TO_POINTER (pfd->fd));
-                       if (list != NULL && (pfd->revents & (MONO_POLLIN | POLL_ERRORS)) != 0) {
-                               ares = get_io_event (&list, MONO_POLLIN);
-                               if (ares != NULL) {
-                                       mono_ptr_array_append (async_results, ares);
-                                       ++nresults;
-                               }
-                       }
-
-                       if (list != NULL && (pfd->revents & (MONO_POLLOUT | POLL_ERRORS)) != 0) {
-                               ares = get_io_event (&list, MONO_POLLOUT);
-                               if (ares != NULL) {
-                                       mono_ptr_array_append (async_results, ares);
-                                       ++nresults;
-                               }
-                       }
-
-                       if (list != NULL) {
-                               mono_g_hash_table_replace (socket_io_data->sock_to_state, GINT_TO_POINTER (pfd->fd), list);
-                               pfd->events = get_events_from_list (list);
-                       } else {
-                               mono_g_hash_table_remove (socket_io_data->sock_to_state, GINT_TO_POINTER (pfd->fd));
-                               pfd->fd = -1;
-                               if (i == maxfd - 1)
-                                       maxfd--;
-                       }
-               }
-               mono_mutex_unlock (&socket_io_data->io_lock);
-               threadpool_append_async_io_jobs ((MonoObject **) async_results.data, nresults);
-               mono_ptr_array_clear (async_results);
-       }
-}
-
index d1ca2c423651574f6c4333d71e74a5490e65eaed..f9d17cfb1e31d21244f99c51c7899f5d0c10da5a 100755 (executable)
@@ -6,7 +6,7 @@ monodir=$(top_builddir)
 libgc_libs=$(monodir)/libgc/libmonogc.la
 libgc_static_libs=$(monodir)/libgc/libmonogc-static.la
 
-libs=  \
+boehm_libs=    \
        $(monodir)/mono/metadata/libmonoruntime.la      \
        $(monodir)/mono/io-layer/libwapi.la     \
        $(monodir)/mono/utils/libmonoutils.la \
@@ -20,29 +20,29 @@ sgen_libs = \
        $(monodir)/mono/utils/libmonoutils.la \
        $(GLIB_LIBS) $(LIBICONV)
 
-static_libs=   \
+boehm_static_libs=     \
        $(monodir)/mono/metadata/libmonoruntime-static.la       \
        $(monodir)/mono/io-layer/libwapi.la     \
        $(monodir)/mono/utils/libmonoutils.la \
        $(GLIB_LIBS) $(LIBICONV) \
        $(libgc_static_libs)
 
-sgenstatic_libs = \
+sgen_static_libs = \
        $(monodir)/mono/metadata/libmonoruntimesgen-static.la   \
        $(monodir)/mono/sgen/libmonosgen-static.la      \
        $(monodir)/mono/io-layer/libwapi.la     \
        $(monodir)/mono/utils/libmonoutils.la \
        $(GLIB_LIBS) $(LIBICONV)
 
-CLASS=$(mcs_topdir)/class/lib/net_4_5
+CLASS=$(mcs_topdir)/class/lib/$(DEFAULT_PROFILE)
 
 RUNTIME_EXECUTABLE = $(if $(BOEHM),$(top_builddir)/mono/mini/mono-boehm,$(top_builddir)/runtime/mono-wrapper)
 
-RUNTIME = MONO_PATH=$(CLASS) $(RUNTIME_EXECUTABLE)
+MINI_RUNTIME = MONO_PATH=$(CLASS) $(RUNTIME_EXECUTABLE)
 RUNTIME_AOTCHECK = MONO_PATH=$(CLASS):. $(RUNTIME_EXECUTABLE)
 
-MCS = $(RUNTIME) $(mcs_topdir)/class/lib/build/mcs.exe -unsafe -nowarn:0162
-ILASM = $(RUNTIME) $(CLASS)/ilasm.exe
+MCS = $(MINI_RUNTIME) $(mcs_topdir)/class/lib/build/mcs.exe -unsafe -nowarn:0162
+ILASM = $(MINI_RUNTIME) $(CLASS)/ilasm.exe
 
 AM_CFLAGS = \
        -I$(top_srcdir)         \
@@ -78,16 +78,16 @@ endif
 if SUPPORT_SGEN
 sgen_binaries = mono-sgen
 sgen_libraries = libmonosgen-2.0.la
-sgen_static_libraries = libmini-static.la $(sgenstatic_libs)
+sgen_static_libraries = libmini-static.la $(sgen_static_libs)
 endif
 
 if SUPPORT_BOEHM
 boehm_libraries = libmonoboehm-2.0.la
-boehm_static_libraries = libmini-static.la $(static_libs)
+boehm_static_libraries = libmini-static.la $(boehm_static_libs)
 boehm_binaries  = mono-boehm
 endif
 
-#The mono uses sgen, while libmono remains boehm
+# The mono executable uses sgen, while libmono remains boehm
 if SUPPORT_SGEN
 mono_bin_suffix = sgen
 else
@@ -152,7 +152,7 @@ libmono_llvm_la_LIBADD = $(GLIB_LIBS) $(LLVM_LIBS) $(LLVM_LDFLAGS)
 if PLATFORM_DARWIN
 libmono_llvm_la_LDFLAGS=-Wl,-undefined -Wl,suppress -Wl,-flat_namespace
 else
-libmono_llvm_la_LIBADD += $(top_builddir)/mono/mini/libmonoboehm-$(API_VER).la $(libs)
+libmono_llvm_la_LIBADD += $(top_builddir)/mono/mini/libmonoboehm-$(API_VER).la $(boehm_libs)
 endif
 endif
 
@@ -309,7 +309,9 @@ ppc_sources = \
 
 arm_sources = \
        mini-arm.c              \
+       mini-arm-tls.S          \
        mini-arm.h              \
+       mini-arm-tls.h          \
        exceptions-arm.c        \
        tramp-arm.c
 
@@ -539,7 +541,7 @@ libmini_la_CFLAGS = $(mono_CFLAGS)
 
 libmonoboehm_2_0_la_SOURCES =
 libmonoboehm_2_0_la_CFLAGS = $(mono_boehm_CFLAGS)
-libmonoboehm_2_0_la_LIBADD = libmini.la $(libs) $(LIBMONO_DTRACE_OBJECT) $(LLVMMONOF)
+libmonoboehm_2_0_la_LIBADD = libmini.la $(boehm_libs) $(LIBMONO_DTRACE_OBJECT) $(LLVMMONOF)
 libmonoboehm_2_0_la_LDFLAGS = $(libmonoldflags)
 
 libmonosgen_2_0_la_SOURCES =
@@ -638,22 +640,22 @@ cpu-mips.h: cpu-mips.md genmdesc$(EXEEXT)
        $(GENMDESC_PRG) cpu-mips.h mips_desc $(srcdir)/cpu-mips.md
 
 testi: mono test.exe
-       $(RUNTIME) -v -v --ncompile 1 --compile Test:$(mtest) test.exe
+       $(MINI_RUNTIME) -v -v --ncompile 1 --compile Test:$(mtest) test.exe
 
 # ensure the tests are actually correct
 checktests: $(regtests)
-       for i in $(regtests); do $(RUNTIME) $$i; done
+       for i in $(regtests); do $(MINI_RUNTIME) $$i; done
 
 rcheck: mono $(regtests)
 if NACL_CODEGEN
-       for i in $(regtests); do echo "running test $$i"; $(RUNTIME) $$i --exclude 'NaClDisable' || exit 1; done
+       for i in $(regtests); do echo "running test $$i"; $(MINI_RUNTIME) $$i --exclude 'NaClDisable' || exit 1; done
 else
-       -($(RUNTIME) --regression $(regtests); echo $$? > regressionexitcode.out) | $(srcdir)/emitnunit.pl
+       -($(MINI_RUNTIME) --regression $(regtests); echo $$? > regressionexitcode.out) | $(srcdir)/emitnunit.pl
        exit $$(cat regressionexitcode.out)
 endif
 
 rcheck2: mono $(regtests)
-       $(RUNTIME) --regression $(regtests)
+       $(MINI_RUNTIME) --regression $(regtests)
 
 check-seq-points: mono $(regtests)
        rm -f TestResults_op_il_seq_point.xml
@@ -662,14 +664,14 @@ check-seq-points: mono $(regtests)
        $(srcdir)/test_op_il_seq_point_headerfooter.sh
 
 gctest: mono gc-test.exe
-       MONO_DEBUG_OPTIONS=clear-nursery-at-gc $(RUNTIME) --regression gc-test.exe
+       MONO_DEBUG_OPTIONS=clear-nursery-at-gc $(MINI_RUNTIME) --regression gc-test.exe
 
 LLVM_AOT_RUNTIME_OPTS=$(if $(LLVM),--llvm,)
 GSHAREDVT_RUNTIME_OPTS=$(if $(GSHAREDVT),-O=gsharedvt,)
 
 aotcheck: mono $(regtests)
        rm -rf *.exe.so *.exe.dylib *.exe.dylib.dSYM
-       $(RUNTIME) $(LLVM_AOT_RUNTIME_OPTS) --aot $(regtests) || exit 1
+       $(MINI_RUNTIME) $(LLVM_AOT_RUNTIME_OPTS) --aot $(regtests) || exit 1
        for i in $(regtests); do $(RUNTIME_AOTCHECK) --regression $$i || exit 1; done
        rm -rf *.exe.so *.exe.dylib *.exe.dylib.dSYM
 
@@ -681,16 +683,36 @@ gsharedvtcheck:
 
 fullaot_regtests = $(regtests) aot-tests.exe $(if $(GSHAREDVT),gshared.exe)
 
+FULLAOT_LIBS = \
+       mscorlib.dll \
+       System.Core.dll \
+       System.dll \
+       Mono.Posix.dll \
+       System.Configuration.dll \
+       System.Security.dll \
+       System.Xml.dll \
+       Mono.Security.dll \
+       Mono.Simd.dll
+
 # This currently only works on amd64/arm
 fullaotcheck: mono $(fullaot_regtests)
        rm -rf fullaot-tmp
        mkdir fullaot-tmp
-       cp $(CLASS)/mscorlib.dll $(CLASS)/System.Core.dll $(CLASS)/System.dll $(CLASS)/Mono.Posix.dll $(CLASS)/System.Configuration.dll $(CLASS)/System.Security.dll $(CLASS)/System.Xml.dll $(CLASS)/Mono.Security.dll $(CLASS)/Mono.Simd.dll $(regtests) generics-variant-types.dll TestDriver.dll fullaot-tmp/
-       cp $(fullaot_regtests) fullaot-tmp/
-       MONO_PATH=fullaot-tmp $(top_builddir)/runtime/mono-wrapper $(LLVM_AOT_RUNTIME_OPTS) $(GSHAREDVT_RUNTIME_OPTS) --aot=full fullaot-tmp/* || exit 1
+       $(MAKE) fullaot-libs AOT_FLAGS=full
+       cp $(regtests) $(fullaot_regtests) generics-variant-types.dll TestDriver.dll fullaot-tmp/
+       MONO_PATH=fullaot-tmp $(top_builddir)/runtime/mono-wrapper $(LLVM_AOT_RUNTIME_OPTS) $(GSHAREDVT_RUNTIME_OPTS) --aot=full fullaot-tmp/{generics-variant-types.dll,TestDriver.dll,*.exe} || exit 1
        ln -s $$PWD/mono fullaot-tmp/
        for i in $(fullaot_regtests); do echo $$i; MONO_PATH=fullaot-tmp $(top_builddir)/runtime/mono-wrapper --full-aot fullaot-tmp/$$i --exclude '!FULLAOT' $(ARCH_FULLAOT_EXCLUDE) || exit 1; done
 
+# This can run in parallel
+fullaot-libs: $(patsubst %,fullaot-tmp/%.dylib,$(FULLAOT_LIBS))
+
+fullaot-tmp/%.dylib: $(CLASS)/%
+       cp $(CLASS)/$* fullaot-tmp/
+       mkdir fullaot-tmp/$*-tmp
+       MONO_PATH=fullaot-tmp/:$(CLASS) $(top_builddir)/runtime/mono-wrapper --aot=$(AOT_FLAGS),temp-path=fullaot-tmp/$*-tmp fullaot-tmp/$*
+       rm -rf fullaot-tmp/$*-tmp
+
 llvmfullaotcheck:
        $(MAKE) fullaotcheck LLVM=1
 
@@ -698,21 +720,21 @@ gccheck: gc-test.exe
        MONO_GC_PARAMS=stack-mark=precise MONO_GC_DEBUG=clear-at-gc ./mono-sgen gc-test.exe     
 
 bench: mono test.exe
-       time env $(RUNTIME) --ncompile $(count) --compile Test:$(mtest) test.exe
+       time env $(MINI_RUNTIME) --ncompile $(count) --compile Test:$(mtest) test.exe
 
 mbench: test.exe
        time $(monodir)/mono/jit/mono --ncompile $(count) --compile Test:$(mtest) test.exe
 
 stat1: mono bench.exe
-       $(RUNTIME) --verbose --statfile stats.pl --regression bench.exe
+       $(MINI_RUNTIME) --verbose --statfile stats.pl --regression bench.exe
        perl viewstat.pl stats.pl
 
 stat2: mono basic.exe
-       $(RUNTIME) --verbose --statfile stats.pl --regression basic.exe
+       $(MINI_RUNTIME) --verbose --statfile stats.pl --regression basic.exe
        perl viewstat.pl -e stats.pl
 
 stat3: mono bench.exe
-       $(RUNTIME) --statfile stats.pl --ncompile 1000 --compile Tests:test_0_many_nested_loops bench.exe 
+       $(MINI_RUNTIME) --statfile stats.pl --ncompile 1000 --compile Tests:test_0_many_nested_loops bench.exe 
        perl viewstat.pl stats.pl
 
 docu: mini.sgm
index c779920808f702cc341dc7231d0c80b6385a8b9f..64372e06c24db1d9043a75eadb017f15150238b6 100644 (file)
@@ -2,6 +2,7 @@ using System;
 using System.Reflection;
 using System.Collections.Generic;
 
+[AttributeUsageAttribute(AttributeTargets.All, Inherited = true, AllowMultiple = true)]
 public class CategoryAttribute : Attribute
 {
        public CategoryAttribute (string category) {
index 1aa05636260fa141ce57f393098e229ac5b3c660..0e5fac63d80cdb7e06b32a517892f5890a19e9db 100644 (file)
@@ -42,7 +42,6 @@
 #include <mono/metadata/metadata-internals.h>
 #include <mono/metadata/marshal.h>
 #include <mono/metadata/gc-internal.h>
-#include <mono/metadata/monitor.h>
 #include <mono/metadata/mempool-internals.h>
 #include <mono/metadata/mono-endian.h>
 #include <mono/metadata/threads-types.h>
@@ -213,12 +212,10 @@ typedef struct MonoAotCompile {
        GHashTable *unwind_info_offsets;
        GPtrArray *unwind_ops;
        guint32 unwind_info_offset;
-       char *got_symbol_base;
-       char *llvm_got_symbol_base;
+       char *global_prefix;
        char *got_symbol;
        char *llvm_got_symbol;
        char *plt_symbol;
-       char *methods_symbol;
        char *llvm_eh_frame_symbol;
        GHashTable *method_label_hash;
        const char *temp_prefix;
@@ -228,6 +225,7 @@ typedef struct MonoAotCompile {
        int align_pad_value;
        guint32 label_generator;
        gboolean llvm;
+       gboolean has_jitted_code;
        MonoAotFileFlags flags;
        MonoDynamicStream blob;
        MonoClass **typespec_classes;
@@ -299,6 +297,9 @@ get_patch_name (int info)
 
 #endif
 
+static guint32
+get_unwind_info_offset (MonoAotCompile *acfg, guint8 *encoded, guint32 encoded_len);
+
 static char*
 get_plt_entry_debug_sym (MonoAotCompile *acfg, MonoJumpInfo *ji, GHashTable *cache);
 
@@ -509,9 +510,31 @@ emit_symbol_size (MonoAotCompile *acfg, const char *name, const char *end_label)
        mono_img_writer_emit_symbol_size (acfg->w, name, end_label);
 }
 
+/* Emit a symbol which is referenced by the MonoAotFileInfo structure */
+static void
+emit_info_symbol (MonoAotCompile *acfg, const char *name)
+{
+       char symbol [256];
+
+       if (acfg->llvm) {
+               emit_label (acfg, name);
+               /* LLVM generated code references this */
+               sprintf (symbol, "%s%s%s", acfg->user_symbol_prefix, acfg->global_prefix, name);
+               emit_label (acfg, symbol);
+               emit_global_inner (acfg, symbol, FALSE);
+       } else {
+               emit_label (acfg, name);
+       }
+}
+
 static void
 emit_string_symbol (MonoAotCompile *acfg, const char *name, const char *value)
 {
+       if (acfg->llvm) {
+               mono_llvm_emit_aot_data (name, (guint8*)value, strlen (value) + 1);
+               return;
+       }
+
        mono_img_writer_emit_section_change (acfg->w, RODATA_SECT, 1);
 #ifdef TARGET_MACH
        /* On apple, all symbols need to be aligned to avoid warnings from ld */
@@ -608,6 +631,36 @@ encode_sleb128 (gint32 value, guint8 *buf, guint8 **endbuf)
        *endbuf = p;
 }
 
+static void
+encode_int (gint32 val, guint8 *buf, guint8 **endbuf)
+{
+       // FIXME: Big-endian
+       buf [0] = (val >> 0) & 0xff;
+       buf [1] = (val >> 8) & 0xff;
+       buf [2] = (val >> 16) & 0xff;
+       buf [3] = (val >> 24) & 0xff;
+
+       *endbuf = buf + 4;
+}
+
+static void
+encode_int16 (guint16 val, guint8 *buf, guint8 **endbuf)
+{
+       buf [0] = (val >> 0) & 0xff;
+       buf [1] = (val >> 8) & 0xff;
+
+       *endbuf = buf + 2;
+}
+
+static void
+encode_string (const char *s, guint8 *buf, guint8 **endbuf)
+{
+       int len = strlen (s);
+
+       memcpy (buf, s, len + 1);
+       *endbuf = buf + len + 1;
+}
+
 static void
 emit_unset_mode (MonoAotCompile *acfg)
 {
@@ -1145,6 +1198,22 @@ arch_emit_llvm_plt_entry (MonoAotCompile *acfg, const char *got_symbol, int offs
 #endif
 }
 
+/* Save unwind_info in the module and emit the offset to the information at symbol */
+static void save_unwind_info (MonoAotCompile *acfg, char *symbol, GSList *unwind_ops)
+{
+       guint32 uw_offset, encoded_len;
+       guint8 *encoded;
+
+       emit_section_change (acfg, RODATA_SECT, 0);
+       emit_global (acfg, symbol, FALSE);
+       emit_label (acfg, symbol);
+
+       encoded = mono_unwind_ops_encode (unwind_ops, &encoded_len);
+       uw_offset = get_unwind_info_offset (acfg, encoded, encoded_len);
+       g_free (encoded);
+       emit_int32 (acfg, uw_offset);
+}
+
 /*
  * arch_emit_specific_trampoline_pages:
  *
@@ -1168,6 +1237,7 @@ arch_emit_specific_trampoline_pages (MonoAotCompile *acfg)
        guint8 *loop_start, *loop_branch_back, *loop_end_check, *imt_found_check;
        int i;
        int pagesize = MONO_AOT_TRAMP_PAGE_SIZE;
+       GSList *unwind_ops = NULL;
 #define COMMON_TRAMP_SIZE 16
        int count = (pagesize - COMMON_TRAMP_SIZE) / 8;
        int imm8, rot_amount;
@@ -1260,7 +1330,6 @@ arch_emit_specific_trampoline_pages (MonoAotCompile *acfg)
        /* now the imt trampolines: each specific trampolines puts in the ip register
         * the instruction pointer address, so the generic trampoline at the start of the page
         * subtracts 4096 to get to the data page and loads the values
-        * We again fit the generic trampiline in 16 bytes.
         */
 #define IMT_TRAMP_SIZE 72
        sprintf (symbol, "%simt_trampolines_page", acfg->user_symbol_prefix);
@@ -1326,6 +1395,53 @@ arch_emit_specific_trampoline_pages (MonoAotCompile *acfg)
        acfg->tramp_page_code_offsets [MONO_AOT_TRAMP_STATIC_RGCTX] = 16;
        acfg->tramp_page_code_offsets [MONO_AOT_TRAMP_IMT_THUNK] = 72;
        acfg->tramp_page_code_offsets [MONO_AOT_TRAMP_GSHAREDVT_ARG] = 16;
+
+       /* Unwind info for specifc trampolines */
+       sprintf (symbol, "%sspecific_trampolines_page_gen_p", acfg->user_symbol_prefix);
+       /* We unwind to the original caller, from the stack, since lr is clobbered */
+       mono_add_unwind_op_def_cfa (unwind_ops, 0, 0, ARMREG_SP, 14 * sizeof (mgreg_t));
+       mono_add_unwind_op_offset (unwind_ops, 0, 0, ARMREG_LR, -4);
+       save_unwind_info (acfg, symbol, unwind_ops);
+       mono_free_unwind_info (unwind_ops);
+
+       sprintf (symbol, "%sspecific_trampolines_page_sp_p", acfg->user_symbol_prefix);
+       mono_add_unwind_op_def_cfa (unwind_ops, 0, 0, ARMREG_SP, 0);
+       mono_add_unwind_op_def_cfa_offset (unwind_ops, 4, 0, 14 * sizeof (mgreg_t));
+       save_unwind_info (acfg, symbol, unwind_ops);
+       mono_free_unwind_info (unwind_ops);
+
+       /* Unwind info for rgctx trampolines */
+       sprintf (symbol, "%srgctx_trampolines_page_gen_p", acfg->user_symbol_prefix);
+       mono_add_unwind_op_def_cfa (unwind_ops, 0, 0, ARMREG_SP, 0);
+       save_unwind_info (acfg, symbol, unwind_ops);
+
+       sprintf (symbol, "%srgctx_trampolines_page_sp_p", acfg->user_symbol_prefix);
+       save_unwind_info (acfg, symbol, unwind_ops);
+       mono_free_unwind_info (unwind_ops);
+
+       /* Unwind info for gsharedvt trampolines */
+       sprintf (symbol, "%sgsharedvt_trampolines_page_gen_p", acfg->user_symbol_prefix);
+       mono_add_unwind_op_def_cfa (unwind_ops, 0, 0, ARMREG_SP, 0);
+       mono_add_unwind_op_def_cfa_offset (unwind_ops, 4, 0, 4 * sizeof (mgreg_t));
+       save_unwind_info (acfg, symbol, unwind_ops);
+       mono_free_unwind_info (unwind_ops);
+
+       sprintf (symbol, "%sgsharedvt_trampolines_page_sp_p", acfg->user_symbol_prefix);
+       mono_add_unwind_op_def_cfa (unwind_ops, 0, 0, ARMREG_SP, 0);
+       save_unwind_info (acfg, symbol, unwind_ops);
+       mono_free_unwind_info (unwind_ops);
+
+       /* Unwind info for imt trampolines */
+       sprintf (symbol, "%simt_trampolines_page_gen_p", acfg->user_symbol_prefix);
+       mono_add_unwind_op_def_cfa (unwind_ops, 0, 0, ARMREG_SP, 0);
+       mono_add_unwind_op_def_cfa_offset (unwind_ops, 4, 0, 3 * sizeof (mgreg_t));
+       save_unwind_info (acfg, symbol, unwind_ops);
+       mono_free_unwind_info (unwind_ops);
+
+       sprintf (symbol, "%simt_trampolines_page_sp_p", acfg->user_symbol_prefix);
+       mono_add_unwind_op_def_cfa (unwind_ops, 0, 0, ARMREG_SP, 0);
+       save_unwind_info (acfg, symbol, unwind_ops);
+       mono_free_unwind_info (unwind_ops);
 #elif defined(TARGET_ARM64)
        arm64_emit_specific_trampoline_pages (acfg);
 #endif
@@ -1495,14 +1611,6 @@ arch_emit_specific_trampoline (MonoAotCompile *acfg, int offset, int *tramp_size
 
        /* FIXME: Could this clobber the register needed by get_vcall_slot () ? */
 
-       /* We clobber ECX, since EAX is used as MONO_ARCH_MONITOR_OBJECT_REG */
-#ifdef MONO_ARCH_MONITOR_OBJECT_REG
-       g_assert (MONO_ARCH_MONITOR_OBJECT_REG != X86_ECX);
-#ifdef MONO_ARCH_MONITOR_LOCK_TAKEN_REG
-       g_assert (MONO_ARCH_MONITOR_LOCK_TAKEN_REG != X86_ECX);
-#endif
-#endif
-
        code = buf;
        /* Load mscorlib got address */
        x86_mov_reg_membase (code, X86_ECX, MONO_ARCH_GOT_REG, sizeof (gpointer), 4);
@@ -2334,11 +2442,12 @@ add_to_blob_aligned (MonoAotCompile *acfg, const guint8 *data, guint32 data_len,
  * a given entry. Returns the size of the table.
  */
 static guint32
-emit_offset_table (MonoAotCompile *acfg, int noffsets, int group_size, gint32 *offsets)
+emit_offset_table (MonoAotCompile *acfg, const char *symbol, int noffsets, int group_size, gint32 *offsets)
 {
        gint32 current_offset;
        int i, buf_size, ngroups, index_entry_size;
        guint8 *p, *buf;
+       guint8 *data_p, *data_buf;
        guint32 *index_offsets;
 
        ngroups = (noffsets + (group_size - 1)) / group_size;
@@ -2362,30 +2471,49 @@ emit_offset_table (MonoAotCompile *acfg, int noffsets, int group_size, gint32 *o
                }
                current_offset = offsets [i];
        }
+       data_buf = buf;
+       data_p = p;
 
        if (ngroups && index_offsets [ngroups - 1] < 65000)
                index_entry_size = 2;
        else
                index_entry_size = 4;
 
+       buf_size = (data_p - data_buf) + (ngroups * 4) + 16;
+       p = buf = g_malloc0 (buf_size);
+
        /* Emit the header */
-       emit_int32 (acfg, noffsets);
-       emit_int32 (acfg, group_size);
-       emit_int32 (acfg, ngroups);
-       emit_int32 (acfg, index_entry_size);
+       encode_int (noffsets, p, &p);
+       encode_int (group_size, p, &p);
+       encode_int (ngroups, p, &p);
+       encode_int (index_entry_size, p, &p);
 
        /* Emit the index */
        for (i = 0; i < ngroups; ++i) {
                if (index_entry_size == 2)
-                       emit_int16 (acfg, index_offsets [i]);
+                       encode_int16 (index_offsets [i], p, &p);
                else
-                       emit_int32 (acfg, index_offsets [i]);
+                       encode_int (index_offsets [i], p, &p);
        }
-
        /* Emit the data */
-       emit_bytes (acfg, buf, p - buf);
+       memcpy (p, data_buf, data_p - data_buf);
+       p += data_p - data_buf;
+
+       g_assert (p - buf <= buf_size);
+
+       if (acfg->llvm) {
+               mono_llvm_emit_aot_data (symbol, buf, p - buf);
+       } else {
+               emit_section_change (acfg, RODATA_SECT, 1);
+               emit_alignment (acfg, 8);
+               emit_label (acfg, symbol);
+               emit_bytes (acfg, buf, p - buf);
+       }
+
+       g_free (buf);
+       g_free (data_buf);
 
-    return (int)(p - buf) + (ngroups * 4);
+    return (int)(p - buf);
 }
 
 static guint32
@@ -3066,11 +3194,7 @@ is_plt_patch (MonoJumpInfo *patch_info)
        case MONO_PATCH_INFO_INTERNAL_METHOD:
        case MONO_PATCH_INFO_JIT_ICALL_ADDR:
        case MONO_PATCH_INFO_ICALL_ADDR:
-       case MONO_PATCH_INFO_CLASS_INIT:
        case MONO_PATCH_INFO_RGCTX_FETCH:
-       case MONO_PATCH_INFO_MONITOR_ENTER:
-       case MONO_PATCH_INFO_MONITOR_ENTER_V4:
-       case MONO_PATCH_INFO_MONITOR_EXIT:
        case MONO_PATCH_INFO_LLVM_IMT_TRAMPOLINE:
                return TRUE;
        default:
@@ -3266,7 +3390,7 @@ add_extra_method_with_depth (MonoAotCompile *acfg, MonoMethod *method, int depth
                method = mini_get_shared_method (method);
        else if ((acfg->opts & MONO_OPT_GSHAREDVT) && prefer_gsharedvt_method (acfg, method) && mono_method_is_generic_sharable_full (method, FALSE, FALSE, TRUE))
                /* Use the gsharedvt version */
-               return;
+               method = mini_get_shared_method_full (method, TRUE, TRUE);
 
        if (acfg->aot_opts.log_generics)
                aot_printf (acfg, "%*sAdding method %s.\n", depth, "", mono_method_full_name (method, TRUE));
@@ -3292,7 +3416,7 @@ add_jit_icall_wrapper (gpointer key, gpointer value, gpointer user_data)
                return;
 
        name = g_strdup_printf ("__icall_wrapper_%s", callinfo->name);
-       wrapper = mono_marshal_get_icall_wrapper (callinfo->sig, name, callinfo->func, check_for_pending_exc);
+       wrapper = mono_marshal_get_icall_wrapper (callinfo->sig, name, callinfo->func, TRUE);
        g_free (name);
 
        add_method (acfg, wrapper);
@@ -5252,7 +5376,6 @@ encode_patch (MonoAotCompile *acfg, MonoJumpInfo *patch_info, guint8 *buf, guint
        case MONO_PATCH_INFO_CLASS:
        case MONO_PATCH_INFO_IID:
        case MONO_PATCH_INFO_ADJUSTED_IID:
-       case MONO_PATCH_INFO_CLASS_INIT:
                encode_klass_ref (acfg, patch_info->data.klass, p, &p);
                break;
        case MONO_PATCH_INFO_DELEGATE_TRAMPOLINE:
@@ -5303,9 +5426,6 @@ encode_patch (MonoAotCompile *acfg, MonoJumpInfo *patch_info, guint8 *buf, guint
                encode_patch (acfg, entry->data, p, &p);
                break;
        }
-       case MONO_PATCH_INFO_MONITOR_ENTER:
-       case MONO_PATCH_INFO_MONITOR_ENTER_V4:
-       case MONO_PATCH_INFO_MONITOR_EXIT:
        case MONO_PATCH_INFO_SEQ_POINT_INFO:
                break;
        case MONO_PATCH_INFO_LLVM_IMT_TRAMPOLINE:
@@ -5713,34 +5833,8 @@ emit_exception_debug_info (MonoAotCompile *acfg, MonoCompile *cfg, gboolean stor
                p += p2 - buf2;
                g_free (buf2);
 
-               if (gsctx && (gsctx->var_is_vt || gsctx->mvar_is_vt)) {
-                       MonoMethodInflated *inflated;
-                       MonoGenericContext *context;
-                       MonoGenericInst *inst;
-
-                       g_assert (jinfo->d.method->is_inflated);
-                       inflated = (MonoMethodInflated*)jinfo->d.method;
-                       context = &inflated->context;
-
+               if (gsctx && gsctx->is_gsharedvt) {
                        encode_value (1, p, &p);
-                       if (context->class_inst) {
-                               inst = context->class_inst;
-
-                               encode_value (inst->type_argc, p, &p);
-                               for (i = 0; i < inst->type_argc; ++i)
-                                       encode_value (gsctx->var_is_vt [i], p, &p);
-                       } else {
-                               encode_value (0, p, &p);
-                       }
-                       if (context->method_inst) {
-                               inst = context->method_inst;
-
-                               encode_value (inst->type_argc, p, &p);
-                               for (i = 0; i < inst->type_argc; ++i)
-                                       encode_value (gsctx->mvar_is_vt [i], p, &p);
-                       } else {
-                               encode_value (0, p, &p);
-                       }
                } else {
                        encode_value (0, p, &p);
                }
@@ -5873,7 +5967,6 @@ static char*
 get_plt_entry_debug_sym (MonoAotCompile *acfg, MonoJumpInfo *ji, GHashTable *cache)
 {
        char *debug_sym = NULL;
-       char *s;
        char *prefix;
 
        if (acfg->llvm && llvm_acfg->aot_opts.static_link) {
@@ -5890,11 +5983,6 @@ get_plt_entry_debug_sym (MonoAotCompile *acfg, MonoJumpInfo *ji, GHashTable *cac
        case MONO_PATCH_INFO_INTERNAL_METHOD:
                debug_sym = g_strdup_printf ("%s_jit_icall_%s", prefix, ji->data.name);
                break;
-       case MONO_PATCH_INFO_CLASS_INIT:
-               s = mono_type_get_name (&ji->data.klass->byval_arg);
-               debug_sym = g_strdup_printf ("%s__class_init_%s", prefix, s);
-               g_free (s);
-               break;
        case MONO_PATCH_INFO_RGCTX_FETCH:
                debug_sym = g_strdup_printf ("%s_rgctx_fetch_%d", prefix, acfg->label_generator ++);
                break;
@@ -5933,7 +6021,7 @@ emit_plt (MonoAotCompile *acfg)
 
        emit_section_change (acfg, ".text", 0);
        emit_alignment_code (acfg, NACL_SIZE(16, kNaClAlignment));
-       emit_label (acfg, symbol);
+       emit_info_symbol (acfg, symbol);
        emit_label (acfg, acfg->plt_symbol);
 
        for (i = 0; i < acfg->plt_offset; ++i) {
@@ -6038,7 +6126,7 @@ emit_plt (MonoAotCompile *acfg)
        emit_symbol_size (acfg, acfg->plt_symbol, ".");
 
        sprintf (symbol, "plt_end");
-       emit_label (acfg, symbol);
+       emit_info_symbol (acfg, symbol);
 }
 
 /*
@@ -6157,7 +6245,7 @@ emit_trampoline_full (MonoAotCompile *acfg, int got_offset, MonoTrampInfo *info,
 static G_GNUC_UNUSED void
 emit_trampoline (MonoAotCompile *acfg, int got_offset, MonoTrampInfo *info)
 {
-       emit_trampoline_full (acfg, got_offset, info, FALSE);
+       emit_trampoline_full (acfg, got_offset, info, TRUE);
 }
 
 static void
@@ -6202,17 +6290,6 @@ emit_trampolines (MonoAotCompile *acfg)
                        emit_trampoline (acfg, acfg->got_offset, info);
                }
 
-#if defined(MONO_ARCH_MONITOR_OBJECT_REG)
-               mono_arch_create_monitor_enter_trampoline (&info, FALSE, TRUE);
-               emit_trampoline (acfg, acfg->got_offset, info);
-#if defined(MONO_ARCH_MONITOR_LOCK_TAKEN_REG)
-               mono_arch_create_monitor_enter_trampoline (&info, TRUE, TRUE);
-               emit_trampoline (acfg, acfg->got_offset, info);
-#endif
-               mono_arch_create_monitor_exit_trampoline (&info, TRUE);
-               emit_trampoline (acfg, acfg->got_offset, info);
-#endif
-
                /* Emit the exception related code pieces */
                mono_arch_get_restore_context (&info, TRUE);
                emit_trampoline (acfg, acfg->got_offset, info);
@@ -6346,7 +6423,7 @@ emit_trampolines (MonoAotCompile *acfg)
                                emit_local_symbol (acfg, symbol, end_symbol, TRUE);
 
                        emit_alignment_code (acfg, AOT_FUNC_ALIGNMENT);
-                       emit_label (acfg, symbol);
+                       emit_info_symbol (acfg, symbol);
 
                        acfg->trampoline_got_offset_base [ntype] = tramp_got_offset;
 
@@ -6496,14 +6573,87 @@ clean_path (gchar * path)
        return clean;
 }
 
+static GPtrArray *
+mono_aot_split_options (const char *aot_options)
+{
+       enum MonoAotOptionState {
+               MONO_AOT_OPTION_STATE_DEFAULT,
+               MONO_AOT_OPTION_STATE_STRING,
+               MONO_AOT_OPTION_STATE_ESCAPE,
+       };
+
+       GPtrArray *args = g_ptr_array_new ();
+       enum MonoAotOptionState state = MONO_AOT_OPTION_STATE_DEFAULT;
+       gchar const *opt_start = aot_options;
+       gboolean end_of_string = FALSE;
+       gchar cur;
+
+       g_return_val_if_fail (aot_options != NULL, NULL);
+
+       while ((cur = *aot_options) != '\0') {
+               if (state == MONO_AOT_OPTION_STATE_ESCAPE)
+                       goto next;
+
+               switch (cur) {
+               case '"':
+                       // If we find a quote, then if we're in the default case then
+                       // it means we've found the start of a string, if not then it
+                       // means we've found the end of the string and should switch
+                       // back to the default case.            
+                       switch (state) {
+                       case MONO_AOT_OPTION_STATE_DEFAULT:
+                               state = MONO_AOT_OPTION_STATE_STRING;
+                               break;
+                       case MONO_AOT_OPTION_STATE_STRING:
+                               state = MONO_AOT_OPTION_STATE_DEFAULT;
+                               break;
+                       case MONO_AOT_OPTION_STATE_ESCAPE:
+                               g_assert_not_reached ();
+                               break;
+                       }
+                       break;
+               case '\\':
+                       // If we've found an escaping operator, then this means we
+                       // should not process the next character if inside a string.            
+                       if (state == MONO_AOT_OPTION_STATE_STRING) 
+                               state = MONO_AOT_OPTION_STATE_ESCAPE;
+                       break;
+               case ',':
+                       // If we're in the default state then this means we've found
+                       // an option, store it for later processing.
+                       if (state == MONO_AOT_OPTION_STATE_DEFAULT)
+                               goto new_opt;
+                       break;
+               }
+
+       next:
+               aot_options++;
+               // If the next character is end of string, then process the last option.
+               if (*(aot_options) == '\0') {
+                       end_of_string = TRUE;
+                       goto new_opt;
+               }
+               continue;
+
+       new_opt:
+               g_ptr_array_add (args, g_strndup (opt_start, aot_options - opt_start));
+               opt_start = ++aot_options;
+               if (end_of_string)
+                       break;
+               goto next;
+       }
+
+       return args;
+}
+
 static void
 mono_aot_parse_options (const char *aot_options, MonoAotOptions *opts)
 {
-       gchar **args, **ptr;
+       GPtrArray* args;
 
-       args = g_strsplit (aot_options ? aot_options : "", ",", -1);
-       for (ptr = args; ptr && *ptr; ptr ++) {
-               const char *arg = *ptr;
+       args = mono_aot_split_options (aot_options ? aot_options : "");
+       for (int i = 0; i < args->len; ++i) {
+               const char *arg = g_ptr_array_index (args, i);
 
                if (str_begins_with (arg, "outfile=")) {
                        opts->outfile = g_strdup (arg + strlen ("outfile="));
@@ -6635,6 +6785,8 @@ mono_aot_parse_options (const char *aot_options, MonoAotOptions *opts)
                        fprintf (stderr, "AOT : Unknown argument '%s'.\n", arg);
                        exit (1);
                }
+
+               g_free ((gpointer) arg);
        }
 
        if (opts->use_trampolines_page) {
@@ -6643,7 +6795,8 @@ mono_aot_parse_options (const char *aot_options, MonoAotOptions *opts)
                opts->nimt_trampolines = 0;
                opts->ngsharedvt_arg_trampolines = 0;
        }
-       g_strfreev (args);
+
+       g_ptr_array_free (args, /*free_seg=*/TRUE);
 }
 
 static void
@@ -6736,7 +6889,6 @@ can_encode_patch (MonoAotCompile *acfg, MonoJumpInfo *patch_info)
                return can_encode_method (acfg, method);
        }
        case MONO_PATCH_INFO_VTABLE:
-       case MONO_PATCH_INFO_CLASS_INIT:
        case MONO_PATCH_INFO_CLASS:
        case MONO_PATCH_INFO_IID:
        case MONO_PATCH_INFO_ADJUSTED_IID:
@@ -6834,7 +6986,7 @@ compile_method (MonoAotCompile *acfg, MonoMethod *method)
                flags |= JIT_FLAG_LLVM;
        if (acfg->aot_opts.no_direct_calls)
                flags |= JIT_FLAG_NO_DIRECT_ICALLS;
-       cfg = mini_method_compile (method, acfg->opts, mono_get_root_domain (), flags, 0);
+       cfg = mini_method_compile (method, acfg->opts, mono_get_root_domain (), flags, 0, index);
        mono_loader_clear_error ();
 
        if (cfg->exception_type == MONO_EXCEPTION_GENERIC_SHARING_FAILED) {
@@ -6922,6 +7074,9 @@ compile_method (MonoAotCompile *acfg, MonoMethod *method)
                return;
        }
 
+       if (!cfg->compile_llvm)
+               acfg->has_jitted_code = TRUE;
+
        if (method->is_inflated && acfg->aot_opts.log_instances) {
                if (acfg->instances_logfile)
                        fprintf (acfg->instances_logfile, "%s ### %d\n", mono_method_full_name (method, TRUE), cfg->code_size);
@@ -6938,8 +7093,21 @@ compile_method (MonoAotCompile *acfg, MonoMethod *method)
        if (!acfg->aot_opts.no_instances && depth < 32) {
                for (patch_info = cfg->patch_info; patch_info; patch_info = patch_info->next) {
                        switch (patch_info->type) {
+                       case MONO_PATCH_INFO_RGCTX_FETCH:
                        case MONO_PATCH_INFO_METHOD: {
-                               MonoMethod *m = patch_info->data.method;
+                               MonoMethod *m = NULL;
+
+                               if (patch_info->type == MONO_PATCH_INFO_RGCTX_FETCH) {
+                                       MonoJumpInfoRgctxEntry *e = patch_info->data.rgctx_entry;
+
+                                       if (e->info_type == MONO_RGCTX_INFO_GENERIC_METHOD_CODE)
+                                               m = e->data->data.method;
+                               } else {
+                                       m = patch_info->data.method;
+                               }
+
+                               if (!m)
+                                       break;
                                if (m->is_inflated) {
                                        if (!(mono_class_generic_sharing_enabled (m->klass) &&
                                                  mono_method_is_generic_sharable_full (m, FALSE, FALSE, FALSE)) &&
@@ -7307,8 +7475,10 @@ execute_system (const char * command)
        g_free (wstr);
 
        g_free (command);
-#else
+#elif defined (HAVE_SYSTEM)
        status = system (command);
+#else
+       g_assert_not_reached ();
 #endif
 
        return status;
@@ -7379,7 +7549,7 @@ emit_llvm_file (MonoAotCompile *acfg)
        if (acfg->aot_opts.mtriple)
                g_string_append_printf (acfg->llc_args, " -mtriple=%s", acfg->aot_opts.mtriple);
 
-       g_string_append_printf (acfg->llc_args, " -mono-eh-frame-symbol=%s", acfg->llvm_eh_frame_symbol);
+       g_string_append_printf (acfg->llc_args, " -mono-eh-frame-symbol=%s%s", acfg->user_symbol_prefix, acfg->llvm_eh_frame_symbol);
 
 #if defined(TARGET_MACH) && defined(TARGET_ARM)
        /* ios requires PIC code now */
@@ -7390,7 +7560,6 @@ emit_llvm_file (MonoAotCompile *acfg)
        else
                g_string_append_printf (acfg->llc_args, " -relocation-model=pic");
 #endif
-       unlink (acfg->tmpfname);
 
        if (acfg->llvm_owriter) {
                /* Emit an object file directly */
@@ -7414,6 +7583,7 @@ static void
 emit_code (MonoAotCompile *acfg)
 {
        int oindex, i, prev_index;
+       gboolean saved_unbox_info = FALSE;
        char symbol [256];
 
 #if defined(TARGET_POWERPC64)
@@ -7431,20 +7601,7 @@ emit_code (MonoAotCompile *acfg)
         */
        emit_section_change (acfg, ".text", 0);
        emit_alignment_code (acfg, 8);
-       if (acfg->llvm) {
-               for (i = 0; i < acfg->nmethods; ++i) {
-                       if (acfg->cfgs [i] && acfg->cfgs [i]->compile_llvm) {
-                               acfg->methods_symbol = g_strdup (acfg->cfgs [i]->asm_symbol);
-                               break;
-                       }
-               }
-       }
-       if (!acfg->methods_symbol) {
-               sprintf (symbol, "methods");
-               emit_label (acfg, symbol);
-               acfg->methods_symbol = g_strdup (symbol);
-       }
-       emit_label (acfg, "jit_code_start");
+       emit_info_symbol (acfg, "jit_code_start");
 
        /* 
         * Emit some padding so the local symbol for the first method doesn't have the
@@ -7494,6 +7651,23 @@ emit_code (MonoAotCompile *acfg)
 
                        if (acfg->thumb_mixed && cfg->compile_llvm)
                                emit_set_arm_mode (acfg);
+
+                       if (!saved_unbox_info) {
+                               char user_symbol [128];
+                               GSList *unwind_ops;
+                               sprintf (user_symbol, "%sunbox_trampoline_p", acfg->user_symbol_prefix);
+
+                               emit_label (acfg, "ut_end");
+
+                               unwind_ops = mono_unwind_get_cie_program ();
+                               save_unwind_info (acfg, user_symbol, unwind_ops);
+                               mono_free_unwind_info (unwind_ops);
+
+                               /* Save the unbox trampoline size */
+                               emit_symbol_diff (acfg, "ut_end", symbol, 0);
+
+                               saved_unbox_info = TRUE;
+                       }
                }
 
                if (cfg->compile_llvm)
@@ -7504,7 +7678,7 @@ emit_code (MonoAotCompile *acfg)
 
        emit_section_change (acfg, ".text", 0);
        emit_alignment_code (acfg, 8);
-       emit_label (acfg, "jit_code_end");
+       emit_info_symbol (acfg, "jit_code_end");
 
        /* To distinguish it from the next symbol */
        emit_padding (acfg, 4);
@@ -7531,7 +7705,7 @@ emit_code (MonoAotCompile *acfg)
        sprintf (symbol, "method_addresses");
        emit_section_change (acfg, ".text", 1);
        emit_alignment_code (acfg, 8);
-       emit_label (acfg, symbol);
+       emit_info_symbol (acfg, symbol);
        emit_local_symbol (acfg, symbol, "method_addresses_end", TRUE);
        emit_unset_mode (acfg);
        if (acfg->need_no_dead_strip)
@@ -7556,7 +7730,7 @@ emit_code (MonoAotCompile *acfg)
        sprintf (symbol, "unbox_trampolines");
        emit_section_change (acfg, RODATA_SECT, 0);
        emit_alignment (acfg, 8);
-       emit_label (acfg, symbol);
+       emit_info_symbol (acfg, symbol);
 
        prev_index = -1;
        for (i = 0; i < acfg->nmethods; ++i) {
@@ -7580,14 +7754,14 @@ emit_code (MonoAotCompile *acfg)
                }
        }
        sprintf (symbol, "unbox_trampolines_end");
-       emit_label (acfg, symbol);
+       emit_info_symbol (acfg, symbol);
        emit_int32 (acfg, 0);
 
        /* Emit a separate table with the trampoline addresses/offsets */
        sprintf (symbol, "unbox_trampoline_addresses");
        emit_section_change (acfg, ".text", 0);
        emit_alignment_code (acfg, 8);
-       emit_label (acfg, symbol);
+       emit_info_symbol (acfg, symbol);
 
        for (i = 0; i < acfg->nmethods; ++i) {
                MonoCompile *cfg;
@@ -7618,7 +7792,6 @@ static void
 emit_info (MonoAotCompile *acfg)
 {
        int oindex, i;
-       char symbol [256];
        gint32 *offsets;
 
        offsets = g_new0 (gint32, acfg->nmethods);
@@ -7634,12 +7807,7 @@ emit_info (MonoAotCompile *acfg)
                }
        }
 
-       sprintf (symbol, "method_info_offsets");
-       emit_section_change (acfg, RODATA_SECT, 1);
-       emit_alignment (acfg, 8);
-       emit_label (acfg, symbol);
-
-       acfg->stats.offsets_size += emit_offset_table (acfg, acfg->nmethods, 10, offsets);
+       acfg->stats.offsets_size += emit_offset_table (acfg, "method_info_offsets", acfg->nmethods, 10, offsets);
 
        g_free (offsets);
 }
@@ -7934,46 +8102,61 @@ emit_extra_methods (MonoAotCompile *acfg)
 
        //printf ("MAX: %d\n", max_chain_length);
 
-       /* Emit the table */
-       sprintf (symbol, "extra_method_table");
-       emit_section_change (acfg, RODATA_SECT, 0);
-       emit_alignment (acfg, 8);
-       emit_label (acfg, symbol);
+       buf_size = table->len * 12 + 4;
+       p = buf = g_malloc (buf_size);
+       encode_int (table_size, p, &p);
 
-       emit_int32 (acfg, table_size);
        for (i = 0; i < table->len; ++i) {
                HashEntry *entry = g_ptr_array_index (table, i);
 
                if (entry == NULL) {
-                       emit_int32 (acfg, 0);
-                       emit_int32 (acfg, 0);
-                       emit_int32 (acfg, 0);
+                       encode_int (0, p, &p);
+                       encode_int (0, p, &p);
+                       encode_int (0, p, &p);
                } else {
                        //g_assert (entry->key > 0);
-                       emit_int32 (acfg, entry->key);
-                       emit_int32 (acfg, entry->value);
+                       encode_int (entry->key, p, &p);
+                       encode_int (entry->value, p, &p);
                        if (entry->next)
-                               emit_int32 (acfg, entry->next->index);
+                               encode_int (entry->next->index, p, &p);
                        else
-                               emit_int32 (acfg, 0);
+                               encode_int (0, p, &p);
                }
        }
+       g_assert (p - buf <= buf_size);
+
+       /* Emit the table */
+       if (acfg->llvm) {
+               mono_llvm_emit_aot_data ("extra_method_table", buf, p - buf);
+       } else {
+               sprintf (symbol, "extra_method_table");
+               emit_section_change (acfg, RODATA_SECT, 0);
+               emit_alignment (acfg, 8);
+               emit_label (acfg, symbol);
+               emit_bytes (acfg, buf, p - buf);
+       }
 
        /* 
         * Emit a table reverse mapping method indexes to their index in extra_method_info.
         * This is used by mono_aot_find_jit_info ().
         */
-       sprintf (symbol, "extra_method_info_offsets");
-       emit_section_change (acfg, RODATA_SECT, 0);
-       emit_alignment (acfg, 8);
-       emit_label (acfg, symbol);
-
-       emit_int32 (acfg, acfg->extra_methods->len);
+       buf_size = acfg->extra_methods->len * 8 + 4;
+       p = buf = g_malloc (buf_size);
+       encode_int (acfg->extra_methods->len, p, &p);
        for (i = 0; i < acfg->extra_methods->len; ++i) {
                MonoMethod *method = g_ptr_array_index (acfg->extra_methods, i);
 
-               emit_int32 (acfg, get_method_index (acfg, method));
-               emit_int32 (acfg, info_offsets [i]);
+               encode_int (get_method_index (acfg, method), p, &p);
+               encode_int (info_offsets [i], p, &p);
+       }
+       if (acfg->llvm) {
+               mono_llvm_emit_aot_data ("extra_method_info_offsets", buf, p - buf);
+       } else {
+               sprintf (symbol, "extra_method_info_offsets");
+               emit_section_change (acfg, RODATA_SECT, 0);
+               emit_alignment (acfg, 8);
+               emit_label (acfg, symbol);
+               emit_bytes (acfg, buf, p - buf);
        }
 }      
 
@@ -7981,7 +8164,6 @@ static void
 emit_exception_info (MonoAotCompile *acfg)
 {
        int i;
-       char symbol [256];
        gint32 *offsets;
        SeqPointData sp_data;
        gboolean seq_points_to_file = FALSE;
@@ -8020,12 +8202,7 @@ emit_exception_info (MonoAotCompile *acfg)
                g_free (seq_points_aot_file);
        }
 
-       sprintf (symbol, "ex_info_offsets");
-       emit_section_change (acfg, RODATA_SECT, 1);
-       emit_alignment (acfg, 8);
-       emit_label (acfg, symbol);
-
-       acfg->stats.offsets_size += emit_offset_table (acfg, acfg->nmethods, 10, offsets);
+       acfg->stats.offsets_size += emit_offset_table (acfg, "ex_info_offsets", acfg->nmethods, 10, offsets);
        g_free (offsets);
 }
 
@@ -8044,7 +8221,7 @@ emit_unwind_info (MonoAotCompile *acfg)
        sprintf (symbol, "unwind_info");
        emit_section_change (acfg, RODATA_SECT, 1);
        emit_alignment (acfg, 8);
-       emit_label (acfg, symbol);
+       emit_info_symbol (acfg, symbol);
 
        for (i = 0; i < acfg->unwind_ops->len; ++i) {
                guint32 index = GPOINTER_TO_UINT (g_ptr_array_index (acfg->unwind_ops, i));
@@ -8068,19 +8245,13 @@ static void
 emit_class_info (MonoAotCompile *acfg)
 {
        int i;
-       char symbol [256];
        gint32 *offsets;
 
        offsets = g_new0 (gint32, acfg->image->tables [MONO_TABLE_TYPEDEF].rows);
        for (i = 0; i < acfg->image->tables [MONO_TABLE_TYPEDEF].rows; ++i)
                offsets [i] = emit_klass_info (acfg, MONO_TOKEN_TYPE_DEF | (i + 1));
 
-       sprintf (symbol, "class_info_offsets");
-       emit_section_change (acfg, RODATA_SECT, 1);
-       emit_alignment (acfg, 8);
-       emit_label (acfg, symbol);
-
-       acfg->stats.offsets_size += emit_offset_table (acfg, acfg->image->tables [MONO_TABLE_TYPEDEF].rows, 10, offsets);
+       acfg->stats.offsets_size += emit_offset_table (acfg, "class_info_offsets", acfg->image->tables [MONO_TABLE_TYPEDEF].rows, 10, offsets);
        g_free (offsets);
 }
 
@@ -8092,11 +8263,12 @@ typedef struct ClassNameTableEntry {
 static void
 emit_class_name_table (MonoAotCompile *acfg)
 {
-       int i, table_size;
+       int i, table_size, buf_size;
        guint32 token, hash;
        MonoClass *klass;
        GPtrArray *table;
        char *full_name;
+       guint8 *buf, *p;
        char symbol [256];
        ClassNameTableEntry *entry, *new_entry;
 
@@ -8138,48 +8310,61 @@ emit_class_name_table (MonoAotCompile *acfg)
        }
 
        /* Emit the table */
-       sprintf (symbol, "class_name_table");
-       emit_section_change (acfg, RODATA_SECT, 0);
-       emit_alignment (acfg, 8);
-       emit_label (acfg, symbol);
+       buf_size = table->len * 4 + 4;
+       p = buf = g_malloc0 (buf_size);
 
        /* FIXME: Optimize memory usage */
        g_assert (table_size < 65000);
-       emit_int16 (acfg, table_size);
+       encode_int16 (table_size, p, &p);
        g_assert (table->len < 65000);
        for (i = 0; i < table->len; ++i) {
                ClassNameTableEntry *entry = g_ptr_array_index (table, i);
 
                if (entry == NULL) {
-                       emit_int16 (acfg, 0);
-                       emit_int16 (acfg, 0);
+                       encode_int16 (0, p, &p);
+                       encode_int16 (0, p, &p);
                } else {
-                       emit_int16 (acfg, mono_metadata_token_index (entry->token));
+                       encode_int16 (mono_metadata_token_index (entry->token), p, &p);
                        if (entry->next)
-                               emit_int16 (acfg, entry->next->index);
+                               encode_int16 (entry->next->index, p, &p);
                        else
-                               emit_int16 (acfg, 0);
+                               encode_int16 (0, p, &p);
                }
        }
+       g_assert (p - buf <= buf_size);
+
+       if (acfg->llvm) {
+               mono_llvm_emit_aot_data ("class_name_table", buf, p - buf);
+       } else {
+               sprintf (symbol, "class_name_table");
+               emit_section_change (acfg, RODATA_SECT, 0);
+               emit_alignment (acfg, 8);
+               emit_label (acfg, symbol);
+               emit_bytes (acfg, buf, p - buf);
+       }
 }
 
 static void
 emit_image_table (MonoAotCompile *acfg)
 {
-       int i;
+       int i, buf_size;
        char symbol [256];
+       guint8 *buf, *p;
 
        /*
         * The image table is small but referenced in a lot of places.
         * So we emit it at once, and reference its elements by an index.
         */
+       buf_size = acfg->image_table->len * 28 + 4;
+       for (i = 0; i < acfg->image_table->len; i++) {
+               MonoImage *image = (MonoImage*)g_ptr_array_index (acfg->image_table, i);
+               MonoAssemblyName *aname = &image->assembly->aname;
 
-       sprintf (symbol, "image_table");
-       emit_section_change (acfg, RODATA_SECT, 1);
-       emit_alignment (acfg, 8);
-       emit_label (acfg, symbol);
+               buf_size += strlen (image->assembly_name) + strlen (image->guid) + (aname->culture ? strlen (aname->culture) : 1) + strlen ((char*)aname->public_key_token) + 4;
+       }
 
-       emit_int32 (acfg, acfg->image_table->len);
+       buf = p = g_malloc0 (buf_size);
+       encode_int (acfg->image_table->len, p, &p);
        for (i = 0; i < acfg->image_table->len; i++) {
                MonoImage *image = (MonoImage*)g_ptr_array_index (acfg->image_table, i);
                MonoAssemblyName *aname = &image->assembly->aname;
@@ -8187,24 +8372,38 @@ emit_image_table (MonoAotCompile *acfg)
                /* FIXME: Support multi-module assemblies */
                g_assert (image->assembly->image == image);
 
-               emit_string (acfg, image->assembly_name);
-               emit_string (acfg, image->guid);
-               emit_string (acfg, aname->culture ? aname->culture : "");
-               emit_string (acfg, (const char*)aname->public_key_token);
+               encode_string (image->assembly_name, p, &p);
+               encode_string (image->guid, p, &p);
+               encode_string (aname->culture ? aname->culture : "", p, &p);
+               encode_string ((const char*)aname->public_key_token, p, &p);
+
+               while (GPOINTER_TO_UINT (p) % 8 != 0)
+                       p ++;
+
+               encode_int (aname->flags, p, &p);
+               encode_int (aname->major, p, &p);
+               encode_int (aname->minor, p, &p);
+               encode_int (aname->build, p, &p);
+               encode_int (aname->revision, p, &p);
+       }
+       g_assert (p - buf <= buf_size);
 
+       if (acfg->llvm) {
+               mono_llvm_emit_aot_data ("image_table", buf, p - buf);
+       } else {
+               sprintf (symbol, "image_table");
+               emit_section_change (acfg, RODATA_SECT, 1);
                emit_alignment (acfg, 8);
-               emit_int32 (acfg, aname->flags);
-               emit_int32 (acfg, aname->major);
-               emit_int32 (acfg, aname->minor);
-               emit_int32 (acfg, aname->build);
-               emit_int32 (acfg, aname->revision);
+               emit_label (acfg, symbol);
+               emit_bytes (acfg, buf, p - buf);
        }
+
+       g_free (buf);
 }
 
 static void
 emit_got_info (MonoAotCompile *acfg, gboolean llvm)
 {
-       char symbol [256];
        int i, first_plt_got_patch = 0, buf_size;
        guint8 *p, *buf;
        guint32 *got_info_offsets;
@@ -8265,16 +8464,9 @@ emit_got_info (MonoAotCompile *acfg, gboolean llvm)
        }
 
        /* Emit got_info_offsets table */
-       if (llvm)
-               sprintf (symbol, "llvm_got_info_offsets");
-       else
-               sprintf (symbol, "got_info_offsets");
-       emit_section_change (acfg, RODATA_SECT, 1);
-       emit_alignment (acfg, 8);
-       emit_label (acfg, symbol);
 
        /* No need to emit offsets for the got plt entries, the plt embeds them directly */
-       acfg->stats.offsets_size += emit_offset_table (acfg, llvm ? acfg->llvm_got_offset : first_plt_got_patch, 10, (gint32*)got_info_offsets);
+       acfg->stats.offsets_size += emit_offset_table (acfg, llvm ? "llvm_got_info_offsets" : "got_info_offsets", llvm ? acfg->llvm_got_offset : first_plt_got_patch, 10, (gint32*)got_info_offsets);
 }
 
 static void
@@ -8284,12 +8476,24 @@ emit_got (MonoAotCompile *acfg)
 
        /* Don't make GOT global so accesses to it don't need relocations */
        sprintf (symbol, "%s", acfg->got_symbol);
+
+#ifdef TARGET_MACH
+       emit_unset_mode (acfg);
+       fprintf (acfg->fp, ".section __DATA, __bss\n");
+       emit_alignment (acfg, 8);
+       if (acfg->llvm)
+               emit_info_symbol (acfg, "jit_got");
+       fprintf (acfg->fp, ".lcomm %s, %d\n", acfg->got_symbol, (int)(acfg->got_offset * sizeof (gpointer)));
+#else
        emit_section_change (acfg, ".bss", 0);
        emit_alignment (acfg, 8);
        emit_local_symbol (acfg, symbol, "got_end", FALSE);
        emit_label (acfg, symbol);
+       if (acfg->llvm)
+               emit_info_symbol (acfg, "jit_got");
        if (acfg->got_offset > 0)
                emit_zero_bytes (acfg, (int)(acfg->got_offset * sizeof (gpointer)));
+#endif
 
        sprintf (symbol, "got_end");
        emit_label (acfg, symbol);
@@ -8389,7 +8593,7 @@ emit_globals (MonoAotCompile *acfg)
        emit_section_change (acfg, ".data", 0);
        /* This is not a global, since it is accessed by the init function */
        emit_alignment (acfg, 8);
-       emit_label (acfg, symbol);
+       emit_info_symbol (acfg, symbol);
 
        sprintf (symbol, "%sglobals_hash", acfg->temp_prefix);
        emit_pointer (acfg, symbol);
@@ -8439,37 +8643,113 @@ emit_mem_end (MonoAotCompile *acfg)
        emit_label (acfg, symbol);
 }
 
-/*
- * Emit a structure containing all the information not stored elsewhere.
- */
 static void
-emit_file_info (MonoAotCompile *acfg)
+init_aot_file_info (MonoAotCompile *acfg, MonoAotFileInfo *info, int gc_name_offset)
 {
-       char symbol [256];
        int i;
-       int gc_name_offset;
-       const char *gc_name;
-       char *build_info;
 
-       emit_string_symbol (acfg, "assembly_guid" , acfg->image->guid);
+       info->version = MONO_AOT_FILE_VERSION;
+       info->plt_got_offset_base = acfg->plt_got_offset_base;
+       info->got_size = acfg->got_offset * sizeof (gpointer);
+       info->plt_size = acfg->plt_offset;
+       info->nmethods = acfg->nmethods;
+       info->flags = acfg->flags;
+       info->opts = acfg->opts;
+       info->simd_opts = acfg->simd_opts;
+       info->gc_name_index = gc_name_offset;
+       for (i = 0; i < MONO_AOT_TRAMP_NUM; ++i)
+               info->num_trampolines [i] = acfg->num_trampolines [i];
+       for (i = 0; i < MONO_AOT_TRAMP_NUM; ++i)
+               info->trampoline_got_offset_base [i] = acfg->trampoline_got_offset_base [i];
+       for (i = 0; i < MONO_AOT_TRAMP_NUM; ++i)
+               info->trampoline_size [i] = acfg->trampoline_size [i];
+       info->num_rgctx_fetch_trampolines = acfg->aot_opts.nrgctx_fetch_trampolines;
 
-       if (acfg->aot_opts.bind_to_runtime_version) {
-               build_info = mono_get_runtime_build_info ();
-               emit_string_symbol (acfg, "runtime_version", build_info);
-               g_free (build_info);
-       } else {
-               emit_string_symbol (acfg, "runtime_version", "");
+#if defined (TARGET_ARM) && defined (TARGET_MACH)
+       {
+               MonoType t;
+               int align = 0;
+
+               memset (&t, 0, sizeof (MonoType));
+               t.type = MONO_TYPE_R8;
+               mono_type_size (&t, &align);
+               info->double_align = align;
+
+               memset (&t, 0, sizeof (MonoType));
+               t.type = MONO_TYPE_I8;
+               mono_type_size (&t, &align);
+               info->long_align = align;
        }
+#else
+       info->double_align = MONO_ABI_ALIGNOF (double);
+       info->long_align = MONO_ABI_ALIGNOF (gint64);
+#endif
+       info->generic_tramp_num = MONO_TRAMPOLINE_NUM;
+       info->tramp_page_size = acfg->tramp_page_size;
+       for (i = 0; i < MONO_AOT_TRAMP_NUM; ++i)
+               info->tramp_page_code_offsets [i] = acfg->tramp_page_code_offsets [i];
+}
 
-       /* Emit a string holding the assembly name */
-       emit_string_symbol (acfg, "assembly_name", acfg->image->assembly->aname.name);
+static void
+emit_aot_file_info (MonoAotCompile *acfg, MonoAotFileInfo *info)
+{
+       char symbol [256];
+       int i, sindex;
+       const char **symbols;
 
-       /*
-        * The managed allocators are GC specific, so can't use an AOT image created by one GC
-        * in another.
-        */
-       gc_name = mono_gc_get_gc_name ();
-       gc_name_offset = add_to_blob (acfg, (guint8*)gc_name, strlen (gc_name) + 1);
+       symbols = g_new0 (const char *, MONO_AOT_FILE_INFO_NUM_SYMBOLS);
+       sindex = 0;
+       symbols [sindex ++] = acfg->got_symbol;
+       if (acfg->llvm) {
+               symbols [sindex ++] = g_strdup_printf ("%s%s", acfg->user_symbol_prefix, acfg->llvm_got_symbol);
+               symbols [sindex ++] = acfg->llvm_eh_frame_symbol;
+       } else {
+               symbols [sindex ++] = NULL;
+               symbols [sindex ++] = NULL;
+       }
+       symbols [sindex ++] = "jit_code_start";
+       symbols [sindex ++] = "jit_code_end";
+       symbols [sindex ++] = "method_addresses";
+       symbols [sindex ++] = "blob";
+       symbols [sindex ++] = "class_name_table";
+       symbols [sindex ++] = "class_info_offsets";
+       symbols [sindex ++] = "method_info_offsets";
+       symbols [sindex ++] = "ex_info_offsets";
+       symbols [sindex ++] = "extra_method_info_offsets";
+       symbols [sindex ++] = "extra_method_table";
+       symbols [sindex ++] = "got_info_offsets";
+       if (acfg->llvm)
+               symbols [sindex ++] = "llvm_got_info_offsets";
+       else
+               symbols [sindex ++] = NULL;
+       symbols [sindex ++] = "mem_end";
+       symbols [sindex ++] = "image_table";
+       symbols [sindex ++] = "assembly_guid";
+       symbols [sindex ++] = "runtime_version";
+       if (acfg->num_trampoline_got_entries) {
+               symbols [sindex ++] = "specific_trampolines";
+               symbols [sindex ++] = "static_rgctx_trampolines";
+               symbols [sindex ++] = "imt_thunks";
+               symbols [sindex ++] = "gsharedvt_arg_trampolines";
+       } else {
+               symbols [sindex ++] = NULL;
+               symbols [sindex ++] = NULL;
+               symbols [sindex ++] = NULL;
+               symbols [sindex ++] = NULL;
+       }
+       if (acfg->aot_opts.static_link) {
+               symbols [sindex ++] = "globals";
+       } else {
+               symbols [sindex ++] = NULL;
+       }
+       symbols [sindex ++] = "assembly_name";
+       symbols [sindex ++] = "plt";
+       symbols [sindex ++] = "plt_end";
+       symbols [sindex ++] = "unwind_info";
+       symbols [sindex ++] = "unbox_trampolines";
+       symbols [sindex ++] = "unbox_trampolines_end";
+       symbols [sindex ++] = "unbox_trampoline_addresses";
+       g_assert (sindex == MONO_AOT_FILE_INFO_NUM_SYMBOLS);
 
        sprintf (symbol, "%smono_aot_file_info", acfg->user_symbol_prefix);
        emit_section_change (acfg, ".data", 0);
@@ -8480,112 +8760,39 @@ emit_file_info (MonoAotCompile *acfg)
 
        /* The data emitted here must match MonoAotFileInfo. */
 
-       emit_int32 (acfg, MONO_AOT_FILE_VERSION);
-       emit_int32 (acfg, 0);
+       emit_int32 (acfg, info->version);
+       emit_int32 (acfg, info->dummy);
 
        /* 
         * We emit pointers to our data structures instead of emitting global symbols which
         * point to them, to reduce the number of globals, and because using globals leads to
         * various problems (i.e. arm/thumb).
         */
-       emit_pointer (acfg, acfg->got_symbol);
-       if (acfg->llvm)
-               emit_pointer (acfg, acfg->llvm_got_symbol);
-       else
-               emit_pointer (acfg, NULL);
-       emit_pointer (acfg, acfg->methods_symbol);
-       emit_pointer (acfg, "jit_code_start");
-       emit_pointer (acfg, "jit_code_end");
-       if (acfg->llvm) {
-               /*
-                * Emit a reference to the mono_eh_frame table created by our modified LLVM compiler.
-                */
-               emit_pointer (acfg, acfg->llvm_eh_frame_symbol);
-       } else {
-               emit_pointer (acfg, NULL);
-       }
-       emit_pointer (acfg, "blob");
-       emit_pointer (acfg, "class_name_table");
-       emit_pointer (acfg, "class_info_offsets");
-       emit_pointer (acfg, "method_info_offsets");
-       emit_pointer (acfg, "ex_info_offsets");
-       emit_pointer (acfg, "method_addresses");
-       emit_pointer (acfg, "extra_method_info_offsets");
-       emit_pointer (acfg, "extra_method_table");
-       emit_pointer (acfg, "got_info_offsets");
-       if (acfg->llvm)
-               emit_pointer (acfg, "llvm_got_info_offsets");
-       else
-               emit_pointer (acfg, NULL);
-       emit_pointer (acfg, "unwind_info");
-       emit_pointer (acfg, "mem_end");
-       emit_pointer (acfg, "image_table");
-       emit_pointer (acfg, "plt");
-       emit_pointer (acfg, "plt_end");
-       emit_pointer (acfg, "assembly_guid");
-       emit_pointer (acfg, "runtime_version");
-       if (acfg->num_trampoline_got_entries) {
-               emit_pointer (acfg, "specific_trampolines");
-               emit_pointer (acfg, "static_rgctx_trampolines");
-               emit_pointer (acfg, "imt_thunks");
-               emit_pointer (acfg, "gsharedvt_arg_trampolines");
-       } else {
-               emit_pointer (acfg, NULL);
-               emit_pointer (acfg, NULL);
-               emit_pointer (acfg, NULL);
-               emit_pointer (acfg, NULL);
-       }
-       if (acfg->aot_opts.static_link) {
-               emit_pointer (acfg, "globals");
-       } else {
-               emit_pointer (acfg, NULL);
-       }
-       emit_pointer (acfg, "assembly_name");
-       emit_pointer (acfg, "unbox_trampolines");
-       emit_pointer (acfg, "unbox_trampolines_end");
-       emit_pointer (acfg, "unbox_trampoline_addresses");
-
-       emit_int32 (acfg, acfg->plt_got_offset_base);
-       emit_int32 (acfg, (int)(acfg->got_offset * sizeof (gpointer)));
-       emit_int32 (acfg, acfg->plt_offset);
-       emit_int32 (acfg, acfg->nmethods);
-       emit_int32 (acfg, acfg->flags);
-       emit_int32 (acfg, acfg->opts);
-       emit_int32 (acfg, acfg->simd_opts);
-       emit_int32 (acfg, gc_name_offset);
+       for (i = 0; i < MONO_AOT_FILE_INFO_NUM_SYMBOLS; ++i)
+               emit_pointer (acfg, symbols [i]);
+
+       emit_int32 (acfg, info->plt_got_offset_base);
+       emit_int32 (acfg, info->got_size);
+       emit_int32 (acfg, info->plt_size);
+       emit_int32 (acfg, info->nmethods);
+       emit_int32 (acfg, info->flags);
+       emit_int32 (acfg, info->opts);
+       emit_int32 (acfg, info->simd_opts);
+       emit_int32 (acfg, info->gc_name_index);
+       emit_int32 (acfg, info->num_rgctx_fetch_trampolines);
+       emit_int32 (acfg, info->double_align);
+       emit_int32 (acfg, info->long_align);
+       emit_int32 (acfg, info->generic_tramp_num);
+       emit_int32 (acfg, info->tramp_page_size);
 
        for (i = 0; i < MONO_AOT_TRAMP_NUM; ++i)
-               emit_int32 (acfg, acfg->num_trampolines [i]);
+               emit_int32 (acfg, info->num_trampolines [i]);
        for (i = 0; i < MONO_AOT_TRAMP_NUM; ++i)
-               emit_int32 (acfg, acfg->trampoline_got_offset_base [i]);
+               emit_int32 (acfg, info->trampoline_got_offset_base [i]);
        for (i = 0; i < MONO_AOT_TRAMP_NUM; ++i)
-               emit_int32 (acfg, acfg->trampoline_size [i]);
-       emit_int32 (acfg, acfg->aot_opts.nrgctx_fetch_trampolines);
-
-#if defined (TARGET_ARM) && defined (TARGET_MACH)
-       {
-               MonoType t;
-               int align = 0;
-
-               memset (&t, 0, sizeof (MonoType));
-               t.type = MONO_TYPE_R8;
-               mono_type_size (&t, &align);
-               emit_int32 (acfg, align);
-
-               memset (&t, 0, sizeof (MonoType));
-               t.type = MONO_TYPE_I8;
-               mono_type_size (&t, &align);
-
-               emit_int32 (acfg, align);
-       }
-#else
-       emit_int32 (acfg, MONO_ABI_ALIGNOF (double));
-       emit_int32 (acfg, MONO_ABI_ALIGNOF (gint64));
-#endif
-       emit_int32 (acfg, MONO_TRAMPOLINE_NUM);
-       emit_int32 (acfg, acfg->tramp_page_size);
+               emit_int32 (acfg, info->trampoline_size [i]);
        for (i = 0; i < MONO_AOT_TRAMP_NUM; ++i)
-               emit_int32 (acfg, acfg->tramp_page_code_offsets [i]);
+               emit_int32 (acfg, info->tramp_page_code_offsets [i]);
 
        if (acfg->aot_opts.static_link) {
                char *p;
@@ -8611,11 +8818,56 @@ emit_file_info (MonoAotCompile *acfg)
        }
 }
 
+/*
+ * Emit a structure containing all the information not stored elsewhere.
+ */
+static void
+emit_file_info (MonoAotCompile *acfg)
+{
+       int gc_name_offset;
+       const char *gc_name;
+       char *build_info;
+       MonoAotFileInfo *info;
+
+       if (acfg->aot_opts.bind_to_runtime_version) {
+               build_info = mono_get_runtime_build_info ();
+               emit_string_symbol (acfg, "runtime_version", build_info);
+               g_free (build_info);
+       } else {
+               emit_string_symbol (acfg, "runtime_version", "");
+       }
+
+       emit_string_symbol (acfg, "assembly_guid" , acfg->image->guid);
+
+       /* Emit a string holding the assembly name */
+       emit_string_symbol (acfg, "assembly_name", acfg->image->assembly->aname.name);
+
+       /*
+        * The managed allocators are GC specific, so can't use an AOT image created by one GC
+        * in another.
+        */
+       gc_name = mono_gc_get_gc_name ();
+       gc_name_offset = add_to_blob (acfg, (guint8*)gc_name, strlen (gc_name) + 1);
+
+       info = g_new0 (MonoAotFileInfo, 1);
+       init_aot_file_info (acfg, info, gc_name_offset);
+
+       if (acfg->llvm)
+               mono_llvm_emit_aot_file_info (info, acfg->has_jitted_code);
+       else
+               emit_aot_file_info (acfg, info);
+}
+
 static void
 emit_blob (MonoAotCompile *acfg)
 {
        char symbol [128];
 
+       if (acfg->llvm) {
+               mono_llvm_emit_aot_data ("blob", (guint8*)acfg->blob.data, acfg->blob.index);
+               return;
+       }
+
        sprintf (symbol, "blob");
        emit_section_change (acfg, RODATA_SECT, 1);
        emit_alignment (acfg, 8);
@@ -8719,7 +8971,7 @@ collect_methods (MonoAotCompile *acfg)
                if (mono_aot_mode_is_full (&acfg->aot_opts) && method->iflags & METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL) {
                        /* Compile the wrapper instead */
                        /* We do this here instead of add_wrappers () because it is easy to do it here */
-                       MonoMethod *wrapper = mono_marshal_get_native_wrapper (method, check_for_pending_exc, TRUE);
+                       MonoMethod *wrapper = mono_marshal_get_native_wrapper (method, TRUE, TRUE);
                        method = wrapper;
                }
 
@@ -8943,7 +9195,7 @@ compile_asm (MonoAotCompile *acfg)
        tmp_outfile_name = g_strdup_printf ("%s.tmp", outfile_name);
 
        if (acfg->llvm) {
-               llvm_ofile = g_strdup (acfg->llvm_ofile);
+               llvm_ofile = g_strdup_printf ("\"%s\"", acfg->llvm_ofile);
        } else {
                llvm_ofile = g_strdup ("");
        }
@@ -8952,7 +9204,7 @@ compile_asm (MonoAotCompile *acfg)
        g_strdelimit (ld_flags, ";", ' ');
 
 #ifdef LD_NAME
-       command = g_strdup_printf ("%s -o %s %s %s.o %s", LD_NAME, tmp_outfile_name, llvm_ofile, acfg->tmpfname, ld_flags);
+       command = g_strdup_printf ("%s -o \"%s\" %s \"%s.o\" %s", LD_NAME, tmp_outfile_name, llvm_ofile, acfg->tmpfname, ld_flags);
 #else
        command = g_strdup_printf ("\"%sld\" %s -shared -o %s %s %s.o %s", tool_prefix, LD_OPTIONS, tmp_outfile_name, llvm_ofile,
                acfg->tmpfname, ld_flags);
@@ -8993,7 +9245,7 @@ compile_asm (MonoAotCompile *acfg)
        rename (tmp_outfile_name, outfile_name);
 
 #if defined(TARGET_MACH)
-       command = g_strdup_printf ("dsymutil %s", outfile_name);
+       command = g_strdup_printf ("dsymutil \"%s\"", outfile_name);
        aot_printf (acfg, "Executing dsymutil: %s\n", command);
        if (execute_system (command) != 0) {
                return 1;
@@ -9294,6 +9546,7 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
        acfg->aot_opts.nrgctx_fetch_trampolines = 128;
        acfg->aot_opts.ngsharedvt_arg_trampolines = 128;
        acfg->aot_opts.llvm_path = g_strdup ("");
+       acfg->aot_opts.temp_path = g_strdup ("");
 #ifdef MONOTOUCH
        acfg->aot_opts.use_trampolines_page = TRUE;
 #endif
@@ -9414,14 +9667,12 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
                        *p = '_';
        }
 
-       acfg->got_symbol_base = g_strdup_printf ("mono_aot_%s_got", acfg->assembly_name_sym);
-       acfg->llvm_got_symbol_base = g_strdup_printf ("mono_aot_%s_llvm_got", acfg->assembly_name_sym);
-       acfg->plt_symbol = g_strdup_printf ("%smono_aot_%s_plt", acfg->llvm_label_prefix, acfg->assembly_name_sym);
-
-       acfg->got_symbol = g_strdup_printf ("%s%s", acfg->llvm_label_prefix, acfg->got_symbol_base);
-       if (acfg->llvm) {
-               acfg->llvm_got_symbol = g_strdup_printf ("%s%s", acfg->llvm_label_prefix, acfg->llvm_got_symbol_base);
-               acfg->llvm_eh_frame_symbol = g_strdup_printf ("mono_aot_%s_eh_frame", acfg->assembly_name_sym);
+       acfg->global_prefix = g_strdup_printf ("mono_aot_%s", acfg->assembly_name_sym);
+       acfg->plt_symbol = g_strdup_printf ("%s_plt", acfg->global_prefix);
+       acfg->got_symbol = g_strdup_printf ("%s_got", acfg->global_prefix);
+       if (acfg->llvm) {
+               acfg->llvm_got_symbol = g_strdup_printf ("%s_llvm_got", acfg->global_prefix);
+               acfg->llvm_eh_frame_symbol = g_strdup_printf ("%s_eh_frame", acfg->global_prefix);
        }
 
        acfg->method_index = 1;
@@ -9442,7 +9693,7 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
 #ifdef ENABLE_LLVM
        if (acfg->llvm) {
                llvm_acfg = acfg;
-               mono_llvm_create_aot_module (acfg->llvm_got_symbol_base, TRUE, TRUE);
+               mono_llvm_create_aot_module (acfg->image->assembly, acfg->global_prefix, TRUE, acfg->aot_opts.static_link);
        }
 #endif
 
@@ -9492,8 +9743,6 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
 
 #ifdef ENABLE_LLVM
        if (acfg->llvm) {
-               gboolean res;
-
                if (acfg->aot_opts.asm_only) {
                        if (acfg->aot_opts.outfile) {
                                acfg->tmpfname = g_strdup_printf ("%s", acfg->aot_opts.outfile);
@@ -9509,15 +9758,14 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
                        else
                                acfg->llvm_sfile = g_strdup (acfg->aot_opts.llvm_outfile);
                } else {
-                       acfg->tmpbasename = g_strdup_printf ("%s", "temp");
+                       acfg->tmpbasename = (strcmp (acfg->aot_opts.temp_path, "") == 0) ?
+                               g_strdup_printf ("%s", "temp") :
+                               g_build_filename (acfg->aot_opts.temp_path, "temp", NULL);
+                               
                        acfg->tmpfname = g_strdup_printf ("%s.s", acfg->tmpbasename);
-                       acfg->llvm_sfile = g_strdup ("temp-llvm.s");
-                       acfg->llvm_ofile = g_strdup ("temp-llvm.o");
+                       acfg->llvm_sfile = g_strdup_printf ("%s-llvm.s", acfg->tmpbasename);
+                       acfg->llvm_ofile = g_strdup_printf ("%s-llvm.o", acfg->tmpbasename);
                }
-
-               res = emit_llvm_file (acfg);
-               if (!res)
-                       return 1;
        }
 #endif
 
@@ -9587,7 +9835,7 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
                //acfg->gas_line_numbers = TRUE;
        }
 
-       if (!acfg->aot_opts.nodebug || acfg->aot_opts.dwarf_debug) {
+       if ((!acfg->aot_opts.nodebug || acfg->aot_opts.dwarf_debug) && acfg->has_jitted_code) {
                if (acfg->aot_opts.dwarf_debug && !mono_debug_enabled ()) {
                        aot_printerrf (acfg, "The dwarf AOT option requires the --debug option.\n");
                        return 1;
@@ -9650,6 +9898,16 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
                        fprintf (acfg->fp, "\n.section  .note.GNU-stack,\"\",@progbits\n");
        }
 
+#ifdef ENABLE_LLVM
+       if (acfg->llvm) {
+               gboolean res;
+
+               res = emit_llvm_file (acfg);
+               if (!res)
+                       return 1;
+       }
+#endif
+
        TV_GETTIME (btv);
 
        acfg->stats.gen_time = TV_ELAPSED (atv, btv);
index 63e184e5945671ced4eee67bc21c1e9b5ca27abb..ca4f58e074d9eb209c10737ac7a9c815248b7005 100644 (file)
@@ -48,7 +48,6 @@
 #include <mono/metadata/metadata-internals.h>
 #include <mono/metadata/marshal.h>
 #include <mono/metadata/gc-internal.h>
-#include <mono/metadata/monitor.h>
 #include <mono/metadata/threads-types.h>
 #include <mono/metadata/mono-endian.h>
 #include <mono/utils/mono-logger-internal.h>
@@ -68,6 +67,9 @@
 #define ENABLE_AOT_CACHE
 #endif
 
+/* Number of got entries shared between the JIT and LLVM GOT */
+#define N_COMMON_GOT_ENTRIES 4
+
 #define ALIGN_TO(val,align) ((((guint64)val) + ((align) - 1)) & ~((align) - 1))
 #define ALIGN_PTR_TO(ptr,align) (gpointer)((((gssize)(ptr)) + (align - 1)) & (~(align - 1)))
 #define ROUND_DOWN(VALUE,SIZE) ((VALUE) & ~((SIZE) - 1))
@@ -82,6 +84,7 @@ typedef struct MonoAotModule {
        /* Pointer to the Global Offset Table */
        gpointer *got;
        gpointer *llvm_got;
+       gpointer shared_got [N_COMMON_GOT_ENTRIES];
        GHashTable *name_cache;
        GHashTable *extra_methods;
        /* Maps methods to their code */
@@ -97,8 +100,6 @@ typedef struct MonoAotModule {
        gboolean plt_inited;
        guint8 *mem_begin;
        guint8 *mem_end;
-       /* Points to either the start of JIT compiler or LLVM compiled code */
-       guint8 *code;
        guint8 *jit_code_start;
        guint8 *jit_code_end;
        guint8 *llvm_code_start;
@@ -106,12 +107,14 @@ typedef struct MonoAotModule {
        guint8 *plt;
        guint8 *plt_end;
        guint8 *blob;
-       gint32 *code_offsets;
-       gpointer *method_addresses;
-       /* This contains <offset, index> pairs sorted by offset */
-       /* This is needed because LLVM emitted methods can be in any order */
-       gint32 *sorted_code_offsets;
-       gint32 sorted_code_offsets_len;
+       /* Maps method indexes to their code */
+       gpointer *methods;
+       /* Sorted array of method addresses */
+       gpointer *sorted_methods;
+       /* Method indexes for each method in sorted_methods */
+       int *sorted_method_indexes;
+       /* The length of the two tables above */
+       int sorted_methods_len;
        guint32 *method_info_offsets;
        guint32 *ex_info_offsets;
        guint32 *class_info_offsets;
@@ -200,6 +203,8 @@ static GHashTable *aot_jit_icall_hash;
 #define mono_aot_page_unlock() mono_mutex_unlock (&aot_page_mutex)
 static mono_mutex_t aot_page_mutex;
 
+static MonoAotModule *mscorlib_aot_module;
+
 static void
 init_plt (MonoAotModule *info);
 
@@ -207,7 +212,7 @@ static void
 compute_llvm_code_range (MonoAotModule *amodule, guint8 **code_start, guint8 **code_end);
 
 static gboolean
-mono_aot_init_method (MonoAotModule *amodule, guint32 method_index, MonoMethod *method, MonoClass **klass);
+init_method (MonoAotModule *amodule, guint32 method_index, MonoMethod *method, MonoClass **klass);
 
 /*****************************************************/
 /*                 AOT RUNTIME                       */
@@ -883,10 +888,8 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                        int atype = decode_value (p, &p);
 
                        ref->method = mono_gc_get_managed_allocator_by_type (atype, !!(mono_profiler_get_events () & MONO_PROFILE_ALLOCATIONS));
-                       if (!ref->method) {
-                               fprintf (stderr, "Error: No managed allocator, but we need one for AOT.\nAre you using non-standard GC options?\n");
-                               exit (1);
-                       }
+                       if (!ref->method)
+                               g_error ("Error: No managed allocator, but we need one for AOT.\nAre you using non-standard GC options?\n");
                        break;
                }
                case MONO_WRAPPER_WRITE_BARRIER:
@@ -1745,6 +1748,21 @@ get_call_table_entry (void *table, int index)
 #endif
 }
 
+static void
+init_gots (MonoAotModule *amodule)
+{
+       int i;
+
+       if (amodule->got) {
+               for (i = 0; i < N_COMMON_GOT_ENTRIES; ++i)
+                       amodule->got [i] = amodule->shared_got [i];
+       }
+       if (amodule->llvm_got) {
+               for (i = 0; i < N_COMMON_GOT_ENTRIES; ++i)
+                       amodule->llvm_got [i] = amodule->shared_got [i];
+       }
+}
+
 static void
 load_aot_module (MonoAssembly *assembly, gpointer user_data)
 {
@@ -1813,10 +1831,8 @@ load_aot_module (MonoAssembly *assembly, gpointer user_data)
        }
 
        if (!sofile && !globals) {
-               if (mono_aot_only && assembly->image->tables [MONO_TABLE_METHOD].rows) {
-                       fprintf (stderr, "Failed to load AOT module '%s' in aot-only mode.\n", aot_name);
-                       exit (1);
-               }
+               if (mono_aot_only && assembly->image->tables [MONO_TABLE_METHOD].rows)
+                       g_error ("Failed to load AOT module '%s' in aot-only mode.\n", aot_name);
                g_free (aot_name);
                return;
        }
@@ -1843,8 +1859,7 @@ load_aot_module (MonoAssembly *assembly, gpointer user_data)
 
        if (!usable) {
                if (mono_aot_only) {
-                       fprintf (stderr, "Failed to load AOT module '%s' while running in aot-only mode: %s.\n", aot_name, msg);
-                       exit (1);
+                       g_error ("Failed to load AOT module '%s' while running in aot-only mode: %s.\n", aot_name, msg);
                } else {
                        mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_AOT, "AOT: module %s is unusable: %s.\n", aot_name, msg);
                }
@@ -1888,7 +1903,7 @@ load_aot_module (MonoAssembly *assembly, gpointer user_data)
 
        memcpy (&amodule->info, info, sizeof (*info));
 
-       amodule->got = amodule->info.got;
+       amodule->got = amodule->info.jit_got;
        amodule->llvm_got = amodule->info.llvm_got;
        amodule->globals = globals;
        amodule->sofile = sofile;
@@ -1938,12 +1953,6 @@ load_aot_module (MonoAssembly *assembly, gpointer user_data)
                }
        }
 
-       amodule->method_addresses = info->method_addresses;
-       amodule->code = info->methods;
-#ifdef TARGET_ARM
-       /* Mask out thumb interop bit */
-       amodule->code = (void*)((mgreg_t)amodule->code & ~1);
-#endif
        amodule->jit_code_start = info->jit_code_start;
        amodule->jit_code_end = info->jit_code_end;
        amodule->method_info_offsets = info->method_info_offsets;
@@ -1956,8 +1965,8 @@ load_aot_module (MonoAssembly *assembly, gpointer user_data)
        amodule->unbox_trampolines_end = info->unbox_trampolines_end;
        amodule->unbox_trampoline_addresses = info->unbox_trampoline_addresses;
        amodule->unwind_info = info->unwind_info;
+       amodule->mem_begin = amodule->jit_code_start;
        amodule->mem_end = info->mem_end;
-       amodule->mem_begin = amodule->code;
        amodule->plt = info->plt;
        amodule->plt_end = info->plt_end;
        amodule->mono_eh_frame = info->mono_eh_frame;
@@ -1966,18 +1975,25 @@ load_aot_module (MonoAssembly *assembly, gpointer user_data)
        amodule->trampolines [MONO_AOT_TRAMP_IMT_THUNK] = info->imt_thunks;
        amodule->trampolines [MONO_AOT_TRAMP_GSHAREDVT_ARG] = info->gsharedvt_arg_trampolines;
 
-       /* Compute code_offsets from the method addresses */
-       amodule->code_offsets = g_malloc0 (amodule->info.nmethods * sizeof (gint32));
+       if (!strcmp (assembly->aname.name, "mscorlib"))
+               mscorlib_aot_module = amodule;
+
+       /* Compute method addresses */
+       amodule->methods = g_malloc0 (amodule->info.nmethods * sizeof (gpointer));
        for (i = 0; i < amodule->info.nmethods; ++i) {
-               /* method_addresses () contains a table of branches, since the ios linker can update those correctly */
-               void *addr;
+               void *addr = NULL;
 
-               addr = get_call_table_entry (amodule->method_addresses, i);
-               g_assert (addr);
-               if (addr == amodule->method_addresses)
-                       amodule->code_offsets [i] = 0xffffffff;
+               /* method_addresses () contains a table of branches, since the ios linker can update those correctly */
+               if (!addr && amodule->info.method_addresses) {
+                       addr = get_call_table_entry (amodule->info.method_addresses, i);
+                       g_assert (addr);
+                       if (addr == amodule->info.method_addresses)
+                               addr = NULL;
+               }
+               if (addr == NULL)
+                       amodule->methods [i] = GINT_TO_POINTER (-1);
                else
-                       amodule->code_offsets [i] = (char*)addr - (char*)amodule->code;
+                       amodule->methods [i] = addr;
        }
 
        if (make_unreadable) {
@@ -1987,6 +2003,7 @@ load_aot_module (MonoAssembly *assembly, gpointer user_data)
                int err, len;
 
                addr = amodule->mem_begin;
+               g_assert (addr);
                len = amodule->mem_end - amodule->mem_begin;
 
                /* Round down in both directions to avoid modifying data which is not ours */
@@ -2005,8 +2022,10 @@ load_aot_module (MonoAssembly *assembly, gpointer user_data)
 
        mono_aot_lock ();
 
-       aot_code_low_addr = MIN (aot_code_low_addr, (gsize)amodule->jit_code_start);
-       aot_code_high_addr = MAX (aot_code_high_addr, (gsize)amodule->jit_code_end);
+       if (amodule->jit_code_start) {
+               aot_code_low_addr = MIN (aot_code_low_addr, (gsize)amodule->jit_code_start);
+               aot_code_high_addr = MAX (aot_code_high_addr, (gsize)amodule->jit_code_end);
+       }
        if (amodule->llvm_code_start) {
                aot_code_low_addr = MIN (aot_code_low_addr, (gsize)amodule->llvm_code_start);
                aot_code_high_addr = MAX (aot_code_high_addr, (gsize)amodule->llvm_code_end);
@@ -2015,13 +2034,14 @@ load_aot_module (MonoAssembly *assembly, gpointer user_data)
        g_hash_table_insert (aot_modules, assembly, amodule);
        mono_aot_unlock ();
 
-       mono_jit_info_add_aot_module (assembly->image, amodule->jit_code_start, amodule->jit_code_end);
+       if (amodule->jit_code_start)
+               mono_jit_info_add_aot_module (assembly->image, amodule->jit_code_start, amodule->jit_code_end);
        if (amodule->llvm_code_start)
                mono_jit_info_add_aot_module (assembly->image, amodule->llvm_code_start, amodule->llvm_code_end);
 
        assembly->image->aot_module = amodule;
 
-       amodule->got [0] = assembly->image;
+       amodule->shared_got [0] = assembly->image;
 
        if (mono_aot_only) {
                char *code;
@@ -2032,9 +2052,9 @@ load_aot_module (MonoAssembly *assembly, gpointer user_data)
                        /* The second got slot contains the mscorlib got addr */
                        MonoAotModule *mscorlib_amodule = mono_defaults.corlib->aot_module;
 
-                       amodule->got [1] = mscorlib_amodule->got;
+                       amodule->shared_got [1] = mscorlib_amodule->got;
                } else {
-                       amodule->got [1] = amodule->got;
+                       amodule->shared_got [1] = amodule->got;
                }
        }
 
@@ -2043,19 +2063,28 @@ load_aot_module (MonoAssembly *assembly, gpointer user_data)
 
                memset (&ji, 0, sizeof (ji));
                ji.type = MONO_PATCH_INFO_GC_CARD_TABLE_ADDR;
-               amodule->got [2] = mono_resolve_patch_target (NULL, mono_get_root_domain (), NULL, &ji, FALSE);
+               amodule->shared_got [2] = mono_resolve_patch_target (NULL, mono_get_root_domain (), NULL, &ji, FALSE);
 
                memset (&ji, 0, sizeof (ji));
                ji.type = MONO_PATCH_INFO_GC_NURSERY_START;
-               amodule->got [3] = mono_resolve_patch_target (NULL, mono_get_root_domain (), NULL, &ji, FALSE);
+               amodule->shared_got [3] = mono_resolve_patch_target (NULL, mono_get_root_domain (), NULL, &ji, FALSE);
        }
 
-       if (amodule->llvm_got) {
-               amodule->llvm_got [0] = amodule->got [0];
-               amodule->llvm_got [1] = amodule->got [1];
-               amodule->llvm_got [2] = amodule->got [2];
-               amodule->llvm_got [3] = amodule->got [3];
-       }
+       init_gots (amodule);
+
+       /*
+        * Register the plt region as a single trampoline so we can unwind from this code
+        */
+       mono_tramp_info_register (
+               mono_tramp_info_create (
+                       NULL,
+                       amodule->plt,
+                       amodule->plt_end - amodule->plt,
+                       NULL,
+                       mono_unwind_get_cie_program ()
+                       ),
+               NULL
+               );
 
        /*
         * Since we store methoddef and classdef tokens when referring to methods/classes in
@@ -2081,10 +2110,8 @@ load_aot_module (MonoAssembly *assembly, gpointer user_data)
 
        if (amodule->out_of_date) {
                mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_AOT, "AOT: Module %s is unusable because a dependency is out-of-date.\n", assembly->image->name);
-               if (mono_aot_only) {
-                       fprintf (stderr, "Failed to load AOT module '%s' while running in aot-only mode because a dependency cannot be found or it is out of date.\n", aot_name);
-                       exit (1);
-               }
+               if (mono_aot_only)
+                       g_error ("Failed to load AOT module '%s' while running in aot-only mode because a dependency cannot be found or it is out of date.\n", aot_name);
        }
        else
                mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_AOT, "AOT: loaded AOT Module for %s.\n", assembly->image->name);
@@ -2400,28 +2427,35 @@ compute_llvm_code_range (MonoAotModule *amodule, guint8 **code_start, guint8 **c
        p += 4;
        table = (gint32*)p;
 
-       if (fde_count > 1) {
-               /* mono_aot_personality () */
-               g_assert (table [0] == -1);
-               *code_start = amodule->code + amodule->code_offsets [table [2]];
-               *code_end = amodule->code + amodule->code_offsets [table [(fde_count - 1) * 2]] + table [fde_count * 2];
+       if (fde_count > 0) {
+               *code_start = amodule->methods [table [0]];
+               *code_end = (guint8*)amodule->methods [table [(fde_count - 1) * 2]] + table [fde_count * 2];
        } else {
                *code_start = NULL;
                *code_end = NULL;
        }
 }
 
+static gboolean
+is_llvm_code (MonoAotModule *amodule, guint8 *code)
+{
+       if ((guint8*)code >= amodule->llvm_code_start && (guint8*)code < amodule->llvm_code_end)
+               return TRUE;
+       else
+               return FALSE;
+}
+
 static gboolean
 is_thumb_code (MonoAotModule *amodule, guint8 *code)
 {
-       if ((amodule->info.flags & MONO_AOT_FILE_FLAG_LLVM_THUMB) && (guint8*)code >= amodule->llvm_code_start && (guint8*)code < amodule->llvm_code_end)
+       if (is_llvm_code (amodule, code) && (amodule->info.flags & MONO_AOT_FILE_FLAG_LLVM_THUMB))
                return TRUE;
        else
                return FALSE;
 }
 
 /*
- * decode_mono_eh_frame:
+ * decode_llvm_mono_eh_frame:
  *
  *   Decode the EH information emitted by our modified LLVM compiler and construct a
  * MonoJitInfo structure from it.
@@ -2435,11 +2469,11 @@ decode_llvm_mono_eh_frame (MonoAotModule *amodule, MonoDomain *domain,
                                                   GSList **nesting,
                                                   int *this_reg, int *this_offset)
 {
-       guint8 *p;
+       guint8 *p, *code1, *code2;
        guint8 *fde, *cie, *code_start, *code_end;
        int version, fde_count;
        gint32 *table;
-       int i, j, pos, left, right, offset, offset1, offset2, code_len;
+       int i, pos, left, right, code_len;
        MonoJitExceptionInfo *ei;
        guint32 fde_len, ei_len, nested_len, nindex;
        gpointer *type_info;
@@ -2468,7 +2502,6 @@ decode_llvm_mono_eh_frame (MonoAotModule *amodule, MonoDomain *domain,
        cie = p + ((fde_count + 1) * 8);
 
        /* Binary search in the table to find the entry for code */
-       offset = code - amodule->code;
        left = 0;
        right = fde_count;
        while (TRUE) {
@@ -2476,29 +2509,29 @@ decode_llvm_mono_eh_frame (MonoAotModule *amodule, MonoDomain *domain,
 
                /* The table contains method index/fde offset pairs */
                g_assert (table [(pos * 2)] != -1);
-               offset1 = amodule->code_offsets [table [(pos * 2)]];
+               code1 = amodule->methods [table [(pos * 2)]];
                if (pos + 1 == fde_count) {
-                       offset2 = amodule->llvm_code_end - amodule->llvm_code_start;
+                       code2 = amodule->llvm_code_end;
                } else {
                        g_assert (table [(pos + 1) * 2] != -1);
-                       offset2 = amodule->code_offsets [table [(pos + 1) * 2]];
+                       code2 = amodule->methods [table [(pos + 1) * 2]];
                }
 
-               if (offset < offset1)
+               if (code < code1)
                        right = pos;
-               else if (offset >= offset2)
+               else if (code >= code2)
                        left = pos + 1;
                else
                        break;
        }
 
-       code_start = amodule->code + amodule->code_offsets [table [(pos * 2)]];
+       code_start = amodule->methods [table [(pos * 2)]];
        if (pos + 1 == fde_count) {
                /* The +1 entry in the table contains the length of the last method */
                int len = table [(pos + 1) * 2];
                code_end = code_start + len;
        } else {
-               code_end = amodule->code + amodule->code_offsets [table [(pos + 1) * 2]];
+               code_end = amodule->methods [table [(pos + 1) * 2]];
        }
        code_len = code_end - code_start;
 
@@ -2526,16 +2559,8 @@ decode_llvm_mono_eh_frame (MonoAotModule *amodule, MonoDomain *domain,
                gint32 cindex1 = read32 (type_info [i]);
                GSList *l;
 
-               for (l = nesting [cindex1]; l; l = l->next) {
-                       gint32 nesting_cindex = GPOINTER_TO_INT (l->data);
-
-                       for (j = 0; j < ei_len; ++j) {
-                               gint32 cindex2 = read32 (type_info [j]);
-
-                               if (cindex2 == nesting_cindex)
-                                       nested_len ++;
-                       }
-               }
+               for (l = nesting [cindex1]; l; l = l->next)
+                       nested_len ++;
        }
 
        /*
@@ -2586,19 +2611,16 @@ decode_llvm_mono_eh_frame (MonoAotModule *amodule, MonoDomain *domain,
 
                for (l = nesting [cindex1]; l; l = l->next) {
                        gint32 nesting_cindex = GPOINTER_TO_INT (l->data);
+                       MonoJitExceptionInfo *nesting_ei;
+                       MonoJitExceptionInfo *nesting_clause = &clauses [nesting_cindex];
 
-                       for (j = 0; j < ei_len; ++j) {
-                               gint32 cindex2 = read32 (type_info [j]);
+                       nesting_ei = &jinfo->clauses [nindex];
+                       nindex ++;
 
-                               if (cindex2 == nesting_cindex) {
-                                       memcpy (&jinfo->clauses [nindex], &jinfo->clauses [j], sizeof (MonoJitExceptionInfo));
-                                       jinfo->clauses [nindex].try_start = jinfo->clauses [i].try_start;
-                                       jinfo->clauses [nindex].try_end = jinfo->clauses [i].try_end;
-                                       jinfo->clauses [nindex].handler_start = jinfo->clauses [i].handler_start;
-                                       jinfo->clauses [nindex].exvar_offset = jinfo->clauses [i].exvar_offset;
-                                       nindex ++;
-                               }
-                       }
+                       memcpy (nesting_ei, &jinfo->clauses [i], sizeof (MonoJitExceptionInfo));
+                       nesting_ei->flags = nesting_clause->flags;
+                       nesting_ei->data.catch_class = nesting_clause->data.catch_class;
+                       nesting_ei->clause_index = nesting_cindex;
                }
        }
        g_assert (nindex == ei_len + nested_len);
@@ -2841,21 +2863,9 @@ decode_exception_debug_info (MonoAotModule *amodule, MonoDomain *domain,
                gi->generic_sharing_context = g_new0 (MonoGenericSharingContext, 1);
                if (decode_value (p, &p)) {
                        /* gsharedvt */
-                       int i, n;
                        MonoGenericSharingContext *gsctx = gi->generic_sharing_context;
 
-                       n = decode_value (p, &p);
-                       if (n) {
-                               gsctx->var_is_vt = alloc0_jit_info_data (domain, sizeof (gboolean) * n, async);
-                               for (i = 0; i < n; ++i)
-                                       gsctx->var_is_vt [i] = decode_value (p, &p);
-                       }
-                       n = decode_value (p, &p);
-                       if (n) {
-                               gsctx->mvar_is_vt = alloc0_jit_info_data (domain, sizeof (gboolean) * n, async);
-                               for (i = 0; i < n; ++i)
-                                       gsctx->mvar_is_vt [i] = decode_value (p, &p);
-                       }
+                       gsctx->is_gsharedvt = TRUE;
                }
        }
 
@@ -2936,14 +2946,8 @@ mono_aot_get_unwind_info (MonoJitInfo *ji, guint32 *unwind_info_len)
        return p;
 }
 
-static G_GNUC_UNUSED int
-compare_ints (const void *a, const void *b)
-{
-       return *(gint32*)a - *(gint32*)b;
-}
-
 static void
-msort_code_offsets_internal (gint32 *array, int lo, int hi, gint32 *scratch)
+msort_method_addresses_internal (gpointer *array, int *indexes, int lo, int hi, gpointer *scratch, int *scratch_indexes)
 {
        int mid = (lo + hi) / 2;
        int i, t_lo, t_hi;
@@ -2953,47 +2957,50 @@ msort_code_offsets_internal (gint32 *array, int lo, int hi, gint32 *scratch)
 
        if (hi - lo < 32) {
                for (i = lo; i < hi; ++i)
-                       if (array [(i * 2)] > array [(i * 2) + 2])
+                       if (array [i] > array [i + 1])
                                break;
                if (i == hi)
                        /* Already sorted */
                        return;
        }
 
-       msort_code_offsets_internal (array, lo, mid, scratch);
-       msort_code_offsets_internal (array, mid + 1, hi, scratch);
+       msort_method_addresses_internal (array, indexes, lo, mid, scratch, scratch_indexes);
+       msort_method_addresses_internal (array, indexes, mid + 1, hi, scratch, scratch_indexes);
 
-       if (array [mid * 2] < array [(mid + 1) * 2])
+       if (array [mid] < array [mid + 1])
                return;
 
        /* Merge */
        t_lo = lo;
        t_hi = mid + 1;
        for (i = lo; i <= hi; i ++) {
-               if (t_lo <= mid && ((t_hi > hi) || array [t_lo * 2] < array [t_hi * 2])) {
-                       scratch [(i * 2)] = array [t_lo * 2];
-                       scratch [(i * 2) + 1] = array [(t_lo *2) + 1];
+               if (t_lo <= mid && ((t_hi > hi) || array [t_lo] < array [t_hi])) {
+                       scratch [i] = array [t_lo];
+                       scratch_indexes [i] = indexes [t_lo];
                        t_lo ++;
                } else {
-                       scratch [(i * 2)] = array [t_hi * 2];
-                       scratch [(i * 2) + 1] = array [(t_hi *2) + 1];
+                       scratch [i] = array [t_hi];
+                       scratch_indexes [i] = indexes [t_hi];
                        t_hi ++;
                }
        }
        for (i = lo; i <= hi; ++i) {
-               array [(i * 2)] = scratch [i * 2];
-               array [(i * 2) + 1] = scratch [(i * 2) + 1];
+               array [i] = scratch [i];
+               indexes [i] = scratch_indexes [i];
        }
 }
 
 static void
-msort_code_offsets (gint32 *array, int len)
+msort_method_addresses (gpointer *array, int *indexes, int len)
 {
-       gint32 *scratch;
+       gpointer *scratch;
+       int *scratch_indexes;
 
-       scratch = g_new (gint32, len * 2);
-       msort_code_offsets_internal (array, 0, len - 1, scratch);
+       scratch = g_new (gpointer, len);
+       scratch_indexes = g_new (int, len);
+       msort_method_addresses_internal (array, indexes, 0, len - 1, scratch, scratch_indexes);
        g_free (scratch);
+       g_free (scratch_indexes);
 }
 
 /*
@@ -3006,7 +3013,7 @@ msort_code_offsets (gint32 *array, int len)
 MonoJitInfo *
 mono_aot_find_jit_info (MonoDomain *domain, MonoImage *image, gpointer addr)
 {
-       int pos, left, right, offset, offset1, offset2, code_len;
+       int pos, left, right, code_len;
        int method_index, table_len;
        guint32 token;
        MonoAotModule *amodule = image->aot_module;
@@ -3015,8 +3022,9 @@ mono_aot_find_jit_info (MonoDomain *domain, MonoImage *image, gpointer addr)
        guint8 *code, *ex_info, *p;
        guint32 *table;
        int nmethods;
-       gint32 *code_offsets;
-       int offsets_len, i;
+       gpointer *methods;
+       guint8 *code1, *code2;
+       int methods_len, i;
        gboolean async;
 
        if (!amodule)
@@ -3033,65 +3041,65 @@ mono_aot_find_jit_info (MonoDomain *domain, MonoImage *image, gpointer addr)
 
        async = mono_thread_info_is_async_context ();
 
-       offset = (guint8*)addr - amodule->code;
-
-       /* Compute a sorted table mapping code offsets to method indexes. */
-       if (!amodule->sorted_code_offsets) {
+       /* Compute a sorted table mapping code to method indexes. */
+       if (!amodule->sorted_methods) {
                // FIXME: async
-               code_offsets = g_new0 (gint32, nmethods * 2);
-               offsets_len = 0;
+               gpointer *methods = g_new0 (gpointer, nmethods);
+               int *method_indexes = g_new0 (int, nmethods);
+               int methods_len = 0;
+
                for (i = 0; i < nmethods; ++i) {
                        /* Skip the -1 entries to speed up sorting */
-                       if (amodule->code_offsets [i] == 0xffffffff)
+                       if (amodule->methods [i] == GINT_TO_POINTER (-1))
                                continue;
-                       code_offsets [(offsets_len * 2)] = amodule->code_offsets [i];
-                       code_offsets [(offsets_len *2) + 1] = i;
-                       offsets_len ++;
+                       methods [methods_len] = amodule->methods [i];
+                       method_indexes [methods_len] = i;
+                       methods_len ++;
                }
                /* Use a merge sort as this is mostly sorted */
-               msort_code_offsets (code_offsets, offsets_len);
-               //qsort (code_offsets, offsets_len, sizeof (gint32) * 2, compare_ints);
-               for (i = 0; i < offsets_len -1; ++i)
-                       g_assert (code_offsets [(i * 2)] <= code_offsets [(i + 1) * 2]);
-
-               amodule->sorted_code_offsets_len = offsets_len;
-               mono_memory_barrier ();
-               if (InterlockedCompareExchangePointer ((gpointer*)&amodule->sorted_code_offsets, code_offsets, NULL) != NULL)
+               msort_method_addresses (methods, method_indexes, methods_len);
+               for (i = 0; i < methods_len -1; ++i)
+                       g_assert (methods [i] <= methods [i + 1]);
+               amodule->sorted_methods_len = methods_len;
+               if (InterlockedCompareExchangePointer ((gpointer*)&amodule->sorted_methods, methods, NULL) != NULL)
+                       /* Somebody got in before us */
+                       g_free (methods);
+               if (InterlockedCompareExchangePointer ((gpointer*)&amodule->sorted_method_indexes, method_indexes, NULL) != NULL)
                        /* Somebody got in before us */
-                       g_free (code_offsets);
+                       g_free (method_indexes);
        }
 
-       code_offsets = amodule->sorted_code_offsets;
-       offsets_len = amodule->sorted_code_offsets_len;
-
-       /* Binary search in the sorted_code_offsets table */
+       /* Binary search in the sorted_methods table */
+       methods = amodule->sorted_methods;
+       methods_len = amodule->sorted_methods_len;
+       code = addr;
        left = 0;
-       right = offsets_len;
+       right = methods_len;
        while (TRUE) {
                pos = (left + right) / 2;
 
-               offset1 = code_offsets [(pos * 2)];
-               if (pos + 1 == offsets_len) {
-                       if (amodule->code + offset1 >= amodule->jit_code_start && amodule->code + offset1 < amodule->jit_code_end)
-                               offset2 = amodule->jit_code_end - amodule->code;
+               code1 = methods [pos];
+               if (pos + 1 == methods_len) {
+                       if (code1 >= amodule->jit_code_start && code1 < amodule->jit_code_end)
+                               code2 = amodule->jit_code_end;
                        else
-                               offset2 = amodule->llvm_code_end - amodule->code;
+                               code2 = amodule->llvm_code_end;
                } else {
-                       offset2 = code_offsets [(pos + 1) * 2];
+                       code2 = methods [pos + 1];
                }
 
-               if (offset < offset1)
+               if (code < code1)
                        right = pos;
-               else if (offset >= offset2)
+               else if (code >= code2)
                        left = pos + 1;
                else
                        break;
        }
 
-       g_assert (offset >= code_offsets [(pos * 2)]);
-       if (pos + 1 < offsets_len)
-               g_assert (offset < code_offsets [((pos + 1) * 2)]);
-       method_index = code_offsets [(pos * 2) + 1];
+       g_assert (addr >= methods [pos]);
+       if (pos + 1 < methods_len)
+               g_assert (addr < methods [pos + 1]);
+       method_index = amodule->sorted_method_indexes [pos];
 
        /* In async mode, jinfo is not added to the normal jit info table, so have to cache it ourselves */
        if (async) {
@@ -3107,16 +3115,16 @@ mono_aot_find_jit_info (MonoDomain *domain, MonoImage *image, gpointer addr)
                }
        }
 
-       code = &amodule->code [amodule->code_offsets [method_index]];
+       code = amodule->methods [method_index];
        ex_info = &amodule->blob [mono_aot_get_offset (amodule->ex_info_offsets, method_index)];
 
-       if (pos == offsets_len - 1) {
+       if (pos == methods_len - 1) {
                if (code >= amodule->jit_code_start && code < amodule->jit_code_end)
                        code_len = amodule->jit_code_end - code;
                else
                        code_len = amodule->llvm_code_end - code;
        } else {
-               code_len = code_offsets [(pos + 1) * 2] - code_offsets [pos * 2];
+               code_len = (guint8*)methods [pos + 1] - (guint8*)methods [pos];
        }
 
        g_assert ((guint8*)code <= (guint8*)addr && (guint8*)addr < (guint8*)code + code_len);
@@ -3265,7 +3273,6 @@ decode_patch (MonoAotModule *aot_module, MonoMemPool *mp, MonoJumpInfo *ji, guin
        case MONO_PATCH_INFO_CLASS:
        case MONO_PATCH_INFO_IID:
        case MONO_PATCH_INFO_ADJUSTED_IID:
-       case MONO_PATCH_INFO_CLASS_INIT:
                /* Shared */
                ji->data.klass = decode_klass_ref (aot_module, p, &p);
                if (!ji->data.klass)
@@ -3356,9 +3363,6 @@ decode_patch (MonoAotModule *aot_module, MonoMemPool *mp, MonoJumpInfo *ji, guin
                ji->data.offset = decode_value (p, &p);
                break;
        case MONO_PATCH_INFO_INTERRUPTION_REQUEST_FLAG:
-       case MONO_PATCH_INFO_MONITOR_ENTER:
-       case MONO_PATCH_INFO_MONITOR_ENTER_V4:
-       case MONO_PATCH_INFO_MONITOR_EXIT:
        case MONO_PATCH_INFO_GC_CARD_TABLE_ADDR:
        case MONO_PATCH_INFO_GC_NURSERY_START:
        case MONO_PATCH_INFO_JIT_TLS_ID:
@@ -3580,7 +3584,7 @@ load_method (MonoDomain *domain, MonoAotModule *amodule, MonoImage *image, MonoM
        MonoClass *klass;
        gboolean from_plt = method == NULL;
        MonoJitInfo *jinfo = NULL;
-       guint8 *code, *info;
+       guint8 *code = NULL, *info;
        gboolean res;
 
        if (mono_profiler_get_events () & MONO_PROFILE_ENTER_LEAVE) {
@@ -3597,20 +3601,22 @@ load_method (MonoDomain *domain, MonoAotModule *amodule, MonoImage *image, MonoM
        if (amodule->out_of_date)
                return NULL;
 
-       if (amodule->code_offsets [method_index] == 0xffffffff) {
-               if (mono_trace_is_traced (G_LOG_LEVEL_DEBUG, MONO_TRACE_AOT)) {
-                       char *full_name;
+       if (!code) {
+               if (amodule->methods [method_index] == GINT_TO_POINTER (-1)) {
+                       if (mono_trace_is_traced (G_LOG_LEVEL_DEBUG, MONO_TRACE_AOT)) {
+                               char *full_name;
 
-                       if (!method)
-                               method = mono_get_method (image, token, NULL);
-                       full_name = mono_method_full_name (method, TRUE);
-                       mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_AOT, "AOT: NOT FOUND: %s.", full_name);
-                       g_free (full_name);
+                               if (!method)
+                                       method = mono_get_method (image, token, NULL);
+                               full_name = mono_method_full_name (method, TRUE);
+                               mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_AOT, "AOT: NOT FOUND: %s.", full_name);
+                               g_free (full_name);
+                       }
+                       return NULL;
                }
-               return NULL;
        }
 
-       code = &amodule->code [amodule->code_offsets [method_index]];
+       code = amodule->methods [method_index];
 
        info = &amodule->blob [mono_aot_get_offset (amodule->method_info_offsets, method_index)];
 
@@ -3645,7 +3651,7 @@ load_method (MonoDomain *domain, MonoAotModule *amodule, MonoImage *image, MonoM
                }
        }
 
-       res = mono_aot_init_method (amodule, method_index, method, &klass);
+       res = init_method (amodule, method_index, method, &klass);
        if (!res)
                goto cleanup;
 
@@ -3703,7 +3709,7 @@ load_method (MonoDomain *domain, MonoAotModule *amodule, MonoImage *image, MonoM
 }
 
 static guint32
-find_aot_method_in_amodule (MonoAotModule *amodule, MonoMethod *method)
+find_aot_method_in_amodule (MonoAotModule *amodule, MonoMethod *method, guint32 hash_full)
 {
        guint32 table_size, entry_size, hash;
        guint32 *table, *entry;
@@ -3714,11 +3720,10 @@ find_aot_method_in_amodule (MonoAotModule *amodule, MonoMethod *method)
                return 0xffffff;
 
        table_size = amodule->extra_method_table [0];
+       hash = hash_full % table_size;
        table = amodule->extra_method_table + 1;
        entry_size = 3;
 
-       hash = mono_aot_method_hash (method) % table_size;
-
        entry = &table [hash * entry_size];
 
        if (entry [0] == 0)
@@ -3742,7 +3747,11 @@ find_aot_method_in_amodule (MonoAotModule *amodule, MonoMethod *method)
                amodule_unlock (amodule);
                if (!m) {
                        m = decode_resolve_method_ref_with_target (amodule, method, p, &p);
-                       if (m) {
+                       /*
+                        * Can't catche runtime invoke wrappers since it would break
+                        * the check in decode_method_ref_with_target ().
+                        */
+                       if (m && m->wrapper_type != MONO_WRAPPER_RUNTIME_INVOKE) {
                                amodule_lock (amodule);
                                g_hash_table_insert (amodule->method_ref_to_method, orig_p, m);
                                amodule_unlock (amodule);
@@ -3799,10 +3808,11 @@ find_aot_method (MonoMethod *method, MonoAotModule **out_amodule)
        guint32 index;
        GPtrArray *modules;
        int i;
+       guint32 hash = mono_aot_method_hash (method);
 
        /* Try the method's module first */
        *out_amodule = method->klass->image->aot_module;
-       index = find_aot_method_in_amodule (method->klass->image->aot_module, method);
+       index = find_aot_method_in_amodule (method->klass->image->aot_module, method, hash);
        if (index != 0xffffff)
                return index;
 
@@ -3824,7 +3834,7 @@ find_aot_method (MonoMethod *method, MonoAotModule **out_amodule)
                MonoAotModule *amodule = g_ptr_array_index (modules, i);
 
                if (amodule != method->klass->image->aot_module)
-                       index = find_aot_method_in_amodule (amodule, method);
+                       index = find_aot_method_in_amodule (amodule, method, hash);
                if (index != 0xffffff) {
                        *out_amodule = amodule;
                        break;
@@ -3844,7 +3854,7 @@ mono_aot_find_method_index (MonoMethod *method)
 }
 
 static gboolean
-mono_aot_init_method (MonoAotModule *amodule, guint32 method_index, MonoMethod *method, MonoClass **klass)
+init_method (MonoAotModule *amodule, guint32 method_index, MonoMethod *method, MonoClass **klass)
 {
        MonoDomain *domain = mono_domain_get ();
        MonoMemPool *mp;
@@ -3853,7 +3863,7 @@ mono_aot_init_method (MonoAotModule *amodule, guint32 method_index, MonoMethod *
        MonoJitInfo *jinfo = NULL;
        guint8 *code, *info;
 
-       code = &amodule->code [amodule->code_offsets [method_index]];
+       code = amodule->methods [method_index];
        info = &amodule->blob [mono_aot_get_offset (amodule->method_info_offsets, method_index)];
 
        p = info;
@@ -3974,7 +3984,7 @@ mono_aot_get_method (MonoDomain *domain, MonoMethod *method)
 
        /* Find method index */
        method_index = 0xffffff;
-       if (method->is_inflated && !method->wrapper_type && mono_method_is_generic_sharable_full (method, FALSE, FALSE, FALSE)) {
+       if (method->is_inflated && !method->wrapper_type && mono_method_is_generic_sharable_full (method, TRUE, FALSE, FALSE)) {
                /* 
                 * For generic methods, we store the fully shared instance in place of the
                 * original method.
@@ -4285,7 +4295,7 @@ mono_aot_plt_resolve (gpointer aot_module, guint32 plt_info_offset, guint8 *code
         * patches, so have to translate between the two.
         * FIXME: Clean this up, but how ?
         */
-       if (ji.type == MONO_PATCH_INFO_ABS || ji.type == MONO_PATCH_INFO_INTERNAL_METHOD || ji.type == MONO_PATCH_INFO_CLASS_INIT || ji.type == MONO_PATCH_INFO_ICALL_ADDR || ji.type == MONO_PATCH_INFO_JIT_ICALL_ADDR || ji.type == MONO_PATCH_INFO_RGCTX_FETCH) {
+       if (ji.type == MONO_PATCH_INFO_ABS || ji.type == MONO_PATCH_INFO_INTERNAL_METHOD || ji.type == MONO_PATCH_INFO_ICALL_ADDR || ji.type == MONO_PATCH_INFO_JIT_ICALL_ADDR || ji.type == MONO_PATCH_INFO_RGCTX_FETCH) {
                /* These should already have a function descriptor */
 #ifdef PPC_USES_FUNCTION_DESCRIPTOR
                /* Our function descriptors have a 0 environment, gcc created ones don't */
@@ -4544,18 +4554,6 @@ load_function_full (MonoAotModule *amodule, const char *name, MonoTrampInfo **ou
                                        g_assert (res == 1);
                                        target = mono_create_specific_trampoline (GUINT_TO_POINTER (slot), MONO_TRAMPOLINE_RGCTX_LAZY_FETCH, mono_get_root_domain (), NULL);
                                        target = mono_create_ftnptr_malloc (target);
-                               } else if (!strcmp (ji->data.name, "specific_trampoline_monitor_enter")) {
-                                       target = mono_create_specific_trampoline (NULL, MONO_TRAMPOLINE_MONITOR_ENTER, mono_get_root_domain (), NULL);
-                                       target = mono_create_ftnptr_malloc (target);
-                               } else if (!strcmp (ji->data.name, "specific_trampoline_monitor_enter_v4")) {
-                                       target = mono_create_specific_trampoline (NULL, MONO_TRAMPOLINE_MONITOR_ENTER_V4, mono_get_root_domain (), NULL);
-                                       target = mono_create_ftnptr_malloc (target);
-                               } else if (!strcmp (ji->data.name, "specific_trampoline_monitor_exit")) {
-                                       target = mono_create_specific_trampoline (NULL, MONO_TRAMPOLINE_MONITOR_EXIT, mono_get_root_domain (), NULL);
-                                       target = mono_create_ftnptr_malloc (target);
-                               } else if (!strcmp (ji->data.name, "specific_trampoline_generic_class_init")) {
-                                       target = mono_create_specific_trampoline (NULL, MONO_TRAMPOLINE_GENERIC_CLASS_INIT, mono_get_root_domain (), NULL);
-                                       target = mono_create_ftnptr_malloc (target);
                                } else if (!strcmp (ji->data.name, "mono_thread_get_and_clear_pending_exception")) {
                                        target = mono_thread_get_and_clear_pending_exception;
                                } else if (!strcmp (ji->data.name, "debugger_agent_single_step_from_context")) {
@@ -4597,6 +4595,21 @@ load_function (MonoAotModule *amodule, const char *name)
        return load_function_full (amodule, name, NULL);
 }
 
+static MonoAotModule*
+get_mscorlib_aot_module (void)
+{
+       MonoImage *image;
+       MonoAotModule *amodule;
+
+       image = mono_defaults.corlib;
+       if (image)
+               amodule = image->aot_module;
+       else
+               amodule = mscorlib_aot_module;
+       g_assert (amodule);
+       return amodule;
+}
+
 /*
  * Return the trampoline identified by NAME from the mscorlib AOT file.
  * On ppc64, this returns a function descriptor.
@@ -4604,14 +4617,7 @@ load_function (MonoAotModule *amodule, const char *name)
 gpointer
 mono_aot_get_trampoline_full (const char *name, MonoTrampInfo **out_tinfo)
 {
-       MonoImage *image;
-       MonoAotModule *amodule;
-
-       image = mono_defaults.corlib;
-       g_assert (image);
-
-       amodule = image->aot_module;
-       g_assert (amodule);
+       MonoAotModule *amodule = get_mscorlib_aot_module ();
 
        return mono_create_ftnptr_malloc (load_function_full (amodule, name, out_tinfo));
 }
@@ -4619,7 +4625,36 @@ mono_aot_get_trampoline_full (const char *name, MonoTrampInfo **out_tinfo)
 gpointer
 mono_aot_get_trampoline (const char *name)
 {
-       return mono_aot_get_trampoline_full (name, NULL);
+       MonoTrampInfo *out_tinfo;
+       gpointer code;
+
+       code =  mono_aot_get_trampoline_full (name, &out_tinfo);
+       mono_tramp_info_register (out_tinfo, NULL);
+
+       return code;
+}
+
+static gpointer
+read_unwind_info (MonoAotModule *amodule, MonoTrampInfo *info, const char *symbol_name)
+{
+       gpointer symbol_addr;
+       guint32 uw_offset, uw_info_len;
+       guint8 *uw_info;
+
+       find_symbol (amodule->sofile, amodule->globals, symbol_name, &symbol_addr);
+
+       if (!symbol_addr)
+               return NULL;
+
+       uw_offset = *(guint32*)symbol_addr;
+       uw_info = amodule->unwind_info + uw_offset;
+       uw_info_len = decode_value (uw_info, &uw_info);
+
+       info->uw_info = uw_info;
+       info->uw_info_len = uw_info_len;
+
+       /* If successful return the address of the following data */
+       return (guint32*)symbol_addr + 1;
 }
 
 #ifdef MONOTOUCH
@@ -4627,6 +4662,25 @@ mono_aot_get_trampoline (const char *name)
 
 static TrampolinePage* trampoline_pages [MONO_AOT_TRAMP_NUM];
 
+static void
+read_page_trampoline_uwinfo (MonoTrampInfo *info, int tramp_type, gboolean is_generic)
+{
+       char symbol_name [128];
+
+       if (tramp_type == MONO_AOT_TRAMP_SPECIFIC)
+               sprintf (symbol_name, "specific_trampolines_page_%s_p", is_generic ? "gen" : "sp");
+       else if (tramp_type == MONO_AOT_TRAMP_STATIC_RGCTX)
+               sprintf (symbol_name, "rgctx_trampolines_page_%s_p", is_generic ? "gen" : "sp");
+       else if (tramp_type == MONO_AOT_TRAMP_IMT_THUNK)
+               sprintf (symbol_name, "imt_trampolines_page_%s_p", is_generic ? "gen" : "sp");
+       else if (tramp_type == MONO_AOT_TRAMP_GSHAREDVT_ARG)
+               sprintf (symbol_name, "gsharedvt_trampolines_page_%s_p", is_generic ? "gen" : "sp");
+       else
+               g_assert_not_reached ();
+
+       read_unwind_info (mono_defaults.corlib->aot_module, info, symbol_name);
+}
+
 static unsigned char*
 get_new_trampoline_from_page (int tramp_type)
 {
@@ -4678,6 +4732,8 @@ get_new_trampoline_from_page (int tramp_type)
        count = 40;
        page = NULL;
        while (page == NULL && count-- > 0) {
+               MonoTrampInfo *gen_info, *sp_info;
+
                addr = 0;
                /* allocate two contiguous pages of memory: the first page will contain the data (like a local constant pool)
                 * while the second will contain the trampolines.
@@ -4718,6 +4774,23 @@ get_new_trampoline_from_page (int tramp_type)
                code = page->trampolines;
                page->trampolines += specific_trampoline_size;
                mono_aot_page_unlock ();
+
+               /* Register the generic part at the beggining of the trampoline page */
+               gen_info = mono_tramp_info_create (NULL, (guint8*)taddr, amodule->info.tramp_page_code_offsets [tramp_type], NULL, NULL);
+               read_page_trampoline_uwinfo (gen_info, tramp_type, TRUE);
+               mono_tramp_info_register (gen_info, NULL);
+               /*
+                * FIXME
+                * Registering each specific trampoline produces a lot of
+                * MonoJitInfo structures. Jump trampolines are also registered
+                * separately.
+                */
+               if (tramp_type != MONO_AOT_TRAMP_SPECIFIC) {
+                       /* Register the rest of the page as a single trampoline */
+                       sp_info = mono_tramp_info_create (NULL, code, page->trampolines_end - code, NULL, NULL);
+                       read_page_trampoline_uwinfo (sp_info, tramp_type, FALSE);
+                       mono_tramp_info_register (sp_info, NULL);
+               }
                return code;
        }
        g_error ("Cannot allocate more trampoline pages: %d", ret);
@@ -4797,24 +4870,21 @@ get_new_gsharedvt_arg_trampoline_from_page (gpointer tramp, gpointer arg)
 }
 
 /* Return a given kind of trampoline */
+/* FIXME set unwind info for these trampolines */
 static gpointer
 get_numerous_trampoline (MonoAotTrampoline tramp_type, int n_got_slots, MonoAotModule **out_amodule, guint32 *got_offset, guint32 *out_tramp_size)
 {
-       MonoAotModule *amodule;
-       int index, tramp_size;
        MonoImage *image;
+       MonoAotModule *amodule = get_mscorlib_aot_module ();
+       int index, tramp_size;
 
        /* Currently, we keep all trampolines in the mscorlib AOT image */
        image = mono_defaults.corlib;
-       g_assert (image);
-
-       mono_aot_lock ();
-
-       amodule = image->aot_module;
-       g_assert (amodule);
 
        *out_amodule = amodule;
 
+       mono_aot_lock ();
+
 #ifdef MONOTOUCH
 #define        MONOTOUCH_TRAMPOLINES_ERROR ". See http://docs.xamarin.com/ios/troubleshooting for instructions on how to fix this condition."
 #else
@@ -4822,7 +4892,7 @@ get_numerous_trampoline (MonoAotTrampoline tramp_type, int n_got_slots, MonoAotM
 #endif
        if (amodule->trampoline_index [tramp_type] == amodule->info.num_trampolines [tramp_type]) {
                g_error ("Ran out of trampolines of type %d in '%s' (%d)%s\n", 
-                                tramp_type, image->name, amodule->info.num_trampolines [tramp_type], MONOTOUCH_TRAMPOLINES_ERROR);
+                                tramp_type, image ? image->name : "mscorlib", amodule->info.num_trampolines [tramp_type], MONOTOUCH_TRAMPOLINES_ERROR);
        }
        index = amodule->trampoline_index [tramp_type] ++;
 
@@ -4919,6 +4989,8 @@ mono_aot_get_unbox_trampoline (MonoMethod *method)
        gpointer code;
        guint32 *ut, *ut_end, *entry;
        int low, high, entry_index = 0;
+       gpointer symbol_addr;
+       MonoTrampInfo *tinfo;
 
        if (method->is_inflated && !mono_method_is_generic_sharable_full (method, FALSE, FALSE, FALSE)) {
                method_index = find_aot_method (method, &amodule);
@@ -4958,6 +5030,17 @@ mono_aot_get_unbox_trampoline (MonoMethod *method)
        code = get_call_table_entry (amodule->unbox_trampoline_addresses, entry_index);
        g_assert (code);
 
+       tinfo = mono_tramp_info_create (NULL, code, 0, NULL, NULL);
+
+       symbol_addr = read_unwind_info (amodule, tinfo, "unbox_trampoline_p");
+       if (!symbol_addr) {
+               mono_tramp_info_free (tinfo);
+               return FALSE;
+       }
+
+       tinfo->code_size = *(guint32*)symbol_addr;
+       mono_tramp_info_register (tinfo, NULL);
+
        /* The caller expects an ftnptr */
        return mono_create_ftnptr (mono_domain_get (), code);
 }
index 9ec39eb9e1b1818c4f407953195c7e7db0bb3a76..98bd905faf3550cfae9354d3c34360ba53cdebd9 100644 (file)
@@ -1,5 +1,6 @@
 using System;
 using System.Text;
+using System.Linq;
 using System.Reflection;
 using System.Runtime.InteropServices;
 using System.Runtime.CompilerServices;
@@ -106,6 +107,7 @@ class Tests
                return 0;
        }
 
+       [Category ("DYNCALL")]
        [Category ("GSHAREDVT")]
        static int test_0_arm64_dyncall_gsharedvt_out_hfa_double () {
                /* gsharedvt out trampoline with double hfa argument */
@@ -124,6 +126,7 @@ class Tests
                return 0;
        }
 
+       [Category ("DYNCALL")]
        [Category ("GSHAREDVT")]
        static int test_0_arm64_dyncall_gsharedvt_out_hfa_float () {
                /* gsharedvt out trampoline with double hfa argument */
@@ -200,6 +203,23 @@ class Tests
                return 0;
        }
 
+       class Foo6 {
+               public T reg_stack_split_inner<T> (int i, int j, T l) {
+                       return l;
+               }
+       }
+
+       [Category("DYNCALL")]
+       static int test_0_arm_dyncall_reg_stack_split () {
+               var m = typeof (Foo6).GetMethod ("reg_stack_split_inner").MakeGenericMethod (new Type[] { typeof (long) });
+               var o = new Foo6 ();
+               if ((long)m.Invoke (o, new object [] { 1, 2, 3 }) != 3)
+                       return 1;
+               if ((long)m.Invoke (o, new object [] { 1, 2, Int64.MaxValue }) != Int64.MaxValue)
+                       return 2;
+               return 0;
+       }
+
        static int test_0_partial_sharing_regress_30204 () {
                var t = typeof (System.Collections.Generic.Comparer<System.Collections.Generic.KeyValuePair<string, string>>);
                var d = new SortedDictionary<string, string> ();
@@ -255,4 +275,20 @@ class Tests
                var c = Comparer<AnEnum>.Default;
                return c.Compare (AnEnum.A, AnEnum.A);
        }
+
+       private static Dictionary<long, TValue> ConvertDictionary<TValue>(Dictionary<long, IList<TValue>> source) {
+               return source.ToDictionary(pair => pair.Key, pair => pair.Value[0]);
+       }
+
+       [Category ("GSHAREDVT")]
+       public static int test_0_gsharedvt_non_variable_arg () {
+               Dictionary<long, IList<int>> data = new Dictionary<long, IList<int>>
+            {
+                               {123L, new List<int> {2}}
+            };
+               Dictionary<long, int> newDict = ConvertDictionary(data);
+               if (newDict.Count != 1)
+                       return 1;
+               return 0;
+       }
 }
index a5ccf787e73886fa0747e3d6feb2b0811bfc1e52..0eb1e240bc5348d18f4d81badc38b476dee69152 100644 (file)
@@ -812,5 +812,13 @@ class Tests
                short b = (short)a;
                return b == 127 ? 0 : 1;
        }
+
+       public static int test_10_rconv_to_u8 () {
+               ulong l = 10;
+               float f = (float)l;
+               l = (ulong)f;
+               return (int)l;
+       }
+
 }
 
index 14488d7b435a2eee3e9f37833904ddea34173ae5..6b5d709f905d335e3fb4b37267dfce4527d97797 100644 (file)
@@ -1238,7 +1238,7 @@ mono_remove_critical_edges (MonoCompile *cfg)
 void
 mono_optimize_branches (MonoCompile *cfg)
 {
-       int i, changed = FALSE;
+       int i, count = 0, changed = FALSE;
        MonoBasicBlock *bb, *bbn;
        guint32 niterations;
        MonoInst *bbn_first_inst;
@@ -1261,6 +1261,11 @@ mono_optimize_branches (MonoCompile *cfg)
 
                /* we skip the entry block (exit is handled specially instead ) */
                for (previous_bb = cfg->bb_entry, bb = cfg->bb_entry->next_bb; bb; previous_bb = bb, bb = bb->next_bb) {
+                       count ++;
+                       if (count == 1000) {
+                               MONO_SUSPEND_CHECK ();
+                               count = 0;
+                       }
                        /* dont touch code inside exception clauses */
                        if (bb->region != -1)
                                continue;
index caf10c5552f22b803c64f5bc7df56b7ae61e8a0a..49bc57e72e84fd45a78bfde7aac37ac59a1d9e87 100644 (file)
@@ -55,7 +55,7 @@ br: len:16
 switch: src1:i len:12
 # See the comment in resume_from_signal_handler, we can't copy the fp regs from sigctx to MonoContext on linux,
 # since the corresponding sigctx structures are not well defined.
-seq_point: len:38 clob:c
+seq_point: len:52 clob:c
 il_seq_point: len:0
 
 throw: src1:i len:24
@@ -204,6 +204,7 @@ float_cle: dest:y src1:f src2:f len:20
 float_conv_to_u: dest:i src1:f len:36
 
 # R4 opcodes
+rmove: dest:f src1:f len:4
 r4_conv_to_i1: dest:i src1:f len:88
 r4_conv_to_i2: dest:i src1:f len:88
 r4_conv_to_i4: dest:i src1:f len:88
@@ -243,6 +244,9 @@ br_reg: src1:i len:8
 bigmul: len:8 dest:l src1:i src2:i
 bigmul_un: len:8 dest:l src1:i src2:i
 tls_get: len:24 dest:i clob:c
+tls_get_reg: len:28 dest:i src1:i clob:c
+tls_set: len:24 src1:i clob:c
+tls_set_reg: len:28 src1:i src2:i clob:c
 
 # 32 bit opcodes
 int_add: dest:i src1:i src2:i len:4
@@ -357,7 +361,7 @@ long_conv_to_ovf_i4_2: dest:i src1:i src2:i len:36
 vcall2: len:64 clob:c
 vcall2_reg: src1:i len:64 clob:c
 vcall2_membase: src1:b len:64 clob:c
-dyn_call: src1:i src2:i len:120 clob:c
+dyn_call: src1:i src2:i len:136 clob:c
 
 # This is different from the original JIT opcodes
 float_beq: len:32
@@ -377,6 +381,7 @@ gc_liveness_def: len:0
 gc_liveness_use: len:0
 gc_spill_slot_liveness_def: len:0
 gc_param_slot_liveness_def: len:0
+gc_safe_point: clob:c src1:i len:40
 
 atomic_add_i4: dest:i src1:i src2:i len:64
 atomic_exchange_i4: dest:i src1:i src2:i len:64
index ba2ec60d3e727b0a74beeffeeb2126607abed162..e6baf9148fcf1c56f899fdd6592b011d35e16a3d 100644 (file)
@@ -314,5 +314,5 @@ vcall2_membase: src1:b len:16 clob:c
 
 jump_table: dest:i len:8
 
-atomic_add_i4: src1:b src2:i dest:i len:20
+atomic_add_i4: src1:b src2:i dest:i len:28
 atomic_cas_i4: src1:b src2:i src3:i dest:i len:38
index df26513baca8cee748bbd0457069ef811f3a5716..cbb566b6676df06d5dfffb20d655412c6941b923 100644 (file)
@@ -390,4 +390,4 @@ gc_liveness_use: len:0
 gc_spill_slot_liveness_def: len:0
 gc_param_slot_liveness_def: len:0
 
-generic_class_init: src1:A len:32
+generic_class_init: src1:A len:32 clob:c
index 2bd196cc76c0fd4f1de577e8ae0cc99770a8554f..e9789f9461f375f76c0e242dff149d2dd0d6f68d 100644 (file)
@@ -66,7 +66,7 @@ break: len:1
 call: dest:a clob:c len:17
 tailcall: len:120 clob:c
 br: len:5
-seq_point: len:17
+seq_point: len:24 clob:c
 il_seq_point: len:0
 
 int_beq: len:6
index dcecc4dfb05f191a8cd5d187d3d271ff44410c8f..6d482e5508b6e54e0565f6796158448653d2b08a 100644 (file)
 #include <mono/metadata/gc-internal.h>
 #include <mono/metadata/environment.h>
 #include <mono/metadata/threads-types.h>
+#include <mono/metadata/threadpool-ms.h>
 #include <mono/metadata/socket-io.h>
 #include <mono/metadata/assembly.h>
 #include <mono/metadata/runtime.h>
-#include <mono/metadata/threadpool.h>
 #include <mono/metadata/verify-internals.h>
 #include <mono/utils/mono-semaphore.h>
 #include <mono/utils/mono-error-internals.h>
@@ -655,12 +655,15 @@ static MonoNativeTlsKey debugger_tls_id;
 static gboolean vm_start_event_sent, vm_death_event_sent, disconnected;
 
 /* Maps MonoInternalThread -> DebuggerTlsData */
+/* Protected by the loader lock */
 static MonoGHashTable *thread_to_tls;
 
 /* Maps tid -> MonoInternalThread */
+/* Protected by the loader lock */
 static MonoGHashTable *tid_to_thread;
 
 /* Maps tid -> MonoThread (not MonoInternalThread) */
+/* Protected by the loader lock */
 static MonoGHashTable *tid_to_thread_obj;
 
 static gsize debugger_thread_id;
@@ -704,6 +707,7 @@ static int major_version, minor_version;
 static gboolean protocol_version_set;
 
 /* A hash table containing all active domains */
+/* Protected by the loader lock */
 static GHashTable *domains;
 
 /* The number of times the runtime is suspended */
@@ -717,9 +721,9 @@ static ReplyPacket reply_packets [128];
 int nreply_packets;
 
 #define dbg_lock() do {        \
-       MONO_TRY_BLOCKING       \
+       MONO_TRY_BLOCKING;                      \
        mono_mutex_lock (&debug_mutex); \
-       MONO_FINISH_TRY_BLOCKING        \
+       MONO_FINISH_TRY_BLOCKING;               \
 } while (0)
 
 #define dbg_unlock() mono_mutex_unlock (&debug_mutex)
@@ -1088,9 +1092,9 @@ finish_agent_init (gboolean on_startup)
                }
        }
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        transport_connect (agent_config.address);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        if (!on_startup) {
                /* Do some which is usually done after sending the VMStart () event */
@@ -1322,9 +1326,9 @@ socket_transport_connect (const char *address)
                        }
                }
 
-               MONO_PREPARE_BLOCKING
+               MONO_PREPARE_BLOCKING;
                conn_fd = socket_transport_accept (sfd);
-               MONO_FINISH_BLOCKING
+               MONO_FINISH_BLOCKING;
                if (conn_fd == -1)
                        exit (1);
 
@@ -1544,18 +1548,18 @@ transport_handshake (void)
        /* Write handshake message */
        sprintf (handshake_msg, "DWP-Handshake");
        /* Must use try blocking as this can nest into code that runs blocking */
-       MONO_TRY_BLOCKING
+       MONO_TRY_BLOCKING;
        do {
                res = transport_send (handshake_msg, strlen (handshake_msg));
        } while (res == -1 && get_last_sock_error () == MONO_EINTR);
-       MONO_FINISH_TRY_BLOCKING
+       MONO_FINISH_TRY_BLOCKING;
 
        g_assert (res != -1);
 
        /* Read answer */
-       MONO_TRY_BLOCKING
+       MONO_TRY_BLOCKING;
        res = transport_recv (buf, strlen (handshake_msg));
-       MONO_FINISH_TRY_BLOCKING
+       MONO_FINISH_TRY_BLOCKING;
        if ((res != strlen (handshake_msg)) || (memcmp (buf, handshake_msg, strlen (handshake_msg)) != 0)) {
                fprintf (stderr, "debugger-agent: DWP handshake failed.\n");
                return FALSE;
@@ -1598,9 +1602,9 @@ stop_debugger_thread (void)
        if (!inited)
                return;
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        transport_close1 ();
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        /* 
         * Wait for the thread to exit.
@@ -1610,18 +1614,18 @@ stop_debugger_thread (void)
         */
        if (GetCurrentThreadId () != debugger_thread_id) {
                do {
-                       MONO_TRY_BLOCKING
+                       MONO_TRY_BLOCKING;
                        mono_mutex_lock (&debugger_thread_exited_mutex);
                        if (!debugger_thread_exited)
                                mono_cond_wait (&debugger_thread_exited_cond, &debugger_thread_exited_mutex);
                        mono_mutex_unlock (&debugger_thread_exited_mutex);
-                       MONO_FINISH_TRY_BLOCKING
+                       MONO_FINISH_TRY_BLOCKING;
                } while (!debugger_thread_exited);
        }
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        transport_close2 ();
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 }
 
 static void
@@ -1815,9 +1819,9 @@ send_packet (int command_set, int command, Buffer *data)
        buffer_add_byte (&buf, command);
        memcpy (buf.buf + 11, data->buf, data->p - data->buf);
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        res = transport_send (buf.buf, len);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        buffer_free (&buf);
 
@@ -1844,9 +1848,9 @@ send_reply_packets (int npackets, ReplyPacket *packets)
                buffer_add_buffer (&buf, packets [i].data);
        }
 
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        res = transport_send (buf.buf, len);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        buffer_free (&buf);
 
@@ -1913,7 +1917,9 @@ typedef struct {
 } ObjRef;
 
 /* Maps objid -> ObjRef */
+/* Protected by the loader lock */
 static GHashTable *objrefs;
+/* Protected by the loader lock */
 static GHashTable *obj_to_objref;
 /* Protected by the dbg lock */
 static MonoGHashTable *suspended_objs;
@@ -2128,8 +2134,10 @@ typedef struct {
 
 typedef struct {
        /* Maps runtime structure -> Id */
+       /* Protected by the dbg lock */
        GHashTable *val_to_id [ID_NUM];
        /* Classes whose class load event has been sent */
+       /* Protected by the loader lock */
        GHashTable *loaded_classes;
        /* Maps MonoClass->GPtrArray of file names */
        GHashTable *source_files;
@@ -2255,24 +2263,19 @@ get_id (MonoDomain *domain, IdType type, gpointer val)
        if (val == NULL)
                return 0;
 
-       mono_loader_lock ();
-
-       mono_domain_lock (domain);
-
        info = get_agent_domain_info (domain);
 
+       dbg_lock ();
+
        if (info->val_to_id [type] == NULL)
                info->val_to_id [type] = g_hash_table_new (mono_aligned_addr_hash, NULL);
 
        id = g_hash_table_lookup (info->val_to_id [type], val);
        if (id) {
-               mono_domain_unlock (domain);
-               mono_loader_unlock ();
+               dbg_unlock ();
                return id->id;
        }
 
-       dbg_lock ();
-
        id = g_new0 (Id, 1);
        /* Reserve id 0 */
        id->id = ids [type]->len + 1;
@@ -2284,10 +2287,6 @@ get_id (MonoDomain *domain, IdType type, gpointer val)
 
        dbg_unlock ();
 
-       mono_domain_unlock (domain);
-
-       mono_loader_unlock ();
-
        return id->id;
 }
 
@@ -2520,7 +2519,7 @@ get_last_frame (StackFrameInfo *info, MonoContext *ctx, gpointer user_data)
 {
        GetLastFrameUserData *data = user_data;
 
-       if (info->type == FRAME_TYPE_MANAGED_TO_NATIVE)
+       if (info->type == FRAME_TYPE_MANAGED_TO_NATIVE || info->type == FRAME_TYPE_TRAMPOLINE)
                return FALSE;
 
        if (!data->last_frame_set) {
@@ -2556,7 +2555,7 @@ thread_interrupt (DebuggerTlsData *tls, MonoThreadInfo *info, MonoJitInfo *ji)
        // FIXME: Races when the thread leaves managed code before hitting a single step
        // event.
 
-       if (ji) {
+       if (ji && !ji->is_trampoline) {
                /* Running managed code, will be suspended by the single step code */
                DEBUG_PRINTF (1, "[%p] Received interrupt while at %s(%p), continuing.\n", (gpointer)(gsize)tid, jinfo_get_method (ji)->name, ip);
        } else {
@@ -2648,7 +2647,11 @@ debugger_interrupt_critical (MonoThreadInfo *info, gpointer user_data)
        MonoJitInfo *ji;
 
        data->valid_info = TRUE;
-       ji = mono_jit_info_table_find (mono_thread_info_get_suspend_state (info)->unwind_data [MONO_UNWIND_DATA_DOMAIN], MONO_CONTEXT_GET_IP (&mono_thread_info_get_suspend_state (info)->ctx));
+       ji = mono_jit_info_table_find_internal (
+                       mono_thread_info_get_suspend_state (info)->unwind_data [MONO_UNWIND_DATA_DOMAIN],
+                       MONO_CONTEXT_GET_IP (&mono_thread_info_get_suspend_state (info)->ctx),
+                       TRUE,
+                       TRUE);
 
        /* This is signal safe */
        thread_interrupt (data->tls, info, ji);
@@ -2744,9 +2747,9 @@ suspend_vm (void)
 {
        mono_loader_lock ();
 
-       MONO_TRY_BLOCKING
+       MONO_TRY_BLOCKING;
        mono_mutex_lock (&suspend_mutex);
-       MONO_FINISH_TRY_BLOCKING
+       MONO_FINISH_TRY_BLOCKING;
 
        suspend_count ++;
 
@@ -2764,7 +2767,7 @@ suspend_vm (void)
                /*
                 * Suspend creation of new threadpool threads, since they cannot run
                 */
-               mono_thread_pool_suspend ();
+               mono_threadpool_ms_suspend ();
 
        mono_loader_unlock ();
 }
@@ -2784,9 +2787,9 @@ resume_vm (void)
 
        mono_loader_lock ();
 
-       MONO_TRY_BLOCKING
+       MONO_TRY_BLOCKING;
        mono_mutex_lock (&suspend_mutex);
-       MONO_FINISH_TRY_BLOCKING
+       MONO_FINISH_TRY_BLOCKING;
 
        g_assert (suspend_count > 0);
        suspend_count --;
@@ -2807,7 +2810,7 @@ resume_vm (void)
        //g_assert (err == 0);
 
        if (suspend_count == 0)
-               mono_thread_pool_resume ();
+               mono_threadpool_ms_resume ();
 
        mono_loader_unlock ();
 }
@@ -2830,9 +2833,9 @@ resume_thread (MonoInternalThread *thread)
        tls = mono_g_hash_table_lookup (thread_to_tls, thread);
        g_assert (tls);
        
-       MONO_TRY_BLOCKING
+       MONO_TRY_BLOCKING;
        mono_mutex_lock (&suspend_mutex);
-       MONO_FINISH_TRY_BLOCKING
+       MONO_FINISH_TRY_BLOCKING;
 
        g_assert (suspend_count > 0);
 
@@ -2907,9 +2910,9 @@ suspend_current (void)
        tls = mono_native_tls_get_value (debugger_tls_id);
        g_assert (tls);
 
-       MONO_TRY_BLOCKING
+       MONO_TRY_BLOCKING;
        mono_mutex_lock (&suspend_mutex);
-       MONO_FINISH_TRY_BLOCKING
+       MONO_FINISH_TRY_BLOCKING;
 
        tls->suspending = FALSE;
        tls->really_suspended = TRUE;
@@ -2921,12 +2924,12 @@ suspend_current (void)
 
        DEBUG_PRINTF (1, "[%p] Suspended.\n", (gpointer)GetCurrentThreadId ());
 
-       MONO_TRY_BLOCKING
+       MONO_TRY_BLOCKING;
        while (suspend_count - tls->resume_count > 0) {
                err = mono_cond_wait (&suspend_cond, &suspend_mutex);
                g_assert (err == 0);
        }
-       MONO_FINISH_TRY_BLOCKING
+       MONO_FINISH_TRY_BLOCKING;
 
        tls->suspended = FALSE;
        tls->really_suspended = FALSE;
@@ -3070,7 +3073,7 @@ process_frame (StackFrameInfo *info, MonoContext *ctx, gpointer user_data)
                        info->il_offset = mono_debug_il_offset_from_address (method, info->domain, info->native_offset);
        }
 
-       DEBUG_PRINTF (1, "\tFrame: %s:%x(%x) %d\n", mono_method_full_name (method, TRUE), info->il_offset, info->native_offset, info->managed);
+       DEBUG_PRINTF (1, "\tFrame: %s:[il=0x%x, native=0x%x] %d\n", mono_method_full_name (method, TRUE), info->il_offset, info->native_offset, info->managed);
 
        if (method->wrapper_type == MONO_WRAPPER_MANAGED_TO_NATIVE) {
                if (!CHECK_PROTOCOL_VERSION (2, 17))
@@ -4044,18 +4047,17 @@ send_type_load (MonoClass *klass)
        MonoDomain *domain = mono_domain_get ();
        AgentDomainInfo *info = NULL;
 
-       mono_loader_lock ();
-       mono_domain_lock (domain);
-
        info = get_agent_domain_info (domain);
 
+       mono_loader_lock ();
+
        if (!g_hash_table_lookup (info->loaded_classes, klass)) {
                type_load = TRUE;
                g_hash_table_insert (info->loaded_classes, klass, klass);
        }
 
-       mono_domain_unlock (domain);
        mono_loader_unlock ();
+
        if (type_load)
                emit_type_load (klass, klass, NULL);
 }
@@ -4069,13 +4071,12 @@ static void
 send_types_for_domain (MonoDomain *domain, void *user_data)
 {
        AgentDomainInfo *info = NULL;
+
+       info = get_agent_domain_info (domain);
+       g_assert (info);
        
        mono_loader_lock ();
-       mono_domain_lock (domain);
-       info =  get_agent_domain_info (domain);
-       g_assert (info);
        g_hash_table_foreach (info->loaded_classes, emit_type_load, NULL);
-       mono_domain_unlock (domain);
        mono_loader_unlock ();
 }
 
@@ -4148,6 +4149,7 @@ typedef struct {
 } MonoBreakpoint;
 
 /* List of breakpoints */
+/* Protected by the loader lock */
 static GPtrArray *breakpoints;
 /* Maps breakpoint locations to the number of breakpoints at that location */
 static GHashTable *bp_locs;
@@ -4247,7 +4249,7 @@ insert_breakpoint (MonoSeqPointInfo *seq_points, MonoDomain *domain, MonoJitInfo
 #endif
        }
 
-       DEBUG_PRINTF (1, "[dbg] Inserted breakpoint at %s:0x%x [%p](%d).\n", mono_method_full_name (jinfo_get_method (ji), TRUE), (int)it.seq_point.il_offset, inst->ip, count);
+       DEBUG_PRINTF (1, "[dbg] Inserted breakpoint at %s:[il=0x%x,native=0x%x] [%p](%d).\n", mono_method_full_name (jinfo_get_method (ji), TRUE), (int)it.seq_point.il_offset, (int)it.seq_point.native_offset, inst->ip, count);
 }
 
 static void
@@ -4274,6 +4276,9 @@ remove_breakpoint (BreakpointInstance *inst)
 #endif
 }      
 
+/*
+ * This doesn't take any locks.
+ */
 static inline gboolean
 bp_matches_method (MonoBreakpoint *bp, MonoMethod *method)
 {
@@ -4341,11 +4346,16 @@ add_pending_breakpoints (MonoMethod *method, MonoJitInfo *ji)
                }
 
                if (!found) {
+                       MonoMethod *declaring = NULL;
+
+                       if (jmethod->is_inflated)
+                               declaring = mono_method_get_declaring_generic_method (jmethod);
+
                        jmethod = jinfo_get_method (ji);
                        mono_domain_lock (domain);
                        seq_points = g_hash_table_lookup (domain_jit_info (domain)->seq_points, jmethod);
-                       if (!seq_points && jmethod->is_inflated)
-                               seq_points = g_hash_table_lookup (domain_jit_info (domain)->seq_points, mono_method_get_declaring_generic_method (jmethod));
+                       if (!seq_points && declaring)
+                               seq_points = g_hash_table_lookup (domain_jit_info (domain)->seq_points, declaring);
                        mono_domain_unlock (domain);
                        if (!seq_points)
                                /* Could be AOT code */
@@ -4402,6 +4412,10 @@ set_breakpoint (MonoMethod *method, long il_offset, EventRequest *req, MonoError
        MonoDomain *domain;
        MonoMethod *m;
        MonoSeqPointInfo *seq_points;
+       GPtrArray *methods;
+       GPtrArray *method_domains;
+       GPtrArray *method_seq_points;
+       int i;
 
        if (error)
                mono_error_init (error);
@@ -4420,27 +4434,40 @@ set_breakpoint (MonoMethod *method, long il_offset, EventRequest *req, MonoError
 
        DEBUG_PRINTF (1, "[dbg] Setting %sbreakpoint at %s:0x%x.\n", (req->event_kind == EVENT_KIND_STEP) ? "single step " : "", method ? mono_method_full_name (method, TRUE) : "<all>", (int)il_offset);
 
-       mono_loader_lock ();
+       methods = g_ptr_array_new ();
+       method_domains = g_ptr_array_new ();
+       method_seq_points = g_ptr_array_new ();
 
+       mono_loader_lock ();
        g_hash_table_iter_init (&iter, domains);
        while (g_hash_table_iter_next (&iter, (void**)&domain, NULL)) {
                mono_domain_lock (domain);
-
                g_hash_table_iter_init (&iter2, domain_jit_info (domain)->seq_points);
                while (g_hash_table_iter_next (&iter2, (void**)&m, (void**)&seq_points)) {
-                       if (bp_matches_method (bp, m))
-                               set_bp_in_method (domain, m, seq_points, bp, error);
+                       if (bp_matches_method (bp, m)) {
+                               /* Save the info locally to simplify the code inside the domain lock */
+                               g_ptr_array_add (methods, m);
+                               g_ptr_array_add (method_domains, domain);
+                               g_ptr_array_add (method_seq_points, seq_points);
+                       }
                }
-
                mono_domain_unlock (domain);
        }
 
-       mono_loader_unlock ();
+       for (i = 0; i < methods->len; ++i) {
+               m = g_ptr_array_index (methods, i);
+               domain = g_ptr_array_index (method_domains, i);
+               seq_points = g_ptr_array_index (method_seq_points, i);
+               set_bp_in_method (domain, m, seq_points, bp, error);
+       }
 
-       mono_loader_lock ();
        g_ptr_array_add (breakpoints, bp);
        mono_loader_unlock ();
 
+       g_ptr_array_free (methods, TRUE);
+       g_ptr_array_free (method_domains, TRUE);
+       g_ptr_array_free (method_seq_points, TRUE);
+
        if (error && !mono_error_ok (error)) {
                clear_breakpoint (bp);
                return NULL;
@@ -4637,7 +4664,7 @@ process_breakpoint_inner (DebuggerTlsData *tls, gboolean from_signal)
 
        ip = MONO_CONTEXT_GET_IP (ctx);
        ji = mini_jit_info_table_find (mono_domain_get (), (char*)ip, NULL);
-       g_assert (ji);
+       g_assert (ji && !ji->is_trampoline);
        method = jinfo_get_method (ji);
 
        /* Compute the native offset of the breakpoint from the ip */
@@ -4669,7 +4696,7 @@ process_breakpoint_inner (DebuggerTlsData *tls, gboolean from_signal)
 
        g_assert (found_sp);
 
-       DEBUG_PRINTF (1, "[%p] Breakpoint hit, method=%s, ip=%p, offset=0x%x, sp il offset=0x%x.\n", (gpointer)GetCurrentThreadId (), method->name, ip, native_offset, sp.il_offset);
+       DEBUG_PRINTF (1, "[%p] Breakpoint hit, method=%s, ip=%p, [il=0x%x,native=0x%x].\n", (gpointer)GetCurrentThreadId (), method->name, ip, sp.il_offset, native_offset);
 
        bp = NULL;
        for (i = 0; i < breakpoints->len; ++i) {
@@ -4901,7 +4928,7 @@ process_single_step_inner (DebuggerTlsData *tls, gboolean from_signal)
        }
 
        ji = mini_jit_info_table_find (mono_domain_get (), (char*)ip, &domain);
-       g_assert (ji);
+       g_assert (ji && !ji->is_trampoline);
        method = jinfo_get_method (ji);
        g_assert (method);
 
@@ -5956,7 +5983,8 @@ decode_value_internal (MonoType *t, int type, MonoDomain *domain, guint8 *addr,
                !(t->type == MONO_TYPE_I && type == MONO_TYPE_VALUETYPE) &&
                !(t->type == MONO_TYPE_U && type == MONO_TYPE_VALUETYPE) &&
                !(t->type == MONO_TYPE_PTR && type == MONO_TYPE_I8) &&
-               !(t->type == MONO_TYPE_GENERICINST && type == MONO_TYPE_VALUETYPE)) {
+               !(t->type == MONO_TYPE_GENERICINST && type == MONO_TYPE_VALUETYPE) &&
+               !(t->type == MONO_TYPE_VALUETYPE && type == MONO_TYPE_OBJECT)) {
                char *name = mono_type_full_name (t);
                DEBUG_PRINTF (1, "[%p] Expected value of type %s, got 0x%0x.\n", (gpointer)GetCurrentThreadId (), name, type);
                g_free (name);
@@ -6020,9 +6048,27 @@ decode_value_internal (MonoType *t, int type, MonoDomain *domain, guint8 *addr,
                /* Fall through */
                handle_vtype:
        case MONO_TYPE_VALUETYPE:
-               err = decode_vtype (t, domain, addr,buf, &buf, limit);
-               if (err)
-                       return err;
+               if (type == MONO_TYPE_OBJECT) {
+                       /* Boxed vtype */
+                       int objid = decode_objid (buf, &buf, limit);
+                       int err;
+                       MonoObject *obj;
+
+                       err = get_object (objid, (MonoObject**)&obj);
+                       if (err)
+                               return err;
+                       if (!obj)
+                               return ERR_INVALID_ARGUMENT;
+                       if (obj->vtable->klass != mono_class_from_mono_type (t)) {
+                               DEBUG_PRINTF (1, "Expected type '%s', got object '%s'\n", mono_type_full_name (t), obj->vtable->klass->name);
+                               return ERR_INVALID_ARGUMENT;
+                       }
+                       memcpy (addr, mono_object_unbox (obj), mono_class_value_size (obj->vtable->klass, NULL));
+               } else {
+                       err = decode_vtype (t, domain, addr, buf, &buf, limit);
+                       if (err)
+                               return err;
+               }
                break;
        handle_ref:
        default:
@@ -6459,8 +6505,9 @@ clear_types_for_assembly (MonoAssembly *assembly)
                /* Can happen during shutdown */
                return;
 
-       mono_loader_lock ();
        info = get_agent_domain_info (domain);
+
+       mono_loader_lock ();
        g_hash_table_foreach_remove (info->loaded_classes, type_comes_from_assembly, assembly);
        mono_loader_unlock ();
 }
@@ -6483,7 +6530,7 @@ do_invoke_method (DebuggerTlsData *tls, Buffer *buf, InvokeData *invoke, guint8
        MonoMethodSignature *sig;
        guint8 **arg_buf;
        void **args;
-       MonoObject *this, *res, *exc;
+       MonoObject *this_arg, *res, *exc;
        MonoDomain *domain;
        guint8 *this_buf;
 #ifdef MONO_ARCH_SOFT_DEBUG_SUPPORTED
@@ -6495,8 +6542,8 @@ do_invoke_method (DebuggerTlsData *tls, Buffer *buf, InvokeData *invoke, guint8
                /* 
                 * Invoke this method directly, currently only Environment.Exit () is supported.
                 */
-               this = NULL;
-               DEBUG_PRINTF (1, "[%p] Invoking method '%s' on receiver '%s'.\n", (gpointer)GetCurrentThreadId (), mono_method_full_name (invoke->method, TRUE), this ? this->vtable->klass->name : "<null>");
+               this_arg = NULL;
+               DEBUG_PRINTF (1, "[%p] Invoking method '%s' on receiver '%s'.\n", (gpointer)GetCurrentThreadId (), mono_method_full_name (invoke->method, TRUE), this_arg ? this_arg->vtable->klass->name : "<null>");
                mono_runtime_invoke (invoke->method, NULL, invoke->args, &exc);
                g_assert_not_reached ();
        }
@@ -6518,6 +6565,19 @@ do_invoke_method (DebuggerTlsData *tls, Buffer *buf, InvokeData *invoke, guint8
                        return ERR_INVALID_ARGUMENT;
                }
                memset (this_buf, 0, mono_class_instance_size (m->klass));
+       } else if (m->klass->valuetype && !strcmp (m->name, ".ctor")) {
+                       /* Could be null */
+                       guint8 *tmp_p;
+
+                       int type = decode_byte (p, &tmp_p, end);
+                       if (type == VALUE_TYPE_ID_NULL) {
+                               memset (this_buf, 0, mono_class_instance_size (m->klass));
+                               p = tmp_p;
+                       } else {
+                               err = decode_value (&m->klass->byval_arg, domain, this_buf, p, &p, end);
+                               if (err)
+                                       return err;
+                       }
        } else {
                err = decode_value (&m->klass->byval_arg, domain, this_buf, p, &p, end);
                if (err)
@@ -6525,50 +6585,50 @@ do_invoke_method (DebuggerTlsData *tls, Buffer *buf, InvokeData *invoke, guint8
        }
 
        if (!m->klass->valuetype)
-               this = *(MonoObject**)this_buf;
+               this_arg = *(MonoObject**)this_buf;
        else
-               this = NULL;
+               this_arg = NULL;
 
        if (MONO_CLASS_IS_INTERFACE (m->klass)) {
-               if (!this) {
+               if (!this_arg) {
                        DEBUG_PRINTF (1, "[%p] Error: Interface method invoked without this argument.\n", (gpointer)GetCurrentThreadId ());
                        return ERR_INVALID_ARGUMENT;
                }
-               m = mono_object_get_virtual_method (this, m);
+               m = mono_object_get_virtual_method (this_arg, m);
                /* Transform this to the format the rest of the code expects it to be */
                if (m->klass->valuetype) {
                        this_buf = g_alloca (mono_class_instance_size (m->klass));
-                       memcpy (this_buf, mono_object_unbox (this), mono_class_instance_size (m->klass));
+                       memcpy (this_buf, mono_object_unbox (this_arg), mono_class_instance_size (m->klass));
                }
        } else if ((m->flags & METHOD_ATTRIBUTE_VIRTUAL) && !m->klass->valuetype && invoke->flags & INVOKE_FLAG_VIRTUAL) {
-               if (!this) {
+               if (!this_arg) {
                        DEBUG_PRINTF (1, "[%p] Error: invoke with INVOKE_FLAG_VIRTUAL flag set without this argument.\n", (gpointer)GetCurrentThreadId ());
                        return ERR_INVALID_ARGUMENT;
                }
-               m = mono_object_get_virtual_method (this, m);
+               m = mono_object_get_virtual_method (this_arg, m);
                if (m->klass->valuetype) {
                        this_buf = g_alloca (mono_class_instance_size (m->klass));
-                       memcpy (this_buf, mono_object_unbox (this), mono_class_instance_size (m->klass));
+                       memcpy (this_buf, mono_object_unbox (this_arg), mono_class_instance_size (m->klass));
                }
        }
 
-       DEBUG_PRINTF (1, "[%p] Invoking method '%s' on receiver '%s'.\n", (gpointer)GetCurrentThreadId (), mono_method_full_name (m, TRUE), this ? this->vtable->klass->name : "<null>");
+       DEBUG_PRINTF (1, "[%p] Invoking method '%s' on receiver '%s'.\n", (gpointer)GetCurrentThreadId (), mono_method_full_name (m, TRUE), this_arg ? this_arg->vtable->klass->name : "<null>");
 
-       if (this && this->vtable->domain != domain)
+       if (this_arg && this_arg->vtable->domain != domain)
                NOT_IMPLEMENTED;
 
-       if (!m->klass->valuetype && !(m->flags & METHOD_ATTRIBUTE_STATIC) && !this) {
+       if (!m->klass->valuetype && !(m->flags & METHOD_ATTRIBUTE_STATIC) && !this_arg) {
                if (!strcmp (m->name, ".ctor")) {
                        if (m->klass->flags & TYPE_ATTRIBUTE_ABSTRACT)
                                return ERR_INVALID_ARGUMENT;
                        else
-                               this = mono_object_new (domain, m->klass);
+                               this_arg = mono_object_new (domain, m->klass);
                } else {
                        return ERR_INVALID_ARGUMENT;
                }
        }
 
-       if (this && !obj_is_of_type (this, &m->klass->byval_arg))
+       if (this_arg && !obj_is_of_type (this_arg, &m->klass->byval_arg))
                return ERR_INVALID_ARGUMENT;
 
        nargs = decode_int (p, &p, end);
@@ -6632,7 +6692,7 @@ do_invoke_method (DebuggerTlsData *tls, Buffer *buf, InvokeData *invoke, guint8
        if (m->klass->valuetype)
                res = mono_runtime_invoke (m, this_buf, args, &exc);
        else
-               res = mono_runtime_invoke (m, this, args, &exc);
+               res = mono_runtime_invoke (m, this_arg, args, &exc);
        mono_stopwatch_stop (&watch);
        DEBUG_PRINTF (1, "[%p] Invoke result: %p, exc: %s, time: %ld ms.\n", (gpointer)GetCurrentThreadId (), res, exc ? exc->vtable->klass->name : NULL, (long)mono_stopwatch_elapsed_ms (&watch));
        if (exc) {
@@ -6648,11 +6708,14 @@ do_invoke_method (DebuggerTlsData *tls, Buffer *buf, InvokeData *invoke, guint8
                        out_args = TRUE;
                buffer_add_byte (buf, 1 + (out_this ? 2 : 0) + (out_args ? 4 : 0));
                if (sig->ret->type == MONO_TYPE_VOID) {
-                       if (!strcmp (m->name, ".ctor") && !m->klass->valuetype) {
-                               buffer_add_value (buf, &mono_defaults.object_class->byval_arg, &this, domain);
-                       }
-                       else
+                       if (!strcmp (m->name, ".ctor")) {
+                               if (!m->klass->valuetype)
+                                       buffer_add_value (buf, &mono_defaults.object_class->byval_arg, &this_arg, domain);
+                               else
+                                       buffer_add_value (buf, &m->klass->byval_arg, this_buf, domain);
+                       } else {
                                buffer_add_value (buf, &mono_defaults.void_class->byval_arg, NULL, domain);
+                       }
                } else if (MONO_TYPE_IS_REFERENCE (sig->ret)) {
                        buffer_add_value (buf, sig->ret, &res, domain);
                } else if (mono_class_from_mono_type (sig->ret)->valuetype || sig->ret->type == MONO_TYPE_PTR || sig->ret->type == MONO_TYPE_FNPTR) {
@@ -9192,6 +9255,14 @@ object_commands (int command, guint8 *p, guint8 *end, Buffer *buf)
        if (err)
                return err;
 
+       MonoClass *obj_type;
+
+       obj_type = obj->vtable->klass;
+       if (mono_class_is_transparent_proxy (obj_type))
+               obj_type = ((MonoTransparentProxy *)obj)->remote_class->proxy_class;
+
+       g_assert (obj_type);
+
        switch (command) {
        case CMD_OBJECT_REF_GET_TYPE:
                /* This handles transparent proxies too */
@@ -9207,7 +9278,7 @@ object_commands (int command, guint8 *p, guint8 *end, Buffer *buf)
 
                        /* Check that the field belongs to the object */
                        found = FALSE;
-                       for (k = obj->vtable->klass; k; k = k->parent) {
+                       for (k = obj_type; k; k = k->parent) {
                                if (k == f->parent) {
                                        found = TRUE;
                                        break;
@@ -9244,7 +9315,7 @@ object_commands (int command, guint8 *p, guint8 *end, Buffer *buf)
 
                        /* Check that the field belongs to the object */
                        found = FALSE;
-                       for (k = obj->vtable->klass; k; k = k->parent) {
+                       for (k = obj_type; k; k = k->parent) {
                                if (k == f->parent) {
                                        found = TRUE;
                                        break;
@@ -9536,9 +9607,9 @@ wait_for_attach (void)
        }
 
        /* Block and wait for client connection */
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        conn_fd = socket_transport_accept (listen_fd);
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        DEBUG_PRINTF (1, "Accepted connection on %d\n", conn_fd);
        if (conn_fd == -1) {
@@ -9597,9 +9668,9 @@ debugger_thread (void *arg)
        }
        
        while (!attach_failed) {
-               MONO_PREPARE_BLOCKING
+               MONO_PREPARE_BLOCKING;
                res = transport_recv (header, HEADER_LENGTH);
-               MONO_FINISH_BLOCKING
+               MONO_FINISH_BLOCKING;
 
                /* This will break if the socket is closed during shutdown too */
                if (res != HEADER_LENGTH) {
@@ -9634,9 +9705,9 @@ debugger_thread (void *arg)
                data = g_malloc (len - HEADER_LENGTH);
                if (len - HEADER_LENGTH > 0)
                {
-                       MONO_PREPARE_BLOCKING
+                       MONO_PREPARE_BLOCKING;
                        res = transport_recv (data, len - HEADER_LENGTH);
-                       MONO_FINISH_BLOCKING
+                       MONO_FINISH_BLOCKING;
                        if (res != len - HEADER_LENGTH) {
                                DEBUG_PRINTF (1, "[dbg] transport_recv () returned %d, expected %d.\n", res, len - HEADER_LENGTH);
                                break;
@@ -9726,12 +9797,12 @@ debugger_thread (void *arg)
 
        mono_set_is_debugger_attached (FALSE);
        
-       MONO_TRY_BLOCKING
+       MONO_TRY_BLOCKING;
        mono_mutex_lock (&debugger_thread_exited_mutex);
        debugger_thread_exited = TRUE;
        mono_cond_signal (&debugger_thread_exited_cond);
        mono_mutex_unlock (&debugger_thread_exited_mutex);
-       MONO_FINISH_TRY_BLOCKING
+       MONO_FINISH_TRY_BLOCKING;
 
        DEBUG_PRINTF (1, "[dbg] Debugger thread exited.\n");
        
index 25dd97da870ef5c821a31e1b0c15a3c3dc6aa438..5a2fdde7d91e0ebf1740c32a3cb8e5fc5b40a398 100644 (file)
@@ -299,7 +299,7 @@ decompose_long_opcode (MonoCompile *cfg, MonoInst *ins, MonoInst **repl_ins)
  * Sets the cfg exception if an opcode is not supported.
  */
 MonoInst*
-mono_decompose_opcode (MonoCompile *cfg, MonoInst *ins, MonoBasicBlock **out_cbb)
+mono_decompose_opcode (MonoCompile *cfg, MonoInst *ins)
 {
        MonoInst *repl = NULL;
        int type = ins->type;
@@ -556,7 +556,7 @@ mono_decompose_opcode (MonoCompile *cfg, MonoInst *ins, MonoBasicBlock **out_cbb
                                }
                        }
 
-                       call = mono_emit_jit_icall_by_info (cfg, info, args, out_cbb);
+                       call = mono_emit_jit_icall_by_info (cfg, info, args);
                        call->dreg = ins->dreg;
 
                        NULLIFY_INS (ins);
index eed837619ff1c635823d83824687031459c4389c..884d4a82ae9b88e5ab0a4f5fafe79e0f5d58f28b 100644 (file)
@@ -145,10 +145,8 @@ extern char *nacl_mono_path;
 #define EXCLUDED_FROM_ALL (MONO_OPT_SHARED | MONO_OPT_PRECOMP | MONO_OPT_UNSAFE | MONO_OPT_GSHAREDVT | MONO_OPT_FLOAT32)
 
 static guint32
-parse_optimizations (const char* p)
+parse_optimizations (guint32 opt, const char* p)
 {
-       /* the default value */
-       guint32 opt = DEFAULT_OPTIMIZATIONS;
        guint32 exclude = 0;
        const char *n;
        int i, invert, len;
@@ -284,7 +282,7 @@ mono_parse_default_optimizations (const char* p)
 {
        guint32 opt;
 
-       opt = parse_optimizations (p);
+       opt = parse_optimizations (DEFAULT_OPTIMIZATIONS, p);
        return opt;
 }
 
@@ -386,7 +384,7 @@ mini_regression_step (MonoImage *image, int verbose, int *total_run, int *total,
                        run++;
                        start_time = g_timer_elapsed (timer, NULL);
                        comp_time -= start_time;
-                       cfg = mini_method_compile (method, mono_get_optimizations_for_method (method, opt_flags), mono_get_root_domain (), JIT_FLAG_RUN_CCTORS, 0);
+                       cfg = mini_method_compile (method, mono_get_optimizations_for_method (method, opt_flags), mono_get_root_domain (), JIT_FLAG_RUN_CCTORS, 0, -1);
                        comp_time += g_timer_elapsed (timer, NULL);
                        if (cfg->exception_type == MONO_EXCEPTION_NONE) {
                                if (verbose >= 2)
@@ -934,7 +932,7 @@ compile_all_methods_thread_main_inner (CompileAllThreadArgs *args)
                        g_print ("Compiling %d %s\n", count, desc);
                        g_free (desc);
                }
-               cfg = mini_method_compile (method, mono_get_optimizations_for_method (method, args->opts), mono_get_root_domain (), 0, 0);
+               cfg = mini_method_compile (method, mono_get_optimizations_for_method (method, args->opts), mono_get_root_domain (), 0, 0, -1);
                if (cfg->exception_type != MONO_EXCEPTION_NONE) {
                        printf ("Compilation of %s failed with exception '%s':\n", mono_method_full_name (cfg->method, TRUE), cfg->exception_message);
                        fail_count ++;
@@ -1342,12 +1340,15 @@ mono_jit_parse_options (int argc, char * argv[])
        int i;
        char *trace_options = NULL;
        int mini_verbose = 0;
+       guint32 opt;
 
        /* 
         * Some options have no effect here, since they influence the behavior of 
         * mono_main ().
         */
 
+       opt = mono_parse_default_optimizations (NULL);
+
        /* FIXME: Avoid code duplication */
        for (i = 0; i < argc; ++i) {
                if (argv [i] [0] != '-')
@@ -1364,10 +1365,10 @@ mono_jit_parse_options (int argc, char * argv[])
                        opt->soft_breakpoints = TRUE;
                        opt->explicit_null_checks = TRUE;
                } else if (strncmp (argv [i], "--optimize=", 11) == 0) {
-                       guint32 opt = parse_optimizations (argv [i] + 11);
+                       opt = parse_optimizations (opt, argv [i] + 11);
                        mono_set_optimizations (opt);
                } else if (strncmp (argv [i], "-O=", 3) == 0) {
-                       guint32 opt = parse_optimizations (argv [i] + 3);
+                       opt = parse_optimizations (opt, argv [i] + 3);
                        mono_set_optimizations (opt);
                } else if (strcmp (argv [i], "--trace") == 0) {
                        trace_options = (char*)"";
@@ -1519,7 +1520,7 @@ mono_main (int argc, char* argv[])
        g_log_set_always_fatal (G_LOG_LEVEL_ERROR);
        g_log_set_fatal_mask (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR);
 
-       opt = parse_optimizations (NULL);
+       opt = mono_parse_default_optimizations (NULL);
 
        for (i = 1; i < argc; ++i) {
                if (argv [i] [0] != '-')
@@ -1529,7 +1530,7 @@ mono_main (int argc, char* argv[])
                } else if (strncmp (argv [i], "--single-method=", 16) == 0) {
                        char *full_opts = g_strdup_printf ("-all,%s", argv [i] + 16);
                        action = DO_SINGLE_METHOD_REGRESSION;
-                       mono_single_method_regression_opt = parse_optimizations (full_opts);
+                       mono_single_method_regression_opt = parse_optimizations (opt, full_opts);
                        g_free (full_opts);
                } else if (strcmp (argv [i], "--verbose") == 0 || strcmp (argv [i], "-v") == 0) {
                        mini_verbose++;
@@ -1579,9 +1580,9 @@ mono_main (int argc, char* argv[])
                        }
                        mini_stats_fd = fopen (argv [++i], "w+");
                } else if (strncmp (argv [i], "--optimize=", 11) == 0) {
-                       opt = parse_optimizations (argv [i] + 11);
+                       opt = parse_optimizations (opt, argv [i] + 11);
                } else if (strncmp (argv [i], "-O=", 3) == 0) {
-                       opt = parse_optimizations (argv [i] + 3);
+                       opt = parse_optimizations (opt, argv [i] + 3);
                } else if (strcmp (argv [i], "--gc=sgen") == 0) {
                        switch_gc (argv, "sgen");
                } else if (strcmp (argv [i], "--gc=boehm") == 0) {
@@ -2065,10 +2066,10 @@ mono_main (int argc, char* argv[])
                        (method->flags & METHOD_ATTRIBUTE_PINVOKE_IMPL)) {
                        MonoMethod *nm;
                        nm = mono_marshal_get_native_wrapper (method, TRUE, FALSE);
-                       cfg = mini_method_compile (nm, opt, mono_get_root_domain (), 0, part);
+                       cfg = mini_method_compile (nm, opt, mono_get_root_domain (), 0, part, -1);
                }
                else
-                       cfg = mini_method_compile (method, opt, mono_get_root_domain (), 0, part);
+                       cfg = mini_method_compile (method, opt, mono_get_root_domain (), 0, part, -1);
                if ((mono_graph_options & MONO_GRAPH_CFG_SSA) && !(cfg->comp_done & MONO_COMP_SSA)) {
                        g_warning ("no SSA info available (use -O=deadce)");
                        return 1;
@@ -2100,7 +2101,7 @@ mono_main (int argc, char* argv[])
                                opt = opt_sets [i];
                                g_timer_start (timer);
                                for (j = 0; j < count; ++j) {
-                                       cfg = mini_method_compile (method, opt, mono_get_root_domain (), 0, 0);
+                                       cfg = mini_method_compile (method, opt, mono_get_root_domain (), 0, 0, -1);
                                        mono_destroy_compile (cfg);
                                }
                                g_timer_stop (timer);
@@ -2123,12 +2124,12 @@ mono_main (int argc, char* argv[])
                                        (method->flags & METHOD_ATTRIBUTE_PINVOKE_IMPL))
                                        method = mono_marshal_get_native_wrapper (method, TRUE, FALSE);
 
-                               cfg = mini_method_compile (method, opt, mono_get_root_domain (), 0, 0);
+                               cfg = mini_method_compile (method, opt, mono_get_root_domain (), 0, 0, -1);
                                mono_destroy_compile (cfg);
                        }
                }
        } else {
-               cfg = mini_method_compile (method, opt, mono_get_root_domain (), 0, 0);
+               cfg = mini_method_compile (method, opt, mono_get_root_domain (), 0, 0, -1);
                mono_destroy_compile (cfg);
        }
 #endif
index b2c99a04ad70c087e981883ff9ffaf24f3915cdb..fcbbe5bdc2636bfdda0036e1bc2d193f248acdf6 100644 (file)
@@ -407,7 +407,7 @@ emit_fde (MonoDwarfWriter *w, int fde_index, char *start_symbol, char *end_symbo
        }
 
        /* Convert the list of MonoUnwindOps to the format used by DWARF */     
-       uw_info = mono_unwind_ops_encode (l, &uw_info_len);
+       uw_info = mono_unwind_ops_encode_full (l, &uw_info_len, FALSE);
        emit_bytes (w, uw_info, uw_info_len);
        g_free (uw_info);
 
@@ -817,7 +817,9 @@ emit_all_line_number_info (MonoDwarfWriter *w)
                MethodLineNumberInfo *info = l->data;
                MonoDebugMethodJitInfo *dmji;
 
-               dmji = mono_debug_find_method (info->method, mono_domain_get ());;
+               dmji = mono_debug_find_method (info->method, mono_domain_get ());
+               if (!dmji)
+                       continue;
                emit_line_number_info (w, info->method, info->start_symbol, info->end_symbol, info->code, info->code_size, dmji);
                mono_debug_free_method_jit_info (dmji);
        }
@@ -1643,8 +1645,12 @@ emit_line_number_info (MonoDwarfWriter *w, MonoMethod *method,
                prev_il_offset = il_offset;
 
                loc = mono_debug_symfile_lookup_location (minfo, il_offset);
-               if (!(loc && loc->source_file))
+               if (!loc)
+                       continue;
+               if (!loc->source_file) {
+                       mono_debug_symfile_free_location (loc);
                        continue;
+               }
 
                line_diff = (gint32)loc->row - (gint32)prev_line;
                addr_diff = i - prev_native_offset;
@@ -1875,6 +1881,9 @@ mono_dwarf_writer_emit_method (MonoDwarfWriter *w, MonoCompile *cfg, MonoMethod
                int file_index = add_line_number_file_name (w, loc->source_file, 0, 0);
                emit_uleb128 (w, file_index + 1);
                emit_uleb128 (w, loc->row);
+
+               mono_debug_symfile_free_location (loc);
+               loc = NULL;
        } else {
                emit_uleb128 (w, 0);
                emit_uleb128 (w, 0);
index e93b9942285c8440a1de49f4b8a40e0137e2a661..4f7e336e6d2ee53f4ef524810ac7d667809d8723 100644 (file)
@@ -345,7 +345,7 @@ mono_amd64_throw_corlib_exception (guint64 dummy1, guint64 dummy2, guint64 dummy
        mono_amd64_throw_exception (dummy1, dummy2, dummy3, dummy4, dummy5, dummy6, mctx, (MonoObject*)ex, FALSE);
 }
 
-static void
+void
 mono_amd64_resume_unwind (guint64 dummy1, guint64 dummy2, guint64 dummy3, guint64 dummy4,
                                                  guint64 dummy5, guint64 dummy6,
                                                  MonoContext *mctx, guint32 dummy7, gint64 dummy8)
@@ -445,7 +445,15 @@ get_throw_trampoline (MonoTrampInfo **info, gboolean rethrow, gboolean corlib, g
        }
 
        if (aot) {
-               ji = mono_patch_info_list_prepend (ji, code - start, MONO_PATCH_INFO_JIT_ICALL_ADDR, corlib ? "mono_amd64_throw_corlib_exception" : "mono_amd64_throw_exception");
+               const char *icall_name;
+
+               if (resume_unwind)
+                       icall_name = "mono_amd64_resume_unwind";
+               else if (corlib)
+                       icall_name = "mono_amd64_throw_corlib_exception";
+               else
+                       icall_name = "mono_amd64_throw_exception";
+               ji = mono_patch_info_list_prepend (ji, code - start, MONO_PATCH_INFO_JIT_ICALL_ADDR, icall_name);
                amd64_mov_reg_membase (code, AMD64_R11, AMD64_RIP, 0, 8);
        } else {
                amd64_mov_reg_imm (code, AMD64_R11, resume_unwind ? ((gpointer)mono_amd64_resume_unwind) : (corlib ? (gpointer)mono_amd64_throw_corlib_exception : (gpointer)mono_amd64_throw_exception));
@@ -503,7 +511,7 @@ mono_arch_get_throw_corlib_exception (MonoTrampInfo **info, gboolean aot)
 }
 
 /*
- * mono_arch_find_jit_info:
+ * mono_arch_unwind_frame:
  *
  * This function is used to gather information from @ctx, and store it in @frame_info.
  * It unwinds one stack frame, and stores the resulting context into @new_ctx. @lmf
@@ -511,7 +519,7 @@ mono_arch_get_throw_corlib_exception (MonoTrampInfo **info, gboolean aot)
  * Returns TRUE on success, FALSE otherwise.
  */
 gboolean
-mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, 
+mono_arch_unwind_frame (MonoDomain *domain, MonoJitTlsData *jit_tls, 
                                                         MonoJitInfo *ji, MonoContext *ctx, 
                                                         MonoContext *new_ctx, MonoLMF **lmf,
                                                         mgreg_t **save_locations,
@@ -532,7 +540,10 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
                guint8 *unwind_info;
                guint8 *epilog = NULL;
 
-               frame->type = FRAME_TYPE_MANAGED;
+               if (ji->is_trampoline)
+                       frame->type = FRAME_TYPE_TRAMPOLINE;
+               else
+                       frame->type = FRAME_TYPE_MANAGED;
 
                unwind_info = mono_jinfo_get_unwind_info (ji, &unwind_info_len);
 
@@ -835,170 +846,12 @@ mono_amd64_get_original_ip (void)
        return lmf->rip;
 }
 
-gpointer
-mono_arch_get_throw_pending_exception (MonoTrampInfo **info, gboolean aot)
-{
-       guint8 *code, *start;
-       guint8 *br[1];
-       gpointer throw_trampoline;
-       MonoJumpInfo *ji = NULL;
-       GSList *unwind_ops = NULL;
-       const guint kMaxCodeSize = NACL_SIZE (128, 256);
-
-       start = code = mono_global_codeman_reserve (kMaxCodeSize);
-
-       /* We are in the frame of a managed method after a call */
-       /* 
-        * We would like to throw the pending exception in such a way that it looks to
-        * be thrown from the managed method.
-        */
-
-       /* Save registers which might contain the return value of the call */
-       amd64_push_reg (code, AMD64_RAX);
-       amd64_push_reg (code, AMD64_RDX);
-
-       amd64_alu_reg_imm (code, X86_SUB, AMD64_RSP, 8);
-       amd64_movsd_membase_reg (code, AMD64_RSP, 0, AMD64_XMM0);
-
-       /* Align stack */
-       amd64_alu_reg_imm (code, X86_SUB, AMD64_RSP, 8);
-
-       /* Obtain the pending exception */
-       if (aot) {
-               ji = mono_patch_info_list_prepend (ji, code - start, MONO_PATCH_INFO_JIT_ICALL_ADDR, "mono_thread_get_and_clear_pending_exception");
-               amd64_mov_reg_membase (code, AMD64_R11, AMD64_RIP, 0, 8);
-       } else {
-               amd64_mov_reg_imm (code, AMD64_R11, mono_thread_get_and_clear_pending_exception);
-       }
-       amd64_call_reg (code, AMD64_R11);
-
-       /* Check if it is NULL, and branch */
-       amd64_alu_reg_imm (code, X86_CMP, AMD64_RAX, 0);
-       br[0] = code; x86_branch8 (code, X86_CC_EQ, 0, FALSE);
-
-       /* exc != NULL branch */
-
-       /* Save the exc on the stack */
-       amd64_push_reg (code, AMD64_RAX);
-       /* Align stack */
-       amd64_alu_reg_imm (code, X86_SUB, AMD64_RSP, 8);
-
-       /* Obtain the original ip and clear the flag in previous_lmf */
-       if (aot) {
-               ji = mono_patch_info_list_prepend (ji, code - start, MONO_PATCH_INFO_JIT_ICALL_ADDR, "mono_amd64_get_original_ip");
-               amd64_mov_reg_membase (code, AMD64_R11, AMD64_RIP, 0, 8);
-       } else {
-               amd64_mov_reg_imm (code, AMD64_R11, mono_amd64_get_original_ip);
-       }
-       amd64_call_reg (code, AMD64_R11);       
-
-       /* Load exc */
-       amd64_mov_reg_membase (code, AMD64_R11, AMD64_RSP, 8, 8);
-
-       /* Pop saved stuff from the stack */
-       amd64_alu_reg_imm (code, X86_ADD, AMD64_RSP, 6 * 8);
-
-       /* Setup arguments for the throw trampoline */
-       /* Exception */
-       amd64_mov_reg_reg (code, AMD64_ARG_REG1, AMD64_R11, 8);
-       /* The trampoline expects the caller ip to be pushed on the stack */
-       amd64_push_reg (code, AMD64_RAX);
-
-       /* Call the throw trampoline */
-       if (aot) {
-               ji = mono_patch_info_list_prepend (ji, code - start, MONO_PATCH_INFO_JIT_ICALL_ADDR, "mono_throw_exception");
-               amd64_mov_reg_membase (code, AMD64_R11, AMD64_RIP, 0, 8);
-       } else {
-               throw_trampoline = mono_get_throw_exception ();
-               amd64_mov_reg_imm (code, AMD64_R11, throw_trampoline);
-       }
-       /* We use a jump instead of a call so we can push the original ip on the stack */
-       amd64_jump_reg (code, AMD64_R11);
-
-       /* ex == NULL branch */
-       mono_amd64_patch (br [0], code);
-
-       /* Obtain the original ip and clear the flag in previous_lmf */
-       if (aot) {
-               ji = mono_patch_info_list_prepend (ji, code - start, MONO_PATCH_INFO_JIT_ICALL_ADDR, "mono_amd64_get_original_ip");
-               amd64_mov_reg_membase (code, AMD64_R11, AMD64_RIP, 0, 8);
-       } else {
-               amd64_mov_reg_imm (code, AMD64_R11, mono_amd64_get_original_ip);
-       }
-       amd64_call_reg (code, AMD64_R11);       
-       amd64_mov_reg_reg (code, AMD64_R11, AMD64_RAX, 8);
-
-       /* Restore registers */
-       amd64_alu_reg_imm (code, X86_ADD, AMD64_RSP, 8);
-       amd64_movsd_reg_membase (code, AMD64_XMM0, AMD64_RSP, 0);
-       amd64_alu_reg_imm (code, X86_ADD, AMD64_RSP, 8);
-       amd64_pop_reg (code, AMD64_RDX);
-       amd64_pop_reg (code, AMD64_RAX);
-
-       /* Return to original code */
-       amd64_jump_reg (code, AMD64_R11);
-
-       g_assert ((code - start) < kMaxCodeSize);
-
-       nacl_global_codeman_validate(&start, kMaxCodeSize, &code);
-       mono_arch_flush_icache (start, code - start);
-       mono_profiler_code_buffer_new (start, code - start, MONO_PROFILER_CODE_BUFFER_EXCEPTION_HANDLING, NULL);
-
-       if (info)
-               *info = mono_tramp_info_create ("throw_pending_exception", start, code - start, ji, unwind_ops);
-
-       return start;
-}
-
-static gpointer throw_pending_exception;
-
-/*
- * Called when a thread receives an async exception while executing unmanaged code.
- * Instead of checking for this exception in the managed-to-native wrapper, we hijack 
- * the return address on the stack to point to a helper routine which throws the
- * exception.
- */
-void
-mono_arch_notify_pending_exc (MonoThreadInfo *info)
-{
-       MonoLMF *lmf = mono_get_lmf ();
-
-       if (!info) {
-               lmf = mono_get_lmf ();
-       } else {
-               g_assert (mono_thread_info_get_suspend_state (info)->valid);
-               lmf = mono_thread_info_get_suspend_state (info)->unwind_data [MONO_UNWIND_DATA_LMF];
-       }
-
-       if (!lmf)
-               /* Not yet started */
-               return;
-
-       if (lmf->rsp == 0)
-               /* Initial LMF */
-               return;
-
-       if ((guint64)lmf->previous_lmf & 5)
-               /* Already hijacked or trampoline LMF entry */
-               return;
-
-       /* lmf->rsp is set just before making the call which transitions to unmanaged code */
-       lmf->rip = *(guint64*)(lmf->rsp - 8);
-       /* Signal that lmf->rip is set */
-       lmf->previous_lmf = (gpointer)((guint64)lmf->previous_lmf | 1);
-
-       *(gpointer*)(lmf->rsp - 8) = throw_pending_exception;
-}
-
 GSList*
 mono_amd64_get_exception_trampolines (gboolean aot)
 {
        MonoTrampInfo *info;
        GSList *tramps = NULL;
 
-       mono_arch_get_throw_pending_exception (&info, aot);
-       tramps = g_slist_prepend (tramps, info);
-
        /* LLVM needs different throw trampolines */
        get_throw_trampoline (&info, FALSE, TRUE, FALSE, FALSE, "llvm_throw_corlib_exception_trampoline", aot);
        tramps = g_slist_prepend (tramps, info);
@@ -1006,7 +859,7 @@ mono_amd64_get_exception_trampolines (gboolean aot)
        get_throw_trampoline (&info, FALSE, TRUE, TRUE, FALSE, "llvm_throw_corlib_exception_abs_trampoline", aot);
        tramps = g_slist_prepend (tramps, info);
 
-       get_throw_trampoline (&info, FALSE, TRUE, TRUE, TRUE, "llvm_resume_unwind_trampoline", FALSE);
+       get_throw_trampoline (&info, FALSE, TRUE, TRUE, TRUE, "llvm_resume_unwind_trampoline", aot);
        tramps = g_slist_prepend (tramps, info);
 
        return tramps;
@@ -1019,7 +872,6 @@ mono_arch_exceptions_init (void)
        gpointer tramp;
 
        if (mono_aot_only) {
-               throw_pending_exception = mono_aot_get_trampoline ("throw_pending_exception");
                tramp = mono_aot_get_trampoline ("llvm_throw_corlib_exception_trampoline");
                mono_register_jit_icall (tramp, "llvm_throw_corlib_exception_trampoline", NULL, TRUE);
                tramp = mono_aot_get_trampoline ("llvm_throw_corlib_exception_abs_trampoline");
@@ -1028,14 +880,12 @@ mono_arch_exceptions_init (void)
                mono_register_jit_icall (tramp, "llvm_resume_unwind_trampoline", NULL, TRUE);
        } else {
                /* Call this to avoid initialization races */
-               throw_pending_exception = mono_arch_get_throw_pending_exception (NULL, FALSE);
-
                tramps = mono_amd64_get_exception_trampolines (FALSE);
                for (l = tramps; l; l = l->next) {
                        MonoTrampInfo *info = l->data;
 
                        mono_register_jit_icall (info->code, g_strdup (info->name), NULL, TRUE);
-                       mono_tramp_info_register (info);
+                       mono_tramp_info_register (info, NULL);
                }
                g_slist_free (tramps);
        }
index 091122262bb7cadcb4d300cda30b5e1915a09fa2..b478a713bc5e108ea30e7d59ed5e4a2f8c24a9c0 100644 (file)
@@ -376,19 +376,19 @@ mono_arch_exceptions_init (void)
                        MonoTrampInfo *info = l->data;
 
                        mono_register_jit_icall (info->code, g_strdup (info->name), NULL, TRUE);
-                       mono_tramp_info_register (info);
+                       mono_tramp_info_register (info, NULL);
                }
                g_slist_free (tramps);
        }
 }
 
 /* 
- * mono_arch_find_jit_info:
+ * mono_arch_unwind_frame:
  *
  * See exceptions-amd64.c for docs;
  */
 gboolean
-mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, 
+mono_arch_unwind_frame (MonoDomain *domain, MonoJitTlsData *jit_tls, 
                                                         MonoJitInfo *ji, MonoContext *ctx, 
                                                         MonoContext *new_ctx, MonoLMF **lmf,
                                                         mgreg_t **save_locations,
@@ -408,7 +408,10 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
                guint32 unwind_info_len;
                guint8 *unwind_info;
 
-               frame->type = FRAME_TYPE_MANAGED;
+               if (ji->is_trampoline)
+                       frame->type = FRAME_TYPE_TRAMPOLINE;
+               else
+                       frame->type = FRAME_TYPE_MANAGED;
 
                unwind_info = mono_jinfo_get_unwind_info (ji, &unwind_info_len);
 
index b8e1929e8cb951cb6b35672edc1729e9eeb8b224..b9299cbe4fd3181883a5bf90efa29e896e4f6328 100644 (file)
@@ -490,7 +490,7 @@ mono_arch_get_throw_corlib_exception (MonoTrampInfo **info, gboolean aot)
 }
 
 /*
- * mono_arch_find_jit_info:
+ * mono_arch_unwind_frame:
  *
  * This function is used to gather information from @ctx, and store it in @frame_info.
  * It unwinds one stack frame, and stores the resulting context into @new_ctx. @lmf
@@ -498,7 +498,7 @@ mono_arch_get_throw_corlib_exception (MonoTrampInfo **info, gboolean aot)
  * Returns TRUE on success, FALSE otherwise.
  */
 gboolean
-mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, 
+mono_arch_unwind_frame (MonoDomain *domain, MonoJitTlsData *jit_tls, 
                                                         MonoJitInfo *ji, MonoContext *ctx, 
                                                         MonoContext *new_ctx, MonoLMF **lmf,
                                                         mgreg_t **save_locations,
@@ -545,7 +545,10 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
        }
 
        if (ji) {
-               frame->type = FRAME_TYPE_MANAGED;
+               if (ji->is_trampoline)
+                       frame->type = FRAME_TYPE_TRAMPOLINE;
+               else
+                       frame->type = FRAME_TYPE_MANAGED;
                frame->ji = ji;
 
                //print_ctx (new_ctx);
index dfb4a57d3b9a3ff5418b7cb005b8f283ffbbd387..f8d9dedff2ce60e3e223f4189b57c5452a456c4d 100644 (file)
@@ -383,7 +383,7 @@ mono_arch_get_throw_corlib_exception (MonoTrampInfo **info, gboolean aot)
 }
 
 /*
- * mono_arch_find_jit_info:
+ * mono_arch_unwind_frame:
  *
  * This function is used to gather information from @ctx, and store it in @frame_info.
  * It unwinds one stack frame, and stores the resulting context into @new_ctx. @lmf
@@ -391,7 +391,7 @@ mono_arch_get_throw_corlib_exception (MonoTrampInfo **info, gboolean aot)
  * Returns TRUE on success, FALSE otherwise.
  */
 gboolean
-mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, 
+mono_arch_unwind_frame (MonoDomain *domain, MonoJitTlsData *jit_tls, 
                                                         MonoJitInfo *ji, MonoContext *ctx, 
                                                         MonoContext *new_ctx, MonoLMF **lmf, 
                                                         mgreg_t **save_locations,
@@ -410,7 +410,10 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
                guint32 unwind_info_len;
                guint8 *unwind_info;
 
-               frame->type = FRAME_TYPE_MANAGED;
+               if (ji->is_trampoline)
+                       frame->type = FRAME_TYPE_TRAMPOLINE;
+               else
+                       frame->type = FRAME_TYPE_MANAGED;
 
                unwind_info = mono_jinfo_get_unwind_info (ji, &unwind_info_len);
 
@@ -455,7 +458,7 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
 
                if (!(*lmf)->method) {
 #ifdef DEBUG_EXCEPTIONS
-                       g_print ("mono_arch_find_jit_info: bad lmf @ %p\n", (void *) *lmf);
+                       g_print ("mono_arch_unwind_frame: bad lmf @ %p\n", (void *) *lmf);
 #endif
                        return FALSE;
                }
index b7c2e8d3a174503e4831a989da37122d80c1c79d..e872d1336924448ed4bc993352b9744b18551c01 100644 (file)
@@ -505,12 +505,12 @@ mono_arch_get_throw_corlib_exception (MonoTrampInfo **info, gboolean aot)
 }
 
 /*
- * mono_arch_find_jit_info:
+ * mono_arch_unwind_frame:
  *
  * See exceptions-amd64.c for docs.
  */
 gboolean
-mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, 
+mono_arch_unwind_frame (MonoDomain *domain, MonoJitTlsData *jit_tls, 
                                                         MonoJitInfo *ji, MonoContext *ctx, 
                                                         MonoContext *new_ctx, MonoLMF **lmf,
                                                         mgreg_t **save_locations,
@@ -532,13 +532,16 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
                guint32 unwind_info_len;
                guint8 *unwind_info;
 
-               frame->type = FRAME_TYPE_MANAGED;
+               if (ji->is_trampoline)
+                       frame->type = FRAME_TYPE_TRAMPOLINE;
+               else
+                       frame->type = FRAME_TYPE_MANAGED;
 
                unwind_info = mono_jinfo_get_unwind_info (ji, &unwind_info_len);
 
                sframe = (MonoPPCStackFrame*)MONO_CONTEXT_GET_SP (ctx);
                MONO_CONTEXT_SET_BP (new_ctx, sframe->sp);
-               if (jinfo_get_method (ji)->save_lmf) {
+               if (!ji->is_trampoline && jinfo_get_method (ji)->save_lmf) {
                        /* sframe->sp points just past the end of the LMF */
                        guint8 *lmf_addr = (guint8*)sframe->sp - sizeof (MonoLMF);
                        memcpy (&new_ctx->fregs, lmf_addr + G_STRUCT_OFFSET (MonoLMF, fregs), sizeof (double) * MONO_SAVED_FREGS);
@@ -653,7 +656,7 @@ mono_arch_handle_altstack_exception (void *sigctx, MONO_SIG_HANDLER_INFO_TYPE *s
                const char *method;
                /* we don't do much now, but we can warn the user with a useful message */
                fprintf (stderr, "Stack overflow: IP: %p, SP: %p\n", mono_arch_ip_from_context (sigctx), (gpointer)UCONTEXT_REG_Rn(uc, 1));
-               if (ji && jinfo_get_method (ji))
+               if (ji && !ji->is_trampoline && jinfo_get_method (ji))
                        method = mono_method_full_name (jinfo_get_method (ji), TRUE);
                else
                        method = "Unmanaged";
index 85961685e67989e0f5847739f921aba419bb8f2a..83d5f6b1368771d1509397f61ba852a7f51541d7 100644 (file)
@@ -451,14 +451,14 @@ mono_arch_get_throw_corlib_exception (MonoTrampInfo **info, gboolean aot)
 
 /*------------------------------------------------------------------*/
 /*                                                                  */
-/* Name                - mono_arch_find_jit_info                           */
+/* Name                - mono_arch_unwind_frame                           */
 /*                                                                  */
 /* Function    - See exceptions-amd64.c for docs.                  */
 /*                                                                  */
 /*------------------------------------------------------------------*/
 
 gboolean
-mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, 
+mono_arch_unwind_frame (MonoDomain *domain, MonoJitTlsData *jit_tls, 
                         MonoJitInfo *ji, MonoContext *ctx, 
                         MonoContext *new_ctx, MonoLMF **lmf,
                         mgreg_t **save_locations,
@@ -478,7 +478,10 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
                guint8 *unwind_info;
                mgreg_t regs[16];
 
-               frame->type = FRAME_TYPE_MANAGED;
+               if (ji->is_trampoline)
+                       frame->type = FRAME_TYPE_TRAMPOLINE;
+               else
+                       frame->type = FRAME_TYPE_MANAGED;
 
                unwind_info = mono_jinfo_get_unwind_info (ji, &unwind_info_len);
 
index 52a93ac1f13f925b20c3bb1961fe255c2e8071b3..b3b5633597644d39ff345274d0fc4f2749b21d66 100644 (file)
@@ -326,7 +326,7 @@ mono_arch_get_throw_corlib_exception (MonoTrampInfo **info, gboolean aot)
        return start;
 }
 
-/* mono_arch_find_jit_info:
+/* mono_arch_unwind_frame:
  *
  * This function is used to gather information from @ctx. It return the 
  * MonoJitInfo of the corresponding function, unwinds one stack frame and
@@ -336,7 +336,7 @@ mono_arch_get_throw_corlib_exception (MonoTrampInfo **info, gboolean aot)
  * start of the function or -1 if that info is not available.
  */
 gboolean
-mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, 
+mono_arch_unwind_frame (MonoDomain *domain, MonoJitTlsData *jit_tls, 
                                                         MonoJitInfo *ji, MonoContext *ctx, 
                                                         MonoContext *new_ctx, MonoLMF **lmf,
                                                         mgreg_t **save_locations,
@@ -350,7 +350,10 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
        *new_ctx = *ctx;
 
        if (ji != NULL) {
-               frame->type = FRAME_TYPE_MANAGED;
+               if (ji->is_trampoline)
+                       frame->type = FRAME_TYPE_TRAMPOLINE;
+               else
+                       frame->type = FRAME_TYPE_MANAGED;
 
                /* Restore ip and sp from the saved register window */
                window = MONO_SPARC_WINDOW_ADDR (ctx->sp);
index 2a4aae744e1fce2678c83e74d4c3d1f47d89c76d..3db25ca7f810f8ab363fe926b3a75c355c3e10da 100644 (file)
@@ -163,7 +163,7 @@ win32_handle_stack_overflow (EXCEPTION_POINTERS* ep, struct sigcontext *sctx)
        do {
                MonoContext new_ctx;
 
-               mono_arch_find_jit_info (domain, jit_tls, &rji, &ctx, &new_ctx, &lmf, NULL, &frame);
+               mono_arch_unwind_frame (domain, jit_tls, &rji, &ctx, &new_ctx, &lmf, NULL, &frame);
                if (!frame.ji) {
                        g_warning ("Exception inside function without unwind info");
                        g_assert_not_reached ();
@@ -564,8 +564,7 @@ get_throw_trampoline (const char *name, gboolean rethrow, gboolean llvm, gboolea
         * <return addr> <- esp (unaligned on apple)
         */
 
-       mono_add_unwind_op_def_cfa (unwind_ops, (guint8*)NULL, (guint8*)NULL, X86_ESP, 4);
-       mono_add_unwind_op_offset (unwind_ops, (guint8*)NULL, (guint8*)NULL, X86_NREG, -4);
+       unwind_ops = mono_arch_get_cie_program ();
 
        /* Alloc frame */
        x86_alu_reg_imm (code, X86_SUB, X86_ESP, stack_size);
@@ -717,6 +716,7 @@ void
 mono_arch_exceptions_init (void)
 {
        guint8 *tramp;
+       MonoTrampInfo *tinfo;
 
 /* 
  * If we're running WoW64, we need to set the usermode exception policy 
@@ -745,31 +745,37 @@ mono_arch_exceptions_init (void)
        }
 
        /* LLVM needs different throw trampolines */
-       tramp = get_throw_trampoline ("llvm_throw_exception_trampoline", FALSE, TRUE, FALSE, FALSE, FALSE, NULL, FALSE);
+       tramp = get_throw_trampoline ("llvm_throw_exception_trampoline", FALSE, TRUE, FALSE, FALSE, FALSE, &tinfo, FALSE);
        mono_register_jit_icall (tramp, "llvm_throw_exception_trampoline", NULL, TRUE);
+       mono_tramp_info_register (tinfo, NULL);
 
-       tramp = get_throw_trampoline ("llvm_rethrow_exception_trampoline", TRUE, TRUE, FALSE, FALSE, FALSE, NULL, FALSE);
+       tramp = get_throw_trampoline ("llvm_rethrow_exception_trampoline", TRUE, TRUE, FALSE, FALSE, FALSE, &tinfo, FALSE);
        mono_register_jit_icall (tramp, "llvm_rethrow_exception_trampoline", NULL, TRUE);
+       mono_tramp_info_register (tinfo, NULL);
 
-       tramp = get_throw_trampoline ("llvm_throw_corlib_exception_trampoline", FALSE, TRUE, TRUE, FALSE, FALSE, NULL, FALSE);
+       tramp = get_throw_trampoline ("llvm_throw_corlib_exception_trampoline", FALSE, TRUE, TRUE, FALSE, FALSE, &tinfo, FALSE);
        mono_register_jit_icall (tramp, "llvm_throw_corlib_exception_trampoline", NULL, TRUE);
+       mono_tramp_info_register (tinfo, NULL);
 
-       tramp = get_throw_trampoline ("llvm_throw_corlib_exception_abs_trampoline", FALSE, TRUE, TRUE, TRUE, FALSE, NULL, FALSE);
+       tramp = get_throw_trampoline ("llvm_throw_corlib_exception_abs_trampoline", FALSE, TRUE, TRUE, TRUE, FALSE, &tinfo, FALSE);
        mono_register_jit_icall (tramp, "llvm_throw_corlib_exception_abs_trampoline", NULL, TRUE);
+       mono_tramp_info_register (tinfo, NULL);
 
-       tramp = get_throw_trampoline ("llvm_resume_unwind_trampoline", FALSE, FALSE, FALSE, FALSE, TRUE, NULL, FALSE);
+       tramp = get_throw_trampoline ("llvm_resume_unwind_trampoline", FALSE, FALSE, FALSE, FALSE, TRUE, &tinfo, FALSE);
        mono_register_jit_icall (tramp, "llvm_resume_unwind_trampoline", NULL, TRUE);
+       mono_tramp_info_register (tinfo, NULL);
 
-       signal_exception_trampoline = mono_x86_get_signal_exception_trampoline (NULL, FALSE);
+       signal_exception_trampoline = mono_x86_get_signal_exception_trampoline (&tinfo, FALSE);
+       mono_tramp_info_register (tinfo, NULL);
 }
 
 /*
- * mono_arch_find_jit_info:
+ * mono_arch_unwind_frame:
  *
  * See exceptions-amd64.c for docs.
  */
 gboolean
-mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, 
+mono_arch_unwind_frame (MonoDomain *domain, MonoJitTlsData *jit_tls, 
                                                         MonoJitInfo *ji, MonoContext *ctx, 
                                                         MonoContext *new_ctx, MonoLMF **lmf,
                                                         mgreg_t **save_locations,
@@ -788,7 +794,10 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
                guint32 unwind_info_len;
                guint8 *unwind_info;
 
-               frame->type = FRAME_TYPE_MANAGED;
+               if (ji->is_trampoline)
+                       frame->type = FRAME_TYPE_TRAMPOLINE;
+               else
+                       frame->type = FRAME_TYPE_MANAGED;
 
                unwind_info = mono_jinfo_get_unwind_info (ji, &unwind_info_len);
 
@@ -884,7 +893,7 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
 gpointer
 mono_arch_ip_from_context (void *sigctx)
 {
-#if defined(__native_client__)
+#if defined(__native_client__) || defined(HOST_WATCHOS)
        printf("WARNING: mono_arch_ip_from_context() called!\n");
        return (NULL);
 #elif defined(MONO_ARCH_USE_SIGACTION)
@@ -931,11 +940,12 @@ mono_x86_get_signal_exception_trampoline (MonoTrampInfo **info, gboolean aot)
 
        start = code = mono_global_codeman_reserve (128);
 
+       /* FIXME no unwind before we push ip */
        /* Caller ip */
        x86_push_reg (code, X86_ECX);
 
-       mono_add_unwind_op_def_cfa (unwind_ops, (guint8*)NULL, (guint8*)NULL, X86_ESP, 4);
-       mono_add_unwind_op_offset (unwind_ops, (guint8*)NULL, (guint8*)NULL, X86_NREG, -4);
+       mono_add_unwind_op_def_cfa (unwind_ops, code, start, X86_ESP, 4);
+       mono_add_unwind_op_offset (unwind_ops, code, start, X86_NREG, -4);
 
        /* Fix the alignment to be what apple expects */
        stack_size = 12;
index c698f47cf9d6d46bf84029ec1c1d27245cd6ca69..9d7517e39e35c0aa05dc796db55cac9a700f5c25 100644 (file)
@@ -711,6 +711,7 @@ class Tests
                return 0;
        }
 
+       [Category ("GSHAREDVT")]
        public static int test_6_partial_sharing_linq () {
                var messages = new List<Message> ();
 
@@ -949,6 +950,7 @@ class Tests
        }
 
        // #2155
+       [Category ("GSHAREDVT")]
        public static int test_0_fullaot_sflda_cctor () {
                List<Doc> documents = new List<Doc>();
                documents.Add(new Doc { Name = "Doc1", Type = DocType.One } );
index d9b0adec2f1341ec9f7a076d8c2231d5bef07b97..fed9002320487da1e5088867e4905881ca99a3f9 100644 (file)
@@ -336,10 +336,14 @@ mono_draw_graph (MonoCompile *cfg, MonoGraphOptions draw_options)
 
        fclose (fp);
 
+#ifdef HAVE_SYSTEM
        //com = g_strdup_printf ("dot %s -Tpng -o %s.png; eog %s.png", fn, fn, fn);
        com = g_strdup_printf ("dot %s -Tps -o %s.ps;gv %s.ps", fn, fn, fn);
        _i = system (com);
        g_free (com);
+#else
+       g_assert_not_reached ();
+#endif
 }
 
 #endif /* DISABLE_JIT */
index ea146bda57d13777695b38460d3fa0c067173748..2f60cb70210c758dfbc8e718b972814a4115ed3e 100644 (file)
@@ -1048,6 +1048,11 @@ public class Tests
                public Type gettype<T, T2>(T t, T2 t2) {
                        return t.GetType ();
                }
+
+               [MethodImplAttribute (MethodImplOptions.NoInlining)]
+               public Type gettype2<T>(T t) {
+                       return t.GetType ();
+               }
        }
 
        public static int test_0_constrained_gettype () {
@@ -1056,6 +1061,10 @@ public class Tests
                        return 1;
                if (c.gettype<string, int> ("A", 1) != typeof (string))
                        return 2;
+               /* Partial sharing */
+               var c2 = new CGetType ();
+               if (c2.gettype2<long> (1) != typeof (long))
+                       return 3;
                return 0;
        }
 
index b48962fd08dcd0a4dce94a2abd0b1d07f0729d22..65b234486b1dae91a3f3840b17e770fa1961caf3 100644 (file)
@@ -271,6 +271,7 @@ mono_disassemble_code (MonoCompile *cfg, guint8 *code, int size, char *id)
        close (i);
 #endif
 
+#ifdef HAVE_SYSTEM
        cmd = g_strdup_printf (ARCH_PREFIX AS_CMD " %s -o %s", as_file, o_file);
        unused = system (cmd); 
        g_free (cmd);
@@ -292,6 +293,9 @@ mono_disassemble_code (MonoCompile *cfg, guint8 *code, int size, char *id)
        cmd = g_strdup_printf (ARCH_PREFIX DIS_CMD " %s %s", objdump_args, o_file);
        unused = system (cmd);
        g_free (cmd);
+#else
+       g_assert_not_reached ();
+#endif /* HAVE_SYSTEM */
 
 #ifndef HOST_WIN32
        unlink (o_file);
index fe05ecca2d36a5569abfd30b622b71bf3868d86b..59654ee902875458b9aa814f6dc22c194f449b49 100644 (file)
@@ -339,7 +339,7 @@ handle_gsharedvt_ldaddr (MonoCompile *cfg)
                (dest)->klass = (var)->klass;   \
         (dest)->dreg = alloc_dreg ((cfg), STACK_MP); \
                (cfg)->has_indirection = TRUE;  \
-                         if (G_UNLIKELY (cfg->gsharedvt) && mini_is_gsharedvt_variable_type ((cfg), (var)->inst_vtype)) { handle_gsharedvt_ldaddr ((cfg)); } \
+                         if (G_UNLIKELY (cfg->gsharedvt) && mini_is_gsharedvt_variable_type ((var)->inst_vtype)) { handle_gsharedvt_ldaddr ((cfg)); } \
                if (SIZEOF_REGISTER == 4 && DECOMPOSE_INTO_REGPAIR ((var)->type)) { MonoInst *var1 = get_vreg_to_inst (cfg, (var)->dreg + 1); MonoInst *var2 = get_vreg_to_inst (cfg, (var)->dreg + 2); g_assert (var1); g_assert (var2); var1->flags |= MONO_INST_INDIRECT; var2->flags |= MONO_INST_INDIRECT; } \
        } while (0)
 
@@ -754,8 +754,8 @@ handle_gsharedvt_ldaddr (MonoCompile *cfg)
                (b)->real_offset = cfg->real_offset;    \
        } while (0)
 
-/* Emit a one-way conditional branch */
-/* 
+/*
+ * Emit a one-way conditional branch and start a new bblock.
  * The inst_false_bb field of the cond branch will not be set, the JIT code should be
  * prepared to deal with this.
  */
index 1e94b262df7a9a40b61b8501e7aed244a1bc40b2..03f519a041ff4f18e30f8e57e6f5a6f538f2d9f7 100644 (file)
@@ -850,6 +850,12 @@ mono_fconv_u8 (double v)
        return (guint64)v;
 }
 
+guint64
+mono_rconv_u8 (float v)
+{
+       return (guint64)v;
+}
+
 #ifdef MONO_ARCH_EMULATE_FCONV_TO_I8
 gint64
 mono_fconv_i8 (double v)
@@ -1022,7 +1028,7 @@ mono_helper_compile_generic_method (MonoObject *obj, MonoMethod *method, gpointe
 
        addr = mono_compile_method (vmethod);
 
-       addr = mini_add_method_trampoline (NULL, vmethod, addr, mono_method_needs_static_rgctx_invoke (vmethod, FALSE), FALSE);
+       addr = mini_add_method_trampoline (vmethod, addr, mono_method_needs_static_rgctx_invoke (vmethod, FALSE), FALSE);
 
        /* Since this is a virtual call, have to unbox vtypes */
        if (obj->vtable->klass->valuetype)
@@ -1285,3 +1291,15 @@ mono_generic_class_init (MonoVTable *vtable)
 {
        mono_runtime_class_init (vtable);
 }
+
+gpointer
+mono_fill_class_rgctx (MonoVTable *vtable, int index)
+{
+       return mono_class_fill_runtime_generic_context (vtable, index);
+}
+
+gpointer
+mono_fill_method_rgctx (MonoMethodRuntimeGenericContext *mrgctx, int index)
+{
+       return mono_method_fill_runtime_generic_context (mrgctx, index);
+}
index 9ec1a4f60e709b203d5d1d8665f93483161afc86..62acaed3c12d6074fb3b3e381cdb5081f572740a 100644 (file)
@@ -67,6 +67,8 @@ gpointer mono_ldtoken_wrapper_generic_shared (MonoImage *image, int token, MonoM
 
 guint64 mono_fconv_u8 (double v);
 
+guint64 mono_rconv_u8 (float v);
+
 gint64 mono_fconv_i8 (double v);
 
 guint32 mono_fconv_u4 (double v);
@@ -189,5 +191,9 @@ mono_gsharedvt_constrained_call (gpointer mp, MonoMethod *cmethod, MonoClass *kl
 
 void mono_gsharedvt_value_copy (gpointer dest, gpointer src, MonoClass *klass);
 
+gpointer mono_fill_class_rgctx (MonoVTable *vtable, int index);
+
+gpointer mono_fill_method_rgctx (MonoMethodRuntimeGenericContext *mrgctx, int index);
+
 #endif /* __MONO_JIT_ICALLS_H__ */
 
index a3bd43d3a41acf4e20506addc84669f6561aa5a3..355846bea67270805a5262f2d9518839fc2f33df 100644 (file)
@@ -540,7 +540,7 @@ mono_analyze_liveness (MonoCompile *cfg)
                                 * VOLATILE, since that would prevent it from being allocated to
                                 * registers.
                                 */
-                                if (!cfg->disable_deadce_vars && !(cfg->generic_sharing_context && mono_method_signature (cfg->method)->hasthis && cfg->varinfo [vi->idx] == cfg->args [0]))
+                                if (!cfg->disable_deadce_vars && !(cfg->gshared && mono_method_signature (cfg->method)->hasthis && cfg->varinfo [vi->idx] == cfg->args [0]))
                                         cfg->varinfo [vi->idx]->flags |= MONO_INST_IS_DEAD;
                        }
                        vi->range.first_use.abs_pos = 0;
index ce8ae5a444a8bfdd9626a9d5689f60ce4e9e035a..09e4342198182314507ee51c30d1a69eb37d0a7b 100644 (file)
@@ -54,7 +54,6 @@
 #include <mono/metadata/security-manager.h>
 #include <mono/metadata/threads-types.h>
 #include <mono/metadata/security-core-clr.h>
-#include <mono/metadata/monitor.h>
 #include <mono/metadata/profiler-private.h>
 #include <mono/metadata/profiler.h>
 #include <mono/metadata/debug-mono-symfile.h>
@@ -144,15 +143,11 @@ int mono_op_to_op_imm_noemul (int opcode);
 MONO_API MonoInst* mono_emit_native_call (MonoCompile *cfg, gconstpointer func, MonoMethodSignature *sig, MonoInst **args);
 
 static int inline_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsig, MonoInst **sp,
-                                                 guchar *ip, guint real_offset, gboolean inline_always, MonoBasicBlock **out_cbb);
+                                                 guchar *ip, guint real_offset, gboolean inline_always);
 
 /* helper methods signatures */
-static MonoMethodSignature *helper_sig_class_init_trampoline;
 static MonoMethodSignature *helper_sig_domain_get;
 static MonoMethodSignature *helper_sig_rgctx_lazy_fetch_trampoline;
-static MonoMethodSignature *helper_sig_monitor_enter_exit_trampoline;
-static MonoMethodSignature *helper_sig_monitor_enter_exit_trampoline_llvm;
-static MonoMethodSignature *helper_sig_monitor_enter_v4_trampoline_llvm;
 
 /*
  * Instruction metadata
@@ -275,7 +270,7 @@ mono_type_to_regmove (MonoCompile *cfg, MonoType *type)
        if (type->byref)
                return OP_MOVE;
 
-       type = mini_get_underlying_type (cfg, type);
+       type = mini_get_underlying_type (type);
 handle_enum:
        switch (type->type) {
        case MONO_TYPE_I1:
@@ -324,11 +319,11 @@ handle_enum:
                goto handle_enum;
        case MONO_TYPE_VAR:
        case MONO_TYPE_MVAR:
-               g_assert (cfg->generic_sharing_context);
-               if (mini_type_var_is_vt (cfg, type))
+               g_assert (cfg->gshared);
+               if (mini_type_var_is_vt (type))
                        return OP_VMOVE;
                else
-                       return mono_type_to_regmove (cfg, mini_get_underlying_type (cfg, type));
+                       return mono_type_to_regmove (cfg, mini_get_underlying_type (type));
        default:
                g_error ("unknown type 0x%02x in type_to_regstore", type->type);
        }
@@ -356,11 +351,7 @@ void
 mono_create_helper_signatures (void)
 {
        helper_sig_domain_get = mono_create_icall_signature ("ptr");
-       helper_sig_class_init_trampoline = mono_create_icall_signature ("void");
        helper_sig_rgctx_lazy_fetch_trampoline = mono_create_icall_signature ("ptr ptr");
-       helper_sig_monitor_enter_exit_trampoline = mono_create_icall_signature ("void");
-       helper_sig_monitor_enter_exit_trampoline_llvm = mono_create_icall_signature ("void object");
-       helper_sig_monitor_enter_v4_trampoline_llvm = mono_create_icall_signature ("void object ptr");
 }
 
 static MONO_NEVER_INLINE void
@@ -508,7 +499,7 @@ add_widen_op (MonoCompile *cfg, MonoInst *ins, MonoInst **arg1_ref, MonoInst **a
         add_widen_op (cfg, ins, &sp [0], &sp [1]);              \
         ins->dreg = alloc_dreg ((cfg), (ins)->type); \
         MONO_ADD_INS ((cfg)->cbb, (ins)); \
-        *sp++ = mono_decompose_opcode ((cfg), (ins), &bblock); \
+        *sp++ = mono_decompose_opcode ((cfg), (ins));  \
        } while (0)
 
 #define ADD_UNOP(op) do {      \
@@ -519,7 +510,7 @@ add_widen_op (MonoCompile *cfg, MonoInst *ins, MonoInst **arg1_ref, MonoInst **a
                CHECK_TYPE (ins);       \
         (ins)->dreg = alloc_dreg ((cfg), (ins)->type); \
         MONO_ADD_INS ((cfg)->cbb, (ins)); \
-               *sp++ = mono_decompose_opcode (cfg, ins, &bblock);      \
+               *sp++ = mono_decompose_opcode (cfg, ins);       \
        } while (0)
 
 #define ADD_BINCOND(next_block) do {   \
@@ -534,15 +525,15 @@ add_widen_op (MonoCompile *cfg, MonoInst *ins, MonoInst **arg1_ref, MonoInst **a
                type_from_op (cfg, ins, sp [0], sp [1]);                                                        \
                ins->inst_many_bb = mono_mempool_alloc (cfg->mempool, sizeof(gpointer)*2);      \
                GET_BBLOCK (cfg, tblock, target);               \
-               link_bblock (cfg, bblock, tblock);      \
+               link_bblock (cfg, cfg->cbb, tblock);    \
                ins->inst_true_bb = tblock;     \
                if ((next_block)) {     \
-                       link_bblock (cfg, bblock, (next_block));        \
+                       link_bblock (cfg, cfg->cbb, (next_block));      \
                        ins->inst_false_bb = (next_block);      \
                        start_new_bblock = 1;   \
                } else {        \
                        GET_BBLOCK (cfg, tblock, ip);           \
-                       link_bblock (cfg, bblock, tblock);      \
+                       link_bblock (cfg, cfg->cbb, tblock);    \
                        ins->inst_false_bb = tblock;    \
                        start_new_bblock = 2;   \
                }       \
@@ -550,8 +541,8 @@ add_widen_op (MonoCompile *cfg, MonoInst *ins, MonoInst **arg1_ref, MonoInst **a
                    handle_stack_args (cfg, stack_start, sp - stack_start); \
                        CHECK_UNVERIFIABLE (cfg); \
                } \
-        MONO_ADD_INS (bblock, cmp); \
-               MONO_ADD_INS (bblock, ins);     \
+        MONO_ADD_INS (cfg->cbb, cmp); \
+               MONO_ADD_INS (cfg->cbb, ins);   \
        } while (0)
 
 /* *
@@ -736,7 +727,7 @@ type_to_eval_stack_type (MonoCompile *cfg, MonoType *type, MonoInst *inst)
 {
        MonoClass *klass;
 
-       type = mini_get_underlying_type (cfg, type);
+       type = mini_get_underlying_type (type);
        inst->klass = klass = mono_class_from_mono_type (type);
        if (type->byref) {
                inst->type = STACK_MP;
@@ -797,12 +788,12 @@ handle_enum:
                goto handle_enum;
        case MONO_TYPE_VAR:
        case MONO_TYPE_MVAR:
-               g_assert (cfg->generic_sharing_context);
-               if (mini_is_gsharedvt_type (cfg, type)) {
+               g_assert (cfg->gshared);
+               if (mini_is_gsharedvt_type (type)) {
                        g_assert (cfg->gsharedvt);
                        inst->type = STACK_VTYPE;
                } else {
-                       type_to_eval_stack_type (cfg, mini_get_underlying_type (cfg, type), inst);
+                       type_to_eval_stack_type (cfg, mini_get_underlying_type (type), inst);
                }
                return;
        default:
@@ -1160,7 +1151,8 @@ param_table [STACK_MAX] [STACK_MAX] = {
 };
 
 static int
-check_values_to_signature (MonoInst *args, MonoType *this, MonoMethodSignature *sig) {
+check_values_to_signature (MonoInst *args, MonoType *this_ins, MonoMethodSignature *sig)
+{
        int i;
 
        if (sig->hasthis) {
@@ -1250,7 +1242,7 @@ mono_get_got_var (MonoCompile *cfg)
 static MonoInst *
 mono_get_vtable_var (MonoCompile *cfg)
 {
-       g_assert (cfg->generic_sharing_context);
+       g_assert (cfg->gshared);
 
        if (!cfg->rgctx_var) {
                cfg->rgctx_var = mono_compile_create_var (cfg, &mono_defaults.int_class->byval_arg, OP_LOCAL);
@@ -2030,7 +2022,10 @@ emit_push_lmf (MonoCompile *cfg)
                        /* jit_tls = pthread_getspecific (mono_jit_tls_id); lmf_addr = &jit_tls->lmf; */
 
                        /* Load mono_jit_tls_id */
-                       EMIT_NEW_AOTCONST (cfg, args [0], MONO_PATCH_INFO_JIT_TLS_ID, NULL);
+                       if (cfg->compile_aot)
+                               EMIT_NEW_AOTCONST (cfg, args [0], MONO_PATCH_INFO_JIT_TLS_ID, NULL);
+                       else
+                               EMIT_NEW_ICONST (cfg, args [0], mono_jit_tls_id);
                        /* call pthread_getspecific () */
                        jit_tls_ins = mono_emit_jit_icall (cfg, pthread_getspecific, args);
                        /* lmf_addr = &jit_tls->lmf */
@@ -2113,10 +2108,10 @@ emit_instrumentation_call (MonoCompile *cfg, void *func)
 }
 
 static int
-ret_type_to_call_opcode (MonoCompile *cfg, MonoType *type, int calli, int virt, MonoGenericSharingContext *gsctx)
+ret_type_to_call_opcode (MonoCompile *cfg, MonoType *type, int calli, int virt)
 {
 handle_enum:
-       type = mini_get_underlying_type (cfg, type);
+       type = mini_get_underlying_type (type);
        switch (type->type) {
        case MONO_TYPE_VOID:
                return calli? OP_VOIDCALL_REG: virt? OP_VOIDCALL_MEMBASE: OP_VOIDCALL;
@@ -2195,7 +2190,7 @@ target_type_is_incompatible (MonoCompile *cfg, MonoType *target, MonoInst *arg)
                return 1;
        }
 
-       simple_type = mini_get_underlying_type (cfg, target);
+       simple_type = mini_get_underlying_type (target);
        switch (simple_type->type) {
        case MONO_TYPE_VOID:
                return 1;
@@ -2276,8 +2271,8 @@ target_type_is_incompatible (MonoCompile *cfg, MonoType *target, MonoInst *arg)
                }
        case MONO_TYPE_VAR:
        case MONO_TYPE_MVAR:
-               g_assert (cfg->generic_sharing_context);
-               if (mini_type_var_is_vt (cfg, simple_type)) {
+               g_assert (cfg->gshared);
+               if (mini_type_var_is_vt (simple_type)) {
                        if (arg->type != STACK_VTYPE)
                                return 1;
                } else {
@@ -2317,7 +2312,7 @@ check_call_signature (MonoCompile *cfg, MonoMethodSignature *sig, MonoInst **arg
                                return 1;
                        continue;
                }
-               simple_type = mini_get_underlying_type (cfg, sig->params [i]);
+               simple_type = mini_get_underlying_type (sig->params [i]);
 handle_enum:
                switch (simple_type->type) {
                case MONO_TYPE_VOID:
@@ -2472,7 +2467,7 @@ mono_patch_info_new (MonoMemPool *mp, int ip, MonoJumpInfoType type, gconstpoint
 static int
 mini_class_check_context_used (MonoCompile *cfg, MonoClass *klass)
 {
-       if (cfg->generic_sharing_context)
+       if (cfg->gshared)
                return mono_class_check_context_used (klass);
        else
                return 0;
@@ -2481,7 +2476,7 @@ mini_class_check_context_used (MonoCompile *cfg, MonoClass *klass)
 static int
 mini_method_check_context_used (MonoCompile *cfg, MonoMethod *method)
 {
-       if (cfg->generic_sharing_context)
+       if (cfg->gshared)
                return mono_method_check_context_used (method);
        else
                return 0;
@@ -2502,15 +2497,8 @@ check_method_sharing (MonoCompile *cfg, MonoMethod *cmethod, gboolean *out_pass_
                (cmethod->klass->generic_class || cmethod->klass->generic_container)) {
                gboolean sharable = FALSE;
 
-               if (mono_method_is_generic_sharable (cmethod, TRUE)) {
+               if (mono_method_is_generic_sharable_full (cmethod, TRUE, TRUE, TRUE))
                        sharable = TRUE;
-               } else {
-                       gboolean sharing_enabled = mono_class_generic_sharing_enabled (cmethod->klass);
-                       MonoGenericContext *context = mini_class_get_context (cmethod->klass);
-                       gboolean context_sharable = mono_generic_context_is_sharable (context, TRUE);
-
-                       sharable = sharing_enabled && context_sharable;
-               }
 
                /*
                 * Pass vtable iff target method might
@@ -2527,16 +2515,10 @@ check_method_sharing (MonoCompile *cfg, MonoMethod *cmethod, gboolean *out_pass_
                mini_method_get_context (cmethod)->method_inst) {
                g_assert (!pass_vtable);
 
-               if (mono_method_is_generic_sharable (cmethod, TRUE)) {
+               if (mono_method_is_generic_sharable_full (cmethod, TRUE, TRUE, TRUE)) {
                        pass_mrgctx = TRUE;
                } else {
-                       gboolean sharing_enabled = mono_class_generic_sharing_enabled (cmethod->klass);
-                       MonoGenericContext *context = mini_method_get_context (cmethod);
-                       gboolean context_sharable = mono_generic_context_is_sharable (context, TRUE);
-
-                       if (sharing_enabled && context_sharable)
-                               pass_mrgctx = TRUE;
-                       if (cfg->gsharedvt && mini_is_gsharedvt_signature (cfg, mono_method_signature (cmethod)))
+                       if (cfg->gsharedvt && mini_is_gsharedvt_signature (mono_method_signature (cmethod)))
                                pass_mrgctx = TRUE;
                }
        }
@@ -2562,21 +2544,21 @@ mono_emit_call_args (MonoCompile *cfg, MonoMethodSignature *sig,
 
                MONO_INST_NEW_CALL (cfg, call, OP_TAILCALL);
        } else
-               MONO_INST_NEW_CALL (cfg, call, ret_type_to_call_opcode (cfg, sig->ret, calli, virtual, cfg->generic_sharing_context));
+               MONO_INST_NEW_CALL (cfg, call, ret_type_to_call_opcode (cfg, sig->ret, calli, virtual));
 
        call->args = args;
        call->signature = sig;
        call->rgctx_reg = rgctx;
-       sig_ret = mini_get_underlying_type (cfg, sig->ret);
+       sig_ret = mini_get_underlying_type (sig->ret);
 
        type_to_eval_stack_type ((cfg), sig_ret, &call->inst);
 
        if (tail) {
-               if (mini_type_is_vtype (cfg, sig_ret)) {
+               if (mini_type_is_vtype (sig_ret)) {
                        call->vret_var = cfg->vret_addr;
                        //g_assert_not_reached ();
                }
-       } else if (mini_type_is_vtype (cfg, sig_ret)) {
+       } else if (mini_type_is_vtype (sig_ret)) {
                MonoInst *temp = mono_compile_create_var (cfg, sig_ret, OP_LOCAL);
                MonoInst *loada;
 
@@ -2738,12 +2720,12 @@ emit_get_rgctx_klass (MonoCompile *cfg, int context_used, MonoClass *klass, Mono
 
 static MonoInst*
 mono_emit_method_call_full (MonoCompile *cfg, MonoMethod *method, MonoMethodSignature *sig, gboolean tail,
-                                                       MonoInst **args, MonoInst *this, MonoInst *imt_arg, MonoInst *rgctx_arg)
+                                                       MonoInst **args, MonoInst *this_ins, MonoInst *imt_arg, MonoInst *rgctx_arg)
 {
 #ifndef DISABLE_REMOTING
        gboolean might_be_remote = FALSE;
 #endif
-       gboolean virtual = this != NULL;
+       gboolean virtual = this_ins != NULL;
        gboolean enable_for_aot = TRUE;
        int context_used;
        MonoCallInst *call;
@@ -2770,14 +2752,14 @@ mono_emit_method_call_full (MonoCompile *cfg, MonoMethod *method, MonoMethodSign
        context_used = mini_method_check_context_used (cfg, method);
 
 #ifndef DISABLE_REMOTING
-       might_be_remote = this && sig->hasthis &&
+       might_be_remote = this_ins && sig->hasthis &&
                (mono_class_is_marshalbyref (method->klass) || method->klass == mono_defaults.object_class) &&
-               !(method->flags & METHOD_ATTRIBUTE_VIRTUAL) && (!MONO_CHECK_THIS (this) || context_used);
+               !(method->flags & METHOD_ATTRIBUTE_VIRTUAL) && (!MONO_CHECK_THIS (this_ins) || context_used);
 
        if (might_be_remote && context_used) {
                MonoInst *addr;
 
-               g_assert (cfg->generic_sharing_context);
+               g_assert (cfg->gshared);
 
                addr = emit_get_rgctx_method (cfg, context_used, method, MONO_RGCTX_INFO_REMOTING_INVOKE_WITH_CHECK);
 
@@ -2796,14 +2778,14 @@ mono_emit_method_call_full (MonoCompile *cfg, MonoMethod *method, MonoMethodSign
 #endif
                call->method = method;
        call->inst.flags |= MONO_INST_HAS_METHOD;
-       call->inst.inst_left = this;
+       call->inst.inst_left = this_ins;
        call->tail_call = tail;
 
        if (virtual) {
                int vtable_reg, slot_reg, this_reg;
                int offset;
 
-               this_reg = this->dreg;
+               this_reg = this_ins->dreg;
 
                if ((method->klass->parent == mono_defaults.multicastdelegate_class) && !strcmp (method->name, "Invoke")) {
                        MonoInst *dummy_use;
@@ -2897,9 +2879,9 @@ mono_emit_method_call_full (MonoCompile *cfg, MonoMethod *method, MonoMethodSign
 }
 
 MonoInst*
-mono_emit_method_call (MonoCompile *cfg, MonoMethod *method, MonoInst **args, MonoInst *this)
+mono_emit_method_call (MonoCompile *cfg, MonoMethod *method, MonoInst **args, MonoInst *this_ins)
 {
-       return mono_emit_method_call_full (cfg, method, mono_method_signature (method), FALSE, args, this, NULL, NULL);
+       return mono_emit_method_call_full (cfg, method, mono_method_signature (method), FALSE, args, this_ins, NULL, NULL);
 }
 
 MonoInst*
@@ -2966,7 +2948,7 @@ direct_icalls_enabled (MonoCompile *cfg)
 }
 
 MonoInst*
-mono_emit_jit_icall_by_info (MonoCompile *cfg, MonoJitICallInfo *info, MonoInst **args, MonoBasicBlock **out_cbb)
+mono_emit_jit_icall_by_info (MonoCompile *cfg, MonoJitICallInfo *info, MonoInst **args)
 {
        /*
         * Call the jit icall without a wrapper if possible.
@@ -2993,7 +2975,7 @@ mono_emit_jit_icall_by_info (MonoCompile *cfg, MonoJitICallInfo *info, MonoInst
                 * an exception check.
                 */
                costs = inline_method (cfg, info->wrapper_method, NULL,
-                                                          args, NULL, cfg->real_offset, TRUE, out_cbb);
+                                                          args, NULL, cfg->real_offset, TRUE);
                g_assert (costs > 0);
                g_assert (!MONO_TYPE_IS_VOID (info->sig->ret));
 
@@ -3069,7 +3051,7 @@ create_write_barrier_bitmap (MonoCompile *cfg, MonoClass *klass, unsigned *wb_bi
                if (field->type->attrs & FIELD_ATTRIBUTE_STATIC)
                        continue;
                foffset = klass->valuetype ? field->offset - sizeof (MonoObject): field->offset;
-               if (mini_type_is_reference (cfg, mono_field_get_type (field))) {
+               if (mini_type_is_reference (mono_field_get_type (field))) {
                        g_assert ((foffset % SIZEOF_VOID_P) == 0);
                        *wb_bitmap |= 1 << ((offset + foffset) / SIZEOF_VOID_P);
                } else {
@@ -3245,15 +3227,15 @@ mini_emit_stobj (MonoCompile *cfg, MonoInst *dest, MonoInst *src, MonoClass *kla
        MonoInst *memcpy_ins = NULL;
 
        g_assert (klass);
-       if (cfg->generic_sharing_context)
-               klass = mono_class_from_mono_type (mini_get_underlying_type (cfg, &klass->byval_arg));
+       if (cfg->gshared)
+               klass = mono_class_from_mono_type (mini_get_underlying_type (&klass->byval_arg));
 
        /*
         * This check breaks with spilled vars... need to handle it during verification anyway.
         * g_assert (klass && klass == src->klass && klass == dest->klass);
         */
 
-       if (mini_is_gsharedvt_klass (cfg, klass)) {
+       if (mini_is_gsharedvt_klass (klass)) {
                g_assert (!native);
                size_ins = emit_get_gsharedvt_info_klass (cfg, klass, MONO_RGCTX_INFO_VALUE_SIZE);
                memcpy_ins = emit_get_gsharedvt_info_klass (cfg, klass, MONO_RGCTX_INFO_MEMCPY);
@@ -3342,7 +3324,7 @@ mini_emit_initobj (MonoCompile *cfg, MonoInst *dest, const guchar *ip, MonoClass
 
        /* FIXME: Optimize this for the case when dest is an LDADDR */
        mono_class_init (klass);
-       if (mini_is_gsharedvt_klass (cfg, klass)) {
+       if (mini_is_gsharedvt_klass (klass)) {
                size_ins = emit_get_gsharedvt_info_klass (cfg, klass, MONO_RGCTX_INFO_VALUE_SIZE);
                bzero_ins = emit_get_gsharedvt_info_klass (cfg, klass, MONO_RGCTX_INFO_BZERO);
                if (!bzero_method)
@@ -3368,22 +3350,28 @@ mini_emit_initobj (MonoCompile *cfg, MonoInst *dest, const guchar *ip, MonoClass
        }
 }
 
+/*
+ * emit_get_rgctx:
+ *
+ *   Emit IR to return either the this pointer for instance method,
+ * or the mrgctx for static methods.
+ */
 static MonoInst*
 emit_get_rgctx (MonoCompile *cfg, MonoMethod *method, int context_used)
 {
-       MonoInst *this = NULL;
+       MonoInst *this_ins = NULL;
 
-       g_assert (cfg->generic_sharing_context);
+       g_assert (cfg->gshared);
 
        if (!(method->flags & METHOD_ATTRIBUTE_STATIC) &&
                        !(context_used & MONO_GENERIC_CONTEXT_USED_METHOD) &&
                        !method->klass->valuetype)
-               EMIT_NEW_ARGLOAD (cfg, this, 0);
+               EMIT_NEW_ARGLOAD (cfg, this_ins, 0);
 
        if (context_used & MONO_GENERIC_CONTEXT_USED_METHOD) {
                MonoInst *mrgctx_loc, *mrgctx_var;
 
-               g_assert (!this);
+               g_assert (!this_ins);
                g_assert (method->is_inflated && mono_method_get_context (method)->method_inst);
 
                mrgctx_loc = mono_get_vtable_var (cfg);
@@ -3393,7 +3381,7 @@ emit_get_rgctx (MonoCompile *cfg, MonoMethod *method, int context_used)
        } else if (method->flags & METHOD_ATTRIBUTE_STATIC || method->klass->valuetype) {
                MonoInst *vtable_loc, *vtable_var;
 
-               g_assert (!this);
+               g_assert (!this_ins);
 
                vtable_loc = mono_get_vtable_var (cfg);
                EMIT_NEW_TEMPLOAD (cfg, vtable_var, vtable_loc->inst_c0);
@@ -3413,7 +3401,7 @@ emit_get_rgctx (MonoCompile *cfg, MonoMethod *method, int context_used)
                int vtable_reg;
        
                vtable_reg = alloc_preg (cfg);
-               EMIT_NEW_LOAD_MEMBASE (cfg, ins, OP_LOAD_MEMBASE, vtable_reg, this->dreg, MONO_STRUCT_OFFSET (MonoObject, vtable));
+               EMIT_NEW_LOAD_MEMBASE (cfg, ins, OP_LOAD_MEMBASE, vtable_reg, this_ins->dreg, MONO_STRUCT_OFFSET (MonoObject, vtable));
                return ins;
        }
 }
@@ -3432,10 +3420,106 @@ mono_patch_info_rgctx_entry_new (MonoMemPool *mp, MonoMethod *method, gboolean i
        return res;
 }
 
+/*
+ * emit_rgctx_fetch:
+ *
+ *   Emit IR to load the value of the rgctx entry ENTRY from the rgctx
+ * given by RGCTX.
+ */
 static inline MonoInst*
 emit_rgctx_fetch (MonoCompile *cfg, MonoInst *rgctx, MonoJumpInfoRgctxEntry *entry)
 {
+       /* Inline version, not currently used */
+       // FIXME: This can be called from mono_decompose_vtype_opts (), which can't create new bblocks
+#if 0
+       int i, slot, depth, index, rgctx_reg, val_reg, res_reg;
+       gboolean mrgctx;
+       MonoBasicBlock *is_null_bb, *end_bb;
+       MonoInst *res, *ins, *call;
+       MonoInst *args[16];
+
+       slot = mini_get_rgctx_entry_slot (entry);
+
+       mrgctx = MONO_RGCTX_SLOT_IS_MRGCTX (slot);
+       index = MONO_RGCTX_SLOT_INDEX (slot);
+       if (mrgctx)
+               index += MONO_SIZEOF_METHOD_RUNTIME_GENERIC_CONTEXT / sizeof (gpointer);
+       for (depth = 0; ; ++depth) {
+               int size = mono_class_rgctx_get_array_size (depth, mrgctx);
+
+               if (index < size - 1)
+                       break;
+               index -= size - 1;
+       }
+
+       NEW_BBLOCK (cfg, end_bb);
+       NEW_BBLOCK (cfg, is_null_bb);
+
+       if (mrgctx) {
+               rgctx_reg = rgctx->dreg;
+       } else {
+               rgctx_reg = alloc_preg (cfg);
+
+               MONO_EMIT_NEW_LOAD_MEMBASE (cfg, rgctx_reg, rgctx->dreg, MONO_STRUCT_OFFSET (MonoVTable, runtime_generic_context));
+               // FIXME: Avoid this check by allocating the table when the vtable is created etc.
+               NEW_BBLOCK (cfg, is_null_bb);
+
+               MONO_EMIT_NEW_BIALU_IMM (cfg, OP_COMPARE_IMM, -1, rgctx_reg, 0);
+               MONO_EMIT_NEW_BRANCH_BLOCK (cfg, OP_PBEQ, is_null_bb);
+       }
+
+       for (i = 0; i < depth; ++i) {
+               int array_reg = alloc_preg (cfg);
+
+               /* load ptr to next array */
+               if (mrgctx && i == 0)
+                       MONO_EMIT_NEW_LOAD_MEMBASE (cfg, array_reg, rgctx_reg, MONO_SIZEOF_METHOD_RUNTIME_GENERIC_CONTEXT);
+               else
+                       MONO_EMIT_NEW_LOAD_MEMBASE (cfg, array_reg, rgctx_reg, 0);
+               rgctx_reg = array_reg;
+               /* is the ptr null? */
+               MONO_EMIT_NEW_BIALU_IMM (cfg, OP_COMPARE_IMM, -1, rgctx_reg, 0);
+               /* if yes, jump to actual trampoline */
+               MONO_EMIT_NEW_BRANCH_BLOCK (cfg, OP_PBEQ, is_null_bb);
+       }
+
+       /* fetch slot */
+       val_reg = alloc_preg (cfg);
+       MONO_EMIT_NEW_LOAD_MEMBASE (cfg, val_reg, rgctx_reg, (index + 1) * sizeof (gpointer));
+       /* is the slot null? */
+       MONO_EMIT_NEW_BIALU_IMM (cfg, OP_COMPARE_IMM, -1, val_reg, 0);
+       /* if yes, jump to actual trampoline */
+       MONO_EMIT_NEW_BRANCH_BLOCK (cfg, OP_PBEQ, is_null_bb);
+
+       /* Fastpath */
+       res_reg = alloc_preg (cfg);
+       MONO_INST_NEW (cfg, ins, OP_MOVE);
+       ins->dreg = res_reg;
+       ins->sreg1 = val_reg;
+       MONO_ADD_INS (cfg->cbb, ins);
+       res = ins;
+       MONO_EMIT_NEW_BRANCH_BLOCK (cfg, OP_BR, end_bb);
+
+       /* Slowpath */
+       MONO_START_BB (cfg, is_null_bb);
+       args [0] = rgctx;
+       EMIT_NEW_ICONST (cfg, args [1], index);
+       if (mrgctx)
+               call = mono_emit_jit_icall (cfg, mono_fill_method_rgctx, args);
+       else
+               call = mono_emit_jit_icall (cfg, mono_fill_class_rgctx, args);
+       MONO_INST_NEW (cfg, ins, OP_MOVE);
+       ins->dreg = res_reg;
+       ins->sreg1 = call->dreg;
+       MONO_ADD_INS (cfg->cbb, ins);
+       MONO_EMIT_NEW_BRANCH_BLOCK (cfg, OP_BR, end_bb);
+
+       MONO_START_BB (cfg, end_bb);
+
+       return res;
+#else
        return mono_emit_abs_call (cfg, MONO_PATCH_INFO_RGCTX_FETCH, entry, helper_sig_rgctx_lazy_fetch_trampoline, &rgctx);
+#endif
 }
 
 static MonoInst*
@@ -3619,14 +3703,12 @@ emit_get_gsharedvt_info_klass (MonoCompile *cfg, MonoClass *klass, MonoRgctxInfo
  * On return the caller must check @klass for load errors.
  */
 static void
-emit_generic_class_init (MonoCompile *cfg, MonoClass *klass, MonoBasicBlock **out_bblock)
+emit_class_init (MonoCompile *cfg, MonoClass *klass)
 {
        MonoInst *vtable_arg;
        int context_used;
        gboolean use_op_generic_class_init = FALSE;
 
-       *out_bblock = cfg->cbb;
-
        context_used = mini_class_check_context_used (cfg, klass);
 
        if (context_used) {
@@ -3680,24 +3762,7 @@ emit_generic_class_init (MonoCompile *cfg, MonoClass *klass, MonoBasicBlock **ou
                mono_emit_jit_icall (cfg, mono_generic_class_init, args);
 
                MONO_START_BB (cfg, inited_bb);
-               *out_bblock = inited_bb;
-       }
-}
-
-
-static void
-emit_class_init (MonoCompile *cfg, MonoClass *klass, MonoBasicBlock **out_bblock)
-{
-       /* This could be used as a fallback if needed */
-       if (cfg->compile_aot) {
-               /* With the overhead of plt entries, the inline version is comparable in size/speed */
-               emit_generic_class_init (cfg, klass, out_bblock);
-               return;
        }
-
-       *out_bblock = cfg->cbb;
-
-       mono_emit_abs_call (cfg, MONO_PATCH_INFO_CLASS_INIT, klass, helper_sig_class_init_trampoline, NULL);
 }
 
 static void
@@ -3714,7 +3779,7 @@ emit_seq_point (MonoCompile *cfg, MonoMethod *method, guint8* ip, gboolean intr_
 }
 
 static void
-save_cast_details (MonoCompile *cfg, MonoClass *klass, int obj_reg, gboolean null_check, MonoBasicBlock **out_bblock)
+save_cast_details (MonoCompile *cfg, MonoClass *klass, int obj_reg, gboolean null_check)
 {
        if (mini_get_debug_options ()->better_cast_details) {
                int vtable_reg = alloc_preg (cfg);
@@ -3754,11 +3819,8 @@ save_cast_details (MonoCompile *cfg, MonoClass *klass, int obj_reg, gboolean nul
                }
                MONO_EMIT_NEW_STORE_MEMBASE (cfg, OP_STORE_MEMBASE_REG, tls_get->dreg, MONO_STRUCT_OFFSET (MonoJitTlsData, class_cast_to), to_klass_reg);
 
-               if (null_check) {
+               if (null_check)
                        MONO_START_BB (cfg, is_null_bb);
-                       if (out_bblock)
-                               *out_bblock = cfg->cbb;
-               }
        }
 }
 
@@ -3786,7 +3848,7 @@ mini_emit_check_array_type (MonoCompile *cfg, MonoInst *obj, MonoClass *array_cl
 
        context_used = mini_class_check_context_used (cfg, array_class);
 
-       save_cast_details (cfg, array_class, obj->dreg, FALSE, NULL);
+       save_cast_details (cfg, array_class, obj->dreg, FALSE);
 
        MONO_EMIT_NEW_LOAD_MEMBASE_FAULT (cfg, vtable_reg, obj->dreg, MONO_STRUCT_OFFSET (MonoObject, vtable));
 
@@ -3903,7 +3965,7 @@ handle_unbox (MonoCompile *cfg, MonoClass *klass, MonoInst **sp, int context_use
                MONO_EMIT_NEW_BIALU (cfg, OP_COMPARE, -1, eclass_reg, element_class->dreg);
                MONO_EMIT_NEW_COND_EXC (cfg, NE_UN, "InvalidCastException");
        } else {
-               save_cast_details (cfg, klass->element_class, obj_reg, FALSE, NULL);
+               save_cast_details (cfg, klass->element_class, obj_reg, FALSE);
                mini_emit_class_check (cfg, eclass_reg, klass->element_class);
                reset_cast_details (cfg);
        }
@@ -3917,7 +3979,7 @@ handle_unbox (MonoCompile *cfg, MonoClass *klass, MonoInst **sp, int context_use
 }
 
 static MonoInst*
-handle_unbox_gsharedvt (MonoCompile *cfg, MonoClass *klass, MonoInst *obj, MonoBasicBlock **out_cbb)
+handle_unbox_gsharedvt (MonoCompile *cfg, MonoClass *klass, MonoInst *obj)
 {
        MonoInst *addr, *klass_inst, *is_ref, *args[16];
        MonoBasicBlock *is_ref_bb, *is_nullable_bb, *end_bb;
@@ -3991,8 +4053,6 @@ handle_unbox_gsharedvt (MonoCompile *cfg, MonoClass *klass, MonoInst *obj, MonoB
        /* LDOBJ */
        EMIT_NEW_LOAD_MEMBASE_TYPE (cfg, ins, &klass->byval_arg, addr_reg, 0);
 
-       *out_cbb = cfg->cbb;
-
        return ins;
 }
 
@@ -4009,7 +4069,7 @@ handle_alloc (MonoCompile *cfg, MonoClass *klass, gboolean for_box, int context_
                MonoInst *data;
                int rgctx_info;
                MonoInst *iargs [2];
-               gboolean known_instance_size = !mini_is_gsharedvt_klass (cfg, klass);
+               gboolean known_instance_size = !mini_is_gsharedvt_klass (klass);
 
                MonoMethod *managed_alloc = mono_gc_get_managed_allocator (klass, for_box, known_instance_size);
 
@@ -4063,9 +4123,7 @@ handle_alloc (MonoCompile *cfg, MonoClass *klass, gboolean for_box, int context_
                        return NULL;
                }
 
-#ifndef MONO_CROSS_COMPILE
                managed_alloc = mono_gc_get_managed_allocator (klass, for_box, TRUE);
-#endif
 
                if (managed_alloc) {
                        int size = mono_class_instance_size (klass);
@@ -4095,12 +4153,10 @@ handle_alloc (MonoCompile *cfg, MonoClass *klass, gboolean for_box, int context_
  * Returns NULL and set the cfg exception on error.
  */    
 static MonoInst*
-handle_box (MonoCompile *cfg, MonoInst *val, MonoClass *klass, int context_used, MonoBasicBlock **out_cbb)
+handle_box (MonoCompile *cfg, MonoInst *val, MonoClass *klass, int context_used)
 {
        MonoInst *alloc, *ins;
 
-       *out_cbb = cfg->cbb;
-
        if (mono_class_is_nullable (klass)) {
                MonoMethod* method = mono_class_get_method_from_name (klass, "Box", 1);
 
@@ -4130,7 +4186,7 @@ handle_box (MonoCompile *cfg, MonoInst *val, MonoClass *klass, int context_used,
                }
        }
 
-       if (mini_is_gsharedvt_klass (cfg, klass)) {
+       if (mini_is_gsharedvt_klass (klass)) {
                MonoBasicBlock *is_ref_bb, *is_nullable_bb, *end_bb;
                MonoInst *res, *is_ref, *src_var, *addr;
                int dreg;
@@ -4197,8 +4253,6 @@ handle_box (MonoCompile *cfg, MonoInst *val, MonoClass *klass, int context_used,
 
                MONO_START_BB (cfg, end_bb);
 
-               *out_cbb = cfg->cbb;
-
                return res;
        } else {
                alloc = handle_alloc (cfg, klass, TRUE, context_used);
@@ -4232,7 +4286,7 @@ mini_class_has_reference_variant_generic_argument (MonoCompile *cfg, MonoClass *
                if (!(mono_generic_container_get_param_info (container, i)->flags & (MONO_GEN_PARAM_VARIANT|MONO_GEN_PARAM_COVARIANT)))
                        continue;
                type = ginst->type_argv [i];
-               if (mini_type_is_reference (cfg, type))
+               if (mini_type_is_reference (type))
                        return TRUE;
        }
        return FALSE;
@@ -4257,6 +4311,7 @@ icall_is_direct_callable (MonoCompile *cfg, MonoMethod *cmethod)
                g_hash_table_insert (h, (char*)"Decimal", GUINT_TO_POINTER (1));
                g_hash_table_insert (h, (char*)"Number", GUINT_TO_POINTER (1));
                g_hash_table_insert (h, (char*)"Buffer", GUINT_TO_POINTER (1));
+               g_hash_table_insert (h, (char*)"Monitor", GUINT_TO_POINTER (1));
                mono_memory_barrier ();
                direct_icall_type_hash = h;
        }
@@ -4272,17 +4327,16 @@ icall_is_direct_callable (MonoCompile *cfg, MonoMethod *cmethod)
 #define is_complex_isinst(klass) ((klass->flags & TYPE_ATTRIBUTE_INTERFACE) || klass->rank || mono_class_is_nullable (klass) || mono_class_is_marshalbyref (klass) || (klass->flags & TYPE_ATTRIBUTE_SEALED) || klass->byval_arg.type == MONO_TYPE_VAR || klass->byval_arg.type == MONO_TYPE_MVAR)
 
 static MonoInst*
-emit_castclass_with_cache (MonoCompile *cfg, MonoClass *klass, MonoInst **args, MonoBasicBlock **out_bblock)
+emit_castclass_with_cache (MonoCompile *cfg, MonoClass *klass, MonoInst **args)
 {
        MonoMethod *mono_castclass;
        MonoInst *res;
 
        mono_castclass = mono_marshal_get_castclass_with_cache ();
 
-       save_cast_details (cfg, klass, args [0]->dreg, TRUE, out_bblock);
+       save_cast_details (cfg, klass, args [0]->dreg, TRUE);
        res = mono_emit_method_call (cfg, mono_castclass, args, NULL);
        reset_cast_details (cfg);
-       *out_bblock = cfg->cbb;
 
        return res;
 }
@@ -4296,7 +4350,7 @@ get_castclass_cache_idx (MonoCompile *cfg)
 }
 
 static MonoInst*
-emit_castclass_with_cache_nonshared (MonoCompile *cfg, MonoInst *obj, MonoClass *klass, MonoBasicBlock **out_bblock)
+emit_castclass_with_cache_nonshared (MonoCompile *cfg, MonoInst *obj, MonoClass *klass)
 {
        MonoInst *args [3];
        int idx;
@@ -4316,31 +4370,26 @@ emit_castclass_with_cache_nonshared (MonoCompile *cfg, MonoInst *obj, MonoClass
        }
 
        /*The wrapper doesn't inline well so the bloat of inlining doesn't pay off.*/
-
-       return emit_castclass_with_cache (cfg, klass, args, out_bblock);
+       return emit_castclass_with_cache (cfg, klass, args);
 }
 
 /*
  * Returns NULL and set the cfg exception on error.
  */
 static MonoInst*
-handle_castclass (MonoCompile *cfg, MonoClass *klass, MonoInst *src, guint8 *ip, MonoBasicBlock **out_bb, int *inline_costs)
+handle_castclass (MonoCompile *cfg, MonoClass *klass, MonoInst *src, guint8 *ip, int *inline_costs)
 {
        MonoBasicBlock *is_null_bb;
        int obj_reg = src->dreg;
        int vtable_reg = alloc_preg (cfg);
        int context_used;
        MonoInst *klass_inst = NULL, *res;
-       MonoBasicBlock *bblock;
-
-       *out_bb = cfg->cbb;
 
        context_used = mini_class_check_context_used (cfg, klass);
 
        if (!context_used && mini_class_has_reference_variant_generic_argument (cfg, klass, context_used)) {
-               res = emit_castclass_with_cache_nonshared (cfg, src, klass, &bblock);
+               res = emit_castclass_with_cache_nonshared (cfg, src, klass);
                (*inline_costs) += 2;
-               *out_bb = cfg->cbb;
                return res;
        } else if (!context_used && (mono_class_is_marshalbyref (klass) || klass->flags & TYPE_ATTRIBUTE_INTERFACE)) {
                MonoMethod *mono_castclass;
@@ -4350,9 +4399,9 @@ handle_castclass (MonoCompile *cfg, MonoClass *klass, MonoInst *src, guint8 *ip,
                mono_castclass = mono_marshal_get_castclass (klass); 
                iargs [0] = src;
                                
-               save_cast_details (cfg, klass, src->dreg, TRUE, &bblock);
+               save_cast_details (cfg, klass, src->dreg, TRUE);
                costs = inline_method (cfg, mono_castclass, mono_method_signature (mono_castclass), 
-                                                          iargs, ip, cfg->real_offset, TRUE, &bblock);
+                                                          iargs, ip, cfg->real_offset, TRUE);
                reset_cast_details (cfg);
                CHECK_CFG_EXCEPTION;
                g_assert (costs > 0);
@@ -4361,7 +4410,6 @@ handle_castclass (MonoCompile *cfg, MonoClass *klass, MonoInst *src, guint8 *ip,
 
                (*inline_costs) += costs;
 
-               *out_bb = cfg->cbb;
                return src;
        }
 
@@ -4382,7 +4430,7 @@ handle_castclass (MonoCompile *cfg, MonoClass *klass, MonoInst *src, guint8 *ip,
                        /* cache */
                        args [2] = cache_ins;
 
-                       return emit_castclass_with_cache (cfg, klass, args, out_bb);
+                       return emit_castclass_with_cache (cfg, klass, args);
                }
 
                klass_inst = emit_get_rgctx_klass (cfg, context_used, klass, MONO_RGCTX_INFO_KLASS);
@@ -4393,7 +4441,7 @@ handle_castclass (MonoCompile *cfg, MonoClass *klass, MonoInst *src, guint8 *ip,
        MONO_EMIT_NEW_BIALU_IMM (cfg, OP_COMPARE_IMM, -1, obj_reg, 0);
        MONO_EMIT_NEW_BRANCH_BLOCK (cfg, OP_PBEQ, is_null_bb);
 
-       save_cast_details (cfg, klass, obj_reg, FALSE, NULL);
+       save_cast_details (cfg, klass, obj_reg, FALSE);
 
        if (klass->flags & TYPE_ATTRIBUTE_INTERFACE) {
                MONO_EMIT_NEW_LOAD_MEMBASE (cfg, vtable_reg, obj_reg, MONO_STRUCT_OFFSET (MonoObject, vtable));
@@ -4428,8 +4476,6 @@ handle_castclass (MonoCompile *cfg, MonoClass *klass, MonoInst *src, guint8 *ip,
 
        reset_cast_details (cfg);
 
-       *out_bb = cfg->cbb;
-
        return src;
 
 exception_exit:
@@ -4708,7 +4754,7 @@ handle_ccastclass (MonoCompile *cfg, MonoClass *klass, MonoInst *src)
        MONO_EMIT_NEW_BIALU_IMM (cfg, OP_COMPARE_IMM, -1, obj_reg, 0);
        MONO_EMIT_NEW_BRANCH_BLOCK (cfg, OP_PBEQ, ok_result_bb);
 
-       save_cast_details (cfg, klass, obj_reg, FALSE, NULL);
+       save_cast_details (cfg, klass, obj_reg, FALSE);
 
        if (klass->flags & TYPE_ATTRIBUTE_INTERFACE) {
 #ifndef DISABLE_REMOTING
@@ -4818,10 +4864,10 @@ handle_enum_has_flag (MonoCompile *cfg, MonoClass *klass, MonoInst *enum_this, M
                ceq->type = STACK_I4;
 
                if (!is_i4) {
-                       load = mono_decompose_opcode (cfg, load, NULL);
-                       and = mono_decompose_opcode (cfg, and, NULL);
-                       cmp = mono_decompose_opcode (cfg, cmp, NULL);
-                       ceq = mono_decompose_opcode (cfg, ceq, NULL);
+                       load = mono_decompose_opcode (cfg, load);
+                       and = mono_decompose_opcode (cfg, and);
+                       cmp = mono_decompose_opcode (cfg, cmp);
+                       ceq = mono_decompose_opcode (cfg, ceq);
                }
 
                return ceq;
@@ -4959,10 +5005,9 @@ handle_array_new (MonoCompile *cfg, int rank, MonoInst **sp, unsigned char *ip)
  */
 static MonoInst*
 handle_constrained_gsharedvt_call (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsig, MonoInst **sp, MonoClass *constrained_class,
-                                                                  gboolean *ref_emit_widen, MonoBasicBlock **ref_bblock)
+                                                                  gboolean *ref_emit_widen)
 {
        MonoInst *ins = NULL;
-       MonoBasicBlock *bblock = *ref_bblock;
        gboolean emit_widen = *ref_emit_widen;
 
        /*
@@ -4971,8 +5016,8 @@ handle_constrained_gsharedvt_call (MonoCompile *cfg, MonoMethod *cmethod, MonoMe
         * pack the arguments into an array, and do the rest of the work in in an icall.
         */
        if (((cmethod->klass == mono_defaults.object_class) || (cmethod->klass->flags & TYPE_ATTRIBUTE_INTERFACE) || (!cmethod->klass->valuetype && cmethod->klass->image != mono_defaults.corlib)) &&
-               (MONO_TYPE_IS_VOID (fsig->ret) || MONO_TYPE_IS_PRIMITIVE (fsig->ret) || MONO_TYPE_IS_REFERENCE (fsig->ret) || MONO_TYPE_ISSTRUCT (fsig->ret) || mini_is_gsharedvt_type (cfg, fsig->ret)) &&
-               (fsig->param_count == 0 || (!fsig->hasthis && fsig->param_count == 1) || (fsig->param_count == 1 && (MONO_TYPE_IS_REFERENCE (fsig->params [0]) || fsig->params [0]->byref || mini_is_gsharedvt_type (cfg, fsig->params [0]))))) {
+               (MONO_TYPE_IS_VOID (fsig->ret) || MONO_TYPE_IS_PRIMITIVE (fsig->ret) || MONO_TYPE_IS_REFERENCE (fsig->ret) || MONO_TYPE_ISSTRUCT (fsig->ret) || mini_is_gsharedvt_type (fsig->ret)) &&
+               (fsig->param_count == 0 || (!fsig->hasthis && fsig->param_count == 1) || (fsig->param_count == 1 && (MONO_TYPE_IS_REFERENCE (fsig->params [0]) || fsig->params [0]->byref || mini_is_gsharedvt_type (fsig->params [0]))))) {
                MonoInst *args [16];
 
                /*
@@ -4999,7 +5044,7 @@ handle_constrained_gsharedvt_call (MonoCompile *cfg, MonoMethod *cmethod, MonoMe
                        MONO_ADD_INS (cfg->cbb, ins);
                        args [4] = ins;
 
-                       if (mini_is_gsharedvt_type (cfg, fsig->params [0])) {
+                       if (mini_is_gsharedvt_type (fsig->params [0])) {
                                int addr_reg;
 
                                args [3] = emit_get_gsharedvt_info_klass (cfg, mono_class_from_mono_type (fsig->params [0]), MONO_RGCTX_INFO_CLASS_BOX_TYPE);
@@ -5018,8 +5063,8 @@ handle_constrained_gsharedvt_call (MonoCompile *cfg, MonoMethod *cmethod, MonoMe
                ins = mono_emit_jit_icall (cfg, mono_gsharedvt_constrained_call, args);
                emit_widen = FALSE;
 
-               if (mini_is_gsharedvt_type (cfg, fsig->ret)) {
-                       ins = handle_unbox_gsharedvt (cfg, mono_class_from_mono_type (fsig->ret), ins, &bblock);
+               if (mini_is_gsharedvt_type (fsig->ret)) {
+                       ins = handle_unbox_gsharedvt (cfg, mono_class_from_mono_type (fsig->ret), ins);
                } else if (MONO_TYPE_IS_PRIMITIVE (fsig->ret) || MONO_TYPE_ISSTRUCT (fsig->ret)) {
                        MonoInst *add;
 
@@ -5036,7 +5081,6 @@ handle_constrained_gsharedvt_call (MonoCompile *cfg, MonoMethod *cmethod, MonoMe
        }
 
        *ref_emit_widen = emit_widen;
-       *ref_bblock = bblock;
 
        return ins;
 
@@ -5094,7 +5138,7 @@ mono_method_check_inlining (MonoCompile *cfg, MonoMethod *method)
 
        if (cfg->disable_inline)
                return FALSE;
-       if (cfg->generic_sharing_context)
+       if (cfg->gshared)
                return FALSE;
 
        if (cfg->inline_depth > 10)
@@ -5229,7 +5273,7 @@ mini_emit_ldelema_1_ins (MonoCompile *cfg, MonoClass *klass, MonoInst *arr, Mono
        int mult_reg, add_reg, array_reg, index_reg, index2_reg;
        int context_used;
 
-       if (mini_is_gsharedvt_variable_klass (cfg, klass)) {
+       if (mini_is_gsharedvt_variable_klass (klass)) {
                size = -1;
        } else {
                mono_class_init (klass);
@@ -5279,10 +5323,10 @@ mini_emit_ldelema_1_ins (MonoCompile *cfg, MonoClass *klass, MonoInst *arr, Mono
                MonoInst *rgctx_ins;
 
                /* gsharedvt */
-               g_assert (cfg->generic_sharing_context);
+               g_assert (cfg->gshared);
                context_used = mini_class_check_context_used (cfg, klass);
                g_assert (context_used);
-               rgctx_ins = emit_get_gsharedvt_info (cfg, &klass->byval_arg, MONO_RGCTX_INFO_ARRAY_ELEMENT_SIZE);
+               rgctx_ins = emit_get_gsharedvt_info_klass (cfg, klass, MONO_RGCTX_INFO_ARRAY_ELEMENT_SIZE);
                MONO_EMIT_NEW_BIALU (cfg, OP_IMUL, mult_reg, index2_reg, rgctx_ins->dreg);
        } else {
                MONO_EMIT_NEW_BIALU_IMM (cfg, OP_MUL_IMM, mult_reg, index2_reg, size);
@@ -5388,12 +5432,12 @@ mini_emit_ldelema_ins (MonoCompile *cfg, MonoMethod *cmethod, MonoInst **sp, uns
 
 #ifndef MONO_ARCH_EMULATE_MUL_DIV
        /* emit_ldelema_2 depends on OP_LMUL */
-       if (rank == 2 && (cfg->opt & MONO_OPT_INTRINS) && !mini_is_gsharedvt_variable_klass (cfg, eclass)) {
+       if (rank == 2 && (cfg->opt & MONO_OPT_INTRINS) && !mini_is_gsharedvt_variable_klass (eclass)) {
                return mini_emit_ldelema_2_ins (cfg, eclass, sp [0], sp [1], sp [2]);
        }
 #endif
 
-       if (mini_is_gsharedvt_variable_klass (cfg, eclass))
+       if (mini_is_gsharedvt_variable_klass (eclass))
                element_size = 0;
        else
                element_size = mono_class_array_element_size (eclass);
@@ -5463,7 +5507,7 @@ emit_array_generic_access (MonoCompile *cfg, MonoMethodSignature *fsig, MonoInst
        if (is_set) {
                EMIT_NEW_LOAD_MEMBASE_TYPE (cfg, load, &eklass->byval_arg, args [2]->dreg, 0);
                EMIT_NEW_STORE_MEMBASE_TYPE (cfg, store, &eklass->byval_arg, addr->dreg, 0, load->dreg);
-               if (mini_type_is_reference (cfg, fsig->params [2]))
+               if (mini_type_is_reference (fsig->params [2]))
                        emit_write_barrier (cfg, addr, load);
        } else {
                EMIT_NEW_LOAD_MEMBASE_TYPE (cfg, load, &eklass->byval_arg, addr->dreg, 0);
@@ -5476,7 +5520,7 @@ emit_array_generic_access (MonoCompile *cfg, MonoMethodSignature *fsig, MonoInst
 static gboolean
 generic_class_is_reference_type (MonoCompile *cfg, MonoClass *klass)
 {
-       return mini_type_is_reference (cfg, &klass->byval_arg);
+       return mini_type_is_reference (&klass->byval_arg);
 }
 
 static MonoInst*
@@ -5505,7 +5549,7 @@ emit_array_store (MonoCompile *cfg, MonoClass *klass, MonoInst **sp, gboolean sa
        } else {
                MonoInst *ins;
 
-               if (mini_is_gsharedvt_variable_klass (cfg, klass)) {
+               if (mini_is_gsharedvt_variable_klass (klass)) {
                        MonoInst *addr;
 
                        // FIXME-VT: OP_ICONST optimization
@@ -5554,7 +5598,7 @@ is_unsafe_mov_compatible (MonoCompile *cfg, MonoClass *param_klass, MonoClass *r
 {
        uint32_t align;
 
-       param_klass = mono_class_from_mono_type (mini_get_underlying_type (cfg, &param_klass->byval_arg));
+       param_klass = mono_class_from_mono_type (mini_get_underlying_type (&param_klass->byval_arg));
 
        //Only allow for valuetypes
        if (!param_klass->valuetype || !return_klass->valuetype)
@@ -5866,7 +5910,7 @@ mini_emit_inst_for_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSign
                        return emit_memory_barrier (cfg, MONO_MEMORY_BARRIER_SEQ);
                } else if (!strcmp (cmethod->name, "VolatileRead") && fsig->param_count == 1) {
                        guint32 opcode = 0;
-                       gboolean is_ref = mini_type_is_reference (cfg, fsig->params [0]);
+                       gboolean is_ref = mini_type_is_reference (fsig->params [0]);
 
                        if (fsig->params [0]->type == MONO_TYPE_I1)
                                opcode = OP_LOADI1_MEMBASE;
@@ -5925,14 +5969,14 @@ mini_emit_inst_for_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSign
                                        ins->type = STACK_R8;
                                        break;
                                default:
-                                       g_assert (mini_type_is_reference (cfg, fsig->params [0]));
+                                       g_assert (mini_type_is_reference (fsig->params [0]));
                                        ins->dreg = mono_alloc_ireg_ref (cfg);
                                        ins->type = STACK_OBJ;
                                        break;
                                }
 
                                if (opcode == OP_LOADI8_MEMBASE)
-                                       ins = mono_decompose_opcode (cfg, ins, NULL);
+                                       ins = mono_decompose_opcode (cfg, ins);
 
                                emit_memory_barrier (cfg, MONO_MEMORY_BARRIER_ACQ);
 
@@ -5940,7 +5984,7 @@ mini_emit_inst_for_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSign
                        }
                } else if (!strcmp (cmethod->name, "VolatileWrite") && fsig->param_count == 2) {
                        guint32 opcode = 0;
-                       gboolean is_ref = mini_type_is_reference (cfg, fsig->params [0]);
+                       gboolean is_ref = mini_type_is_reference (fsig->params [0]);
 
                        if (fsig->params [0]->type == MONO_TYPE_I1 || fsig->params [0]->type == MONO_TYPE_U1)
                                opcode = OP_STOREI1_MEMBASE_REG;
@@ -5967,64 +6011,11 @@ mini_emit_inst_for_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSign
                                MONO_ADD_INS (cfg->cbb, ins);
 
                                if (opcode == OP_STOREI8_MEMBASE_REG)
-                                       ins = mono_decompose_opcode (cfg, ins, NULL);
+                                       ins = mono_decompose_opcode (cfg, ins);
 
                                return ins;
                        }
                }
-       } else if (cmethod->klass == mono_defaults.monitor_class) {
-#if defined(MONO_ARCH_MONITOR_OBJECT_REG)
-               if (strcmp (cmethod->name, "Enter") == 0 && fsig->param_count == 1) {
-                       MonoCallInst *call;
-
-                       if (COMPILE_LLVM (cfg)) {
-                               /* 
-                                * Pass the argument normally, the LLVM backend will handle the
-                                * calling convention problems.
-                                */
-                               call = (MonoCallInst*)mono_emit_abs_call (cfg, MONO_PATCH_INFO_MONITOR_ENTER, NULL, helper_sig_monitor_enter_exit_trampoline_llvm, args);
-                       } else {
-                               call = (MonoCallInst*)mono_emit_abs_call (cfg, MONO_PATCH_INFO_MONITOR_ENTER,
-                                           NULL, helper_sig_monitor_enter_exit_trampoline, NULL);
-                               mono_call_inst_add_outarg_reg (cfg, call, args [0]->dreg,
-                                                                                          MONO_ARCH_MONITOR_OBJECT_REG, FALSE);
-                       }
-
-                       return (MonoInst*)call;
-#if defined(MONO_ARCH_MONITOR_LOCK_TAKEN_REG)
-               } else if (strcmp (cmethod->name, "Enter") == 0 && fsig->param_count == 2) {
-                       MonoCallInst *call;
-
-                       if (COMPILE_LLVM (cfg)) {
-                               /*
-                                * Pass the argument normally, the LLVM backend will handle the
-                                * calling convention problems.
-                                */
-                               call = (MonoCallInst*)mono_emit_abs_call (cfg, MONO_PATCH_INFO_MONITOR_ENTER_V4, NULL, helper_sig_monitor_enter_v4_trampoline_llvm, args);
-                       } else {
-                               call = (MonoCallInst*)mono_emit_abs_call (cfg, MONO_PATCH_INFO_MONITOR_ENTER_V4,
-                                           NULL, helper_sig_monitor_enter_exit_trampoline, NULL);
-                               mono_call_inst_add_outarg_reg (cfg, call, args [0]->dreg, MONO_ARCH_MONITOR_OBJECT_REG, FALSE);
-                               mono_call_inst_add_outarg_reg (cfg, call, args [1]->dreg, MONO_ARCH_MONITOR_LOCK_TAKEN_REG, FALSE);
-                       }
-
-                       return (MonoInst*)call;
-#endif
-               } else if (strcmp (cmethod->name, "Exit") == 0 && fsig->param_count == 1) {
-                       MonoCallInst *call;
-
-                       if (COMPILE_LLVM (cfg)) {
-                               call = (MonoCallInst*)mono_emit_abs_call (cfg, MONO_PATCH_INFO_MONITOR_EXIT, NULL, helper_sig_monitor_enter_exit_trampoline_llvm, args);
-                       } else {
-                               call = (MonoCallInst*)mono_emit_abs_call (cfg, MONO_PATCH_INFO_MONITOR_EXIT,
-                                           NULL, helper_sig_monitor_enter_exit_trampoline, NULL);
-                               mono_call_inst_add_outarg_reg (cfg, call, args [0]->dreg,
-                                                                                          MONO_ARCH_MONITOR_OBJECT_REG, FALSE);
-                       }
-
-                       return (MonoInst*)call;
-               }
-#endif
        } else if (cmethod->klass->image == mono_defaults.corlib &&
                           (strcmp (cmethod->klass->name_space, "System.Threading") == 0) &&
                           (strcmp (cmethod->klass->name, "Interlocked") == 0)) {
@@ -6141,7 +6132,7 @@ mini_emit_inst_for_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSign
                else if (strcmp (cmethod->name, "Exchange") == 0 && fsig->param_count == 2) {
                        MonoInst *f2i = NULL, *i2f;
                        guint32 opcode, f2i_opcode, i2f_opcode;
-                       gboolean is_ref = mini_type_is_reference (cfg, fsig->params [0]);
+                       gboolean is_ref = mini_type_is_reference (fsig->params [0]);
                        gboolean is_float = fsig->params [0]->type == MONO_TYPE_R4 || fsig->params [0]->type == MONO_TYPE_R8;
 
                        if (fsig->params [0]->type == MONO_TYPE_I4 ||
@@ -6211,7 +6202,7 @@ mini_emit_inst_for_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSign
                                ins->type = STACK_R8;
                                break;
                        default:
-                               g_assert (mini_type_is_reference (cfg, fsig->params [0]));
+                               g_assert (mini_type_is_reference (fsig->params [0]));
                                ins->type = STACK_OBJ;
                                break;
                        }
@@ -6234,7 +6225,7 @@ mini_emit_inst_for_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSign
                else if ((strcmp (cmethod->name, "CompareExchange") == 0) && fsig->param_count == 3) {
                        MonoInst *f2i_new = NULL, *f2i_cmp = NULL, *i2f;
                        guint32 opcode, f2i_opcode, i2f_opcode;
-                       gboolean is_ref = mini_type_is_reference (cfg, fsig->params [1]);
+                       gboolean is_ref = mini_type_is_reference (fsig->params [1]);
                        gboolean is_float = fsig->params [1]->type == MONO_TYPE_R4 || fsig->params [1]->type == MONO_TYPE_R8;
 
                        if (fsig->params [1]->type == MONO_TYPE_I4 ||
@@ -6307,11 +6298,13 @@ mini_emit_inst_for_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSign
 #endif
                                break;
                        case MONO_TYPE_R4:
+                               ins->type = cfg->r4_stack_type;
+                               break;
                        case MONO_TYPE_R8:
                                ins->type = STACK_R8;
                                break;
                        default:
-                               g_assert (mini_type_is_reference (cfg, fsig->params [1]));
+                               g_assert (mini_type_is_reference (fsig->params [1]));
                                ins->type = STACK_OBJ;
                                break;
                        }
@@ -6376,7 +6369,7 @@ mini_emit_inst_for_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSign
 
                if (!strcmp (cmethod->name, "Read") && fsig->param_count == 1) {
                        guint32 opcode = 0;
-                       gboolean is_ref = mini_type_is_reference (cfg, fsig->params [0]);
+                       gboolean is_ref = mini_type_is_reference (fsig->params [0]);
                        gboolean is_float = fsig->params [0]->type == MONO_TYPE_R4 || fsig->params [0]->type == MONO_TYPE_R8;
 
                        if (fsig->params [0]->type == MONO_TYPE_I1)
@@ -6440,11 +6433,13 @@ mini_emit_inst_for_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSign
 #endif
                                        break;
                                case MONO_TYPE_R4:
+                                       ins->type = cfg->r4_stack_type;
+                                       break;
                                case MONO_TYPE_R8:
                                        ins->type = STACK_R8;
                                        break;
                                default:
-                                       g_assert (mini_type_is_reference (cfg, fsig->params [0]));
+                                       g_assert (mini_type_is_reference (fsig->params [0]));
                                        ins->type = STACK_OBJ;
                                        break;
                                }
@@ -6453,7 +6448,7 @@ mini_emit_inst_for_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSign
 
                if (!strcmp (cmethod->name, "Write") && fsig->param_count == 2) {
                        guint32 opcode = 0;
-                       gboolean is_ref = mini_type_is_reference (cfg, fsig->params [0]);
+                       gboolean is_ref = mini_type_is_reference (fsig->params [0]);
 
                        if (fsig->params [0]->type == MONO_TYPE_I1)
                                opcode = OP_ATOMIC_STORE_I1;
@@ -6597,7 +6592,7 @@ mini_emit_inst_for_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSign
  */
 inline static MonoInst*
 mini_redirect_call (MonoCompile *cfg, MonoMethod *method,  
-                                       MonoMethodSignature *signature, MonoInst **args, MonoInst *this)
+                                       MonoMethodSignature *signature, MonoInst **args, MonoInst *this_ins)
 {
        if (method->klass == mono_defaults.string_class) {
                /* managed string allocation support */
@@ -6614,7 +6609,7 @@ mini_redirect_call (MonoCompile *cfg, MonoMethod *method,
                                return NULL;
                        EMIT_NEW_VTABLECONST (cfg, iargs [0], vtable);
                        iargs [1] = args [0];
-                       return mono_emit_method_call (cfg, managed_alloc, iargs, this);
+                       return mono_emit_method_call (cfg, managed_alloc, iargs, this_ins);
                }
        }
        return NULL;
@@ -6717,7 +6712,7 @@ emit_init_rvar (MonoCompile *cfg, int dreg, MonoType *rtype)
        MonoInst *ins;
        int t;
 
-       rtype = mini_get_underlying_type (cfg, rtype);
+       rtype = mini_get_underlying_type (rtype);
        t = rtype->type;
 
        if (rtype->byref) {
@@ -6741,7 +6736,7 @@ emit_init_rvar (MonoCompile *cfg, int dreg, MonoType *rtype)
        } else if ((t == MONO_TYPE_VALUETYPE) || (t == MONO_TYPE_TYPEDBYREF) ||
                   ((t == MONO_TYPE_GENERICINST) && mono_type_generic_inst_is_valuetype (rtype))) {
                MONO_EMIT_NEW_VZERO (cfg, dreg, mono_class_from_mono_type (rtype));
-       } else if (((t == MONO_TYPE_VAR) || (t == MONO_TYPE_MVAR)) && mini_type_var_is_vt (cfg, rtype)) {
+       } else if (((t == MONO_TYPE_VAR) || (t == MONO_TYPE_MVAR)) && mini_type_var_is_vt (rtype)) {
                MONO_EMIT_NEW_VZERO (cfg, dreg, mono_class_from_mono_type (rtype));
        } else {
                MONO_EMIT_NEW_PCONST (cfg, dreg, NULL);
@@ -6753,7 +6748,7 @@ emit_dummy_init_rvar (MonoCompile *cfg, int dreg, MonoType *rtype)
 {
        int t;
 
-       rtype = mini_get_underlying_type (cfg, rtype);
+       rtype = mini_get_underlying_type (rtype);
        t = rtype->type;
 
        if (rtype->byref) {
@@ -6769,7 +6764,7 @@ emit_dummy_init_rvar (MonoCompile *cfg, int dreg, MonoType *rtype)
        } else if ((t == MONO_TYPE_VALUETYPE) || (t == MONO_TYPE_TYPEDBYREF) ||
                   ((t == MONO_TYPE_GENERICINST) && mono_type_generic_inst_is_valuetype (rtype))) {
                MONO_EMIT_NEW_DUMMY_INIT (cfg, dreg, OP_DUMMY_VZERO);
-       } else if (((t == MONO_TYPE_VAR) || (t == MONO_TYPE_MVAR)) && mini_type_var_is_vt (cfg, rtype)) {
+       } else if (((t == MONO_TYPE_VAR) || (t == MONO_TYPE_MVAR)) && mini_type_var_is_vt (rtype)) {
                MONO_EMIT_NEW_DUMMY_INIT (cfg, dreg, OP_DUMMY_VZERO);
        } else {
                emit_init_rvar (cfg, dreg, rtype);
@@ -6801,7 +6796,7 @@ emit_init_local (MonoCompile *cfg, int local, MonoType *type, gboolean init)
  */
 static int
 inline_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsig, MonoInst **sp,
-                          guchar *ip, guint real_offset, gboolean inline_always, MonoBasicBlock **out_cbb)
+                          guchar *ip, guint real_offset, gboolean inline_always)
 {
        MonoInst *ins, *rvar = NULL;
        MonoMethodHeader *cheader;
@@ -6921,7 +6916,7 @@ inline_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsig,
        cfg->disable_inline = prev_disable_inline;
        cfg->inline_depth --;
 
-       if ((costs >= 0 && costs < 60) || inline_always) {
+       if ((costs >= 0 && costs < 60) || inline_always || (costs >= 0 && (cmethod->iflags & METHOD_IMPL_ATTRIBUTE_AGGRESSIVE_INLINING))) {
                if (cfg->verbose_level > 2)
                        printf ("INLINE END %s -> %s\n", mono_method_full_name (cfg->method, TRUE), mono_method_full_name (cmethod, TRUE));
                
@@ -6973,9 +6968,6 @@ inline_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsig,
                        cfg->cbb = ebblock;
                }
 
-               if (out_cbb)
-                       *out_cbb = cfg->cbb;
-
                if (rvar) {
                        /*
                         * If the inlined method contains only a throw, then the ret var is not 
@@ -7163,7 +7155,7 @@ mini_get_method (MonoCompile *cfg, MonoMethod *m, guint32 token, MonoClass *klas
 {
        MonoMethod *method = mini_get_method_allow_open (m, token, klass, context);
 
-       if (method && cfg && !cfg->generic_sharing_context && mono_class_is_open_constructed_type (&method->klass->byval_arg))
+       if (method && cfg && !cfg->gshared && mono_class_is_open_constructed_type (&method->klass->byval_arg))
                return NULL;
 
        return method;
@@ -7250,8 +7242,7 @@ get_original_method (MonoMethod *method)
 }
 
 static void
-ensure_method_is_allowed_to_access_field (MonoCompile *cfg, MonoMethod *caller, MonoClassField *field,
-                                         MonoBasicBlock *bblock, unsigned char *ip)
+ensure_method_is_allowed_to_access_field (MonoCompile *cfg, MonoMethod *caller, MonoClassField *field)
 {
        /* we can't get the coreclr security level on wrappers since they don't have the attributes */
        MonoException *ex = mono_security_core_clr_is_field_access_allowed (get_original_method (caller), field);
@@ -7260,8 +7251,7 @@ ensure_method_is_allowed_to_access_field (MonoCompile *cfg, MonoMethod *caller,
 }
 
 static void
-ensure_method_is_allowed_to_call_method (MonoCompile *cfg, MonoMethod *caller, MonoMethod *callee,
-                                        MonoBasicBlock *bblock, unsigned char *ip)
+ensure_method_is_allowed_to_call_method (MonoCompile *cfg, MonoMethod *caller, MonoMethod *callee)
 {
        /* we can't get the coreclr security level on wrappers since they don't have the attributes */
        MonoException *ex = mono_security_core_clr_is_call_allowed (get_original_method (caller), callee);
@@ -7421,7 +7411,7 @@ emit_optimized_ldloca_ir (MonoCompile *cfg, unsigned char *ip, unsigned char *en
                token = read32 (ip + 2);
                klass = mini_get_class (cfg->current_method, token, cfg->generic_context);
                CHECK_TYPELOAD (klass);
-               type = mini_get_underlying_type (cfg, &klass->byval_arg);
+               type = mini_get_underlying_type (&klass->byval_arg);
                emit_init_local (cfg, local, type, TRUE);
                return ip + 6;
        }
@@ -7430,12 +7420,12 @@ emit_optimized_ldloca_ir (MonoCompile *cfg, unsigned char *ip, unsigned char *en
 }
 
 static gboolean
-is_exception_class (MonoClass *class)
+is_exception_class (MonoClass *klass)
 {
-       while (class) {
-               if (class == mono_defaults.exception_class)
+       while (klass) {
+               if (klass == mono_defaults.exception_class)
                        return TRUE;
-               class = class->parent;
+               klass = klass->parent;
        }
        return FALSE;
 }
@@ -7573,15 +7563,12 @@ emit_managed_static_data_access (MonoCompile *cfg, MonoInst *thread_ins, int off
  * handle_ctor_call:
  *
  *   Handle calls made to ctors from NEWOBJ opcodes.
- *
- *   REF_BBLOCK will point to the current bblock after the call.
  */
 static void
 handle_ctor_call (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsig, int context_used,
-                                 MonoInst **sp, guint8 *ip, MonoBasicBlock **ref_bblock, int *inline_costs)
+                                 MonoInst **sp, guint8 *ip, int *inline_costs)
 {
        MonoInst *vtable_arg = NULL, *callvirt_this_arg = NULL, *ins;
-       MonoBasicBlock *bblock = *ref_bblock;
 
        if (cmethod->klass->valuetype && mono_class_generic_sharing_enabled (cmethod->klass) &&
                                        mono_method_is_generic_sharable (cmethod, TRUE)) {
@@ -7616,19 +7603,18 @@ handle_ctor_call (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fs
                           !mono_class_is_subclass_of (cmethod->klass, mono_defaults.exception_class, FALSE)) {
                int costs;
 
-               if ((costs = inline_method (cfg, cmethod, fsig, sp, ip, cfg->real_offset, FALSE, &bblock))) {
+               if ((costs = inline_method (cfg, cmethod, fsig, sp, ip, cfg->real_offset, FALSE))) {
                        cfg->real_offset += 5;
 
                        *inline_costs += costs - 5;
-                       *ref_bblock = bblock;
                } else {
                        INLINE_FAILURE ("inline failure");
                        // FIXME-VT: Clean this up
-                       if (cfg->gsharedvt && mini_is_gsharedvt_signature (cfg, fsig))
+                       if (cfg->gsharedvt && mini_is_gsharedvt_signature (fsig))
                                GSHAREDVT_FAILURE(*ip);
                        mono_emit_method_call_full (cfg, cmethod, fsig, FALSE, sp, callvirt_this_arg, NULL, NULL);
                }
-       } else if (cfg->gsharedvt && mini_is_gsharedvt_signature (cfg, fsig)) {
+       } else if (cfg->gsharedvt && mini_is_gsharedvt_signature (fsig)) {
                MonoInst *addr;
 
                addr = emit_get_rgctx_gsharedvt_call (cfg, context_used, fsig, cmethod, MONO_RGCTX_INFO_METHOD_GSHAREDVT_OUT_TRAMPOLINE);
@@ -7665,7 +7651,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 {
        MonoError error;
        MonoInst *ins, **sp, **stack_start;
-       MonoBasicBlock *bblock, *tblock = NULL, *init_localsbb = NULL;
+       MonoBasicBlock *tblock = NULL, *init_localsbb = NULL;
        MonoSimpleBasicBlock *bb = NULL, *original_bb = NULL;
        MonoMethod *cmethod, *method_definition;
        MonoInst **arg_array;
@@ -7788,7 +7774,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                generic_context = &generic_container->context;
        cfg->generic_context = generic_context;
 
-       if (!cfg->generic_sharing_context)
+       if (!cfg->gshared)
                g_assert (!sig->has_type_parameters);
 
        if (sig->generic_param_count && method->wrapper_type == MONO_WRAPPER_NONE) {
@@ -7873,8 +7859,9 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                MONO_INST_NEW (cfg, ins, OP_START_HANDLER);
                                MONO_ADD_INS (tblock, ins);
 
-                               if (seq_points && clause->flags != MONO_EXCEPTION_CLAUSE_FINALLY) {
+                               if (seq_points && clause->flags != MONO_EXCEPTION_CLAUSE_FINALLY && clause->flags != MONO_EXCEPTION_CLAUSE_FILTER) {
                                        /* finally clauses already have a seq point */
+                                       /* seq points for filter clauses are emitted below */
                                        NEW_SEQ_POINT (cfg, ins, clause->handler_offset, TRUE);
                                        MONO_ADD_INS (tblock, ins);
                                }
@@ -7916,6 +7903,11 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                 */
                                EMIT_NEW_DUMMY_USE (cfg, dummy_use, tblock->in_stack [0]);
 #endif
+
+                               if (seq_points && clause->flags == MONO_EXCEPTION_CLAUSE_FILTER) {
+                                       NEW_SEQ_POINT (cfg, ins, clause->handler_offset, TRUE);
+                                       MONO_ADD_INS (tblock, ins);
+                               }
                                
                                if (clause->flags == MONO_EXCEPTION_CLAUSE_FILTER) {
                                        GET_BBLOCK (cfg, tblock, ip + clause->data.filter_offset);
@@ -7932,7 +7924,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                        if (clause->flags != MONO_EXCEPTION_CLAUSE_FILTER &&
                                        clause->data.catch_class &&
-                                       cfg->generic_sharing_context &&
+                                       cfg->gshared &&
                                        mono_class_check_context_used (clause->data.catch_class)) {
                                /*
                                 * In shared generic code with catch
@@ -7964,18 +7956,18 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
        }
 
        /* FIRST CODE BLOCK */
-       NEW_BBLOCK (cfg, bblock);
-       bblock->cil_code = ip;
-       cfg->cbb = bblock;
+       NEW_BBLOCK (cfg, tblock);
+       tblock->cil_code = ip;
+       cfg->cbb = tblock;
        cfg->ip = ip;
 
-       ADD_BBLOCK (cfg, bblock);
+       ADD_BBLOCK (cfg, tblock);
 
        if (cfg->method == method) {
                breakpoint_id = mono_debugger_method_has_breakpoint (method);
                if (breakpoint_id) {
                        MONO_INST_NEW (cfg, ins, OP_BREAK);
-                       MONO_ADD_INS (bblock, ins);
+                       MONO_ADD_INS (cfg->cbb, ins);
                }
        }
 
@@ -7984,9 +7976,9 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
        cfg->bb_init = init_localsbb;
        init_localsbb->real_offset = cfg->real_offset;
        start_bblock->next_bb = init_localsbb;
-       init_localsbb->next_bb = bblock;
+       init_localsbb->next_bb = cfg->cbb;
        link_bblock (cfg, start_bblock, init_localsbb);
-       link_bblock (cfg, init_localsbb, bblock);
+       link_bblock (cfg, init_localsbb, cfg->cbb);
                
        cfg->cbb = init_localsbb;
 
@@ -8062,7 +8054,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
        }
 
        if (cfg->method == method)
-               mono_debug_init_method (cfg, bblock, breakpoint_id);
+               mono_debug_init_method (cfg, cfg->cbb, breakpoint_id);
 
        for (n = 0; n < header->num_locals; ++n) {
                if (header->locals [n]->type == MONO_TYPE_VOID && !header->locals [n]->byref)
@@ -8073,7 +8065,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
        /* We force the vtable variable here for all shared methods
           for the possibility that they might show up in a stack
           trace where their exact instantiation is needed. */
-       if (cfg->generic_sharing_context && method == cfg->method) {
+       if (cfg->gshared && method == cfg->method) {
                if ((method->flags & METHOD_ATTRIBUTE_STATIC) ||
                                mini_method_get_context (method)->method_inst ||
                                method->klass->valuetype) {
@@ -8107,7 +8099,6 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
        ins_flag = 0;
        start_new_bblock = 0;
-       cfg->cbb = bblock;
        while (ip < end) {
                if (cfg->method == method)
                        cfg->real_offset = ip - header->code;
@@ -8116,42 +8107,40 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                cfg->ip = ip;
 
                context_used = 0;
-               
+
                if (start_new_bblock) {
-                       bblock->cil_length = ip - bblock->cil_code;
+                       cfg->cbb->cil_length = ip - cfg->cbb->cil_code;
                        if (start_new_bblock == 2) {
                                g_assert (ip == tblock->cil_code);
                        } else {
                                GET_BBLOCK (cfg, tblock, ip);
                        }
-                       bblock->next_bb = tblock;
-                       bblock = tblock;
-                       cfg->cbb = bblock;
+                       cfg->cbb->next_bb = tblock;
+                       cfg->cbb = tblock;
                        start_new_bblock = 0;
-                       for (i = 0; i < bblock->in_scount; ++i) {
+                       for (i = 0; i < cfg->cbb->in_scount; ++i) {
                                if (cfg->verbose_level > 3)
-                                       printf ("loading %d from temp %d\n", i, (int)bblock->in_stack [i]->inst_c0);                                            
-                               EMIT_NEW_TEMPLOAD (cfg, ins, bblock->in_stack [i]->inst_c0);
+                                       printf ("loading %d from temp %d\n", i, (int)cfg->cbb->in_stack [i]->inst_c0);
+                               EMIT_NEW_TEMPLOAD (cfg, ins, cfg->cbb->in_stack [i]->inst_c0);
                                *sp++ = ins;
                        }
                        if (class_inits)
                                g_slist_free (class_inits);
                        class_inits = NULL;
                } else {
-                       if ((tblock = cfg->cil_offset_to_bb [ip - cfg->cil_start]) && (tblock != bblock)) {
-                               link_bblock (cfg, bblock, tblock);
+                       if ((tblock = cfg->cil_offset_to_bb [ip - cfg->cil_start]) && (tblock != cfg->cbb)) {
+                               link_bblock (cfg, cfg->cbb, tblock);
                                if (sp != stack_start) {
                                        handle_stack_args (cfg, stack_start, sp - stack_start);
                                        sp = stack_start;
                                        CHECK_UNVERIFIABLE (cfg);
                                }
-                               bblock->next_bb = tblock;
-                               bblock = tblock;
-                               cfg->cbb = bblock;
-                               for (i = 0; i < bblock->in_scount; ++i) {
+                               cfg->cbb->next_bb = tblock;
+                               cfg->cbb = tblock;
+                               for (i = 0; i < cfg->cbb->in_scount; ++i) {
                                        if (cfg->verbose_level > 3)
-                                               printf ("loading %d from temp %d\n", i, (int)bblock->in_stack [i]->inst_c0);                                            
-                                       EMIT_NEW_TEMPLOAD (cfg, ins, bblock->in_stack [i]->inst_c0);
+                                               printf ("loading %d from temp %d\n", i, (int)cfg->cbb->in_stack [i]->inst_c0);
+                                       EMIT_NEW_TEMPLOAD (cfg, ins, cfg->cbb->in_stack [i]->inst_c0);
                                        *sp++ = ins;
                                }
                                g_slist_free (class_inits);
@@ -8173,7 +8162,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                                if (ip_offset + op_size == bb->end) {
                                        MONO_INST_NEW (cfg, ins, OP_NOP);
-                                       MONO_ADD_INS (bblock, ins);
+                                       MONO_ADD_INS (cfg->cbb, ins);
                                        start_new_bblock = 1;
                                }
 
@@ -8210,7 +8199,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                mono_bitset_set_fast (seq_point_set_locs, ip - header->code);
                }
 
-               bblock->real_offset = cfg->real_offset;
+               cfg->cbb->real_offset = cfg->real_offset;
 
                if ((cfg->method == method) && cfg->coverage_info) {
                        guint32 cil_offset = ip - header->code;
@@ -8229,7 +8218,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                }
 
                if (cfg->verbose_level > 3)
-                       printf ("converting (in B%d: stack: %d) %s", bblock->block_num, (int)(sp - stack_start), mono_disasm_code_one (NULL, method, ip, NULL));
+                       printf ("converting (in B%d: stack: %d) %s", cfg->cbb->block_num, (int)(sp - stack_start), mono_disasm_code_one (NULL, method, ip, NULL));
 
                switch (*ip) {
                case CEE_NOP:
@@ -8246,7 +8235,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        else
                                MONO_INST_NEW (cfg, ins, OP_NOP);
                        ip++;
-                       MONO_ADD_INS (bblock, ins);
+                       MONO_ADD_INS (cfg->cbb, ins);
                        break;
                case CEE_BREAK:
                        if (should_insert_brekpoint (cfg->method)) {
@@ -8255,7 +8244,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                MONO_INST_NEW (cfg, ins, OP_NOP);
                        }
                        ip++;
-                       MONO_ADD_INS (bblock, ins);
+                       MONO_ADD_INS (cfg->cbb, ins);
                        break;
                case CEE_LDARG_0:
                case CEE_LDARG_1:
@@ -8411,7 +8400,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        ins->dreg = alloc_dreg (cfg, STACK_I8);
                        ++ip;
                        ins->inst_l = (gint64)read64 (ip);
-                       MONO_ADD_INS (bblock, ins);
+                       MONO_ADD_INS (cfg->cbb, ins);
                        ip += 8;
                        *sp++ = ins;
                        break;
@@ -8444,7 +8433,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                ins->type = cfg->r4_stack_type;
                                ins->dreg = alloc_dreg (cfg, STACK_R8);
                                ins->inst_p0 = f;
-                               MONO_ADD_INS (bblock, ins);
+                               MONO_ADD_INS (cfg->cbb, ins);
                        }
                        ++ip;
                        readr4 (ip, f);
@@ -8481,7 +8470,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                ins->type = STACK_R8;
                                ins->dreg = alloc_dreg (cfg, STACK_R8);
                                ins->inst_p0 = d;
-                               MONO_ADD_INS (bblock, ins);
+                               MONO_ADD_INS (cfg->cbb, ins);
                        }
                        ++ip;
                        readr8 (ip, d);
@@ -8536,7 +8525,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        if (!cmethod || mono_loader_get_last_error ())
                                LOAD_ERROR;
  
-                       if (cfg->generic_sharing_context && mono_method_check_context_used (cmethod))
+                       if (cfg->gshared && mono_method_check_context_used (cmethod))
                                GENERIC_SHARING_FAILURE (CEE_JMP);
 
                        emit_instrumentation_call (cfg, mono_profiler_method_leave);
@@ -8561,7 +8550,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                                mono_arch_emit_call (cfg, call);
                                cfg->param_area = MAX(cfg->param_area, call->stack_usage);
-                               MONO_ADD_INS (bblock, (MonoInst*)call);
+                               MONO_ADD_INS (cfg->cbb, (MonoInst*)call);
                        } else {
                                for (i = 0; i < num_args; ++i)
                                        /* Prevent arguments from being optimized away */
@@ -8570,7 +8559,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                MONO_INST_NEW_CALL (cfg, call, OP_JMP);
                                ins = (MonoInst*)call;
                                ins->inst_p0 = cmethod;
-                               MONO_ADD_INS (bblock, ins);
+                               MONO_ADD_INS (cfg->cbb, ins);
                        }
 
                        ip += 5;
@@ -8623,7 +8612,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                         * This needs to be used for all generic calls, not just ones with a gsharedvt signature, to avoid
                         * patching gshared method addresses into a gsharedvt method.
                         */
-                       if (cfg->gsharedvt && mini_is_gsharedvt_signature (cfg, fsig)) {
+                       if (cfg->gsharedvt && mini_is_gsharedvt_signature (fsig)) {
                                /*
                                 * We pass the address to the gsharedvt trampoline in the rgctx reg
                                 */
@@ -8716,10 +8705,10 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        cil_method = cmethod;
                                
                        if (constrained_class) {
-                               if ((constrained_class->byval_arg.type == MONO_TYPE_VAR || constrained_class->byval_arg.type == MONO_TYPE_MVAR) && cfg->generic_sharing_context) {
-                                       if (!mini_is_gsharedvt_klass (cfg, constrained_class)) {
+                               if ((constrained_class->byval_arg.type == MONO_TYPE_VAR || constrained_class->byval_arg.type == MONO_TYPE_MVAR) && cfg->gshared) {
+                                       if (!mini_is_gsharedvt_klass (constrained_class)) {
                                                g_assert (!cmethod->klass->valuetype);
-                                               if (!mini_type_is_reference (cfg, &constrained_class->byval_arg))
+                                               if (!mini_type_is_reference (&constrained_class->byval_arg))
                                                        constrained_partial_call = TRUE;
                                        }
                                }
@@ -8729,7 +8718,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                                printf ("DM Constrained call to %s\n", mono_type_get_full_name (constrained_class));
                                        if (!((constrained_class->byval_arg.type == MONO_TYPE_VAR ||
                                                   constrained_class->byval_arg.type == MONO_TYPE_MVAR) &&
-                                                 cfg->generic_sharing_context)) {
+                                                 cfg->gshared)) {
                                                cmethod = mono_get_method_constrained_with_method (image, cil_method, constrained_class, generic_context, &cfg->error);
                                                CHECK_CFG_ERROR;
                                        }
@@ -8737,14 +8726,14 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        if (cfg->verbose_level > 2)
                                                printf ("Constrained call to %s\n", mono_type_get_full_name (constrained_class));
 
-                                       if ((constrained_class->byval_arg.type == MONO_TYPE_VAR || constrained_class->byval_arg.type == MONO_TYPE_MVAR) && cfg->generic_sharing_context) {
+                                       if ((constrained_class->byval_arg.type == MONO_TYPE_VAR || constrained_class->byval_arg.type == MONO_TYPE_MVAR) && cfg->gshared) {
                                                /* 
                                                 * This is needed since get_method_constrained can't find 
                                                 * the method in klass representing a type var.
                                                 * The type var is guaranteed to be a reference type in this
                                                 * case.
                                                 */
-                                               if (!mini_is_gsharedvt_klass (cfg, constrained_class))
+                                               if (!mini_is_gsharedvt_klass (constrained_class))
                                                        g_assert (!cmethod->klass->valuetype);
                                        } else {
                                                cmethod = mono_get_method_constrained_checked (image, token, constrained_class, generic_context, &cil_method, &cfg->error);
@@ -8766,7 +8755,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        }
 
                        if (mono_security_core_clr_enabled ())
-                               ensure_method_is_allowed_to_call_method (cfg, method, cil_method, bblock, ip);
+                               ensure_method_is_allowed_to_call_method (cfg, method, cil_method);
 
                        if (!virtual && (cmethod->flags & METHOD_ATTRIBUTE_ABSTRACT))
                                /* MS.NET seems to silently convert this to a callvirt */
@@ -8798,8 +8787,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        } else if ((cmethod->iflags & METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL) && icall_is_direct_callable (cfg, cmethod)) {
                                direct_icall = TRUE;
                        } else if (fsig->pinvoke) {
-                               MonoMethod *wrapper = mono_marshal_get_native_wrapper (cmethod,
-                                                                                                                                          check_for_pending_exc, cfg->compile_aot);
+                               MonoMethod *wrapper = mono_marshal_get_native_wrapper (cmethod, TRUE, cfg->compile_aot);
                                fsig = mono_method_signature (wrapper);
                        } else if (constrained_class) {
                        } else {
@@ -8807,6 +8795,20 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                CHECK_CFG_ERROR;
                        }
 
+                       /* See code below */
+                       if (cmethod->klass == mono_defaults.monitor_class && !strcmp (cmethod->name, "Enter") && mono_method_signature (cmethod)->param_count == 1) {
+                               MonoBasicBlock *tbb;
+
+                               GET_BBLOCK (cfg, tbb, ip + 5);
+                               if (tbb->try_start && MONO_REGION_FLAGS(tbb->region) == MONO_EXCEPTION_CLAUSE_FINALLY) {
+                                       /*
+                                        * We want to extend the try block to cover the call, but we can't do it if the
+                                        * call is made directly since its followed by an exception check.
+                                        */
+                                       direct_icall = FALSE;
+                               }
+                       }
+
                        mono_save_token_info (cfg, image, token, cil_method);
 
                        if (!(seq_point_locs && mono_bitset_test_fast (seq_point_locs, ip + 5 - header->code)))
@@ -8815,7 +8817,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        /* Don't support calls made using type arguments for now */
                        /*
                          if (cfg->gsharedvt) {
-                         if (mini_is_gsharedvt_signature (cfg, fsig))
+                         if (mini_is_gsharedvt_signature (fsig))
                          GSHAREDVT_FAILURE (*ip);
                          }
                        */
@@ -8825,10 +8827,10 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                        n = fsig->param_count + fsig->hasthis;
 
-                       if (!cfg->generic_sharing_context && cmethod->klass->generic_container)
+                       if (!cfg->gshared && cmethod->klass->generic_container)
                                UNVERIFIED;
 
-                       if (!cfg->generic_sharing_context)
+                       if (!cfg->gshared)
                                g_assert (!mono_method_check_context_used (cmethod));
 
                        CHECK_STACK (n);
@@ -8838,13 +8840,13 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        sp -= n;
 
                        if (constrained_class) {
-                               if (mini_is_gsharedvt_klass (cfg, constrained_class)) {
+                               if (mini_is_gsharedvt_klass (constrained_class)) {
                                        if ((cmethod->klass != mono_defaults.object_class) && constrained_class->valuetype && cmethod->klass->valuetype) {
                                                /* The 'Own method' case below */
                                        } else if (cmethod->klass->image != mono_defaults.corlib && !(cmethod->klass->flags & TYPE_ATTRIBUTE_INTERFACE) && !cmethod->klass->valuetype) {
                                                /* 'The type parameter is instantiated as a reference type' case below. */
                                        } else {
-                                               ins = handle_constrained_gsharedvt_call (cfg, cmethod, fsig, sp, constrained_class, &emit_widen, &bblock);
+                                               ins = handle_constrained_gsharedvt_call (cfg, cmethod, fsig, sp, constrained_class, &emit_widen);
                                                CHECK_CFG_EXCEPTION;
                                                g_assert (ins);
                                                goto call_end;
@@ -8872,7 +8874,13 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                                need_box = FALSE;
                                        }
 
-                                       if (need_box) {
+                                       if (!(cmethod->flags & METHOD_ATTRIBUTE_VIRTUAL) && (cmethod->klass == mono_defaults.object_class || cmethod->klass == mono_defaults.enum_class->parent || cmethod->klass == mono_defaults.enum_class)) {
+                                               /* The called method is not virtual, i.e. Object:GetType (), the receiver is a vtype, has to box */
+                                               EMIT_NEW_LOAD_MEMBASE_TYPE (cfg, ins, &constrained_class->byval_arg, sp [0]->dreg, 0);
+                                               ins->klass = constrained_class;
+                                               sp [0] = handle_box (cfg, ins, constrained_class, mono_class_check_context_used (constrained_class));
+                                               CHECK_CFG_EXCEPTION;
+                                       } else if (need_box) {
                                                MonoInst *box_type;
                                                MonoBasicBlock *is_ref_bb, *end_bb;
                                                MonoInst *nonbox_call;
@@ -8901,21 +8909,22 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                                MONO_START_BB (cfg, is_ref_bb);
                                                EMIT_NEW_LOAD_MEMBASE_TYPE (cfg, ins, &constrained_class->byval_arg, sp [0]->dreg, 0);
                                                ins->klass = constrained_class;
-                                               sp [0] = handle_box (cfg, ins, constrained_class, mono_class_check_context_used (constrained_class), &bblock);
+                                               sp [0] = handle_box (cfg, ins, constrained_class, mono_class_check_context_used (constrained_class));
                                                ins = (MonoInst*)mono_emit_calli (cfg, fsig, sp, addr, NULL, NULL);
 
                                                MONO_EMIT_NEW_BRANCH_BLOCK (cfg, OP_BR, end_bb);
 
                                                MONO_START_BB (cfg, end_bb);
-                                               bblock = end_bb;
+                                               cfg->cbb = end_bb;
 
                                                nonbox_call->dreg = ins->dreg;
+                                               goto call_end;
                                        } else {
                                                g_assert (cmethod->klass->flags & TYPE_ATTRIBUTE_INTERFACE);
                                                addr = emit_get_rgctx_virt_method (cfg, mono_class_check_context_used (constrained_class), constrained_class, cmethod, MONO_RGCTX_INFO_VIRT_METHOD_CODE);
                                                ins = (MonoInst*)mono_emit_calli (cfg, fsig, sp, addr, NULL, NULL);
+                                               goto call_end;
                                        }
-                                       goto call_end;
                                } else if (constrained_class->valuetype && (cmethod->klass == mono_defaults.object_class || cmethod->klass == mono_defaults.enum_class->parent || cmethod->klass == mono_defaults.enum_class)) {
                                        /*
                                         * The type parameter is instantiated as a valuetype,
@@ -8924,7 +8933,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                         */
                                        EMIT_NEW_LOAD_MEMBASE_TYPE (cfg, ins, &constrained_class->byval_arg, sp [0]->dreg, 0);
                                        ins->klass = constrained_class;
-                                       sp [0] = handle_box (cfg, ins, constrained_class, mono_class_check_context_used (constrained_class), &bblock);
+                                       sp [0] = handle_box (cfg, ins, constrained_class, mono_class_check_context_used (constrained_class));
                                        CHECK_CFG_EXCEPTION;
                                } else if (!constrained_class->valuetype) {
                                        int dreg = alloc_ireg_ref (cfg);
@@ -8958,7 +8967,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                                        /* Enum implements some interfaces, so treat this as the first case */
                                                        EMIT_NEW_LOAD_MEMBASE_TYPE (cfg, ins, &constrained_class->byval_arg, sp [0]->dreg, 0);
                                                        ins->klass = constrained_class;
-                                                       sp [0] = handle_box (cfg, ins, constrained_class, mono_class_check_context_used (constrained_class), &bblock);
+                                                       sp [0] = handle_box (cfg, ins, constrained_class, mono_class_check_context_used (constrained_class));
                                                        CHECK_CFG_EXCEPTION;
                                                }
                                        }
@@ -8974,7 +8983,6 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                delegate_invoke = TRUE;
 
                        if ((cfg->opt & MONO_OPT_INTRINS) && (ins = mini_emit_inst_for_sharable_method (cfg, cmethod, fsig, sp))) {
-                               bblock = cfg->cbb;
                                if (!MONO_TYPE_IS_VOID (fsig->ret)) {
                                        type_to_eval_stack_type ((cfg), fsig->ret, ins);
                                        emit_widen = FALSE;
@@ -8987,14 +8995,14 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                         * If the callee is a shared method, then its static cctor
                         * might not get called after the call was patched.
                         */
-                       if (cfg->generic_sharing_context && cmethod->klass != method->klass && cmethod->klass->generic_class && mono_method_is_generic_sharable (cmethod, TRUE) && mono_class_needs_cctor_run (cmethod->klass, method)) {
-                               emit_generic_class_init (cfg, cmethod->klass, &bblock);
+                       if (cfg->gshared && cmethod->klass != method->klass && cmethod->klass->generic_class && mono_method_is_generic_sharable (cmethod, TRUE) && mono_class_needs_cctor_run (cmethod->klass, method)) {
+                               emit_class_init (cfg, cmethod->klass);
                                CHECK_TYPELOAD (cmethod->klass);
                        }
 
                        check_method_sharing (cfg, cmethod, &pass_vtable, &pass_mrgctx);
 
-                       if (cfg->generic_sharing_context) {
+                       if (cfg->gshared) {
                                MonoGenericContext *cmethod_context = mono_method_get_context (cmethod);
 
                                context_used = mini_method_check_context_used (cfg, cmethod);
@@ -9074,7 +9082,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                            !(MONO_METHOD_IS_FINAL (cmethod) && 
                              cmethod->wrapper_type != MONO_WRAPPER_REMOTING_INVOKE_WITH_CHECK) &&
                            fsig->generic_param_count && 
-                               !(cfg->gsharedvt && mini_is_gsharedvt_signature (cfg, fsig))) {
+                               !(cfg->gsharedvt && mini_is_gsharedvt_signature (fsig))) {
                                MonoInst *this_temp, *this_arg_temp, *store;
                                MonoInst *iargs [4];
                                gboolean use_imt = FALSE;
@@ -9084,7 +9092,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                /* Prevent inlining of methods that contain indirect calls */
                                INLINE_FAILURE ("virtual generic call");
 
-                               if (cfg->gsharedvt && mini_is_gsharedvt_signature (cfg, fsig))
+                               if (cfg->gsharedvt && mini_is_gsharedvt_signature (fsig))
                                        GSHAREDVT_FAILURE (*ip);
 
 #if MONO_ARCH_HAVE_GENERALIZED_IMT_THUNK && defined(MONO_ARCH_GSHARED_SUPPORTED)
@@ -9102,7 +9110,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                } else {
                                        this_temp = mono_compile_create_var (cfg, type_from_stack_type (sp [0]), OP_LOCAL);
                                        NEW_TEMPSTORE (cfg, store, this_temp->inst_c0, sp [0]);
-                                       MONO_ADD_INS (bblock, store);
+                                       MONO_ADD_INS (cfg->cbb, store);
 
                                        /* FIXME: This should be a managed pointer */
                                        this_arg_temp = mono_compile_create_var (cfg, &mono_defaults.int_class->byval_arg, OP_LOCAL);
@@ -9151,7 +9159,6 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                        /* Conversion to a JIT intrinsic */
                        if ((cfg->opt & MONO_OPT_INTRINS) && (ins = mini_emit_inst_for_method (cfg, cmethod, fsig, sp))) {
-                               bblock = cfg->cbb;
                                if (!MONO_TYPE_IS_VOID (fsig->ret)) {
                                        type_to_eval_stack_type ((cfg), fsig->ret, ins);
                                        emit_widen = FALSE;
@@ -9170,11 +9177,11 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        (cmethod->flags & METHOD_ATTRIBUTE_PINVOKE_IMPL)) {
                                        /* Prevent inlining of methods that call wrappers */
                                        INLINE_FAILURE ("wrapper call");
-                                       cmethod = mono_marshal_get_native_wrapper (cmethod, check_for_pending_exc, FALSE);
+                                       cmethod = mono_marshal_get_native_wrapper (cmethod, TRUE, FALSE);
                                        always = TRUE;
                                }
 
-                               costs = inline_method (cfg, cmethod, fsig, sp, ip, cfg->real_offset, always, &bblock);
+                               costs = inline_method (cfg, cmethod, fsig, sp, ip, cfg->real_offset, always);
                                if (costs) {
                                        cfg->real_offset += 5;
 
@@ -9208,14 +9215,14 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        for (i = 0; i < n; ++i)
                                                EMIT_NEW_ARGSTORE (cfg, ins, i, sp [i]);
                                        MONO_INST_NEW (cfg, ins, OP_BR);
-                                       MONO_ADD_INS (bblock, ins);
+                                       MONO_ADD_INS (cfg->cbb, ins);
                                        tblock = start_bblock->out_bb [0];
-                                       link_bblock (cfg, bblock, tblock);
+                                       link_bblock (cfg, cfg->cbb, tblock);
                                        ins->inst_target_bb = tblock;
                                        start_new_bblock = 1;
 
                                        /* skip the CEE_RET, too */
-                                       if (ip_in_bb (cfg, bblock, ip + 5))
+                                       if (ip_in_bb (cfg, cfg->cbb, ip + 5))
                                                skip_ret = TRUE;
                                        push_res = FALSE;
                                        goto call_end;
@@ -9229,7 +9236,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                         * This needs to be used for all generic calls, not just ones with a gsharedvt signature, to avoid
                         * patching gshared method addresses into a gsharedvt method.
                         */
-                       if (cfg->gsharedvt && (mini_is_gsharedvt_signature (cfg, fsig) || cmethod->is_inflated || cmethod->klass->generic_class) &&
+                       if (cfg->gsharedvt && (mini_is_gsharedvt_signature (fsig) || cmethod->is_inflated || cmethod->klass->generic_class) &&
                                !(cmethod->klass->rank && cmethod->klass->byval_arg.type != MONO_TYPE_SZARRAY)) {
                                MonoRgctxInfoType info_type;
 
@@ -9282,7 +9289,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                 !(cmethod->flags & METHOD_ATTRIBUTE_VIRTUAL))) {
                                INLINE_FAILURE ("gshared");
 
-                               g_assert (cfg->generic_sharing_context && cmethod);
+                               g_assert (cfg->gshared && cmethod);
                                g_assert (!addr);
 
                                /*
@@ -9308,7 +9315,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                /* Inline the wrapper */
                                wrapper = mono_marshal_get_native_wrapper (cmethod, TRUE, cfg->compile_aot);
 
-                               costs = inline_method (cfg, wrapper, fsig, sp, ip, cfg->real_offset, TRUE, &bblock);
+                               costs = inline_method (cfg, wrapper, fsig, sp, ip, cfg->real_offset, TRUE);
                                g_assert (costs > 0);
                                cfg->real_offset += 5;
 
@@ -9343,7 +9350,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        EMIT_NEW_STORE_MEMBASE_TYPE (cfg, ins, fsig->params [fsig->param_count - 1], addr->dreg, 0, val->dreg);
                                        if (cfg->gen_write_barriers && val->type == STACK_OBJ && !(val->opcode == OP_PCONST && val->inst_c0 == 0))
                                                emit_write_barrier (cfg, addr, val);
-                                       if (cfg->gen_write_barriers && mini_is_gsharedvt_klass (cfg, cmethod->klass))
+                                       if (cfg->gen_write_barriers && mini_is_gsharedvt_klass (cmethod->klass))
                                                GSHAREDVT_FAILURE (*ip);
                                } else if (strcmp (cmethod->name, "Get") == 0) { /* array Get */
                                        addr = mini_emit_ldelema_ins (cfg, cmethod, sp, ip, FALSE);
@@ -9375,7 +9382,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        /* FIXME: runtime generic context pointer for jumps? */
                        /* FIXME: handle this for generic sharing eventually */
                        if ((ins_flag & MONO_INST_TAILCALL) &&
-                               !vtable_arg && !cfg->generic_sharing_context && is_supported_tail_call (cfg, method, cmethod, fsig, call_opcode))
+                               !vtable_arg && !cfg->gshared && is_supported_tail_call (cfg, method, cmethod, fsig, call_opcode))
                                supported_tail_call = TRUE;
 
                        if (supported_tail_call) {
@@ -9409,8 +9416,8 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        ins = (MonoInst*)call;
                                        ins->inst_p0 = cmethod;
                                        ins->inst_p1 = arg_array [0];
-                                       MONO_ADD_INS (bblock, ins);
-                                       link_bblock (cfg, bblock, end_bblock);                  
+                                       MONO_ADD_INS (cfg->cbb, ins);
+                                       link_bblock (cfg, cfg->cbb, end_bblock);
                                        start_new_bblock = 1;
 
                                        // FIXME: Eliminate unreachable epilogs
@@ -9420,7 +9427,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                         * only reachable from this call.
                                         */
                                        GET_BBLOCK (cfg, tblock, ip + 5);
-                                       if (tblock == bblock || tblock->in_count == 0)
+                                       if (tblock == cfg->cbb || tblock->in_count == 0)
                                                skip_ret = TRUE;
                                        push_res = FALSE;
 
@@ -9448,7 +9455,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                                                                          imt_arg, vtable_arg);
 
                        if (tail_call) {
-                               link_bblock (cfg, bblock, end_bblock);                  
+                               link_bblock (cfg, cfg->cbb, end_bblock);
                                start_new_bblock = 1;
 
                                // FIXME: Eliminate unreachable epilogs
@@ -9458,7 +9465,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                 * only reachable from this call.
                                 */
                                GET_BBLOCK (cfg, tblock, ip + 5);
-                               if (tblock == bblock || tblock->in_count == 0)
+                               if (tblock == cfg->cbb || tblock->in_count == 0)
                                        skip_ret = TRUE;
                                push_res = FALSE;
                        }
@@ -9525,7 +9532,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        emit_pop_lmf (cfg);
 
                                if (cfg->ret) {
-                                       MonoType *ret_type = mini_get_underlying_type (cfg, mono_method_signature (method)->ret);
+                                       MonoType *ret_type = mini_get_underlying_type (mono_method_signature (method)->ret);
 
                                        if (seq_points && !sym_seq_points) {
                                                /* 
@@ -9582,8 +9589,8 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        MONO_INST_NEW (cfg, ins, OP_BR);
                        ip++;
                        ins->inst_target_bb = end_bblock;
-                       MONO_ADD_INS (bblock, ins);
-                       link_bblock (cfg, bblock, end_bblock);
+                       MONO_ADD_INS (cfg->cbb, ins);
+                       link_bblock (cfg, cfg->cbb, end_bblock);
                        start_new_bblock = 1;
                        break;
                case CEE_BR_S:
@@ -9593,14 +9600,14 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        target = ip + 1 + (signed char)(*ip);
                        ++ip;
                        GET_BBLOCK (cfg, tblock, target);
-                       link_bblock (cfg, bblock, tblock);
+                       link_bblock (cfg, cfg->cbb, tblock);
                        ins->inst_target_bb = tblock;
                        if (sp != stack_start) {
                                handle_stack_args (cfg, stack_start, sp - stack_start);
                                sp = stack_start;
                                CHECK_UNVERIFIABLE (cfg);
                        }
-                       MONO_ADD_INS (bblock, ins);
+                       MONO_ADD_INS (cfg->cbb, ins);
                        start_new_bblock = 1;
                        inline_costs += BRANCH_COST;
                        break;
@@ -9634,7 +9641,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        target = ip + 4 + (gint32)read32(ip);
                        ip += 4;
                        GET_BBLOCK (cfg, tblock, target);
-                       link_bblock (cfg, bblock, tblock);
+                       link_bblock (cfg, cfg->cbb, tblock);
                        ins->inst_target_bb = tblock;
                        if (sp != stack_start) {
                                handle_stack_args (cfg, stack_start, sp - stack_start);
@@ -9642,7 +9649,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                CHECK_UNVERIFIABLE (cfg);
                        }
 
-                       MONO_ADD_INS (bblock, ins);
+                       MONO_ADD_INS (cfg->cbb, ins);
 
                        start_new_bblock = 1;
                        inline_costs += BRANCH_COST;
@@ -9667,9 +9674,9 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        sp--;
 
                        GET_BBLOCK (cfg, tblock, target);
-                       link_bblock (cfg, bblock, tblock);
+                       link_bblock (cfg, cfg->cbb, tblock);
                        GET_BBLOCK (cfg, tblock, ip);
-                       link_bblock (cfg, bblock, tblock);
+                       link_bblock (cfg, cfg->cbb, tblock);
 
                        if (sp != stack_start) {
                                handle_stack_args (cfg, stack_start, sp - stack_start);
@@ -9688,16 +9695,16 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                ins->type = STACK_I8;
                                ins->dreg = alloc_dreg (cfg, STACK_I8);
                                ins->inst_l = 0;
-                               MONO_ADD_INS (bblock, ins);
+                               MONO_ADD_INS (cfg->cbb, ins);
                                cmp->opcode = OP_LCOMPARE;
                                cmp->sreg2 = ins->dreg;
                        }
 #endif
-                       MONO_ADD_INS (bblock, cmp);
+                       MONO_ADD_INS (cfg->cbb, cmp);
 
                        MONO_INST_NEW (cfg, ins, is_true ? CEE_BNE_UN : CEE_BEQ);
                        type_from_op (cfg, ins, sp [0], NULL);
-                       MONO_ADD_INS (bblock, ins);
+                       MONO_ADD_INS (cfg->cbb, ins);
                        ins->inst_many_bb = mono_mempool_alloc (cfg->mempool, sizeof(gpointer)*2);
                        GET_BBLOCK (cfg, tblock, target);
                        ins->inst_true_bb = tblock;
@@ -9770,9 +9777,9 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                 * Link the current bb with the targets as well, so handle_stack_args
                                 * will set their in_stack correctly.
                                 */
-                               link_bblock (cfg, bblock, default_bblock);
+                               link_bblock (cfg, cfg->cbb, default_bblock);
                                for (i = 0; i < n; ++i)
-                                       link_bblock (cfg, bblock, targets [i]);
+                                       link_bblock (cfg, cfg->cbb, targets [i]);
 
                                handle_stack_args (cfg, stack_start, sp - stack_start);
                                sp = stack_start;
@@ -9781,10 +9788,9 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                        MONO_EMIT_NEW_BIALU_IMM (cfg, OP_ICOMPARE_IMM, -1, src1->dreg, n);
                        MONO_EMIT_NEW_BRANCH_BLOCK (cfg, OP_IBGE_UN, default_bblock);
-                       bblock = cfg->cbb;
 
                        for (i = 0; i < n; ++i)
-                               link_bblock (cfg, bblock, targets [i]);
+                               link_bblock (cfg, cfg->cbb, targets [i]);
 
                        table = mono_mempool_alloc (cfg->mempool, sizeof (MonoJumpInfoBBTable));
                        table->table = targets;
@@ -9874,7 +9880,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        if (*ip == CEE_LDIND_R4)
                                ins->type = cfg->r4_stack_type;
                        ins->flags |= ins_flag;
-                       MONO_ADD_INS (bblock, ins);
+                       MONO_ADD_INS (cfg->cbb, ins);
                        *sp++ = ins;
                        if (ins_flag & MONO_INST_VOLATILE) {
                                /* Volatile loads have acquire semantics, see 12.6.7 in Ecma 335 */
@@ -9903,7 +9909,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        ins->flags |= ins_flag;
                        ins_flag = 0;
 
-                       MONO_ADD_INS (bblock, ins);
+                       MONO_ADD_INS (cfg->cbb, ins);
 
                        if (cfg->gen_write_barriers && *ip == CEE_STIND_REF && method->wrapper_type != MONO_WRAPPER_WRITE_BARRIER && !((sp [1]->opcode == OP_PCONST) && (sp [1]->inst_p0 == 0)))
                                emit_write_barrier (cfg, sp [0], sp [1]);
@@ -9937,7 +9943,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                        MONO_ADD_INS ((cfg)->cbb, (ins));
 
-                       *sp++ = mono_decompose_opcode (cfg, ins, &bblock);
+                       *sp++ = mono_decompose_opcode (cfg, ins);
                        ip++;
                        break;
                case CEE_ADD:
@@ -9997,7 +10003,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        }
                        MONO_ADD_INS ((cfg)->cbb, (ins));
 
-                       *sp++ = mono_decompose_opcode (cfg, ins, &bblock);
+                       *sp++ = mono_decompose_opcode (cfg, ins);
                        ip++;
                        break;
                case CEE_NEG:
@@ -10152,7 +10158,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                break;
                        }
 
-                       if ((loc_index != -1) && ip_in_bb (cfg, bblock, ip + 5)) {
+                       if ((loc_index != -1) && ip_in_bb (cfg, cfg->cbb, ip + 5)) {
                                CHECK_LOCAL (loc_index);
 
                                EMIT_NEW_LOAD_MEMBASE_TYPE (cfg, ins, &klass->byval_arg, sp [0]->dreg, 0);
@@ -10171,7 +10177,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        /* Optimize the ldobj+stobj combination */
                        /* The reference case ends up being a load+store anyway */
                        /* Skip this if the operation is volatile. */
-                       if (((ip [5] == CEE_STOBJ) && ip_in_bb (cfg, bblock, ip + 5) && read32 (ip + 6) == token) && !generic_class_is_reference_type (cfg, klass) && !(ins_flag & MONO_INST_VOLATILE)) {
+                       if (((ip [5] == CEE_STOBJ) && ip_in_bb (cfg, cfg->cbb, ip + 5) && read32 (ip + 6) == token) && !generic_class_is_reference_type (cfg, klass) && !(ins_flag & MONO_INST_VOLATILE)) {
                                CHECK_STACK (1);
 
                                sp --;
@@ -10229,7 +10235,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        *sp = mono_emit_jit_icall (cfg, mono_ldstr, iargs);
                                        mono_ldstr (cfg->domain, image, mono_metadata_token_index (n));
                                } else {
-                                       if (bblock->out_of_line) {
+                                       if (cfg->cbb->out_of_line) {
                                                MonoInst *iargs [2];
 
                                                if (image == mono_defaults.corlib) {
@@ -10250,7 +10256,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        if (cfg->compile_aot) {
                                                NEW_LDSTRCONST (cfg, ins, image, n);
                                                *sp = ins;
-                                               MONO_ADD_INS (bblock, ins);
+                                               MONO_ADD_INS (cfg->cbb, ins);
                                        } 
                                        else {
                                                NEW_PCONST (cfg, ins, NULL);
@@ -10260,7 +10266,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                                        OUT_OF_MEMORY_FAILURE;
 
                                                *sp = ins;
-                                               MONO_ADD_INS (bblock, ins);
+                                               MONO_ADD_INS (cfg->cbb, ins);
                                        }
                                }
                        }
@@ -10291,10 +10297,10 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        context_used = mini_method_check_context_used (cfg, cmethod);
 
                        if (mono_security_core_clr_enabled ())
-                               ensure_method_is_allowed_to_call_method (cfg, method, cmethod, bblock, ip);
+                               ensure_method_is_allowed_to_call_method (cfg, method, cmethod);
 
-                       if (cfg->generic_sharing_context && cmethod && cmethod->klass != method->klass && cmethod->klass->generic_class && mono_method_is_generic_sharable (cmethod, TRUE) && mono_class_needs_cctor_run (cmethod->klass, method)) {
-                               emit_generic_class_init (cfg, cmethod->klass, &bblock);
+                       if (cfg->gshared && cmethod && cmethod->klass != method->klass && cmethod->klass->generic_class && mono_method_is_generic_sharable (cmethod, TRUE) && mono_class_needs_cctor_run (cmethod->klass, method)) {
+                               emit_class_init (cfg, cmethod->klass);
                                CHECK_TYPELOAD (cmethod->klass);
                        }
 
@@ -10312,7 +10318,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                         * Generate smaller code for the common newobj <exception> instruction in
                         * argument checking code.
                         */
-                       if (bblock->out_of_line && cmethod->klass->image == mono_defaults.corlib &&
+                       if (cfg->cbb->out_of_line && cmethod->klass->image == mono_defaults.corlib &&
                                is_exception_class (cmethod->klass) && n <= 2 &&
                                ((n < 1) || (!fsig->params [0]->byref && fsig->params [0]->type == MONO_TYPE_STRING)) && 
                                ((n < 2) || (!fsig->params [1]->byref && fsig->params [1]->type == MONO_TYPE_STRING))) {
@@ -10408,7 +10414,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                         * As a workaround, we call class cctors before allocating objects.
                                         */
                                        if (mini_field_access_needs_cctor_run (cfg, method, cmethod->klass, vtable) && !(g_slist_find (class_inits, cmethod->klass))) {
-                                               emit_class_init (cfg, cmethod->klass, &bblock);
+                                               emit_class_init (cfg, cmethod->klass);
                                                if (cfg->verbose_level > 2)
                                                        printf ("class %s.%s needs init call for ctor\n", cmethod->klass->name_space, cmethod->klass->name);
                                                class_inits = g_slist_prepend (class_inits, cmethod->klass);
@@ -10423,7 +10429,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        MONO_EMIT_NEW_UNALU (cfg, OP_NOT_NULL, -1, alloc->dreg);
 
                                /* Now call the actual ctor */
-                               handle_ctor_call (cfg, cmethod, fsig, context_used, sp, ip, &bblock, &inline_costs);
+                               handle_ctor_call (cfg, cmethod, fsig, context_used, sp, ip, &inline_costs);
                                CHECK_CFG_EXCEPTION;
                        }
 
@@ -10452,7 +10458,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        if (sp [0]->type != STACK_OBJ)
                                UNVERIFIED;
 
-                       ins = handle_castclass (cfg, klass, *sp, ip, &bblock, &inline_costs);
+                       ins = handle_castclass (cfg, klass, *sp, ip, &inline_costs);
                        CHECK_CFG_EXCEPTION;
 
                        *sp ++ = ins;
@@ -10501,7 +10507,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                iargs [0] = sp [0];
 
                                costs = inline_method (cfg, mono_isinst, mono_method_signature (mono_isinst), 
-                                                                          iargs, ip, cfg->real_offset, TRUE, &bblock);
+                                                                          iargs, ip, cfg->real_offset, TRUE);
                                CHECK_CFG_EXCEPTION;
                                g_assert (costs > 0);
                                
@@ -10515,7 +10521,6 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        else {
                                ins = handle_isinst (cfg, klass, *sp, context_used);
                                CHECK_CFG_EXCEPTION;
-                               bblock = cfg->cbb;
                                *sp ++ = ins;
                                ip += 5;
                        }
@@ -10535,11 +10540,11 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                        context_used = mini_class_check_context_used (cfg, klass);
 
-                       if (mini_is_gsharedvt_klass (cfg, klass)) {
-                               res = handle_unbox_gsharedvt (cfg, klass, *sp, &bblock);
+                       if (mini_is_gsharedvt_klass (klass)) {
+                               res = handle_unbox_gsharedvt (cfg, klass, *sp);
                                inline_costs += 2;
                        } else if (generic_class_is_reference_type (cfg, klass)) {
-                               res = handle_castclass (cfg, klass, *sp, ip, &bblock, &inline_costs);
+                               res = handle_castclass (cfg, klass, *sp, ip, &inline_costs);
                                CHECK_CFG_EXCEPTION;
                        } else if (mono_class_is_nullable (klass)) {
                                res = handle_unbox_nullable (cfg, *sp, klass, context_used);
@@ -10603,7 +10608,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                            ip [5] == CEE_PREFIX1 &&
                            ip [6] == CEE_CONSTRAINED_ &&
                            ip [11] == CEE_CALLVIRT &&
-                           ip_in_bb (cfg, bblock, ip + 5 + 6 + 5) &&
+                           ip_in_bb (cfg, cfg->cbb, ip + 5 + 6 + 5) &&
                            mono_class_is_enum (klass) &&
                            (enum_class = mini_get_class (method, read32 (ip + 7), generic_context)) &&
                            (has_flag = mini_get_method (cfg, method, read32 (ip + 12), NULL, generic_context)) &&
@@ -10629,7 +10634,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                        // FIXME: LLVM can't handle the inconsistent bb linking
                        if (!mono_class_is_nullable (klass) &&
-                               ip + 5 < end && ip_in_bb (cfg, bblock, ip + 5) &&
+                               ip + 5 < end && ip_in_bb (cfg, cfg->cbb, ip + 5) &&
                                (ip [5] == CEE_BRTRUE || 
                                 ip [5] == CEE_BRTRUE_S ||
                                 ip [5] == CEE_BRFALSE ||
@@ -10641,7 +10646,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                ip += 5;
 
                                if (cfg->verbose_level > 3) {
-                                       printf ("converting (in B%d: stack: %d) %s", bblock->block_num, (int)(sp - stack_start), mono_disasm_code_one (NULL, method, ip, NULL));
+                                       printf ("converting (in B%d: stack: %d) %s", cfg->cbb->block_num, (int)(sp - stack_start), mono_disasm_code_one (NULL, method, ip, NULL));
                                        printf ("<box+brtrue opt>\n");
                                }
 
@@ -10699,7 +10704,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                break;
                        }
 
-                       *sp++ = handle_box (cfg, val, klass, context_used, &bblock);
+                       *sp++ = handle_box (cfg, val, klass, context_used);
 
                        CHECK_CFG_EXCEPTION;
                        ip += 5;
@@ -10791,19 +10796,21 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                        /* if the class is Critical then transparent code cannot access it's fields */
                        if (!is_instance && mono_security_core_clr_enabled ())
-                               ensure_method_is_allowed_to_access_field (cfg, method, field, bblock, ip);
+                               ensure_method_is_allowed_to_access_field (cfg, method, field);
 
                        /* XXX this is technically required but, so far (SL2), no [SecurityCritical] types (not many exists) have
                           any visible *instance* field  (in fact there's a single case for a static field in Marshal) XXX
                        if (mono_security_core_clr_enabled ())
-                               ensure_method_is_allowed_to_access_field (cfg, method, field, bblock, ip);
+                               ensure_method_is_allowed_to_access_field (cfg, method, field);
                        */
 
+                       ftype = mono_field_get_type (field);
+
                        /*
                         * LDFLD etc. is usable on static fields as well, so convert those cases to
                         * the static case.
                         */
-                       if (is_instance && field->type->attrs & FIELD_ATTRIBUTE_STATIC) {
+                       if (is_instance && ftype->attrs & FIELD_ATTRIBUTE_STATIC) {
                                switch (op) {
                                case CEE_LDFLD:
                                        op = CEE_LDSFLD;
@@ -10844,7 +10851,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                                        if (cfg->opt & MONO_OPT_INLINE || cfg->compile_aot) {
                                                costs = inline_method (cfg, stfld_wrapper, mono_method_signature (stfld_wrapper), 
-                                                                                          iargs, ip, cfg->real_offset, TRUE, &bblock);
+                                                                                          iargs, ip, cfg->real_offset, TRUE);
                                                CHECK_CFG_EXCEPTION;
                                                g_assert (costs > 0);
                                                      
@@ -10861,7 +10868,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                                        MONO_EMIT_NULL_CHECK (cfg, sp [0]->dreg);
 
-                                       if (mini_is_gsharedvt_klass (cfg, klass)) {
+                                       if (mini_is_gsharedvt_klass (klass)) {
                                                MonoInst *offset_ins;
 
                                                context_used = mini_class_check_context_used (cfg, klass);
@@ -10907,7 +10914,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                EMIT_NEW_ICONST (cfg, iargs [3], klass->valuetype ? field->offset - sizeof (MonoObject) : field->offset);
                                if (cfg->opt & MONO_OPT_INLINE || cfg->compile_aot) {
                                        costs = inline_method (cfg, wrapper, mono_method_signature (wrapper), 
-                                                                                  iargs, ip, cfg->real_offset, TRUE, &bblock);
+                                                                                  iargs, ip, cfg->real_offset, TRUE);
                                        CHECK_CFG_EXCEPTION;
                                        g_assert (costs > 0);
                                                      
@@ -10946,7 +10953,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                                        dreg = alloc_ireg_mp (cfg);
 
-                                       if (mini_is_gsharedvt_klass (cfg, klass)) {
+                                       if (mini_is_gsharedvt_klass (klass)) {
                                                MonoInst *offset_ins;
 
                                                offset_ins = emit_get_gsharedvt_info (cfg, field, MONO_RGCTX_INFO_FIELD_OFFSET);
@@ -10962,7 +10969,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                                        MONO_EMIT_NULL_CHECK (cfg, sp [0]->dreg);
 
-                                       if (mini_is_gsharedvt_klass (cfg, klass)) {
+                                       if (mini_is_gsharedvt_klass (klass)) {
                                                MonoInst *offset_ins;
 
                                                offset_ins = emit_get_gsharedvt_info (cfg, field, MONO_RGCTX_INFO_FIELD_OFFSET);
@@ -10988,8 +10995,6 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        /* STATIC CASE */
                        context_used = mini_class_check_context_used (cfg, klass);
 
-                       ftype = mono_field_get_type (field);
-
                        if (ftype->attrs & FIELD_ATTRIBUTE_LITERAL)
                                UNVERIFIED;
 
@@ -11079,7 +11084,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                */
 
                                if (mono_class_needs_cctor_run (klass, method))
-                                       emit_generic_class_init (cfg, klass, &bblock);
+                                       emit_class_init (cfg, klass);
 
                                /*
                                 * The pointer we're computing here is
@@ -11089,7 +11094,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                static_data = emit_get_rgctx_klass (cfg, context_used,
                                        klass, MONO_RGCTX_INFO_STATIC_DATA);
 
-                               if (mini_is_gsharedvt_klass (cfg, klass)) {
+                               if (mini_is_gsharedvt_klass (klass)) {
                                        MonoInst *offset_ins;
 
                                        offset_ins = emit_get_rgctx_field (cfg, context_used, field, MONO_RGCTX_INFO_FIELD_OFFSET);
@@ -11118,7 +11123,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                if (!addr) {
                                        if (mini_field_access_needs_cctor_run (cfg, method, klass, vtable)) {
                                                if (!(g_slist_find (class_inits, klass))) {
-                                                       emit_class_init (cfg, klass, &bblock);
+                                                       emit_class_init (cfg, klass);
                                                        if (cfg->verbose_level > 2)
                                                                printf ("class %s.%s needs init call for %s\n", klass->name_space, klass->name, mono_field_get_name (field));
                                                        class_inits = g_slist_prepend (class_inits, klass);
@@ -11326,7 +11331,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                ins->type = STACK_I4;
                                ins->dreg = alloc_ireg (cfg);
                                MONO_ADD_INS (cfg->cbb, ins);
-                               *sp = mono_decompose_opcode (cfg, ins, &bblock);
+                               *sp = mono_decompose_opcode (cfg, ins);
                        }
 
                        if (context_used) {
@@ -11388,7 +11393,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                         * for small sizes open code the memcpy
                         * ensure the rva field is big enough
                         */
-                       if ((cfg->opt & MONO_OPT_INTRINS) && ip + 6 < end && ip_in_bb (cfg, bblock, ip + 6) && (len_ins->opcode == OP_ICONST) && (data_ptr = initialize_array_data (method, cfg->compile_aot, ip, klass, len_ins->inst_c0, &data_size, &field_token))) {
+                       if ((cfg->opt & MONO_OPT_INTRINS) && ip + 6 < end && ip_in_bb (cfg, cfg->cbb, ip + 6) && (len_ins->opcode == OP_ICONST) && (data_ptr = initialize_array_data (method, cfg->compile_aot, ip, klass, len_ins->inst_c0, &data_size, &field_token))) {
                                MonoMethod *memcpy_method = get_memcpy_method ();
                                MonoInst *iargs [3];
                                int add_reg = alloc_ireg_mp (cfg);
@@ -11482,7 +11487,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                        cfg->flags |= MONO_CFG_HAS_LDELEMA;
 
-                       if (mini_is_gsharedvt_variable_klass (cfg, klass)) {
+                       if (mini_is_gsharedvt_variable_klass (klass)) {
                                // FIXME-VT: OP_ICONST optimization
                                addr = mini_emit_ldelema_1_ins (cfg, klass, sp [0], sp [1], TRUE);
                                EMIT_NEW_LOAD_MEMBASE_TYPE (cfg, ins, &klass->byval_arg, addr->dreg, 0);
@@ -11549,9 +11554,9 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        ins->sreg1 = sp [0]->dreg;
                        ins->dreg = alloc_freg (cfg);
                        ins->type = STACK_R8;
-                       MONO_ADD_INS (bblock, ins);
+                       MONO_ADD_INS (cfg->cbb, ins);
 
-                       *sp++ = mono_decompose_opcode (cfg, ins, &bblock);
+                       *sp++ = mono_decompose_opcode (cfg, ins);
 
                        ++ip;
                        break;
@@ -11594,6 +11599,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        }
                        EMIT_NEW_LOAD_MEMBASE (cfg, ins, OP_LOAD_MEMBASE, dreg, src->dreg, MONO_STRUCT_OFFSET (MonoTypedRef, value));
                        ins->type = STACK_MP;
+                       ins->klass = klass;
                        *sp++ = ins;
                        ip += 5;
                        break;
@@ -11667,7 +11673,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        if (!handle)
                                LOAD_ERROR;
                        mono_class_init (handle_class);
-                       if (cfg->generic_sharing_context) {
+                       if (cfg->gshared) {
                                if (mono_metadata_token_table (n) == MONO_TABLE_TYPEDEF ||
                                                mono_metadata_token_table (n) == MONO_TABLE_TYPEREF) {
                                        /* This case handles ldtoken
@@ -11710,7 +11716,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                                EMIT_NEW_TEMPLOAD (cfg, ins, vtvar->inst_c0);
                        } else {
-                               if ((ip + 5 < end) && ip_in_bb (cfg, bblock, ip + 5) && 
+                               if ((ip + 5 < end) && ip_in_bb (cfg, cfg->cbb, ip + 5) && 
                                        ((ip [5] == CEE_CALL) || (ip [5] == CEE_CALLVIRT)) && 
                                        (cmethod = mini_get_method (cfg, method, read32 (ip + 6), NULL, generic_context)) &&
                                        (cmethod->klass == mono_defaults.systemtype_class) &&
@@ -11782,13 +11788,13 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        --sp;
                        ins->sreg1 = sp [0]->dreg;
                        ip++;
-                       bblock->out_of_line = TRUE;
-                       MONO_ADD_INS (bblock, ins);
+                       cfg->cbb->out_of_line = TRUE;
+                       MONO_ADD_INS (cfg->cbb, ins);
                        MONO_INST_NEW (cfg, ins, OP_NOT_REACHED);
-                       MONO_ADD_INS (bblock, ins);
+                       MONO_ADD_INS (cfg->cbb, ins);
                        sp = stack_start;
                        
-                       link_bblock (cfg, bblock, end_bblock);
+                       link_bblock (cfg, cfg->cbb, end_bblock);
                        start_new_bblock = 1;
                        break;
                case CEE_ENDFINALLY:
@@ -11796,7 +11802,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        if (sp != stack_start)
                                emit_seq_point (cfg, method, ip, FALSE, FALSE);
                        MONO_INST_NEW (cfg, ins, OP_ENDFINALLY);
-                       MONO_ADD_INS (bblock, ins);
+                       MONO_ADD_INS (cfg->cbb, ins);
                        ip++;
                        start_new_bblock = 1;
 
@@ -11865,7 +11871,6 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        MONO_EMIT_NEW_UNALU (cfg, OP_THROW, -1, exc_ins->dreg);
 
                                        MONO_START_BB (cfg, dont_throw);
-                                       bblock = cfg->cbb;
                                }
                        }
 
@@ -11877,12 +11882,12 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        clause = tmp->data;
                                        tblock = cfg->cil_offset_to_bb [clause->handler_offset];
                                        g_assert (tblock);
-                                       link_bblock (cfg, bblock, tblock);
+                                       link_bblock (cfg, cfg->cbb, tblock);
                                        MONO_INST_NEW (cfg, ins, OP_CALL_HANDLER);
                                        ins->inst_target_bb = tblock;
                                        ins->inst_eh_block = clause;
-                                       MONO_ADD_INS (bblock, ins);
-                                       bblock->has_call_handler = 1;
+                                       MONO_ADD_INS (cfg->cbb, ins);
+                                       cfg->cbb->has_call_handler = 1;
                                        if (COMPILE_LLVM (cfg)) {
                                                MonoBasicBlock *target_bb;
 
@@ -11899,9 +11904,9 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        } 
 
                        MONO_INST_NEW (cfg, ins, OP_BR);
-                       MONO_ADD_INS (bblock, ins);
+                       MONO_ADD_INS (cfg->cbb, ins);
                        GET_BBLOCK (cfg, tblock, target);
-                       link_bblock (cfg, bblock, tblock);
+                       link_bblock (cfg, cfg->cbb, tblock);
                        ins->inst_target_bb = tblock;
                        start_new_bblock = 1;
 
@@ -12141,8 +12146,8 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                
                                MONO_INST_NEW (cfg, ins, OP_BR);
                                ins->inst_target_bb = end_bblock;
-                               MONO_ADD_INS (bblock, ins);
-                               link_bblock (cfg, bblock, end_bblock);
+                               MONO_ADD_INS (cfg->cbb, ins);
+                               link_bblock (cfg, cfg->cbb, end_bblock);
                                start_new_bblock = 1;
                                ip += 6;
                                break;
@@ -12159,7 +12164,6 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        ins = handle_cisinst (cfg, klass, sp [0]);
                                else
                                        ins = handle_ccastclass (cfg, klass, sp [0]);
-                               bblock = cfg->cbb;
                                *sp++ = ins;
                                ip += 6;
                                break;
@@ -12168,7 +12172,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        case CEE_MONO_RESTORE_LMF:
 #ifdef MONO_ARCH_HAVE_LMF_OPS
                                MONO_INST_NEW (cfg, ins, (ip [1] == CEE_MONO_SAVE_LMF) ? OP_SAVE_LMF : OP_RESTORE_LMF);
-                               MONO_ADD_INS (bblock, ins);
+                               MONO_ADD_INS (cfg->cbb, ins);
                                cfg->need_lmf_area = TRUE;
 #endif
                                ip += 2;
@@ -12183,7 +12187,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                inline_costs += 10 * num_calls++;
                                break;
                        case CEE_MONO_NOT_TAKEN:
-                               bblock->out_of_line = TRUE;
+                               cfg->cbb->out_of_line = TRUE;
                                ip += 2;
                                break;
                        case CEE_MONO_TLS: {
@@ -12206,7 +12210,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        }
                                }
                                ins->type = STACK_PTR;
-                               MONO_ADD_INS (bblock, ins);
+                               MONO_ADD_INS (cfg->cbb, ins);
                                *sp++ = ins;
                                ip += 6;
                                break;
@@ -12231,7 +12235,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                sp -= 2;
                                ins->sreg1 = sp [0]->dreg;
                                ins->sreg2 = sp [1]->dreg;
-                               MONO_ADD_INS (bblock, ins);
+                               MONO_ADD_INS (cfg->cbb, ins);
 
                                cfg->param_area = MAX (cfg->param_area, MONO_ARCH_DYN_CALL_PARAM_AREA);
 
@@ -12290,10 +12294,8 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                ins = mono_emit_jit_icall (cfg, mono_jit_thread_attach, args);
                                MONO_EMIT_NEW_UNALU (cfg, OP_MOVE, cfg->orig_domain_var->dreg, ins->dreg);
 
-                               if (next_bb) {
+                               if (next_bb)
                                        MONO_START_BB (cfg, next_bb);
-                                       bblock = cfg->cbb;
-                               }
                                ip += 2;
                                break;
                        }
@@ -12369,7 +12371,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        cmp->opcode = OP_FCOMPARE;
                                else
                                        cmp->opcode = OP_ICOMPARE;
-                               MONO_ADD_INS (bblock, cmp);
+                               MONO_ADD_INS (cfg->cbb, cmp);
                                ins->type = STACK_I4;
                                ins->dreg = alloc_dreg (cfg, ins->type);
                                type_from_op (cfg, ins, arg1, arg2);
@@ -12383,7 +12385,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        ins->sreg2 = cmp->sreg2;
                                        NULLIFY_INS (cmp);
                                }
-                               MONO_ADD_INS (bblock, ins);
+                               MONO_ADD_INS (cfg->cbb, ins);
                                *sp++ = ins;
                                ip += 2;
                                break;
@@ -12409,12 +12411,12 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        METHOD_ACCESS_FAILURE (method, cil_method);
 
                                if (mono_security_core_clr_enabled ())
-                                       ensure_method_is_allowed_to_call_method (cfg, method, cmethod, bblock, ip);
+                                       ensure_method_is_allowed_to_call_method (cfg, method, cmethod);
 
                                /* 
                                 * Optimize the common case of ldftn+delegate creation
                                 */
-                               if ((sp > stack_start) && (ip + 6 + 5 < end) && ip_in_bb (cfg, bblock, ip + 6) && (ip [6] == CEE_NEWOBJ)) {
+                               if ((sp > stack_start) && (ip + 6 + 5 < end) && ip_in_bb (cfg, cfg->cbb, ip + 6) && (ip [6] == CEE_NEWOBJ)) {
                                        MonoMethod *ctor_method = mini_get_method (cfg, method, read32 (ip + 7), NULL, generic_context);
                                        if (ctor_method && (ctor_method->klass->parent == mono_defaults.multicastdelegate_class)) {
                                                MonoInst *target_ins, *handle_ins;
@@ -12430,7 +12432,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                                target_ins = sp [-1];
 
                                                if (mono_security_core_clr_enabled ())
-                                                       ensure_method_is_allowed_to_call_method (cfg, method, ctor_method, bblock, ip);
+                                                       ensure_method_is_allowed_to_call_method (cfg, method, ctor_method);
 
                                                if (!(cmethod->flags & METHOD_ATTRIBUTE_STATIC)) {
                                                        /*LAME IMPL: We must not add a null check for virtual invoke delegates.*/
@@ -12444,7 +12446,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                                if (invoke_context_used == 0) {
                                                        ip += 6;
                                                        if (cfg->verbose_level > 3)
-                                                               g_print ("converting (in B%d: stack: %d) %s", bblock->block_num, (int)(sp - stack_start), mono_disasm_code_one (NULL, method, ip, NULL));
+                                                               g_print ("converting (in B%d: stack: %d) %s", cfg->cbb->block_num, (int)(sp - stack_start), mono_disasm_code_one (NULL, method, ip, NULL));
                                                        if ((handle_ins = handle_delegate_ctor (cfg, ctor_method->klass, target_ins, cmethod, context_used, FALSE))) {
                                                                sp --;
                                                                *sp = handle_ins;
@@ -12480,12 +12482,12 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                context_used = mini_method_check_context_used (cfg, cmethod);
 
                                if (mono_security_core_clr_enabled ())
-                                       ensure_method_is_allowed_to_call_method (cfg, method, cmethod, bblock, ip);
+                                       ensure_method_is_allowed_to_call_method (cfg, method, cmethod);
 
                                /*
                                 * Optimize the common case of ldvirtftn+delegate creation
                                 */
-                               if ((sp > stack_start) && (ip + 6 + 5 < end) && ip_in_bb (cfg, bblock, ip + 6) && (ip [6] == CEE_NEWOBJ) && (ip > header->code && ip [-1] == CEE_DUP)) {
+                               if ((sp > stack_start) && (ip + 6 + 5 < end) && ip_in_bb (cfg, cfg->cbb, ip + 6) && (ip [6] == CEE_NEWOBJ) && (ip > header->code && ip [-1] == CEE_DUP)) {
                                        MonoMethod *ctor_method = mini_get_method (cfg, method, read32 (ip + 7), NULL, generic_context);
                                        if (ctor_method && (ctor_method->klass->parent == mono_defaults.multicastdelegate_class)) {
                                                MonoInst *target_ins, *handle_ins;
@@ -12502,13 +12504,13 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                                target_ins = sp [-1];
 
                                                if (mono_security_core_clr_enabled ())
-                                                       ensure_method_is_allowed_to_call_method (cfg, method, ctor_method, bblock, ip);
+                                                       ensure_method_is_allowed_to_call_method (cfg, method, ctor_method);
 
                                                /* FIXME: SGEN support */
                                                if (invoke_context_used == 0) {
                                                        ip += 6;
                                                        if (cfg->verbose_level > 3)
-                                                               g_print ("converting (in B%d: stack: %d) %s", bblock->block_num, (int)(sp - stack_start), mono_disasm_code_one (NULL, method, ip, NULL));
+                                                               g_print ("converting (in B%d: stack: %d) %s", cfg->cbb->block_num, (int)(sp - stack_start), mono_disasm_code_one (NULL, method, ip, NULL));
                                                        if ((handle_ins = handle_delegate_ctor (cfg, ctor_method->klass, target_ins, cmethod, context_used, is_virtual))) {
                                                                sp -= 2;
                                                                *sp = handle_ins;
@@ -12642,7 +12644,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        UNVERIFIED;
                                MONO_INST_NEW (cfg, ins, OP_ENDFILTER);
                                ins->sreg1 = (*sp)->dreg;
-                               MONO_ADD_INS (bblock, ins);
+                               MONO_ADD_INS (cfg->cbb, ins);
                                start_new_bblock = 1;
                                ip += 2;
 
@@ -12772,7 +12774,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                        }
                                }
 
-                               bblock->flags |= BB_EXCEPTION_UNSAFE;
+                               cfg->cbb->flags |= BB_EXCEPTION_UNSAFE;
 
                                if (handler_offset == -1)
                                        UNVERIFIED;
@@ -12780,13 +12782,13 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                EMIT_NEW_TEMPLOAD (cfg, load, mono_find_exvar_for_offset (cfg, handler_offset)->inst_c0);
                                MONO_INST_NEW (cfg, ins, OP_RETHROW);
                                ins->sreg1 = load->dreg;
-                               MONO_ADD_INS (bblock, ins);
+                               MONO_ADD_INS (cfg->cbb, ins);
 
                                MONO_INST_NEW (cfg, ins, OP_NOT_REACHED);
-                               MONO_ADD_INS (bblock, ins);
+                               MONO_ADD_INS (cfg->cbb, ins);
 
                                sp = stack_start;
-                               link_bblock (cfg, bblock, end_bblock);
+                               link_bblock (cfg, cfg->cbb, end_bblock);
                                start_new_bblock = 1;
                                ip += 2;
                                break;
@@ -12809,7 +12811,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                                        val = mono_type_size (&klass->byval_arg, &ialign);
 
-                                       if (mini_is_gsharedvt_klass (cfg, klass))
+                                       if (mini_is_gsharedvt_klass (klass))
                                                GSHAREDVT_FAILURE (*ip);
                                }
                                EMIT_NEW_ICONST (cfg, ins, val);
@@ -12865,16 +12867,16 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
        if (start_new_bblock != 1)
                UNVERIFIED;
 
-       bblock->cil_length = ip - bblock->cil_code;
-       if (bblock->next_bb) {
+       cfg->cbb->cil_length = ip - cfg->cbb->cil_code;
+       if (cfg->cbb->next_bb) {
                /* This could already be set because of inlining, #693905 */
-               MonoBasicBlock *bb = bblock;
+               MonoBasicBlock *bb = cfg->cbb;
 
                while (bb->next_bb)
                        bb = bb->next_bb;
                bb->next_bb = end_bblock;
        } else {
-               bblock->next_bb = end_bblock;
+               cfg->cbb->next_bb = end_bblock;
        }
 
        if (cfg->method == method && cfg->domainvar) {
@@ -13819,7 +13821,7 @@ mono_spill_global_vars (MonoCompile *cfg, gboolean *need_local_opts)
                        MonoInst *ins = cfg->varinfo [i];
                        int idx;
 
-                       if (mini_is_gsharedvt_variable_type (cfg, ins->inst_vtype)) {
+                       if (mini_is_gsharedvt_variable_type (ins->inst_vtype)) {
                                if (i >= cfg->locals_start) {
                                        /* Local */
                                        idx = get_gsharedvt_info_slot (cfg, ins->inst_vtype, MONO_RGCTX_INFO_LOCAL_OFFSET);
index 744b42be16f8e8ebc3785dc684a64d5a2f980376..7ac0615d9e12260817654588ffb50efe03c9e853 100644 (file)
@@ -65,9 +65,6 @@ static gboolean optimize_for_xen = TRUE;
 #define mono_mini_arch_unlock() mono_mutex_unlock (&mini_arch_mutex)
 static mono_mutex_t mini_arch_mutex;
 
-MonoBreakpointInfo
-mono_breakpoint_info [MONO_BREAKPOINT_ARRAY_SIZE];
-
 /*
  * The code generated for sequence points reads from this location, which is
  * made read-only when single stepping is enabled.
@@ -591,12 +588,12 @@ typedef enum ArgumentClass {
 } ArgumentClass;
 
 static ArgumentClass
-merge_argument_class_from_type (MonoGenericSharingContext *gsctx, MonoType *type, ArgumentClass class1)
+merge_argument_class_from_type (MonoType *type, ArgumentClass class1)
 {
        ArgumentClass class2 = ARG_CLASS_NO_CLASS;
        MonoType *ptype;
 
-       ptype = mini_type_get_underlying_type (gsctx, type);
+       ptype = mini_get_underlying_type (type);
        switch (ptype->type) {
        case MONO_TYPE_I1:
        case MONO_TYPE_U1:
@@ -641,7 +638,7 @@ merge_argument_class_from_type (MonoGenericSharingContext *gsctx, MonoType *type
 
                for (i = 0; i < info->num_fields; ++i) {
                        class2 = class1;
-                       class2 = merge_argument_class_from_type (gsctx, info->fields [i].field->type, class2);
+                       class2 = merge_argument_class_from_type (info->fields [i].field->type, class2);
                }
                break;
        }
@@ -727,7 +724,7 @@ collect_field_info_nested (MonoClass *klass, MonoMarshalField *fields, int index
 }
 
 static void
-add_valuetype (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, ArgInfo *ainfo, MonoType *type,
+add_valuetype (MonoMethodSignature *sig, ArgInfo *ainfo, MonoType *type,
                           gboolean is_return,
                           guint32 *gr, guint32 *fr, guint32 *stack_size)
 {
@@ -739,19 +736,10 @@ add_valuetype (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, ArgIn
        MonoMarshalType *info = NULL;
        MonoMarshalField *fields = NULL;
        MonoClass *klass;
-       MonoGenericSharingContext tmp_gsctx;
        gboolean pass_on_stack = FALSE;
-       
-       /* 
-        * The gsctx currently contains no data, it is only used for checking whenever
-        * open types are allowed, some callers like mono_arch_get_argument_info ()
-        * don't pass it to us, so work around that.
-        */
-       if (!gsctx)
-               gsctx = &tmp_gsctx;
 
        klass = mono_class_from_mono_type (type);
-       size = mini_type_stack_size_full (gsctx, &klass->byval_arg, NULL, sig->pinvoke);
+       size = mini_type_stack_size_full (&klass->byval_arg, NULL, sig->pinvoke);
 #ifndef TARGET_WIN32
        if (!sig->pinvoke && ((is_return && (size == 8)) || (!is_return && (size <= 16)))) {
                /* We pass and return vtypes of size 8 in a register */
@@ -792,6 +780,14 @@ add_valuetype (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, ArgIn
                }
        }
 
+#ifndef TARGET_WIN32
+       if (size == 0) {
+               ainfo->storage = ArgValuetypeInReg;
+               ainfo->pair_storage [0] = ainfo->pair_storage [1] = ArgNone;
+               return;
+       }
+#endif
+
        if (pass_on_stack) {
                /* Allways pass in memory */
                ainfo->offset = *stack_size;
@@ -832,7 +828,12 @@ add_valuetype (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, ArgIn
                 * the CLR.
                 */
                g_assert (info);
-               g_assert (fields);
+
+               if (!fields) {
+                       ainfo->storage = ArgValuetypeInReg;
+                       ainfo->pair_storage [0] = ainfo->pair_storage [1] = ArgNone;
+                       return;
+               }
 
 #ifndef TARGET_WIN32
                if (info->native_size > 16) {
@@ -903,7 +904,7 @@ add_valuetype (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, ArgIn
                                /* (8 is size of quad) */
                                quadsize [quad] = fields [i].offset + size - (quad * 8);
 
-                               class1 = merge_argument_class_from_type (gsctx, fields [i].field->type, class1);
+                               class1 = merge_argument_class_from_type (fields [i].field->type, class1);
                        }
                        g_assert (class1 != ARG_CLASS_NO_CLASS);
                        args [quad] = class1;
@@ -988,7 +989,7 @@ add_valuetype (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, ArgIn
  * Draft Version 0.23" document for more information.
  */
 static CallInfo*
-get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSignature *sig)
+get_call_info (MonoMemPool *mp, MonoMethodSignature *sig)
 {
        guint32 i, gr, fr, pstart;
        MonoType *ret_type;
@@ -1013,7 +1014,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
 #endif
 
        /* return value */
-       ret_type = mini_type_get_underlying_type (gsctx, sig->ret);
+       ret_type = mini_get_underlying_type (sig->ret);
        switch (ret_type->type) {
        case MONO_TYPE_I1:
        case MONO_TYPE_U1:
@@ -1059,7 +1060,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
        case MONO_TYPE_VALUETYPE: {
                guint32 tmp_gr = 0, tmp_fr = 0, tmp_stacksize = 0;
 
-               add_valuetype (gsctx, sig, &cinfo->ret, ret_type, TRUE, &tmp_gr, &tmp_fr, &tmp_stacksize);
+               add_valuetype (sig, &cinfo->ret, ret_type, TRUE, &tmp_gr, &tmp_fr, &tmp_stacksize);
                if (cinfo->ret.storage == ArgOnStack) {
                        cinfo->vtype_retaddr = TRUE;
                        /* The caller passes the address where the value is stored */
@@ -1086,7 +1087,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
         * are sometimes made using calli without sig->hasthis set, like in the delegate
         * invoke wrappers.
         */
-       if (cinfo->vtype_retaddr && !is_pinvoke && (sig->hasthis || (sig->param_count > 0 && MONO_TYPE_IS_REFERENCE (mini_type_get_underlying_type (gsctx, sig->params [0]))))) {
+       if (cinfo->vtype_retaddr && !is_pinvoke && (sig->hasthis || (sig->param_count > 0 && MONO_TYPE_IS_REFERENCE (mini_get_underlying_type (sig->params [0]))))) {
                if (sig->hasthis) {
                        add_general (&gr, &stack_size, cinfo->args + 0);
                } else {
@@ -1137,7 +1138,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
                        add_general (&gr, &stack_size, &cinfo->sig_cookie);
                }
 
-               ptype = mini_type_get_underlying_type (gsctx, sig->params [i]);
+               ptype = mini_get_underlying_type (sig->params [i]);
                switch (ptype->type) {
                case MONO_TYPE_I1:
                case MONO_TYPE_U1:
@@ -1170,7 +1171,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
                        /* fall through */
                case MONO_TYPE_VALUETYPE:
                case MONO_TYPE_TYPEDBYREF:
-                       add_valuetype (gsctx, sig, ainfo, sig->params [i], FALSE, &gr, &fr, &stack_size);
+                       add_valuetype (sig, ainfo, sig->params [i], FALSE, &gr, &fr, &stack_size);
                        break;
                case MONO_TYPE_U8:
 
@@ -1214,10 +1215,10 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
  * Returns the size of the argument area on the stack.
  */
 int
-mono_arch_get_argument_info (MonoGenericSharingContext *gsctx, MonoMethodSignature *csig, int param_count, MonoJitArgumentInfo *arg_info)
+mono_arch_get_argument_info (MonoMethodSignature *csig, int param_count, MonoJitArgumentInfo *arg_info)
 {
        int k;
-       CallInfo *cinfo = get_call_info (NULL, NULL, csig);
+       CallInfo *cinfo = get_call_info (NULL, csig);
        guint32 args_size = cinfo->stack_usage;
 
        /* The arguments are saved to a stack area in mono_arch_instrument_prolog */
@@ -1243,10 +1244,10 @@ mono_arch_tail_call_supported (MonoCompile *cfg, MonoMethodSignature *caller_sig
        gboolean res;
        MonoType *callee_ret;
 
-       c1 = get_call_info (NULL, NULL, caller_sig);
-       c2 = get_call_info (NULL, NULL, callee_sig);
+       c1 = get_call_info (NULL, caller_sig);
+       c2 = get_call_info (NULL, callee_sig);
        res = c1->stack_usage >= c2->stack_usage;
-       callee_ret = mini_get_underlying_type (cfg, callee_sig->ret);
+       callee_ret = mini_get_underlying_type (callee_sig->ret);
        if (callee_ret && MONO_TYPE_ISSTRUCT (callee_ret) && c2->ret.storage != ArgValuetypeInReg)
                /* An address on the callee's stack is passed as the first argument */
                res = FALSE;
@@ -1316,6 +1317,7 @@ mono_arch_init (void)
 
        mono_aot_register_jit_icall ("mono_amd64_throw_exception", mono_amd64_throw_exception);
        mono_aot_register_jit_icall ("mono_amd64_throw_corlib_exception", mono_amd64_throw_corlib_exception);
+       mono_aot_register_jit_icall ("mono_amd64_resume_unwind", mono_amd64_resume_unwind);
        mono_aot_register_jit_icall ("mono_amd64_get_original_ip", mono_amd64_get_original_ip);
 }
 
@@ -1445,7 +1447,7 @@ mono_arch_compute_omit_fp (MonoCompile *cfg)
        sig = mono_method_signature (cfg->method);
 
        if (!cfg->arch.cinfo)
-               cfg->arch.cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+               cfg->arch.cinfo = get_call_info (cfg->mempool, sig);
        cinfo = cfg->arch.cinfo;
 
        /*
@@ -1630,7 +1632,7 @@ mono_arch_fill_argument_info (MonoCompile *cfg)
        sig = mono_method_signature (cfg->method);
 
        cinfo = cfg->arch.cinfo;
-       sig_ret = mini_get_underlying_type (cfg, sig->ret);
+       sig_ret = mini_get_underlying_type (sig->ret);
 
        /*
         * Contrary to mono_arch_allocate_vars (), the information should describe
@@ -1703,7 +1705,7 @@ mono_arch_allocate_vars (MonoCompile *cfg)
        sig = mono_method_signature (cfg->method);
 
        cinfo = cfg->arch.cinfo;
-       sig_ret = mini_get_underlying_type (cfg, sig->ret);
+       sig_ret = mini_get_underlying_type (sig->ret);
 
        mono_arch_compute_omit_fp (cfg);
 
@@ -1929,13 +1931,13 @@ mono_arch_create_vars (MonoCompile *cfg)
        sig = mono_method_signature (cfg->method);
 
        if (!cfg->arch.cinfo)
-               cfg->arch.cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+               cfg->arch.cinfo = get_call_info (cfg->mempool, sig);
        cinfo = cfg->arch.cinfo;
 
        if (cinfo->ret.storage == ArgValuetypeInReg)
                cfg->ret_var_is_local = TRUE;
 
-       sig_ret = mini_get_underlying_type (cfg, sig->ret);
+       sig_ret = mini_get_underlying_type (sig->ret);
        if ((cinfo->ret.storage != ArgValuetypeInReg) && MONO_TYPE_ISSTRUCT (sig_ret)) {
                cfg->vret_addr = mono_compile_create_var (cfg, &mono_defaults.int_class->byval_arg, OP_ARG);
                if (G_UNLIKELY (cfg->verbose_level > 1)) {
@@ -2084,9 +2086,9 @@ mono_arch_get_llvm_call_info (MonoCompile *cfg, MonoMethodSignature *sig)
        MonoType *t, *sig_ret;
 
        n = sig->param_count + sig->hasthis;
-       sig_ret = mini_get_underlying_type (cfg, sig->ret);
+       sig_ret = mini_get_underlying_type (sig->ret);
 
-       cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+       cinfo = get_call_info (cfg->mempool, sig);
 
        linfo = mono_mempool_alloc0 (cfg->mempool, sizeof (LLVMCallInfo) + (sizeof (LLVMArgInfo) * n));
 
@@ -2180,7 +2182,7 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
        sig = call->signature;
        n = sig->param_count + sig->hasthis;
 
-       cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+       cinfo = get_call_info (cfg->mempool, sig);
 
        sig_ret = sig->ret;
 
@@ -2205,7 +2207,7 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
                else
                        t = sig->params [i - sig->hasthis];
 
-               t = mini_get_underlying_type (cfg, t);
+               t = mini_get_underlying_type (t);
                if (ainfo->storage == ArgOnStack && !MONO_TYPE_ISSTRUCT (t) && !call->tail_call) {
                        if (!t->byref) {
                                if (t->type == MONO_TYPE_R4)
@@ -2239,10 +2241,18 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
        }
 
        for (i = n - 1; i >= 0; --i) {
+               MonoType *t;
+
                ainfo = cinfo->args + i;
 
                in = call->args [i];
 
+               if (sig->hasthis && i == 0)
+                       t = &mono_defaults.object_class->byval_arg;
+               else
+                       t = sig->params [i - sig->hasthis];
+               t = mini_get_underlying_type (t);
+
                switch (ainfo->storage) {
                case ArgInIReg:
                        /* Already done */
@@ -2258,17 +2268,17 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
                                MonoInst *call_inst = (MonoInst*)call;
                                cfg->args [i]->flags |= MONO_INST_VOLATILE;
                                EMIT_NEW_ARGSTORE (cfg, call_inst, i, in);
-                       } else if ((i >= sig->hasthis) && (MONO_TYPE_ISSTRUCT(sig->params [i - sig->hasthis]))) {
+                       } else if ((i >= sig->hasthis) && (MONO_TYPE_ISSTRUCT(t))) {
                                guint32 align;
                                guint32 size;
 
-                               if (sig->params [i - sig->hasthis]->type == MONO_TYPE_TYPEDBYREF) {
+                               if (t->type == MONO_TYPE_TYPEDBYREF) {
                                        size = sizeof (MonoTypedRef);
                                        align = sizeof (gpointer);
                                }
                                else {
                                        if (sig->pinvoke)
-                                               size = mono_type_native_stack_size (&in->klass->byval_arg, &align);
+                                               size = mono_type_native_stack_size (t, &align);
                                        else {
                                                /* 
                                                 * Other backends use mono_type_stack_size (), but that
@@ -2276,7 +2286,7 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
                                                 * the source, leading to reads of invalid memory if the
                                                 * source is at the end of address space.
                                                 */
-                                               size = mono_class_value_size (in->klass, &align);
+                                               size = mono_class_value_size (mono_class_from_mono_type (t), &align);
                                        }
                                }
                                g_assert (in->klass);
@@ -2291,7 +2301,7 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
                                if (size > 0) {
                                        MONO_INST_NEW (cfg, arg, OP_OUTARG_VT);
                                        arg->sreg1 = in->dreg;
-                                       arg->klass = in->klass;
+                                       arg->klass = mono_class_from_mono_type (t);
                                        arg->backend.size = size;
                                        arg->inst_p0 = call;
                                        arg->inst_p1 = mono_mempool_alloc (cfg->mempool, sizeof (ArgInfo));
@@ -2314,7 +2324,7 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
        if (!sig->pinvoke && (sig->call_convention == MONO_CALL_VARARG) && (n == sig->sentinelpos))
                emit_sig_cookie (cfg, call, cinfo);
 
-       sig_ret = mini_get_underlying_type (cfg, sig->ret);
+       sig_ret = mini_get_underlying_type (sig->ret);
        if (sig_ret && MONO_TYPE_ISSTRUCT (sig_ret)) {
                MonoInst *vtarg;
 
@@ -2449,7 +2459,7 @@ mono_arch_emit_outarg_vt (MonoCompile *cfg, MonoInst *ins, MonoInst *src)
 void
 mono_arch_emit_setret (MonoCompile *cfg, MonoMethod *method, MonoInst *val)
 {
-       MonoType *ret = mini_get_underlying_type (cfg, mono_method_signature (method)->ret);
+       MonoType *ret = mini_get_underlying_type (mono_method_signature (method)->ret);
 
        if (ret->type == MONO_TYPE_R4) {
                if (COMPILE_LLVM (cfg))
@@ -2543,7 +2553,7 @@ mono_arch_dyn_call_prepare (MonoMethodSignature *sig)
        ArchDynCallInfo *info;
        CallInfo *cinfo;
 
-       cinfo = get_call_info (NULL, NULL, sig);
+       cinfo = get_call_info (NULL, sig);
 
        if (!dyn_call_supported (sig, cinfo)) {
                g_free (cinfo);
@@ -2622,7 +2632,7 @@ mono_arch_start_dyn_call (MonoDynCallInfo *info, gpointer **args, guint8 *ret, g
                p->regs [greg ++] = PTR_TO_GREG(ret);
 
        for (i = pindex; i < sig->param_count; i++) {
-               MonoType *t = mini_type_get_underlying_type (NULL, sig->params [i]);
+               MonoType *t = mini_get_underlying_type (sig->params [i]);
                gpointer *arg = args [arg_index ++];
 
                if (t->byref) {
@@ -2716,7 +2726,7 @@ mono_arch_finish_dyn_call (MonoDynCallInfo *info, guint8 *buf)
        MonoMethodSignature *sig = dinfo->sig;
        guint8 *ret = ((DynCallArgs*)buf)->ret;
        mgreg_t res = ((DynCallArgs*)buf)->res;
-       MonoType *sig_ret = mini_type_get_underlying_type (NULL, sig->ret);
+       MonoType *sig_ret = mini_get_underlying_type (sig->ret);
 
        switch (sig_ret->type) {
        case MONO_TYPE_VOID:
@@ -3400,7 +3410,7 @@ emit_move_return_value (MonoCompile *cfg, MonoInst *ins, guint8 *code)
        case OP_FCALL:
        case OP_FCALL_REG:
        case OP_FCALL_MEMBASE: {
-               MonoType *rtype = mini_get_underlying_type (cfg, ((MonoCallInst*)ins)->signature->ret);
+               MonoType *rtype = mini_get_underlying_type (((MonoCallInst*)ins)->signature->ret);
                if (rtype->type == MONO_TYPE_R4) {
                        amd64_sse_cvtss2sd_reg_reg (code, ins->dreg, AMD64_XMM0);
                }
@@ -3422,7 +3432,7 @@ emit_move_return_value (MonoCompile *cfg, MonoInst *ins, guint8 *code)
        case OP_VCALL2:
        case OP_VCALL2_REG:
        case OP_VCALL2_MEMBASE:
-               cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, ((MonoCallInst*)ins)->signature);
+               cinfo = get_call_info (cfg->mempool, ((MonoCallInst*)ins)->signature);
                if (cinfo->ret.storage == ArgValuetypeInReg) {
                        MonoInst *loc = cfg->arch.vret_addr_loc;
 
@@ -3466,12 +3476,12 @@ mono_amd64_have_tls_get (void)
 #ifdef TARGET_MACH
        static gboolean have_tls_get = FALSE;
        static gboolean inited = FALSE;
-       guint8 *ins;
 
        if (inited)
                return have_tls_get;
 
-       ins = (guint8*)pthread_getspecific;
+#if MONO_HAVE_FAST_TLS
+       guint8 *ins = (guint8*)pthread_getspecific;
 
        /*
         * We're looking for these two instructions:
@@ -3489,9 +3499,10 @@ mono_amd64_have_tls_get (void)
                       ins [8] == 0x00 &&
                       ins [9] == 0xc3;
 
-       inited = TRUE;
-
        tls_gs_offset = ins[5];
+#endif
+
+       inited = TRUE;
 
        return have_tls_get;
 #elif defined(TARGET_ANDROID)
@@ -4845,7 +4856,7 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        jump = code;
                        amd64_branch8 (code, X86_CC_NZ, -1, 1);
 
-                       code = emit_call (cfg, code, MONO_PATCH_INFO_JIT_ICALL_ADDR, "specific_trampoline_generic_class_init", FALSE);
+                       code = emit_call (cfg, code, MONO_PATCH_INFO_INTERNAL_METHOD, "mono_generic_class_init", FALSE);
                        ins->flags |= MONO_INST_GC_CALLSITE;
                        ins->backend.pc_offset = code - cfg->native_code;
 
@@ -7545,7 +7556,7 @@ mono_arch_instrument_epilog_full (MonoCompile *cfg, void *func, void *p, gboolea
        guchar *code = p;
        int save_mode = SAVE_NONE;
        MonoMethod *method = cfg->method;
-       MonoType *ret_type = mini_get_underlying_type (cfg, mono_method_signature (method)->ret);
+       MonoType *ret_type = mini_get_underlying_type (mono_method_signature (method)->ret);
        int i;
        
        switch (ret_type->type) {
@@ -7792,11 +7803,14 @@ mono_arch_get_this_arg_from_call (mgreg_t *regs, guint8 *code)
 #define MAX_ARCH_DELEGATE_PARAMS 10
 
 static gpointer
-get_delegate_invoke_impl (gboolean has_target, guint32 param_count, guint32 *code_len)
+get_delegate_invoke_impl (MonoTrampInfo **info, gboolean has_target, guint32 param_count)
 {
        guint8 *code, *start;
+       GSList *unwind_ops = NULL;
        int i;
 
+       unwind_ops = mono_arch_get_cie_program ();
+
        if (has_target) {
                start = code = mono_global_codeman_reserve (64);
 
@@ -7833,8 +7847,13 @@ get_delegate_invoke_impl (gboolean has_target, guint32 param_count, guint32 *cod
        nacl_global_codeman_validate (&start, 64, &code);
        mono_arch_flush_icache (start, code - start);
 
-       if (code_len)
-               *code_len = code - start;
+       if (has_target) {
+               *info = mono_tramp_info_create ("delegate_invoke_impl_has_target", start, code - start, NULL, unwind_ops);
+       } else {
+               char *name = g_strdup_printf ("delegate_invoke_impl_target_%d", param_count);
+               *info = mono_tramp_info_create (name, start, code - start, NULL, unwind_ops);
+               g_free (name);
+       }
 
        if (mono_jit_map_is_enabled ()) {
                char *buff;
@@ -7854,16 +7873,20 @@ get_delegate_invoke_impl (gboolean has_target, guint32 param_count, guint32 *cod
 #define MAX_VIRTUAL_DELEGATE_OFFSET 32
 
 static gpointer
-get_delegate_virtual_invoke_impl (gboolean load_imt_reg, int offset, guint32 *code_len)
+get_delegate_virtual_invoke_impl (MonoTrampInfo **info, gboolean load_imt_reg, int offset)
 {
        guint8 *code, *start;
        int size = 20;
+       char *tramp_name;
+       GSList *unwind_ops;
 
-       if (offset / sizeof (gpointer) > MAX_VIRTUAL_DELEGATE_OFFSET)
+       if (offset / (int)sizeof (gpointer) > MAX_VIRTUAL_DELEGATE_OFFSET)
                return NULL;
 
        start = code = mono_global_codeman_reserve (size);
 
+       unwind_ops = mono_arch_get_cie_program ();
+
        /* Replace the this argument with the target */
        amd64_mov_reg_reg (code, AMD64_RAX, AMD64_ARG_REG1, 8);
        amd64_mov_reg_membase (code, AMD64_ARG_REG1, AMD64_RAX, MONO_STRUCT_OFFSET (MonoDelegate, target), 8);
@@ -7878,8 +7901,12 @@ get_delegate_virtual_invoke_impl (gboolean load_imt_reg, int offset, guint32 *co
        amd64_jump_membase (code, AMD64_RAX, offset);
        mono_profiler_code_buffer_new (start, code - start, MONO_PROFILER_CODE_BUFFER_DELEGATE_INVOKE, NULL);
 
-       if (code_len)
-               *code_len = code - start;
+       if (load_imt_reg)
+               tramp_name = g_strdup_printf ("delegate_virtual_invoke_imt_%d", - offset / sizeof (gpointer));
+       else
+               tramp_name = g_strdup_printf ("delegate_virtual_invoke_%d", offset / sizeof (gpointer));
+       *info = mono_tramp_info_create (tramp_name, start, code - start, NULL, unwind_ops);
+       g_free (tramp_name);
 
        return start;
 }
@@ -7894,31 +7921,23 @@ GSList*
 mono_arch_get_delegate_invoke_impls (void)
 {
        GSList *res = NULL;
-       guint8 *code;
-       guint32 code_len;
+       MonoTrampInfo *info;
        int i;
-       char *tramp_name;
 
-       code = get_delegate_invoke_impl (TRUE, 0, &code_len);
-       res = g_slist_prepend (res, mono_tramp_info_create ("delegate_invoke_impl_has_target", code, code_len, NULL, NULL));
+       get_delegate_invoke_impl (&info, TRUE, 0);
+       res = g_slist_prepend (res, info);
 
-       for (i = 0; i < MAX_ARCH_DELEGATE_PARAMS; ++i) {
-               code = get_delegate_invoke_impl (FALSE, i, &code_len);
-               tramp_name = g_strdup_printf ("delegate_invoke_impl_target_%d", i);
-               res = g_slist_prepend (res, mono_tramp_info_create (tramp_name, code, code_len, NULL, NULL));
-               g_free (tramp_name);
+       for (i = 0; i <= MAX_ARCH_DELEGATE_PARAMS; ++i) {
+               get_delegate_invoke_impl (&info, FALSE, i);
+               res = g_slist_prepend (res, info);
        }
 
-       for (i = 0; i < MAX_VIRTUAL_DELEGATE_OFFSET; ++i) {
-               code = get_delegate_virtual_invoke_impl (TRUE, i * SIZEOF_VOID_P, &code_len);
-               tramp_name = g_strdup_printf ("delegate_virtual_invoke_imt_%d", i);
-               res = g_slist_prepend (res, mono_tramp_info_create (tramp_name, code, code_len, NULL, NULL));
-               g_free (tramp_name);
+       for (i = 0; i <= MAX_VIRTUAL_DELEGATE_OFFSET; ++i) {
+               get_delegate_virtual_invoke_impl (&info, TRUE, - i * SIZEOF_VOID_P);
+               res = g_slist_prepend (res, info);
 
-               code = get_delegate_virtual_invoke_impl (FALSE, i * SIZEOF_VOID_P, &code_len);
-               tramp_name = g_strdup_printf ("delegate_virtual_invoke_%d", i);
-               res = g_slist_prepend (res, mono_tramp_info_create (tramp_name, code, code_len, NULL, NULL));
-               g_free (tramp_name);
+               get_delegate_virtual_invoke_impl (&info, FALSE, i * SIZEOF_VOID_P);
+               res = g_slist_prepend (res, info);
        }
 
        return res;
@@ -7934,7 +7953,7 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
                return NULL;
 
        /* FIXME: Support more cases */
-       if (MONO_TYPE_ISSTRUCT (mini_replace_type (sig->ret)))
+       if (MONO_TYPE_ISSTRUCT (mini_get_underlying_type (sig->ret)))
                return NULL;
 
        if (has_target) {
@@ -7943,10 +7962,13 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
                if (cached)
                        return cached;
 
-               if (mono_aot_only)
+               if (mono_aot_only) {
                        start = mono_aot_get_trampoline ("delegate_invoke_impl_has_target");
-               else
-                       start = get_delegate_invoke_impl (TRUE, 0, NULL);
+               } else {
+                       MonoTrampInfo *info;
+                       start = get_delegate_invoke_impl (&info, TRUE, 0);
+                       mono_tramp_info_register (info, NULL);
+               }
 
                mono_memory_barrier ();
 
@@ -7968,7 +7990,9 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
                        start = mono_aot_get_trampoline (name);
                        g_free (name);
                } else {
-                       start = get_delegate_invoke_impl (FALSE, sig->param_count, NULL);
+                       MonoTrampInfo *info;
+                       start = get_delegate_invoke_impl (&info, FALSE, sig->param_count);
+                       mono_tramp_info_register (info, NULL);
                }
 
                mono_memory_barrier ();
@@ -7982,7 +8006,13 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
 gpointer
 mono_arch_get_delegate_virtual_invoke_impl (MonoMethodSignature *sig, MonoMethod *method, int offset, gboolean load_imt_reg)
 {
-       return get_delegate_virtual_invoke_impl (load_imt_reg, offset, NULL);
+       MonoTrampInfo *info;
+       gpointer code;
+
+       code = get_delegate_virtual_invoke_impl (&info, load_imt_reg, offset);
+       if (code)
+               mono_tramp_info_register (info, NULL);
+       return code;
 }
 
 void
@@ -8041,6 +8071,7 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
        int size = 0;
        guint8 *code, *start;
        gboolean vtable_is_32bit = ((gsize)(vtable) == (gsize)(int)(gsize)(vtable));
+       GSList *unwind_ops;
 
        for (i = 0; i < count; ++i) {
                MonoIMTCheckItem *item = imt_entries [i];
@@ -8103,6 +8134,9 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
                code = mono_domain_code_reserve (domain, size);
 #endif
        start = code;
+
+       unwind_ops = mono_arch_get_cie_program ();
+
        for (i = 0; i < count; ++i) {
                MonoIMTCheckItem *item = imt_entries [i];
                item->code_target = code;
@@ -8193,6 +8227,8 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
        nacl_domain_code_validate(domain, &start, size, &code);
        mono_profiler_code_buffer_new (start, code - start, MONO_PROFILER_CODE_BUFFER_IMT_TRAMPOLINE, NULL);
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, unwind_ops), domain);
+
        return start;
 }
 
index 3588a31e86aa050f20605ebecc15ac256d689b62..c494c69fbbcaf677a3570478b9d2d60dfe5e0880 100644 (file)
@@ -321,13 +321,10 @@ typedef struct {
 #define MONO_ARCH_RGCTX_REG MONO_ARCH_IMT_REG
 #define MONO_ARCH_EXC_REG AMD64_RAX
 #define MONO_ARCH_HAVE_CMOV_OPS 1
-#define MONO_ARCH_HAVE_NOTIFY_PENDING_EXC 1
 #define MONO_ARCH_HAVE_EXCEPTIONS_INIT 1
 #define MONO_ARCH_HAVE_GENERALIZED_IMT_THUNK 1
 #define MONO_ARCH_HAVE_LIVERANGE_OPS 1
 #define MONO_ARCH_HAVE_SIGCTX_TO_MONOCTX 1
-#define MONO_ARCH_MONITOR_OBJECT_REG MONO_AMD64_ARG_REG1
-#define MONO_ARCH_MONITOR_LOCK_TAKEN_REG MONO_AMD64_ARG_REG2
 #define MONO_ARCH_HAVE_GET_TRAMPOLINES 1
 
 #define MONO_ARCH_AOT_SUPPORTED 1
@@ -387,6 +384,11 @@ mono_amd64_throw_corlib_exception (guint64 dummy1, guint64 dummy2, guint64 dummy
                                                                   guint64 dummy5, guint64 dummy6,
                                                                   MonoContext *mctx, guint32 ex_token_index, gint64 pc_offset);
 
+void
+mono_amd64_resume_unwind (guint64 dummy1, guint64 dummy2, guint64 dummy3, guint64 dummy4,
+                                                 guint64 dummy5, guint64 dummy6,
+                                                 MonoContext *mctx, guint32 dummy7, gint64 dummy8);
+
 guint64
 mono_amd64_get_original_ip (void);
 
@@ -402,13 +404,6 @@ mono_amd64_get_exception_trampolines (gboolean aot);
 int
 mono_amd64_get_tls_gs_offset (void) MONO_LLVM_INTERNAL;
 
-typedef struct {
-       guint8 *address;
-       guint8 saved_byte;
-} MonoBreakpointInfo;
-
-extern MonoBreakpointInfo mono_breakpoint_info [MONO_BREAKPOINT_ARRAY_SIZE];
-
 #ifdef TARGET_WIN32
 
 void mono_arch_unwindinfo_add_push_nonvol (gpointer* monoui, gpointer codebegin, gpointer nextip, guchar reg );
diff --git a/mono/mini/mini-arm-tls.S b/mono/mini/mini-arm-tls.S
new file mode 100644 (file)
index 0000000..1f7204a
--- /dev/null
@@ -0,0 +1,129 @@
+/*
+ * mini-arm-tls.S: tls getters and setters for arm platforms
+ *
+ * Copyright 2015 Xamarin, Inc.
+ */
+
+#include <config.h>
+
+#ifndef MONO_CROSS_COMPILE
+
+       /*
+        * The following thunks fetch the value corresponding to the key/offset
+        * passed in R0. These thunks don't do jumps to external code so execution
+        * within can be tracked. The tls value is returned in R0.
+        */
+
+.macro DECLARE_GLOBAL_SYMBOL name
+#ifdef TARGET_MACH
+       .global _\name
+_\name:
+#else
+       .global \name
+\name:
+#endif
+.endm
+
+       .text
+/* no .arch on clang. it only supports armv6+ anyway */
+#ifndef TARGET_MACH
+       .arch armv5
+#endif
+       .arm
+       .align 4
+
+DECLARE_GLOBAL_SYMBOL mono_fast_get_tls_key
+#if defined(__linux__)
+       mrc     p15, 0, r1, c13, c0, 3
+#if defined(HAVE_KW_THREAD)
+       ldr     r0, [r1, r0]
+#elif defined(TARGET_ANDROID)
+       ldr     r0, [r1, r0, lsl #2]
+#endif
+       bx      lr
+#elif defined(TARGET_IOS)
+       mrc     p15, 0, r1, c13, c0, 3
+       bic     r1, r1, #3
+       ldr     r0, [r1, r0, lsl #2]
+       bx      lr
+#endif
+DECLARE_GLOBAL_SYMBOL mono_fast_get_tls_key_end
+
+       /*
+        * The following thunks fetch the value corresponding to the key/offset
+        * passed in R0. These thunks are used in the unlikely cases where we determine
+        * at runtime that the current implementation is not accounted for.
+        */
+
+       .align 4
+DECLARE_GLOBAL_SYMBOL mono_fallback_get_tls_key
+#if defined(__linux__)
+       mov     r1, r0
+       mvn     r0, #0xf000
+       sub     r0, r0, #31
+       push    {lr}
+       blx     r0
+#if defined(HAVE_KW_THREAD)
+       ldr     r0, [r0, r1]
+#elif defined(TARGET_ANDROID)
+       ldr     r0, [r0, r1, lsl #2]
+#endif
+       pop     {pc}
+#elif defined(TARGET_IOS)
+       push    {lr}
+       bl      _pthread_getspecific
+       pop     {pc}
+#endif
+
+       /*
+        * The following thunks set the value corresponding to the key/offset
+        * passed in R0. These thunks don't do jumps to external code so execution
+        * within can be tracked. The tls value is passed in R1.
+        */
+
+       .align 4
+DECLARE_GLOBAL_SYMBOL mono_fast_set_tls_key
+#if defined(__linux__)
+       mrc     p15, 0, r2, c13, c0, 3
+#if defined(HAVE_KW_THREAD)
+       str     r1, [r2, r0]
+#elif defined(TARGET_ANDROID)
+       str     r1, [r2, r0, lsl #2]
+#endif
+       bx      lr
+#elif defined(TARGET_IOS)
+       mrc     p15, 0, r2, c13, c0, 3
+       bic     r2, r2, #3
+       str     r1, [r2, r0, lsl #2]
+       bx      lr
+#endif
+DECLARE_GLOBAL_SYMBOL mono_fast_set_tls_key_end
+
+       /*
+        * The following thunks set the value corresponding to the key/offset
+        * passed in R0. These thunks are used in the unlikely cases where we determine
+        * at runtime that the current implementation is not accounted for.
+        */
+
+       .align 4
+DECLARE_GLOBAL_SYMBOL mono_fallback_set_tls_key
+#if defined(__linux__)
+       mov     r2, r0
+       mvn     r0, #0xf000
+       sub     r0, r0, #31
+       push    {lr}
+       blx     r0
+#if defined(HAVE_KW_THREAD)
+       str     r1, [r0, r2]
+#elif defined(TARGET_ANDROID)
+       str     r1, [r0, r2, lsl #2]
+#endif
+       pop     {pc}
+#elif defined(TARGET_IOS)
+       push    {lr}
+       bl      _pthread_setspecific
+       pop     {pc}
+#endif
+
+#endif
+
diff --git a/mono/mini/mini-arm-tls.h b/mono/mini/mini-arm-tls.h
new file mode 100644 (file)
index 0000000..30b2494
--- /dev/null
@@ -0,0 +1,19 @@
+#ifndef __MONO_MINI_ARM_TLS_H__
+#define __MONO_MINI_ARM_TLS_H__
+
+/* Fast inlined tls getters/setters */
+
+int mono_fast_get_tls_key (int);
+void mono_fast_set_tls_key (int, int);
+
+/* Fallback tls getters/setters */
+
+int mono_fallback_get_tls_key (int);
+void mono_fallback_set_tls_key (int, int);
+
+/* End of thunks */
+
+void mono_fast_get_tls_key_end (void);
+void mono_fast_set_tls_key_end (void);
+
+#endif
index 0bdec210868ae04a6913482a461efc4b5ddaa302..e92a280219623d591227daf9742c2b3c1ae58e0d 100644 (file)
@@ -21,6 +21,7 @@
 #include <mono/utils/mono-memory-model.h>
 
 #include "mini-arm.h"
+#include "mini-arm-tls.h"
 #include "cpu-arm.h"
 #include "trace.h"
 #include "ir-emit.h"
 #include "mini-gc.h"
 #include "mono/arch/arm/arm-vfp-codegen.h"
 
+#if defined(HAVE_KW_THREAD) && defined(__linux__) \
+       || defined(TARGET_ANDROID) \
+       || defined(TARGET_IOS)
+#define HAVE_FAST_TLS
+#endif
+
 /* Sanity check: This makes no sense */
 #if defined(ARM_FPU_NONE) && (defined(ARM_FPU_VFP) || defined(ARM_FPU_VFP_HARD))
 #error "ARM_FPU_NONE is defined while one of ARM_FPU_VFP/ARM_FPU_VFP_HARD is defined"
 #define IS_VFP (TRUE)
 #endif
 
-#if defined(__ARM_EABI__) && defined(__linux__) && !defined(PLATFORM_ANDROID) && !defined(__native_client__)
-#define HAVE_AEABI_READ_TP 1
-#endif
-
 #define THUNK_SIZE (3 * 4)
 
 #ifdef __native_client_codegen__
@@ -385,6 +388,86 @@ mono_arm_load_jumptable_entry (guint8 *code, gpointer* jte, ARMReg reg)
 }
 #endif
 
+static guint8*
+mono_arm_emit_tls_get (MonoCompile *cfg, guint8* code, int dreg, int tls_offset)
+{
+#ifdef HAVE_FAST_TLS
+       code = mono_arm_emit_load_imm (code, ARMREG_R0, tls_offset);
+       mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD,
+                       "mono_get_tls_key");
+       code = emit_call_seq (cfg, code);
+       if (dreg != ARMREG_R0)
+               ARM_MOV_REG_REG (code, dreg, ARMREG_R0);
+#else
+       g_assert_not_reached ();
+#endif
+       return code;
+}
+
+static guint8*
+mono_arm_emit_tls_get_reg (MonoCompile *cfg, guint8* code, int dreg, int tls_offset_reg)
+{
+#ifdef HAVE_FAST_TLS
+       if (tls_offset_reg != ARMREG_R0)
+               ARM_MOV_REG_REG (code, ARMREG_R0, tls_offset_reg);
+       mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD,
+                       "mono_get_tls_key");
+       code = emit_call_seq (cfg, code);
+       if (dreg != ARMREG_R0)
+               ARM_MOV_REG_REG (code, dreg, ARMREG_R0);
+#else
+       g_assert_not_reached ();
+#endif
+       return code;
+}
+
+static guint8*
+mono_arm_emit_tls_set (MonoCompile *cfg, guint8* code, int sreg, int tls_offset)
+{
+#ifdef HAVE_FAST_TLS
+       if (sreg != ARMREG_R1)
+               ARM_MOV_REG_REG (code, ARMREG_R1, sreg);
+       code = mono_arm_emit_load_imm (code, ARMREG_R0, tls_offset);
+       mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD,
+                       "mono_set_tls_key");
+       code = emit_call_seq (cfg, code);
+#else
+       g_assert_not_reached ();
+#endif
+       return code;
+}
+
+static guint8*
+mono_arm_emit_tls_set_reg (MonoCompile *cfg, guint8* code, int sreg, int tls_offset_reg)
+{
+#ifdef HAVE_FAST_TLS
+       /* Get sreg in R1 and tls_offset_reg in R0 */
+       if (tls_offset_reg == ARMREG_R1) {
+               if (sreg == ARMREG_R0) {
+                       /* swap sreg and tls_offset_reg */
+                       ARM_EOR_REG_REG (code, sreg, sreg, tls_offset_reg);
+                       ARM_EOR_REG_REG (code, tls_offset_reg, sreg, tls_offset_reg);
+                       ARM_EOR_REG_REG (code, sreg, sreg, tls_offset_reg);
+               } else {
+                       ARM_MOV_REG_REG (code, ARMREG_R0, tls_offset_reg);
+                       if (sreg != ARMREG_R1)
+                               ARM_MOV_REG_REG (code, ARMREG_R1, sreg);
+               }
+       } else {
+               if (sreg != ARMREG_R1)
+                       ARM_MOV_REG_REG (code, ARMREG_R1, sreg);
+               if (tls_offset_reg != ARMREG_R0)
+                       ARM_MOV_REG_REG (code, ARMREG_R0, tls_offset_reg);
+       }
+       mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD,
+                       "mono_set_tls_key");
+       code = emit_call_seq (cfg, code);
+#else
+       g_assert_not_reached ();
+#endif
+       return code;
+}
+
 /*
  * emit_save_lmf:
  *
@@ -397,48 +480,24 @@ emit_save_lmf (MonoCompile *cfg, guint8 *code, gint32 lmf_offset)
        gboolean get_lmf_fast = FALSE;
        int i;
 
-#ifdef HAVE_AEABI_READ_TP
-       gint32 lmf_addr_tls_offset = mono_get_lmf_addr_tls_offset ();
-
-       if (lmf_addr_tls_offset != -1) {
-               get_lmf_fast = TRUE;
-
-               mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD,
-                                                        (gpointer)"__aeabi_read_tp");
-               code = emit_call_seq (cfg, code);
-
-               ARM_LDR_IMM (code, ARMREG_R0, ARMREG_R0, lmf_addr_tls_offset);
-               get_lmf_fast = TRUE;
-       }
-#endif
-
-#ifdef TARGET_IOS
-       if (cfg->method->wrapper_type == MONO_WRAPPER_MANAGED_TO_NATIVE) {
-               int lmf_offset;
-
-               /* Inline mono_get_lmf_addr () */
-               /* jit_tls = pthread_getspecific (mono_jit_tls_id); lmf_addr = &jit_tls->lmf; */
-
-               /* Load mono_jit_tls_id */
-               /* OP_AOTCONST */
-               mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_JIT_TLS_ID, NULL);
-               ARM_LDR_IMM (code, ARMREG_R0, ARMREG_PC, 0);
-               ARM_B (code, 0);
-               *(gpointer*)code = NULL;
-               code += 4;
-               ARM_LDR_REG_REG (code, ARMREG_R0, ARMREG_PC, ARMREG_R0);
-               /* call pthread_getspecific () */
-               mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD, 
-                                                        (gpointer)"pthread_getspecific");
-               code = emit_call_seq (cfg, code);
-               /* lmf_addr = &jit_tls->lmf */
-               lmf_offset = MONO_STRUCT_OFFSET (MonoJitTlsData, lmf);
-               g_assert (arm_is_imm8 (lmf_offset));
-               ARM_ADD_REG_IMM (code, ARMREG_R0, ARMREG_R0, lmf_offset, 0);
-
+       if (mono_arm_have_tls_get ()) {
                get_lmf_fast = TRUE;
+               if (cfg->compile_aot) {
+                       /* OP_AOTCONST */
+                       mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_TLS_OFFSET, (gpointer)TLS_KEY_LMF_ADDR);
+                       ARM_LDR_IMM (code, ARMREG_R1, ARMREG_PC, 0);
+                       ARM_B (code, 0);
+                       *(gpointer*)code = NULL;
+                       code += 4;
+                       /* Load the value from the GOT */
+                       ARM_LDR_REG_REG (code, ARMREG_R1, ARMREG_PC, ARMREG_R1);
+                       code = mono_arm_emit_tls_get_reg (cfg, code, ARMREG_R0, ARMREG_R1);
+               } else {
+                       gint32 lmf_addr_tls_offset = mono_get_lmf_addr_tls_offset ();
+                       g_assert (lmf_addr_tls_offset != -1);
+                       code = mono_arm_emit_tls_get (cfg, code, ARMREG_R0, lmf_addr_tls_offset);
+               }
        }
-#endif
 
        if (!get_lmf_fast) {
                mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD, 
@@ -587,6 +646,46 @@ emit_restore_lmf (MonoCompile *cfg, guint8 *code, gint32 lmf_offset)
 
 #endif /* #ifndef DISABLE_JIT */
 
+#ifndef MONO_CROSS_COMPILE
+static gboolean
+mono_arm_have_fast_tls (void)
+{
+       if (mini_get_debug_options ()->arm_use_fallback_tls)
+               return FALSE;
+#if (defined(HAVE_KW_THREAD) && defined(__linux__)) \
+       || defined(TARGET_ANDROID)
+       guint32* kuser_get_tls = (void*)0xffff0fe0;
+       guint32 expected [] = {0xee1d0f70, 0xe12fff1e};
+
+       /* Expecting mrc + bx lr in the kuser_get_tls kernel helper */
+       return memcmp (kuser_get_tls, expected, 8) == 0;
+#elif defined(TARGET_IOS)
+       guint32 expected [] = {0x1f70ee1d, 0x0103f021, 0x0020f851, 0xbf004770};
+       /* Discard thumb bit */
+       guint32* pthread_getspecific_addr = (guint32*) ((guint32)pthread_getspecific & 0xfffffffe);
+       return memcmp ((void*)pthread_getspecific_addr, expected, 16) == 0;
+#else
+       return FALSE;
+#endif
+}
+#endif
+
+/*
+ * mono_arm_have_tls_get:
+ *
+ * Returns whether we have tls access implemented on the current
+ * platform
+ */
+gboolean
+mono_arm_have_tls_get (void)
+{
+#ifdef HAVE_FAST_TLS
+       return TRUE;
+#else
+       return FALSE;
+#endif
+}
+
 /*
  * mono_arch_get_argument_info:
  * @csig:  a method signature
@@ -599,14 +698,14 @@ emit_restore_lmf (MonoCompile *cfg, guint8 *code, gint32 lmf_offset)
  * Returns the size of the activation frame.
  */
 int
-mono_arch_get_argument_info (MonoGenericSharingContext *gsctx, MonoMethodSignature *csig, int param_count, MonoJitArgumentInfo *arg_info)
+mono_arch_get_argument_info (MonoMethodSignature *csig, int param_count, MonoJitArgumentInfo *arg_info)
 {
        int k, frame_size = 0;
        guint32 size, align, pad;
        int offset = 8;
        MonoType *t;
 
-       t = mini_type_get_underlying_type (gsctx, csig->ret);
+       t = mini_get_underlying_type (csig->ret);
        if (MONO_TYPE_ISSTRUCT (t)) {
                frame_size += sizeof (gpointer);
                offset += 4;
@@ -622,7 +721,7 @@ mono_arch_get_argument_info (MonoGenericSharingContext *gsctx, MonoMethodSignatu
        arg_info [0].size = frame_size;
 
        for (k = 0; k < param_count; k++) {
-               size = mini_type_stack_size_full (NULL, csig->params [k], &align, csig->pinvoke);
+               size = mini_type_stack_size_full (csig->params [k], &align, csig->pinvoke);
 
                /* ignore alignment for now */
                align = 1;
@@ -647,9 +746,10 @@ mono_arch_get_argument_info (MonoGenericSharingContext *gsctx, MonoMethodSignatu
 #define MAX_ARCH_DELEGATE_PARAMS 3
 
 static gpointer
-get_delegate_invoke_impl (gboolean has_target, gboolean param_count, guint32 *code_size)
+get_delegate_invoke_impl (MonoTrampInfo **info, gboolean has_target, gboolean param_count)
 {
        guint8 *code, *start;
+       GSList *unwind_ops = mono_arch_get_cie_program ();
 
        if (has_target) {
                start = code = mono_global_codeman_reserve (12);
@@ -680,9 +780,15 @@ get_delegate_invoke_impl (gboolean has_target, gboolean param_count, guint32 *co
                mono_arch_flush_icache (start, size);
        }
 
+       if (has_target) {
+                *info = mono_tramp_info_create ("delegate_invoke_impl_has_target", start, code - start, NULL, unwind_ops);
+       } else {
+                char *name = g_strdup_printf ("delegate_invoke_impl_target_%d", param_count);
+                *info = mono_tramp_info_create (name, start, code - start, NULL, unwind_ops);
+                g_free (name);
+       }
+
        mono_profiler_code_buffer_new (start, code - start, MONO_PROFILER_CODE_BUFFER_DELEGATE_INVOKE, NULL);
-       if (code_size)
-               *code_size = code - start;
 
        return start;
 }
@@ -697,19 +803,15 @@ GSList*
 mono_arch_get_delegate_invoke_impls (void)
 {
        GSList *res = NULL;
-       guint8 *code;
-       guint32 code_len;
+       MonoTrampInfo *info;
        int i;
-       char *tramp_name;
 
-       code = get_delegate_invoke_impl (TRUE, 0, &code_len);
-       res = g_slist_prepend (res, mono_tramp_info_create ("delegate_invoke_impl_has_target", code, code_len, NULL, NULL));
+       get_delegate_invoke_impl (&info, TRUE, 0);
+       res = g_slist_prepend (res, info);
 
        for (i = 0; i <= MAX_ARCH_DELEGATE_PARAMS; ++i) {
-               code = get_delegate_invoke_impl (FALSE, i, &code_len);
-               tramp_name = g_strdup_printf ("delegate_invoke_impl_target_%d", i);
-               res = g_slist_prepend (res, mono_tramp_info_create (tramp_name, code, code_len, NULL, NULL));
-               g_free (tramp_name);
+               get_delegate_invoke_impl (&info, FALSE, i);
+               res = g_slist_prepend (res, info);
        }
 
        return res;
@@ -722,7 +824,7 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
        MonoType *sig_ret;
 
        /* FIXME: Support more cases */
-       sig_ret = mini_type_get_underlying_type (NULL, sig->ret);
+       sig_ret = mini_get_underlying_type (sig->ret);
        if (MONO_TYPE_ISSTRUCT (sig_ret))
                return NULL;
 
@@ -734,10 +836,13 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
                        return cached;
                }
 
-               if (mono_aot_only)
+               if (mono_aot_only) {
                        start = mono_aot_get_trampoline ("delegate_invoke_impl_has_target");
-               else
-                       start = get_delegate_invoke_impl (TRUE, 0, NULL);
+               } else {
+                       MonoTrampInfo *info;
+                       start = get_delegate_invoke_impl (&info, TRUE, 0);
+                       mono_tramp_info_register (info, NULL);
+               }
                cached = start;
                mono_mini_arch_unlock ();
                return cached;
@@ -763,7 +868,9 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
                        start = mono_aot_get_trampoline (name);
                        g_free (name);
                } else {
-                       start = get_delegate_invoke_impl (FALSE, sig->param_count, NULL);
+                       MonoTrampInfo *info;
+                       start = get_delegate_invoke_impl (&info, FALSE, sig->param_count);
+                       mono_tramp_info_register (info, NULL);
                }
                cache [sig->param_count] = start;
                mono_mini_arch_unlock ();
@@ -957,10 +1064,11 @@ mono_arm_is_hard_float (void)
 }
 
 static gboolean
-is_regsize_var (MonoGenericSharingContext *gsctx, MonoType *t) {
+is_regsize_var (MonoType *t)
+{
        if (t->byref)
                return TRUE;
-       t = mini_type_get_underlying_type (gsctx, t);
+       t = mini_get_underlying_type (t);
        switch (t->type) {
        case MONO_TYPE_I4:
        case MONO_TYPE_U4:
@@ -1003,7 +1111,7 @@ mono_arch_get_allocatable_int_vars (MonoCompile *cfg)
                        continue;
 
                /* we can only allocate 32 bit values */
-               if (is_regsize_var (cfg->generic_sharing_context, ins->inst_vtype)) {
+               if (is_regsize_var (ins->inst_vtype)) {
                        g_assert (MONO_VARINFO (cfg, i)->reg == -1);
                        g_assert (i == vmv->idx);
                        vars = mono_varlist_insert_sorted (cfg, vars, vmv, FALSE);
@@ -1108,10 +1216,15 @@ mono_arch_flush_icache (guint8 *code, gint size)
 
 typedef enum {
        RegTypeNone,
+       /* Passed/returned in an ireg */
        RegTypeGeneral,
+       /* Passed/returned in a pair of iregs */
        RegTypeIRegPair,
+       /* Passed on the stack */
        RegTypeBase,
+       /* First word in r3, second word on the stack */
        RegTypeBaseGen,
+       /* FP value passed in either an ireg or a vfp reg */
        RegTypeFP,
        RegTypeStructByVal,
        RegTypeStructByAddr,
@@ -1302,7 +1415,7 @@ is_hfa (MonoType *t, int *out_nfields, int *out_esize)
                if (field->type->attrs & FIELD_ATTRIBUTE_STATIC)
                        continue;
                ftype = mono_field_get_type (field);
-               ftype = mini_type_get_underlying_type (NULL, ftype);
+               ftype = mini_get_underlying_type (ftype);
 
                if (MONO_TYPE_ISSTRUCT (ftype)) {
                        int nested_nfields, nested_esize;
@@ -1334,7 +1447,7 @@ is_hfa (MonoType *t, int *out_nfields, int *out_esize)
 }
 
 static CallInfo*
-get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSignature *sig)
+get_call_info (MonoMemPool *mp, MonoMethodSignature *sig)
 {
        guint i, gr, fpr, pstart;
        gint float_spare;
@@ -1357,7 +1470,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
        fpr = ARM_VFP_F0;
        float_spare = -1;
 
-       t = mini_type_get_underlying_type (gsctx, sig->ret);
+       t = mini_get_underlying_type (sig->ret);
        switch (t->type) {
        case MONO_TYPE_I1:
        case MONO_TYPE_U1:
@@ -1403,8 +1516,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
                        cinfo->ret.reg = ARMREG_R0;
                        break;
                }
-               // FIXME: Only for variable types
-               if (mini_is_gsharedvt_type_gsctx (gsctx, t)) {
+               if (mini_is_gsharedvt_variable_type (t)) {
                        cinfo->ret.storage = RegTypeStructByAddr;
                        break;
                }
@@ -1425,7 +1537,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
                break;
        case MONO_TYPE_VAR:
        case MONO_TYPE_MVAR:
-               g_assert (mini_is_gsharedvt_type_gsctx (gsctx, t));
+               g_assert (mini_is_gsharedvt_type (t));
                cinfo->ret.storage = RegTypeStructByAddr;
                break;
        case MONO_TYPE_VOID:
@@ -1445,7 +1557,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
         * are sometimes made using calli without sig->hasthis set, like in the delegate
         * invoke wrappers.
         */
-       if (vtype_retaddr && !is_pinvoke && (sig->hasthis || (sig->param_count > 0 && MONO_TYPE_IS_REFERENCE (mini_type_get_underlying_type (gsctx, sig->params [0]))))) {
+       if (vtype_retaddr && !is_pinvoke && (sig->hasthis || (sig->param_count > 0 && MONO_TYPE_IS_REFERENCE (mini_get_underlying_type (sig->params [0]))))) {
                if (sig->hasthis) {
                        add_general (&gr, &stack_size, cinfo->args + 0, TRUE);
                } else {
@@ -1487,7 +1599,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
                        n++;
                        continue;
                }
-               t = mini_type_get_underlying_type (gsctx, sig->params [i]);
+               t = mini_get_underlying_type (sig->params [i]);
                switch (t->type) {
                case MONO_TYPE_I1:
                case MONO_TYPE_U1:
@@ -1522,9 +1634,9 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
                                add_general (&gr, &stack_size, ainfo, TRUE);
                                break;
                        }
-                       if (mini_is_gsharedvt_type_gsctx (gsctx, t)) {
+                       if (mini_is_gsharedvt_variable_type (t)) {
                                /* gsharedvt arguments are passed by ref */
-                               g_assert (mini_is_gsharedvt_type_gsctx (gsctx, t));
+                               g_assert (mini_is_gsharedvt_type (t));
                                add_general (&gr, &stack_size, ainfo, TRUE);
                                switch (ainfo->storage) {
                                case RegTypeGeneral:
@@ -1567,7 +1679,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
                                if (is_pinvoke)
                                        size = mono_class_native_size (klass, &align);
                                else
-                                       size = mini_type_stack_size_full (gsctx, t, &align, FALSE);
+                                       size = mini_type_stack_size_full (t, &align, FALSE);
                        }
                        DEBUG(printf ("load %d bytes struct\n", size));
                        align_size = size;
@@ -1627,7 +1739,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
                case MONO_TYPE_VAR:
                case MONO_TYPE_MVAR:
                        /* gsharedvt arguments are passed by ref */
-                       g_assert (mini_is_gsharedvt_type_gsctx (gsctx, t));
+                       g_assert (mini_is_gsharedvt_type (t));
                        add_general (&gr, &stack_size, ainfo, TRUE);
                        switch (ainfo->storage) {
                        case RegTypeGeneral:
@@ -1672,15 +1784,15 @@ mono_arch_tail_call_supported (MonoCompile *cfg, MonoMethodSignature *caller_sig
        CallInfo *c1, *c2;
        gboolean res;
 
-       c1 = get_call_info (NULL, NULL, caller_sig);
-       c2 = get_call_info (NULL, NULL, callee_sig);
+       c1 = get_call_info (NULL, caller_sig);
+       c2 = get_call_info (NULL, callee_sig);
 
        /*
         * Tail calls with more callee stack usage than the caller cannot be supported, since
         * the extra stack space would be left on the stack after the tail call.
         */
        res = c1->stack_usage >= c2->stack_usage;
-       callee_ret = mini_get_underlying_type (cfg, callee_sig->ret);
+       callee_ret = mini_get_underlying_type (callee_sig->ret);
        if (callee_ret && MONO_TYPE_ISSTRUCT (callee_ret) && c2->ret.storage != RegTypeStructByVal)
                /* An address on the callee's stack is passed as the first argument */
                res = FALSE;
@@ -1727,7 +1839,7 @@ mono_arch_compute_omit_fp (MonoCompile *cfg)
        sig = mono_method_signature (cfg->method);
 
        if (!cfg->arch.cinfo)
-               cfg->arch.cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+               cfg->arch.cinfo = get_call_info (cfg->mempool, sig);
        cinfo = cfg->arch.cinfo;
 
        /*
@@ -1795,9 +1907,9 @@ mono_arch_allocate_vars (MonoCompile *cfg)
        sig = mono_method_signature (cfg->method);
 
        if (!cfg->arch.cinfo)
-               cfg->arch.cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+               cfg->arch.cinfo = get_call_info (cfg->mempool, sig);
        cinfo = cfg->arch.cinfo;
-       sig_ret = mini_get_underlying_type (cfg, sig->ret);
+       sig_ret = mini_get_underlying_type (sig->ret);
 
        mono_arch_compute_omit_fp (cfg);
 
@@ -1975,7 +2087,7 @@ mono_arch_allocate_vars (MonoCompile *cfg)
                        continue;
 
                t = ins->inst_vtype;
-               if (cfg->gsharedvt && mini_is_gsharedvt_variable_type (cfg, t))
+               if (cfg->gsharedvt && mini_is_gsharedvt_variable_type (t))
                        continue;
 
                /* inst->backend.is_pinvoke indicates native sized value types, this is used by the
@@ -2054,7 +2166,7 @@ mono_arch_allocate_vars (MonoCompile *cfg)
                if (ins->opcode != OP_REGVAR) {
                        ins->opcode = OP_REGOFFSET;
                        ins->inst_basereg = cfg->frame_reg;
-                       size = mini_type_stack_size_full (cfg->generic_sharing_context, sig->params [i], &ualign, sig->pinvoke);
+                       size = mini_type_stack_size_full (sig->params [i], &ualign, sig->pinvoke);
                        align = ualign;
                        /* FIXME: if a structure is misaligned, our memcpy doesn't work,
                         * since it loads/stores misaligned words, which don't do the right thing.
@@ -2094,7 +2206,7 @@ mono_arch_create_vars (MonoCompile *cfg)
        sig = mono_method_signature (cfg->method);
 
        if (!cfg->arch.cinfo)
-               cfg->arch.cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+               cfg->arch.cinfo = get_call_info (cfg->mempool, sig);
        cinfo = cfg->arch.cinfo;
 
        if (IS_HARD_FLOAT) {
@@ -2184,7 +2296,7 @@ mono_arch_get_llvm_call_info (MonoCompile *cfg, MonoMethodSignature *sig)
 
        n = sig->param_count + sig->hasthis;
 
-       cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+       cinfo = get_call_info (cfg->mempool, sig);
 
        linfo = mono_mempool_alloc0 (cfg->mempool, sizeof (LLVMCallInfo) + (sizeof (LLVMArgInfo) * n));
 
@@ -2194,12 +2306,19 @@ mono_arch_get_llvm_call_info (MonoCompile *cfg, MonoMethodSignature *sig)
         * - we only pass/receive them in registers in some cases, and only 
         *   in 1 or 2 integer registers.
         */
-       if (cinfo->ret.storage == RegTypeStructByAddr) {
+       switch (cinfo->ret.storage) {
+       case RegTypeGeneral:
+       case RegTypeNone:
+       case RegTypeFP:
+       case RegTypeIRegPair:
+               break;
+       case RegTypeStructByAddr:
                /* Vtype returned using a hidden argument */
                linfo->ret.storage = LLVMArgVtypeRetAddr;
                linfo->vret_arg_index = cinfo->vret_arg_index;
-       } else if (cinfo->ret.storage != RegTypeGeneral && cinfo->ret.storage != RegTypeNone && cinfo->ret.storage != RegTypeFP && cinfo->ret.storage != RegTypeIRegPair) {
-               cfg->exception_message = g_strdup ("unknown ret conv");
+               break;
+       default:
+               cfg->exception_message = g_strdup_printf ("unknown ret conv (%d)", cinfo->ret.storage);
                cfg->disable_llvm = TRUE;
                return linfo;
        }
@@ -2213,6 +2332,7 @@ mono_arch_get_llvm_call_info (MonoCompile *cfg, MonoMethodSignature *sig)
                case RegTypeGeneral:
                case RegTypeIRegPair:
                case RegTypeBase:
+               case RegTypeBaseGen:
                        linfo->args [i].storage = LLVMArgInIReg;
                        break;
                case RegTypeStructByVal:
@@ -2241,7 +2361,7 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
        sig = call->signature;
        n = sig->param_count + sig->hasthis;
        
-       cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+       cinfo = get_call_info (cfg->mempool, sig);
 
        switch (cinfo->ret.storage) {
        case RegTypeStructByVal:
@@ -2283,7 +2403,7 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
                        t = sig->params [i - sig->hasthis];
                else
                        t = &mono_defaults.int_class->byval_arg;
-               t = mini_type_get_underlying_type (cfg->generic_sharing_context, t);
+               t = mini_get_underlying_type (t);
 
                if ((sig->call_convention == MONO_CALL_VARARG) && (i == sig->sentinelpos)) {
                        /* Emit the signature cookie just before the implicit arguments */
@@ -2592,7 +2712,7 @@ mono_arch_emit_outarg_vt (MonoCompile *cfg, MonoInst *ins, MonoInst *src)
 void
 mono_arch_emit_setret (MonoCompile *cfg, MonoMethod *method, MonoInst *val)
 {
-       MonoType *ret = mini_type_get_underlying_type (cfg->generic_sharing_context, mono_method_signature (method)->ret);
+       MonoType *ret = mini_get_underlying_type (mono_method_signature (method)->ret);
 
        if (!ret->byref) {
                if (ret->type == MONO_TYPE_I8 || ret->type == MONO_TYPE_U8) {
@@ -2689,8 +2809,8 @@ dyn_call_supported (CallInfo *cinfo, MonoMethodSignature *sig)
 
                switch (ainfo->storage) {
                case RegTypeGeneral:
-                       break;
                case RegTypeIRegPair:
+               case RegTypeBaseGen:
                        break;
                case RegTypeBase:
                        if (ainfo->offset >= (DYN_CALL_STACK_ARGS * sizeof (gpointer)))
@@ -2716,7 +2836,7 @@ dyn_call_supported (CallInfo *cinfo, MonoMethodSignature *sig)
                if (t->byref)
                        continue;
 
-               t = mini_replace_type (t);
+               t = mini_get_underlying_type (t);
 
                switch (t->type) {
                case MONO_TYPE_R4:
@@ -2745,7 +2865,7 @@ mono_arch_dyn_call_prepare (MonoMethodSignature *sig)
        CallInfo *cinfo;
        int i;
 
-       cinfo = get_call_info (NULL, NULL, sig);
+       cinfo = get_call_info (NULL, sig);
 
        if (!dyn_call_supported (cinfo, sig)) {
                g_free (cinfo);
@@ -2756,10 +2876,10 @@ mono_arch_dyn_call_prepare (MonoMethodSignature *sig)
        // FIXME: Preprocess the info to speed up start_dyn_call ()
        info->sig = sig;
        info->cinfo = cinfo;
-       info->rtype = mini_type_get_underlying_type (NULL, sig->ret);
+       info->rtype = mini_get_underlying_type (sig->ret);
        info->param_types = g_new0 (MonoType*, sig->param_count);
        for (i = 0; i < sig->param_count; ++i)
-               info->param_types [i] = mini_type_get_underlying_type (NULL, sig->params [i]);
+               info->param_types [i] = mini_get_underlying_type (sig->params [i]);
        
        return (MonoDynCallInfo*)info;
 }
@@ -2805,12 +2925,16 @@ mono_arch_start_dyn_call (MonoDynCallInfo *info, gpointer **args, guint8 *ret, g
                ArgInfo *ainfo = &dinfo->cinfo->args [i + sig->hasthis];
                int slot = -1;
 
-               if (ainfo->storage == RegTypeGeneral || ainfo->storage == RegTypeIRegPair || ainfo->storage == RegTypeStructByVal)
+               if (ainfo->storage == RegTypeGeneral || ainfo->storage == RegTypeIRegPair || ainfo->storage == RegTypeStructByVal) {
                        slot = ainfo->reg;
-               else if (ainfo->storage == RegTypeBase)
+               } else if (ainfo->storage == RegTypeBase) {
                        slot = PARAM_REGS + (ainfo->offset / 4);
-               else
+               } else if (ainfo->storage == RegTypeBaseGen) {
+                       /* slot + 1 is the first stack slot, so the code below will work */
+                       slot = 3;
+               } else {
                        g_assert_not_reached ();
+               }
 
                if (t->byref) {
                        p->regs [slot] = (mgreg_t)*arg;
@@ -3009,7 +3133,7 @@ mono_arch_instrument_epilog_full (MonoCompile *cfg, void *func, void *p, gboolea
        int save_mode = SAVE_NONE;
        int offset;
        MonoMethod *method = cfg->method;
-       MonoType *ret_type = mini_type_get_underlying_type (cfg->generic_sharing_context, mono_method_signature (method)->ret);
+       MonoType *ret_type = mini_get_underlying_type (mono_method_signature (method)->ret);
        int rtype = ret_type->type;
        int save_offset = cfg->param_area;
        save_offset += 7;
@@ -3779,6 +3903,10 @@ handle_thunk (MonoCompile *cfg, MonoDomain *domain, guchar *code, const guchar *
                                        /* Free entry */
                                        target_thunk = p;
                                        break;
+                               } else if (((guint32*)p) [2] == (guint32)target) {
+                                       /* Thunk already points to target */
+                                       target_thunk = p;
+                                       break;
                                }
                        }
                }
@@ -4085,7 +4213,7 @@ emit_move_return_value (MonoCompile *cfg, MonoInst *ins, guint8 *code)
        case OP_FCALL_REG:
        case OP_FCALL_MEMBASE:
                if (IS_VFP) {
-                       MonoType *sig_ret = mini_type_get_underlying_type (NULL, ((MonoCallInst*)ins)->signature->ret);
+                       MonoType *sig_ret = mini_get_underlying_type (((MonoCallInst*)ins)->signature->ret);
                        if (sig_ret->type == MONO_TYPE_R4) {
                                if (IS_HARD_FLOAT) {
                                        ARM_CVTS (code, ins->dreg, ARM_VFP_F0);
@@ -4109,7 +4237,7 @@ emit_move_return_value (MonoCompile *cfg, MonoInst *ins, guint8 *code)
 
                g_assert (IS_VFP);
 
-               sig_ret = mini_type_get_underlying_type (NULL, ((MonoCallInst*)ins)->signature->ret);
+               sig_ret = mini_get_underlying_type (((MonoCallInst*)ins)->signature->ret);
                g_assert (sig_ret->type == MONO_TYPE_R4);
                if (IS_HARD_FLOAT) {
                        ARM_CPYS (code, ins->dreg, ARM_VFP_F0);
@@ -4184,15 +4312,16 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        }
                        break;
                case OP_TLS_GET:
-#ifdef HAVE_AEABI_READ_TP
-                       mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD, 
-                                                                (gpointer)"__aeabi_read_tp");
-                       code = emit_call_seq (cfg, code);
-
-                       ARM_LDR_IMM (code, ins->dreg, ARMREG_R0, ins->inst_offset);
-#else
-                       g_assert_not_reached ();
-#endif
+                       code = mono_arm_emit_tls_get (cfg, code, ins->dreg, ins->inst_offset);
+                       break;
+               case OP_TLS_GET_REG:
+                       code = mono_arm_emit_tls_get_reg (cfg, code, ins->dreg, ins->sreg1);
+                       break;
+               case OP_TLS_SET:
+                       code = mono_arm_emit_tls_set (cfg, code, ins->sreg1, ins->inst_offset);
+                       break;
+               case OP_TLS_SET_REG:
+                       code = mono_arm_emit_tls_set_reg (cfg, code, ins->sreg1, ins->sreg2);
                        break;
                case OP_ATOMIC_EXCHANGE_I4:
                case OP_ATOMIC_CAS_I4:
@@ -4291,11 +4420,16 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                                ARM_LDR_REG_REG (code, ins->dreg, ins->inst_basereg, ARMREG_LR);
                                break;
                        case OP_ATOMIC_LOAD_R4:
-                               code = mono_arm_emit_vfp_scratch_save (cfg, code, vfp_scratch1);
-                               ARM_ADD_REG_REG (code, ARMREG_LR, ins->inst_basereg, ARMREG_LR);
-                               ARM_FLDS (code, vfp_scratch1, ARMREG_LR, 0);
-                               ARM_CVTS (code, ins->dreg, vfp_scratch1);
-                               code = mono_arm_emit_vfp_scratch_restore (cfg, code, vfp_scratch1);
+                               if (cfg->r4fp) {
+                                       ARM_ADD_REG_REG (code, ARMREG_LR, ins->inst_basereg, ARMREG_LR);
+                                       ARM_FLDS (code, ins->dreg, ARMREG_LR, 0);
+                               } else {
+                                       code = mono_arm_emit_vfp_scratch_save (cfg, code, vfp_scratch1);
+                                       ARM_ADD_REG_REG (code, ARMREG_LR, ins->inst_basereg, ARMREG_LR);
+                                       ARM_FLDS (code, vfp_scratch1, ARMREG_LR, 0);
+                                       ARM_CVTS (code, ins->dreg, vfp_scratch1);
+                                       code = mono_arm_emit_vfp_scratch_restore (cfg, code, vfp_scratch1);
+                               }
                                break;
                        case OP_ATOMIC_LOAD_R8:
                                ARM_ADD_REG_REG (code, ARMREG_LR, ins->inst_basereg, ARMREG_LR);
@@ -4332,11 +4466,16 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                                ARM_STR_REG_REG (code, ins->sreg1, ins->inst_destbasereg, ARMREG_LR);
                                break;
                        case OP_ATOMIC_STORE_R4:
-                               code = mono_arm_emit_vfp_scratch_save (cfg, code, vfp_scratch1);
-                               ARM_ADD_REG_REG (code, ARMREG_LR, ins->inst_destbasereg, ARMREG_LR);
-                               ARM_CVTD (code, vfp_scratch1, ins->sreg1);
-                               ARM_FSTS (code, vfp_scratch1, ARMREG_LR, 0);
-                               code = mono_arm_emit_vfp_scratch_restore (cfg, code, vfp_scratch1);
+                               if (cfg->r4fp) {
+                                       ARM_ADD_REG_REG (code, ARMREG_LR, ins->inst_destbasereg, ARMREG_LR);
+                                       ARM_FSTS (code, ins->sreg1, ARMREG_LR, 0);
+                               } else {
+                                       code = mono_arm_emit_vfp_scratch_save (cfg, code, vfp_scratch1);
+                                       ARM_ADD_REG_REG (code, ARMREG_LR, ins->inst_destbasereg, ARMREG_LR);
+                                       ARM_CVTD (code, vfp_scratch1, ins->sreg1);
+                                       ARM_FSTS (code, vfp_scratch1, ARMREG_LR, 0);
+                                       code = mono_arm_emit_vfp_scratch_restore (cfg, code, vfp_scratch1);
+                               }
                                break;
                        case OP_ATOMIC_STORE_R8:
                                ARM_ADD_REG_REG (code, ARMREG_LR, ins->inst_destbasereg, ARMREG_LR);
@@ -4627,6 +4766,13 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                                for (i = 0; i < 4; ++i)
                                        ARM_NOP (code);
                        }
+
+                       /*
+                        * Add an additional nop so skipping the bp doesn't cause the ip to point
+                        * to another IL offset.
+                        */
+
+                       ARM_NOP (code);
                        break;
                }
                case OP_ADDCC:
@@ -4873,15 +5019,27 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        if (IS_VFP && ins->dreg != ins->sreg1)
                                ARM_CPYD (code, ins->dreg, ins->sreg1);
                        break;
+               case OP_RMOVE:
+                       if (IS_VFP && ins->dreg != ins->sreg1)
+                               ARM_CPYS (code, ins->dreg, ins->sreg1);
+                       break;
                case OP_MOVE_F_TO_I4:
-                       code = mono_arm_emit_vfp_scratch_save (cfg, code, vfp_scratch1);
-                       ARM_CVTD (code, vfp_scratch1, ins->sreg1);
-                       ARM_FMRS (code, ins->dreg, vfp_scratch1);
-                       code = mono_arm_emit_vfp_scratch_restore (cfg, code, vfp_scratch1);
+                       if (cfg->r4fp) {
+                               ARM_FMRS (code, ins->dreg, ins->sreg1);
+                       } else {
+                               code = mono_arm_emit_vfp_scratch_save (cfg, code, vfp_scratch1);
+                               ARM_CVTD (code, vfp_scratch1, ins->sreg1);
+                               ARM_FMRS (code, ins->dreg, vfp_scratch1);
+                               code = mono_arm_emit_vfp_scratch_restore (cfg, code, vfp_scratch1);
+                       }
                        break;
                case OP_MOVE_I4_TO_F:
-                       ARM_FMSR (code, ins->dreg, ins->sreg1);
-                       ARM_CVTS (code, ins->dreg, ins->dreg);
+                       if (cfg->r4fp) {
+                               ARM_FMSR (code, ins->dreg, ins->sreg1);
+                       } else {
+                               ARM_FMSR (code, ins->dreg, ins->sreg1);
+                               ARM_CVTS (code, ins->dreg, ins->dreg);
+                       }
                        break;
                case OP_FCONV_TO_R4:
                        if (IS_VFP) {
@@ -4950,6 +5108,7 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                                ARM_LDR_REG_REG (code, ARMREG_PC, ARMREG_PC, ARMREG_IP);
                        } else {
                                code = mono_arm_patchable_b (code, ARMCOND_AL);
+                               cfg->thunk_area += THUNK_SIZE;
                        }
                        break;
                }
@@ -5045,7 +5204,7 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        g_assert (ins->sreg1 == ARMREG_R0);
 
                        mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD,
-                                                                (gpointer)"specific_trampoline_generic_class_init");
+                                                                (gpointer)"mono_generic_class_init");
                        code = emit_call_seq (cfg, code);
 
                        /* Initialized case */
@@ -5454,7 +5613,7 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        break;
 
                case OP_SETFRET: {
-                       MonoType *sig_ret = mini_type_get_underlying_type (NULL, mono_method_signature (cfg->method)->ret);
+                       MonoType *sig_ret = mini_get_underlying_type (mono_method_signature (cfg->method)->ret);
                        if (sig_ret->type == MONO_TYPE_R4) {
                                if (cfg->r4fp) {
                                        g_assert (!IS_HARD_FLOAT);
@@ -5824,6 +5983,22 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        ins->backend.pc_offset = code - cfg->native_code;
                        bb->spill_slot_defs = g_slist_prepend_mempool (cfg->mempool, bb->spill_slot_defs, ins);
                        break;
+               case OP_GC_SAFE_POINT: {
+#if defined (USE_COOP_GC)
+                       const char *polling_func = NULL;
+                       guint8 *buf [1];
+
+                       polling_func = "mono_threads_state_poll";
+                       ARM_LDR_IMM (code, ARMREG_IP, ins->sreg1, 0);
+                       ARM_CMP_REG_IMM (code, ARMREG_IP, 0, 0);
+                       buf [0] = code;
+                       ARM_B_COND (code, ARMCOND_EQ, 0);
+                       mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD, polling_func);
+                       code = emit_call_seq (cfg, code);
+                       arm_patch (buf [0], code);
+#endif
+                       break;
+               }
 
                default:
                        g_warning ("unknown opcode %s in %s()\n", mono_inst_name (ins->opcode), __FUNCTION__);
@@ -5847,10 +6022,6 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
 
 #endif /* DISABLE_JIT */
 
-#ifdef HAVE_AEABI_READ_TP
-void __aeabi_read_tp (void);
-#endif
-
 void
 mono_arch_register_lowlevel_calls (void)
 {
@@ -5859,9 +6030,37 @@ mono_arch_register_lowlevel_calls (void)
        mono_register_jit_icall (mono_arm_throw_exception_by_token, "mono_arm_throw_exception_by_token", mono_create_icall_signature ("void"), TRUE);
 
 #ifndef MONO_CROSS_COMPILE
-#ifdef HAVE_AEABI_READ_TP
-       mono_register_jit_icall (__aeabi_read_tp, "__aeabi_read_tp", mono_create_icall_signature ("void"), TRUE);
-#endif
+       if (mono_arm_have_tls_get ()) {
+               if (mono_arm_have_fast_tls ()) {
+                       mono_register_jit_icall (mono_fast_get_tls_key, "mono_get_tls_key", mono_create_icall_signature ("ptr ptr"), TRUE);
+                       mono_register_jit_icall (mono_fast_set_tls_key, "mono_set_tls_key", mono_create_icall_signature ("void ptr ptr"), TRUE);
+
+                       mono_tramp_info_register (
+                               mono_tramp_info_create (
+                                       "mono_get_tls_key",
+                                       (guint8*)mono_fast_get_tls_key,
+                                       (guint8*)mono_fast_get_tls_key_end - (guint8*)mono_fast_get_tls_key,
+                                       NULL,
+                                       mono_arch_get_cie_program ()
+                                       ),
+                               NULL
+                               );
+                       mono_tramp_info_register (
+                               mono_tramp_info_create (
+                                       "mono_set_tls_key",
+                                       (guint8*)mono_fast_set_tls_key,
+                                       (guint8*)mono_fast_set_tls_key_end - (guint8*)mono_fast_set_tls_key,
+                                       NULL,
+                                       mono_arch_get_cie_program ()
+                                       ),
+                               NULL
+                               );
+               } else {
+                       g_warning ("No fast tls on device. Using fallbacks.");
+                       mono_register_jit_icall (mono_fallback_get_tls_key, "mono_get_tls_key", mono_create_icall_signature ("ptr ptr"), TRUE);
+                       mono_register_jit_icall (mono_fallback_set_tls_key, "mono_set_tls_key", mono_create_icall_signature ("void ptr ptr"), TRUE);
+               }
+       }
 #endif
 }
 
@@ -5993,10 +6192,10 @@ mono_arch_emit_prolog (MonoCompile *cfg)
                 * FIXME: Optimize this.
                 */
                ARM_PUSH (code, (1 << ARMREG_R7) | (1 << ARMREG_LR));
-               ARM_MOV_REG_REG (code, ARMREG_R7, ARMREG_SP);
                prev_sp_offset += 8; /* r7 and lr */
                mono_emit_unwind_op_def_cfa_offset (cfg, code, prev_sp_offset);
                mono_emit_unwind_op_offset (cfg, code, ARMREG_R7, (- prev_sp_offset) + 0);
+               ARM_MOV_REG_REG (code, ARMREG_R7, ARMREG_SP);
        }
 
        if (!method->save_lmf) {
@@ -6110,7 +6309,7 @@ mono_arch_emit_prolog (MonoCompile *cfg)
        /* load arguments allocated to register from the stack */
        pos = 0;
 
-       cinfo = get_call_info (cfg->generic_sharing_context, NULL, sig);
+       cinfo = get_call_info (NULL, sig);
 
        if (cinfo->ret.storage == RegTypeStructByAddr) {
                ArgInfo *ainfo = &cinfo->ret;
@@ -6302,7 +6501,7 @@ mono_arch_emit_prolog (MonoCompile *cfg)
                                int soffset = 0;
                                int cur_reg;
                                int size = 0;
-                               size = mini_type_stack_size_full (cfg->generic_sharing_context, inst->inst_vtype, NULL, sig->pinvoke);
+                               size = mini_type_stack_size_full (inst->inst_vtype, NULL, sig->pinvoke);
                                for (cur_reg = 0; cur_reg < ainfo->size; ++cur_reg) {
                                        if (arm_is_imm12 (doffset)) {
                                                ARM_STR_IMM (code, ainfo->reg + cur_reg, inst->inst_basereg, doffset);
@@ -6460,6 +6659,9 @@ mono_arch_emit_epilog (MonoCompile *cfg)
         */
        code = cfg->native_code + cfg->code_len;
 
+       /* Save the uwind state which is needed by the out-of-line code */
+       mono_emit_unwind_op_remember_state (cfg, code);
+
        if (mono_jit_trace_calls != NULL && mono_trace_eval (method)) {
                code = mono_arch_instrument_epilog (cfg, mono_trace_leave_method, code, TRUE);
        }
@@ -6495,7 +6697,7 @@ mono_arch_emit_epilog (MonoCompile *cfg)
        }
 
        if (method->save_lmf) {
-               int lmf_offset, reg, sp_adj, regmask;
+               int lmf_offset, reg, sp_adj, regmask, nused_int_regs = 0;
                /* all but r0-r3, sp and pc */
                pos += sizeof (MonoLMF) - (MONO_ARM_NUM_SAVED_REGS * sizeof (mgreg_t));
                lmf_offset = pos;
@@ -6517,15 +6719,33 @@ mono_arch_emit_epilog (MonoCompile *cfg)
                        regmask &= ~(1 << ARMREG_PC);
                /* point sp at the registers to restore: 10 is 14 -4, because we skip r0-r3 */
                code = emit_big_add (code, ARMREG_SP, cfg->frame_reg, cfg->stack_usage - lmf_offset + sp_adj);
+               for (i = 0; i < 16; i++) {
+                       if (regmask & (1 << i))
+                               nused_int_regs ++;
+               }
+               mono_emit_unwind_op_def_cfa (cfg, code, ARMREG_SP, ((iphone_abi ? 3 : 0) + nused_int_regs) * 4);
                /* restore iregs */
                ARM_POP (code, regmask); 
                if (iphone_abi) {
+                       for (i = 0; i < 16; i++) {
+                               if (regmask & (1 << i))
+                                       mono_emit_unwind_op_same_value (cfg, code, i);
+                       }
                        /* Restore saved r7, restore LR to PC */
                        /* Skip lr from the lmf */
+                       mono_emit_unwind_op_def_cfa_offset (cfg, code, 3 * 4);
                        ARM_ADD_REG_IMM (code, ARMREG_SP, ARMREG_SP, sizeof (gpointer), 0);
+                       mono_emit_unwind_op_def_cfa_offset (cfg, code, 2 * 4);
                        ARM_POP (code, (1 << ARMREG_R7) | (1 << ARMREG_PC));
                }
        } else {
+               int i, nused_int_regs = 0;
+
+               for (i = 0; i < 16; i++) {
+                       if (cfg->used_int_regs & (1 << i))
+                               nused_int_regs ++;
+               }
+
                if ((i = mono_arm_is_rotated_imm8 (cfg->stack_usage, &rot_amount)) >= 0) {
                        ARM_ADD_REG_IMM (code, ARMREG_SP, cfg->frame_reg, i, rot_amount);
                } else {
@@ -6533,17 +6753,32 @@ mono_arch_emit_epilog (MonoCompile *cfg)
                        ARM_ADD_REG_REG (code, ARMREG_SP, cfg->frame_reg, ARMREG_IP);
                }
 
+               if (cfg->frame_reg != ARMREG_SP) {
+                       mono_emit_unwind_op_def_cfa_reg (cfg, code, ARMREG_SP);
+               }
+
                if (iphone_abi) {
                        /* Restore saved gregs */
-                       if (cfg->used_int_regs)
+                       if (cfg->used_int_regs) {
+                               mono_emit_unwind_op_def_cfa_offset (cfg, code, (2 + nused_int_regs) * 4);
                                ARM_POP (code, cfg->used_int_regs);
+                               for (i = 0; i < 16; i++) {
+                                       if (cfg->used_int_regs & (1 << i))
+                                               mono_emit_unwind_op_same_value (cfg, code, i);
+                               }
+                       }
+                       mono_emit_unwind_op_def_cfa_offset (cfg, code, 2 * 4);
                        /* Restore saved r7, restore LR to PC */
                        ARM_POP (code, (1 << ARMREG_R7) | (1 << ARMREG_PC));
                } else {
+                       mono_emit_unwind_op_def_cfa_offset (cfg, code, (nused_int_regs + 1) * 4);
                        ARM_POP (code, cfg->used_int_regs | (1 << ARMREG_PC));
                }
        }
 
+       /* Restore the unwind state to be the same as before the epilog */
+       mono_emit_unwind_op_restore_state (cfg, code);
+
        cfg->code_len = code - cfg->native_code;
 
        g_assert (cfg->code_len < cfg->code_size);
@@ -6698,6 +6933,16 @@ mono_arch_find_static_call_vtable (mgreg_t *regs, guint8 *code)
        return (MonoVTable*) regs [MONO_ARCH_RGCTX_REG];
 }
 
+GSList*
+mono_arch_get_cie_program (void)
+{
+       GSList *l = NULL;
+
+       mono_add_unwind_op_def_cfa (l, (guint8*)NULL, (guint8*)NULL, ARMREG_SP, 0);
+
+       return l;
+}
+
 /* #define ENABLE_WRONG_METHOD_CHECK 1 */
 #define BASE_SIZE (6 * 4)
 #define BSEARCH_ENTRY_SIZE (4 * 4)
@@ -6766,6 +7011,7 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
 #ifdef ENABLE_WRONG_METHOD_CHECK
        char * cond;
 #endif
+       GSList *unwind_ops;
 
        size = BASE_SIZE;
 #ifdef USE_JUMP_TABLES
@@ -6820,6 +7066,8 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
                code = mono_domain_code_reserve (domain, size);
        start = code;
 
+       unwind_ops = mono_arch_get_cie_program ();
+
 #ifdef DEBUG_IMT
        g_print ("Building IMT thunk for class %s %s entries %d code size %d code at %p end %p vtable %p fail_tramp %p\n", vtable->klass->name_space, vtable->klass->name, count, size, start, ((guint8*)start) + size, vtable, fail_tramp);
        for (i = 0; i < count; ++i) {
@@ -6830,6 +7078,7 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
 
 #ifdef USE_JUMP_TABLES
        ARM_PUSH3 (code, ARMREG_R0, ARMREG_R1, ARMREG_R2);
+       mono_add_unwind_op_def_cfa_offset (unwind_ops, code, start, 3 * sizeof (mgreg_t));
 #define VTABLE_JTI 0
 #define IMT_METHOD_OFFSET 0
 #define TARGET_CODE_OFFSET 1
@@ -6844,10 +7093,13 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
        ARM_LDR_IMM (code, ARMREG_IP, ARMREG_R2, VTABLE_JTI);
        set_jumptable_element (jte, VTABLE_JTI, vtable);
 #else
-       if (large_offsets)
+       if (large_offsets) {
                ARM_PUSH4 (code, ARMREG_R0, ARMREG_R1, ARMREG_IP, ARMREG_PC);
-       else
+               mono_add_unwind_op_def_cfa_offset (unwind_ops, code, start, 4 * sizeof (mgreg_t));
+       } else {
                ARM_PUSH2 (code, ARMREG_R0, ARMREG_R1);
+               mono_add_unwind_op_def_cfa_offset (unwind_ops, code, start, 2 * sizeof (mgreg_t));
+       }
        ARM_LDR_IMM (code, ARMREG_R0, ARMREG_LR, -4);
        vtable_target = code;
        ARM_LDR_IMM (code, ARMREG_IP, ARMREG_PC, 0);
@@ -6920,6 +7172,7 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
                                code = load_element_with_regbase_cond (code, ARMREG_R1, ARMREG_R2, target_code_jti, ARMCOND_AL);
                                /* Restore registers */
                                ARM_POP3 (code, ARMREG_R0, ARMREG_R1, ARMREG_R2);
+                               mono_add_unwind_op_def_cfa_offset (unwind_ops, code, start, 0);
                                /*  And branch */
                                ARM_BX (code, ARMREG_R1);
                                set_jumptable_element (jte, target_code_jti, item->value.target_code);
@@ -6951,6 +7204,7 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
                                        ARM_LDR_REG_REG (code, ARMREG_IP, ARMREG_IP, ARMREG_R1);
                                        /* Restore registers and branch */
                                        ARM_POP3 (code, ARMREG_R0, ARMREG_R1, ARMREG_R2);
+                                       mono_add_unwind_op_def_cfa_offset (unwind_ops, code, start, 0);
                                        ARM_BX (code, ARMREG_IP);
 #else
                                        vtable_offset_ins = code;
@@ -6967,11 +7221,15 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
 #ifdef USE_JUMP_TABLES
                                        ARM_LDR_IMM (code, ARMREG_IP, ARMREG_IP, vtable_offset);
                                        ARM_POP3 (code, ARMREG_R0, ARMREG_R1, ARMREG_R2);
+                                       mono_add_unwind_op_def_cfa_offset (unwind_ops, code, start, 0);
                                        ARM_BX (code, ARMREG_IP);
 #else
                                        ARM_POP2 (code, ARMREG_R0, ARMREG_R1);
-                                       if (large_offsets)
+                                       if (large_offsets) {
+                                               mono_add_unwind_op_def_cfa_offset (unwind_ops, code, start, 2 * sizeof (mgreg_t));
                                                ARM_ADD_REG_IMM8 (code, ARMREG_SP, ARMREG_SP, 2 * sizeof (gpointer));
+                                       }
+                                       mono_add_unwind_op_def_cfa_offset (unwind_ops, code, start, 0);
                                        ARM_LDR_IMM (code, ARMREG_PC, ARMREG_IP, vtable_offset);
 #endif
                                }
@@ -6985,6 +7243,7 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
                                code = load_element_with_regbase_cond (code, ARMREG_R1, ARMREG_R2, target_code_jti, ARMCOND_AL);
                                /* Restore registers */
                                ARM_POP3 (code, ARMREG_R0, ARMREG_R1, ARMREG_R2);
+                               mono_add_unwind_op_def_cfa_offset (unwind_ops, code, start, 0);
                                /* And branch */
                                ARM_BX (code, ARMREG_R1);
                                set_jumptable_element (jte, target_code_jti, fail_tramp);
@@ -7084,6 +7343,9 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
        mono_stats.imt_thunks_size += code - start;
 
        g_assert (DISTANCE (start, code) <= size);
+
+       mono_tramp_info_register (mono_tramp_info_create (NULL, (guint8*)start, DISTANCE (start, code), NULL, unwind_ops), domain);
+
        return start;
 }
 
index eb53c982951c4f75829d3451396b38abdbaa2b7c..5135fcbb94808cdea4d403716a883cdd7b2326fd 100644 (file)
@@ -179,7 +179,7 @@ typedef struct {
 
 
 #define PARAM_REGS 4
-#define DYN_CALL_STACK_ARGS 6
+#define DYN_CALL_STACK_ARGS 10
 
 typedef struct {
        mgreg_t regs [PARAM_REGS + DYN_CALL_STACK_ARGS];
@@ -254,7 +254,7 @@ typedef struct MonoCompileArch {
 
 #define MONO_ARCH_USE_SIGACTION 1
 
-#if defined(__native_client__)
+#if defined(__native_client__) || defined(HOST_WATCHOS)
 #undef MONO_ARCH_USE_SIGACTION
 #endif
 
@@ -270,7 +270,7 @@ typedef struct MonoCompileArch {
 
 #define MONO_ARCH_GSHARED_SUPPORTED 1
 #define MONO_ARCH_DYN_CALL_SUPPORTED 1
-#define MONO_ARCH_DYN_CALL_PARAM_AREA 24
+#define MONO_ARCH_DYN_CALL_PARAM_AREA (DYN_CALL_STACK_ARGS * sizeof (mgreg_t))
 
 #ifndef MONO_CROSS_COMPILE
 #define MONO_ARCH_SOFT_DEBUG_SUPPORTED 1
@@ -301,10 +301,8 @@ typedef struct MonoCompileArch {
 #undef MONO_ARCH_HAVE_CONTEXT_SET_INT_REG
 #endif
 
-/* Matches the HAVE_AEABI_READ_TP define in mini-arm.c */
-#if defined(__ARM_EABI__) && defined(__linux__) && !defined(TARGET_ANDROID) && !defined(__native_client__)
-#define MONO_ARCH_HAVE_TLS_GET 1
-#endif
+#define MONO_ARCH_HAVE_TLS_GET (mono_arm_have_tls_get ())
+#define MONO_ARCH_HAVE_TLS_GET_REG 1
 
 /* ARM doesn't have too many registers, so we have to use a callee saved one */
 #define MONO_ARCH_RGCTX_REG ARMREG_V5
@@ -358,4 +356,7 @@ mono_arm_load_jumptable_entry (guint8 *code, gpointer *jte, ARMReg reg);
 gboolean
 mono_arm_is_hard_float (void);
 
+gboolean
+mono_arm_have_tls_get (void);
+
 #endif /* __MONO_MINI_ARM_H__ */
index 4fde10b791fabbd369962c611d37f097cb6000d4..f1599c0fb4e9526d5c81720c17ae9c4180148fd7 100644 (file)
@@ -2505,7 +2505,7 @@ mono_opcode_to_type (int opcode, int cmp_opcode)
 gboolean
 mono_is_regsize_var (MonoType *t)
 {
-       t = mini_type_get_underlying_type (NULL, t);
+       t = mini_get_underlying_type (t);
        switch (t->type) {
        case MONO_TYPE_I1:
        case MONO_TYPE_U1:
index cb7a975f9d1d36bbc8876f9f33e83b32f019e062..ab0024c41ba702293f2a6f99422328e2e5fcbe97 100644 (file)
@@ -239,12 +239,17 @@ mono_runtime_install_handlers (void)
 pid_t
 mono_runtime_syscall_fork ()
 {
+#ifdef HAVE_FORK
        return (pid_t) fork ();
+#else
+       g_assert_not_reached ();
+#endif
 }
 
 void
 mono_gdb_render_native_backtraces (pid_t crashed_pid)
 {
+#ifdef HAVE_EXECV
        const char *argv [5];
        char template [] = "/tmp/mono-gdb-commands.XXXXXX";
        FILE *commands;
@@ -288,6 +293,9 @@ mono_gdb_render_native_backtraces (pid_t crashed_pid)
 
        execv (argv [0], (char**)argv);
        unlink (template);
+#else
+       fprintf (stderr, "mono_gdb_render_native_backtraces not supported on this platform\n");
+#endif // HAVE_EXECV
 }
 
 gboolean
index bc7d73d855363553958f1def7046ba0be999a304..f138734181cc24ad5ce1b342e20acf5f9ac6a371 100644 (file)
 #include <sys/syscall.h>
 #endif
 
+#ifdef HAVE_SYS_PRCTL_H
+#include <sys/prctl.h>
+#endif
+
 #include <mono/metadata/appdomain.h>
 #include <mono/metadata/tabledefs.h>
 #include <mono/metadata/threads.h>
@@ -94,13 +98,13 @@ mono_exceptions_init (void)
                MonoTrampInfo *info;
 
                restore_context_func = mono_arch_get_restore_context (&info, FALSE);
-               mono_tramp_info_register (info);
+               mono_tramp_info_register (info, NULL);
                call_filter_func = mono_arch_get_call_filter (&info, FALSE);
-               mono_tramp_info_register (info);
+               mono_tramp_info_register (info, NULL);
                throw_exception_func = mono_arch_get_throw_exception (&info, FALSE);
-               mono_tramp_info_register (info);
+               mono_tramp_info_register (info, NULL);
                rethrow_exception_func = mono_arch_get_rethrow_exception (&info, FALSE);
-               mono_tramp_info_register (info);
+               mono_tramp_info_register (info, NULL);
        }
 #ifdef MONO_ARCH_HAVE_RESTORE_STACK_SUPPORT
        try_more_restore_tramp = mono_create_specific_trampoline (try_more_restore, MONO_TRAMPOLINE_RESTORE_STACK_PROT, mono_domain_get (), NULL);
@@ -161,7 +165,7 @@ mono_get_throw_corlib_exception (void)
                code = mono_aot_get_trampoline ("throw_corlib_exception");
        else {
                code = mono_arch_get_throw_corlib_exception (&info, FALSE);
-               mono_tramp_info_register (info);
+               mono_tramp_info_register (info, NULL);
        }
 
        mono_memory_barrier ();
@@ -201,7 +205,7 @@ is_address_protected (MonoJitInfo *ji, MonoJitExceptionInfo *ei, gpointer ip)
 /*
  * find_jit_info:
  *
- * Translate between the mono_arch_find_jit_info function and the old API.
+ * Translate between the mono_arch_unwind_frame function and the old API.
  */
 static MonoJitInfo *
 find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, MonoJitInfo *res, MonoJitInfo *prev_ji, MonoContext *ctx, 
@@ -221,7 +225,7 @@ find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, MonoJitInfo *res, Mo
        if (managed)
                *managed = FALSE;
 
-       err = mono_arch_find_jit_info (domain, jit_tls, ji, ctx, new_ctx, lmf, NULL, &frame);
+       err = mono_arch_unwind_frame (domain, jit_tls, ji, ctx, new_ctx, lmf, NULL, &frame);
        if (!err)
                return (gpointer)-1;
 
@@ -239,6 +243,8 @@ find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, MonoJitInfo *res, Mo
                if (managed)
                        *managed = TRUE;
                return frame.ji;
+       case FRAME_TYPE_TRAMPOLINE:
+               return frame.ji;
        case FRAME_TYPE_MANAGED_TO_NATIVE:
                if (frame.ji)
                        return frame.ji;
@@ -297,10 +303,10 @@ mono_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, MonoJitInfo *re
        if (ji == (gpointer)-1)
                return ji;
 
-       if (ji)
+       if (ji && !ji->is_trampoline)
                method = jinfo_get_method (ji);
 
-       if (managed2 || (ji && method->wrapper_type)) {
+       if (managed2 || (method && method->wrapper_type)) {
                const char *real_ip, *start;
                gint32 offset;
 
@@ -381,7 +387,7 @@ mono_find_jit_info_ext (MonoDomain *domain, MonoJitTlsData *jit_tls,
        if (save_locations)
                memset (save_locations, 0, MONO_MAX_IREGS * sizeof (mgreg_t*));
 
-       err = mono_arch_find_jit_info (target_domain, jit_tls, ji, ctx, new_ctx, lmf, save_locations, frame);
+       err = mono_arch_unwind_frame (target_domain, jit_tls, ji, ctx, new_ctx, lmf, save_locations, frame);
        if (!err)
                return FALSE;
 
@@ -393,7 +399,7 @@ mono_find_jit_info_ext (MonoDomain *domain, MonoJitTlsData *jit_tls,
                *lmf = (gpointer)(((gsize)(*lmf)->previous_lmf) & ~(SIZEOF_VOID_P -1));
        }
 
-       if (frame->ji && !frame->ji->async)
+       if (frame->ji && !frame->ji->is_trampoline && !frame->ji->async)
                method = jinfo_get_method (frame->ji);
 
        if (frame->type == FRAME_TYPE_MANAGED && method) {
@@ -447,6 +453,9 @@ mono_find_jit_info_ext (MonoDomain *domain, MonoJitTlsData *jit_tls,
        return TRUE;
 }
 
+/*
+ * This function is async-safe.
+ */
 static gpointer
 get_generic_info_from_stack_frame (MonoJitInfo *ji, MonoContext *ctx)
 {
@@ -507,7 +516,7 @@ static MonoGenericContext
 get_generic_context_from_stack_frame (MonoJitInfo *ji, gpointer generic_info)
 {
        MonoGenericContext context = { NULL, NULL };
-       MonoClass *class, *method_container_class;
+       MonoClass *klass, *method_container_class;
        MonoMethod *method;
 
        g_assert (generic_info);
@@ -517,15 +526,15 @@ get_generic_context_from_stack_frame (MonoJitInfo *ji, gpointer generic_info)
        if (mono_method_get_context (method)->method_inst) {
                MonoMethodRuntimeGenericContext *mrgctx = generic_info;
 
-               class = mrgctx->class_vtable->klass;
+               klass = mrgctx->class_vtable->klass;
                context.method_inst = mrgctx->method_inst;
                g_assert (context.method_inst);
        } else if ((method->flags & METHOD_ATTRIBUTE_STATIC) || method->klass->valuetype) {
                MonoVTable *vtable = generic_info;
 
-               class = vtable->klass;
+               klass = vtable->klass;
        } else {
-               class = generic_info;
+               klass = generic_info;
        }
 
        //g_assert (!method->klass->generic_container);
@@ -535,18 +544,18 @@ get_generic_context_from_stack_frame (MonoJitInfo *ji, gpointer generic_info)
                method_container_class = method->klass;
 
        /* class might refer to a subclass of method's class */
-       while (!(class == method->klass || (class->generic_class && class->generic_class->container_class == method_container_class))) {
-               class = class->parent;
-               g_assert (class);
+       while (!(klass == method->klass || (klass->generic_class && klass->generic_class->container_class == method_container_class))) {
+               klass = klass->parent;
+               g_assert (klass);
        }
 
-       if (class->generic_class || class->generic_container)
-               context.class_inst = mini_class_get_context (class)->class_inst;
+       if (klass->generic_class || klass->generic_container)
+               context.class_inst = mini_class_get_context (klass)->class_inst;
 
-       if (class->generic_class)
-               g_assert (mono_class_has_parent_and_ignore_generics (class->generic_class->container_class, method_container_class));
+       if (klass->generic_class)
+               g_assert (mono_class_has_parent_and_ignore_generics (klass->generic_class->container_class, method_container_class));
        else
-               g_assert (mono_class_has_parent_and_ignore_generics (class, method_container_class));
+               g_assert (mono_class_has_parent_and_ignore_generics (klass, method_container_class));
 
        return context;
 }
@@ -631,11 +640,11 @@ ves_icall_System_Exception_get_trace (MonoException *ex)
                gpointer ip = mono_array_get (ta, gpointer, i * 2 + 0);
                gpointer generic_info = mono_array_get (ta, gpointer, i * 2 + 1);
 
-               ji = mono_jit_info_table_find (domain, ip);
+               ji = mono_jit_info_table_find_internal (domain, ip, TRUE, TRUE);
                if (ji == NULL) {
                        /* Unmanaged frame */
                        g_string_append_printf (trace_str, "in (unmanaged) %p\n", ip);
-               } else {
+               } else if (!ji->is_trampoline) {
                        gchar *location;
                        gint32 address;
                        MonoMethod *method = get_method_from_stack_frame (ji, generic_info);
@@ -804,6 +813,10 @@ mono_walk_stack_with_state (MonoJitStackWalk func, MonoThreadUnwindState *state,
 
        g_assert (state->valid);
 
+       if (!state->unwind_data [MONO_UNWIND_DATA_DOMAIN])
+               /* Not attached */
+               return;
+
        mono_walk_stack_full (func,
                &state->ctx, 
                state->unwind_data [MONO_UNWIND_DATA_DOMAIN],
@@ -866,7 +879,7 @@ mono_walk_stack_full (MonoJitStackWalk func, MonoContext *start_ctx, MonoDomain
                if (!res)
                        return;
 
-               if ((unwind_options & MONO_UNWIND_LOOKUP_IL_OFFSET) && frame.ji) {
+               if ((unwind_options & MONO_UNWIND_LOOKUP_IL_OFFSET) && frame.ji && !frame.ji->is_trampoline) {
                        MonoDebugSourceLocation *source;
 
                        source = mono_debug_lookup_source_location (jinfo_get_method (frame.ji), frame.native_offset, domain);
@@ -885,7 +898,7 @@ mono_walk_stack_full (MonoJitStackWalk func, MonoContext *start_ctx, MonoDomain
 
                frame.il_offset = il_offset;
 
-               if ((unwind_options & MONO_UNWIND_LOOKUP_ACTUAL_METHOD) && frame.ji) {
+               if ((unwind_options & MONO_UNWIND_LOOKUP_ACTUAL_METHOD) && frame.ji && !frame.ji->is_trampoline) {
                        frame.actual_method = get_method_from_stack_frame (frame.ji, get_generic_info_from_stack_frame (frame.ji, &ctx));
                } else {
                        frame.actual_method = frame.method;
@@ -940,7 +953,9 @@ ves_icall_get_frame_info (gint32 skip, MonoBoolean need_file_info,
                if (!res)
                        return FALSE;
 
-               if (frame.type == FRAME_TYPE_MANAGED_TO_NATIVE || frame.type == FRAME_TYPE_DEBUGGER_INVOKE)
+               if (frame.type == FRAME_TYPE_MANAGED_TO_NATIVE ||
+                               frame.type == FRAME_TYPE_DEBUGGER_INVOKE ||
+                               frame.type == FRAME_TYPE_TRAMPOLINE)
                        continue;
 
                ji = frame.ji;
@@ -1081,7 +1096,7 @@ mini_jit_info_table_find_ext (MonoDomain *domain, char *addr, gboolean allow_tra
 MonoJitInfo*
 mini_jit_info_table_find (MonoDomain *domain, char *addr, MonoDomain **out_domain)
 {
-       return mini_jit_info_table_find_ext (domain, addr, FALSE, out_domain);
+       return mini_jit_info_table_find_ext (domain, addr, TRUE, out_domain);
 }
 
 /*
@@ -1261,7 +1276,9 @@ mono_handle_exception_internal_first_pass (MonoContext *ctx, gpointer obj, gint3
 
                unwind_res = mono_find_jit_info_ext (domain, jit_tls, NULL, ctx, &new_ctx, NULL, &lmf, NULL, &frame);
                if (unwind_res) {
-                       if (frame.type == FRAME_TYPE_DEBUGGER_INVOKE || frame.type == FRAME_TYPE_MANAGED_TO_NATIVE) {
+                       if (frame.type == FRAME_TYPE_DEBUGGER_INVOKE ||
+                                       frame.type == FRAME_TYPE_MANAGED_TO_NATIVE ||
+                                       frame.type == FRAME_TYPE_TRAMPOLINE) {
                                *ctx = new_ctx;
                                continue;
                        }
@@ -1556,18 +1573,17 @@ mono_handle_exception_internal (MonoContext *ctx, gpointer obj, gboolean resume,
                        gboolean unhandled = FALSE;
 
                        /*
-                        * The exceptions caught by the mono_runtime_invoke () calls in mono_async_invoke () needs to be treated as
-                        * unhandled (#669836).
-                        * FIXME: The check below is hackish, but its hard to distinguish these runtime invoke calls from others
-                        * in the runtime.
+                        * The exceptions caught by the mono_runtime_invoke () calls
+                        * in the threadpool needs to be treated as unhandled (#669836).
+                        *
+                        * FIXME: The check below is hackish, but its hard to distinguish
+                        * these runtime invoke calls from others in the runtime.
                         */
                        if (ji && jinfo_get_method (ji)->wrapper_type == MONO_WRAPPER_RUNTIME_INVOKE) {
-                               if (prev_ji) {
-                                       MonoInternalThread *thread = mono_thread_internal_current ();
-                                       if (jinfo_get_method (prev_ji) == thread->async_invoke_method)
-                                               unhandled = TRUE;
-                               }
+                               if (prev_ji && jinfo_get_method (prev_ji) == mono_defaults.threadpool_perform_wait_callback_method)
+                                       unhandled = TRUE;
                        }
+
                        if (unhandled)
                                mono_debugger_agent_handle_exception (obj, ctx, NULL);
                        else
@@ -1599,7 +1615,9 @@ mono_handle_exception_internal (MonoContext *ctx, gpointer obj, gboolean resume,
 
                        unwind_res = mono_find_jit_info_ext (domain, jit_tls, NULL, ctx, &new_ctx, NULL, &lmf, NULL, &frame);
                        if (unwind_res) {
-                               if (frame.type == FRAME_TYPE_DEBUGGER_INVOKE || frame.type == FRAME_TYPE_MANAGED_TO_NATIVE) {
+                               if (frame.type == FRAME_TYPE_DEBUGGER_INVOKE ||
+                                               frame.type == FRAME_TYPE_MANAGED_TO_NATIVE ||
+                                               frame.type == FRAME_TYPE_TRAMPOLINE) {
                                        *ctx = new_ctx;
                                        continue;
                                }
@@ -1728,8 +1746,7 @@ mono_handle_exception_internal (MonoContext *ctx, gpointer obj, gboolean resume,
 
                                        return 0;
                                }
-                               if (is_address_protected (ji, ei, MONO_CONTEXT_GET_IP (ctx)) &&
-                                       (ei->flags == MONO_EXCEPTION_CLAUSE_FAULT)) {
+                               if (ei->flags == MONO_EXCEPTION_CLAUSE_FAULT) {
                                        if (mono_trace_is_enabled () && mono_trace_eval (method))
                                                g_print ("EXCEPTION: fault clause %d of %s\n", i, mono_method_full_name (method, TRUE));
                                        jit_tls->orig_ex_ctx_set = TRUE;
@@ -1737,8 +1754,7 @@ mono_handle_exception_internal (MonoContext *ctx, gpointer obj, gboolean resume,
                                        jit_tls->orig_ex_ctx_set = FALSE;
                                        call_filter (ctx, ei->handler_start);
                                }
-                               if (is_address_protected (ji, ei, MONO_CONTEXT_GET_IP (ctx)) &&
-                                       (ei->flags == MONO_EXCEPTION_CLAUSE_FINALLY)) {
+                               if (ei->flags == MONO_EXCEPTION_CLAUSE_FINALLY) {
                                        if (mono_trace_is_enabled () && mono_trace_eval (method))
                                                g_print ("EXCEPTION: finally clause %d of %s\n", i, mono_method_full_name (method, TRUE));
                                        jit_tls->orig_ex_ctx_set = TRUE;
@@ -2041,7 +2057,7 @@ print_overflow_stack_frame (StackFrameInfo *frame, MonoContext *ctx, gpointer da
        PrintOverflowUserData *user_data = data;
        gchar *location;
 
-       if (frame->ji)
+       if (frame->ji && frame->type != FRAME_TYPE_TRAMPOLINE)
                method = jinfo_get_method (frame->ji);
 
        if (method) {
@@ -2094,7 +2110,7 @@ mono_handle_hard_stack_ovf (MonoJitTlsData *jit_tls, MonoJitInfo *ji, void *ctx,
 
        mono_walk_stack_with_ctx (print_overflow_stack_frame, &mctx, MONO_UNWIND_LOOKUP_ACTUAL_METHOD, &ud);
 #else
-       if (ji && jinfo_get_method (ji))
+       if (ji && !ji->is_trampoline && jinfo_get_method (ji))
                mono_runtime_printf_err ("At %s", mono_method_full_name (jinfo_get_method (ji), TRUE));
        else
                mono_runtime_printf_err ("At <unmanaged>.");
@@ -2108,7 +2124,7 @@ print_stack_frame_to_stderr (StackFrameInfo *frame, MonoContext *ctx, gpointer d
 {
        MonoMethod *method = NULL;
 
-       if (frame->ji)
+       if (frame->ji && frame->type != FRAME_TYPE_TRAMPOLINE)
                method = jinfo_get_method (frame->ji);
 
        if (method) {
@@ -2127,7 +2143,7 @@ print_stack_frame_to_string (StackFrameInfo *frame, MonoContext *ctx, gpointer d
        GString *p = (GString*)data;
        MonoMethod *method = NULL;
 
-       if (frame->ji)
+       if (frame->ji && frame->type != FRAME_TYPE_TRAMPOLINE)
                method = jinfo_get_method (frame->ji);
 
        if (method && frame->domain) {
@@ -2214,7 +2230,15 @@ mono_handle_native_sigsegv (int signal, void *ctx, MONO_SIG_HANDLER_INFO_TYPE *i
                 * it will deadlock. Call the syscall directly instead.
                 */
                pid = mono_runtime_syscall_fork ();
-
+#if defined (HAVE_PRCTL) && defined(PR_SET_PTRACER)
+               if (pid > 0) {
+                       // Allow gdb to attach to the process even if ptrace_scope sysctl variable is set to
+                       // a value other than 0 (the most permissive ptrace scope). Most modern Linux
+                       // distributions set the scope to 1 which allows attaching only to direct children of
+                       // the current process
+                       prctl (PR_SET_PTRACER, pid, 0, 0, 0);
+               }
+#endif
                if (pid == 0) {
                        dup2 (STDERR_FILENO, STDOUT_FILENO);
 
@@ -2541,6 +2565,26 @@ mono_thread_state_init_from_sigctx (MonoThreadUnwindState *ctx, void *sigctx)
 #endif
 }
 
+void
+mono_thread_state_init (MonoThreadUnwindState *ctx)
+{
+       MonoThreadInfo *thread = mono_thread_info_current_unchecked ();
+
+#if defined(MONO_CROSS_COMPILE)
+       ctx->valid = FALSE; //A cross compiler doesn't need to suspend.
+#elif MONO_ARCH_HAS_MONO_CONTEXT
+       MONO_CONTEXT_GET_CURRENT (ctx->ctx);
+#else
+       g_error ("Use a null sigctx requires a working mono-context");
+#endif
+
+       ctx->unwind_data [MONO_UNWIND_DATA_DOMAIN] = mono_domain_get ();
+       ctx->unwind_data [MONO_UNWIND_DATA_LMF] = mono_get_lmf ();
+       ctx->unwind_data [MONO_UNWIND_DATA_JIT_TLS] = thread ? thread->jit_data : NULL;
+       ctx->valid = TRUE;
+}
+
+
 gboolean
 mono_thread_state_init_from_monoctx (MonoThreadUnwindState *ctx, MonoContext *mctx)
 {
index 882f3a99506d1c8fe02511771389cba03081b2db..27a36204ca0c354e2448695293162924744d88c8 100644 (file)
@@ -821,6 +821,7 @@ conservative_pass (TlsData *tls, guint8 *stack_start, guint8 *stack_end)
                ji = frame.ji;
 
                // FIXME: For skipped frames, scan the param area of the parent frame conservatively ?
+               // FIXME: trampolines
 
                if (frame.type == FRAME_TYPE_MANAGED_TO_NATIVE) {
                        /*
@@ -1678,7 +1679,7 @@ process_variables (MonoCompile *cfg)
                        int hreg;
                        GCSlotType slot_type;
 
-                       t = mini_type_get_underlying_type (NULL, t);
+                       t = mini_get_underlying_type (t);
 
                        hreg = ins->dreg;
                        g_assert (hreg < MONO_MAX_IREGS);
@@ -1686,7 +1687,7 @@ process_variables (MonoCompile *cfg)
                        if (byref)
                                slot_type = SLOT_PIN;
                        else
-                               slot_type = mini_type_is_reference (cfg, t) ? SLOT_REF : SLOT_NOREF;
+                               slot_type = mini_type_is_reference (t) ? SLOT_REF : SLOT_NOREF;
 
                        if (slot_type == SLOT_PIN) {
                                /* These have no live interval, be conservative */
@@ -1833,9 +1834,9 @@ process_variables (MonoCompile *cfg)
                }
 #endif
 
-               t = mini_type_get_underlying_type (NULL, t);
+               t = mini_get_underlying_type (t);
 
-               if (!mini_type_is_reference (cfg, t)) {
+               if (!mini_type_is_reference (t)) {
                        set_slot_everywhere (gcfg, pos, SLOT_NOREF);
                        if (cfg->verbose_level > 1)
                                printf ("\tnoref%s at %s0x%x(fp) (R%d, slot = %d): %s\n", (is_arg ? " arg" : ""), ins->inst_offset < 0 ? "-" : "", (ins->inst_offset < 0) ? -(int)ins->inst_offset : (int)ins->inst_offset, vmv->vreg, pos, mono_type_full_name (ins->inst_vtype));
@@ -1939,7 +1940,7 @@ process_param_area_slots (MonoCompile *cfg)
                        guint32 size;
 
                        if (MONO_TYPE_ISSTRUCT (t)) {
-                               size = mini_type_stack_size_full (cfg->generic_sharing_context, t, &align, FALSE);
+                               size = mini_type_stack_size_full (t, &align, FALSE);
                        } else {
                                size = sizeof (mgreg_t);
                        }
@@ -2053,7 +2054,7 @@ compute_frame_size (MonoCompile *cfg)
 
                if (ins->opcode == OP_REGOFFSET) {
                        int size, size_in_slots;
-                       size = mini_type_stack_size_full (cfg->generic_sharing_context, ins->inst_vtype, NULL, ins->backend.is_pinvoke);
+                       size = mini_type_stack_size_full (ins->inst_vtype, NULL, ins->backend.is_pinvoke);
                        size_in_slots = ALIGN_TO (size, SIZEOF_SLOT) / SIZEOF_SLOT;
 
                        min_offset = MIN (min_offset, ins->inst_offset);
index 6e04ca2e22c6c314c4f5882b33e85401af1dcae0..25e979acddca4c44c642440dd656940663fcc716 100644 (file)
@@ -117,17 +117,17 @@ mono_generic_context_check_used (MonoGenericContext *context)
  * variables.
  */
 int
-mono_class_check_context_used (MonoClass *class)
+mono_class_check_context_used (MonoClass *klass)
 {
        int context_used = 0;
 
-       context_used |= type_check_context_used (&class->this_arg, FALSE);
-       context_used |= type_check_context_used (&class->byval_arg, FALSE);
+       context_used |= type_check_context_used (&klass->this_arg, FALSE);
+       context_used |= type_check_context_used (&klass->byval_arg, FALSE);
 
-       if (class->generic_class)
-               context_used |= mono_generic_context_check_used (&class->generic_class->context);
-       else if (class->generic_container)
-               context_used |= mono_generic_context_check_used (&class->generic_container->context);
+       if (klass->generic_class)
+               context_used |= mono_generic_context_check_used (&klass->generic_class->context);
+       else if (klass->generic_container)
+               context_used |= mono_generic_context_check_used (&klass->generic_container->context);
 
        return context_used;
 }
@@ -225,26 +225,26 @@ static GHashTable *generic_subclass_hash;
  * LOCKING: templates lock
  */
 static void
-class_set_rgctx_template (MonoClass *class, MonoRuntimeGenericContextTemplate *rgctx_template)
+class_set_rgctx_template (MonoClass *klass, MonoRuntimeGenericContextTemplate *rgctx_template)
 {
-       if (!class->image->rgctx_template_hash)
-               class->image->rgctx_template_hash = g_hash_table_new (mono_aligned_addr_hash, NULL);
+       if (!klass->image->rgctx_template_hash)
+               klass->image->rgctx_template_hash = g_hash_table_new (mono_aligned_addr_hash, NULL);
 
-       g_hash_table_insert (class->image->rgctx_template_hash, class, rgctx_template);
+       g_hash_table_insert (klass->image->rgctx_template_hash, klass, rgctx_template);
 }
 
 /*
  * LOCKING: loader lock
  */
 static MonoRuntimeGenericContextTemplate*
-class_lookup_rgctx_template (MonoClass *class)
+class_lookup_rgctx_template (MonoClass *klass)
 {
        MonoRuntimeGenericContextTemplate *template;
 
-       if (!class->image->rgctx_template_hash)
+       if (!klass->image->rgctx_template_hash)
                return NULL;
 
-       template = g_hash_table_lookup (class->image->rgctx_template_hash, class);
+       template = g_hash_table_lookup (klass->image->rgctx_template_hash, klass);
 
        return template;
 }
@@ -253,11 +253,11 @@ class_lookup_rgctx_template (MonoClass *class)
  * LOCKING: loader lock
  */
 static void
-register_generic_subclass (MonoClass *class)
+register_generic_subclass (MonoClass *klass)
 {
-       MonoClass *parent = class->parent;
+       MonoClass *parent = klass->parent;
        MonoClass *subclass;
-       MonoRuntimeGenericContextTemplate *rgctx_template = class_lookup_rgctx_template (class);
+       MonoRuntimeGenericContextTemplate *rgctx_template = class_lookup_rgctx_template (klass);
 
        g_assert (rgctx_template);
 
@@ -269,15 +269,15 @@ register_generic_subclass (MonoClass *class)
 
        subclass = g_hash_table_lookup (generic_subclass_hash, parent);
        rgctx_template->next_subclass = subclass;
-       g_hash_table_insert (generic_subclass_hash, parent, class);
+       g_hash_table_insert (generic_subclass_hash, parent, klass);
 }
 
 static void
-move_subclasses_not_in_image_foreach_func (MonoClass *class, MonoClass *subclass, MonoImage *image)
+move_subclasses_not_in_image_foreach_func (MonoClass *klass, MonoClass *subclass, MonoImage *image)
 {
        MonoClass *new_list;
 
-       if (class->image == image) {
+       if (klass->image == image) {
                /* The parent class itself is in the image, so all the
                   subclasses must be in the image, too.  If not,
                   we're removing an image containing a class which
@@ -305,7 +305,7 @@ move_subclasses_not_in_image_foreach_func (MonoClass *class, MonoClass *subclass
        }
 
        if (new_list)
-               g_hash_table_insert (generic_subclass_hash, class, new_list);
+               g_hash_table_insert (generic_subclass_hash, klass, new_list);
 }
 
 /*
@@ -338,7 +338,7 @@ mono_class_unregister_image_generic_subclasses (MonoImage *image, gpointer user_
 }
 
 static MonoRuntimeGenericContextTemplate*
-alloc_template (MonoClass *class)
+alloc_template (MonoClass *klass)
 {
        static gboolean inited = FALSE;
        static int num_allocted = 0;
@@ -355,7 +355,7 @@ alloc_template (MonoClass *class)
        num_allocted++;
        num_bytes += size;
 
-       return mono_image_alloc0 (class->image, size);
+       return mono_image_alloc0 (klass->image, size);
 }
 
 static MonoRuntimeGenericContextInfoTemplate*
@@ -514,7 +514,7 @@ mono_class_get_method_generic (MonoClass *klass, MonoMethod *method)
 }
 
 static gpointer
-inflate_info (MonoRuntimeGenericContextInfoTemplate *oti, MonoGenericContext *context, MonoClass *class, gboolean temporary)
+inflate_info (MonoRuntimeGenericContextInfoTemplate *oti, MonoGenericContext *context, MonoClass *klass, gboolean temporary)
 {
        gpointer data = oti->data;
        MonoRgctxInfoType info_type = oti->info_type;
@@ -542,7 +542,7 @@ inflate_info (MonoRuntimeGenericContextInfoTemplate *oti, MonoGenericContext *co
        case MONO_RGCTX_INFO_LOCAL_OFFSET:
        case MONO_RGCTX_INFO_NULLABLE_CLASS_BOX:
        case MONO_RGCTX_INFO_NULLABLE_CLASS_UNBOX: {
-               gpointer result = mono_class_inflate_generic_type_with_mempool (temporary ? NULL : class->image,
+               gpointer result = mono_class_inflate_generic_type_with_mempool (temporary ? NULL : klass->image,
                        data, context, &error);
                g_assert (mono_error_ok (&error)); /*FIXME proper error handling*/
                return result;
@@ -598,7 +598,7 @@ inflate_info (MonoRuntimeGenericContextInfoTemplate *oti, MonoGenericContext *co
                        MonoRuntimeGenericContextInfoTemplate *template = &res->entries [i];
 
                        memcpy (template, otemplate, sizeof (MonoRuntimeGenericContextInfoTemplate));
-                       template->data = inflate_info (template, context, class, FALSE);
+                       template->data = inflate_info (template, context, klass, FALSE);
                }
                return res;
        }
@@ -710,14 +710,14 @@ free_inflated_info (MonoRgctxInfoType info_type, gpointer info)
 }
 
 static MonoRuntimeGenericContextInfoTemplate
-class_get_rgctx_template_oti (MonoClass *class, int type_argc, guint32 slot, gboolean temporary, gboolean shared, gboolean *do_free);
+class_get_rgctx_template_oti (MonoClass *klass, int type_argc, guint32 slot, gboolean temporary, gboolean shared, gboolean *do_free);
  
 static MonoClass*
-class_uninstantiated (MonoClass *class)
+class_uninstantiated (MonoClass *klass)
 {
-       if (class->generic_class)
-               return class->generic_class->container_class;
-       return class;
+       if (klass->generic_class)
+               return klass->generic_class->container_class;
+       return klass;
 }
 
 /*
@@ -726,9 +726,9 @@ class_uninstantiated (MonoClass *class)
  *   Return the class used to store information when using generic sharing.
  */
 static MonoClass*
-get_shared_class (MonoClass *class)
+get_shared_class (MonoClass *klass)
 {
-       return class_uninstantiated (class);
+       return class_uninstantiated (klass);
 }
 
 /*
@@ -739,15 +739,15 @@ get_shared_class (MonoClass *class)
  * The template is the same for all instantiations of a class.
  */
 static MonoRuntimeGenericContextTemplate*
-mono_class_get_runtime_generic_context_template (MonoClass *class)
+mono_class_get_runtime_generic_context_template (MonoClass *klass)
 {
        MonoRuntimeGenericContextTemplate *parent_template, *template;
        guint32 i;
 
-       class = get_shared_class (class);
+       klass = get_shared_class (klass);
 
        mono_loader_lock ();
-       template = class_lookup_rgctx_template (class);
+       template = class_lookup_rgctx_template (klass);
        mono_loader_unlock ();
 
        if (template)
@@ -755,15 +755,15 @@ mono_class_get_runtime_generic_context_template (MonoClass *class)
 
        //g_assert (get_shared_class (class) == class);
 
-       template = alloc_template (class);
+       template = alloc_template (klass);
 
        mono_loader_lock ();
 
-       if (class->parent) {
+       if (klass->parent) {
                guint32 num_entries;
                int max_argc, type_argc;
 
-               parent_template = mono_class_get_runtime_generic_context_template (class->parent);
+               parent_template = mono_class_get_runtime_generic_context_template (klass->parent);
                max_argc = template_get_max_argc (parent_template);
 
                for (type_argc = 0; type_argc <= max_argc; ++type_argc) {
@@ -773,23 +773,23 @@ mono_class_get_runtime_generic_context_template (MonoClass *class)
                        for (i = 0; i < num_entries; ++i) {
                                MonoRuntimeGenericContextInfoTemplate oti;
 
-                               oti = class_get_rgctx_template_oti (class->parent, type_argc, i, FALSE, FALSE, NULL);
+                               oti = class_get_rgctx_template_oti (klass->parent, type_argc, i, FALSE, FALSE, NULL);
                                if (oti.data && oti.data != MONO_RGCTX_SLOT_USED_MARKER) {
-                                       rgctx_template_set_slot (class->image, template, type_argc, i,
+                                       rgctx_template_set_slot (klass->image, template, type_argc, i,
                                                                                         oti.data, oti.info_type);
                                }
                        }
                }
        }
 
-       if (class_lookup_rgctx_template (class)) {
+       if (class_lookup_rgctx_template (klass)) {
                /* some other thread already set the template */
-               template = class_lookup_rgctx_template (class);
+               template = class_lookup_rgctx_template (klass);
        } else {
-               class_set_rgctx_template (class, template);
+               class_set_rgctx_template (klass, template);
 
-               if (class->parent)
-                       register_generic_subclass (class);
+               if (klass->parent)
+                       register_generic_subclass (klass);
        }
 
        mono_loader_unlock ();
@@ -810,21 +810,21 @@ mono_class_get_runtime_generic_context_template (MonoClass *class)
  * LOCKING: loader lock
  */
 static MonoRuntimeGenericContextInfoTemplate
-class_get_rgctx_template_oti (MonoClass *class, int type_argc, guint32 slot, gboolean temporary, gboolean shared, gboolean *do_free)
+class_get_rgctx_template_oti (MonoClass *klass, int type_argc, guint32 slot, gboolean temporary, gboolean shared, gboolean *do_free)
 {
        g_assert ((temporary && do_free) || (!temporary && !do_free));
 
        DEBUG (printf ("get slot: %s %d\n", mono_type_full_name (&class->byval_arg), slot));
 
-       if (class->generic_class && !shared) {
+       if (klass->generic_class && !shared) {
                MonoRuntimeGenericContextInfoTemplate oti;
                gboolean tmp_do_free;
 
-               oti = class_get_rgctx_template_oti (class->generic_class->container_class,
+               oti = class_get_rgctx_template_oti (klass->generic_class->container_class,
                                                                                        type_argc, slot, TRUE, FALSE, &tmp_do_free);
                if (oti.data) {
                        gpointer info = oti.data;
-                       oti.data = inflate_info (&oti, &class->generic_class->context, class, temporary);
+                       oti.data = inflate_info (&oti, &klass->generic_class->context, klass, temporary);
                        if (tmp_do_free)
                                free_inflated_info (oti.info_type, info);
                }
@@ -836,7 +836,7 @@ class_get_rgctx_template_oti (MonoClass *class, int type_argc, guint32 slot, gbo
                MonoRuntimeGenericContextTemplate *template;
                MonoRuntimeGenericContextInfoTemplate *oti;
 
-               template = mono_class_get_runtime_generic_context_template (class);
+               template = mono_class_get_runtime_generic_context_template (klass);
                oti = rgctx_template_get_other_slot (template, type_argc, slot);
                g_assert (oti);
 
@@ -848,42 +848,42 @@ class_get_rgctx_template_oti (MonoClass *class, int type_argc, guint32 slot, gbo
 }
 
 static gpointer
-class_type_info (MonoDomain *domain, MonoClass *class, MonoRgctxInfoType info_type)
+class_type_info (MonoDomain *domain, MonoClass *klass, MonoRgctxInfoType info_type)
 {
        switch (info_type) {
        case MONO_RGCTX_INFO_STATIC_DATA: {
-               MonoVTable *vtable = mono_class_vtable (domain, class);
+               MonoVTable *vtable = mono_class_vtable (domain, klass);
                if (!vtable)
-                       mono_raise_exception (mono_class_get_exception_for_failure (class));
+                       mono_raise_exception (mono_class_get_exception_for_failure (klass));
                return mono_vtable_get_static_field_data (vtable);
        }
        case MONO_RGCTX_INFO_KLASS:
-               return class;
+               return klass;
        case MONO_RGCTX_INFO_ELEMENT_KLASS:
-               return class->element_class;
+               return klass->element_class;
        case MONO_RGCTX_INFO_VTABLE: {
-               MonoVTable *vtable = mono_class_vtable (domain, class);
+               MonoVTable *vtable = mono_class_vtable (domain, klass);
                if (!vtable)
-                       mono_raise_exception (mono_class_get_exception_for_failure (class));
+                       mono_raise_exception (mono_class_get_exception_for_failure (klass));
                return vtable;
        }
        case MONO_RGCTX_INFO_CAST_CACHE: {
                /*First slot is the cache itself, the second the vtable.*/
                gpointer **cache_data = mono_domain_alloc0 (domain, sizeof (gpointer) * 2);
-               cache_data [1] = (gpointer)class;
+               cache_data [1] = (gpointer)klass;
                return cache_data;
        }
        case MONO_RGCTX_INFO_ARRAY_ELEMENT_SIZE:
-               return GUINT_TO_POINTER (mono_class_array_element_size (class));
+               return GUINT_TO_POINTER (mono_class_array_element_size (klass));
        case MONO_RGCTX_INFO_VALUE_SIZE:
-               if (MONO_TYPE_IS_REFERENCE (&class->byval_arg))
+               if (MONO_TYPE_IS_REFERENCE (&klass->byval_arg))
                        return GUINT_TO_POINTER (sizeof (gpointer));
                else
-                       return GUINT_TO_POINTER (mono_class_value_size (class, NULL));
+                       return GUINT_TO_POINTER (mono_class_value_size (klass, NULL));
        case MONO_RGCTX_INFO_CLASS_BOX_TYPE:
-               if (MONO_TYPE_IS_REFERENCE (&class->byval_arg))
+               if (MONO_TYPE_IS_REFERENCE (&klass->byval_arg))
                        return GUINT_TO_POINTER (1);
-               else if (mono_class_is_nullable (class))
+               else if (mono_class_is_nullable (klass))
                        return GUINT_TO_POINTER (2);
                else
                        return GUINT_TO_POINTER (0);
@@ -897,11 +897,11 @@ class_type_info (MonoDomain *domain, MonoClass *class, MonoRgctxInfoType info_ty
 
                domain_info = domain_jit_info (domain);
 
-               if (MONO_TYPE_IS_REFERENCE (&class->byval_arg)) {
+               if (MONO_TYPE_IS_REFERENCE (&klass->byval_arg)) {
                        size = sizeof (gpointer);
                        align = sizeof (gpointer);
                } else {
-                       size = mono_class_value_size (class, &align);
+                       size = mono_class_value_size (klass, &align);
                }
 
                if (size != 1 && size != 2 && size != 4 && size != 8)
@@ -956,16 +956,15 @@ class_type_info (MonoDomain *domain, MonoClass *class, MonoRgctxInfoType info_ty
                MonoMethod *method;
                gpointer addr;
                MonoJitInfo *ji;
-               MonoGenericContext *ctx;
 
-               if (!mono_class_is_nullable (class))
+               if (!mono_class_is_nullable (klass))
                        /* This can happen since all the entries in MonoGSharedVtMethodInfo are inflated, even those which are not used */
                        return NULL;
 
                if (info_type == MONO_RGCTX_INFO_NULLABLE_CLASS_BOX)
-                       method = mono_class_get_method_from_name (class, "Box", 1);
+                       method = mono_class_get_method_from_name (klass, "Box", 1);
                else
-                       method = mono_class_get_method_from_name (class, "Unbox", 1);
+                       method = mono_class_get_method_from_name (klass, "Unbox", 1);
 
                addr = mono_compile_method (method);
                // The caller uses the gsharedvt call signature
@@ -974,7 +973,6 @@ class_type_info (MonoDomain *domain, MonoClass *class, MonoRgctxInfoType info_ty
                if (mini_jit_info_is_gsharedvt (ji))
                        return mono_create_static_rgctx_trampoline (method, addr);
                else {
-                       MonoGenericSharingContext gsctx;
                        MonoMethodSignature *sig, *gsig;
                        MonoMethod *gmethod;
 
@@ -984,10 +982,8 @@ class_type_info (MonoDomain *domain, MonoClass *class, MonoRgctxInfoType info_ty
                        gmethod = mini_get_shared_method_full (method, FALSE, TRUE);
                        sig = mono_method_signature (method);
                        gsig = mono_method_signature (gmethod);
-                       ctx = mono_method_get_context (gmethod);
-                       mini_init_gsctx (NULL, NULL, ctx, &gsctx);
 
-                       addr = mini_get_gsharedvt_wrapper (FALSE, addr, sig, gsig, &gsctx, -1, FALSE);
+                       addr = mini_get_gsharedvt_wrapper (FALSE, addr, sig, gsig, -1, FALSE);
                        addr = mono_create_static_rgctx_trampoline (method, addr);
                        return addr;
                }
@@ -1002,8 +998,7 @@ class_type_info (MonoDomain *domain, MonoClass *class, MonoRgctxInfoType info_ty
 static gboolean
 ji_is_gsharedvt (MonoJitInfo *ji)
 {
-       if (ji && ji->has_generic_jit_info && (mono_jit_info_get_generic_sharing_context (ji)->var_is_vt ||
-                                                                                  mono_jit_info_get_generic_sharing_context (ji)->mvar_is_vt))
+       if (ji && ji->has_generic_jit_info && (mono_jit_info_get_generic_sharing_context (ji)->is_gsharedvt))
                return TRUE;
        else
                return FALSE;
@@ -1018,7 +1013,6 @@ typedef struct {
        gint32 vcall_offset;
        gpointer addr;
        MonoMethodSignature *sig, *gsig;
-       MonoGenericContext gsctx;
 } GSharedVtTrampInfo;
 
 static guint
@@ -1037,8 +1031,7 @@ tramp_info_equal (gconstpointer a, gconstpointer b)
 
        /* The signatures should be internalized */
        return tramp1->is_in == tramp2->is_in && tramp1->calli == tramp2->calli && tramp1->vcall_offset == tramp2->vcall_offset &&
-               tramp1->addr == tramp2->addr && tramp1->sig == tramp2->sig && tramp1->gsig == tramp2->gsig &&
-               tramp1->gsctx.class_inst == tramp2->gsctx.class_inst && tramp1->gsctx.method_inst == tramp2->gsctx.method_inst;
+               tramp1->addr == tramp2->addr && tramp1->sig == tramp2->sig && tramp1->gsig == tramp2->gsig;
 }
 
 /*
@@ -1047,8 +1040,7 @@ tramp_info_equal (gconstpointer a, gconstpointer b)
  *   Return a gsharedvt in/out wrapper for calling ADDR.
  */
 gpointer
-mini_get_gsharedvt_wrapper (gboolean gsharedvt_in, gpointer addr, MonoMethodSignature *normal_sig, MonoMethodSignature *gsharedvt_sig, MonoGenericSharingContext *gsctx,
-                                                       gint32 vcall_offset, gboolean calli)
+mini_get_gsharedvt_wrapper (gboolean gsharedvt_in, gpointer addr, MonoMethodSignature *normal_sig, MonoMethodSignature *gsharedvt_sig, gint32 vcall_offset, gboolean calli)
 {
        static gboolean inited = FALSE;
        static int num_trampolines;
@@ -1063,13 +1055,13 @@ mini_get_gsharedvt_wrapper (gboolean gsharedvt_in, gpointer addr, MonoMethodSign
                inited = TRUE;
        }
 
+       memset (&tinfo, 0, sizeof (tinfo));
        tinfo.is_in = gsharedvt_in;
        tinfo.calli = calli;
        tinfo.vcall_offset = vcall_offset;
        tinfo.addr = addr;
        tinfo.sig = normal_sig;
        tinfo.gsig = gsharedvt_sig;
-       memcpy (&tinfo.gsctx, gsctx, sizeof (MonoGenericSharingContext));
 
        domain_info = domain_jit_info (domain);
 
@@ -1084,7 +1076,7 @@ mini_get_gsharedvt_wrapper (gboolean gsharedvt_in, gpointer addr, MonoMethodSign
        if (res)
                return res;
 
-       info = mono_arch_get_gsharedvt_call_info (addr, normal_sig, gsharedvt_sig, gsctx, gsharedvt_in, vcall_offset, calli);
+       info = mono_arch_get_gsharedvt_call_info (addr, normal_sig, gsharedvt_sig, gsharedvt_in, vcall_offset, calli);
 
        if (gsharedvt_in) {
                static gpointer tramp_addr;
@@ -1131,7 +1123,7 @@ mini_get_gsharedvt_wrapper (gboolean gsharedvt_in, gpointer addr, MonoMethodSign
 
 static gpointer
 instantiate_info (MonoDomain *domain, MonoRuntimeGenericContextInfoTemplate *oti,
-                                 MonoGenericContext *context, MonoClass *class, guint8 *caller)
+                                 MonoGenericContext *context, MonoClass *klass)
 {
        gpointer data;
        gboolean temporary;
@@ -1151,7 +1143,7 @@ instantiate_info (MonoDomain *domain, MonoRuntimeGenericContextInfoTemplate *oti
                temporary = FALSE;
        }
 
-       data = inflate_info (oti, context, class, temporary);
+       data = inflate_info (oti, context, klass, temporary);
 
        switch (oti->info_type) {
        case MONO_RGCTX_INFO_STATIC_DATA:
@@ -1189,7 +1181,7 @@ instantiate_info (MonoDomain *domain, MonoRuntimeGenericContextInfoTemplate *oti
                gpointer addr;
 
                addr = mono_compile_method (data);
-               return mini_add_method_trampoline (NULL, data, addr, mono_method_needs_static_rgctx_invoke (data, FALSE), FALSE);
+               return mini_add_method_trampoline (data, addr, mono_method_needs_static_rgctx_invoke (data, FALSE), FALSE);
        }
        case MONO_RGCTX_INFO_VIRT_METHOD_CODE: {
                MonoJumpInfoVirtMethod *info = data;
@@ -1212,7 +1204,7 @@ instantiate_info (MonoDomain *domain, MonoRuntimeGenericContextInfoTemplate *oti
                method = info->klass->vtable [ioffset + slot];
 
                addr = mono_compile_method (method);
-               return mini_add_method_trampoline (NULL, method, addr, mono_method_needs_static_rgctx_invoke (method, FALSE), FALSE);
+               return mini_add_method_trampoline (method, addr, mono_method_needs_static_rgctx_invoke (method, FALSE), FALSE);
        }
        case MONO_RGCTX_INFO_VIRT_METHOD_BOX_TYPE: {
                MonoJumpInfoVirtMethod *info = data;
@@ -1283,22 +1275,11 @@ instantiate_info (MonoDomain *domain, MonoRuntimeGenericContextInfoTemplate *oti
                MonoMethodSignature *gsig = oti->data;
                MonoMethodSignature *sig = data;
                gpointer addr;
-               MonoJitInfo *caller_ji;
-               MonoGenericJitInfo *gji;
 
                /*
                 * This is an indirect call to the address passed by the caller in the rgctx reg.
                 */
-               //printf ("CALLI\n");
-
-               g_assert (caller);
-               caller_ji = mini_jit_info_table_find (mono_domain_get (), mono_get_addr_from_ftnptr (caller), NULL);
-               g_assert (caller_ji);
-               gji = mono_jit_info_get_generic_jit_info (caller_ji);
-               g_assert (gji);
-
-               addr = mini_get_gsharedvt_wrapper (FALSE, NULL, sig, gsig, gji->generic_sharing_context, -1, TRUE);
-
+               addr = mini_get_gsharedvt_wrapper (FALSE, NULL, sig, gsig, -1, TRUE);
                return addr;
        }
        case MONO_RGCTX_INFO_METHOD_GSHAREDVT_OUT_TRAMPOLINE:
@@ -1307,10 +1288,9 @@ instantiate_info (MonoDomain *domain, MonoRuntimeGenericContextInfoTemplate *oti
                MonoMethodSignature *call_sig;
                MonoMethod *method;
                gpointer addr;
-               MonoJitInfo *caller_ji, *callee_ji;
+               MonoJitInfo *callee_ji;
                gboolean virtual = oti->info_type == MONO_RGCTX_INFO_METHOD_GSHAREDVT_OUT_TRAMPOLINE_VIRT;
                gint32 vcall_offset;
-               MonoGenericJitInfo *gji, *callee_gji = NULL;
                gboolean callee_gsharedvt;
 
                /* This is the original generic signature used by the caller */
@@ -1342,19 +1322,9 @@ instantiate_info (MonoDomain *domain, MonoRuntimeGenericContextInfoTemplate *oti
                        vcall_offset = -1;
                }
 
-               g_assert (caller);
-               caller_ji = mini_jit_info_table_find (mono_domain_get (), mono_get_addr_from_ftnptr (caller), NULL);
-               g_assert (caller_ji);
-               gji = mono_jit_info_get_generic_jit_info (caller_ji);
-               g_assert (gji);
-
                // FIXME: This loads information in the AOT case
                callee_ji = mini_jit_info_table_find (mono_domain_get (), mono_get_addr_from_ftnptr (addr), NULL);
                callee_gsharedvt = ji_is_gsharedvt (callee_ji);
-               if (callee_gsharedvt) {
-                       callee_gji = mono_jit_info_get_generic_jit_info (callee_ji);
-                       g_assert (callee_gji);
-               }
 
                /*
                 * For gsharedvt calls made out of gsharedvt methods, the callee could end up being a gsharedvt method, or a normal
@@ -1375,7 +1345,7 @@ instantiate_info (MonoDomain *domain, MonoRuntimeGenericContextInfoTemplate *oti
                        sig = mono_method_signature (method);
                        gsig = call_sig;
 
-                       addr = mini_get_gsharedvt_wrapper (FALSE, addr, sig, gsig, gji->generic_sharing_context, vcall_offset, FALSE);
+                       addr = mini_get_gsharedvt_wrapper (FALSE, addr, sig, gsig, vcall_offset, FALSE);
 #if 0
                        if (virtual)
                                printf ("OUT-VCALL: %s\n", mono_method_full_name (method, TRUE));
@@ -1407,12 +1377,12 @@ instantiate_info (MonoDomain *domain, MonoRuntimeGenericContextInfoTemplate *oti
                                sig = mono_method_signature (method);
                                gsig = mono_method_signature (jinfo_get_method (callee_ji)); 
 
-                               addr = mini_get_gsharedvt_wrapper (TRUE, callee_ji->code_start, sig, gsig, callee_gji->generic_sharing_context, -1, FALSE);
+                               addr = mini_get_gsharedvt_wrapper (TRUE, callee_ji->code_start, sig, gsig, -1, FALSE);
 
                                sig = mono_method_signature (method);
                                gsig = call_sig;
 
-                               addr = mini_get_gsharedvt_wrapper (FALSE, addr, sig, gsig, gji->generic_sharing_context, -1, FALSE);
+                               addr = mini_get_gsharedvt_wrapper (FALSE, addr, sig, gsig, -1, FALSE);
 
                                //printf ("OUT-IN-RGCTX: %s\n", mono_method_full_name (method, TRUE));
                        }
@@ -1451,7 +1421,7 @@ instantiate_info (MonoDomain *domain, MonoRuntimeGenericContextInfoTemplate *oti
                                offset += size;
                                break;
                        default:
-                               res->entries [i] = instantiate_info (domain, template, context, class, NULL);
+                               res->entries [i] = instantiate_info (domain, template, context, klass);
                                break;
                        }
                }
@@ -1470,16 +1440,16 @@ instantiate_info (MonoDomain *domain, MonoRuntimeGenericContextInfoTemplate *oti
  * LOCKING: loader lock
  */
 static void
-fill_in_rgctx_template_slot (MonoClass *class, int type_argc, int index, gpointer data, MonoRgctxInfoType info_type)
+fill_in_rgctx_template_slot (MonoClass *klass, int type_argc, int index, gpointer data, MonoRgctxInfoType info_type)
 {
-       MonoRuntimeGenericContextTemplate *template = mono_class_get_runtime_generic_context_template (class);
+       MonoRuntimeGenericContextTemplate *template = mono_class_get_runtime_generic_context_template (klass);
        MonoClass *subclass;
 
-       rgctx_template_set_slot (class->image, template, type_argc, index, data, info_type);
+       rgctx_template_set_slot (klass->image, template, type_argc, index, data, info_type);
 
        /* Recurse for all subclasses */
        if (generic_subclass_hash)
-               subclass = g_hash_table_lookup (generic_subclass_hash, class);
+               subclass = g_hash_table_lookup (generic_subclass_hash, klass);
        else
                subclass = NULL;
 
@@ -1550,10 +1520,10 @@ rgctx_info_to_str (MonoRgctxInfoType info_type, gpointer data)
  * LOCKING: loader lock
  */
 static int
-register_info (MonoClass *class, int type_argc, gpointer data, MonoRgctxInfoType info_type)
+register_info (MonoClass *klass, int type_argc, gpointer data, MonoRgctxInfoType info_type)
 {
        int i;
-       MonoRuntimeGenericContextTemplate *template = mono_class_get_runtime_generic_context_template (class);
+       MonoRuntimeGenericContextTemplate *template = mono_class_get_runtime_generic_context_template (klass);
        MonoClass *parent;
        MonoRuntimeGenericContextInfoTemplate *oti;
 
@@ -1566,7 +1536,7 @@ register_info (MonoClass *class, int type_argc, gpointer data, MonoRgctxInfoType
 
        /* Mark the slot as used in all parent classes (until we find
           a parent class which already has it marked used). */
-       parent = class->parent;
+       parent = klass->parent;
        while (parent != NULL) {
                MonoRuntimeGenericContextTemplate *parent_template;
                MonoRuntimeGenericContextInfoTemplate *oti;
@@ -1588,7 +1558,7 @@ register_info (MonoClass *class, int type_argc, gpointer data, MonoRgctxInfoType
 
        /* Fill in the slot in this class and in all subclasses
           recursively. */
-       fill_in_rgctx_template_slot (class, type_argc, i, data, info_type);
+       fill_in_rgctx_template_slot (klass, type_argc, i, data, info_type);
 
        return i;
 }
@@ -1673,18 +1643,18 @@ mini_rgctx_info_type_to_patch_info_type (MonoRgctxInfoType info_type)
 }
 
 static int
-lookup_or_register_info (MonoClass *class, int type_argc, gpointer data, MonoRgctxInfoType info_type,
+lookup_or_register_info (MonoClass *klass, int type_argc, gpointer data, MonoRgctxInfoType info_type,
        MonoGenericContext *generic_context)
 {
        static gboolean inited = FALSE;
        static int max_slot = 0;
 
        MonoRuntimeGenericContextTemplate *rgctx_template =
-               mono_class_get_runtime_generic_context_template (class);
+               mono_class_get_runtime_generic_context_template (klass);
        MonoRuntimeGenericContextInfoTemplate *oti_list, *oti;
        int i;
 
-       class = get_shared_class (class);
+       klass = get_shared_class (klass);
 
        mono_loader_lock ();
 
@@ -1697,7 +1667,7 @@ lookup_or_register_info (MonoClass *class, int type_argc, gpointer data, MonoRgc
                        if (oti->info_type != info_type || !oti->data)
                                continue;
 
-                       inflated_data = inflate_info (oti, generic_context, class, TRUE);
+                       inflated_data = inflate_info (oti, generic_context, klass, TRUE);
 
                        if (info_equal (data, inflated_data, info_type)) {
                                free_inflated_info (info_type, inflated_data);
@@ -1709,7 +1679,7 @@ lookup_or_register_info (MonoClass *class, int type_argc, gpointer data, MonoRgc
        }
 
        /* We haven't found the info */
-       i = register_info (class, type_argc, data, info_type);
+       i = register_info (klass, type_argc, data, info_type);
 
        mono_loader_unlock ();
 
@@ -1739,7 +1709,7 @@ guint32
 mono_method_lookup_or_register_info (MonoMethod *method, gboolean in_mrgctx, gpointer data,
        MonoRgctxInfoType info_type, MonoGenericContext *generic_context)
 {
-       MonoClass *class = method->klass;
+       MonoClass *klass = method->klass;
        int type_argc, index;
 
        if (in_mrgctx) {
@@ -1752,7 +1722,7 @@ mono_method_lookup_or_register_info (MonoMethod *method, gboolean in_mrgctx, gpo
                type_argc = 0;
        }
 
-       index = lookup_or_register_info (class, type_argc, data, info_type, generic_context);
+       index = lookup_or_register_info (klass, type_argc, data, info_type, generic_context);
 
        //g_print ("rgctx item at index %d argc %d\n", index, type_argc);
 
@@ -1817,14 +1787,14 @@ alloc_rgctx_array (MonoDomain *domain, int n, gboolean is_mrgctx)
 }
 
 static gpointer
-fill_runtime_generic_context (MonoVTable *class_vtable, MonoRuntimeGenericContext *rgctx, guint8 *caller, guint32 slot,
+fill_runtime_generic_context (MonoVTable *class_vtable, MonoRuntimeGenericContext *rgctx, guint32 slot,
                MonoGenericInst *method_inst)
 {
        gpointer info;
        int i, first_slot, size;
        MonoDomain *domain = class_vtable->domain;
-       MonoClass *class = class_vtable->klass;
-       MonoGenericContext *class_context = class->generic_class ? &class->generic_class->context : NULL;
+       MonoClass *klass = class_vtable->klass;
+       MonoGenericContext *class_context = klass->generic_class ? &klass->generic_class->context : NULL;
        MonoRuntimeGenericContextInfoTemplate oti;
        MonoGenericContext context = { class_context ? class_context->class_inst : NULL, method_inst };
        int rgctx_index;
@@ -1869,10 +1839,10 @@ fill_runtime_generic_context (MonoVTable *class_vtable, MonoRuntimeGenericContex
 
        mono_domain_unlock (domain);
 
-       oti = class_get_rgctx_template_oti (get_shared_class (class),
+       oti = class_get_rgctx_template_oti (get_shared_class (klass),
                                                                                method_inst ? method_inst->type_argc : 0, slot, TRUE, TRUE, &do_free);
        /* This might take the loader lock */
-       info = instantiate_info (domain, &oti, &context, class, caller);
+       info = instantiate_info (domain, &oti, &context, klass);
 
        /*
        if (method_inst)
@@ -1900,13 +1870,12 @@ fill_runtime_generic_context (MonoVTable *class_vtable, MonoRuntimeGenericContex
 /*
  * mono_class_fill_runtime_generic_context:
  * @class_vtable: a vtable
- * @caller: caller method address
  * @slot: a slot index to be instantiated
  *
  * Instantiates a slot in the RGCTX, returning its value.
  */
 gpointer
-mono_class_fill_runtime_generic_context (MonoVTable *class_vtable, guint8 *caller, guint32 slot)
+mono_class_fill_runtime_generic_context (MonoVTable *class_vtable, guint32 slot)
 {
        static gboolean inited = FALSE;
        static int num_alloced = 0;
@@ -1931,7 +1900,7 @@ mono_class_fill_runtime_generic_context (MonoVTable *class_vtable, guint8 *calle
 
        mono_domain_unlock (domain);
 
-       info = fill_runtime_generic_context (class_vtable, rgctx, caller, slot, 0);
+       info = fill_runtime_generic_context (class_vtable, rgctx, slot, 0);
 
        DEBUG (printf ("get rgctx slot: %s %d -> %p\n", mono_type_full_name (&class_vtable->klass->byval_arg), slot, info));
 
@@ -1941,18 +1910,16 @@ mono_class_fill_runtime_generic_context (MonoVTable *class_vtable, guint8 *calle
 /*
  * mono_method_fill_runtime_generic_context:
  * @mrgctx: an MRGCTX
- * @caller: caller method address
  * @slot: a slot index to be instantiated
  *
  * Instantiates a slot in the MRGCTX.
  */
 gpointer
-mono_method_fill_runtime_generic_context (MonoMethodRuntimeGenericContext *mrgctx, guint8* caller, guint32 slot)
+mono_method_fill_runtime_generic_context (MonoMethodRuntimeGenericContext *mrgctx, guint32 slot)
 {
        gpointer info;
 
-       info = fill_runtime_generic_context (mrgctx->class_vtable, (MonoRuntimeGenericContext*)mrgctx, caller, slot,
-               mrgctx->method_inst);
+       info = fill_runtime_generic_context (mrgctx->class_vtable, (MonoRuntimeGenericContext*)mrgctx, slot, mrgctx->method_inst);
 
        return info;
 }
@@ -2036,7 +2003,14 @@ generic_inst_is_sharable (MonoGenericInst *inst, gboolean allow_type_vars,
 static gboolean
 type_is_sharable (MonoType *type, gboolean allow_type_vars, gboolean allow_partial)
 {
-       if (MONO_TYPE_IS_REFERENCE (type) || (allow_type_vars && (type->type == MONO_TYPE_VAR || type->type == MONO_TYPE_MVAR)))
+       if (allow_type_vars && (type->type == MONO_TYPE_VAR || type->type == MONO_TYPE_MVAR)) {
+               MonoType *constraint = type->data.generic_param->gshared_constraint;
+               if (!constraint)
+                       return TRUE;
+               type = constraint;
+       }
+
+       if (MONO_TYPE_IS_REFERENCE (type))
                return TRUE;
 
        /* Allow non ref arguments if they are primitive types or enums (partial sharing). */
@@ -2423,71 +2397,12 @@ mono_set_partial_sharing_supported (gboolean supported)
  * function will disappear and generic sharing will always be enabled.
  */
 gboolean
-mono_class_generic_sharing_enabled (MonoClass *class)
+mono_class_generic_sharing_enabled (MonoClass *klass)
 {
-       static int generic_sharing = MONO_GENERIC_SHARING_NONE;
-       static gboolean inited = FALSE;
-
-       if (!inited) {
-               const char *option;
-
-               if (gshared_supported)
-                       generic_sharing = MONO_GENERIC_SHARING_ALL;
-               else
-                       generic_sharing = MONO_GENERIC_SHARING_NONE;
-
-               if ((option = g_getenv ("MONO_GENERIC_SHARING"))) {
-                       if (strcmp (option, "corlib") == 0)
-                               generic_sharing = MONO_GENERIC_SHARING_CORLIB;
-                       else if (strcmp (option, "collections") == 0)
-                               generic_sharing = MONO_GENERIC_SHARING_COLLECTIONS;
-                       else if (strcmp (option, "all") == 0)
-                               generic_sharing = MONO_GENERIC_SHARING_ALL;
-                       else if (strcmp (option, "none") == 0)
-                               generic_sharing = MONO_GENERIC_SHARING_NONE;
-                       else
-                               g_warning ("Unknown generic sharing option `%s'.", option);
-               }
-
-               if (!gshared_supported)
-                       generic_sharing = MONO_GENERIC_SHARING_NONE;
-
-               inited = TRUE;
-       }
-
-       switch (generic_sharing) {
-       case MONO_GENERIC_SHARING_NONE:
-               return FALSE;
-       case MONO_GENERIC_SHARING_ALL:
+       if (gshared_supported)
                return TRUE;
-       case MONO_GENERIC_SHARING_CORLIB :
-               return class->image == mono_defaults.corlib;
-       case MONO_GENERIC_SHARING_COLLECTIONS:
-               if (class->image != mono_defaults.corlib)
-                       return FALSE;
-               while (class->nested_in)
-                       class = class->nested_in;
-               return g_str_has_prefix (class->name_space, "System.Collections.Generic");
-       default:
-               g_assert_not_reached ();
-       }
-       return FALSE;
-}
-
-/*
- * mono_get_generic_context_from_code:
- *
- *   Return the runtime generic context belonging to the method whose native code
- * contains CODE.
- */
-MonoGenericSharingContext*
-mono_get_generic_context_from_code (guint8 *code)
-{
-       MonoJitInfo *jit_info = mini_jit_info_table_find (mono_domain_get (), (char*)code, NULL);
-
-       g_assert (jit_info);
-
-       return mono_jit_info_get_generic_sharing_context (jit_info);
+       else
+               return FALSE;
 }
 
 MonoGenericContext*
@@ -2568,13 +2483,13 @@ mono_generic_context_equal_deep (MonoGenericContext *context1, MonoGenericContex
  * it doesn't have generic_class set.
  */
 MonoClass*
-mini_class_get_container_class (MonoClass *class)
+mini_class_get_container_class (MonoClass *klass)
 {
-       if (class->generic_class)
-               return class->generic_class->container_class;
+       if (klass->generic_class)
+               return klass->generic_class->container_class;
 
-       g_assert (class->generic_container);
-       return class;
+       g_assert (klass->generic_container);
+       return klass;
 }
 
 /*
@@ -2584,32 +2499,26 @@ mini_class_get_container_class (MonoClass *class)
  * Returns the class's generic context.
  */
 MonoGenericContext*
-mini_class_get_context (MonoClass *class)
+mini_class_get_context (MonoClass *klass)
 {
-       if (class->generic_class)
-               return &class->generic_class->context;
+       if (klass->generic_class)
+               return &klass->generic_class->context;
 
-       g_assert (class->generic_container);
-       return &class->generic_container->context;
+       g_assert (klass->generic_container);
+       return &klass->generic_container->context;
 }
 
 /*
  * mini_get_basic_type_from_generic:
- * @gsctx: a generic sharing context
  * @type: a type
  *
  * Returns a closed type corresponding to the possibly open type
  * passed to it.
  */
-MonoType*
-mini_get_basic_type_from_generic (MonoGenericSharingContext *gsctx, MonoType *type)
+static MonoType*
+mini_get_basic_type_from_generic (MonoType *type)
 {
-       /* FIXME: Some callers don't pass in a gsctx, like mono_dyn_call_prepare () */
-       /*
-       if (!type->byref && (type->type == MONO_TYPE_VAR || type->type == MONO_TYPE_MVAR))
-               g_assert (gsctx);
-       */
-       if (!type->byref && (type->type == MONO_TYPE_VAR || type->type == MONO_TYPE_MVAR) && mini_is_gsharedvt_type_gsctx (gsctx, type))
+       if (!type->byref && (type->type == MONO_TYPE_VAR || type->type == MONO_TYPE_MVAR) && mini_is_gsharedvt_type (type))
                return type;
        else if (!type->byref && (type->type == MONO_TYPE_VAR || type->type == MONO_TYPE_MVAR)) {
                MonoType *constraint = type->data.generic_param->gshared_constraint;
@@ -2635,15 +2544,15 @@ mini_get_basic_type_from_generic (MonoGenericSharingContext *gsctx, MonoType *ty
  * sharing.
  */
 MonoType*
-mini_type_get_underlying_type (MonoGenericSharingContext *gsctx, MonoType *type)
+mini_type_get_underlying_type (MonoType *type)
 {
        type = mini_native_type_replace_type (type);
 
        if (type->byref)
                return &mono_defaults.int_class->byval_arg;
-       if (!type->byref && (type->type == MONO_TYPE_VAR || type->type == MONO_TYPE_MVAR) && mini_is_gsharedvt_type_gsctx (gsctx, type))
+       if (!type->byref && (type->type == MONO_TYPE_VAR || type->type == MONO_TYPE_MVAR) && mini_is_gsharedvt_type (type))
                return type;
-       type = mini_get_basic_type_from_generic (gsctx, mono_type_get_underlying_type (type));
+       type = mini_get_basic_type_from_generic (mono_type_get_underlying_type (type));
        switch (type->type) {
        case MONO_TYPE_BOOLEAN:
                return &mono_defaults.byte_class->byval_arg;
@@ -2656,39 +2565,28 @@ mini_type_get_underlying_type (MonoGenericSharingContext *gsctx, MonoType *type)
 
 /*
  * mini_type_stack_size:
- * @gsctx: a generic sharing context
  * @t: a type
  * @align: Pointer to an int for returning the alignment
  *
- * Returns the type's stack size and the alignment in *align.  The
- * type is allowed to be open.
+ * Returns the type's stack size and the alignment in *align.
  */
 int
-mini_type_stack_size (MonoGenericSharingContext *gsctx, MonoType *t, int *align)
+mini_type_stack_size (MonoType *t, int *align)
 {
-       gboolean allow_open = TRUE;
-
-       // FIXME: Some callers might not pass in a gsctx
-       //allow_open = gsctx != NULL;
-       return mono_type_stack_size_internal (t, align, allow_open);
+       return mono_type_stack_size_internal (t, align, TRUE);
 }
 
 /*
  * mini_type_stack_size_full:
  *
- *   Same as mini_type_stack_size, but handle gsharedvt and pinvoke data types as well.
+ *   Same as mini_type_stack_size, but handle pinvoke data types as well.
  */
 int
-mini_type_stack_size_full (MonoGenericSharingContext *gsctx, MonoType *t, guint32 *align, gboolean pinvoke)
+mini_type_stack_size_full (MonoType *t, guint32 *align, gboolean pinvoke)
 {
        int size;
 
-       /*
-       if (t->type == MONO_TYPE_VAR || t->type == MONO_TYPE_MVAR)
-               g_assert (gsctx);
-       */
-
-       //g_assert (!mini_is_gsharedvt_type_gsctx (gsctx, t));
+       //g_assert (!mini_is_gsharedvt_type (t));
 
        if (pinvoke) {
                size = mono_type_native_stack_size (t, align);
@@ -2696,10 +2594,10 @@ mini_type_stack_size_full (MonoGenericSharingContext *gsctx, MonoType *t, guint3
                int ialign;
 
                if (align) {
-                       size = mini_type_stack_size (gsctx, t, &ialign);
+                       size = mini_type_stack_size (t, &ialign);
                        *align = ialign;
                } else {
-                       size = mini_type_stack_size (gsctx, t, NULL);
+                       size = mini_type_stack_size (t, NULL);
                }
        }
        
@@ -2732,29 +2630,20 @@ mono_generic_sharing_cleanup (void)
  *   Return whenever T is a type variable instantiated with a vtype.
  */
 gboolean
-mini_type_var_is_vt (MonoCompile *cfg, MonoType *type)
+mini_type_var_is_vt (MonoType *type)
 {
-       if (type->type == MONO_TYPE_VAR) {
-               if (cfg->generic_sharing_context->var_is_vt && cfg->generic_sharing_context->var_is_vt [type->data.generic_param->num])
-                       return TRUE;
-               else
-                       return FALSE;
-       } else if (type->type == MONO_TYPE_MVAR) {
-               if (cfg->generic_sharing_context->mvar_is_vt && cfg->generic_sharing_context->mvar_is_vt [type->data.generic_param->num])
-                       return TRUE;
-               else
-                       return FALSE;
+       if (type->type == MONO_TYPE_VAR || type->type == MONO_TYPE_MVAR) {
+               return type->data.generic_param->gshared_constraint && type->data.generic_param->gshared_constraint->type == MONO_TYPE_VALUETYPE;
        } else {
                g_assert_not_reached ();
+               return FALSE;
        }
-       return FALSE;
 }
 
 gboolean
-mini_type_is_reference (MonoCompile *cfg, MonoType *type)
+mini_type_is_reference (MonoType *type)
 {
-       if (cfg->generic_sharing_context)
-               type = mini_get_underlying_type (cfg, type);
+       type = mini_type_get_underlying_type (type);
        return mono_type_is_reference (type);
 }
 
@@ -2779,11 +2668,11 @@ mini_method_get_rgctx (MonoMethod *m)
  * Should be used in place of MONO_TYPE_ISSTRUCT () which can't handle gsharedvt.
  */
 gboolean
-mini_type_is_vtype (MonoCompile *cfg, MonoType *t)
+mini_type_is_vtype (MonoType *t)
 {
-       t = mini_get_underlying_type (cfg, t);
+       t = mini_type_get_underlying_type (t);
 
-       return MONO_TYPE_ISSTRUCT (t) || mini_is_gsharedvt_variable_type (cfg, t);
+       return MONO_TYPE_ISSTRUCT (t) || mini_is_gsharedvt_variable_type (t);
 }
 
 gboolean
@@ -2796,9 +2685,9 @@ mini_class_is_generic_sharable (MonoClass *klass)
 }
 
 gboolean
-mini_is_gsharedvt_variable_klass (MonoCompile *cfg, MonoClass *klass)
+mini_is_gsharedvt_variable_klass (MonoClass *klass)
 {
-       return mini_is_gsharedvt_variable_type (cfg, &klass->byval_arg);
+       return mini_is_gsharedvt_variable_type (&klass->byval_arg);
 }
 
 gboolean
@@ -3084,6 +2973,68 @@ mini_get_shared_method (MonoMethod *method)
        return mini_get_shared_method_full (method, FALSE, FALSE);
 }
 
+int
+mini_get_rgctx_entry_slot (MonoJumpInfoRgctxEntry *entry)
+{
+       guint32 slot = -1;
+
+       switch (entry->data->type) {
+       case MONO_PATCH_INFO_CLASS:
+               slot = mono_method_lookup_or_register_info (entry->method, entry->in_mrgctx, &entry->data->data.klass->byval_arg, entry->info_type, mono_method_get_context (entry->method));
+               break;
+       case MONO_PATCH_INFO_METHOD:
+       case MONO_PATCH_INFO_METHODCONST:
+               slot = mono_method_lookup_or_register_info (entry->method, entry->in_mrgctx, entry->data->data.method, entry->info_type, mono_method_get_context (entry->method));
+               break;
+       case MONO_PATCH_INFO_FIELD:
+               slot = mono_method_lookup_or_register_info (entry->method, entry->in_mrgctx, entry->data->data.field, entry->info_type, mono_method_get_context (entry->method));
+               break;
+       case MONO_PATCH_INFO_SIGNATURE:
+               slot = mono_method_lookup_or_register_info (entry->method, entry->in_mrgctx, entry->data->data.sig, entry->info_type, mono_method_get_context (entry->method));
+               break;
+       case MONO_PATCH_INFO_GSHAREDVT_CALL: {
+               MonoJumpInfoGSharedVtCall *call_info = g_malloc0 (sizeof (MonoJumpInfoGSharedVtCall)); //mono_domain_alloc0 (domain, sizeof (MonoJumpInfoGSharedVtCall));
+
+               memcpy (call_info, entry->data->data.gsharedvt, sizeof (MonoJumpInfoGSharedVtCall));
+               slot = mono_method_lookup_or_register_info (entry->method, entry->in_mrgctx, call_info, entry->info_type, mono_method_get_context (entry->method));
+               break;
+       }
+       case MONO_PATCH_INFO_GSHAREDVT_METHOD: {
+               MonoGSharedVtMethodInfo *info;
+               MonoGSharedVtMethodInfo *oinfo = entry->data->data.gsharedvt_method;
+               int i;
+
+               /* Make a copy into the domain mempool */
+               info = g_malloc0 (sizeof (MonoGSharedVtMethodInfo)); //mono_domain_alloc0 (domain, sizeof (MonoGSharedVtMethodInfo));
+               info->method = oinfo->method;
+               info->num_entries = oinfo->num_entries;
+               info->entries = g_malloc0 (sizeof (MonoRuntimeGenericContextInfoTemplate) * info->num_entries);
+               for (i = 0; i < oinfo->num_entries; ++i) {
+                       MonoRuntimeGenericContextInfoTemplate *otemplate = &oinfo->entries [i];
+                       MonoRuntimeGenericContextInfoTemplate *template = &info->entries [i];
+
+                       memcpy (template, otemplate, sizeof (MonoRuntimeGenericContextInfoTemplate));
+               }
+               slot = mono_method_lookup_or_register_info (entry->method, entry->in_mrgctx, info, entry->info_type, mono_method_get_context (entry->method));
+               break;
+       }
+       case MONO_PATCH_INFO_VIRT_METHOD: {
+               MonoJumpInfoVirtMethod *info;
+               MonoJumpInfoVirtMethod *oinfo = entry->data->data.virt_method;
+
+               info = g_malloc0 (sizeof (MonoJumpInfoVirtMethod));
+               memcpy (info, oinfo, sizeof (MonoJumpInfoVirtMethod));
+               slot = mono_method_lookup_or_register_info (entry->method, entry->in_mrgctx, info, entry->info_type, mono_method_get_context (entry->method));
+               break;
+       }
+       default:
+               g_assert_not_reached ();
+               break;
+       }
+
+       return slot;
+}
+
 #if defined(ENABLE_GSHAREDVT)
 
 #include "../../../mono-extensions/mono/mini/mini-generic-sharing-gsharedvt.c"
@@ -3091,31 +3042,25 @@ mini_get_shared_method (MonoMethod *method)
 #else
 
 gboolean
-mini_is_gsharedvt_type_gsctx (MonoGenericSharingContext *gsctx, MonoType *t)
-{
-       return FALSE;
-}
-
-gboolean
-mini_is_gsharedvt_type (MonoCompile *cfg, MonoType *t)
+mini_is_gsharedvt_type (MonoType *t)
 {
        return FALSE;
 }
 
 gboolean
-mini_is_gsharedvt_klass (MonoCompile *cfg, MonoClass *klass)
+mini_is_gsharedvt_klass (MonoClass *klass)
 {
        return FALSE;
 }
 
 gboolean
-mini_is_gsharedvt_signature (MonoCompile *cfg, MonoMethodSignature *sig)
+mini_is_gsharedvt_signature (MonoMethodSignature *sig)
 {
        return FALSE;
 }
 
 gboolean
-mini_is_gsharedvt_variable_type (MonoCompile *cfg, MonoType *t)
+mini_is_gsharedvt_variable_type (MonoType *t)
 {
        return FALSE;
 }
index eb102115c883e6d6e9acce74d100469a12878ad5..e1ca51ba9806b76ac01465f7ad6d8b5f0638ea26 100644 (file)
@@ -215,7 +215,7 @@ add_float (guint32 *gr, guint32 *fr, guint32 *stack_size, ArgInfo *ainfo, gboole
 }
 
 static void
-add_valuetype (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, ArgInfo *ainfo, MonoType *type,
+add_valuetype (MonoMethodSignature *sig, ArgInfo *ainfo, MonoType *type,
               gboolean is_return,
               guint32 *gr, guint32 *fr, guint32 *stack_size)
 {
@@ -231,7 +231,7 @@ add_valuetype (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, ArgIn
        else if (sig->pinvoke) 
                size = mono_type_native_stack_size (&klass->byval_arg, NULL);
        else 
-               size = mini_type_stack_size (gsctx, &klass->byval_arg, NULL);
+               size = mini_type_stack_size (&klass->byval_arg, NULL);
 
        if (!sig->pinvoke || (size == 0)) {
                /* Allways pass in memory */
@@ -337,7 +337,6 @@ get_call_info (MonoCompile *cfg, MonoMemPool *mp, MonoMethodSignature *sig, gboo
        int n = sig->hasthis + sig->param_count;
        guint32 stack_size = 0;
        CallInfo *cinfo;
-       MonoGenericSharingContext *gsctx = cfg ? cfg->generic_sharing_context : NULL;
 
        if (mp)
                cinfo = mono_mempool_alloc0 (mp, sizeof (CallInfo) + (sizeof (ArgInfo) * n));
@@ -349,8 +348,7 @@ get_call_info (MonoCompile *cfg, MonoMemPool *mp, MonoMethodSignature *sig, gboo
 
        /* return value */
        {
-               ret_type = mono_type_get_underlying_type (sig->ret);
-               ret_type = mini_get_basic_type_from_generic (gsctx, ret_type);
+               ret_type = mini_get_underlying_type (sig->ret);
                switch (ret_type->type) {
                case MONO_TYPE_BOOLEAN:
                case MONO_TYPE_I1:
@@ -397,7 +395,7 @@ get_call_info (MonoCompile *cfg, MonoMemPool *mp, MonoMethodSignature *sig, gboo
                                /* This seems to happen with ldfld wrappers */
                                cinfo->ret.storage = ArgInIReg;
                        } else {
-                               add_valuetype (gsctx, sig, &cinfo->ret, sig->ret, TRUE, &tmp_gr, &tmp_fr, &tmp_stacksize);
+                               add_valuetype (sig, &cinfo->ret, sig->ret, TRUE, &tmp_gr, &tmp_fr, &tmp_stacksize);
                                if (cinfo->ret.storage == ArgOnStack) {
                                        /* The caller passes the address where the value is stored */
                                        cinfo->vtype_retaddr = TRUE;
@@ -421,7 +419,7 @@ get_call_info (MonoCompile *cfg, MonoMemPool *mp, MonoMethodSignature *sig, gboo
         * are sometimes made using calli without sig->hasthis set, like in the delegate
         * invoke wrappers.
         */
-       if (cinfo->vtype_retaddr && !is_pinvoke && (sig->hasthis || (sig->param_count > 0 && MONO_TYPE_IS_REFERENCE (mini_type_get_underlying_type (gsctx, sig->params [0]))))) {
+       if (cinfo->vtype_retaddr && !is_pinvoke && (sig->hasthis || (sig->param_count > 0 && MONO_TYPE_IS_REFERENCE (mini_get_underlying_type (sig->params [0]))))) {
                if (sig->hasthis) {
                        add_general (&gr, &stack_size, cinfo->args + 0);
                } else {
@@ -473,8 +471,7 @@ get_call_info (MonoCompile *cfg, MonoMemPool *mp, MonoMethodSignature *sig, gboo
                        add_general (&gr, &stack_size, ainfo);
                        continue;
                }
-               ptype = mono_type_get_underlying_type (sig->params [i]);
-               ptype = mini_get_basic_type_from_generic (gsctx, ptype);
+               ptype = mini_get_underlying_type (sig->params [i]);
                switch (ptype->type) {
                case MONO_TYPE_BOOLEAN:
                case MONO_TYPE_I1:
@@ -511,7 +508,7 @@ get_call_info (MonoCompile *cfg, MonoMemPool *mp, MonoMethodSignature *sig, gboo
                case MONO_TYPE_TYPEDBYREF:
                        /* FIXME: */
                        /* We allways pass valuetypes on the stack */
-                       add_valuetype (gsctx, sig, ainfo, sig->params [i], FALSE, &gr, &fr, &stack_size);
+                       add_valuetype (sig, ainfo, sig->params [i], FALSE, &gr, &fr, &stack_size);
                        break;
                case MONO_TYPE_U8:
                case MONO_TYPE_I8:
@@ -554,7 +551,7 @@ get_call_info (MonoCompile *cfg, MonoMemPool *mp, MonoMethodSignature *sig, gboo
  * Returns the size of the argument area on the stack.
  */
 int
-mono_arch_get_argument_info (MonoGenericSharingContext *gsctx, MonoMethodSignature *csig, int param_count, MonoJitArgumentInfo *arg_info)
+mono_arch_get_argument_info (MonoMethodSignature *csig, int param_count, MonoJitArgumentInfo *arg_info)
 {
        int k;
        CallInfo *cinfo = get_call_info (NULL, NULL, csig, FALSE);
@@ -1848,7 +1845,7 @@ emit_load_volatile_arguments (MonoCompile *cfg, Ia64CodegenState code)
                else
                        arg_type = sig->params [i - sig->hasthis];
 
-               arg_type = mono_type_get_underlying_type (arg_type);
+               arg_type = mini_get_underlying_type (arg_type);
 
                stack_offset = ainfo->offset + ARGS_OFFSET;
 
@@ -1995,7 +1992,6 @@ emit_call (MonoCompile *cfg, Ia64CodegenState code, guint32 patch_type, gconstpo
        if ((patch_type == MONO_PATCH_INFO_ABS) || (patch_type == MONO_PATCH_INFO_INTERNAL_METHOD)) {
                /* Indirect call */
                /* mono_arch_patch_callsite will patch this */
-               /* mono_arch_nullify_class_init_trampoline will patch this */
                ia64_movl (code, GP_SCRATCH_REG, 0);
                ia64_ld8_inc_imm (code, GP_SCRATCH_REG2, GP_SCRATCH_REG, 8);
                ia64_mov_to_br (code, IA64_B6, GP_SCRATCH_REG2);
@@ -3912,7 +3908,7 @@ mono_arch_emit_prolog (MonoCompile *cfg)
                else
                        arg_type = sig->params [i - sig->hasthis];
 
-               arg_type = mono_type_get_underlying_type (arg_type);
+               arg_type = mini_get_underlying_type (arg_type);
 
                stack_offset = ainfo->offset + ARGS_OFFSET;
 
@@ -4622,6 +4618,8 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
 
        mono_stats.imt_thunks_size += size;
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, size, NULL, NULL), domain);
+
        return start;
 }
 
index ad20bbd37f664c94e8b51f3790245cc4dd564e43..f894a7721648c58e1f40e1f0556a192aec0923c6 100644 (file)
@@ -424,6 +424,14 @@ mono_llvm_build_fence (LLVMBuilderRef builder, BarrierKind kind)
        return wrap (ins);
 }
 
+void
+mono_llvm_set_must_tail (LLVMValueRef call_ins)
+{
+       CallInst *ins = (CallInst*)unwrap (call_ins);
+
+       ins->setTailCallKind (CallInst::TailCallKind::TCK_MustTail);
+}
+
 void
 mono_llvm_replace_uses_of (LLVMValueRef var, LLVMValueRef v)
 {
@@ -431,6 +439,18 @@ mono_llvm_replace_uses_of (LLVMValueRef var, LLVMValueRef v)
        unwrap (var)->replaceAllUsesWith (V);
 }
 
+LLVMValueRef
+mono_llvm_create_constant_data_array (const uint8_t *data, int len)
+{
+       return wrap(ConstantDataArray::get (*unwrap(LLVMGetGlobalContext ()), makeArrayRef(data, len)));
+}
+
+void
+mono_llvm_set_is_constant (LLVMValueRef global_var)
+{
+       unwrap<GlobalVariable>(global_var)->setConstant (true);
+}
+
 static cl::list<const PassInfo*, bool, PassNameParser>
 PassList(cl::desc("Optimizations available:"));
 
@@ -628,11 +648,7 @@ mono_llvm_create_ee (LLVMModuleProviderRef MP, AllocCodeMemoryCb *alloc_cb, Func
   // EngineBuilder no longer has a copy assignment operator (?)
   std::unique_ptr<Module> Owner(unwrap(MP));
   EngineBuilder b (std::move(Owner));
-#ifdef TARGET_AMD64
-  ExecutionEngine *EE = b.setJITMemoryManager (mono_mm).setTargetOptions (opts).setAllocateGVsWithCode (true).setMCPU (cpu_name).setCodeModel (CodeModel::Large).create ();
-#else
   ExecutionEngine *EE = b.setJITMemoryManager (mono_mm).setTargetOptions (opts).setAllocateGVsWithCode (true).setMCPU (cpu_name).create ();
-#endif
 
   g_assert (EE);
   mono_ee->EE = EE;
index ee502e29d09f31ed11bfdd2d5b910871d471e1f0..efc7662f93b33bf770e2896ac728cc4fa59d3bb5 100644 (file)
@@ -84,6 +84,15 @@ mono_llvm_replace_uses_of (LLVMValueRef var, LLVMValueRef v);
 LLVMValueRef
 mono_llvm_build_cmpxchg (LLVMBuilderRef builder, LLVMValueRef addr, LLVMValueRef comparand, LLVMValueRef value);
 
+void
+mono_llvm_set_must_tail (LLVMValueRef call_ins);
+
+LLVMValueRef
+mono_llvm_create_constant_data_array (const uint8_t *data, int len);
+
+void
+mono_llvm_set_is_constant (LLVMValueRef global_var);
+
 G_END_DECLS
 
 #endif /* __MONO_MINI_LLVM_CPP_H__ */  
index aca790dab2e023ec5b74212472d85c49bbba2c43..c93a83728120c36d2acf7129423f905f4cb52856 100644 (file)
 typedef void (*MonoLLVMVoidFunc)(void);
 typedef void (*MonoLLVMCFGFunc)(MonoCompile *cfg);
 typedef void (*MonoLLVMEmitCallFunc)(MonoCompile *cfg, MonoCallInst *call);
-typedef void (*MonoLLVMCreateAotFunc)(const char *got_symbol, gboolean external_symbols, gboolean emit_dwarf);
+typedef void (*MonoLLVMCreateAotFunc)(MonoAssembly *assembly, const char *global_prefix, gboolean emit_dwarf, gboolean static_link);
 typedef void (*MonoLLVMEmitAotFunc)(const char *filename, const char *cu_name);
+typedef void (*MonoLLVMEmitAotInfoFunc)(MonoAotFileInfo *info, gboolean has_jitted_code);
+typedef void (*MonoLLVMEmitAotDataFunc)(const char *symbol, guint8 *data, int data_len);
 typedef void (*MonoLLVMFreeDomainFunc)(MonoDomain *domain);
 
 static MonoLLVMVoidFunc mono_llvm_init_fptr;
@@ -25,6 +27,8 @@ static MonoLLVMEmitCallFunc mono_llvm_emit_call_fptr;
 static MonoLLVMCreateAotFunc mono_llvm_create_aot_module_fptr;
 static MonoLLVMEmitAotFunc mono_llvm_emit_aot_module_fptr;
 static MonoLLVMCFGFunc mono_llvm_check_method_supported_fptr;
+static MonoLLVMEmitAotInfoFunc mono_llvm_emit_aot_file_info_fptr;
+static MonoLLVMEmitAotDataFunc mono_llvm_emit_aot_data_fptr;
 static MonoLLVMFreeDomainFunc mono_llvm_free_domain_info_fptr;
 
 void
@@ -52,10 +56,10 @@ mono_llvm_emit_call (MonoCompile *cfg, MonoCallInst *call)
 }
 
 void
-mono_llvm_create_aot_module (const char *got_symbol, gboolean external_symbols, gboolean emit_dwarf)
+mono_llvm_create_aot_module (MonoAssembly *assembly, const char *global_prefix, gboolean emit_dwarf, gboolean static_link)
 {
        g_assert (mono_llvm_create_aot_module_fptr);
-       mono_llvm_create_aot_module_fptr (got_symbol, external_symbols, emit_dwarf);
+       mono_llvm_create_aot_module_fptr (assembly, global_prefix, emit_dwarf, static_link);
 }
 
 void
@@ -78,6 +82,20 @@ mono_llvm_free_domain_info (MonoDomain *domain)
                mono_llvm_free_domain_info_fptr (domain);
 }
 
+void
+mono_llvm_emit_aot_file_info (MonoAotFileInfo *info, gboolean has_jitted_code)
+{
+       if (mono_llvm_emit_aot_file_info_fptr)
+               mono_llvm_emit_aot_file_info_fptr (info, has_jitted_code);
+}
+
+void
+mono_llvm_emit_aot_data (const char *symbol, guint8 *data, int data_len)
+{
+       if (mono_llvm_emit_aot_data_fptr)
+               mono_llvm_emit_aot_data_fptr (symbol, data, data_len);
+}
+
 int
 mono_llvm_load (const char* bpath)
 {
@@ -106,6 +124,10 @@ mono_llvm_load (const char* bpath)
        if (err) goto symbol_error;
        err = mono_dl_symbol (llvm_lib, "mono_llvm_free_domain_info", (void**)&mono_llvm_free_domain_info_fptr);
        if (err) goto symbol_error;
+       err = mono_dl_symbol (llvm_lib, "mono_llvm_emit_aot_file_info", (void**)&mono_llvm_emit_aot_file_info_fptr);
+       if (err) goto symbol_error;
+       err = mono_dl_symbol (llvm_lib, "mono_llvm_emit_aot_data", (void**)&mono_llvm_emit_aot_data_fptr);
+       if (err) goto symbol_error;
        return TRUE;
 symbol_error:
        g_warning ("llvm symbol load failed: %s\n", err);
index 2667eac00f99831b2a9a363474ad847c405da794..af00dcd9841a504a4cfcc938128f3dbb4f0ba59e 100644 (file)
@@ -46,7 +46,6 @@ void bzero (void *to, size_t count) { memset (to, 0, count); }
 typedef struct {
        LLVMModuleRef module;
        LLVMValueRef throw, rethrow, throw_corlib_exception;
-       LLVMValueRef generic_class_init_tramp;
        GHashTable *llvm_types;
        LLVMValueRef got_var;
        const char *got_symbol;
@@ -63,6 +62,16 @@ typedef struct {
        gboolean external_symbols;
        gboolean emit_dwarf;
        int max_got_offset;
+
+       /* For AOT */
+       MonoAssembly *assembly;
+       char *global_prefix;
+       MonoAotFileInfo aot_info;
+       const char *jit_got_symbol;
+       const char *eh_frame_symbol;
+       LLVMValueRef code_start, code_end;
+       gboolean has_jitted_code;
+       gboolean static_link;
 } MonoLLVMModule;
 
 /*
@@ -272,6 +281,7 @@ get_vtype_size (MonoType *t)
 
        size = mono_class_value_size (mono_class_from_mono_type (t), NULL);
 
+       /* LLVMArgAsIArgs depends on this since it stores whole words */
        while (size < 2 * sizeof (gpointer) && mono_is_power_of_two (size) == -1)
                size ++;
 
@@ -384,7 +394,7 @@ type_to_llvm_type (EmitContext *ctx, MonoType *t)
        if (t->byref)
                return LLVMPointerType (LLVMInt8Type (), 0);
 
-       t = mini_get_underlying_type (ctx->cfg, t);
+       t = mini_get_underlying_type (t);
        switch (t->type) {
        case MONO_TYPE_VOID:
                return LLVMVoidType ();
@@ -1163,24 +1173,35 @@ sig_to_llvm_sig_full (EmitContext *ctx, MonoMethodSignature *sig, LLVMCallInfo *
        if (sinfo)
                memset (sinfo, 0, sizeof (LLVMSigInfo));
 
-       rtype = mini_get_underlying_type (ctx->cfg, sig->ret);
+       rtype = mini_get_underlying_type (sig->ret);
        ret_type = type_to_llvm_type (ctx, rtype);
        CHECK_FAILURE (ctx);
 
        if (cinfo) {
-               if (cinfo->ret.storage == LLVMArgVtypeInReg) {
+               switch (cinfo->ret.storage) {
+               case LLVMArgVtypeInReg:
                        /* LLVM models this by returning an aggregate value */
                        if (cinfo->ret.pair_storage [0] == LLVMArgInIReg && cinfo->ret.pair_storage [1] == LLVMArgNone) {
                                LLVMTypeRef members [2];
 
                                members [0] = IntPtrType ();
                                ret_type = LLVMStructType (members, 1, FALSE);
+                       } else if (cinfo->ret.pair_storage [0] == LLVMArgNone && cinfo->ret.pair_storage [1] == LLVMArgNone) {
+                               /* Empty struct */
+                               ret_type = LLVMVoidType ();
                        } else {
                                g_assert_not_reached ();
                        }
-               } else if (cinfo->ret.storage == LLVMArgVtypeByVal) {
+                       break;
+               case LLVMArgVtypeByVal:
                        /* Vtype returned normally by val */
-               } else if (cinfo->ret.storage == LLVMArgFpStruct) {
+                       break;
+               case LLVMArgVtypeAsScalar:
+                       /* LLVM models this by returning an int */
+                       g_assert (cinfo->ret.nslots == 1 || cinfo->ret.nslots == 2);
+                       ret_type = LLVMIntType (cinfo->ret.nslots * sizeof (mgreg_t) * 8);
+                       break;
+               case LLVMArgFpStruct: {
                        /* Vtype returned as a fp struct */
                        LLVMTypeRef members [16];
 
@@ -1188,16 +1209,38 @@ sig_to_llvm_sig_full (EmitContext *ctx, MonoMethodSignature *sig, LLVMCallInfo *
                        for (i = 0; i < cinfo->ret.nslots; ++i)
                                members [i] = cinfo->ret.esize == 8 ? LLVMDoubleType () : LLVMFloatType ();
                        ret_type = LLVMStructType (members, cinfo->ret.nslots, FALSE);
-               } else if (mini_type_is_vtype (ctx->cfg, rtype)) {
-                       g_assert (cinfo->ret.storage == LLVMArgVtypeRetAddr);
-                       vretaddr = TRUE;
+                       break;
+               }
+               case LLVMArgVtypeByRef:
+                       /* Vtype returned using a hidden argument */
                        ret_type = LLVMVoidType ();
+                       break;
+               default:
+                       if (mini_type_is_vtype (rtype)) {
+                               g_assert (cinfo->ret.storage == LLVMArgVtypeRetAddr);
+                               vretaddr = TRUE;
+                               ret_type = LLVMVoidType ();
+                       }
+                       break;
                }
        }
 
        pindexes = g_new0 (int, sig->param_count);
        param_types = g_new0 (LLVMTypeRef, (sig->param_count * 8) + 3);
        pindex = 0;
+       if (cinfo && cinfo->ret.storage == LLVMArgVtypeByRef) {
+               /*
+                * Has to be the first argument because of the sret argument attribute
+                * FIXME: This might conflict with passing 'this' as the first argument, but
+                * this is only used on arm64 which has a dedicated struct return register.
+                */
+               if (sinfo)
+                       sinfo->vret_arg_pindex = pindex;
+               param_types [pindex] = type_to_llvm_arg_type (ctx, sig->ret);
+               CHECK_FAILURE (ctx);
+               param_types [pindex] = LLVMPointerType (param_types [pindex], 0);
+               pindex ++;
+       }
        if (cinfo && cinfo->rgctx_arg) {
                if (sinfo)
                        sinfo->rgctx_arg_pindex = pindex;
@@ -1277,6 +1320,12 @@ sig_to_llvm_sig_full (EmitContext *ctx, MonoMethodSignature *sig, LLVMCallInfo *
                        param_types [pindex] = LLVMArrayType (IntPtrType (), ainfo->nslots);
                        pindex ++;
                        break;
+               case LLVMArgVtypeByRef:
+                       param_types [pindex] = type_to_llvm_arg_type (ctx, sig->params [i]);
+                       CHECK_FAILURE (ctx);
+                       param_types [pindex] = LLVMPointerType (param_types [pindex], 0);
+                       pindex ++;
+                       break;
                case LLVMArgAsFpArgs: {
                        int j;
 
@@ -1285,6 +1334,9 @@ sig_to_llvm_sig_full (EmitContext *ctx, MonoMethodSignature *sig, LLVMCallInfo *
                        pindex += ainfo->nslots;
                        break;
                }
+               case LLVMArgVtypeAsScalar:
+                       g_assert_not_reached ();
+                       break;
                default:
                        param_types [pindex ++] = type_to_llvm_arg_type (ctx, sig->params [i]);
                        break;
@@ -2037,7 +2089,7 @@ emit_entry_bb (EmitContext *ctx, LLVMBuilderRef builder)
                MonoInst *var = cfg->varinfo [i];
                LLVMTypeRef vtype;
 
-               if (var->flags & (MONO_INST_VOLATILE|MONO_INST_INDIRECT) || mini_type_is_vtype (cfg, var->inst_vtype)) {
+               if (var->flags & (MONO_INST_VOLATILE|MONO_INST_INDIRECT) || mini_type_is_vtype (var->inst_vtype)) {
                        vtype = type_to_llvm_type (ctx, var->inst_vtype);
                        CHECK_FAILURE (ctx);
                        /* Could be already created by an OP_VPHI */
@@ -2088,6 +2140,11 @@ emit_entry_bb (EmitContext *ctx, LLVMBuilderRef builder)
                        }
                        break;
                }
+               case LLVMArgVtypeByRef: {
+                       /* The argument is passed by ref */
+                       ctx->addresses [reg] = LLVMGetParam (ctx->lmethod, ctx->pindexes [i]);
+                       break;
+               }
                case LLVMArgAsIArgs: {
                        LLVMValueRef arg = LLVMGetParam (ctx->lmethod, ctx->pindexes [i]);
 
@@ -2097,6 +2154,9 @@ emit_entry_bb (EmitContext *ctx, LLVMBuilderRef builder)
                        LLVMBuildStore (ctx->builder, arg, convert (ctx, ctx->addresses [reg], LLVMPointerType (LLVMTypeOf (arg), 0)));
                        break;
                }
+               case LLVMArgVtypeAsScalar:
+                       g_assert_not_reached ();
+                       break;
                default:
                        ctx->values [reg] = convert_full (ctx, ctx->values [reg], llvm_type_to_stack_type (cfg, type_to_llvm_type (ctx, sig->params [i])), type_is_unsigned (ctx, sig->params [i]));
                        break;
@@ -2108,10 +2168,10 @@ emit_entry_bb (EmitContext *ctx, LLVMBuilderRef builder)
        if (sig->hasthis)
                emit_volatile_store (ctx, cfg->args [0]->dreg);
        for (i = 0; i < sig->param_count; ++i)
-               if (!mini_type_is_vtype (cfg, sig->params [i]))
+               if (!mini_type_is_vtype (sig->params [i]))
                        emit_volatile_store (ctx, cfg->args [i + sig->hasthis]->dreg);
 
-       if (sig->hasthis && !cfg->rgctx_var && cfg->generic_sharing_context) {
+       if (sig->hasthis && !cfg->rgctx_var && cfg->gshared) {
                LLVMValueRef this_alloc;
 
                /*
@@ -2195,14 +2255,6 @@ emit_entry_bb (EmitContext *ctx, LLVMBuilderRef builder)
        ;
 }
 
-/* Have to export this for AOT */
-void
-mono_personality (void)
-{
-       /* Not used */
-       g_assert_not_reached ();
-}
-
 static void
 process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref, MonoInst *ins)
 {
@@ -2233,7 +2285,7 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref,
        if (call->imt_arg_reg)
                cinfo->imt_arg = TRUE;
 
-       vretaddr = cinfo && cinfo->ret.storage == LLVMArgVtypeRetAddr;
+       vretaddr = cinfo && (cinfo->ret.storage == LLVMArgVtypeRetAddr || cinfo->ret.storage == LLVMArgVtypeByRef);
 
        llvm_sig = sig_to_llvm_sig_full (ctx, sig, cinfo, &sinfo);
        CHECK_FAILURE (ctx);
@@ -2378,12 +2430,14 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref,
                args [sinfo.imt_arg_pindex] = convert (ctx, values [call->imt_arg_reg], ctx->lmodule->ptr_type);
 #endif
        }
-
        if (vretaddr) {
                if (!addresses [call->inst.dreg])
                        addresses [call->inst.dreg] = build_alloca (ctx, sig->ret);
                g_assert (sinfo.vret_arg_pindex < nargs);
-               args [sinfo.vret_arg_pindex] = LLVMBuildPtrToInt (builder, addresses [call->inst.dreg], IntPtrType (), "");
+               if (cinfo && cinfo->ret.storage == LLVMArgVtypeByRef)
+                       args [sinfo.vret_arg_pindex] = addresses [call->inst.dreg];
+               else
+                       args [sinfo.vret_arg_pindex] = LLVMBuildPtrToInt (builder, addresses [call->inst.dreg], IntPtrType (), "");
        }
 
        for (i = 0; i < sig->param_count + sig->hasthis; ++i) {
@@ -2420,10 +2474,17 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref,
                        g_assert (addresses [reg]);
                        args [pindex] = addresses [reg];
                        break;
+               case LLVMArgVtypeByRef:
+                       g_assert (addresses [reg]);
+                       args [pindex] = addresses [reg];
+                       break;
                case LLVMArgAsIArgs:
                        g_assert (addresses [reg]);
                        args [pindex] = LLVMBuildLoad (ctx->builder, convert (ctx, addresses [reg], LLVMPointerType (LLVMArrayType (IntPtrType (), ainfo->nslots), 0)), "");
                        break;
+               case LLVMArgVtypeAsScalar:
+                       g_assert_not_reached ();
+                       break;
                default:
                        g_assert (args [pindex]);
                        if (i == 0 && sig->hasthis)
@@ -2456,6 +2517,8 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref,
        if (!sig->pinvoke)
                LLVMSetInstructionCallConv (lcall, LLVMMono1CallConv);
 
+       if (cinfo && cinfo->ret.storage == LLVMArgVtypeByRef)
+               LLVMAddInstrAttribute (lcall, 1 + sinfo.vret_arg_pindex, LLVMStructRetAttribute);
        if (call->rgctx_arg_reg)
                LLVMAddInstrAttribute (lcall, 1 + sinfo.rgctx_arg_pindex, LLVMInRegAttribute);
        if (call->imt_arg_reg)
@@ -2478,6 +2541,10 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref,
                case LLVMArgVtypeInReg: {
                        LLVMValueRef regs [2];
 
+                       if (LLVMTypeOf (lcall) == LLVMVoidType ())
+                               /* Empty struct */
+                               break;
+
                        if (!addresses [ins->dreg])
                                addresses [ins->dreg] = build_alloca (ctx, sig->ret);
 
@@ -2497,6 +2564,11 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref,
                                addresses [call->inst.dreg] = build_alloca (ctx, sig->ret);
                        LLVMBuildStore (builder, lcall, convert_full (ctx, addresses [call->inst.dreg], LLVMPointerType (LLVMTypeOf (lcall), 0), FALSE));
                        break;
+               case LLVMArgVtypeAsScalar:
+                       if (!addresses [call->inst.dreg])
+                               addresses [call->inst.dreg] = build_alloca (ctx, sig->ret);
+                       LLVMBuildStore (builder, lcall, convert_full (ctx, addresses [call->inst.dreg], LLVMPointerType (LLVMTypeOf (lcall), 0), FALSE));
+                       break;
                default:
                        if (sig->ret->type != MONO_TYPE_VOID && !vretaddr)
                                /* If the method returns an unsigned value, need to zext it */
@@ -2549,7 +2621,7 @@ emit_handler_start (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef builder
 
        if (cfg->compile_aot) {
                /* Use a dummy personality function */
-               personality = LLVMGetNamedFunction (module, "mono_aot_personality");
+               personality = LLVMGetNamedFunction (module, "mono_personality");
                g_assert (personality);
        } else {
                personality = LLVMGetNamedFunction (module, "mono_personality");
@@ -2686,11 +2758,6 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
 
        if (bb->flags & BB_EXCEPTION_HANDLER) {
                if (!bblocks [bb->block_num].invoke_target) {
-                       /*
-                        * LLVM asserts if llvm.eh.selector is called from a bblock which
-                        * doesn't have an invoke pointing at it.
-                        * Update: LLVM no longer asserts, but some tests in exceptions.exe now fail.
-                        */
                        LLVM_FAILURE (ctx, "handler without invokes");
                }
 
@@ -2823,7 +2890,8 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                }
 
                case OP_SETRET:
-                       if (linfo->ret.storage == LLVMArgVtypeInReg) {
+                       switch (linfo->ret.storage) {
+                       case LLVMArgVtypeInReg: {
                                LLVMTypeRef ret_type = LLVMGetReturnType (LLVMGetElementType (LLVMTypeOf (method)));
                                LLVMValueRef part1, retval;
                                int size;
@@ -2842,8 +2910,20 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                                LLVMBuildRet (builder, retval);
                                break;
                        }
+                       case LLVMArgVtypeAsScalar: {
+                               LLVMTypeRef ret_type = LLVMGetReturnType (LLVMGetElementType (LLVMTypeOf (method)));
+                               LLVMValueRef retval;
+                               int size;
+
+                               size = get_vtype_size (sig->ret);
+
+                               g_assert (addresses [ins->sreg1]);
 
-                       if (linfo->ret.storage == LLVMArgVtypeByVal) {
+                               retval = LLVMBuildLoad (builder, LLVMBuildBitCast (builder, addresses [ins->sreg1], LLVMPointerType (ret_type, 0), ""), "");
+                               LLVMBuildRet (builder, retval);
+                               break;
+                       }
+                       case LLVMArgVtypeByVal: {
                                LLVMValueRef retval;
 
                                g_assert (addresses [ins->sreg1]);
@@ -2851,13 +2931,15 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                                LLVMBuildRet (builder, retval);
                                break;
                        }
-
-                       if (linfo->ret.storage == LLVMArgVtypeRetAddr) {
+                       case LLVMArgVtypeByRef: {
                                LLVMBuildRetVoid (builder);
                                break;
                        }
-
-                       if (linfo->ret.storage == LLVMArgFpStruct) {
+                       case LLVMArgVtypeRetAddr: {
+                               LLVMBuildRetVoid (builder);
+                               break;
+                       }
+                       case LLVMArgFpStruct: {
                                LLVMTypeRef ret_type = LLVMGetReturnType (LLVMGetElementType (LLVMTypeOf (method)));
                                LLVMValueRef retval;
 
@@ -2866,20 +2948,23 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                                LLVMBuildRet (builder, retval);
                                break;
                        }
-
-                       if (!lhs || ctx->is_dead [ins->sreg1]) {
-                               /* 
-                                * The method did not set its return value, probably because it
-                                * ends with a throw.
-                                */
-                               if (cfg->vret_addr)
-                                       LLVMBuildRetVoid (builder);
-                               else
-                                       LLVMBuildRet (builder, LLVMConstNull (type_to_llvm_type (ctx, sig->ret)));
-                       } else {
-                               LLVMBuildRet (builder, convert (ctx, lhs, type_to_llvm_type (ctx, sig->ret)));
+                       default: {
+                               if (!lhs || ctx->is_dead [ins->sreg1]) {
+                                       /*
+                                        * The method did not set its return value, probably because it
+                                        * ends with a throw.
+                                        */
+                                       if (cfg->vret_addr)
+                                               LLVMBuildRetVoid (builder);
+                                       else
+                                               LLVMBuildRet (builder, LLVMConstNull (type_to_llvm_type (ctx, sig->ret)));
+                               } else {
+                                       LLVMBuildRet (builder, convert (ctx, lhs, type_to_llvm_type (ctx, sig->ret)));
+                               }
+                               has_terminator = TRUE;
+                               break;
+                       }
                        }
-                       has_terminator = TRUE;
                        break;
                case OP_ICOMPARE:
                case OP_FCOMPARE:
@@ -3449,6 +3534,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                case OP_LCONV_TO_R8:
                        values [ins->dreg] = LLVMBuildSIToFP (builder, lhs, LLVMDoubleType (), dname);
                        break;
+               case OP_ICONV_TO_R_UN:
                case OP_LCONV_TO_R_UN:
                        values [ins->dreg] = LLVMBuildUIToFP (builder, lhs, LLVMDoubleType (), dname);
                        break;
@@ -3729,7 +3815,12 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                case OP_LDADDR: {
                        MonoInst *var = ins->inst_p0;
 
-                       values [ins->dreg] = addresses [var->dreg];
+                       if (var->opcode == OP_VTARG_ADDR) {
+                               /* The variable contains the vtype address */
+                               values [ins->dreg] = values [var->dreg];
+                       } else {
+                               values [ins->dreg] = addresses [var->dreg];
+                       }
                        break;
                }
                case OP_SIN: {
@@ -4059,7 +4150,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                                break;
                        }
 
-                       if (mini_is_gsharedvt_klass (cfg, klass)) {
+                       if (mini_is_gsharedvt_klass (klass)) {
                                // FIXME:
                                LLVM_FAILURE (ctx, "gsharedvt");
                                break;
@@ -5011,6 +5102,10 @@ mono_llvm_emit_method (MonoCompile *cfg)
        if (cfg->vret_addr) {
                values [cfg->vret_addr->dreg] = LLVMGetParam (method, sinfo.vret_arg_pindex);
                LLVMSetValueName (values [cfg->vret_addr->dreg], "vret");
+               if (linfo->ret.storage == LLVMArgVtypeByRef) {
+                       LLVMAddAttribute (LLVMGetParam (method, sinfo.vret_arg_pindex), LLVMStructRetAttribute);
+                       LLVMAddAttribute (LLVMGetParam (method, sinfo.vret_arg_pindex), LLVMNoAliasAttribute);
+               }
        }
        if (sig->hasthis) {
                values [cfg->args [0]->dreg] = LLVMGetParam (method, sinfo.this_arg_pindex);
@@ -5032,6 +5127,11 @@ mono_llvm_emit_method (MonoCompile *cfg)
                g_free (name);
                if (linfo->args [i + sig->hasthis].storage == LLVMArgVtypeByVal)
                        LLVMAddAttribute (LLVMGetParam (method, sinfo.pindexes [i]), LLVMByValAttribute);
+
+               if (linfo->args [i + sig->hasthis].storage == LLVMArgVtypeByRef) {
+                       /* For OP_LDADDR */
+                       cfg->args [i + sig->hasthis]->opcode = OP_VTARG_ADDR;
+               }
        }
        g_free (names);
 
@@ -5359,7 +5459,9 @@ mono_llvm_emit_call (MonoCompile *cfg, MonoCallInst *call)
                        break;
                }
                case LLVMArgVtypeByVal:
+               case LLVMArgVtypeByRef:
                case LLVMArgVtypeInReg:
+               case LLVMArgVtypeAsScalar:
                case LLVMArgAsIArgs:
                case LLVMArgAsFpArgs:
                        MONO_INST_NEW (cfg, ins, OP_LLVM_OUTARG_VT);
@@ -5431,10 +5533,11 @@ exception_cb (void *data)
        /* Count nested clauses */
        nested_len = 0;
        for (i = 0; i < ei_len; ++i) {
-               for (j = 0; j < ei_len; ++j) {
-                       gint32 cindex1 = *(gint32*)type_info [i];
-                       MonoExceptionClause *clause1 = &cfg->header->clauses [cindex1];
-                       gint32 cindex2 = *(gint32*)type_info [j];
+               gint32 cindex1 = *(gint32*)type_info [i];
+               MonoExceptionClause *clause1 = &cfg->header->clauses [cindex1];
+
+               for (j = 0; j < cfg->header->num_clauses; ++j) {
+                       int cindex2 = j;
                        MonoExceptionClause *clause2 = &cfg->header->clauses [cindex2];
 
                        if (cindex1 != cindex2 && clause1->try_offset >= clause2->try_offset && clause1->handler_offset <= clause2->handler_offset) {
@@ -5464,19 +5567,25 @@ exception_cb (void *data)
         */
        nindex = ei_len;
        for (i = 0; i < ei_len; ++i) {
-               for (j = 0; j < ei_len; ++j) {
-                       gint32 cindex1 = *(gint32*)type_info [i];
-                       MonoExceptionClause *clause1 = &cfg->header->clauses [cindex1];
-                       gint32 cindex2 = *(gint32*)type_info [j];
+               gint32 cindex1 = *(gint32*)type_info [i];
+               MonoExceptionClause *clause1 = &cfg->header->clauses [cindex1];
+
+               for (j = 0; j < cfg->header->num_clauses; ++j) {
+                       int cindex2 = j;
                        MonoExceptionClause *clause2 = &cfg->header->clauses [cindex2];
+                       MonoJitExceptionInfo *nesting_ei, *nested_ei;
 
                        if (cindex1 != cindex2 && clause1->try_offset >= clause2->try_offset && clause1->handler_offset <= clause2->handler_offset) {
-                               memcpy (&cfg->llvm_ex_info [nindex], &cfg->llvm_ex_info [j], sizeof (MonoJitExceptionInfo));
-                               cfg->llvm_ex_info [nindex].try_start = cfg->llvm_ex_info [i].try_start;
-                               cfg->llvm_ex_info [nindex].try_end = cfg->llvm_ex_info [i].try_end;
-                               cfg->llvm_ex_info [nindex].handler_start = cfg->llvm_ex_info [i].handler_start;
-                               cfg->llvm_ex_info [nindex].exvar_offset = cfg->llvm_ex_info [i].exvar_offset;
+                               /* clause1 is the nested clause */
+                               nested_ei = &cfg->llvm_ex_info [i];
+                               nesting_ei = &cfg->llvm_ex_info [nindex];
                                nindex ++;
+
+                               memcpy (nesting_ei, nested_ei, sizeof (MonoJitExceptionInfo));
+
+                               nesting_ei->flags = clause2->flags;
+                               nesting_ei->data.catch_class = clause2->data.catch_class;
+                               nesting_ei->clause_index = cindex2;
                        }
                }
        }
@@ -5865,25 +5974,31 @@ mono_llvm_free_domain_info (MonoDomain *domain)
 }
 
 void
-mono_llvm_create_aot_module (const char *got_symbol, gboolean external_symbols, gboolean emit_dwarf)
+mono_llvm_create_aot_module (MonoAssembly *assembly, const char *global_prefix, gboolean emit_dwarf, gboolean static_link)
 {
-       /* Delete previous module */
-       if (aot_module.plt_entries)
-               g_hash_table_destroy (aot_module.plt_entries);
-       if (aot_module.module)
-               LLVMDisposeModule (aot_module.module);
+       MonoLLVMModule *lmodule = &aot_module;
 
-       memset (&aot_module, 0, sizeof (aot_module));
-
-       aot_module.module = LLVMModuleCreateWithName ("aot");
-       aot_module.got_symbol = got_symbol;
-       aot_module.external_symbols = external_symbols;
-       aot_module.emit_dwarf = emit_dwarf;
+       /* Delete previous module */
+       if (lmodule->plt_entries)
+               g_hash_table_destroy (lmodule->plt_entries);
+       if (lmodule->module)
+               LLVMDisposeModule (lmodule->module);
+
+       memset (lmodule, 0, sizeof (aot_module));
+
+       lmodule->module = LLVMModuleCreateWithName ("aot");
+       lmodule->assembly = assembly;
+       lmodule->global_prefix = g_strdup (global_prefix);
+       lmodule->got_symbol = g_strdup_printf ("%s_llvm_got", global_prefix);
+       lmodule->eh_frame_symbol = g_strdup_printf ("%s_eh_frame", global_prefix);
+       lmodule->external_symbols = TRUE;
+       lmodule->emit_dwarf = emit_dwarf;
+       lmodule->static_link = static_link;
        /* The first few entries are reserved */
-       aot_module.max_got_offset = 16;
+       lmodule->max_got_offset = 16;
 
-       add_intrinsics (aot_module.module);
-       add_types (&aot_module);
+       add_intrinsics (lmodule->module);
+       add_types (lmodule);
 
        /* Add GOT */
        /*
@@ -5893,31 +6008,229 @@ mono_llvm_create_aot_module (const char *got_symbol, gboolean external_symbols,
         * its size is known in mono_llvm_emit_aot_module ().
         */
        {
-               LLVMTypeRef got_type = LLVMArrayType (aot_module.ptr_type, 0);
+               LLVMTypeRef got_type = LLVMArrayType (lmodule->ptr_type, 0);
 
-               aot_module.got_var = LLVMAddGlobal (aot_module.module, got_type, "mono_dummy_got");
-               LLVMSetInitializer (aot_module.got_var, LLVMConstNull (got_type));
+               aot_module.got_var = LLVMAddGlobal (lmodule->module, got_type, "mono_dummy_got");
+               LLVMSetInitializer (lmodule->got_var, LLVMConstNull (got_type));
        }
 
-       /* Add a dummy personality function */
-       {
-               LLVMBasicBlockRef lbb;
-               LLVMBuilderRef lbuilder;
-               LLVMValueRef personality;
-
-               personality = LLVMAddFunction (aot_module.module, "mono_aot_personality", LLVMFunctionType (LLVMVoidType (), NULL, 0, FALSE));
-               LLVMSetLinkage (personality, LLVMInternalLinkage);
-               lbb = LLVMAppendBasicBlock (personality, "BB0");
-               lbuilder = LLVMCreateBuilder ();
-               LLVMPositionBuilderAtEnd (lbuilder, lbb);
-               LLVMBuildRetVoid (lbuilder);
-               mark_as_used (&aot_module, personality);
+       lmodule->llvm_types = g_hash_table_new (NULL, NULL);
+       lmodule->plt_entries = g_hash_table_new (g_str_hash, g_str_equal);
+       lmodule->plt_entries_ji = g_hash_table_new (NULL, NULL);
+       lmodule->method_to_lmethod = g_hash_table_new (NULL, NULL);
+}
+
+static LLVMValueRef
+llvm_array_from_uints (LLVMTypeRef el_type, guint32 *values, int nvalues)
+{
+       int i;
+       LLVMValueRef res, *vals;
+
+       vals = g_new0 (LLVMValueRef, nvalues);
+       for (i = 0; i < nvalues; ++i)
+               vals [i] = LLVMConstInt (LLVMInt32Type (), values [i], FALSE);
+       res = LLVMConstArray (LLVMInt32Type (), vals, nvalues);
+       g_free (vals);
+       return res;
+}
+
+/*
+ * mono_llvm_emit_aot_file_info:
+ *
+ *   Emit the MonoAotFileInfo structure.
+ * Same as emit_aot_file_info () in aot-compiler.c.
+ */
+void
+mono_llvm_emit_aot_file_info (MonoAotFileInfo *info, gboolean has_jitted_code)
+{
+       MonoLLVMModule *lmodule = &aot_module;
+
+       /* Save these for later */
+       memcpy (&lmodule->aot_info, info, sizeof (MonoAotFileInfo));
+       lmodule->has_jitted_code = has_jitted_code;
+}
+
+/*
+ * mono_llvm_emit_aot_data:
+ *
+ *   Emit the binary data DATA pointed to by symbol SYMBOL.
+ */
+void
+mono_llvm_emit_aot_data (const char *symbol, guint8 *data, int data_len)
+{
+       MonoLLVMModule *lmodule = &aot_module;
+       LLVMTypeRef type;
+       LLVMValueRef d;
+
+       type = LLVMArrayType (LLVMInt8Type (), data_len);
+       d = LLVMAddGlobal (lmodule->module, type, symbol);
+       LLVMSetVisibility (d, LLVMHiddenVisibility);
+       LLVMSetLinkage (d, LLVMInternalLinkage);
+       LLVMSetInitializer (d, mono_llvm_create_constant_data_array (data, data_len));
+       mono_llvm_set_is_constant (d);
+}
+
+/* Add a reference to a global defined in JITted code */
+static LLVMValueRef
+AddJitGlobal (MonoLLVMModule *lmodule, LLVMTypeRef type, const char *name)
+{
+       char *s;
+       LLVMValueRef v;
+
+       s = g_strdup_printf ("%s%s", lmodule->global_prefix, name);
+       v = LLVMAddGlobal (lmodule->module, LLVMInt8Type (), s);
+       g_free (s);
+       return v;
+}
+
+static void
+emit_aot_file_info (MonoLLVMModule *lmodule)
+{
+       LLVMTypeRef file_info_type;
+       LLVMTypeRef *eltypes, eltype;
+       LLVMValueRef info_var;
+       LLVMValueRef *fields;
+       int i, nfields, tindex;
+       MonoAotFileInfo *info;
+
+       info = &lmodule->aot_info;
+
+       /* Create an LLVM type to represent MonoAotFileInfo */
+       nfields = 50;
+       eltypes = g_new (LLVMTypeRef, nfields);
+       tindex = 0;
+       eltypes [tindex ++] = LLVMInt32Type ();
+       eltypes [tindex ++] = LLVMInt32Type ();
+       /* Symbols */
+       for (i = 0; i < MONO_AOT_FILE_INFO_NUM_SYMBOLS; ++i)
+               eltypes [tindex ++] = LLVMPointerType (LLVMInt8Type (), 0);
+       /* Scalars */
+       for (i = 0; i < 13; ++i)
+               eltypes [tindex ++] = LLVMInt32Type ();
+       /* Arrays */
+       for (i = 0; i < 4; ++i)
+               eltypes [tindex ++] = LLVMArrayType (LLVMInt32Type (), MONO_AOT_TRAMP_NUM);
+       g_assert (tindex == nfields);
+       file_info_type = LLVMStructCreateNamed (LLVMGetGlobalContext (), "MonoAotFileInfo");
+       LLVMStructSetBody (file_info_type, eltypes, nfields, FALSE);
+
+       info_var = LLVMAddGlobal (lmodule->module, file_info_type, "mono_aot_file_info");
+       if (lmodule->static_link) {
+               LLVMSetVisibility (info_var, LLVMHiddenVisibility);
+               LLVMSetLinkage (info_var, LLVMInternalLinkage);
        }
+       fields = g_new (LLVMValueRef, nfields);
+       tindex = 0;
+       fields [tindex ++] = LLVMConstInt (LLVMInt32Type (), info->version, FALSE);
+       fields [tindex ++] = LLVMConstInt (LLVMInt32Type (), info->dummy, FALSE);
 
-       aot_module.llvm_types = g_hash_table_new (NULL, NULL);
-       aot_module.plt_entries = g_hash_table_new (g_str_hash, g_str_equal);
-       aot_module.plt_entries_ji = g_hash_table_new (NULL, NULL);
-       aot_module.method_to_lmethod = g_hash_table_new (NULL, NULL);
+       /* Symbols */
+       /*
+        * We use LLVMGetNamedGlobal () for symbol which are defined in LLVM code, and LLVMAddGlobal ()
+        * for symbols defined in the .s file emitted by the aot compiler.
+        */
+       eltype = eltypes [tindex];
+       fields [tindex ++] = AddJitGlobal (lmodule, eltype, "jit_got");
+       fields [tindex ++] = lmodule->got_var;
+       /* llc defines this directly */
+       fields [tindex ++] = LLVMAddGlobal (lmodule->module, eltype, lmodule->eh_frame_symbol);
+       if (TRUE || lmodule->has_jitted_code) {
+               fields [tindex ++] = AddJitGlobal (lmodule, eltype, "jit_code_start");
+               fields [tindex ++] = AddJitGlobal (lmodule, eltype, "jit_code_end");
+               fields [tindex ++] = AddJitGlobal (lmodule, eltype, "method_addresses");
+       } else {
+               fields [tindex ++] = LLVMConstNull (eltype);
+               fields [tindex ++] = LLVMConstNull (eltype);
+               fields [tindex ++] = LLVMConstNull (eltype);
+       }
+       fields [tindex ++] = LLVMGetNamedGlobal (lmodule->module, "blob");
+       fields [tindex ++] = LLVMGetNamedGlobal (lmodule->module, "class_name_table");
+       fields [tindex ++] = LLVMGetNamedGlobal (lmodule->module, "class_info_offsets");
+       fields [tindex ++] = LLVMGetNamedGlobal (lmodule->module, "method_info_offsets");
+       fields [tindex ++] = LLVMGetNamedGlobal (lmodule->module, "ex_info_offsets");
+       fields [tindex ++] = LLVMGetNamedGlobal (lmodule->module, "extra_method_info_offsets");
+       fields [tindex ++] = LLVMGetNamedGlobal (lmodule->module, "extra_method_table");
+       fields [tindex ++] = LLVMGetNamedGlobal (lmodule->module, "got_info_offsets");
+       fields [tindex ++] = LLVMGetNamedGlobal (lmodule->module, "llvm_got_info_offsets");
+       /* Not needed (mem_end) */
+       fields [tindex ++] = LLVMConstNull (eltype);
+       fields [tindex ++] = LLVMGetNamedGlobal (lmodule->module, "image_table");
+       fields [tindex ++] = LLVMGetNamedGlobal (lmodule->module, "assembly_guid");
+       fields [tindex ++] = LLVMGetNamedGlobal (lmodule->module, "runtime_version");
+       if (info->trampoline_size [0]) {
+               fields [tindex ++] = AddJitGlobal (lmodule, eltype, "specific_trampolines");
+               fields [tindex ++] = AddJitGlobal (lmodule, eltype, "static_rgctx_trampolines");
+               fields [tindex ++] = AddJitGlobal (lmodule, eltype, "imt_thunks");
+               fields [tindex ++] = AddJitGlobal (lmodule, eltype, "gsharedvt_arg_trampolines");
+       } else {
+               fields [tindex ++] = LLVMConstNull (eltype);
+               fields [tindex ++] = LLVMConstNull (eltype);
+               fields [tindex ++] = LLVMConstNull (eltype);
+               fields [tindex ++] = LLVMConstNull (eltype);
+       }
+       if (lmodule->static_link)
+               fields [tindex ++] = AddJitGlobal (lmodule, eltype, "globals");
+       else
+               fields [tindex ++] = LLVMConstNull (eltype);
+       fields [tindex ++] = LLVMGetNamedGlobal (lmodule->module, "assembly_name");
+       if (TRUE || lmodule->has_jitted_code) {
+               fields [tindex ++] = AddJitGlobal (lmodule, eltype, "plt");
+               fields [tindex ++] = AddJitGlobal (lmodule, eltype, "plt_end");
+               fields [tindex ++] = AddJitGlobal (lmodule, eltype, "unwind_info");
+               fields [tindex ++] = AddJitGlobal (lmodule, eltype, "unbox_trampolines");
+               fields [tindex ++] = AddJitGlobal (lmodule, eltype, "unbox_trampolines_end");
+               fields [tindex ++] = AddJitGlobal (lmodule, eltype, "unbox_trampoline_addresses");
+       } else {
+               fields [tindex ++] = LLVMConstNull (eltype);
+               fields [tindex ++] = LLVMConstNull (eltype);
+               fields [tindex ++] = LLVMConstNull (eltype);
+               fields [tindex ++] = LLVMConstNull (eltype);
+               fields [tindex ++] = LLVMConstNull (eltype);
+               fields [tindex ++] = LLVMConstNull (eltype);
+       }
+
+       for (i = 0; i < MONO_AOT_FILE_INFO_NUM_SYMBOLS; ++i)
+               fields [2 + i] = LLVMConstBitCast (fields [2 + i], eltype);
+
+       /* Scalars */
+       fields [tindex ++] = LLVMConstInt (LLVMInt32Type (), info->plt_got_offset_base, FALSE);
+       fields [tindex ++] = LLVMConstInt (LLVMInt32Type (), info->got_size, FALSE);
+       fields [tindex ++] = LLVMConstInt (LLVMInt32Type (), info->plt_size, FALSE);
+       fields [tindex ++] = LLVMConstInt (LLVMInt32Type (), info->nmethods, FALSE);
+       fields [tindex ++] = LLVMConstInt (LLVMInt32Type (), info->flags, FALSE);
+       fields [tindex ++] = LLVMConstInt (LLVMInt32Type (), info->opts, FALSE);
+       fields [tindex ++] = LLVMConstInt (LLVMInt32Type (), info->simd_opts, FALSE);
+       fields [tindex ++] = LLVMConstInt (LLVMInt32Type (), info->gc_name_index, FALSE);
+       fields [tindex ++] = LLVMConstInt (LLVMInt32Type (), info->num_rgctx_fetch_trampolines, FALSE);
+       fields [tindex ++] = LLVMConstInt (LLVMInt32Type (), info->double_align, FALSE);
+       fields [tindex ++] = LLVMConstInt (LLVMInt32Type (), info->long_align, FALSE);
+       fields [tindex ++] = LLVMConstInt (LLVMInt32Type (), info->generic_tramp_num, FALSE);
+       fields [tindex ++] = LLVMConstInt (LLVMInt32Type (), info->tramp_page_size, FALSE);
+       /* Arrays */
+       fields [tindex ++] = llvm_array_from_uints (LLVMInt32Type (), info->num_trampolines, MONO_AOT_TRAMP_NUM);
+       fields [tindex ++] = llvm_array_from_uints (LLVMInt32Type (), info->trampoline_got_offset_base, MONO_AOT_TRAMP_NUM);
+       fields [tindex ++] = llvm_array_from_uints (LLVMInt32Type (), info->trampoline_size, MONO_AOT_TRAMP_NUM);
+       fields [tindex ++] = llvm_array_from_uints (LLVMInt32Type (), info->tramp_page_code_offsets, MONO_AOT_TRAMP_NUM);
+       g_assert (tindex == nfields);
+
+       LLVMSetInitializer (info_var, LLVMConstNamedStruct (file_info_type, fields, nfields));
+
+       if (lmodule->static_link) {
+               char *s, *p;
+               LLVMValueRef var;
+
+               s = g_strdup_printf ("mono_aot_module_%s_info", lmodule->assembly->aname.name);
+               /* Get rid of characters which cannot occur in symbols */
+               p = s;
+               for (p = s; *p; ++p) {
+                       if (!(isalnum (*p) || *p == '_'))
+                               *p = '_';
+               }
+               var = LLVMAddGlobal (lmodule->module, LLVMPointerType (LLVMInt8Type (), 0), s);
+               g_free (s);
+               LLVMSetInitializer (var, LLVMConstBitCast (LLVMGetNamedGlobal (lmodule->module, "mono_aot_file_info"), LLVMPointerType (LLVMInt8Type (), 0)));
+               LLVMSetLinkage (var, LLVMExternalLinkage);
+       }
 }
 
 /*
@@ -5949,9 +6262,11 @@ mono_llvm_emit_aot_module (const char *filename, const char *cu_name)
 
        /* Delete the dummy got so it doesn't become a global */
        LLVMDeleteGlobal (aot_module.got_var);
+       aot_module.got_var = real_got;
 
        emit_llvm_used (&aot_module);
        emit_dbg_info (&aot_module, filename, cu_name);
+       emit_aot_file_info (&aot_module);
 
        /* Replace PLT entries for directly callable methods with the methods themselves */
        {
index bbcb6ac0f2ef6eac7e3f1d1a9dd17fe84cfd42eb..362fa3a14bac36bfaf82a57b24611e83821e706b 100644 (file)
@@ -497,7 +497,7 @@ emit_memcpy (guint8 *code, int size, int dreg, int doffset, int sreg, int soffse
  * Returns the size of the activation frame.
  */
 int
-mono_arch_get_argument_info (MonoGenericSharingContext *gsctx, MonoMethodSignature *csig, int param_count, MonoJitArgumentInfo *arg_info)
+mono_arch_get_argument_info (MonoMethodSignature *csig, int param_count, MonoJitArgumentInfo *arg_info)
 {
        int k, frame_size = 0;
        guint32 size, align, pad;
@@ -518,7 +518,7 @@ mono_arch_get_argument_info (MonoGenericSharingContext *gsctx, MonoMethodSignatu
        arg_info [0].size = frame_size;
 
        for (k = 0; k < param_count; k++) {
-               size = mini_type_stack_size_full (NULL, csig->params [k], &align, csig->pinvoke);
+               size = mini_type_stack_size_full (csig->params [k], &align, csig->pinvoke);
 
                /* ignore alignment for now */
                align = 1;
@@ -544,7 +544,7 @@ mono_arch_get_argument_info (MonoGenericSharingContext *gsctx, MonoMethodSignatu
 #define MAX_ARCH_DELEGATE_PARAMS (4 - 1)
 
 static gpointer
-get_delegate_invoke_impl (gboolean has_target, gboolean param_count, guint32 *code_size)
+get_delegate_invoke_impl (MonoTrampInfo **info, gboolean has_target, gboolean param_count)
 {
        guint8 *code, *start;
 
@@ -579,8 +579,13 @@ get_delegate_invoke_impl (gboolean has_target, gboolean param_count, guint32 *co
                mono_arch_flush_icache (start, size);
        }
 
-       if (code_size)
-               *code_size = code - start;
+       if (has_target) {
+               *info = mono_tramp_info_create ("delegate_invoke_impl_has_target", start, code - start, NULL, NULL);
+       } else {
+               char *name = g_strdup_printf ("delegate_invoke_impl_target_%d", param_count);
+               *info = mono_tramp_info_create (name, start, code - start, NULL, NULL);
+               g_free (name);
+       }
 
        return start;
 }
@@ -595,19 +600,15 @@ GSList*
 mono_arch_get_delegate_invoke_impls (void)
 {
        GSList *res = NULL;
-       guint8 *code;
-       guint32 code_len;
+       MonoTrampInfo *info;
        int i;
-       char *tramp_name;
 
-       code = get_delegate_invoke_impl (TRUE, 0, &code_len);
-       res = g_slist_prepend (res, mono_tramp_info_create ("delegate_invoke_impl_has_target", code, code_len, NULL, NULL));
+       get_delegate_invoke_impl (&info, TRUE, 0);
+       res = g_slist_prepend (res, info);
 
        for (i = 0; i <= MAX_ARCH_DELEGATE_PARAMS; ++i) {
-               code = get_delegate_invoke_impl (FALSE, i, &code_len);
-               tramp_name = g_strdup_printf ("delegate_invoke_impl_target_%d", i);
-               res = g_slist_prepend (res, mono_tramp_info_create (tramp_name, code, code_len, NULL, NULL));
-               g_free (tramp_name);
+               get_delegate_invoke_impl (&info, FALSE, i);
+               res = g_slist_prepend (res, info);
        }
 
        return res;
@@ -630,10 +631,13 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
                        return cached;
                }
 
-               if (mono_aot_only)
+               if (mono_aot_only) {
                        start = mono_aot_get_trampoline ("delegate_invoke_impl_has_target");
-               else
-                       start = get_delegate_invoke_impl (TRUE, 0, NULL);
+               } else {
+                       MonoTrampInfo *info;
+                       start = get_delegate_invoke_impl (&info, TRUE, 0);
+                       mono_tramp_info_register (info, NULL);
+               }
                cached = start;
                mono_mini_arch_unlock ();
                return cached;
@@ -659,7 +663,9 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
                        start = mono_aot_get_trampoline (name);
                        g_free (name);
                } else {
-                       start = get_delegate_invoke_impl (FALSE, sig->param_count, NULL);
+                       MonoTrampInfo *info;
+                       start = get_delegate_invoke_impl (&info, FALSE, sig->param_count);
+                       mono_tramp_info_register (info, NULL);
                }
                cache [sig->param_count] = start;
                mono_mini_arch_unlock ();
@@ -1054,7 +1060,7 @@ add_float64_arg (CallInfo *info, ArgInfo *ainfo) {
 #endif
 
 static CallInfo*
-get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSignature *sig)
+get_call_info (MonoMemPool *mp, MonoMethodSignature *sig)
 {
        guint i;
        int n = sig->hasthis + sig->param_count;
@@ -1096,7 +1102,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
         * are sometimes made using calli without sig->hasthis set, like in the delegate
         * invoke wrappers.
         */
-       if (cinfo->vtype_retaddr && !is_pinvoke && (sig->hasthis || (sig->param_count > 0 && MONO_TYPE_IS_REFERENCE (mini_type_get_underlying_type (gsctx, sig->params [0]))))) {
+       if (cinfo->vtype_retaddr && !is_pinvoke && (sig->hasthis || (sig->param_count > 0 && MONO_TYPE_IS_REFERENCE (mini_get_underlying_type (sig->params [0]))))) {
                if (sig->hasthis) {
                        add_int32_arg (cinfo, cinfo->args + n);
                        n ++;
@@ -1131,7 +1137,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
                        add_int32_arg (cinfo, &cinfo->sig_cookie);
                }
                DEBUG(printf("param %d: ", i));
-               simpletype = mini_type_get_underlying_type (gsctx, sig->params [i]);
+               simpletype = mini_get_underlying_type (sig->params [i]);
                switch (simpletype->type) {
                case MONO_TYPE_BOOLEAN:
                case MONO_TYPE_I1:
@@ -1278,7 +1284,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
        }
 
        {
-               simpletype = mini_type_get_underlying_type (gsctx, sig->ret);
+               simpletype = mini_get_underlying_type (sig->ret);
                switch (simpletype->type) {
                case MONO_TYPE_BOOLEAN:
                case MONO_TYPE_I1:
@@ -1362,7 +1368,7 @@ mono_arch_compute_omit_fp (MonoCompile *cfg)
        sig = mono_method_signature (cfg->method);
 
        if (!cfg->arch.cinfo)
-               cfg->arch.cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+               cfg->arch.cinfo = get_call_info (cfg->mempool, sig);
        cinfo = cfg->arch.cinfo;
 
        /*
@@ -1427,7 +1433,7 @@ mono_arch_allocate_vars (MonoCompile *cfg)
        sig = mono_method_signature (cfg->method);
 
        if (!cfg->arch.cinfo)
-               cfg->arch.cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+               cfg->arch.cinfo = get_call_info (cfg->mempool, sig);
        cinfo = cfg->arch.cinfo;
 
        mono_arch_compute_omit_fp (cfg);
@@ -1470,7 +1476,7 @@ mono_arch_allocate_vars (MonoCompile *cfg)
        curinst = 0;
        if (!MONO_TYPE_ISSTRUCT (sig->ret)) {
                /* FIXME: handle long and FP values */
-               switch (mini_type_get_underlying_type (cfg->generic_sharing_context, sig->ret)->type) {
+               switch (mini_get_underlying_type (sig->ret)->type) {
                case MONO_TYPE_VOID:
                        break;
                case MONO_TYPE_R4:
@@ -1705,7 +1711,7 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
        sig = call->signature;
        n = sig->param_count + sig->hasthis;
        
-       cinfo = get_call_info (NULL, cfg->mempool, sig);
+       cinfo = get_call_info (cfg->mempool, sig);
        if (cinfo->struct_ret)
                call->used_iregs |= 1 << cinfo->struct_ret;
 
@@ -1717,7 +1723,7 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
                        t = sig->params [i - sig->hasthis];
                else
                        t = &mono_defaults.int_class->byval_arg;
-               t = mini_type_get_underlying_type (cfg->generic_sharing_context, t);
+               t = mini_get_underlying_type (t);
 
                if ((sig->call_convention == MONO_CALL_VARARG) && (i == sig->sentinelpos)) {
                        /* Emit the signature cookie just before the implicit arguments */
@@ -1935,7 +1941,7 @@ mono_arch_emit_outarg_vt (MonoCompile *cfg, MonoInst *ins, MonoInst *src)
                        size = mono_type_native_stack_size (&src->klass->byval_arg, NULL);
                        vtcopy->backend.is_pinvoke = 1;
                } else {
-                       size = mini_type_stack_size (cfg->generic_sharing_context, &src->klass->byval_arg, NULL);
+                       size = mini_type_stack_size (&src->klass->byval_arg, NULL);
                }
                if (size > 0)
                        g_assert (ovf_size > 0);
@@ -1953,8 +1959,7 @@ mono_arch_emit_outarg_vt (MonoCompile *cfg, MonoInst *ins, MonoInst *src)
 void
 mono_arch_emit_setret (MonoCompile *cfg, MonoMethod *method, MonoInst *val)
 {
-       MonoType *ret = mini_type_get_underlying_type (cfg->generic_sharing_context,
-                       mono_method_signature (method)->ret);
+       MonoType *ret = mini_get_underlying_type (mono_method_signature (method)->ret);
 
        if (!ret->byref) {
 #if (SIZEOF_REGISTER == 4)
@@ -3210,7 +3215,7 @@ emit_load_volatile_arguments(MonoCompile *cfg, guint8 *code)
        sig = mono_method_signature (method);
 
        if (!cfg->arch.cinfo)
-               cfg->arch.cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+               cfg->arch.cinfo = get_call_info (cfg->mempool, sig);
        cinfo = cfg->arch.cinfo;
 
        if (cinfo->struct_ret) {
@@ -5101,7 +5106,7 @@ mono_arch_emit_prolog (MonoCompile *cfg)
        pos = 0;
 
        if (!cfg->arch.cinfo)
-               cfg->arch.cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+               cfg->arch.cinfo = get_call_info (cfg->mempool, sig);
        cinfo = cfg->arch.cinfo;
 
        if (MONO_TYPE_ISSTRUCT (sig->ret)) {
@@ -5340,7 +5345,7 @@ mono_arch_instrument_epilog_full (MonoCompile *cfg, void *func, void *p, gboolea
        int save_mode = SAVE_NONE;
        int offset;
        MonoMethod *method = cfg->method;
-       int rtype = mini_type_get_underlying_type (cfg->generic_sharing_context, mono_method_signature (method)->ret)->type;
+       int rtype = mini_get_underlying_type (mono_method_signature (method)->ret)->type;
        int save_offset = MIPS_STACK_PARAM_OFFSET;
 
        g_assert ((save_offset & (MIPS_STACK_ALIGNMENT-1)) == 0);
@@ -5814,13 +5819,13 @@ mono_arch_emit_this_vret_args (MonoCompile *cfg, MonoCallInst *inst, int this_re
 
        /* add the this argument */
        if (this_reg != -1) {
-               MonoInst *this;
-               MONO_INST_NEW (cfg, this, OP_MOVE);
-               this->type = this_type;
-               this->sreg1 = this_reg;
-               this->dreg = mono_alloc_ireg (cfg);
-               mono_bblock_add_inst (cfg->cbb, this);
-               mono_call_inst_add_outarg_reg (cfg, inst, this->dreg, this_dreg, FALSE);
+               MonoInst *this_ins;
+               MONO_INST_NEW (cfg, this_ins, OP_MOVE);
+               this_ins->type = this_type;
+               this_ins->sreg1 = this_reg;
+               this_ins->dreg = mono_alloc_ireg (cfg);
+               mono_bblock_add_inst (cfg->cbb, this_ins);
+               mono_call_inst_add_outarg_reg (cfg, inst, this_ins->dreg, this_dreg, FALSE);
        }
 
        if (vt_reg != -1) {
@@ -6005,6 +6010,9 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
                mono_stats.imt_thunks_size += code - start;
        g_assert (code - start <= size);
        mono_arch_flush_icache (start, size);
+
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, NULL), domain);
+
        return start;
 }
 
index b2a08666096f48f91f8b6b5fa65898484be9caaa..cba97096e0e0b7cbc70d1ac41480441b85d4d20a 100644 (file)
@@ -1076,10 +1076,7 @@ MINI_OP(OP_GC_PARAM_SLOT_LIVENESS_DEF, "gc_param_slot_liveness_def", NONE, NONE,
 MINI_OP(OP_GENERIC_CLASS_INIT, "generic_class_init", NONE, IREG, NONE)
 
 /* Arch specific opcodes */
-/* #if defined(__native_client_codegen__) || defined(__native_client__) */
-/* We have to define these in terms of the TARGET defines, not NaCl defines */
-/* because genmdesc.pl doesn't have multiple defines per platform.          */
-#if defined(TARGET_AMD64) || defined(TARGET_X86)
+#if defined(TARGET_AMD64) || defined(TARGET_X86) || defined(TARGET_ARM)
 MINI_OP(OP_GC_SAFE_POINT,     "gc_safe_point", NONE, IREG, NONE)
 #endif
 
index cfb8461d4e3d16e30ff12c51f3f60a385cc0b781..fe5cc782f833f26e4d965be3e4667654fc703f5d 100644 (file)
@@ -68,7 +68,7 @@
 
 #include "jit-icalls.h"
 
-#if defined(__native_client__)
+#if defined(__native_client__) || defined(HOST_WATCHOS)
 
 void
 mono_runtime_setup_stat_profiler (void)
@@ -89,9 +89,17 @@ MONO_SIG_HANDLER_SIGNATURE (mono_chain_signal)
        return FALSE;
 }
 
+#ifndef PLATFORM_MACOSX
 void
 mono_runtime_install_handlers (void)
 {
+}
+#endif
+
+void
+mono_runtime_posix_install_handlers(void)
+{
+
 }
 
 void
@@ -104,6 +112,7 @@ mono_runtime_cleanup_handlers (void)
 {
 }
 
+#if !defined(PLATFORM_MACOSX)
 pid_t
 mono_runtime_syscall_fork (void)
 {
@@ -115,6 +124,7 @@ void
 mono_gdb_render_native_backtraces (pid_t crashed_pid)
 {
 }
+#endif
 
 #else
 
@@ -201,7 +211,7 @@ MONO_SIG_HANDLER_FUNC (static, sigabrt_signal_handler)
        MONO_SIG_HANDLER_GET_CONTEXT;
 
        if (mono_thread_internal_current ())
-               ji = mono_jit_info_table_find (mono_domain_get (), mono_arch_ip_from_context (ctx));
+               ji = mono_jit_info_table_find_internal (mono_domain_get (), mono_arch_ip_from_context (ctx), TRUE, TRUE);
        if (!ji) {
         if (mono_chain_signal (MONO_SIG_HANDLER_PARAMS))
                        return;
@@ -389,7 +399,7 @@ add_signal_handler (int signo, gpointer handler)
 #ifdef MONO_ARCH_SIGSEGV_ON_ALTSTACK
 
 /*Apple likes to deliver SIGBUS for *0 */
-#ifdef __APPLE__
+#ifdef PLATFORM_MACOSX
        if (signo == SIGSEGV || signo == SIGBUS) {
 #else
        if (signo == SIGSEGV) {
@@ -628,7 +638,7 @@ mono_runtime_setup_stat_profiler (void)
 #endif
 }
 
-#if !defined(__APPLE__)
+#if !defined(PLATFORM_MACOSX)
 pid_t
 mono_runtime_syscall_fork ()
 {
index 0cf56a986d5a435a545d2b028bc0c927c6d35f30..06528bdee781394e7fa004661f2266914fe453fe 100644 (file)
@@ -275,7 +275,7 @@ emit_memcpy (guint8 *code, int size, int dreg, int doffset, int sreg, int soffse
  * Returns the size of the activation frame.
  */
 int
-mono_arch_get_argument_info (MonoGenericSharingContext *gsctx, MonoMethodSignature *csig, int param_count, MonoJitArgumentInfo *arg_info)
+mono_arch_get_argument_info (MonoMethodSignature *csig, int param_count, MonoJitArgumentInfo *arg_info)
 {
 #ifdef __mono_ppc64__
        NOT_IMPLEMENTED;
@@ -304,7 +304,7 @@ mono_arch_get_argument_info (MonoGenericSharingContext *gsctx, MonoMethodSignatu
                if (csig->pinvoke)
                        size = mono_type_native_stack_size (csig->params [k], (guint32*)&align);
                else
-                       size = mini_type_stack_size (NULL, csig->params [k], &align);
+                       size = mini_type_stack_size (csig->params [k], &align);
 
                /* ignore alignment for now */
                align = 1;
@@ -380,7 +380,7 @@ mono_ppc_is_direct_call_sequence (guint32 *code)
 #define MAX_ARCH_DELEGATE_PARAMS 7
 
 static gpointer
-get_delegate_invoke_impl (gboolean has_target, guint32 param_count, guint32 *code_len, gboolean aot)
+get_delegate_invoke_impl (MonoTrampInfo **info, gboolean has_target, guint32 param_count, gboolean aot)
 {
        guint8 *code, *start;
 
@@ -430,8 +430,13 @@ get_delegate_invoke_impl (gboolean has_target, guint32 param_count, guint32 *cod
                mono_arch_flush_icache (start, size);
        }
 
-       if (code_len)
-               *code_len = code - start;
+       if (has_target) {
+               *info = mono_tramp_info_create ("delegate_invoke_impl_has_target", start, code - start, NULL, NULL);
+       } else {
+               char *name = g_strdup_printf ("delegate_invoke_impl_target_%d", param_count);
+               *info = mono_tramp_info_create (name, start, code - start, NULL, NULL);
+               g_free (name);
+       }
 
        return start;
 }
@@ -440,19 +445,15 @@ GSList*
 mono_arch_get_delegate_invoke_impls (void)
 {
        GSList *res = NULL;
-       guint8 *code;
-       guint32 code_len;
+       MonoTrampInfo *info;
        int i;
-       char *tramp_name;
 
-       code = get_delegate_invoke_impl (TRUE, 0, &code_len, TRUE);
-       res = g_slist_prepend (res, mono_tramp_info_create ("delegate_invoke_impl_has_target", code, code_len, NULL, NULL));
+       get_delegate_invoke_impl (&info, TRUE, 0, TRUE);
+       res = g_slist_prepend (res, info);
 
-       for (i = 0; i < MAX_ARCH_DELEGATE_PARAMS; ++i) {
-               code = get_delegate_invoke_impl (FALSE, i, &code_len, TRUE);
-               tramp_name = g_strdup_printf ("delegate_invoke_impl_target_%d", i);
-               res = g_slist_prepend (res, mono_tramp_info_create (tramp_name, code, code_len, NULL, NULL));
-               g_free (tramp_name);
+       for (i = 0; i <= MAX_ARCH_DELEGATE_PARAMS; ++i) {
+               get_delegate_invoke_impl (&info, FALSE, i, TRUE);
+               res = g_slist_prepend (res, info);
        }
 
        return res;
@@ -473,11 +474,13 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
                if (cached)
                        return cached;
 
-               if (mono_aot_only)
+               if (mono_aot_only) {
                        start = mono_aot_get_trampoline ("delegate_invoke_impl_has_target");
-               else
-                       start = get_delegate_invoke_impl (TRUE, 0, NULL, FALSE);
-
+               } else {
+                       MonoTrampInfo *info;
+                       start = get_delegate_invoke_impl (&info, TRUE, 0, FALSE);
+                       mono_tramp_info_register (info, NULL);
+               }
                mono_memory_barrier ();
 
                cached = start;
@@ -501,7 +504,9 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
                        start = mono_aot_get_trampoline (name);
                        g_free (name);
                } else {
-                       start = get_delegate_invoke_impl (FALSE, sig->param_count, NULL, FALSE);
+                       MonoTrampInfo *info;
+                       start = get_delegate_invoke_impl (&info, FALSE, sig->param_count, FALSE);
+                       mono_tramp_info_register (info, NULL);
                }
 
                mono_memory_barrier ();
@@ -676,7 +681,7 @@ static gboolean
 is_regsize_var (MonoType *t) {
        if (t->byref)
                return TRUE;
-       t = mini_type_get_underlying_type (NULL, t);
+       t = mini_get_underlying_type (t);
        switch (t->type) {
        case MONO_TYPE_I4:
        case MONO_TYPE_U4:
@@ -957,7 +962,7 @@ has_only_a_r48_field (MonoClass *klass)
 #endif
 
 static CallInfo*
-get_call_info (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig)
+get_call_info (MonoMethodSignature *sig)
 {
        guint i, fr, gr, pstart;
        int n = sig->hasthis + sig->param_count;
@@ -983,7 +988,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig)
         * are sometimes made using calli without sig->hasthis set, like in the delegate
         * invoke wrappers.
         */
-       if (cinfo->vtype_retaddr && !is_pinvoke && (sig->hasthis || (sig->param_count > 0 && MONO_TYPE_IS_REFERENCE (mini_type_get_underlying_type (gsctx, sig->params [0]))))) {
+       if (cinfo->vtype_retaddr && !is_pinvoke && (sig->hasthis || (sig->param_count > 0 && MONO_TYPE_IS_REFERENCE (mini_get_underlying_type (sig->params [0]))))) {
                if (sig->hasthis) {
                        add_general (&gr, &stack_size, cinfo->args + 0, TRUE);
                        n ++;
@@ -1025,7 +1030,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig)
                        n++;
                        continue;
                }
-               simpletype = mini_type_get_underlying_type (NULL, sig->params [i]);
+               simpletype = mini_get_underlying_type (sig->params [i]);
                switch (simpletype->type) {
                case MONO_TYPE_BOOLEAN:
                case MONO_TYPE_I1:
@@ -1206,7 +1211,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig)
        }
 
        {
-               simpletype = mini_type_get_underlying_type (NULL, sig->ret);
+               simpletype = mini_get_underlying_type (sig->ret);
                switch (simpletype->type) {
                case MONO_TYPE_BOOLEAN:
                case MONO_TYPE_I1:
@@ -1267,8 +1272,8 @@ mono_arch_tail_call_supported (MonoCompile *cfg, MonoMethodSignature *caller_sig
        gboolean res;
        int i;
 
-       c1 = get_call_info (NULL, caller_sig);
-       c2 = get_call_info (NULL, callee_sig);
+       c1 = get_call_info (caller_sig);
+       c2 = get_call_info (callee_sig);
        res = c1->stack_usage >= c2->stack_usage;
        if (callee_sig->ret && MONO_TYPE_ISSTRUCT (callee_sig->ret))
                /* An address on the callee's stack is passed as the first argument */
@@ -1349,7 +1354,7 @@ mono_arch_allocate_vars (MonoCompile *m)
                m->ret->inst_c0 = m->ret->dreg = ppc_r3;
        } else {
                /* FIXME: handle long values? */
-               switch (mini_type_get_underlying_type (m->generic_sharing_context, sig->ret)->type) {
+               switch (mini_get_underlying_type (m, sig->ret)->type) {
                case MONO_TYPE_VOID:
                        break;
                case MONO_TYPE_R4:
@@ -1486,7 +1491,7 @@ mono_arch_allocate_vars (MonoCompile *m)
        m->stack_offset = offset;
 
        if (sig->call_convention == MONO_CALL_VARARG) {
-               CallInfo *cinfo = get_call_info (m->generic_sharing_context, m->method->signature);
+               CallInfo *cinfo = get_call_info (m->method->signature);
 
                m->sig_cookie = cinfo->sig_cookie.offset;
 
@@ -1532,7 +1537,7 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
        sig = call->signature;
        n = sig->param_count + sig->hasthis;
        
-       cinfo = get_call_info (cfg->generic_sharing_context, sig);
+       cinfo = get_call_info (sig);
 
        for (i = 0; i < n; ++i) {
                ArgInfo *ainfo = cinfo->args + i;
@@ -1542,7 +1547,7 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
                        t = sig->params [i - sig->hasthis];
                else
                        t = &mono_defaults.int_class->byval_arg;
-               t = mini_type_get_underlying_type (cfg->generic_sharing_context, t);
+               t = mini_get_underlying_type (t);
 
                if (!sig->pinvoke && (sig->call_convention == MONO_CALL_VARARG) && (i == sig->sentinelpos))
                        emit_sig_cookie (cfg, call, cinfo);
@@ -1728,7 +1733,7 @@ mono_arch_emit_outarg_vt (MonoCompile *cfg, MonoInst *ins, MonoInst *src)
                        size = mono_type_native_stack_size (&src->klass->byval_arg, NULL);
                        vtcopy->backend.is_pinvoke = 1;
                } else {
-                       size = mini_type_stack_size (cfg->generic_sharing_context, &src->klass->byval_arg, NULL);
+                       size = mini_type_stack_size (&src->klass->byval_arg, NULL);
                }
                if (size > 0)
                        g_assert (ovf_size > 0);
@@ -1746,8 +1751,7 @@ mono_arch_emit_outarg_vt (MonoCompile *cfg, MonoInst *ins, MonoInst *src)
 void
 mono_arch_emit_setret (MonoCompile *cfg, MonoMethod *method, MonoInst *val)
 {
-       MonoType *ret = mini_type_get_underlying_type (cfg->generic_sharing_context,
-                       mono_method_signature (method)->ret);
+       MonoType *ret = mini_get_underlying_type (mono_method_signature (method)->ret);
 
        if (!ret->byref) {
 #ifndef __mono_ppc64__
@@ -1810,8 +1814,7 @@ mono_arch_instrument_epilog_full (MonoCompile *cfg, void *func, void *p, gboolea
        int save_mode = SAVE_NONE;
        int offset;
        MonoMethod *method = cfg->method;
-       int rtype = mini_type_get_underlying_type (cfg->generic_sharing_context,
-                       mono_method_signature (method)->ret)->type;
+       int rtype = mini_get_underlying_type (mono_method_signature (method)->ret)->type;
        int save_offset = PPC_STACK_PARAM_OFFSET + cfg->param_area;
        save_offset += 15;
        save_offset &= ~15;
@@ -2147,11 +2150,8 @@ mono_arch_decompose_opts (MonoCompile *cfg, MonoInst *ins)
 {
        switch (ins->opcode) {
        case OP_ICONV_TO_R_UN: {
-#if G_BYTE_ORDER == G_BIG_ENDIAN
+               // This value is OK as-is for both big and little endian because of how it is stored
                static const guint64 adjust_val = 0x4330000000000000ULL;
-#else
-               static const guint64 adjust_val = 0x0000000000003043ULL;
-#endif
                int msw_reg = mono_alloc_ireg (cfg);
                int adj_reg = mono_alloc_freg (cfg);
                int tmp_reg = mono_alloc_freg (cfg);
@@ -2162,8 +2162,14 @@ mono_arch_decompose_opts (MonoCompile *cfg, MonoInst *ins)
                        basereg = mono_alloc_ireg (cfg);
                        MONO_EMIT_NEW_BIALU_IMM (cfg, OP_IADD_IMM, basereg, cfg->frame_reg, offset);
                }
+#if G_BYTE_ORDER == G_BIG_ENDIAN
                MONO_EMIT_NEW_STORE_MEMBASE (cfg, OP_STOREI4_MEMBASE_REG, basereg, offset, msw_reg);
                MONO_EMIT_NEW_STORE_MEMBASE (cfg, OP_STOREI4_MEMBASE_REG, basereg, offset + 4, ins->sreg1);
+#else
+               // For little endian the words are reversed
+               MONO_EMIT_NEW_STORE_MEMBASE (cfg, OP_STOREI4_MEMBASE_REG, basereg, offset + 4, msw_reg);
+               MONO_EMIT_NEW_STORE_MEMBASE (cfg, OP_STOREI4_MEMBASE_REG, basereg, offset, ins->sreg1);
+#endif
                MONO_EMIT_NEW_LOAD_R8 (cfg, adj_reg, &adjust_val);
                MONO_EMIT_NEW_LOAD_MEMBASE_OP (cfg, OP_LOADR8_MEMBASE, tmp_reg, basereg, offset);
                MONO_EMIT_NEW_BIALU (cfg, OP_FSUB, ins->dreg, tmp_reg, adj_reg);
@@ -2213,7 +2219,11 @@ mono_arch_decompose_opts (MonoCompile *cfg, MonoInst *ins)
                        MONO_EMIT_NEW_BIALU_IMM (cfg, OP_IADD_IMM, basereg, cfg->frame_reg, offset);
                }
                MONO_EMIT_NEW_STORE_MEMBASE (cfg, OP_STORER8_MEMBASE_REG, basereg, offset, ins->sreg1);
+#if G_BYTE_ORDER == G_BIG_ENDIAN
                MONO_EMIT_NEW_LOAD_MEMBASE_OP (cfg, OP_LOADI4_MEMBASE, msw_reg, basereg, offset);
+#else
+               MONO_EMIT_NEW_LOAD_MEMBASE_OP (cfg, OP_LOADI4_MEMBASE, msw_reg, basereg, offset+4);
+#endif
                MONO_EMIT_NEW_UNALU (cfg, OP_CHECK_FINITE, -1, msw_reg);
                MONO_EMIT_NEW_UNALU (cfg, OP_FMOVE, ins->dreg, ins->sreg1);
                ins->opcode = OP_NOP;
@@ -4410,6 +4420,22 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        else
                                ppc_mr (code, ins->dreg, ins->sreg1);
                        break;
+#else
+               case OP_ICONV_TO_R4:
+               case OP_ICONV_TO_R8: {
+                       if (cpu_hw_caps & PPC_ISA_64) {
+                               ppc_srawi(code, ppc_r0, ins->sreg1, 31);
+                               ppc_stw (code, ppc_r0, -8, ppc_r1);
+                               ppc_stw (code, ins->sreg1, -4, ppc_r1);
+                               ppc_lfd (code, ins->dreg, -8, ppc_r1);
+                               ppc_fcfid (code, ins->dreg, ins->dreg);
+                               if (ins->opcode == OP_ICONV_TO_R4)
+                                       ppc_frsp (code, ins->dreg, ins->dreg);
+                               }
+                       break;
+               }
+#endif
+
                case OP_ATOMIC_ADD_I4:
                CASE_PPC64 (OP_ATOMIC_ADD_I8) {
                        int location = ins->inst_basereg;
@@ -4443,21 +4469,6 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        ppc_mr (code, ins->dreg, ppc_r0);
                        break;
                }
-#else
-               case OP_ICONV_TO_R4:
-               case OP_ICONV_TO_R8: {
-                       if (cpu_hw_caps & PPC_ISA_64) {
-                               ppc_srawi(code, ppc_r0, ins->sreg1, 31);
-                               ppc_stw (code, ppc_r0, -8, ppc_r1);
-                               ppc_stw (code, ins->sreg1, -4, ppc_r1);
-                               ppc_lfd (code, ins->dreg, -8, ppc_r1);
-                               ppc_fcfid (code, ins->dreg, ins->dreg);
-                               if (ins->opcode == OP_ICONV_TO_R4)
-                                       ppc_frsp (code, ins->dreg, ins->dreg);
-                               }
-                       break;
-               }
-#endif
                case OP_ATOMIC_CAS_I4:
                CASE_PPC64 (OP_ATOMIC_CAS_I8) {
                        int location = ins->sreg1;
@@ -4628,7 +4639,6 @@ mono_arch_patch_code (MonoCompile *cfg, MonoMethod *method, MonoDomain *domain,
 #ifdef PPC_USES_FUNCTION_DESCRIPTOR
                case MONO_PATCH_INFO_INTERNAL_METHOD:
                case MONO_PATCH_INFO_ABS:
-               case MONO_PATCH_INFO_CLASS_INIT:
                case MONO_PATCH_INFO_RGCTX_FETCH:
                case MONO_PATCH_INFO_JIT_ICALL_ADDR:
                        is_fd = TRUE;
@@ -4796,7 +4806,7 @@ mono_arch_emit_prolog (MonoCompile *cfg)
        /* load arguments allocated to register from the stack */
        pos = 0;
 
-       cinfo = get_call_info (cfg->generic_sharing_context, sig);
+       cinfo = get_call_info (sig);
 
        if (MONO_TYPE_ISSTRUCT (sig->ret)) {
                ArgInfo *ainfo = &cinfo->ret;
@@ -5738,6 +5748,9 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
                mono_stats.imt_thunks_size += code - start;
        g_assert (code - start <= size);
        mono_arch_flush_icache (start, size);
+
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, NULL), domain);
+
        return start;
 }
 
index dc83f788509399e4f201a71dc391d4aa4f971c59..0c611f251a54f7e70eb00d4d4671301c648dfb55 100644 (file)
@@ -145,6 +145,7 @@ typedef struct MonoCompileArch {
 #define PPC_LAST_FPARG_REG ppc_f13
 #define PPC_PASS_STRUCTS_BY_VALUE 1
 #define PPC_THREAD_PTR_REG ppc_r13
+#define MONO_ARCH_HAVE_SIGCTX_TO_MONOCTX 1
 #else
 #define PPC_RET_ADDR_OFFSET 4
 #define PPC_STACK_PARAM_OFFSET 8
index 33a055fd76ee64f856bcbfcf74de199604fea534..ba5d0ab07e0ff4c7b16e77b2021f1f1760e32b2a 100644 (file)
@@ -59,6 +59,7 @@
 #include <mono/utils/dtrace.h>
 #include <mono/utils/mono-signal-handler.h>
 #include <mono/utils/mono-threads.h>
+#include <mono/utils/checked-build.h>
 #include <mono/io-layer/io-layer.h>
 
 #include "mini.h"
@@ -155,7 +156,7 @@ get_method_from_ip (void *ip)
        if (!domain)
                domain = mono_get_root_domain ();
 
-       ji = mono_jit_info_table_find (domain, ip);
+       ji = mono_jit_info_table_find_internal (domain, ip, TRUE, TRUE);
        if (!ji) {
                user_data.ip = ip;
                user_data.method = NULL;
@@ -170,7 +171,11 @@ get_method_from_ip (void *ip)
                }
                else
                        return NULL;
+       } else if (ji->is_trampoline) {
+               res = g_strdup_printf ("<%p - %s trampoline>", ip, ((MonoTrampInfo*)ji->d.tramp_info)->name);
+               return res;
        }
+
        method = mono_method_full_name (jinfo_get_method (ji), TRUE);
        /* FIXME: unused ? */
        location = mono_debug_lookup_source_location (jinfo_get_method (ji), (guint32)((guint8*)ip - (guint8*)ji->code_start), domain);
@@ -260,7 +265,7 @@ mono_print_method_from_ip (void *ip)
        gsctx = mono_jit_info_get_generic_sharing_context (ji);
        shared_type = "";
        if (gsctx) {
-               if (gsctx->var_is_vt || gsctx->mvar_is_vt)
+               if (gsctx->is_gsharedvt)
                        shared_type = "gsharedvt ";
                else
                        shared_type = "gshared ";
@@ -286,7 +291,7 @@ gboolean mono_method_same_domain (MonoJitInfo *caller, MonoJitInfo *callee)
 {
        MonoMethod *cmethod;
 
-       if (!caller || !callee)
+       if (!caller || caller->is_trampoline || !callee || callee->is_trampoline)
                return FALSE;
 
        /*
@@ -460,14 +465,10 @@ mono_tramp_info_create (const char *name, guint8 *code, guint32 code_size, MonoJ
 void
 mono_tramp_info_free (MonoTrampInfo *info)
 {
-       GSList *l;
-
        g_free (info->name);
 
        // FIXME: ji
-       for (l = info->unwind_ops; l; l = l->next)
-               g_free (l->data);
-       g_slist_free (info->unwind_ops);
+       mono_free_unwind_info (info->unwind_ops);
        g_free (info);
 }
 
@@ -480,7 +481,8 @@ register_trampoline_jit_info (MonoDomain *domain, MonoTrampInfo *info)
        mono_jit_info_init (ji, NULL, info->code, info->code_size, 0, 0, 0);
        ji->d.tramp_info = info;
        ji->is_trampoline = TRUE;
-       // FIXME: Unwind info
+
+       ji->unwind_info = mono_cache_unwind_info (info->uw_info, info->uw_info_len);
 
        mono_jit_info_table_add (domain, ji);
 }
@@ -493,26 +495,38 @@ register_trampoline_jit_info (MonoDomain *domain, MonoTrampInfo *info)
  * Frees INFO.
  */
 void
-mono_tramp_info_register (MonoTrampInfo *info)
+mono_tramp_info_register (MonoTrampInfo *info, MonoDomain *domain)
 {
        MonoTrampInfo *copy;
 
        if (!info)
                return;
 
+       if (!domain)
+               domain = mono_get_root_domain ();
+
        copy = g_new0 (MonoTrampInfo, 1);
        copy->code = info->code;
        copy->code_size = info->code_size;
        copy->name = g_strdup (info->name);
 
+       if (info->unwind_ops) {
+               copy->uw_info = mono_unwind_ops_encode (info->unwind_ops, &copy->uw_info_len);
+       } else {
+               /* Trampolines from aot have the unwind ops already encoded */
+               copy->uw_info = info->uw_info;
+               copy->uw_info_len = info->uw_info_len;
+       }
+
        mono_jit_lock ();
        tramp_infos = g_slist_prepend (tramp_infos, copy);
        mono_jit_unlock ();
 
        mono_save_trampoline_xdebug_info (info);
 
-       if (mono_get_root_domain ())
-               register_trampoline_jit_info (mono_get_root_domain (), copy);
+       /* Only register trampolines that have unwind infos */
+       if (mono_get_root_domain () && copy->uw_info)
+               register_trampoline_jit_info (domain, copy);
 
        if (mono_jit_map_is_enabled ())
                mono_emit_jit_tramp (info->code, info->code_size, info->name);
@@ -588,28 +602,14 @@ mono_icall_get_wrapper_full (MonoJitICallInfo* callinfo, gboolean do_compile)
        MonoMethod *wrapper;
        gconstpointer trampoline;
        MonoDomain *domain = mono_get_root_domain ();
-       gboolean check_exc = check_for_pending_exc;
+       gboolean check_exc = TRUE;
 
-       if (callinfo->wrapper) {
+       if (callinfo->wrapper)
                return callinfo->wrapper;
-       }
 
        if (callinfo->trampoline)
                return callinfo->trampoline;
 
-       /*
-        * We use the lock on the root domain instead of the JIT lock to protect
-        * callinfo->trampoline, since we do a lot of stuff inside the critical section.
-        */
-       mono_loader_lock (); /*FIXME mono_compile_method requires the loader lock, by large.*/
-       mono_domain_lock (domain);
-
-       if (callinfo->trampoline) {
-               mono_domain_unlock (domain);
-               mono_loader_unlock ();
-               return callinfo->trampoline;
-       }
-
        if (!strcmp (callinfo->name, "mono_thread_interruption_checkpoint"))
                /* This icall is used to check for exceptions, so don't check in the wrapper */
                check_exc = FALSE;
@@ -622,11 +622,12 @@ mono_icall_get_wrapper_full (MonoJitICallInfo* callinfo, gboolean do_compile)
                trampoline = mono_compile_method (wrapper);
        else
                trampoline = mono_create_ftnptr (domain, mono_create_jit_trampoline_in_domain (domain, wrapper));
-       mono_register_jit_icall_wrapper (callinfo, trampoline);
-
-       callinfo->trampoline = trampoline;
 
-       mono_domain_unlock (domain);
+       mono_loader_lock ();
+       if (!callinfo->trampoline) {
+               mono_register_jit_icall_wrapper (callinfo, trampoline);
+               callinfo->trampoline = trampoline;
+       }
        mono_loader_unlock ();
 
        return callinfo->trampoline;
@@ -653,7 +654,9 @@ mono_dynamic_code_hash_lookup (MonoDomain *domain, MonoMethod *method)
 static void
 register_opcode_emulation (int opcode, const char *name, const char *sigstr, gpointer func, const char *symbol, gboolean no_throw)
 {
-       return mini_register_opcode_emulation (opcode, name, sigstr, func, symbol, no_throw);
+#ifndef DISABLE_JIT
+       mini_register_opcode_emulation (opcode, name, sigstr, func, symbol, no_throw);
+#endif
 }
 
 /*
@@ -1030,6 +1033,7 @@ int
 mini_get_tls_offset (MonoTlsKey key)
 {
        int offset;
+       g_assert (MONO_ARCH_HAVE_TLS_GET);
 
        switch (key) {
        case TLS_KEY_THREAD:
@@ -1173,7 +1177,6 @@ mono_patch_info_hash (gconstpointer data)
        case MONO_PATCH_INFO_CLASS:
        case MONO_PATCH_INFO_IID:
        case MONO_PATCH_INFO_ADJUSTED_IID:
-       case MONO_PATCH_INFO_CLASS_INIT:
        case MONO_PATCH_INFO_METHODCONST:
        case MONO_PATCH_INFO_METHOD:
        case MONO_PATCH_INFO_METHOD_JUMP:
@@ -1199,9 +1202,6 @@ mono_patch_info_hash (gconstpointer data)
        case MONO_PATCH_INFO_GC_CARD_TABLE_ADDR:
        case MONO_PATCH_INFO_GC_NURSERY_START:
        case MONO_PATCH_INFO_JIT_TLS_ID:
-       case MONO_PATCH_INFO_MONITOR_ENTER:
-       case MONO_PATCH_INFO_MONITOR_ENTER_V4:
-       case MONO_PATCH_INFO_MONITOR_EXIT:
        case MONO_PATCH_INFO_GOT_OFFSET:
        case MONO_PATCH_INFO_GC_SAFE_POINT_FLAG:
                return (ji->type << 8);
@@ -1458,13 +1458,6 @@ mono_resolve_patch_target (MonoMethod *method, MonoDomain *domain, guint8 *code,
                target = mono_class_vtable (domain, patch_info->data.klass);
                g_assert (target);
                break;
-       case MONO_PATCH_INFO_CLASS_INIT: {
-               MonoVTable *vtable = mono_class_vtable (domain, patch_info->data.klass);
-
-               g_assert (vtable);
-               target = mono_create_class_init_trampoline (vtable);
-               break;
-       }
        case MONO_PATCH_INFO_DELEGATE_TRAMPOLINE: {
                MonoDelegateClassMethodPair *del_tramp = patch_info->data.del_tramp;
 
@@ -1591,75 +1584,11 @@ mono_resolve_patch_target (MonoMethod *method, MonoDomain *domain, guint8 *code,
        case MONO_PATCH_INFO_NONE:
                break;
        case MONO_PATCH_INFO_RGCTX_FETCH: {
-               MonoJumpInfoRgctxEntry *entry = patch_info->data.rgctx_entry;
-               guint32 slot = -1;
-
-               switch (entry->data->type) {
-               case MONO_PATCH_INFO_CLASS:
-                       slot = mono_method_lookup_or_register_info (entry->method, entry->in_mrgctx, &entry->data->data.klass->byval_arg, entry->info_type, mono_method_get_context (entry->method));
-                       break;
-               case MONO_PATCH_INFO_METHOD:
-               case MONO_PATCH_INFO_METHODCONST:
-                       slot = mono_method_lookup_or_register_info (entry->method, entry->in_mrgctx, entry->data->data.method, entry->info_type, mono_method_get_context (entry->method));
-                       break;
-               case MONO_PATCH_INFO_FIELD:
-                       slot = mono_method_lookup_or_register_info (entry->method, entry->in_mrgctx, entry->data->data.field, entry->info_type, mono_method_get_context (entry->method));
-                       break;
-               case MONO_PATCH_INFO_SIGNATURE:
-                       slot = mono_method_lookup_or_register_info (entry->method, entry->in_mrgctx, entry->data->data.sig, entry->info_type, mono_method_get_context (entry->method));
-                       break;
-               case MONO_PATCH_INFO_GSHAREDVT_CALL: {
-                       MonoJumpInfoGSharedVtCall *call_info = g_malloc0 (sizeof (MonoJumpInfoGSharedVtCall)); //mono_domain_alloc0 (domain, sizeof (MonoJumpInfoGSharedVtCall));
-
-                       memcpy (call_info, entry->data->data.gsharedvt, sizeof (MonoJumpInfoGSharedVtCall));
-                       slot = mono_method_lookup_or_register_info (entry->method, entry->in_mrgctx, call_info, entry->info_type, mono_method_get_context (entry->method));
-                       break;
-               }
-               case MONO_PATCH_INFO_GSHAREDVT_METHOD: {
-                       MonoGSharedVtMethodInfo *info;
-                       MonoGSharedVtMethodInfo *oinfo = entry->data->data.gsharedvt_method;
-                       int i;
-
-                       /* Make a copy into the domain mempool */
-                       info = g_malloc0 (sizeof (MonoGSharedVtMethodInfo)); //mono_domain_alloc0 (domain, sizeof (MonoGSharedVtMethodInfo));
-                       info->method = oinfo->method;
-                       info->num_entries = oinfo->num_entries;
-                       info->entries = g_malloc0 (sizeof (MonoRuntimeGenericContextInfoTemplate) * info->num_entries);
-                       for (i = 0; i < oinfo->num_entries; ++i) {
-                               MonoRuntimeGenericContextInfoTemplate *otemplate = &oinfo->entries [i];
-                               MonoRuntimeGenericContextInfoTemplate *template = &info->entries [i];
-
-                               memcpy (template, otemplate, sizeof (MonoRuntimeGenericContextInfoTemplate));
-                       }
-                       slot = mono_method_lookup_or_register_info (entry->method, entry->in_mrgctx, info, entry->info_type, mono_method_get_context (entry->method));
-                       break;
-               }
-               case MONO_PATCH_INFO_VIRT_METHOD: {
-                       MonoJumpInfoVirtMethod *info;
-                       MonoJumpInfoVirtMethod *oinfo = entry->data->data.virt_method;
-
-                       info = g_malloc0 (sizeof (MonoJumpInfoVirtMethod));
-                       memcpy (info, oinfo, sizeof (MonoJumpInfoVirtMethod));
-                       slot = mono_method_lookup_or_register_info (entry->method, entry->in_mrgctx, info, entry->info_type, mono_method_get_context (entry->method));
-                       break;
-               }
-               default:
-                       g_assert_not_reached ();
-                       break;
-               }
+               int slot = mini_get_rgctx_entry_slot (patch_info->data.rgctx_entry);
 
                target = mono_create_rgctx_lazy_fetch_trampoline (slot);
                break;
        }
-       case MONO_PATCH_INFO_MONITOR_ENTER:
-               target = mono_create_monitor_enter_trampoline ();
-               break;
-       case MONO_PATCH_INFO_MONITOR_ENTER_V4:
-               target = mono_create_monitor_enter_v4_trampoline ();
-               break;
-       case MONO_PATCH_INFO_MONITOR_EXIT:
-               target = mono_create_monitor_exit_trampoline ();
-               break;
 #ifdef MONO_ARCH_SOFT_DEBUG_SUPPORTED
        case MONO_PATCH_INFO_SEQ_POINT_INFO:
                if (!run_cctors)
@@ -1741,34 +1670,21 @@ mini_init_gsctx (MonoDomain *domain, MonoMemPool *mp, MonoGenericContext *contex
 
        if (context && context->class_inst) {
                inst = context->class_inst;
-               if (domain)
-                       gsctx->var_is_vt = mono_domain_alloc0 (domain, sizeof (gboolean) * inst->type_argc);
-               else if (mp)
-                       gsctx->var_is_vt = mono_mempool_alloc0 (mp, sizeof (gboolean) * inst->type_argc);
-               else
-                       gsctx->var_is_vt = g_new0 (gboolean, inst->type_argc);
-
                for (i = 0; i < inst->type_argc; ++i) {
                        MonoType *type = inst->type_argv [i];
 
                        if (mini_is_gsharedvt_gparam (type))
-                               gsctx->var_is_vt [i] = TRUE;
+                               gsctx->is_gsharedvt = TRUE;
                }
        }
        if (context && context->method_inst) {
                inst = context->method_inst;
-               if (domain)
-                       gsctx->mvar_is_vt = mono_domain_alloc0 (domain, sizeof (gboolean) * inst->type_argc);
-               else if (mp)
-                       gsctx->mvar_is_vt = mono_mempool_alloc0 (mp, sizeof (gboolean) * inst->type_argc);
-               else
-                       gsctx->mvar_is_vt = g_new0 (gboolean, inst->type_argc);
 
                for (i = 0; i < inst->type_argc; ++i) {
                        MonoType *type = inst->type_argv [i];
 
                        if (mini_is_gsharedvt_gparam (type))
-                               gsctx->mvar_is_vt [i] = TRUE;
+                               gsctx->is_gsharedvt = TRUE;
                }
        }
 }
@@ -2044,6 +1960,8 @@ mono_jit_free_method (MonoDomain *domain, MonoMethod *method)
        mono_internal_hash_table_remove (&domain->jit_code_hash, method);
        mono_domain_jit_code_hash_unlock (domain);
        g_hash_table_remove (domain_jit_info (domain)->jump_trampoline_hash, method);
+
+       /* requires the domain lock - took above */
        mono_conc_hashtable_remove (domain_jit_info (domain)->runtime_invoke_hash, method);
 
        /* Remove jump targets in this method */
@@ -2242,10 +2160,11 @@ mono_jit_runtime_invoke (MonoMethod *method, void *obj, void **params, MonoObjec
                                        return NULL;
                                } else {
                                        mono_raise_exception (jit_ex);
+                                       /* coverity[unreachable] */
                                }
                        }
 
-                       info->compiled_method = mini_add_method_trampoline (NULL, callee, info->compiled_method, mono_method_needs_static_rgctx_invoke (callee, FALSE), FALSE);
+                       info->compiled_method = mini_add_method_trampoline (callee, info->compiled_method, mono_method_needs_static_rgctx_invoke (callee, TRUE), FALSE);
                } else {
                        info->compiled_method = NULL;
                }
@@ -2326,7 +2245,9 @@ mono_jit_runtime_invoke (MonoMethod *method, void *obj, void **params, MonoObjec
                if (!info->dyn_call_info)
                        info->runtime_invoke = mono_jit_compile_method (invoke);
 
+               mono_domain_lock (domain);
                info2 = mono_conc_hashtable_insert (domain_info->runtime_invoke_hash, method, info);
+               mono_domain_unlock (domain);
                if (info2) {
                        g_free (info);
                        info = info2;
@@ -2407,7 +2328,7 @@ MONO_SIG_HANDLER_FUNC (, mono_sigfpe_signal_handler)
        MONO_SIG_HANDLER_INFO_TYPE *info = MONO_SIG_HANDLER_GET_INFO ();
        MONO_SIG_HANDLER_GET_CONTEXT;
 
-       ji = mono_jit_info_table_find (mono_domain_get (), mono_arch_ip_from_context (ctx));
+       ji = mono_jit_info_table_find_internal (mono_domain_get (), mono_arch_ip_from_context (ctx), TRUE, TRUE);
 
 #if defined(MONO_ARCH_HAVE_IS_INT_OVERFLOW)
        if (mono_arch_is_int_overflow (ctx, info))
@@ -2493,7 +2414,7 @@ MONO_SIG_HANDLER_FUNC (, mono_sigsegv_signal_handler)
        }
 #endif
 
-       ji = mono_jit_info_table_find (mono_domain_get (), mono_arch_ip_from_context (ctx));
+       ji = mono_jit_info_table_find_internal (mono_domain_get (), mono_arch_ip_from_context (ctx), TRUE, TRUE);
 
 #ifdef MONO_ARCH_SIGSEGV_ON_ALTSTACK
        if (mono_handle_soft_stack_ovf (jit_tls, ji, ctx, info, (guint8*)info->si_addr))
@@ -2673,8 +2594,10 @@ mono_get_delegate_virtual_invoke_impl (MonoMethodSignature *sig, MonoMethod *met
        /* FIXME Support more cases */
        if (mono_aot_only) {
                char tramp_name [256];
+               const char *imt = load_imt_reg ? "_imt" : "";
+               int ind = (load_imt_reg ? (-offset) : offset) / SIZEOF_VOID_P;
 
-               sprintf (tramp_name, "delegate_virtual_invoke%s_%d", load_imt_reg ? "_imt" : "", offset / SIZEOF_VOID_P);
+               sprintf (tramp_name, "delegate_virtual_invoke%s_%d", imt, ind);
                cache [idx] = mono_aot_get_trampoline (tramp_name);
                g_assert (cache [idx]);
        } else {
@@ -2741,6 +2664,8 @@ mini_parse_debug_options (void)
                        debug_options.soft_breakpoints = TRUE;
                else if (!strcmp (arg, "check-pinvoke-callconv"))
                        debug_options.check_pinvoke_callconv = TRUE;
+               else if (!strcmp (arg, "arm-use-fallback-tls"))
+                       debug_options.arm_use_fallback_tls = TRUE;
                else if (!strcmp (arg, "debug-domain-unload"))
                        mono_enable_debug_domain_unload (TRUE);
                else if (!strcmp (arg, "partial-sharing"))
@@ -2749,7 +2674,7 @@ mini_parse_debug_options (void)
                        mono_align_small_structs = TRUE;
                else {
                        fprintf (stderr, "Invalid option for the MONO_DEBUG env variable: %s\n", arg);
-                       fprintf (stderr, "Available options: 'handle-sigint', 'keep-delegates', 'reverse-pinvoke-exceptions', 'collect-pagefault-stats', 'break-on-unverified', 'no-gdb-backtrace', 'dont-free-domains', 'suspend-on-sigsegv', 'suspend-on-exception', 'suspend-on-unhandled', 'dyn-runtime-invoke', 'gdb', 'explicit-null-checks', 'init-stacks', 'check-pinvoke-callconv', 'debug-domain-unload', 'partial-sharing', 'align-small-structs'\n");
+                       fprintf (stderr, "Available options: 'handle-sigint', 'keep-delegates', 'reverse-pinvoke-exceptions', 'collect-pagefault-stats', 'break-on-unverified', 'no-gdb-backtrace', 'dont-free-domains', 'suspend-on-sigsegv', 'suspend-on-exception', 'suspend-on-unhandled', 'dyn-runtime-invoke', 'gdb', 'explicit-null-checks', 'init-stacks', 'check-pinvoke-callconv', 'arm-use-fallback-tls', 'debug-domain-unload', 'partial-sharing', 'align-small-structs'\n");
                        exit (1);
                }
        }
@@ -2852,12 +2777,11 @@ mini_create_jit_domain_info (MonoDomain *domain)
 {
        MonoJitDomainInfo *info = g_new0 (MonoJitDomainInfo, 1);
 
-       info->class_init_trampoline_hash = g_hash_table_new (mono_aligned_addr_hash, NULL);
        info->jump_trampoline_hash = g_hash_table_new (mono_aligned_addr_hash, NULL);
        info->jit_trampoline_hash = g_hash_table_new (mono_aligned_addr_hash, NULL);
        info->delegate_trampoline_hash = g_hash_table_new (class_method_pair_hash, class_method_pair_equal);
        info->llvm_vcall_trampoline_hash = g_hash_table_new (mono_aligned_addr_hash, NULL);
-       info->runtime_invoke_hash = mono_conc_hashtable_new_full (&domain->lock, mono_aligned_addr_hash, NULL, NULL, runtime_invoke_info_free);
+       info->runtime_invoke_hash = mono_conc_hashtable_new_full (mono_aligned_addr_hash, NULL, NULL, runtime_invoke_info_free);
        info->seq_points = g_hash_table_new_full (mono_aligned_addr_hash, NULL, NULL, mono_seq_point_info_free);
        info->arch_seq_points = g_hash_table_new (mono_aligned_addr_hash, NULL);
        info->jump_target_hash = g_hash_table_new (NULL, NULL);
@@ -2916,7 +2840,6 @@ mini_free_jit_domain_info (MonoDomain *domain)
        }
        if (info->method_code_hash)
                g_hash_table_destroy (info->method_code_hash);
-       g_hash_table_destroy (info->class_init_trampoline_hash);
        g_hash_table_destroy (info->jump_trampoline_hash);
        g_hash_table_destroy (info->jit_trampoline_hash);
        g_hash_table_destroy (info->delegate_trampoline_hash);
@@ -2984,6 +2907,8 @@ mini_init (const char *filename, const char *runtime_version)
 
        MONO_VES_INIT_BEGIN ();
 
+       CHECKED_MONO_INIT ();
+
 #if defined(__linux__) && !defined(__native_client__)
        if (access ("/proc/self/maps", F_OK) != 0) {
                g_print ("Mono requires /proc to be mounted.\n");
@@ -3037,6 +2962,7 @@ mini_init (const char *filename, const char *runtime_version)
        ticallbacks.setup_async_callback = mono_setup_async_callback;
        ticallbacks.thread_state_init_from_sigctx = mono_thread_state_init_from_sigctx;
        ticallbacks.thread_state_init_from_handle = mono_thread_state_init_from_handle;
+       ticallbacks.thread_state_init = mono_thread_state_init;
 
        mono_counters_init ();
 
@@ -3098,11 +3024,6 @@ mini_init (const char *filename, const char *runtime_version)
 #endif
        mono_threads_install_cleanup (mini_thread_cleanup);
 
-#ifdef MONO_ARCH_HAVE_NOTIFY_PENDING_EXC
-       check_for_pending_exc = FALSE;
-       mono_threads_install_notify_pending_exc ((MonoThreadNotifyPendingExcFunc)mono_arch_notify_pending_exc);
-#endif
-
 #define JIT_TRAMPOLINES_WORK
 #ifdef JIT_TRAMPOLINES_WORK
        mono_install_compile_method (mono_jit_compile_method);
@@ -3297,16 +3218,19 @@ register_icalls (void)
 #endif
 
        register_opcode_emulation (OP_FCONV_TO_U8, "__emul_fconv_to_u8", "ulong double", mono_fconv_u8, "mono_fconv_u8", FALSE);
+       register_opcode_emulation (OP_RCONV_TO_U8, "__emul_rconv_to_u8", "ulong float", mono_rconv_u8, "mono_rconv_u8", FALSE);
        register_opcode_emulation (OP_FCONV_TO_U4, "__emul_fconv_to_u4", "uint32 double", mono_fconv_u4, "mono_fconv_u4", FALSE);
        register_opcode_emulation (OP_FCONV_TO_OVF_I8, "__emul_fconv_to_ovf_i8", "long double", mono_fconv_ovf_i8, "mono_fconv_ovf_i8", FALSE);
        register_opcode_emulation (OP_FCONV_TO_OVF_U8, "__emul_fconv_to_ovf_u8", "ulong double", mono_fconv_ovf_u8, "mono_fconv_ovf_u8", FALSE);
        register_opcode_emulation (OP_RCONV_TO_OVF_I8, "__emul_rconv_to_ovf_i8", "long float", mono_rconv_ovf_i8, "mono_rconv_ovf_i8", FALSE);
        register_opcode_emulation (OP_RCONV_TO_OVF_U8, "__emul_rconv_to_ovf_u8", "ulong float", mono_rconv_ovf_u8, "mono_rconv_ovf_u8", FALSE);
 
+
 #ifdef MONO_ARCH_EMULATE_FCONV_TO_I8
        register_opcode_emulation (OP_FCONV_TO_I8, "__emul_fconv_to_i8", "long double", mono_fconv_i8, "mono_fconv_i8", FALSE);
        register_opcode_emulation (OP_RCONV_TO_I8, "__emul_rconv_to_i8", "long float", mono_rconv_i8, "mono_rconv_i8", FALSE);
 #endif
+
 #ifdef MONO_ARCH_EMULATE_CONV_R8_UN
        register_opcode_emulation (OP_ICONV_TO_R_UN, "__emul_iconv_to_r_un", "double int32", mono_conv_to_r8_un, "mono_conv_to_r8_un", FALSE);
 #endif
@@ -3423,10 +3347,10 @@ register_icalls (void)
        register_icall (mono_object_castclass_with_cache, "mono_object_castclass_with_cache", "object object ptr ptr", FALSE);
        register_icall (mono_object_isinst_with_cache, "mono_object_isinst_with_cache", "object object ptr ptr", FALSE);
        register_icall (mono_generic_class_init, "mono_generic_class_init", "void ptr", FALSE);
+       register_icall (mono_fill_class_rgctx, "mono_class_fill_rgctx", "ptr ptr int", FALSE);
+       register_icall (mono_fill_method_rgctx, "mono_method_fill_rgctx", "ptr ptr int", FALSE);
 
        register_icall (mono_debugger_agent_user_break, "mono_debugger_agent_user_break", "void", FALSE);
-       register_dyn_icall (mono_create_specific_trampoline (NULL, MONO_TRAMPOLINE_GENERIC_CLASS_INIT, mono_get_root_domain (), NULL),
-                                               "specific_trampoline_generic_class_init", "void", TRUE);
 
 #ifdef TARGET_IOS
        register_icall (pthread_getspecific, "pthread_getspecific", "ptr ptr", TRUE);
@@ -3517,6 +3441,7 @@ mini_cleanup (MonoDomain *domain)
 
 #ifndef MONO_CROSS_COMPILE
        mono_domain_free (domain, TRUE);
+       mono_gc_mutex_cleanup ();
 #endif
 
 #ifdef ENABLE_LLVM
@@ -3554,8 +3479,6 @@ mini_cleanup (MonoDomain *domain)
 
        mono_mutex_destroy (&jit_mutex);
 
-       mono_mutex_destroy (&mono_delegate_section);
-
        mono_code_manager_cleanup ();
 
 #ifdef USE_JUMP_TABLES
@@ -3667,6 +3590,17 @@ void mono_precompile_assemblies ()
        g_hash_table_destroy (assemblies);
 }
 
+/*
+ * Used by LLVM.
+ * Have to export this for AOT.
+ */
+void
+mono_personality (void)
+{
+       /* Not used */
+       g_assert_not_reached ();
+}
+
 #ifdef USE_JUMP_TABLES
 #define DEFAULT_JUMPTABLE_CHUNK_ELEMENTS 128
 
index 7e2b103cf4cdce859a8f291a04efef10a5924e81..657ee174d981764341c44fed9e5612b6304fc8df 100644 (file)
@@ -484,7 +484,7 @@ mono_arch_fregname (int reg) {
 /*------------------------------------------------------------------*/
 
 int
-mono_arch_get_argument_info (MonoGenericSharingContext *gsctx, MonoMethodSignature *csig, 
+mono_arch_get_argument_info (MonoMethodSignature *csig, 
                             int param_count, 
                             MonoJitArgumentInfo *arg_info)
 {
@@ -511,7 +511,7 @@ mono_arch_get_argument_info (MonoGenericSharingContext *gsctx, MonoMethodSignatu
                if (csig->pinvoke)
                        size = mono_type_native_stack_size (csig->params [k], (guint32 *) &align);
                else
-                       size = mini_type_stack_size (NULL, csig->params [k], &align);
+                       size = mini_type_stack_size (csig->params [k], &align);
 
                frame_size += pad = (align - (frame_size & (align - 1))) & (align - 1); 
                arg_info [k].pad = pad;
@@ -742,7 +742,7 @@ decodeParm(MonoType *type, void *curParm, int size)
        if (type->byref) {
                printf("[BYREF:%p], ", *((char **) curParm));
        } else {
-               simpleType = mono_type_get_underlying_type(type)->type;
+               simpleType = mini_get_underlying_type(type)->type;
 enum_parmtype:
                switch (simpleType) {
                        case MONO_TYPE_I :
@@ -791,20 +791,20 @@ enum_parmtype:
                        case MONO_TYPE_CLASS :
                        case MONO_TYPE_OBJECT : {
                                MonoObject *obj = *((MonoObject **) curParm);
-                               MonoClass *class;
+                               MonoClass *klass;
                                if ((obj) && (obj->vtable)) {
                                        printf("[CLASS/OBJ:");
-                                       class = obj->vtable->klass;
+                                       klass = obj->vtable->klass;
                                        printf("%p [%p] ",obj,curParm);
-                                       if (class == mono_defaults.string_class) {
+                                       if (klass == mono_defaults.string_class) {
                                                printf("[STRING:%p:%s]", 
                                                       obj, mono_string_to_utf8 ((MonoString *) obj));
-                                       } else if (class == mono_defaults.int32_class) { 
+                                       } else if (klass == mono_defaults.int32_class) { 
                                                printf("[INT32:%p:%d]", 
                                                        obj, *(gint32 *)((char *)obj + sizeof (MonoObject)));
                                        } else
                                                printf("[%s.%s:%p]", 
-                                                      class->name_space, class->name, obj);
+                                                      klass->name_space, klass->name, obj);
                                        printf("], ");
                                } else {
                                        printf("[OBJECT:null], ");
@@ -893,7 +893,7 @@ static void
 enter_method (MonoMethod *method, RegParm *rParm, char *sp)
 {
        int i, oParm = 0, iParm = 0;
-       MonoClass *class;
+       MonoClass *klass;
        MonoObject *obj;
        MonoMethodSignature *sig;
        char *fname;
@@ -923,26 +923,26 @@ enter_method (MonoMethod *method, RegParm *rParm, char *sp)
        }
 
        if (sig->hasthis) {
-               gpointer *this = (gpointer *) rParm->gr[iParm];
-               obj = (MonoObject *) this;
+               gpointer *this_arg = (gpointer *) rParm->gr[iParm];
+               obj = (MonoObject *) this_arg;
                switch(method->klass->this_arg.type) {
                case MONO_TYPE_VALUETYPE:
                        if (obj) {
-                               guint64 *value = (guint64 *) ((uintptr_t)this + sizeof(MonoObject));
-                               printf("this:[value:%p:%016lx], ", this, *value);
+                               guint64 *value = (guint64 *) ((uintptr_t)this_arg + sizeof(MonoObject));
+                               printf("this:[value:%p:%016lx], ", this_arg, *value);
                        } else 
                                printf ("this:[NULL], ");
                        break;
                case MONO_TYPE_STRING:
                        if (obj) {
                                if (obj->vtable) {
-                                       class = obj->vtable->klass;
-                                       if (class == mono_defaults.string_class) {
+                                       klass = obj->vtable->klass;
+                                       if (klass == mono_defaults.string_class) {
                                                printf ("this:[STRING:%p:%s], ", 
                                                        obj, mono_string_to_utf8 ((MonoString *)obj));
                                        } else {
                                                printf ("this:%p[%s.%s], ", 
-                                                       obj, class->name_space, class->name);
+                                                       obj, klass->name_space, klass->name);
                                        }
                                } else 
                                        printf("vtable:[NULL], ");
@@ -950,7 +950,7 @@ enter_method (MonoMethod *method, RegParm *rParm, char *sp)
                                printf ("this:[NULL], ");
                        break;
                default :
-                       printf("this[%s]: %p, ",cvtMonoType(method->klass->this_arg.type),this);
+                       printf("this[%s]: %p, ",cvtMonoType(method->klass->this_arg.type),this_arg);
                }
                oParm++;
        }
@@ -1221,6 +1221,26 @@ handle_enum:
                }
        }
                break;
+       case MONO_TYPE_GENERICINST: {
+               printf("[GENERICINST]\n");
+       }
+               break;
+       case MONO_TYPE_MVAR: {
+               printf("[MVAR]\n");
+       }
+               break;
+       case MONO_TYPE_CMOD_REQD: {
+               printf("[CMOD_REQD]\n");
+       }
+               break;
+       case MONO_TYPE_CMOD_OPT: {
+               printf("[CMOD_OPT]\n");
+       }
+               break;
+       case MONO_TYPE_INTERNAL: {
+               printf("[INTERNAL]\n");
+       }
+               break;
        default:
                printf ("(unknown return type %x)", 
                        mono_method_signature (method)->ret->type);
@@ -1537,7 +1557,6 @@ get_call_info (MonoCompile *cfg, MonoMemPool *mp, MonoMethodSignature *sig)
        gboolean is_pinvoke = sig->pinvoke;
        CallInfo *cinfo;
        size_data *sz;
-       MonoGenericSharingContext *gsctx = cfg ? cfg->generic_sharing_context : NULL;
 
        if (mp)
                cinfo = mono_mempool_alloc0 (mp, sizeof (CallInfo) + sizeof (ArgInfo) * nParm);
@@ -1565,8 +1584,7 @@ get_call_info (MonoCompile *cfg, MonoMemPool *mp, MonoMethodSignature *sig)
        /* area that the callee will use.                           */
        /*----------------------------------------------------------*/
 
-       ret_type = mini_type_get_underlying_type (gsctx, sig->ret);
-       ret_type = mini_get_basic_type_from_generic (gsctx, ret_type);
+       ret_type = mini_get_underlying_type (sig->ret);
        simpleType = ret_type->type;
 enum_retvalue:
        switch (simpleType) {
@@ -1613,7 +1631,7 @@ enum_retvalue:
                                simpleType = mono_class_enum_basetype (klass)->type;
                                goto enum_retvalue;
                        }
-                       size = mini_type_stack_size_full (gsctx, &klass->byval_arg, NULL, sig->pinvoke);
+                       size = mini_type_stack_size_full (&klass->byval_arg, NULL, sig->pinvoke);
        
                        cinfo->struct_ret = 1;
                        cinfo->ret.size   = size;
@@ -1644,7 +1662,7 @@ enum_retvalue:
        if (cinfo->struct_ret && !is_pinvoke && 
            (sig->hasthis || 
              (sig->param_count > 0 && 
-             MONO_TYPE_IS_REFERENCE (mini_type_get_underlying_type (gsctx, sig->params [0]))))) {
+             MONO_TYPE_IS_REFERENCE (mini_get_underlying_type (sig->params [0]))))) {
                if (sig->hasthis) {
                        cinfo->args[nParm].size = sizeof (gpointer);
                        add_general (&gr, sz, cinfo->args + nParm);
@@ -1706,7 +1724,7 @@ enum_retvalue:
                        continue;
                }
 
-               ptype = mini_type_get_underlying_type (gsctx, sig->params [i]);
+               ptype = mini_get_underlying_type (sig->params [i]);
                simpleType = ptype->type;
                cinfo->args[nParm].type = simpleType;
                switch (simpleType) {
@@ -1954,7 +1972,7 @@ mono_arch_allocate_vars (MonoCompile *cfg)
        cinfo   = get_call_info (cfg, cfg->mempool, sig);
 
        if (!cinfo->struct_ret) {
-               switch (mini_type_get_underlying_type (cfg->generic_sharing_context, sig->ret)->type) {
+               switch (mini_get_underlying_type (sig->ret)->type) {
                case MONO_TYPE_VOID:
                        break;
                default:
@@ -2327,7 +2345,7 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
                        t = sig->params [i - sig->hasthis];
                else
                        t = &mono_defaults.int_class->byval_arg;
-               t = mini_type_get_underlying_type (cfg->generic_sharing_context, t);
+               t = mini_get_underlying_type (t);
 
                in = call->args [i];
 
@@ -2543,8 +2561,7 @@ mono_arch_emit_outarg_vt (MonoCompile *cfg, MonoInst *ins, MonoInst *src)
 void
 mono_arch_emit_setret (MonoCompile *cfg, MonoMethod *method, MonoInst *val)
 {
-       MonoType *ret = mini_type_get_underlying_type (cfg->generic_sharing_context,
-                               mono_method_signature (method)->ret);
+       MonoType *ret = mini_get_underlying_type (mono_method_signature (method)->ret);
 
        if (!ret->byref) {
                if (ret->type == MONO_TYPE_R4) {
@@ -2643,8 +2660,7 @@ mono_arch_instrument_epilog_full (MonoCompile *cfg, void *func, void *p, gboolea
                   saveOffset,
                   offset;
        MonoMethod *method = cfg->method;
-       int rtype = mini_type_get_underlying_type (cfg->generic_sharing_context,
-                       mono_method_signature (method)->ret)->type;
+       int rtype = mini_get_underlying_type (mono_method_signature (method)->ret)->type;
 
        offset = code - cfg->native_code;
        /*-----------------------------------------*/
@@ -2838,15 +2854,20 @@ emit_float_to_int (MonoCompile *cfg, guchar *code, int dreg, int sreg, int size,
        if (is_signed) {
                s390_cgdbr (code, dreg, 5, sreg);
                switch (size) {
-                       case 1:
-                               s390_lghi (code, s390_r0, 0);
-                               s390_lghi (code, s390_r13, 0xff);
-                               s390_ltgr (code, dreg, dreg);
-                               s390_jnl  (code, 4);
-                               s390_lghi (code, s390_r0, 0x80);
-                               s390_ngr  (code, dreg, s390_r13);
-                               s390_ogr  (code, dreg, s390_r0);
-                               break;
+               case 1:
+                       s390_ltgr (code, dreg, dreg);
+                       s390_jnl  (code, 4);
+                       s390_oill (code, dreg, 0x80);
+                       s390_lghi (code, s390_r0, 0xff);
+                       s390_ngr  (code, dreg, s390_r0);
+                       break;
+               case 2:
+                       s390_ltgr (code, dreg, dreg);
+                       s390_jnl  (code, 4);
+                       s390_oill (code, dreg, 0x8000);
+                       s390_llill(code, s390_r0, 0xffff);
+                       s390_ngr  (code, dreg, s390_r0);
+                       break;
                }
        } else {
                short *o[1];
@@ -2863,15 +2884,14 @@ emit_float_to_int (MonoCompile *cfg, guchar *code, int dreg, int sreg, int size,
                PTRSLOT (code, o[0]);
                s390_cfdbr  (code, dreg, 5, sreg);
                switch (size) {
-                       case 1: 
-                               s390_lghi (code, s390_r0, 0xff);
-                               s390_ngr  (code, dreg, s390_r0);
-                               break;
-                       case 2:
-                               s390_lghi (code, s390_r0, -1);
-                               s390_srlg (code, s390_r0, s390_r0, 0, 16);
-                               s390_ngr  (code, dreg, s390_r0);
-                               break;
+               case 1: 
+                       s390_lghi (code, s390_r0, 0xff);
+                       s390_ngr  (code, dreg, s390_r0);
+                       break;
+               case 2:
+                       s390_llill(code, s390_r0, 0xffff);
+                       s390_ngr  (code, dreg, s390_r0);
+                       break;
                }
        }
        return code;
@@ -4123,7 +4143,7 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                case OP_GENERIC_CLASS_INIT: {
                        static int byte_offset = -1;
                        static guint8 bitmask;
-                       guint16 *jump;
+                       short int *jump;
 
                        g_assert (ins->sreg1 == S390_FIRST_ARG_REG);
 
@@ -4133,8 +4153,8 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        s390_tm (code, ins->sreg1, byte_offset, bitmask);
                        s390_jo (code, 0); CODEPTR(code, jump);
 
-                       mono_add_patch_info (cfg, code-cfg->native_code, MONO_PATCH_INFO_JIT_ICALL_ADDR,
-                                               "specific_trampoline_generic_class_init");
+                       mono_add_patch_info (cfg, code-cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD,
+                                               "mono_generic_class_init");
                        S390_CALL_TEMPLATE(code, s390_r14);
 
                        PTRSLOT (code, jump);
@@ -4313,21 +4333,30 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                }
                        break;
                case OP_ICONV_TO_R_UN: {
-                       s390_cdfbr (code, ins->dreg, ins->sreg1);
-                       s390_ltr   (code, ins->sreg1, ins->sreg1);
-                       s390_jnl   (code, 8);
-                       S390_SET   (code, s390_r13, 0x41f0000000000000llu);
-                       s390_ldgr  (code, s390_f15, s390_r13);
-                       s390_adbr  (code, ins->dreg, s390_f15);
+                       if (facs.fpe) {
+                               s390_cdlfbr (code, ins->dreg, 5, ins->sreg1, 0);
+                       } else {
+                               s390_llgfr (code, s390_r0, ins->sreg1);
+                               s390_cdgbr (code, ins->dreg, s390_r0);
+                       }
                }
                        break;
                case OP_LCONV_TO_R_UN: {
-                       s390_cdgbr (code, ins->dreg, ins->sreg1);
-                       s390_ltgr  (code, ins->sreg1, ins->sreg1);
-                       s390_jnl   (code, 8);
-                       S390_SET   (code, s390_r13, 0x41f0000000000000llu);
-                       s390_ldgr  (code, s390_f15, s390_r13);
-                       s390_adbr  (code, ins->dreg, s390_f15);
+                       if (facs.fpe) {
+                               s390_cdlgbr (code, ins->dreg, 5, ins->sreg1, 0);
+                       } else {
+                               short int *jump;
+                               s390_cxgbr (code, s390_f12, ins->sreg1);
+                               s390_ltgr  (code, ins->sreg1, ins->sreg1);
+                               s390_jnl   (code, 0); CODEPTR(code, jump);
+                               S390_SET   (code, s390_r13, 0x403f000000000000llu);
+                               s390_lgdr  (code, s390_f13, s390_r13);
+                               s390_lzdr  (code, s390_f15);
+                               s390_axbr  (code, s390_f12, s390_f13);
+                               PTRSLOT(code, jump);
+                               s390_ldxbr (code, s390_f13, s390_f12);
+                               s390_ldr   (code, ins->dreg, s390_f13);
+                       }
                }
                        break;
                case OP_LCONV_TO_R4:
@@ -4342,28 +4371,61 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                }
                        break;
                case OP_FCONV_TO_I1:
-                       code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 1, TRUE);
+                       s390_cgdbr (code, ins->dreg, 5, ins->sreg1);
+                       s390_ltgr  (code, ins->dreg, ins->dreg);
+                       s390_jnl   (code, 4);
+                       s390_oill  (code, ins->dreg, 0x80);
+                       s390_lghi  (code, s390_r0, 0xff);
+                       s390_ngr   (code, ins->dreg, s390_r0);
                        break;
                case OP_FCONV_TO_U1:
-                       code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 1, FALSE);
+                       if (facs.fpe) {
+                               s390_clgdbr (code, ins->dreg, 5, ins->sreg1, 0);
+                               s390_lghi  (code, s390_r0, 0xff);
+                               s390_ngr   (code, ins->dreg, s390_r0);
+                       } else {
+                               code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 1, FALSE);
+                       }
                        break;
                case OP_FCONV_TO_I2:
-                       code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 2, TRUE);
+                       s390_cgdbr (code, ins->dreg, 5, ins->sreg1);
+                       s390_ltgr  (code, ins->dreg, ins->dreg);
+                       s390_jnl   (code, 4);
+                       s390_oill  (code, ins->dreg, 0x8000);
+                       s390_llill (code, s390_r0, 0xffff);
+                       s390_ngr   (code, ins->dreg, s390_r0);
                        break;
                case OP_FCONV_TO_U2:
-                       code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 2, FALSE);
+                       if (facs.fpe) {
+                               s390_clgdbr (code, ins->dreg, 5, ins->sreg1, 0);
+                               s390_llill  (code, s390_r0, 0xffff);
+                               s390_ngr    (code, ins->dreg, s390_r0);
+                       } else {
+                               code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 2, FALSE);
+                       }
                        break;
                case OP_FCONV_TO_I4:
                case OP_FCONV_TO_I:
-                       code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 4, TRUE);
+                       s390_cfdbr (code, ins->dreg, 5, ins->sreg1);
                        break;
                case OP_FCONV_TO_U4:
                case OP_FCONV_TO_U:
-                       code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 4, FALSE);
+                       if (facs.fpe) {
+                               s390_clfdbr (code, ins->dreg, 5, ins->sreg1, 0);
+                       } else {
+                               code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 4, FALSE);
+                       }
                        break;
                case OP_FCONV_TO_I8:
                        s390_cgdbr (code, ins->dreg, 5, ins->sreg1);
                        break;
+               case OP_FCONV_TO_U8:
+                       if (facs.fpe) {
+                               s390_clgdbr (code, ins->dreg, 5, ins->sreg1, 0);
+                       } else {
+                               code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 8, FALSE);
+                       }
+                       break;
                case OP_LCONV_TO_OVF_I: {
                        /* Valid ints: 0xffffffff:8000000 to 00000000:0x7f000000 */
                        short int *o[5];
@@ -4705,7 +4767,6 @@ mono_arch_patch_code (MonoCompile *cfg, MonoMethod *method, MonoDomain *domain,
                        case MONO_PATCH_INFO_METHOD:
                        case MONO_PATCH_INFO_INTERNAL_METHOD:
                        case MONO_PATCH_INFO_JIT_ICALL_ADDR:
-                       case MONO_PATCH_INFO_CLASS_INIT:
                        case MONO_PATCH_INFO_RGCTX_FETCH:
                        case MONO_PATCH_INFO_MONITOR_ENTER:
                        case MONO_PATCH_INFO_MONITOR_ENTER_V4:
@@ -5647,7 +5708,7 @@ mono_arch_install_handler_block_guard (MonoJitInfo *ji, MonoJitExceptionInfo *cl
 /*------------------------------------------------------------------*/
 
 static gpointer
-get_delegate_invoke_impl (gboolean has_target, guint32 param_count, guint32 *code_len, gboolean aot)
+get_delegate_invoke_impl (MonoTrampInfo **info, gboolean has_target, guint32 param_count, gboolean aot)
 {
        guint8 *code, *start;
 
@@ -5683,8 +5744,13 @@ get_delegate_invoke_impl (gboolean has_target, guint32 param_count, guint32 *cod
 
        mono_profiler_code_buffer_new (start, code - start, MONO_PROFILER_CODE_BUFFER_DELEGATE_INVOKE, NULL);
 
-       if (code_len)
-               *code_len = code - start;
+       if (has_target) {
+               *info = mono_tramp_info_create ("delegate_invoke_impl_has_target", start, code - start, NULL, NULL);
+       } else {
+               char *name = g_strdup_printf ("delegate_invoke_impl_target_%d", param_count);
+               *info = mono_tramp_info_create (name, start, code - start, NULL, NULL);
+               g_free (name);
+       }
 
        return start;
 }
@@ -5703,19 +5769,15 @@ GSList*
 mono_arch_get_delegate_invoke_impls (void)
 {
        GSList *res = NULL;
-       guint8 *code;
-       guint32 code_len;
+       MonoTrampInfo *info;
        int i;
-       char *tramp_name;
 
-       code = get_delegate_invoke_impl (TRUE, 0, &code_len, TRUE);
-       res = g_slist_prepend (res, mono_tramp_info_create ("delegate_invoke_impl_has_target", code, code_len, NULL, NULL));
+       get_delegate_invoke_impl (&info, TRUE, 0, TRUE);
+       res = g_slist_prepend (res, info);
 
-       for (i = 0; i < MAX_ARCH_DELEGATE_PARAMS; ++i) {
-               code = get_delegate_invoke_impl (FALSE, i, &code_len, TRUE);
-               tramp_name = g_strdup_printf ("delegate_invoke_impl_target_%d", i);
-               res = g_slist_prepend (res, mono_tramp_info_create (tramp_name, code, code_len, NULL, NULL));
-               g_free (tramp_name);
+       for (i = 0; i <= MAX_ARCH_DELEGATE_PARAMS; ++i) {
+               get_delegate_invoke_impl (&info, FALSE, i, TRUE);
+               res = g_slist_prepend (res, info);
        }
 
        return res;
@@ -5746,10 +5808,13 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
                if (cached)
                        return cached;
 
-               if (mono_aot_only)
+               if (mono_aot_only) {
                        start = mono_aot_get_trampoline ("delegate_invoke_impl_has_target");
-               else
-                       start = get_delegate_invoke_impl (TRUE, 0, NULL, FALSE);
+               } else {
+                       MonoTrampInfo *info;
+                       start = get_delegate_invoke_impl (&info, TRUE, 0, FALSE);
+                       mono_tramp_info_register (info, NULL);
+               }
 
                mono_memory_barrier ();
 
@@ -5774,7 +5839,9 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
                        start = mono_aot_get_trampoline (name);
                        g_free (name);
                } else {
-                       start = get_delegate_invoke_impl (FALSE, sig->param_count, NULL, FALSE);
+                       MonoTrampInfo *info;
+                       start = get_delegate_invoke_impl (&info, FALSE, sig->param_count, FALSE);
+                       mono_tramp_info_register (info, NULL);
                }
 
                mono_memory_barrier ();
@@ -5967,6 +6034,8 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain,
 
        g_assert (code - start <= size);
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, NULL), domain);
+
        return (start);
 }
 
index 740ae80e1e35b25acd425a024e54e1ff0dca1199..1de03e2fd2af0df5e8b3b4cc2ac0665ab7b6c622 100644 (file)
@@ -63,8 +63,6 @@ typedef struct
 #define MONO_ARCH_HAVE_INVALIDATE_METHOD               1
 #define MONO_ARCH_HAVE_OP_GENERIC_CLASS_INIT           1
 #define MONO_ARCH_HAVE_SETUP_ASYNC_CALLBACK            1
-#define MONO_ARCH_MONITOR_OBJECT_REG                   s390_r2
-#define MONO_ARCH_LOCK_TAKEN_REG                       s390_r1
 
 #define S390_STACK_ALIGNMENT            8
 #define S390_FIRST_ARG_REG             s390_r2
index 589e50d15684b98420d8794a17358945c2cb8bb2..5aa8d082007347d3e00681ef66511cd42582b899 100644 (file)
@@ -480,7 +480,6 @@ get_call_info (MonoCompile *cfg, MonoMethodSignature *sig, gboolean is_pinvoke)
        guint32 stack_size = 0;
        CallInfo *cinfo;
        MonoType *ret_type;
-       MonoGenericSharingContext *gsctx = cfg ? cfg->generic_sharing_context : NULL;
 
        cinfo = g_malloc0 (sizeof (CallInfo) + (sizeof (ArgInfo) * n));
 
@@ -526,8 +525,7 @@ get_call_info (MonoCompile *cfg, MonoMethodSignature *sig, gboolean is_pinvoke)
                        add_general (&gr, &stack_size, ainfo, FALSE);
                        continue;
                }
-               ptype = mono_type_get_underlying_type (sig->params [i]);
-               ptype = mini_get_basic_type_from_generic (gsctx, ptype);
+               ptype = mini_get_underlying_type (sig->params [i]);
                switch (ptype->type) {
                case MONO_TYPE_BOOLEAN:
                case MONO_TYPE_I1:
@@ -615,8 +613,7 @@ get_call_info (MonoCompile *cfg, MonoMethodSignature *sig, gboolean is_pinvoke)
        }
 
        /* return value */
-       ret_type = mono_type_get_underlying_type (sig->ret);
-       ret_type = mini_get_basic_type_from_generic (gsctx, ret_type);
+       ret_type = mini_get_underlying_type (sig->ret);
        switch (ret_type->type) {
        case MONO_TYPE_BOOLEAN:
        case MONO_TYPE_I1:
@@ -802,7 +799,7 @@ mono_arch_allocate_vars (MonoCompile *cfg)
                        cfg->ret->inst_c0 = cinfo->ret.reg;
                        break;
                case ArgInIRegPair: {
-                       MonoType *t = mono_type_get_underlying_type (sig->ret);
+                       MonoType *t = mini_get_underlying_type (sig->ret);
                        if (((t->type == MONO_TYPE_I8) || (t->type == MONO_TYPE_U8))) {
                                MonoInst *low = get_vreg_to_inst (cfg, cfg->ret->dreg + 1);
                                MonoInst *high = get_vreg_to_inst (cfg, cfg->ret->dreg + 2);
@@ -871,7 +868,7 @@ mono_arch_allocate_vars (MonoCompile *cfg)
                if (inst->backend.is_pinvoke && MONO_TYPE_ISSTRUCT (inst->inst_vtype) && inst->inst_vtype->type != MONO_TYPE_TYPEDBYREF)
                        size = mono_class_native_size (mono_class_from_mono_type (inst->inst_vtype), &align);
                else
-                       size = mini_type_stack_size (cfg->generic_sharing_context, inst->inst_vtype, &align);
+                       size = mini_type_stack_size (inst->inst_vtype, &align);
 
                /* 
                 * This is needed since structures containing doubles must be doubleword 
@@ -1304,7 +1301,7 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
                else
                        arg_type = sig->params [i - sig->hasthis];
 
-               arg_type = mono_type_get_underlying_type (arg_type);
+               arg_type = mini_get_underlying_type (arg_type);
                if ((i >= sig->hasthis) && (MONO_TYPE_ISSTRUCT(sig->params [i - sig->hasthis])))
                        emit_pass_vtype (cfg, call, cinfo, ainfo, arg_type, in, sig->pinvoke);
                else if (!arg_type->byref && ((arg_type->type == MONO_TYPE_I8) || (arg_type->type == MONO_TYPE_U8)))
@@ -1340,7 +1337,7 @@ void
 mono_arch_emit_setret (MonoCompile *cfg, MonoMethod *method, MonoInst *val)
 {
        CallInfo *cinfo = get_call_info (cfg, mono_method_signature (method), FALSE);
-       MonoType *ret = mini_type_get_underlying_type (cfg->generic_sharing_context, mono_method_signature (method)->ret);
+       MonoType *ret = mini_get_underlying_type (mono_method_signature (method)->ret);
 
        switch (cinfo->ret.storage) {
        case ArgInIReg:
@@ -2014,7 +2011,7 @@ emit_save_sp_to_lmf (MonoCompile *cfg, guint32 *code)
 }
 
 static guint32*
-emit_vret_token (MonoGenericSharingContext *gsctx, MonoInst *ins, guint32 *code)
+emit_vret_token (MonoInst *ins, guint32 *code)
 {
        MonoCallInst *call = (MonoCallInst*)ins;
        guint32 size;
@@ -2025,7 +2022,7 @@ emit_vret_token (MonoGenericSharingContext *gsctx, MonoInst *ins, guint32 *code)
         */
        if (call->signature->pinvoke && MONO_TYPE_ISSTRUCT(call->signature->ret)) {
                if (call->signature->ret->type == MONO_TYPE_TYPEDBYREF)
-                       size = mini_type_stack_size (gsctx, call->signature->ret, NULL);
+                       size = mini_type_stack_size (call->signature->ret, NULL);
                else
                        size = mono_class_native_size (call->signature->ret->data.klass, NULL);
                sparc_unimp (code, size & 0xfff);
@@ -2355,6 +2352,9 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
 
        mono_stats.imt_thunks_size += (code - start) * 4;
        g_assert (code - start <= size);
+
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, NULL), domain);
+
        return start;
 }
 
@@ -2892,7 +2892,7 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        else
                            code = emit_call (cfg, code, MONO_PATCH_INFO_ABS, call->fptr);
 
-                       code = emit_vret_token (cfg->generic_sharing_context, ins, code);
+                       code = emit_vret_token (ins, code);
                        code = emit_move_return_value (ins, code);
                        break;
                case OP_FCALL_REG:
@@ -2914,7 +2914,7 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        else
                                sparc_nop (code);
 
-                       code = emit_vret_token (cfg->generic_sharing_context, ins, code);
+                       code = emit_vret_token (ins, code);
                        code = emit_move_return_value (ins, code);
                        break;
                case OP_FCALL_MEMBASE:
@@ -2937,7 +2937,7 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        else
                                sparc_nop (code);
 
-                       code = emit_vret_token (cfg->generic_sharing_context, ins, code);
+                       code = emit_vret_token (ins, code);
                        code = emit_move_return_value (ins, code);
                        break;
                case OP_SETFRET:
@@ -3682,17 +3682,6 @@ mono_arch_patch_code (MonoCompile *cfg, MonoMethod *method, MonoDomain *domain,
                switch (patch_info->type) {
                case MONO_PATCH_INFO_NONE:
                        continue;
-               case MONO_PATCH_INFO_CLASS_INIT: {
-                       guint32 *ip2 = (guint32*)ip;
-                       /* Might already been changed to a nop */
-#ifdef SPARCV9
-                       sparc_set_template (ip2, sparc_o7);
-                       sparc_jmpl (ip2, sparc_o7, sparc_g0, sparc_o7);
-#else
-                       sparc_call_simple (ip2, 0);
-#endif
-                       break;
-               }
                case MONO_PATCH_INFO_METHOD_JUMP: {
                        guint32 *ip2 = (guint32*)ip;
                        /* Might already been patched */
@@ -3782,7 +3771,7 @@ mono_arch_instrument_epilog_full (MonoCompile *cfg, void *func, void *p, gboolea
        int save_mode = SAVE_NONE;
        MonoMethod *method = cfg->method;
 
-       switch (mono_type_get_underlying_type (mono_method_signature (method)->ret)->type) {
+       switch (mini_get_underlying_type (mono_method_signature (method)->ret)->type) {
        case MONO_TYPE_VOID:
                /* special case string .ctor icall */
                if (strcmp (".ctor", method->name) && method->klass == mono_defaults.string_class)
@@ -4393,7 +4382,7 @@ mono_arch_emit_inst_for_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMetho
  * Returns the size of the activation frame.
  */
 int
-mono_arch_get_argument_info (MonoGenericSharingContext *gsctx, MonoMethodSignature *csig, int param_count, MonoJitArgumentInfo *arg_info)
+mono_arch_get_argument_info (MonoMethodSignature *csig, int param_count, MonoJitArgumentInfo *arg_info)
 {
        int k, align;
        CallInfo *cinfo;
index 7de1cae2345af807baa9deab34d9437552fef163..b8fc3337d75120dd783d9705cec484ec39015b3b 100644 (file)
@@ -23,7 +23,6 @@
  */
 guint8* mono_trampoline_code [MONO_TRAMPOLINE_NUM];
 
-static GHashTable *class_init_hash_addr;
 static GHashTable *rgctx_lazy_fetch_trampoline_hash;
 static GHashTable *rgctx_lazy_fetch_trampoline_hash_addr;
 static guint32 trampoline_calls, jit_trampolines, unbox_trampolines, static_rgctx_trampolines;
@@ -139,106 +138,108 @@ mono_create_static_rgctx_trampoline (MonoMethod *m, gpointer addr)
 }
 #endif
 
+#if 0
+#define DEBUG_IMT(stmt) do { stmt; } while (0)
+#else
+#define DEBUG_IMT(stmt) do { } while (0)
+#endif
+
 /*
- * Either IMPL_METHOD or AOT_ADDR will be set on return.
+ * mini_resolve_imt_method:
+ *
+ *   Resolve the actual method called when making an IMT call through VTABLE_SLOT with IMT_METHOD as the interface method.
  *
- * MONO_NEVER_INLINE :
- * This works against problems when compiling with gcc 4.6 on arm. The 'then' part of
- * this line gets executed, even when the condition is false:
- *             if (impl && mono_method_needs_static_rgctx_invoke (impl, FALSE))
- *                     *need_rgctx_tramp = TRUE;
+ * Either IMPL_METHOD or OUT_AOT_ADDR will be set on return.
  */
-static MONO_NEVER_INLINE gpointer*
-mono_convert_imt_slot_to_vtable_slot (gpointer* slot, mgreg_t *regs, guint8 *code, MonoMethod *method, gboolean lookup_aot, MonoMethod **impl_method, gboolean *need_rgctx_tramp, gboolean *variance_used, gpointer *aot_addr)
+gpointer*
+mini_resolve_imt_method (MonoVTable *vt, gpointer *vtable_slot, MonoMethod *imt_method, MonoMethod **impl_method, gpointer *out_aot_addr, gboolean *out_need_rgctx_tramp, MonoMethod **variant_iface)
 {
-       MonoObject *this_argument = mono_arch_get_this_arg_from_call (regs, code);
-       MonoVTable *vt = this_argument->vtable;
-       int displacement = slot - ((gpointer*)vt);
-
-       if (displacement > 0) {
-               /* slot is in the vtable, not in the IMT */
-#if DEBUG_IMT
-               printf ("mono_convert_imt_slot_to_vtable_slot: slot %p is in the vtable, not in the IMT\n", slot);
-#endif
-               return slot;
-       } else {
-               MonoMethod *imt_method = mono_arch_find_imt_method (regs, code);
-               MonoMethod *impl;
-               int interface_offset;
-               int imt_slot = MONO_IMT_SIZE + displacement;
-
-               /*This has to be variance aware since imt_method can be from an interface that vt->klass doesn't directly implement*/
-               interface_offset = mono_class_interface_offset_with_variance (vt->klass, imt_method->klass, variance_used);
-
-               if (interface_offset < 0) {
-                       g_error ("%s doesn't implement interface %s\n", mono_type_get_name_full (&vt->klass->byval_arg, 0), mono_type_get_name_full (&imt_method->klass->byval_arg, 0));
-               }
-               mono_vtable_build_imt_slot (vt, mono_method_get_imt_slot (imt_method));
+       MonoMethod *impl = NULL, *generic_virtual = NULL;
+       gboolean lookup_aot, variance_used = FALSE, need_rgctx_tramp = FALSE;
+       gpointer addr;
+       guint8 *aot_addr = NULL;
+       int displacement = vtable_slot - ((gpointer*)vt);
+       int interface_offset;
+       int imt_slot = MONO_IMT_SIZE + displacement;
+
+       g_assert (imt_slot < MONO_IMT_SIZE);
+
+       /* This has to be variance aware since imt_method can be from an interface that vt->klass doesn't directly implement */
+       interface_offset = mono_class_interface_offset_with_variance (vt->klass, imt_method->klass, &variance_used);
+       if (interface_offset < 0)
+               g_error ("%s doesn't implement interface %s\n", mono_type_get_name_full (&vt->klass->byval_arg, 0), mono_type_get_name_full (&imt_method->klass->byval_arg, 0));
+
+       *variant_iface = NULL;
+       if (imt_method->is_inflated && ((MonoMethodInflated*)imt_method)->context.method_inst) {
+               /* Generic virtual method */
+               generic_virtual = imt_method;
+               need_rgctx_tramp = TRUE;
+       } else if (variance_used && mono_class_has_variant_generic_params (imt_method->klass)) {
+               *variant_iface = imt_method;
+       }
 
-               if (imt_method->is_inflated && ((MonoMethodInflated*)imt_method)->context.method_inst) {
-                       MonoError error;
-                       MonoGenericContext context = { NULL, NULL };
+       addr = NULL;
+       /* We can only use the AOT compiled code if we don't require further processing */
+       lookup_aot = !generic_virtual & !variant_iface;
 
-                       /* 
-                        * Generic virtual method, imt_method contains the inflated interface 
-                        * method, need to get the inflated impl method.
-                        */
-                       /* imt_method->slot might not be set */
-                       impl = mono_class_get_vtable_entry (vt->klass, interface_offset + mono_method_get_declaring_generic_method (imt_method)->slot);
+       mono_vtable_build_imt_slot (vt, mono_method_get_imt_slot (imt_method));
 
-                       if (impl->klass->generic_class)
-                               context.class_inst = impl->klass->generic_class->context.class_inst;
-                       context.method_inst = ((MonoMethodInflated*)imt_method)->context.method_inst;
-                       impl = mono_class_inflate_generic_method_checked (impl, &context, &error);
-                       g_assert (mono_error_ok (&error)); /* FIXME don't swallow the error */
-               } else {
-                       /* Avoid loading metadata or creating a generic vtable if possible */
-                       if (lookup_aot && !vt->klass->valuetype)
-                               *aot_addr = mono_aot_get_method_from_vt_slot (mono_domain_get (), vt, interface_offset + mono_method_get_vtable_slot (imt_method));
-                       else
-                               *aot_addr = NULL;
-                       if (*aot_addr)
-                               impl = NULL;
-                       else
-                               impl = mono_class_get_vtable_entry (vt->klass, interface_offset + mono_method_get_vtable_slot (imt_method));
-               }
+       if (imt_method->is_inflated && ((MonoMethodInflated*)imt_method)->context.method_inst) {
+               MonoError error;
+               MonoGenericContext context = { NULL, NULL };
 
-               if (impl && mono_method_needs_static_rgctx_invoke (impl, FALSE))
-                       *need_rgctx_tramp = TRUE;
-               if (impl && impl->wrapper_type == MONO_WRAPPER_MANAGED_TO_MANAGED) {
-                       WrapperInfo *info = mono_marshal_get_wrapper_info (impl);
+               /*
+                * Generic virtual method, imt_method contains the inflated interface
+                * method, need to get the inflated impl method.
+                */
+               /* imt_method->slot might not be set */
+               impl = mono_class_get_vtable_entry (vt->klass, interface_offset + mono_method_get_declaring_generic_method (imt_method)->slot);
 
-                       if (info && info->subtype == WRAPPER_SUBTYPE_GENERIC_ARRAY_HELPER) {
-                               *need_rgctx_tramp = TRUE;
-                       }
-               }
+               if (impl->klass->generic_class)
+                       context.class_inst = impl->klass->generic_class->context.class_inst;
+               context.method_inst = ((MonoMethodInflated*)imt_method)->context.method_inst;
+               impl = mono_class_inflate_generic_method_checked (impl, &context, &error);
+               g_assert (mono_error_ok (&error)); /* FIXME don't swallow the error */
+       } else {
+               /* Avoid loading metadata or creating a generic vtable if possible */
+               if (lookup_aot && !vt->klass->valuetype)
+                       aot_addr = mono_aot_get_method_from_vt_slot (mono_domain_get (), vt, interface_offset + mono_method_get_vtable_slot (imt_method));
+               else
+                       aot_addr = NULL;
+               if (aot_addr)
+                       impl = NULL;
+               else
+                       impl = mono_class_get_vtable_entry (vt->klass, interface_offset + mono_method_get_vtable_slot (imt_method));
+       }
 
-               *impl_method = impl;
-#if DEBUG_IMT
-               printf ("mono_convert_imt_slot_to_vtable_slot: method = %s.%s.%s, imt_method = %s.%s.%s\n",
-                               method->klass->name_space, method->klass->name, method->name, 
-                               imt_method->klass->name_space, imt_method->klass->name, imt_method->name);
-#endif
+       if (impl && mono_method_needs_static_rgctx_invoke (impl, FALSE))
+               need_rgctx_tramp = TRUE;
+       if (impl && impl->wrapper_type == MONO_WRAPPER_MANAGED_TO_MANAGED) {
+               WrapperInfo *info = mono_marshal_get_wrapper_info (impl);
 
-               g_assert (imt_slot < MONO_IMT_SIZE);
-               if (vt->imt_collisions_bitmap & (1 << imt_slot)) {
-                       int slot = mono_method_get_vtable_index (imt_method);
-                       int vtable_offset;
-                       gpointer *vtable_slot;
-
-                       g_assert (slot != -1);
-                       vtable_offset = interface_offset + slot;
-                       vtable_slot = & (vt->vtable [vtable_offset]);
-#if DEBUG_IMT
-                       printf ("mono_convert_imt_slot_to_vtable_slot: slot %p[%d] is in the IMT, and colliding becomes %p[%d] (interface_offset = %d, method->slot = %d)\n", slot, imt_slot, vtable_slot, vtable_offset, interface_offset, imt_method->slot);
-#endif
-                       return vtable_slot;
-               } else {
-#if DEBUG_IMT
-                       printf ("mono_convert_imt_slot_to_vtable_slot: slot %p[%d] is in the IMT, but not colliding\n", slot, imt_slot);
-#endif
-                       return slot;
-               }
+               if (info && info->subtype == WRAPPER_SUBTYPE_GENERIC_ARRAY_HELPER)
+                       need_rgctx_tramp = TRUE;
+       }
+       *impl_method = impl;
+       *out_need_rgctx_tramp = need_rgctx_tramp;
+       *out_aot_addr = aot_addr;
+
+       DEBUG_IMT (printf ("mono_convert_imt_slot_to_vtable_slot: method = %s.%s.%s, imt_method = %s.%s.%s\n",
+                                          method->klass->name_space, method->klass->name, method->name,
+                                          imt_method->klass->name_space, imt_method->klass->name, imt_method->name));
+
+       if (vt->imt_collisions_bitmap & (1 << imt_slot)) {
+               int slot = mono_method_get_vtable_index (imt_method);
+               int vtable_offset;
+
+               g_assert (slot != -1);
+               vtable_offset = interface_offset + slot;
+               vtable_slot = & (vt->vtable [vtable_offset]);
+               DEBUG_IMT (printf ("mono_convert_imt_slot_to_vtable_slot: slot %p[%d] is in the IMT, and colliding becomes %p[%d] (interface_offset = %d, method->slot = %d)\n", slot, imt_slot, vtable_slot, vtable_offset, interface_offset, imt_method->slot));
+               return vtable_slot;
+       } else {
+               DEBUG_IMT (printf ("mono_convert_imt_slot_to_vtable_slot: slot %p[%d] is in the IMT, but not colliding\n", slot, imt_slot));
+               return vtable_slot;
        }
 }
 
@@ -269,8 +270,7 @@ is_generic_method_definition (MonoMethod *m)
 gboolean
 mini_jit_info_is_gsharedvt (MonoJitInfo *ji)
 {
-       if (ji && ji->has_generic_jit_info && (mono_jit_info_get_generic_sharing_context (ji)->var_is_vt ||
-                                                                                  mono_jit_info_get_generic_sharing_context (ji)->mvar_is_vt))
+       if (ji && ji->has_generic_jit_info && (mono_jit_info_get_generic_sharing_context (ji)->is_gsharedvt))
                return TRUE;
        else
                return FALSE;
@@ -278,7 +278,6 @@ mini_jit_info_is_gsharedvt (MonoJitInfo *ji)
 
 /**
  * mini_add_method_trampoline:
- * @orig_method: the method the caller originally called i.e. an iface method, or NULL.
  * @m: 
  * @compiled_method:
  * @add_static_rgctx_tramp: adds a static rgctx trampoline
@@ -291,7 +290,7 @@ mini_jit_info_is_gsharedvt (MonoJitInfo *ji)
  * is needed.
  */
 gpointer
-mini_add_method_trampoline (MonoMethod *orig_method, MonoMethod *m, gpointer compiled_method, gboolean add_static_rgctx_tramp, gboolean add_unbox_tramp)
+mini_add_method_trampoline (MonoMethod *m, gpointer compiled_method, gboolean add_static_rgctx_tramp, gboolean add_unbox_tramp)
 {
        gpointer addr = compiled_method;
        gboolean callee_gsharedvt, callee_array_helper;
@@ -323,9 +322,6 @@ mini_add_method_trampoline (MonoMethod *orig_method, MonoMethod *m, gpointer com
                }
        }
 
-       if (!orig_method)
-               orig_method = m;
-
        if (callee_gsharedvt)
                g_assert (m->is_inflated);
 
@@ -344,21 +340,18 @@ mini_add_method_trampoline (MonoMethod *orig_method, MonoMethod *m, gpointer com
                }
        }
 
-       if (ji)
+       if (ji && !ji->is_trampoline)
                jmethod = jinfo_get_method (ji);
        if (callee_gsharedvt && mini_is_gsharedvt_variable_signature (mono_method_signature (jmethod))) {
-               MonoGenericSharingContext *gsctx;
                MonoMethodSignature *sig, *gsig;
 
                /* Here m is a generic instance, while ji->method is the gsharedvt method implementing it */
 
                /* Call from normal/gshared code to gsharedvt code with variable signature */
-               gsctx = mono_jit_info_get_generic_sharing_context (ji);
-
                sig = mono_method_signature (m);
                gsig = mono_method_signature (jmethod);
 
-               addr = mini_get_gsharedvt_wrapper (TRUE, addr, sig, gsig, gsctx, -1, FALSE);
+               addr = mini_get_gsharedvt_wrapper (TRUE, addr, sig, gsig, -1, FALSE);
 
                //printf ("IN: %s\n", mono_method_full_name (m, TRUE));
        }
@@ -386,66 +379,56 @@ mini_add_method_trampoline (MonoMethod *orig_method, MonoMethod *m, gpointer com
  * from JITted and LLVM compiled code.
  */
 static gpointer
-common_call_trampoline_inner (mgreg_t *regs, guint8 *code, MonoMethod *m, guint8* tramp, MonoVTable *vt, gpointer *vtable_slot, gboolean need_rgctx_tramp)
+common_call_trampoline_inner (mgreg_t *regs, guint8 *code, MonoMethod *m, MonoVTable *vt, gpointer *vtable_slot)
 {
        gpointer addr, compiled_method;
        gboolean generic_shared = FALSE;
        gboolean need_unbox_tramp = FALSE;
+       gboolean need_rgctx_tramp = FALSE;
        MonoMethod *declaring = NULL;
-       MonoMethod *generic_virtual = NULL, *variant_iface = NULL, *orig_method = NULL;
+       MonoMethod *generic_virtual = NULL, *variant_iface = NULL;
        int context_used;
-       gboolean virtual, variance_used = FALSE;
+       gboolean imt_call, virtual;
        gpointer *orig_vtable_slot, *vtable_slot_to_patch = NULL;
        MonoJitInfo *ji = NULL;
 
-       virtual = (gpointer)vtable_slot > (gpointer)vt;
+       virtual = vt && (gpointer)vtable_slot > (gpointer)vt;
+       imt_call = vt && (gpointer)vtable_slot < (gpointer)vt;
+
+       /*
+        * rgctx trampolines are needed when the call is indirect so the caller can't pass
+        * the rgctx argument needed by the callee.
+        */
+       if (virtual && m)
+               need_rgctx_tramp = mono_method_needs_static_rgctx_invoke (m, FALSE);
 
        orig_vtable_slot = vtable_slot;
        vtable_slot_to_patch = vtable_slot;
 
        /* IMT call */
-       if (vt && (gpointer)vtable_slot < (gpointer)vt) {
-               MonoMethod *impl_method = NULL;
+       if (imt_call) {
+               MonoMethod *imt_method = NULL, *impl_method = NULL;
                MonoObject *this_arg;
 
-               /* we get the interface method because mono_convert_imt_slot_to_vtable_slot ()
-                * needs the signature to be able to find the this argument
-                */
-               m = mono_arch_find_imt_method (regs, code);
-               vtable_slot = orig_vtable_slot;
                g_assert (vtable_slot);
 
-               orig_method = m;
-
+               imt_method = mono_arch_find_imt_method (regs, code);
                this_arg = mono_arch_get_this_arg_from_call (regs, code);
 
                if (mono_object_is_transparent_proxy (this_arg)) {
                        /* Use the slow path for now */
-                   m = mono_object_get_virtual_method (this_arg, m);
+                   m = mono_object_get_virtual_method (this_arg, imt_method);
                        vtable_slot_to_patch = NULL;
                } else {
-                       gboolean lookup_aot;
-
-                       mono_class_interface_offset_with_variance (vt->klass, m->klass, &variance_used);
-
-                       if (m->is_inflated && ((MonoMethodInflated*)m)->context.method_inst) {
+                       if (imt_method->is_inflated && ((MonoMethodInflated*)imt_method)->context.method_inst) {
                                /* Generic virtual method */
-                               generic_virtual = m;
+                               generic_virtual = imt_method;
                                need_rgctx_tramp = TRUE;
-                       } else if (variance_used && mono_class_has_variant_generic_params (m->klass)) {
-                               variant_iface = m;
                        }
 
-                       addr = NULL;
-                       /* We can only use the AOT compiled code if we don't require further processing */
-                       lookup_aot = !generic_virtual & !variant_iface;
-                       vtable_slot = mono_convert_imt_slot_to_vtable_slot (vtable_slot, regs, code, m, lookup_aot, &impl_method, &need_rgctx_tramp, &variance_used, &addr);
+                       vtable_slot = mini_resolve_imt_method (vt, vtable_slot, imt_method, &impl_method, &addr, &need_rgctx_tramp, &variant_iface);
                        /* This is the vcall slot which gets called through the IMT thunk */
                        vtable_slot_to_patch = vtable_slot;
-                       /* mono_convert_imt_slot_to_vtable_slot () also gives us the method that is supposed
-                        * to be called, so we compile it and go ahead as usual.
-                        */
-                       /*g_print ("imt found method %p (%s) at %p\n", impl_method, impl_method->name, code);*/
 
                        if (addr) {
                                /*
@@ -481,10 +464,9 @@ common_call_trampoline_inner (mgreg_t *regs, guint8 *code, MonoMethod *m, guint8
                        g_assert (!m->klass->generic_container);
 
                generic_virtual = mono_arch_find_imt_method (regs, code);
-               if (generic_virtual) {
-                       g_assert (generic_virtual->is_inflated);
-                       context.method_inst = ((MonoMethodInflated*)generic_virtual)->context.method_inst;
-               }
+               g_assert (generic_virtual);
+               g_assert (generic_virtual->is_inflated);
+               context.method_inst = ((MonoMethodInflated*)generic_virtual)->context.method_inst;
 
                m = mono_class_inflate_generic_method_checked (declaring, &context, &error);
                g_assert (mono_error_ok (&error)); /* FIXME don't swallow the error */
@@ -501,23 +483,18 @@ common_call_trampoline_inner (mgreg_t *regs, guint8 *code, MonoMethod *m, guint8
 
                g_assert (code);
 
+               /*
+                * The caller is gshared code, compute the actual method to call from M and this/rgctx.
+                */
                if (m->is_inflated && mono_method_get_context (m)->method_inst) {
-#ifdef MONO_ARCH_RGCTX_REG
                        MonoMethodRuntimeGenericContext *mrgctx = (MonoMethodRuntimeGenericContext*)mono_arch_find_static_call_vtable (regs, code);
 
                        klass = mrgctx->class_vtable->klass;
                        method_inst = mrgctx->method_inst;
-#else
-                       g_assert_not_reached ();
-#endif
                } else if ((m->flags & METHOD_ATTRIBUTE_STATIC) || m->klass->valuetype) {
-#ifdef MONO_ARCH_RGCTX_REG
                        MonoVTable *vtable = mono_arch_find_static_call_vtable (regs, code);
 
                        klass = vtable->klass;
-#else
-                       g_assert_not_reached ();
-#endif
                } else {
                        MonoObject *this_argument = mono_arch_get_this_arg_from_call (regs, code);
 
@@ -525,7 +502,6 @@ common_call_trampoline_inner (mgreg_t *regs, guint8 *code, MonoMethod *m, guint8
                        vtable_slot = orig_vtable_slot;
 
                        g_assert (this_argument->vtable->klass->inited);
-                       //mono_class_init (this_argument->vtable->klass);
 
                        if (!vtable_slot) {
                                mono_class_setup_supertypes (this_argument->vtable->klass);
@@ -598,7 +574,7 @@ common_call_trampoline_inner (mgreg_t *regs, guint8 *code, MonoMethod *m, guint8
                        need_unbox_tramp = TRUE;
        }
 
-       addr = mini_add_method_trampoline (orig_method, m, compiled_method, need_rgctx_tramp, need_unbox_tramp);
+       addr = mini_add_method_trampoline (m, compiled_method, need_rgctx_tramp, need_unbox_tramp);
 
        if (generic_virtual || variant_iface) {
                MonoMethod *target = generic_virtual ? generic_virtual : variant_iface;
@@ -648,8 +624,7 @@ common_call_trampoline_inner (mgreg_t *regs, guint8 *code, MonoMethod *m, guint8
                        g_assert (*vtable_slot_to_patch);
                        *vtable_slot_to_patch = mono_get_addr_from_ftnptr (addr);
                }
-       }
-       else {
+       } else {
                guint8 *plt_entry = mono_aot_get_plt_entry (code);
                gboolean no_patch = FALSE;
                MonoJitInfo *target_ji;
@@ -698,12 +673,12 @@ common_call_trampoline_inner (mgreg_t *regs, guint8 *code, MonoMethod *m, guint8
 }
 
 static gpointer
-common_call_trampoline (mgreg_t *regs, guint8 *code, MonoMethod *m, guint8* tramp, MonoVTable *vt, gpointer *vtable_slot, gboolean need_rgctx_tramp)
+common_call_trampoline (mgreg_t *regs, guint8 *code, MonoMethod *m, MonoVTable *vt, gpointer *vtable_slot)
 {
        gpointer res;
-       MONO_PREPARE_RESET_BLOCKING
-       res = common_call_trampoline_inner (regs, code, m, tramp, vt, vtable_slot, need_rgctx_tramp);
-       MONO_FINISH_RESET_BLOCKING
+       MONO_PREPARE_RESET_BLOCKING;
+       res = common_call_trampoline_inner (regs, code, m, vt, vtable_slot);
+       MONO_FINISH_RESET_BLOCKING;
        return res;
 }
 
@@ -717,7 +692,7 @@ mono_magic_trampoline (mgreg_t *regs, guint8 *code, gpointer arg, guint8* tramp)
 {
        trampoline_calls ++;
 
-       return common_call_trampoline (regs, code, arg, tramp, NULL, NULL, FALSE);
+       return common_call_trampoline (regs, code, arg, NULL, NULL);
 }
 
 /**
@@ -728,11 +703,10 @@ mono_magic_trampoline (mgreg_t *regs, guint8 *code, gpointer arg, guint8* tramp)
 static gpointer
 mono_vcall_trampoline (mgreg_t *regs, guint8 *code, int slot, guint8 *tramp)
 {
-       MonoObject *this;
+       MonoObject *this_arg;
        MonoVTable *vt;
        gpointer *vtable_slot;
        MonoMethod *m;
-       gboolean need_rgctx_tramp = FALSE;
        gpointer addr;
 
        trampoline_calls ++;
@@ -748,10 +722,10 @@ mono_vcall_trampoline (mgreg_t *regs, guint8 *code, int slot, guint8 *tramp)
        /*
         * Obtain the vtable from the 'this' arg.
         */
-       this = mono_arch_get_this_arg_from_call (regs, code);
-       g_assert (this);
+       this_arg = mono_arch_get_this_arg_from_call (regs, code);
+       g_assert (this_arg);
 
-       vt = this->vtable;
+       vt = this_arg->vtable;
 
        if (slot >= 0) {
                /* Normal virtual call */
@@ -780,17 +754,14 @@ mono_vcall_trampoline (mgreg_t *regs, guint8 *code, int slot, guint8 *tramp)
                 * trustworthy.
                 */
                m = mono_class_get_vtable_entry (vt->klass, slot);
-
-               need_rgctx_tramp = mono_method_needs_static_rgctx_invoke (m, 0);
        } else {
                /* IMT call */
                vtable_slot = &(((gpointer*)vt) [slot]);
 
                m = NULL;
-               need_rgctx_tramp = FALSE;
        }
 
-       return common_call_trampoline (regs, code, m, tramp, vt, vtable_slot, need_rgctx_tramp);
+       return common_call_trampoline (regs, code, m, vt, vtable_slot);
 }
 
 #ifndef DISABLE_REMOTING
@@ -899,43 +870,6 @@ mono_aot_plt_trampoline (mgreg_t *regs, guint8 *code, guint8 *aot_module,
 }
 #endif
 
-/**
- * mono_class_init_trampoline:
- *
- * This method calls mono_runtime_class_init () to run the static constructor
- * for the type, then patches the caller code so it is not called again.
- */
-void
-mono_class_init_trampoline (mgreg_t *regs, guint8 *code, MonoVTable *vtable, guint8 *tramp)
-{
-       guint8 *plt_entry = mono_aot_get_plt_entry (code);
-
-       trampoline_calls ++;
-
-       mono_runtime_class_init (vtable);
-
-       if (vtable->initialized) {
-               if (plt_entry)
-                       mono_aot_patch_plt_entry (code, plt_entry, NULL, regs, mini_get_nullified_class_init_trampoline ());
-               else
-                       mono_arch_nullify_class_init_trampoline (code, regs);
-       }
-}
-
-/**
- * mono_generic_class_init_trampoline:
- *
- * This method calls mono_runtime_class_init () to run the static constructor
- * for the type.
- */
-void
-mono_generic_class_init_trampoline (mgreg_t *regs, guint8 *code, MonoVTable *vtable, guint8 *tramp)
-{
-       trampoline_calls ++;
-
-       mono_runtime_class_init (vtable);
-}
-
 static gpointer
 mono_rgctx_lazy_fetch_trampoline (mgreg_t *regs, guint8 *code, gpointer data, guint8 *tramp)
 {
@@ -957,32 +891,9 @@ mono_rgctx_lazy_fetch_trampoline (mgreg_t *regs, guint8 *code, gpointer data, gu
        num_lookups++;
 
        if (mrgctx)
-               return mono_method_fill_runtime_generic_context (arg, code, index);
+               return mono_method_fill_runtime_generic_context (arg, index);
        else
-               return mono_class_fill_runtime_generic_context (arg, code, index);
-}
-
-void
-mono_monitor_enter_trampoline (mgreg_t *regs, guint8 *code, MonoObject *obj, guint8 *tramp)
-{
-       mono_monitor_enter (obj);
-}
-
-void
-mono_monitor_enter_v4_trampoline (mgreg_t *regs, guint8 *code, MonoObject *obj, guint8 *tramp)
-{
-#ifdef MONO_ARCH_MONITOR_LOCK_TAKEN_REG
-       char *lock_taken = (char*)regs [MONO_ARCH_MONITOR_LOCK_TAKEN_REG];
-       mono_monitor_enter_v4 (obj, lock_taken);
-#else
-       g_assert_not_reached ();
-#endif
-}
-
-void
-mono_monitor_exit_trampoline (mgreg_t *regs, guint8 *code, MonoObject *obj, guint8 *tramp)
-{
-       mono_monitor_exit (obj);
+               return mono_class_fill_runtime_generic_context (arg, index);
 }
 
 /*
@@ -1153,7 +1064,7 @@ mono_delegate_trampoline (mgreg_t *regs, guint8 *code, gpointer *arg, guint8* tr
                        delegate->method_ptr = *delegate->method_code;
                } else {
                        compiled_method = addr = mono_compile_method (method);
-                       addr = mini_add_method_trampoline (NULL, method, compiled_method, need_rgctx_tramp, need_unbox_tramp);
+                       addr = mini_add_method_trampoline (method, compiled_method, need_rgctx_tramp, need_unbox_tramp);
                        delegate->method_ptr = addr;
                        if (enable_caching && delegate->method_code)
                                *delegate->method_code = delegate->method_ptr;
@@ -1179,7 +1090,7 @@ mono_delegate_trampoline (mgreg_t *regs, guint8 *code, gpointer *arg, guint8* tr
                /* The general, unoptimized case */
                m = mono_marshal_get_delegate_invoke (invoke, delegate);
                code = mono_compile_method (m);
-               code = mini_add_method_trampoline (NULL, m, code, mono_method_needs_static_rgctx_invoke (m, FALSE), FALSE);
+               code = mini_add_method_trampoline (m, code, mono_method_needs_static_rgctx_invoke (m, FALSE), FALSE);
        }
 
        delegate->invoke_impl = mono_get_addr_from_ftnptr (code);
@@ -1237,7 +1148,7 @@ mono_create_handler_block_trampoline (void)
                gpointer tmp;
 
                tmp = mono_arch_create_handler_block_trampoline (&info, FALSE);
-               mono_tramp_info_register (info);
+               mono_tramp_info_register (info, NULL);
                mono_memory_barrier ();
                code = tmp;
        }
@@ -1260,10 +1171,6 @@ mono_get_trampoline_func (MonoTrampolineType tramp_type)
        case MONO_TRAMPOLINE_JIT:
        case MONO_TRAMPOLINE_JUMP:
                return mono_magic_trampoline;
-       case MONO_TRAMPOLINE_CLASS_INIT:
-               return mono_class_init_trampoline;
-       case MONO_TRAMPOLINE_GENERIC_CLASS_INIT:
-               return mono_generic_class_init_trampoline;
        case MONO_TRAMPOLINE_RGCTX_LAZY_FETCH:
                return mono_rgctx_lazy_fetch_trampoline;
 #ifdef MONO_ARCH_AOT_SUPPORTED
@@ -1280,12 +1187,6 @@ mono_get_trampoline_func (MonoTrampolineType tramp_type)
        case MONO_TRAMPOLINE_GENERIC_VIRTUAL_REMOTING:
                return mono_generic_virtual_remoting_trampoline;
 #endif
-       case MONO_TRAMPOLINE_MONITOR_ENTER:
-               return mono_monitor_enter_trampoline;
-       case MONO_TRAMPOLINE_MONITOR_ENTER_V4:
-               return mono_monitor_enter_v4_trampoline;
-       case MONO_TRAMPOLINE_MONITOR_EXIT:
-               return mono_monitor_exit_trampoline;
        case MONO_TRAMPOLINE_VCALL:
                return mono_vcall_trampoline;
 #ifdef MONO_ARCH_HAVE_HANDLER_BLOCK_GUARD
@@ -1305,7 +1206,7 @@ create_trampoline_code (MonoTrampolineType tramp_type)
        guchar *code;
 
        code = mono_arch_create_generic_trampoline (tramp_type, &info, FALSE);
-       mono_tramp_info_register (info);
+       mono_tramp_info_register (info, NULL);
 
        return code;
 }
@@ -1320,8 +1221,6 @@ mono_trampolines_init (void)
 
        mono_trampoline_code [MONO_TRAMPOLINE_JIT] = create_trampoline_code (MONO_TRAMPOLINE_JIT);
        mono_trampoline_code [MONO_TRAMPOLINE_JUMP] = create_trampoline_code (MONO_TRAMPOLINE_JUMP);
-       mono_trampoline_code [MONO_TRAMPOLINE_CLASS_INIT] = create_trampoline_code (MONO_TRAMPOLINE_CLASS_INIT);
-       mono_trampoline_code [MONO_TRAMPOLINE_GENERIC_CLASS_INIT] = create_trampoline_code (MONO_TRAMPOLINE_GENERIC_CLASS_INIT);
        mono_trampoline_code [MONO_TRAMPOLINE_RGCTX_LAZY_FETCH] = create_trampoline_code (MONO_TRAMPOLINE_RGCTX_LAZY_FETCH);
 #ifdef MONO_ARCH_AOT_SUPPORTED
        mono_trampoline_code [MONO_TRAMPOLINE_AOT] = create_trampoline_code (MONO_TRAMPOLINE_AOT);
@@ -1332,9 +1231,6 @@ mono_trampolines_init (void)
 #ifndef DISABLE_REMOTING
        mono_trampoline_code [MONO_TRAMPOLINE_GENERIC_VIRTUAL_REMOTING] = create_trampoline_code (MONO_TRAMPOLINE_GENERIC_VIRTUAL_REMOTING);
 #endif
-       mono_trampoline_code [MONO_TRAMPOLINE_MONITOR_ENTER] = create_trampoline_code (MONO_TRAMPOLINE_MONITOR_ENTER);
-       mono_trampoline_code [MONO_TRAMPOLINE_MONITOR_ENTER_V4] = create_trampoline_code (MONO_TRAMPOLINE_MONITOR_ENTER_V4);
-       mono_trampoline_code [MONO_TRAMPOLINE_MONITOR_EXIT] = create_trampoline_code (MONO_TRAMPOLINE_MONITOR_EXIT);
        mono_trampoline_code [MONO_TRAMPOLINE_VCALL] = create_trampoline_code (MONO_TRAMPOLINE_VCALL);
 #ifdef MONO_ARCH_HAVE_HANDLER_BLOCK_GUARD
        mono_trampoline_code [MONO_TRAMPOLINE_HANDLER_BLOCK_GUARD] = create_trampoline_code (MONO_TRAMPOLINE_HANDLER_BLOCK_GUARD);
@@ -1350,8 +1246,6 @@ mono_trampolines_init (void)
 void
 mono_trampolines_cleanup (void)
 {
-       if (class_init_hash_addr)
-               g_hash_table_destroy (class_init_hash_addr);
        if (rgctx_lazy_fetch_trampoline_hash)
                g_hash_table_destroy (rgctx_lazy_fetch_trampoline_hash);
        if (rgctx_lazy_fetch_trampoline_hash_addr)
@@ -1377,42 +1271,6 @@ mono_create_specific_trampoline (gpointer arg1, MonoTrampolineType tramp_type, M
                return mono_arch_create_specific_trampoline (arg1, tramp_type, domain, code_len);
 }
 
-gpointer
-mono_create_class_init_trampoline (MonoVTable *vtable)
-{
-       gpointer code, ptr;
-       MonoDomain *domain = vtable->domain;
-
-       g_assert (!vtable->klass->generic_container);
-
-       /* previously created trampoline code */
-       mono_domain_lock (domain);
-       ptr = 
-               g_hash_table_lookup (domain_jit_info (domain)->class_init_trampoline_hash,
-                                                                 vtable);
-       mono_domain_unlock (domain);
-       if (ptr)
-               return ptr;
-
-       code = mono_create_specific_trampoline (vtable, MONO_TRAMPOLINE_CLASS_INIT, domain, NULL);
-
-       ptr = mono_create_ftnptr (domain, code);
-
-       /* store trampoline address */
-       mono_domain_lock (domain);
-       g_hash_table_insert (domain_jit_info (domain)->class_init_trampoline_hash,
-                                                         vtable, ptr);
-       mono_domain_unlock (domain);
-
-       mono_trampolines_lock ();
-       if (!class_init_hash_addr)
-               class_init_hash_addr = g_hash_table_new (NULL, NULL);
-       g_hash_table_insert (class_init_hash_addr, ptr, vtable);
-       mono_trampolines_unlock ();
-
-       return ptr;
-}
-
 gpointer
 mono_create_jump_trampoline (MonoDomain *domain, MonoMethod *method, gboolean add_sync_wrapper)
 {
@@ -1589,7 +1447,7 @@ mono_create_rgctx_lazy_fetch_trampoline (guint32 offset)
                ptr = mono_aot_get_lazy_fetch_trampoline (offset);
        } else {
                tramp = mono_arch_create_rgctx_lazy_fetch_trampoline (offset, &info, FALSE);
-               mono_tramp_info_register (info);
+               mono_tramp_info_register (info, NULL);
                ptr = mono_create_ftnptr (mono_get_root_domain (), tramp);
        }
 
@@ -1612,95 +1470,6 @@ mono_create_rgctx_lazy_fetch_trampoline (guint32 offset)
 
        return ptr;
 }
-
-gpointer
-mono_create_monitor_enter_trampoline (void)
-{
-       static gpointer code;
-
-       if (mono_aot_only) {
-               if (!code)
-                       code = mono_aot_get_trampoline ("monitor_enter_trampoline");
-               return code;
-       }
-
-#ifdef MONO_ARCH_MONITOR_OBJECT_REG
-       mono_trampolines_lock ();
-
-       if (!code) {
-               MonoTrampInfo *info;
-
-               code = mono_arch_create_monitor_enter_trampoline (&info, FALSE, FALSE);
-               mono_tramp_info_register (info);
-       }
-
-       mono_trampolines_unlock ();
-#else
-       code = NULL;
-       g_assert_not_reached ();
-#endif
-
-       return code;
-}
-
-gpointer
-mono_create_monitor_enter_v4_trampoline (void)
-{
-       static gpointer code;
-
-       if (mono_aot_only) {
-               if (!code)
-                       code = mono_aot_get_trampoline ("monitor_enter_v4_trampoline");
-               return code;
-       }
-
-#if defined(MONO_ARCH_MONITOR_OBJECT_REG) && defined(MONO_ARCH_MONITOR_LOCK_TAKEN_REG)
-       mono_trampolines_lock ();
-
-       if (!code) {
-               MonoTrampInfo *info;
-
-               code = mono_arch_create_monitor_enter_trampoline (&info, TRUE, FALSE);
-               mono_tramp_info_register (info);
-       }
-
-       mono_trampolines_unlock ();
-#else
-       code = NULL;
-       g_assert_not_reached ();
-#endif
-
-       return code;
-}
-
-gpointer
-mono_create_monitor_exit_trampoline (void)
-{
-       static gpointer code;
-
-       if (mono_aot_only) {
-               if (!code)
-                       code = mono_aot_get_trampoline ("monitor_exit_trampoline");
-               return code;
-       }
-
-#ifdef MONO_ARCH_MONITOR_OBJECT_REG
-       mono_trampolines_lock ();
-
-       if (!code) {
-               MonoTrampInfo *info;
-
-               code = mono_arch_create_monitor_exit_trampoline (&info, FALSE);
-               mono_tramp_info_register (info);
-       }
-
-       mono_trampolines_unlock ();
-#else
-       code = NULL;
-       g_assert_not_reached ();
-#endif
-       return code;
-}
  
 #ifdef MONO_ARCH_LLVM_SUPPORTED
 /*
@@ -1722,20 +1491,6 @@ mono_create_llvm_imt_trampoline (MonoDomain *domain, MonoMethod *m, int vt_offse
 }
 #endif
 
-MonoVTable*
-mono_find_class_init_trampoline_by_addr (gconstpointer addr)
-{
-       MonoVTable *res;
-
-       mono_trampolines_lock ();
-       if (class_init_hash_addr)
-               res = g_hash_table_lookup (class_init_hash_addr, addr);
-       else
-               res = NULL;
-       mono_trampolines_unlock ();
-       return res;
-}
-
 guint32
 mono_find_rgctx_lazy_fetch_trampoline_by_addr (gconstpointer addr)
 {
@@ -1759,17 +1514,12 @@ mono_find_rgctx_lazy_fetch_trampoline_by_addr (gconstpointer addr)
 static const char*tramp_names [MONO_TRAMPOLINE_NUM] = {
        "jit",
        "jump",
-       "class_init",
-       "generic_class_init",
        "rgctx_lazy_fetch",
        "aot",
        "aot_plt",
        "delegate",
        "restore_stack_prot",
        "generic_virtual_remoting",
-       "monitor_enter",
-       "monitor_enter_v4",
-       "monitor_exit",
        "vcall",
        "handler_block_guard"
 };
@@ -1812,30 +1562,6 @@ mono_get_rgctx_fetch_trampoline_name (int slot)
        return g_strdup_printf ("rgctx_fetch_trampoline_%s_%d", mrgctx ? "mrgctx" : "rgctx", index);
 }
 
-gpointer
-mini_get_nullified_class_init_trampoline (void)
-{
-       static gpointer nullified_class_init_trampoline;
-
-       if (!nullified_class_init_trampoline) {
-               gpointer tramp;
-               MonoTrampInfo *info;
-
-               if (mono_aot_only) {
-                       /* Not used */
-                       g_assert_not_reached ();
-                       tramp = NULL;
-               } else {
-                       tramp = mono_arch_get_nullified_class_init_trampoline (&info);
-                       mono_tramp_info_register (info);
-               }
-               mono_memory_barrier ();
-               nullified_class_init_trampoline = tramp;
-       }
-
-       return nullified_class_init_trampoline;
-}
-
 /*
  * mini_get_single_step_trampoline:
  *
@@ -1855,7 +1581,7 @@ mini_get_single_step_trampoline (void)
 #ifdef MONO_ARCH_HAVE_SDB_TRAMPOLINES
                        MonoTrampInfo *info;
                        tramp = mono_arch_create_sdb_trampoline (TRUE, &info, FALSE);
-                       mono_tramp_info_register (info);
+                       mono_tramp_info_register (info, NULL);
 #else
                        tramp = NULL;
                        g_assert_not_reached ();
@@ -1887,7 +1613,7 @@ mini_get_breakpoint_trampoline (void)
 #ifdef MONO_ARCH_HAVE_SDB_TRAMPOLINES
                        MonoTrampInfo *info;
                        tramp = mono_arch_create_sdb_trampoline (FALSE, &info, FALSE);
-                       mono_tramp_info_register (info);
+                       mono_tramp_info_register (info, NULL);
 #else
                        tramp = NULL;
                        g_assert_not_reached ();
index 657cc7708733634fb42208d8378dda25d6af5e53..ab690bf480797779f46c823999285c9b438a520c 100644 (file)
@@ -114,6 +114,8 @@ typedef struct {
 #define mono_add_unwind_op_same_value(op_list,code,buf,reg) do { (op_list) = g_slist_append ((op_list), mono_create_unwind_op ((code) - (buf), DW_CFA_same_value, (reg), 0)); } while (0)
 #define mono_add_unwind_op_offset(op_list,code,buf,reg,offset) do { (op_list) = g_slist_append ((op_list), mono_create_unwind_op ((code) - (buf), DW_CFA_offset, (reg), (offset))); } while (0)
 
+#define mono_free_unwind_info(op_list) do { GSList *l; for (l = op_list; l; l = l->next) g_free (l->data); g_slist_free (op_list); op_list = NULL; } while (0)
+
 /* Pointer Encoding in the .eh_frame */
 enum {
        DW_EH_PE_absptr = 0x00,
@@ -144,6 +146,9 @@ mono_unwind_get_dwarf_data_align (void);
 int
 mono_unwind_get_dwarf_pc_reg (void);
 
+guint8*
+mono_unwind_ops_encode_full (GSList *unwind_ops, guint32 *out_len, gboolean enable_extensions);
+
 guint8*
 mono_unwind_ops_encode (GSList *unwind_ops, guint32 *out_len);
 
index b53f0a6bccf2d8fe72bc133dcb9ec66e6e163812..ce89795c1a284f4f2197537070db25b9d426e26c 100644 (file)
@@ -45,6 +45,12 @@ static gboolean optimize_for_xen = TRUE;
 #endif
 #endif
 
+/* The single step trampoline */
+static gpointer ss_trampoline;
+
+/* The breakpoint trampoline */
+static gpointer bp_trampoline;
+
 /* This mutex protects architecture specific caches */
 #define mono_mini_arch_lock() mono_mutex_lock (&mini_arch_mutex)
 #define mono_mini_arch_unlock() mono_mutex_unlock (&mini_arch_mutex)
@@ -63,8 +69,7 @@ static mono_mutex_t mini_arch_mutex;
 
 #define X86_IS_CALLEE_SAVED_REG(reg) (((reg) == X86_EBX) || ((reg) == X86_EDI) || ((reg) == X86_ESI))
 
-MonoBreakpointInfo
-mono_breakpoint_info [MONO_BREAKPOINT_ARRAY_SIZE];
+#define OP_SEQ_POINT_BP_OFFSET 7
 
 static guint8*
 emit_load_aotconst (guint8 *start, guint8 *code, MonoCompile *cfg, MonoJumpInfo **ji, int dreg, int tramp_type, gconstpointer target);
@@ -102,15 +107,6 @@ mono_arch_nacl_skip_nops (guint8 *code)
 
 #endif /* __native_client_codegen__ */
 
-/*
- * The code generated for sequence points reads from this location, which is
- * made read-only when single stepping is enabled.
- */
-static gpointer ss_trigger_page;
-
-/* Enabled breakpoints read from this trigger page */
-static gpointer bp_trigger_page;
-
 const char*
 mono_arch_regname (int reg)
 {
@@ -300,7 +296,7 @@ add_float (guint32 *gr, guint32 *stack_size, ArgInfo *ainfo, gboolean is_double)
 
 
 static void
-add_valuetype (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, ArgInfo *ainfo, MonoType *type,
+add_valuetype (MonoMethodSignature *sig, ArgInfo *ainfo, MonoType *type,
               gboolean is_return,
               guint32 *gr, const guint32 *param_regs, guint32 *fr, guint32 *stack_size)
 {
@@ -308,7 +304,7 @@ add_valuetype (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, ArgIn
        MonoClass *klass;
 
        klass = mono_class_from_mono_type (type);
-       size = mini_type_stack_size_full (gsctx, &klass->byval_arg, NULL, sig->pinvoke);
+       size = mini_type_stack_size_full (&klass->byval_arg, NULL, sig->pinvoke);
 
 #ifdef SMALL_STRUCTS_IN_REGS
        if (sig->pinvoke && is_return) {
@@ -325,7 +321,7 @@ add_valuetype (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, ArgIn
 
                /* Special case structs with only a float member */
                if (info->num_fields == 1) {
-                       int ftype = mini_type_get_underlying_type (gsctx, info->fields [0].field->type)->type;
+                       int ftype = mini_get_underlying_type (info->fields [0].field->type)->type;
                        if ((info->native_size == 8) && (ftype == MONO_TYPE_R8)) {
                                ainfo->storage = ArgValuetypeInReg;
                                ainfo->pair_storage [0] = ArgOnDoubleFpStack;
@@ -374,7 +370,7 @@ add_valuetype (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig, ArgIn
  * For x86 win32, see ???.
  */
 static CallInfo*
-get_call_info_internal (MonoGenericSharingContext *gsctx, CallInfo *cinfo, MonoMethodSignature *sig)
+get_call_info_internal (CallInfo *cinfo, MonoMethodSignature *sig)
 {
        guint32 i, gr, fr, pstart;
        const guint32 *param_regs;
@@ -391,7 +387,7 @@ get_call_info_internal (MonoGenericSharingContext *gsctx, CallInfo *cinfo, MonoM
 
        /* return value */
        {
-               ret_type = mini_type_get_underlying_type (gsctx, sig->ret);
+               ret_type = mini_get_underlying_type (sig->ret);
                switch (ret_type->type) {
                case MONO_TYPE_I1:
                case MONO_TYPE_U1:
@@ -429,7 +425,7 @@ get_call_info_internal (MonoGenericSharingContext *gsctx, CallInfo *cinfo, MonoM
                                cinfo->ret.reg = X86_EAX;
                                break;
                        }
-                       if (mini_is_gsharedvt_type_gsctx (gsctx, ret_type)) {
+                       if (mini_is_gsharedvt_type (ret_type)) {
                                cinfo->ret.storage = ArgOnStack;
                                cinfo->vtype_retaddr = TRUE;
                                break;
@@ -439,7 +435,7 @@ get_call_info_internal (MonoGenericSharingContext *gsctx, CallInfo *cinfo, MonoM
                case MONO_TYPE_TYPEDBYREF: {
                        guint32 tmp_gr = 0, tmp_fr = 0, tmp_stacksize = 0;
 
-                       add_valuetype (gsctx, sig, &cinfo->ret, ret_type, TRUE, &tmp_gr, NULL, &tmp_fr, &tmp_stacksize);
+                       add_valuetype (sig, &cinfo->ret, ret_type, TRUE, &tmp_gr, NULL, &tmp_fr, &tmp_stacksize);
                        if (cinfo->ret.storage == ArgOnStack) {
                                cinfo->vtype_retaddr = TRUE;
                                /* The caller passes the address where the value is stored */
@@ -448,7 +444,7 @@ get_call_info_internal (MonoGenericSharingContext *gsctx, CallInfo *cinfo, MonoM
                }
                case MONO_TYPE_VAR:
                case MONO_TYPE_MVAR:
-                       g_assert (mini_is_gsharedvt_type_gsctx (gsctx, ret_type));
+                       g_assert (mini_is_gsharedvt_type (ret_type));
                        cinfo->ret.storage = ArgOnStack;
                        cinfo->vtype_retaddr = TRUE;
                        break;
@@ -468,7 +464,7 @@ get_call_info_internal (MonoGenericSharingContext *gsctx, CallInfo *cinfo, MonoM
         * are sometimes made using calli without sig->hasthis set, like in the delegate
         * invoke wrappers.
         */
-       if (cinfo->vtype_retaddr && !is_pinvoke && (sig->hasthis || (sig->param_count > 0 && MONO_TYPE_IS_REFERENCE (mini_type_get_underlying_type (gsctx, sig->params [0]))))) {
+       if (cinfo->vtype_retaddr && !is_pinvoke && (sig->hasthis || (sig->param_count > 0 && MONO_TYPE_IS_REFERENCE (mini_get_underlying_type (sig->params [0]))))) {
                if (sig->hasthis) {
                        add_general (&gr, param_regs, &stack_size, cinfo->args + 0);
                } else {
@@ -514,7 +510,7 @@ get_call_info_internal (MonoGenericSharingContext *gsctx, CallInfo *cinfo, MonoM
                        add_general (&gr, param_regs, &stack_size, ainfo);
                        continue;
                }
-               ptype = mini_type_get_underlying_type (gsctx, sig->params [i]);
+               ptype = mini_get_underlying_type (sig->params [i]);
                switch (ptype->type) {
                case MONO_TYPE_I1:
                case MONO_TYPE_U1:
@@ -544,7 +540,7 @@ get_call_info_internal (MonoGenericSharingContext *gsctx, CallInfo *cinfo, MonoM
                                add_general (&gr, param_regs, &stack_size, ainfo);
                                break;
                        }
-                       if (mini_is_gsharedvt_type_gsctx (gsctx, ptype)) {
+                       if (mini_is_gsharedvt_type (ptype)) {
                                /* gsharedvt arguments are passed by ref */
                                add_general (&gr, param_regs, &stack_size, ainfo);
                                g_assert (ainfo->storage == ArgOnStack);
@@ -554,7 +550,7 @@ get_call_info_internal (MonoGenericSharingContext *gsctx, CallInfo *cinfo, MonoM
                        /* Fall through */
                case MONO_TYPE_VALUETYPE:
                case MONO_TYPE_TYPEDBYREF:
-                       add_valuetype (gsctx, sig, ainfo, ptype, FALSE, &gr, param_regs, &fr, &stack_size);
+                       add_valuetype (sig, ainfo, ptype, FALSE, &gr, param_regs, &fr, &stack_size);
                        break;
                case MONO_TYPE_U8:
                case MONO_TYPE_I8:
@@ -569,7 +565,7 @@ get_call_info_internal (MonoGenericSharingContext *gsctx, CallInfo *cinfo, MonoM
                case MONO_TYPE_VAR:
                case MONO_TYPE_MVAR:
                        /* gsharedvt arguments are passed by ref */
-                       g_assert (mini_is_gsharedvt_type_gsctx (gsctx, ptype));
+                       g_assert (mini_is_gsharedvt_type (ptype));
                        add_general (&gr, param_regs, &stack_size, ainfo);
                        g_assert (ainfo->storage == ArgOnStack);
                        ainfo->storage = ArgGSharedVt;
@@ -608,7 +604,7 @@ get_call_info_internal (MonoGenericSharingContext *gsctx, CallInfo *cinfo, MonoM
 }
 
 static CallInfo*
-get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSignature *sig)
+get_call_info (MonoMemPool *mp, MonoMethodSignature *sig)
 {
        int n = sig->hasthis + sig->param_count;
        CallInfo *cinfo;
@@ -618,7 +614,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
        else
                cinfo = g_malloc0 (sizeof (CallInfo) + (sizeof (ArgInfo) * n));
 
-       return get_call_info_internal (gsctx, cinfo, sig);
+       return get_call_info_internal (cinfo, sig);
 }
 
 /*
@@ -632,11 +628,11 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
  *
  * Returns the size of the argument area on the stack.
  * This should be signal safe, since it is called from
- * mono_arch_find_jit_info ().
+ * mono_arch_unwind_frame ().
  * FIXME: The metadata calls might not be signal safe.
  */
 int
-mono_arch_get_argument_info (MonoGenericSharingContext *gsctx, MonoMethodSignature *csig, int param_count, MonoJitArgumentInfo *arg_info)
+mono_arch_get_argument_info (MonoMethodSignature *csig, int param_count, MonoJitArgumentInfo *arg_info)
 {
        int len, k, args_size = 0;
        int size, pad;
@@ -649,7 +645,7 @@ mono_arch_get_argument_info (MonoGenericSharingContext *gsctx, MonoMethodSignatu
        cinfo = (CallInfo*)g_newa (guint8*, len);
        memset (cinfo, 0, len);
 
-       cinfo = get_call_info_internal (gsctx, cinfo, csig);
+       cinfo = get_call_info_internal (cinfo, csig);
 
        arg_info [0].offset = offset;
 
@@ -672,7 +668,7 @@ mono_arch_get_argument_info (MonoGenericSharingContext *gsctx, MonoMethodSignatu
        arg_info [0].size = args_size;
 
        for (k = 0; k < param_count; k++) {
-               size = mini_type_stack_size_full (NULL, csig->params [k], &align, csig->pinvoke);
+               size = mini_type_stack_size_full (csig->params [k], &align, csig->pinvoke);
 
                /* ignore alignment for now */
                align = 1;
@@ -714,14 +710,14 @@ mono_arch_tail_call_supported (MonoCompile *cfg, MonoMethodSignature *caller_sig
                /* OP_TAILCALL doesn't work with AOT */
                return FALSE;
 
-       c1 = get_call_info (NULL, NULL, caller_sig);
-       c2 = get_call_info (NULL, NULL, callee_sig);
+       c1 = get_call_info (NULL, caller_sig);
+       c2 = get_call_info (NULL, callee_sig);
        /*
         * Tail calls with more callee stack usage than the caller cannot be supported, since
         * the extra stack space would be left on the stack after the tail call.
         */
        res = c1->stack_usage >= c2->stack_usage;
-       callee_ret = mini_get_underlying_type (cfg, callee_sig->ret);
+       callee_ret = mini_get_underlying_type (callee_sig->ret);
        if (callee_ret && MONO_TYPE_ISSTRUCT (callee_ret) && c2->ret.storage != ArgValuetypeInReg)
                /* An address on the callee's stack is passed as the first argument */
                res = FALSE;
@@ -760,9 +756,7 @@ mono_arch_init (void)
 {
        mono_mutex_init_recursive (&mini_arch_mutex);
 
-       ss_trigger_page = mono_valloc (NULL, mono_pagesize (), MONO_MMAP_READ);
-       bp_trigger_page = mono_valloc (NULL, mono_pagesize (), MONO_MMAP_READ|MONO_MMAP_32BIT);
-       mono_mprotect (bp_trigger_page, mono_pagesize (), 0);
+       bp_trampoline = mini_get_breakpoint_trampoline ();
 
        mono_aot_register_jit_icall ("mono_x86_throw_exception", mono_x86_throw_exception);
        mono_aot_register_jit_icall ("mono_x86_throw_corlib_exception", mono_x86_throw_corlib_exception);
@@ -777,10 +771,6 @@ mono_arch_init (void)
 void
 mono_arch_cleanup (void)
 {
-       if (ss_trigger_page)
-               mono_vfree (ss_trigger_page, mono_pagesize ());
-       if (bp_trigger_page)
-               mono_vfree (bp_trigger_page, mono_pagesize ());
        mono_mutex_destroy (&mini_arch_mutex);
 }
 
@@ -1061,7 +1051,7 @@ mono_arch_allocate_vars (MonoCompile *cfg)
        header = cfg->header;
        sig = mono_method_signature (cfg->method);
 
-       cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+       cinfo = get_call_info (cfg->mempool, sig);
 
        cfg->frame_reg = X86_EBP;
        offset = 0;
@@ -1208,15 +1198,27 @@ mono_arch_create_vars (MonoCompile *cfg)
 
        sig = mono_method_signature (cfg->method);
 
-       cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
-       sig_ret = mini_get_underlying_type (cfg, sig->ret);
+       cinfo = get_call_info (cfg->mempool, sig);
+       sig_ret = mini_get_underlying_type (sig->ret);
 
        if (cinfo->ret.storage == ArgValuetypeInReg)
                cfg->ret_var_is_local = TRUE;
-       if ((cinfo->ret.storage != ArgValuetypeInReg) && (MONO_TYPE_ISSTRUCT (sig_ret) || mini_is_gsharedvt_variable_type (cfg, sig_ret))) {
+       if ((cinfo->ret.storage != ArgValuetypeInReg) && (MONO_TYPE_ISSTRUCT (sig_ret) || mini_is_gsharedvt_variable_type (sig_ret))) {
                cfg->vret_addr = mono_compile_create_var (cfg, &mono_defaults.int_class->byval_arg, OP_ARG);
        }
 
+       if (cfg->gen_sdb_seq_points) {
+               MonoInst *ins;
+
+               ins = mono_compile_create_var (cfg, &mono_defaults.int_class->byval_arg, OP_LOCAL);
+               ins->flags |= MONO_INST_VOLATILE;
+               cfg->arch.ss_tramp_var = ins;
+
+               ins = mono_compile_create_var (cfg, &mono_defaults.int_class->byval_arg, OP_LOCAL);
+               ins->flags |= MONO_INST_VOLATILE;
+               cfg->arch.bp_tramp_var = ins;
+       }
+
        if (cfg->method->save_lmf) {
                cfg->create_lmf_var = TRUE;
                cfg->lmf_ir = TRUE;
@@ -1244,7 +1246,7 @@ collect_fp_stack_space (MonoMethodSignature *sig, int start_arg, int *fp_arg_set
        MonoType *t;
 
        for (; start_arg < sig->param_count; ++start_arg) {
-               t = mini_replace_type (sig->params [start_arg]);
+               t = mini_get_underlying_type (sig->params [start_arg]);
                if (!t->byref && t->type == MONO_TYPE_R8) {
                        fp_space += sizeof (double);
                        *fp_arg_setup = start_arg;
@@ -1293,7 +1295,7 @@ mono_arch_get_llvm_call_info (MonoCompile *cfg, MonoMethodSignature *sig)
 
        n = sig->param_count + sig->hasthis;
 
-       cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+       cinfo = get_call_info (cfg->mempool, sig);
        sig_ret = sig->ret;
 
        linfo = mono_mempool_alloc0 (cfg->mempool, sizeof (LLVMCallInfo) + (sizeof (LLVMArgInfo) * n));
@@ -1320,13 +1322,13 @@ mono_arch_get_llvm_call_info (MonoCompile *cfg, MonoMethodSignature *sig)
                */
        }
 
-       if (mini_type_is_vtype (cfg, sig_ret) && cinfo->ret.storage == ArgInIReg) {
+       if (mini_type_is_vtype (sig_ret) && cinfo->ret.storage == ArgInIReg) {
                /* Vtype returned using a hidden argument */
                linfo->ret.storage = LLVMArgVtypeRetAddr;
                linfo->vret_arg_index = cinfo->vret_arg_index;
        }
 
-       if (mini_type_is_vtype (cfg, sig_ret) && cinfo->ret.storage != ArgInIReg) {
+       if (mini_type_is_vtype (sig_ret) && cinfo->ret.storage != ArgInIReg) {
                // FIXME:
                cfg->exception_message = g_strdup ("vtype ret in call");
                cfg->disable_llvm = TRUE;
@@ -1351,7 +1353,7 @@ mono_arch_get_llvm_call_info (MonoCompile *cfg, MonoMethodSignature *sig)
                        linfo->args [i].storage = LLVMArgInFPReg;
                        break;
                case ArgOnStack:
-                       if (mini_type_is_vtype (cfg, t)) {
+                       if (mini_type_is_vtype (t)) {
                                if (mono_class_value_size (mono_class_from_mono_type (t), NULL) == 0)
                                /* LLVM seems to allocate argument space for empty structures too */
                                        linfo->args [i].storage = LLVMArgNone;
@@ -1424,9 +1426,9 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
 
        sig = call->signature;
        n = sig->param_count + sig->hasthis;
-       sig_ret = mini_get_underlying_type (cfg, sig->ret);
+       sig_ret = mini_get_underlying_type (sig->ret);
 
-       cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+       cinfo = get_call_info (cfg->mempool, sig);
        call->call_info = cinfo;
 
        if (!sig->pinvoke && (sig->call_convention == MONO_CALL_VARARG))
@@ -1482,7 +1484,7 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
                else
                        t = &mono_defaults.int_class->byval_arg;
                orig_type = t;
-               t = mini_type_get_underlying_type (cfg->generic_sharing_context, t);
+               t = mini_get_underlying_type (t);
 
                MONO_INST_NEW (cfg, arg, OP_X86_PUSH);
 
@@ -1512,7 +1514,7 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
                                align = sizeof (gpointer);
                        }
                        else {
-                               size = mini_type_stack_size_full (cfg->generic_sharing_context, &in->klass->byval_arg, &align, sig->pinvoke);
+                               size = mini_type_stack_size_full (&in->klass->byval_arg, &align, sig->pinvoke);
                        }
 
                        if (size > 0) {
@@ -1641,7 +1643,7 @@ mono_arch_emit_outarg_vt (MonoCompile *cfg, MonoInst *ins, MonoInst *src)
                mono_call_inst_add_outarg_reg (cfg, call, dreg, ainfo->reg, FALSE);
        }
        else {
-               if (cfg->gsharedvt && mini_is_gsharedvt_klass (cfg, ins->klass)) {
+               if (cfg->gsharedvt && mini_is_gsharedvt_klass (ins->klass)) {
                        /* Pass by addr */
                        MONO_EMIT_NEW_STORE_MEMBASE (cfg, OP_STORE_MEMBASE_REG, X86_ESP, ainfo->offset, src->dreg);
                } else if (size <= 4) {
@@ -1660,7 +1662,7 @@ mono_arch_emit_outarg_vt (MonoCompile *cfg, MonoInst *ins, MonoInst *src)
 void
 mono_arch_emit_setret (MonoCompile *cfg, MonoMethod *method, MonoInst *val)
 {
-       MonoType *ret = mini_type_get_underlying_type (cfg->generic_sharing_context, mono_method_signature (method)->ret);
+       MonoType *ret = mini_get_underlying_type (mono_method_signature (method)->ret);
 
        if (!ret->byref) {
                if (ret->type == MONO_TYPE_R4) {
@@ -1730,7 +1732,7 @@ mono_arch_instrument_epilog_full (MonoCompile *cfg, void *func, void *p, gboolea
        guchar *code = p;
        int arg_size = 0, stack_usage = 0, save_mode = SAVE_NONE;
        MonoMethod *method = cfg->method;
-       MonoType *ret_type = mini_type_get_underlying_type (cfg->generic_sharing_context, mono_method_signature (method)->ret);
+       MonoType *ret_type = mini_get_underlying_type (mono_method_signature (method)->ret);
 
        switch (ret_type->type) {
        case MONO_TYPE_VOID:
@@ -2292,11 +2294,13 @@ mono_x86_have_tls_get (void)
 #ifdef TARGET_MACH
        static gboolean have_tls_get = FALSE;
        static gboolean inited = FALSE;
-       guint32 *ins;
 
        if (inited)
                return have_tls_get;
 
+#ifdef MONO_HAVE_FAST_TLS
+       guint32 *ins;
+
        ins = (guint32*)pthread_getspecific;
        /*
         * We're looking for these two instructions:
@@ -2306,6 +2310,7 @@ mono_x86_have_tls_get (void)
         */
        have_tls_get = ins [0] == 0x0424448b && ins [1] == 0x85048b65;
        tls_gs_offset = ins [2];
+#endif
 
        inited = TRUE;
 
@@ -2770,22 +2775,53 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        if (cfg->compile_aot)
                                NOT_IMPLEMENTED;
 
+                       /* Have to use ecx as a temp reg since this can occur after OP_SETRET */
+
                        /* 
                         * Read from the single stepping trigger page. This will cause a
                         * SIGSEGV when single stepping is enabled.
                         * We do this _before_ the breakpoint, so single stepping after
                         * a breakpoint is hit will step to the next IL offset.
                         */
-                       if (ins->flags & MONO_INST_SINGLE_STEP_LOC)
-                               x86_alu_reg_mem (code, X86_CMP, X86_EAX, (guint32)ss_trigger_page);
+                       if (ins->flags & MONO_INST_SINGLE_STEP_LOC) {
+                               MonoInst *var = cfg->arch.ss_tramp_var;
+                               guint8 *br [1];
+
+                               g_assert (var);
+                               g_assert (var->opcode == OP_REGOFFSET);
+                               /* Load ss_tramp_var */
+                               /* This is equal to &ss_trampoline */
+                               x86_mov_reg_membase (code, X86_ECX, var->inst_basereg, var->inst_offset, sizeof (mgreg_t));
+                               x86_alu_membase_imm (code, X86_CMP, X86_ECX, 0, 0);
+                               br[0] = code; x86_branch8 (code, X86_CC_EQ, 0, FALSE);
+                               x86_call_membase (code, X86_ECX, 0);
+                               x86_patch (br [0], code);
+                       }
+
+                       /*
+                        * Many parts of sdb depend on the ip after the single step trampoline call to be equal to the seq point offset.
+                        * This means we have to put the loading of bp_tramp_var after the offset.
+                        */
 
                        mono_add_seq_point (cfg, bb, ins, code - cfg->native_code);
 
+                       MonoInst *var = cfg->arch.bp_tramp_var;
+
+                       g_assert (var);
+                       g_assert (var->opcode == OP_REGOFFSET);
+                       /* Load the address of the bp trampoline */
+                       /* This needs to be constant size */
+                       guint8 *start = code;
+                       x86_mov_reg_membase (code, X86_ECX, var->inst_basereg, var->inst_offset, 4);
+                       if (code < start + OP_SEQ_POINT_BP_OFFSET) {
+                               int size = start + OP_SEQ_POINT_BP_OFFSET - code;
+                               x86_padding (code, size);
+                       }
                        /* 
                         * A placeholder for a possible breakpoint inserted by
                         * mono_arch_set_breakpoint ().
                         */
-                       for (i = 0; i < 6; ++i)
+                       for (i = 0; i < 2; ++i)
                                x86_nop (code);
                        /*
                         * Add an additional nop so skipping the bp doesn't cause the ip to point
@@ -5096,13 +5132,6 @@ mono_arch_patch_code_new (MonoCompile *cfg, MonoDomain *domain, guint8 *code, Mo
        case MONO_PATCH_INFO_IP:
                *((gconstpointer *)(ip)) = target;
                break;
-       case MONO_PATCH_INFO_CLASS_INIT: {
-               guint8 *code = ip;
-               /* Might already been changed to a nop */
-               x86_call_code (code, 0);
-               x86_patch (ip, (unsigned char*)target);
-               break;
-       }
        case MONO_PATCH_INFO_ABS:
        case MONO_PATCH_INFO_METHOD:
        case MONO_PATCH_INFO_METHOD_JUMP:
@@ -5406,6 +5435,28 @@ mono_arch_emit_prolog (MonoCompile *cfg)
        if (mono_jit_trace_calls != NULL && mono_trace_eval (method))
                code = mono_arch_instrument_prolog (cfg, mono_trace_enter_method, code, TRUE);
 
+       {
+               MonoInst *ins;
+
+               if (cfg->arch.ss_tramp_var) {
+                       /* Initialize ss_tramp_var */
+                       ins = cfg->arch.ss_tramp_var;
+                       g_assert (ins->opcode == OP_REGOFFSET);
+
+                       g_assert (!cfg->compile_aot);
+                       x86_mov_membase_imm (code, ins->inst_basereg, ins->inst_offset, (guint32)&ss_trampoline, 4);
+               }
+
+               if (cfg->arch.bp_tramp_var) {
+                       /* Initialize bp_tramp_var */
+                       ins = cfg->arch.bp_tramp_var;
+                       g_assert (ins->opcode == OP_REGOFFSET);
+
+                       g_assert (!cfg->compile_aot);
+                       x86_mov_membase_imm (code, ins->inst_basereg, ins->inst_offset, (guint32)&bp_trampoline, 4);
+               }
+       }
+
        /* load arguments allocated to register from the stack */
        sig = mono_method_signature (method);
        pos = 0;
@@ -5463,7 +5514,7 @@ mono_arch_emit_epilog (MonoCompile *cfg)
                gboolean supported = FALSE;
 
                if (cfg->compile_aot) {
-#if defined(__APPLE__) || defined(__linux__)
+#if defined(MONO_HAVE_FAST_TLS)
                        supported = TRUE;
 #endif
                } else if (mono_get_jit_tls_offset () != -1) {
@@ -5536,7 +5587,7 @@ mono_arch_emit_epilog (MonoCompile *cfg)
        }
 
        /* Load returned vtypes into registers if needed */
-       cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, sig);
+       cinfo = get_call_info (cfg->mempool, sig);
        if (cinfo->ret.storage == ArgValuetypeInReg) {
                for (quad = 0; quad < 2; quad ++) {
                        switch (cinfo->ret.pair_storage [quad]) {
@@ -5563,7 +5614,7 @@ mono_arch_emit_epilog (MonoCompile *cfg)
        if (CALLCONV_IS_STDCALL (sig)) {
                MonoJitArgumentInfo *arg_info = alloca (sizeof (MonoJitArgumentInfo) * (sig->param_count + 1));
 
-               stack_to_pop = mono_arch_get_argument_info (NULL, sig, sig->param_count, arg_info);
+               stack_to_pop = mono_arch_get_argument_info (sig, sig->param_count, arg_info);
        } else if (cinfo->callee_stack_pop)
                stack_to_pop = cinfo->callee_stack_pop;
        else
@@ -5766,6 +5817,7 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
        int i;
        int size = 0;
        guint8 *code, *start;
+       GSList *unwind_ops;
 
        for (i = 0; i < count; ++i) {
                MonoIMTCheckItem *item = imt_entries [i];
@@ -5802,6 +5854,9 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
                code = mono_domain_code_reserve (domain, size);
 #endif
        start = code;
+
+       unwind_ops = mono_arch_get_cie_program ();
+
        for (i = 0; i < count; ++i) {
                MonoIMTCheckItem *item = imt_entries [i];
                item->code_target = code;
@@ -5888,6 +5943,8 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
        nacl_domain_code_validate (domain, &start, size, &code);
        mono_profiler_code_buffer_new (start, code - start, MONO_PROFILER_CODE_BUFFER_IMT_TRAMPOLINE, NULL);
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, unwind_ops), domain);
+
        return start;
 }
 
@@ -6053,7 +6110,7 @@ mono_breakpoint_clean_code (guint8 *method_start, guint8 *code, int offset, guin
  * call.
  */
 guint32
-mono_x86_get_this_arg_offset (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig)
+mono_x86_get_this_arg_offset (MonoMethodSignature *sig)
 {
        return 0;
 }
@@ -6079,10 +6136,13 @@ mono_arch_get_this_arg_from_call (mgreg_t *regs, guint8 *code)
 #define MAX_ARCH_DELEGATE_PARAMS 10
 
 static gpointer
-get_delegate_invoke_impl (gboolean has_target, guint32 param_count, guint32 *code_len)
+get_delegate_invoke_impl (MonoTrampInfo **info, gboolean has_target, guint32 param_count)
 {
        guint8 *code, *start;
        int code_reserve = 64;
+       GSList *unwind_ops;
+
+       unwind_ops = mono_arch_get_cie_program ();
 
        /*
         * The stack contains:
@@ -6143,8 +6203,13 @@ get_delegate_invoke_impl (gboolean has_target, guint32 param_count, guint32 *cod
 
        nacl_global_codeman_validate (&start, code_reserve, &code);
 
-       if (code_len)
-               *code_len = code - start;
+       if (has_target) {
+               *info = mono_tramp_info_create ("delegate_invoke_impl_has_target", start, code - start, NULL, unwind_ops);
+       } else {
+               char *name = g_strdup_printf ("delegate_invoke_impl_target_%d", param_count);
+               *info = mono_tramp_info_create (name, start, code - start, NULL, unwind_ops);
+               g_free (name);
+       }
 
        if (mono_jit_map_is_enabled ()) {
                char *buff;
@@ -6164,10 +6229,15 @@ get_delegate_invoke_impl (gboolean has_target, guint32 param_count, guint32 *cod
 #define MAX_VIRTUAL_DELEGATE_OFFSET 32
 
 static gpointer
-get_delegate_virtual_invoke_impl (gboolean load_imt_reg, int offset, guint32 *code_size)
+get_delegate_virtual_invoke_impl (MonoTrampInfo **info, gboolean load_imt_reg, int offset)
 {
        guint8 *code, *start;
        int size = 24;
+       char *tramp_name;
+       GSList *unwind_ops;
+
+       if (offset / (int)sizeof (gpointer) > MAX_VIRTUAL_DELEGATE_OFFSET)
+               return NULL;
 
        /*
         * The stack contains:
@@ -6176,6 +6246,8 @@ get_delegate_virtual_invoke_impl (gboolean load_imt_reg, int offset, guint32 *co
         */
        start = code = mono_global_codeman_reserve (size);
 
+       unwind_ops = mono_arch_get_cie_program ();
+
        /* Replace the this argument with the target */
        x86_mov_reg_membase (code, X86_EAX, X86_ESP, 4, 4);
        x86_mov_reg_membase (code, X86_ECX, X86_EAX, MONO_STRUCT_OFFSET (MonoDelegate, target), 4);
@@ -6191,8 +6263,13 @@ get_delegate_virtual_invoke_impl (gboolean load_imt_reg, int offset, guint32 *co
        x86_jump_membase (code, X86_EAX, offset);
        mono_profiler_code_buffer_new (start, code - start, MONO_PROFILER_CODE_BUFFER_DELEGATE_INVOKE, NULL);
 
-       if (code_size)
-               *code_size = code - start;
+       if (load_imt_reg)
+               tramp_name = g_strdup_printf ("delegate_virtual_invoke_imt_%d", - offset / sizeof (gpointer));
+       else
+               tramp_name = g_strdup_printf ("delegate_virtual_invoke_%d", offset / sizeof (gpointer));
+       *info = mono_tramp_info_create (tramp_name, start, code - start, NULL, unwind_ops);
+       g_free (tramp_name);
+
 
        return start;
 }
@@ -6201,31 +6278,23 @@ GSList*
 mono_arch_get_delegate_invoke_impls (void)
 {
        GSList *res = NULL;
-       guint8 *code;
-       guint32 code_len;
+       MonoTrampInfo *info;
        int i;
-       char *tramp_name;
 
-       code = get_delegate_invoke_impl (TRUE, 0, &code_len);
-       res = g_slist_prepend (res, mono_tramp_info_create ("delegate_invoke_impl_has_target", code, code_len, NULL, NULL));
+       get_delegate_invoke_impl (&info, TRUE, 0);
+       res = g_slist_prepend (res, info);
 
-       for (i = 0; i < MAX_ARCH_DELEGATE_PARAMS; ++i) {
-               code = get_delegate_invoke_impl (FALSE, i, &code_len);
-               tramp_name = g_strdup_printf ("delegate_invoke_impl_target_%d", i);
-               res = g_slist_prepend (res, mono_tramp_info_create (tramp_name, code, code_len, NULL, NULL));
-               g_free (tramp_name);
+       for (i = 0; i <= MAX_ARCH_DELEGATE_PARAMS; ++i) {
+               get_delegate_invoke_impl (&info, FALSE, i);
+               res = g_slist_prepend (res, info);
        }
 
-       for (i = 0; i < MAX_VIRTUAL_DELEGATE_OFFSET; ++i) {
-               code = get_delegate_virtual_invoke_impl (TRUE, i * SIZEOF_VOID_P, &code_len);
-               tramp_name = g_strdup_printf ("delegate_virtual_invoke_imt_%d", i);
-               res = g_slist_prepend (res, mono_tramp_info_create (tramp_name, code, code_len, NULL, NULL));
-               g_free (tramp_name);
+       for (i = 0; i <= MAX_VIRTUAL_DELEGATE_OFFSET; ++i) {
+               get_delegate_virtual_invoke_impl (&info, TRUE, - i * SIZEOF_VOID_P);
+               res = g_slist_prepend (res, info);
 
-               code = get_delegate_virtual_invoke_impl (FALSE, i * SIZEOF_VOID_P, &code_len);
-               tramp_name = g_strdup_printf ("delegate_virtual_invoke_%d", i);
-               res = g_slist_prepend (res, mono_tramp_info_create (tramp_name, code, code_len, NULL, NULL));
-               g_free (tramp_name);
+               get_delegate_virtual_invoke_impl (&info, FALSE, i * SIZEOF_VOID_P);
+               res = g_slist_prepend (res, info);
        }
 
        return res;
@@ -6254,10 +6323,13 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
                if (cached)
                        return cached;
 
-               if (mono_aot_only)
+               if (mono_aot_only) {
                        start = mono_aot_get_trampoline ("delegate_invoke_impl_has_target");
-               else
-                       start = get_delegate_invoke_impl (TRUE, 0, NULL);
+               } else {
+                       MonoTrampInfo *info;
+                       start = get_delegate_invoke_impl (&info, TRUE, 0);
+                       mono_tramp_info_register (info, NULL);
+               }
 
                mono_memory_barrier ();
 
@@ -6279,7 +6351,9 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
                        start = mono_aot_get_trampoline (name);
                        g_free (name);
                } else {
-                       start = get_delegate_invoke_impl (FALSE, sig->param_count, NULL);
+                       MonoTrampInfo *info;
+                       start = get_delegate_invoke_impl (&info, FALSE, sig->param_count);
+                       mono_tramp_info_register (info, NULL);
                }
 
                mono_memory_barrier ();
@@ -6293,7 +6367,13 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
 gpointer
 mono_arch_get_delegate_virtual_invoke_impl (MonoMethodSignature *sig, MonoMethod *method, int offset, gboolean load_imt_reg)
 {
-       return get_delegate_virtual_invoke_impl (load_imt_reg, offset, NULL);
+       MonoTrampInfo *info;
+       gpointer code;
+
+       code = get_delegate_virtual_invoke_impl (&info, load_imt_reg, offset);
+       if (code)
+               mono_tramp_info_register (info, NULL);
+       return code;
 }
 
 mgreg_t
@@ -6627,15 +6707,10 @@ mono_arch_get_trampolines (gboolean aot)
 void
 mono_arch_set_breakpoint (MonoJitInfo *ji, guint8 *ip)
 {
-       guint8 *code = ip;
+       guint8 *code = ip + OP_SEQ_POINT_BP_OFFSET;
 
-       /* 
-        * In production, we will use int3 (has to fix the size in the md 
-        * file). But that could confuse gdb, so during development, we emit a SIGSEGV
-        * instead.
-        */
        g_assert (code [0] == 0x90);
-       x86_alu_reg_mem (code, X86_CMP, X86_EAX, (guint32)bp_trigger_page);
+       x86_call_membase (code, X86_ECX, 0);
 }
 
 /*
@@ -6646,10 +6721,10 @@ mono_arch_set_breakpoint (MonoJitInfo *ji, guint8 *ip)
 void
 mono_arch_clear_breakpoint (MonoJitInfo *ji, guint8 *ip)
 {
-       guint8 *code = ip;
+       guint8 *code = ip + OP_SEQ_POINT_BP_OFFSET;
        int i;
 
-       for (i = 0; i < 6; ++i)
+       for (i = 0; i < 2; ++i)
                x86_nop (code);
 }
        
@@ -6661,7 +6736,7 @@ mono_arch_clear_breakpoint (MonoJitInfo *ji, guint8 *ip)
 void
 mono_arch_start_single_stepping (void)
 {
-       mono_mprotect (ss_trigger_page, mono_pagesize (), 0);
+       ss_trampoline = mini_get_single_step_trampoline ();
 }
        
 /*
@@ -6672,7 +6747,7 @@ mono_arch_start_single_stepping (void)
 void
 mono_arch_stop_single_stepping (void)
 {
-       mono_mprotect (ss_trigger_page, mono_pagesize (), MONO_MMAP_READ);
+       ss_trampoline = NULL;
 }
 
 /*
@@ -6684,43 +6759,18 @@ mono_arch_stop_single_stepping (void)
 gboolean
 mono_arch_is_single_step_event (void *info, void *sigctx)
 {
-#ifdef TARGET_WIN32
-       EXCEPTION_RECORD* einfo = ((EXCEPTION_POINTERS*)info)->ExceptionRecord; /* Sometimes the address is off by 4 */
-
-       if (((gpointer)einfo->ExceptionInformation[1] >= ss_trigger_page && (guint8*)einfo->ExceptionInformation[1] <= (guint8*)ss_trigger_page + 128))
-               return TRUE;
-       else
-               return FALSE;
-#else
-       siginfo_t* sinfo = (siginfo_t*) info;
-       /* Sometimes the address is off by 4 */
-       if (sinfo->si_signo == DBG_SIGNAL && (sinfo->si_addr >= ss_trigger_page && (guint8*)sinfo->si_addr <= (guint8*)ss_trigger_page + 128))
-               return TRUE;
-       else
-               return FALSE;
-#endif
+       /* We use soft breakpoints */
+       return FALSE;
 }
 
 gboolean
 mono_arch_is_breakpoint_event (void *info, void *sigctx)
 {
-#ifdef TARGET_WIN32
-       EXCEPTION_RECORD* einfo = ((EXCEPTION_POINTERS*)info)->ExceptionRecord; /* Sometimes the address is off by 4 */
-       if (((gpointer)einfo->ExceptionInformation[1] >= bp_trigger_page && (guint8*)einfo->ExceptionInformation[1] <= (guint8*)bp_trigger_page + 128))
-               return TRUE;
-       else
-               return FALSE;
-#else
-       siginfo_t* sinfo = (siginfo_t*)info;
-       /* Sometimes the address is off by 4 */
-       if (sinfo->si_signo == DBG_SIGNAL && (sinfo->si_addr >= bp_trigger_page && (guint8*)sinfo->si_addr <= (guint8*)bp_trigger_page + 128))
-               return TRUE;
-       else
-               return FALSE;
-#endif
+       /* We use soft breakpoints */
+       return FALSE;
 }
 
-#define BREAKPOINT_SIZE 6
+#define BREAKPOINT_SIZE 2
 
 /*
  * mono_arch_skip_breakpoint:
@@ -6730,7 +6780,7 @@ mono_arch_is_breakpoint_event (void *info, void *sigctx)
 void
 mono_arch_skip_breakpoint (MonoContext *ctx, MonoJitInfo *ji)
 {
-       MONO_CONTEXT_SET_IP (ctx, (guint8*)MONO_CONTEXT_GET_IP (ctx) + BREAKPOINT_SIZE);
+       g_assert_not_reached ();
 }
 
 /*
@@ -6741,7 +6791,7 @@ mono_arch_skip_breakpoint (MonoContext *ctx, MonoJitInfo *ji)
 void
 mono_arch_skip_single_step (MonoContext *ctx)
 {
-       MONO_CONTEXT_SET_IP (ctx, (guint8*)MONO_CONTEXT_GET_IP (ctx) + 6);
+       g_assert_not_reached ();
 }
 
 /*
index 35522459d0f64feaa59f1a335af7bc39d72e3e8e..0547b2c807eaf15c14fb52004f094f87c1073965 100644 (file)
@@ -52,7 +52,7 @@ struct sigcontext {
 #define MONO_ARCH_USE_SIGACTION
 #endif
 
-#if defined(__native_client__)
+#if defined(__native_client__) || defined(HOST_WATCHOS)
 #undef MONO_ARCH_USE_SIGACTION
 #endif
 
@@ -165,6 +165,8 @@ typedef struct {
        gboolean need_stack_frame_inited;
        gboolean need_stack_frame;
        int sp_fp_offset, param_area_size;
+       gpointer ss_tramp_var;
+       gpointer bp_tramp_var;
 } MonoCompileArch;
 
 #define MONO_CONTEXT_SET_LLVM_EXC_REG(ctx, exc) do { (ctx)->eax = (gsize)exc; } while (0)
@@ -214,10 +216,6 @@ typedef struct {
 #define MONO_ARCH_HAVE_GENERALIZED_IMT_THUNK 1
 #define MONO_ARCH_HAVE_LIVERANGE_OPS 1
 #define MONO_ARCH_HAVE_SIGCTX_TO_MONOCTX 1
-#if defined(__linux__) || defined (__APPLE__)
-#define MONO_ARCH_MONITOR_OBJECT_REG X86_EAX
-#define MONO_ARCH_MONITOR_LOCK_TAKEN_REG X86_EDX
-#endif
 #if !defined(__native_client_codegen__)
 #define MONO_ARCH_HAVE_FULL_AOT_TRAMPOLINES 1
 #endif
@@ -239,9 +237,7 @@ typedef struct {
 #define MONO_ARCH_HAVE_LLVM_IMT_TRAMPOLINE 1
 #define MONO_ARCH_LLVM_SUPPORTED 1
 
-#if defined(MONO_ARCH_USE_SIGACTION) || defined(TARGET_WIN32)
 #define MONO_ARCH_SOFT_DEBUG_SUPPORTED 1
-#endif
 
 #define MONO_ARCH_HAVE_EXCEPTIONS_INIT 1
 #define MONO_ARCH_HAVE_HANDLER_BLOCK_GUARD 1
@@ -256,6 +252,7 @@ typedef struct {
 #define MONO_ARCH_HAVE_TRANSLATE_TLS_OFFSET 1
 #define MONO_ARCH_HAVE_TLS_GET_REG 1
 #define MONO_ARCH_HAVE_DUMMY_INIT 1
+#define MONO_ARCH_HAVE_SDB_TRAMPOLINES 1
 #define MONO_ARCH_HAVE_PATCH_CODE_NEW 1
 
 /* Used for optimization, not complete */
@@ -271,13 +268,6 @@ typedef struct {
                        MONO_EMIT_NEW_COND_EXC (cfg, LE_UN, "IndexOutOfRangeException"); \
        } while (0)
 
-typedef struct {
-       guint8 *address;
-       guint8 saved_byte;
-} MonoBreakpointInfo;
-
-extern MonoBreakpointInfo mono_breakpoint_info [MONO_BREAKPOINT_ARRAY_SIZE];
-
 /* Return value marshalling for calls between gsharedvt and normal code */
 typedef enum {
        GSHAREDVT_RET_NONE = 0,
@@ -318,7 +308,7 @@ guint8*
 mono_x86_emit_tls_get_reg (guint8* code, int dreg, int offset_reg);
 
 guint32
-mono_x86_get_this_arg_offset (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig);
+mono_x86_get_this_arg_offset (MonoMethodSignature *sig);
 
 gboolean
 mono_x86_have_tls_get (void);
index be741a249066a9f9e0b7b098fcee2776a681e4c4..986fc1e74232c1ebfc867c2e9a09d2daa5ee7cf9 100644 (file)
@@ -85,8 +85,7 @@ gboolean mono_using_xdebug;
 #define mono_jit_unlock() mono_mutex_unlock (&jit_mutex)
 static mono_mutex_t jit_mutex;
 
-/* Whenever to check for pending exceptions in managed-to-native wrappers */
-gboolean check_for_pending_exc = TRUE;
+#ifndef DISABLE_JIT
 
 gpointer
 mono_realloc_native_code (MonoCompile *cfg)
@@ -199,6 +198,103 @@ void mono_nacl_fix_patches(const guint8 *code, MonoJumpInfo *ji)
 }
 #endif  /* __native_client_codegen__ */
 
+#ifdef USE_JUMP_TABLES
+
+#define DEFAULT_JUMPTABLE_CHUNK_ELEMENTS 128
+
+typedef struct MonoJumpTableChunk {
+       guint32 total;
+       guint32 active;
+       struct MonoJumpTableChunk *previous;
+       /* gpointer entries[total]; */
+} MonoJumpTableChunk;
+
+static MonoJumpTableChunk* g_jumptable;
+#define mono_jumptable_lock() mono_mutex_lock (&jumptable_mutex)
+#define mono_jumptable_unlock() mono_mutex_unlock (&jumptable_mutex)
+static mono_mutex_t jumptable_mutex;
+
+static  MonoJumpTableChunk*
+mono_create_jumptable_chunk (guint32 max_entries)
+{
+       guint32 size = sizeof (MonoJumpTableChunk) + max_entries * sizeof(gpointer);
+       MonoJumpTableChunk *chunk = (MonoJumpTableChunk*) g_new0 (guchar, size);
+       chunk->total = max_entries;
+       return chunk;
+}
+
+void
+mono_jumptable_init (void)
+{
+       if (g_jumptable == NULL) {
+               mono_mutex_init_recursive (&jumptable_mutex);
+               g_jumptable = mono_create_jumptable_chunk (DEFAULT_JUMPTABLE_CHUNK_ELEMENTS);
+       }
+}
+
+gpointer*
+mono_jumptable_add_entry (void)
+{
+       return mono_jumptable_add_entries (1);
+}
+
+gpointer*
+mono_jumptable_add_entries (guint32 entries)
+{
+       guint32 index;
+       gpointer *result;
+
+       mono_jumptable_init ();
+       mono_jumptable_lock ();
+       index = g_jumptable->active;
+       if (index + entries >= g_jumptable->total) {
+               /*
+                * Grow jumptable, by adding one more chunk.
+                * We cannot realloc jumptable, as there could be pointers
+                * to existing jump table entries in the code, so instead
+                * we just add one more chunk.
+                */
+               guint32 max_entries = entries;
+               MonoJumpTableChunk *new_chunk;
+
+               if (max_entries < DEFAULT_JUMPTABLE_CHUNK_ELEMENTS)
+                       max_entries = DEFAULT_JUMPTABLE_CHUNK_ELEMENTS;
+               new_chunk = mono_create_jumptable_chunk (max_entries);
+               /* Link old jumptable, so that we could free it up later. */
+               new_chunk->previous = g_jumptable;
+               g_jumptable = new_chunk;
+               index = 0;
+       }
+       g_jumptable->active = index + entries;
+       result = (gpointer*)((guchar*)g_jumptable + sizeof(MonoJumpTableChunk)) + index;
+       mono_jumptable_unlock();
+
+       return result;
+}
+
+void
+mono_jumptable_cleanup (void)
+{
+       if (g_jumptable) {
+               MonoJumpTableChunk *current = g_jumptable, *prev;
+               while (current != NULL) {
+                       prev = current->previous;
+                       g_free (current);
+                       current = prev;
+               }
+               g_jumptable = NULL;
+               mono_mutex_destroy (&jumptable_mutex);
+       }
+}
+
+gpointer*
+mono_jumptable_get_entry (guint8 *code_ptr)
+{
+       return mono_arch_jumptable_entry_from_code (code_ptr);
+}
+
+#endif /* USE_JUMP_TABLES */
+
 typedef struct {
        MonoExceptionClause *clause;
        MonoBasicBlock *basic_block;
@@ -423,7 +519,7 @@ mono_reverse_branch_op (guint32 opcode)
 guint
 mono_type_to_store_membase (MonoCompile *cfg, MonoType *type)
 {
-       type = mini_get_underlying_type (cfg, type);
+       type = mini_get_underlying_type (type);
 
 handle_enum:
        switch (type->type) {
@@ -469,7 +565,7 @@ handle_enum:
                goto handle_enum;
        case MONO_TYPE_VAR:
        case MONO_TYPE_MVAR:
-               g_assert (mini_type_var_is_vt (cfg, type));
+               g_assert (mini_type_var_is_vt (type));
                return OP_STOREV_MEMBASE;
        default:
                g_error ("unknown type 0x%02x in type_to_store_membase", type->type);
@@ -480,7 +576,7 @@ handle_enum:
 guint
 mono_type_to_load_membase (MonoCompile *cfg, MonoType *type)
 {
-       type = mini_get_underlying_type (cfg, type);
+       type = mini_get_underlying_type (type);
 
        switch (type->type) {
        case MONO_TYPE_I1:
@@ -526,8 +622,8 @@ mono_type_to_load_membase (MonoCompile *cfg, MonoType *type)
                break;
        case MONO_TYPE_VAR:
        case MONO_TYPE_MVAR:
-               g_assert (cfg->generic_sharing_context);
-               g_assert (mini_type_var_is_vt (cfg, type));
+               g_assert (cfg->gshared);
+               g_assert (mini_type_var_is_vt (type));
                return OP_LOADV_MEMBASE;
        default:
                g_error ("unknown type 0x%02x in type_to_load_membase", type->type);
@@ -535,25 +631,12 @@ mono_type_to_load_membase (MonoCompile *cfg, MonoType *type)
        return -1;
 }
 
-static guint
-mini_type_to_ldind (MonoCompile* cfg, MonoType *type)
-{
-       type = mini_get_underlying_type (cfg, type);
-       if (cfg->generic_sharing_context && !type->byref && (type->type == MONO_TYPE_VAR || type->type == MONO_TYPE_MVAR)) {
-               g_assert (mini_type_var_is_vt (cfg, type));
-               return CEE_LDOBJ;
-       }
-       return mono_type_to_ldind (type);
-}
-
-#ifndef DISABLE_JIT
-
 guint
 mini_type_to_stind (MonoCompile* cfg, MonoType *type)
 {
-       type = mini_get_underlying_type (cfg, type);
-       if (cfg->generic_sharing_context && !type->byref && (type->type == MONO_TYPE_VAR || type->type == MONO_TYPE_MVAR)) {
-               g_assert (mini_type_var_is_vt (cfg, type));
+       type = mini_get_underlying_type (type);
+       if (cfg->gshared && !type->byref && (type->type == MONO_TYPE_VAR || type->type == MONO_TYPE_MVAR)) {
+               g_assert (mini_type_var_is_vt (type));
                return CEE_STOBJ;
        }
        return mono_type_to_stind (type);
@@ -691,8 +774,6 @@ mono_decompose_op_imm (MonoCompile *cfg, MonoBasicBlock *bb, MonoInst *ins)
        bb->max_vreg = MAX (bb->max_vreg, cfg->next_vreg);
 }
 
-#endif
-
 static void
 set_vreg_to_inst (MonoCompile *cfg, int vreg, MonoInst *inst)
 {
@@ -712,16 +793,6 @@ set_vreg_to_inst (MonoCompile *cfg, int vreg, MonoInst *inst)
 #define mono_type_is_long(type) (!(type)->byref && ((mono_type_get_underlying_type (type)->type == MONO_TYPE_I8) || (mono_type_get_underlying_type (type)->type == MONO_TYPE_U8)))
 #define mono_type_is_float(type) (!(type)->byref && (((type)->type == MONO_TYPE_R8) || ((type)->type == MONO_TYPE_R4)))
 
-#ifdef DISABLE_JIT
-
-MonoInst*
-mono_compile_create_var (MonoCompile *cfg, MonoType *type, int opcode)
-{
-       return NULL;
-}
-
-#else
-
 MonoInst*
 mono_compile_create_var_for_vreg (MonoCompile *cfg, MonoType *type, int opcode, int vreg)
 {
@@ -729,7 +800,7 @@ mono_compile_create_var_for_vreg (MonoCompile *cfg, MonoType *type, int opcode,
        int num = cfg->num_varinfo;
        gboolean regpair;
 
-       type = mini_get_underlying_type (cfg, type);
+       type = mini_get_underlying_type (type);
 
        if ((num + 1) >= cfg->varinfo_count) {
                int orig_count = cfg->varinfo_count;
@@ -757,7 +828,7 @@ mono_compile_create_var_for_vreg (MonoCompile *cfg, MonoType *type, int opcode,
                if (type->byref) {
                        mono_mark_vreg_as_mp (cfg, vreg);
                } else {
-                       if ((MONO_TYPE_ISSTRUCT (type) && inst->klass->has_references) || mini_type_is_reference (cfg, type)) {
+                       if ((MONO_TYPE_ISSTRUCT (type) && inst->klass->has_references) || mini_type_is_reference (type)) {
                                inst->flags |= MONO_INST_GC_TRACK;
                                mono_mark_vreg_as_ref (cfg, vreg);
                        }
@@ -838,7 +909,7 @@ MonoInst*
 mono_compile_create_var (MonoCompile *cfg, MonoType *type, int opcode)
 {
        int dreg;
-       type = mini_get_underlying_type (cfg, type);
+       type = mini_get_underlying_type (type);
 
        if (mono_type_is_long (type))
                dreg = mono_alloc_dreg (cfg, STACK_I8);
@@ -851,19 +922,6 @@ mono_compile_create_var (MonoCompile *cfg, MonoType *type, int opcode)
        return mono_compile_create_var_for_vreg (cfg, type, opcode, dreg);
 }
 
-/*
- * Transform a MonoInst into a load from the variable of index var_index.
- */
-void
-mono_compile_make_var_load (MonoCompile *cfg, MonoInst *dest, gssize var_index)
-{
-       memset (dest, 0, sizeof (MonoInst));
-       dest->inst_i0 = cfg->varinfo [var_index];
-       dest->opcode = mini_type_to_ldind (cfg, dest->inst_i0->inst_vtype);
-       type_to_eval_stack_type (cfg, dest->inst_i0->inst_vtype, dest);
-       dest->klass = dest->inst_i0->klass;
-}
-
 MonoInst*
 mini_get_int_to_float_spill_area (MonoCompile *cfg)
 {
@@ -878,8 +936,6 @@ mini_get_int_to_float_spill_area (MonoCompile *cfg)
 #endif
 }
 
-#endif
-
 void
 mono_mark_vreg_as_ref (MonoCompile *cfg, int vreg)
 {
@@ -913,7 +969,8 @@ mono_mark_vreg_as_mp (MonoCompile *cfg, int vreg)
 }      
 
 static MonoType*
-type_from_stack_type (MonoInst *ins) {
+type_from_stack_type (MonoInst *ins)
+{
        switch (ins->type) {
        case STACK_I4: return &mono_defaults.int32_class->byval_arg;
        case STACK_I8: return &mono_defaults.int64_class->byval_arg;
@@ -944,7 +1001,8 @@ type_from_stack_type (MonoInst *ins) {
 }
 
 MonoType*
-mono_type_from_stack_type (MonoInst *ins) {
+mono_type_from_stack_type (MonoInst *ins)
+{
        return type_from_stack_type (ins);
 }
 
@@ -1235,8 +1293,6 @@ compare_by_interval_start_pos_func (gconstpointer a, gconstpointer b)
                return 1;
 }
 
-#ifndef DISABLE_JIT
-
 #if 0
 #define LSCAN_DEBUG(a) do { a; } while (0)
 #else
@@ -1301,7 +1357,7 @@ mono_allocate_stack_slots2 (MonoCompile *cfg, gboolean backward, guint32 *stack_
                inst = cfg->varinfo [vmv->idx];
 
                t = mono_type_get_underlying_type (inst->inst_vtype);
-               if (cfg->gsharedvt && mini_is_gsharedvt_variable_type (cfg, t))
+               if (cfg->gsharedvt && mini_is_gsharedvt_variable_type (t))
                        continue;
 
                /* inst->backend.is_pinvoke indicates native sized value types, this is used by the
@@ -1312,7 +1368,7 @@ mono_allocate_stack_slots2 (MonoCompile *cfg, gboolean backward, guint32 *stack_
                else {
                        int ialign;
 
-                       size = mini_type_stack_size (NULL, t, &ialign);
+                       size = mini_type_stack_size (t, &ialign);
                        align = ialign;
 
                        if (MONO_CLASS_IS_SIMD (cfg, mono_class_from_mono_type (t)))
@@ -1323,7 +1379,7 @@ mono_allocate_stack_slots2 (MonoCompile *cfg, gboolean backward, guint32 *stack_
                if (cfg->disable_reuse_stack_slots)
                        reuse_slot = FALSE;
 
-               t = mini_get_underlying_type (cfg, t);
+               t = mini_get_underlying_type (t);
                switch (t->type) {
                case MONO_TYPE_GENERICINST:
                        if (!mono_type_generic_inst_is_valuetype (t)) {
@@ -1598,7 +1654,7 @@ mono_allocate_stack_slots (MonoCompile *cfg, gboolean backward, guint32 *stack_s
                inst = cfg->varinfo [vmv->idx];
 
                t = mono_type_get_underlying_type (inst->inst_vtype);
-               if (cfg->gsharedvt && mini_is_gsharedvt_variable_type (cfg, t))
+               if (cfg->gsharedvt && mini_is_gsharedvt_variable_type (t))
                        continue;
 
                /* inst->backend.is_pinvoke indicates native sized value types, this is used by the
@@ -1608,7 +1664,7 @@ mono_allocate_stack_slots (MonoCompile *cfg, gboolean backward, guint32 *stack_s
                } else {
                        int ialign;
 
-                       size = mini_type_stack_size (NULL, t, &ialign);
+                       size = mini_type_stack_size (t, &ialign);
                        align = ialign;
 
                        if (mono_class_from_mono_type (t)->exception_type)
@@ -1622,7 +1678,7 @@ mono_allocate_stack_slots (MonoCompile *cfg, gboolean backward, guint32 *stack_s
                if (cfg->disable_reuse_stack_slots)
                        reuse_slot = FALSE;
 
-               t = mini_get_underlying_type (cfg, t);
+               t = mini_get_underlying_type (t);
                switch (t->type) {
                case MONO_TYPE_GENERICINST:
                        if (!mono_type_generic_inst_is_valuetype (t)) {
@@ -1795,17 +1851,6 @@ mono_allocate_stack_slots (MonoCompile *cfg, gboolean backward, guint32 *stack_s
        return offsets;
 }
 
-#else
-
-gint32*
-mono_allocate_stack_slots (MonoCompile *cfg, gboolean backward, guint32 *stack_size, guint32 *stack_align)
-{
-       g_assert_not_reached ();
-       return NULL;
-}
-
-#endif /* DISABLE_JIT */
-
 #define EMUL_HIT_SHIFT 3
 #define EMUL_HIT_MASK ((1 << EMUL_HIT_SHIFT) - 1)
 /* small hit bitmap cache */
@@ -1854,7 +1899,8 @@ mini_register_opcode_emulation (int opcode, const char *name, const char *sigstr
 }
 
 static void
-print_dfn (MonoCompile *cfg) {
+print_dfn (MonoCompile *cfg)
+{
        int i, j;
        char *code;
        MonoBasicBlock *bb;
@@ -2007,7 +2053,6 @@ mono_verify_cfg (MonoCompile *cfg)
 void
 mono_destroy_compile (MonoCompile *cfg)
 {
-#ifndef DISABLE_JIT
        GSList *l;
 
        if (cfg->header)
@@ -2034,11 +2079,8 @@ mono_destroy_compile (MonoCompile *cfg)
        g_free (cfg->vars);
        g_free (cfg->exception_message);
        g_free (cfg);
-#endif
 }
 
-#ifndef DISABLE_JIT
-
 static MonoInst*
 mono_create_tls_get_offset (MonoCompile *cfg, int offset)
 {
@@ -2071,12 +2113,15 @@ mini_tls_get_supported (MonoCompile *cfg, MonoTlsKey key)
 MonoInst*
 mono_create_tls_get (MonoCompile *cfg, MonoTlsKey key)
 {
+       if (!MONO_ARCH_HAVE_TLS_GET)
+               return NULL;
+
        /*
         * TLS offsets might be different at AOT time, so load them from a GOT slot and
         * use a different opcode.
         */
        if (cfg->compile_aot) {
-               if (MONO_ARCH_HAVE_TLS_GET && ARCH_HAVE_TLS_GET_REG) {
+               if (ARCH_HAVE_TLS_GET_REG) {
                        MonoInst *ins, *c;
 
                        EMIT_NEW_TLS_OFFSETCONST (cfg, c, key);
@@ -2122,9 +2167,6 @@ mono_get_lmf_addr_intrinsic (MonoCompile* cfg)
        return mono_create_tls_get (cfg, TLS_KEY_LMF_ADDR);
 }
 
-#endif /* !DISABLE_JIT */
-
-
 void
 mono_add_patch_info (MonoCompile *cfg, int ip, MonoJumpInfoType type, gconstpointer target)
 {
@@ -2196,8 +2238,6 @@ mono_add_var_location (MonoCompile *cfg, MonoInst *var, gboolean is_reg, int reg
                cfg->rgctx_loclist = g_slist_append_mempool (cfg->mempool, cfg->rgctx_loclist, entry);
 }
 
-#ifndef DISABLE_JIT
-
 static void
 mono_compile_create_vars (MonoCompile *cfg)
 {
@@ -2529,7 +2569,7 @@ mono_codegen (MonoCompile *cfg)
                        is_generic = TRUE;
                }
 
-               if (cfg->generic_sharing_context)
+               if (cfg->gshared)
                        g_assert (is_generic);
        }
 
@@ -2627,37 +2667,6 @@ mono_handle_out_of_line_bblock (MonoCompile *cfg)
        }
 }
 
-#endif /* #ifndef DISABLE_JIT */
-
-static MonoJitInfo*
-create_jit_info_for_trampoline (MonoMethod *wrapper, MonoTrampInfo *info)
-{
-       MonoDomain *domain = mono_get_root_domain ();
-       MonoJitInfo *jinfo;
-       guint8 *uw_info;
-       guint32 info_len;
-
-       if (info->uw_info) {
-               uw_info = info->uw_info;
-               info_len = info->uw_info_len;
-       } else {
-               uw_info = mono_unwind_ops_encode (info->unwind_ops, &info_len);
-       }
-
-       jinfo = mono_domain_alloc0 (domain, MONO_SIZEOF_JIT_INFO);
-       jinfo->d.method = wrapper;
-       jinfo->code_start = info->code;
-       jinfo->code_size = info->code_size;
-       jinfo->unwind_info = mono_cache_unwind_info (uw_info, info_len);
-
-       if (!info->uw_info)
-               g_free (uw_info);
-
-       return jinfo;
-}
-
-#ifndef DISABLE_JIT
-
 static MonoJitInfo*
 create_jit_info (MonoCompile *cfg, MonoMethod *method_to_compile)
 {
@@ -2671,7 +2680,7 @@ create_jit_info (MonoCompile *cfg, MonoMethod *method_to_compile)
        g_assert (method_to_compile == cfg->method);
        header = cfg->header;
 
-       if (cfg->generic_sharing_context)
+       if (cfg->gshared)
                flags |= JIT_INFO_HAS_GENERIC_JIT_INFO;
 
        if (cfg->arch_eh_jit_info) {
@@ -2683,7 +2692,7 @@ create_jit_info (MonoCompile *cfg, MonoMethod *method_to_compile)
                 * mono_arch_get_argument_info () is not signal safe.
                 */
                arg_info = g_newa (MonoJitArgumentInfo, sig->param_count + 1);
-               stack_size = mono_arch_get_argument_info (cfg->generic_sharing_context, sig, sig->param_count, arg_info);
+               stack_size = mono_arch_get_argument_info (sig, sig->param_count, arg_info);
 
                if (stack_size)
                        flags |= JIT_INFO_HAS_ARCH_EH_INFO;
@@ -2728,7 +2737,7 @@ create_jit_info (MonoCompile *cfg, MonoMethod *method_to_compile)
        if (COMPILE_LLVM (cfg))
                jinfo->from_llvm = TRUE;
 
-       if (cfg->generic_sharing_context) {
+       if (cfg->gshared) {
                MonoInst *inst;
                MonoGenericJitInfo *gi;
                GSList *loclist = NULL;
@@ -2996,7 +3005,6 @@ create_jit_info (MonoCompile *cfg, MonoMethod *method_to_compile)
 
        return jinfo;
 }
-#endif
 
 /* Return whenever METHOD is a gsharedvt method */
 static gboolean
@@ -3039,8 +3047,6 @@ is_open_method (MonoMethod *method)
        return FALSE;
 }
 
-#ifndef DISABLE_JIT
-
 #if defined(__native_client_codegen__) || USE_COOP_GC
 
 static void
@@ -3098,6 +3104,23 @@ static void
 mono_insert_safepoints (MonoCompile *cfg)
 {
        MonoBasicBlock *bb;
+       if (cfg->method->wrapper_type == MONO_WRAPPER_MANAGED_TO_NATIVE) {
+               WrapperInfo *info = mono_marshal_get_wrapper_info (cfg->method);
+#if defined(__native_client__) || defined(__native_client_codegen__)
+               gpointer poll_func = &mono_nacl_gc;
+#elif defined(USE_COOP_GC)
+               gpointer poll_func = &mono_threads_state_poll;
+#else
+               gpointer poll_func = NULL;
+#endif
+
+               if (info && info->subtype == WRAPPER_SUBTYPE_ICALL_WRAPPER && info->d.icall.func == poll_func) {
+                       if (cfg->verbose_level > 1)
+                               printf ("SKIPPING SAFEPOINTS for the polling function icall\n");
+                       return;
+               }
+       }
+
 
        if (cfg->verbose_level > 1)
                printf ("INSERTING SAFEPOINTS\n");
@@ -3135,7 +3158,7 @@ mono_insert_safepoints (MonoCompile *cfg)
  * field in the returned struct to see if compilation succeded.
  */
 MonoCompile*
-mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFlags flags, int parts)
+mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFlags flags, int parts, int aot_method_index)
 {
        MonoMethodHeader *header;
        MonoMethodSignature *sig;
@@ -3248,9 +3271,11 @@ mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFl
        cfg->check_pinvoke_callconv = debug_options.check_pinvoke_callconv;
        cfg->disable_direct_icalls = disable_direct_icalls;
        if (try_generic_shared)
-               cfg->generic_sharing_context = (MonoGenericSharingContext*)&cfg->gsctx;
+               cfg->gshared = TRUE;
        cfg->compile_llvm = try_llvm;
        cfg->token_info_hash = g_hash_table_new (NULL, NULL);
+       if (cfg->compile_aot)
+               cfg->method_index = aot_method_index;
 
        if (!mono_debug_count ())
                cfg->opt &= ~MONO_OPT_FLOAT32;
@@ -3266,7 +3291,7 @@ mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFl
                return cfg;
        }
 
-       if (cfg->generic_sharing_context && (gsharedvt_method || mini_is_gsharedvt_sharable_method (method))) {
+       if (cfg->gshared && (gsharedvt_method || mini_is_gsharedvt_sharable_method (method))) {
                MonoMethodInflated *inflated;
                MonoGenericContext *context;
 
@@ -3289,11 +3314,11 @@ mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFl
                cfg->gsharedvt = TRUE;
                // FIXME:
                cfg->disable_llvm = TRUE;
+               cfg->exception_message = g_strdup ("gsharedvt");
        }
 
-       if (cfg->generic_sharing_context) {
+       if (cfg->gshared) {
                method_to_register = method_to_compile;
-               cfg->gshared = TRUE;
        } else {
                g_assert (method == method_to_compile);
                method_to_register = method;
@@ -3434,13 +3459,13 @@ mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFl
                char *method_name;
 
                method_name = mono_method_full_name (method, TRUE);
-               g_print ("converting %s%s%smethod %s\n", COMPILE_LLVM (cfg) ? "llvm " : "", cfg->gsharedvt ? "gsharedvt " : "", (cfg->generic_sharing_context && !cfg->gsharedvt) ? "gshared " : "", method_name);
+               g_print ("converting %s%s%smethod %s\n", COMPILE_LLVM (cfg) ? "llvm " : "", cfg->gsharedvt ? "gsharedvt " : "", (cfg->gshared && !cfg->gsharedvt) ? "gshared " : "", method_name);
                /*
                if (COMPILE_LLVM (cfg))
                        g_print ("converting llvm method %s\n", method_name = mono_method_full_name (method, TRUE));
                else if (cfg->gsharedvt)
                        g_print ("converting gsharedvt method %s\n", method_name = mono_method_full_name (method_to_compile, TRUE));
-               else if (cfg->generic_sharing_context)
+               else if (cfg->gshared)
                        g_print ("converting shared method %s\n", method_name = mono_method_full_name (method_to_compile, TRUE));
                else
                        g_print ("converting method %s\n", method_name = mono_method_full_name (method, TRUE));
@@ -3567,6 +3592,8 @@ mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFl
        if (!COMPILE_LLVM (cfg))
                mono_if_conversion (cfg);
 
+       MONO_SUSPEND_CHECK ();
+
        /* Depth-first ordering on basic blocks */
        cfg->bblocks = mono_mempool_alloc (cfg->mempool, sizeof (MonoBasicBlock*) * (cfg->num_bblocks + 1));
 
@@ -3943,17 +3970,63 @@ mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFl
        return cfg;
 }
 
-#else
+void*
+mono_arch_instrument_epilog (MonoCompile *cfg, void *func, void *p, gboolean enable_arguments)
+{
+       return mono_arch_instrument_epilog_full (cfg, func, p, enable_arguments, FALSE);
+}
 
-MonoCompile*
-mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFlags flags, int parts)
+void
+mono_cfg_add_try_hole (MonoCompile *cfg, MonoExceptionClause *clause, guint8 *start, MonoBasicBlock *bb)
 {
-       g_assert_not_reached ();
-       return NULL;
+       TryBlockHole *hole = mono_mempool_alloc (cfg->mempool, sizeof (TryBlockHole));
+       hole->clause = clause;
+       hole->start_offset = start - cfg->native_code;
+       hole->basic_block = bb;
+
+       cfg->try_block_holes = g_slist_append_mempool (cfg->mempool, cfg->try_block_holes, hole);
+}
+
+void
+mono_cfg_set_exception (MonoCompile *cfg, int type)
+{
+       cfg->exception_type = type;
 }
 
 #endif /* DISABLE_JIT */
 
+static MonoJitInfo*
+create_jit_info_for_trampoline (MonoMethod *wrapper, MonoTrampInfo *info)
+{
+       MonoDomain *domain = mono_get_root_domain ();
+       MonoJitInfo *jinfo;
+       guint8 *uw_info;
+       guint32 info_len;
+
+       if (info->uw_info) {
+               uw_info = info->uw_info;
+               info_len = info->uw_info_len;
+       } else {
+               uw_info = mono_unwind_ops_encode (info->unwind_ops, &info_len);
+       }
+
+       jinfo = mono_domain_alloc0 (domain, MONO_SIZEOF_JIT_INFO);
+       jinfo->d.method = wrapper;
+       jinfo->code_start = info->code;
+       jinfo->code_size = info->code_size;
+       jinfo->unwind_info = mono_cache_unwind_info (uw_info, info_len);
+
+       if (!info->uw_info)
+               g_free (uw_info);
+
+       return jinfo;
+}
+
+/*
+ * mono_jit_compile_method_inner:
+ *
+ *   Main entry point for the JIT.
+ */
 gpointer
 mono_jit_compile_method_inner (MonoMethod *method, MonoDomain *target_domain, int opt, MonoException **jit_ex)
 {
@@ -3983,7 +4056,7 @@ mono_jit_compile_method_inner (MonoMethod *method, MonoDomain *target_domain, in
                        else
                                mono_lookup_pinvoke_call (method, NULL, NULL);
                }
-               nm = mono_marshal_get_native_wrapper (method, check_for_pending_exc, mono_aot_only);
+               nm = mono_marshal_get_native_wrapper (method, TRUE, mono_aot_only);
                code = mono_get_addr_from_ftnptr (mono_compile_method (nm));
                jinfo = mono_jit_info_table_find (target_domain, code);
                if (!jinfo)
@@ -4076,7 +4149,7 @@ mono_jit_compile_method_inner (MonoMethod *method, MonoDomain *target_domain, in
 
        jit_timer = g_timer_new ();
 
-       cfg = mini_method_compile (method, opt, target_domain, JIT_FLAG_RUN_CCTORS, 0);
+       cfg = mini_method_compile (method, opt, target_domain, JIT_FLAG_RUN_CCTORS, 0, -1);
        prof_method = cfg->method;
 
        g_timer_stop (jit_timer);
@@ -4182,7 +4255,7 @@ mono_jit_compile_method_inner (MonoMethod *method, MonoDomain *target_domain, in
 
                code = cfg->native_code;
 
-               if (cfg->generic_sharing_context && mono_method_is_generic_sharable (method, FALSE))
+               if (cfg->gshared && mono_method_is_generic_sharable (method, FALSE))
                        mono_stats.generics_shared_methods++;
                if (cfg->gsharedvt)
                        mono_stats.gsharedvt_methods++;
@@ -4274,32 +4347,6 @@ mono_jit_compile_method_inner (MonoMethod *method, MonoDomain *target_domain, in
        return code;
 }
 
-#ifndef DISABLE_JIT
-
-void*
-mono_arch_instrument_epilog (MonoCompile *cfg, void *func, void *p, gboolean enable_arguments) {
-       return mono_arch_instrument_epilog_full (cfg, func, p, enable_arguments, FALSE);
-}
-
-void
-mono_cfg_add_try_hole (MonoCompile *cfg, MonoExceptionClause *clause, guint8 *start, MonoBasicBlock *bb)
-{
-       TryBlockHole *hole = mono_mempool_alloc (cfg->mempool, sizeof (TryBlockHole));
-       hole->clause = clause;
-       hole->start_offset = start - cfg->native_code;
-       hole->basic_block = bb;
-
-       cfg->try_block_holes = g_slist_append_mempool (cfg->mempool, cfg->try_block_holes, hole);
-}
-
-void
-mono_cfg_set_exception (MonoCompile *cfg, int type)
-{
-       cfg->exception_type = type;
-}
-
-#endif
-
 /* Dummy versions of some arch specific functions to avoid ifdefs at call sites */
 
 #ifndef MONO_ARCH_GSHAREDVT_SUPPORTED
@@ -4311,7 +4358,7 @@ mono_arch_gsharedvt_sig_supported (MonoMethodSignature *sig)
 }
 
 gpointer
-mono_arch_get_gsharedvt_call_info (gpointer addr, MonoMethodSignature *normal_sig, MonoMethodSignature *gsharedvt_sig, MonoGenericSharingContext *gsctx, gboolean gsharedvt_in, gint32 vcall_offset, gboolean calli)
+mono_arch_get_gsharedvt_call_info (gpointer addr, MonoMethodSignature *normal_sig, MonoMethodSignature *gsharedvt_sig, gboolean gsharedvt_in, gint32 vcall_offset, gboolean calli)
 {
        g_assert_not_reached ();
        return NULL;
@@ -4342,7 +4389,7 @@ mono_arch_gsharedvt_sig_supported (MonoMethodSignature *sig)
 }
 
 gpointer
-mono_arch_get_gsharedvt_call_info (gpointer addr, MonoMethodSignature *normal_sig, MonoMethodSignature *gsharedvt_sig, MonoGenericSharingContext *gsctx, gboolean gsharedvt_in, gint32 vcall_offset, gboolean calli)
+mono_arch_get_gsharedvt_call_info (gpointer addr, MonoMethodSignature *normal_sig, MonoMethodSignature *gsharedvt_sig, gboolean gsharedvt_in, gint32 vcall_offset, gboolean calli)
 {
        NOT_IMPLEMENTED;
        return NULL;
@@ -4350,113 +4397,19 @@ mono_arch_get_gsharedvt_call_info (gpointer addr, MonoMethodSignature *normal_si
 
 #endif
 
-#ifdef USE_JUMP_TABLES
-#define DEFAULT_JUMPTABLE_CHUNK_ELEMENTS 128
-
-typedef struct MonoJumpTableChunk {
-       guint32 total;
-       guint32 active;
-       struct MonoJumpTableChunk *previous;
-       /* gpointer entries[total]; */
-} MonoJumpTableChunk;
-
-static MonoJumpTableChunk* g_jumptable;
-#define mono_jumptable_lock() mono_mutex_lock (&jumptable_mutex)
-#define mono_jumptable_unlock() mono_mutex_unlock (&jumptable_mutex)
-static mono_mutex_t jumptable_mutex;
-
-static  MonoJumpTableChunk*
-mono_create_jumptable_chunk (guint32 max_entries)
-{
-       guint32 size = sizeof (MonoJumpTableChunk) + max_entries * sizeof(gpointer);
-       MonoJumpTableChunk *chunk = (MonoJumpTableChunk*) g_new0 (guchar, size);
-       chunk->total = max_entries;
-       return chunk;
-}
-
+#ifndef ENABLE_LLVM
 void
-mono_jumptable_init (void)
+mono_llvm_emit_aot_file_info (MonoAotFileInfo *info, gboolean has_jitted_code)
 {
-       if (g_jumptable == NULL) {
-               mono_mutex_init_recursive (&jumptable_mutex);
-               g_jumptable = mono_create_jumptable_chunk (DEFAULT_JUMPTABLE_CHUNK_ELEMENTS);
-       }
-}
-
-gpointer*
-mono_jumptable_add_entry (void)
-{
-       return mono_jumptable_add_entries (1);
-}
-
-gpointer*
-mono_jumptable_add_entries (guint32 entries)
-{
-       guint32 index;
-       gpointer *result;
-
-       mono_jumptable_init ();
-       mono_jumptable_lock ();
-       index = g_jumptable->active;
-       if (index + entries >= g_jumptable->total) {
-               /*
-                * Grow jumptable, by adding one more chunk.
-                * We cannot realloc jumptable, as there could be pointers
-                * to existing jump table entries in the code, so instead
-                * we just add one more chunk.
-                */
-               guint32 max_entries = entries;
-               MonoJumpTableChunk *new_chunk;
-
-               if (max_entries < DEFAULT_JUMPTABLE_CHUNK_ELEMENTS)
-                       max_entries = DEFAULT_JUMPTABLE_CHUNK_ELEMENTS;
-               new_chunk = mono_create_jumptable_chunk (max_entries);
-               /* Link old jumptable, so that we could free it up later. */
-               new_chunk->previous = g_jumptable;
-               g_jumptable = new_chunk;
-               index = 0;
-       }
-       g_jumptable->active = index + entries;
-       result = (gpointer*)((guchar*)g_jumptable + sizeof(MonoJumpTableChunk)) + index;
-       mono_jumptable_unlock();
-
-       return result;
-}
-
-void
-mono_jumptable_cleanup (void)
-{
-       if (g_jumptable) {
-               MonoJumpTableChunk *current = g_jumptable, *prev;
-               while (current != NULL) {
-                       prev = current->previous;
-                       g_free (current);
-                       current = prev;
-               }
-               g_jumptable = NULL;
-               mono_mutex_destroy (&jumptable_mutex);
-       }
+       g_assert_not_reached ();
 }
 
-gpointer*
-mono_jumptable_get_entry (guint8 *code_ptr)
+void mono_llvm_emit_aot_data (const char *symbol, guint8 *data, int data_len)
 {
-       return mono_arch_jumptable_entry_from_code (code_ptr);
+       g_assert_not_reached ();
 }
 #endif
 
-/*
- * mini_replace_type:
- *
- * Replace the type used in the metadata stream with what the JIT will actually use during compilation.
-*/
-MonoType*
-mini_replace_type (MonoType *type)
-{
-       type = mono_type_get_underlying_type (type);
-       return mini_native_type_replace_type (type);
-}
-
 /*
  * mini_get_underlying_type:
  *
@@ -4465,10 +4418,9 @@ mini_replace_type (MonoType *type)
  * For gsharedvt types, it will return the original VAR/MVAR.
  */
 MonoType*
-mini_get_underlying_type (MonoCompile *cfg, MonoType *type)
+mini_get_underlying_type (MonoType *type)
 {
-       type = mini_type_get_underlying_type (cfg->generic_sharing_context, type);
-       return mini_native_type_replace_type (type);
+       return mini_type_get_underlying_type (type);
 }
 
 void
@@ -4480,6 +4432,31 @@ mini_jit_init (void)
 void
 mini_jit_cleanup (void)
 {
+#ifndef DISABLE_JIT
        g_free (emul_opcode_map);
        g_free (emul_opcode_opcodes);
+#endif
+}
+
+#ifdef DISABLE_JIT
+
+MonoCompile*
+mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFlags flags, int parts, int aot_method_index)
+{
+       g_assert_not_reached ();
+       return NULL;
+}
+
+void
+mono_destroy_compile (MonoCompile *cfg)
+{
+       g_assert_not_reached ();
+}
+
+void
+mono_add_patch_info (MonoCompile *cfg, int ip, MonoJumpInfoType type, gconstpointer target)
+{
+       g_assert_not_reached ();
 }
+
+#endif /* DISABLE_JIT */
index 61876da9ace7fa908df8ebe848d66e7662596d9f..e33734d3c70e38f17b1f41a54dc9dbd8199327ca 100644 (file)
 #endif
 
 /* Version number of the AOT file format */
-#define MONO_AOT_FILE_VERSION 117
+#define MONO_AOT_FILE_VERSION 121
 
 //TODO: This is x86/amd64 specific.
 #define mono_simd_shuffle_mask(a,b,c,d) ((a) | ((b) << 2) | ((c) << 4) | ((d) << 6))
@@ -188,35 +188,29 @@ typedef struct MonoAotFileInfo
        guint32 dummy;
 
        /* All the pointers should be at the start to avoid alignment problems */
-
-       /* Mono's Global Offset Table */
-       gpointer got;
+       /* Symbols */
+#define MONO_AOT_FILE_INFO_FIRST_SYMBOL jit_got
+       /* Global Offset Table for JITted code */
+       gpointer jit_got;
        /* Global Offset Table for LLVM code */
        gpointer llvm_got;
-       /* Compiled code for methods */
-       gpointer methods;
-       gpointer jit_code_start;
-       gpointer jit_code_end;
        /* Mono EH Frame created by llc when using LLVM */
        gpointer mono_eh_frame;
+       gpointer jit_code_start;
+       gpointer jit_code_end;
+       gpointer method_addresses;
        /* Data blob */
        gpointer blob;
        gpointer class_name_table;
        gpointer class_info_offsets;
        gpointer method_info_offsets;
        gpointer ex_info_offsets;
-       gpointer method_addresses;
        gpointer extra_method_info_offsets;
        gpointer extra_method_table;
        gpointer got_info_offsets;
        gpointer llvm_got_info_offsets;
-       gpointer unwind_info;
        gpointer mem_end;
        gpointer image_table;
-       /* Start of Mono's Program Linkage Table */
-       gpointer plt;
-       /* End of Mono's Program Linkage Table */
-       gpointer plt_end;
        /* The GUID of the assembly which the AOT image was generated from */
        gpointer assembly_guid;
        /*
@@ -233,13 +227,20 @@ typedef struct MonoAotFileInfo
        gpointer globals;
        /* Points to a string containing the assembly name*/
        gpointer assembly_name;
+       /* Start of Mono's Program Linkage Table */
+       gpointer plt;
+       /* End of Mono's Program Linkage Table */
+       gpointer plt_end;
+       gpointer unwind_info;
        /* Points to a table mapping methods to their unbox trampolines */
        gpointer unbox_trampolines;
        /* Points to the end of the previous table */
        gpointer unbox_trampolines_end;
        /* Points to a table of unbox trampoline addresses/offsets */
        gpointer unbox_trampoline_addresses;
+#define        MONO_AOT_FILE_INFO_LAST_SYMBOL unbox_trampoline_addresses
 
+       /* Scalars */
        /* The index of the first GOT slot used by the PLT */
        guint32 plt_got_offset_base;
        /* Number of entries in the GOT */
@@ -256,23 +257,26 @@ typedef struct MonoAotFileInfo
        guint32 simd_opts;
        /* Index of the blob entry holding the GC used by this module */
        gint32 gc_name_index;
+       guint32 num_rgctx_fetch_trampolines;
+       /* These are used for sanity checking object layout problems when cross-compiling */
+       guint32 double_align, long_align, generic_tramp_num;
+       /* The page size used by trampoline pages */
+       guint32 tramp_page_size;
 
+       /* Arrays */
        /* Number of trampolines */
        guint32 num_trampolines [MONO_AOT_TRAMP_NUM];
        /* The indexes of the first GOT slots used by the trampolines */
        guint32 trampoline_got_offset_base [MONO_AOT_TRAMP_NUM];
        /* The size of one trampoline */
        guint32 trampoline_size [MONO_AOT_TRAMP_NUM];
-       guint32 num_rgctx_fetch_trampolines;
-
-       /* These are used for sanity checking object layout problems when cross-compiling */
-       guint32 double_align, long_align, generic_tramp_num;
-       /* The page size used by trampoline pages */
-       guint32 tramp_page_size;
        /* The offset where the trampolines begin on a trampoline page */
        guint32 tramp_page_code_offsets [MONO_AOT_TRAMP_NUM];
 } MonoAotFileInfo;
 
+/* Number of symbols in the MonoAotFileInfo structure */
+#define MONO_AOT_FILE_INFO_NUM_SYMBOLS (((G_STRUCT_OFFSET (MonoAotFileInfo, MONO_AOT_FILE_INFO_LAST_SYMBOL) - G_STRUCT_OFFSET (MonoAotFileInfo, MONO_AOT_FILE_INFO_FIRST_SYMBOL)) / sizeof (gpointer)) + 1)
+
 typedef struct
 {
        MonoClass *klass;
@@ -303,9 +307,10 @@ typedef struct
        /* maps MonoMethod -> MonoJitDynamicMethodInfo */
        GHashTable *dynamic_code_hash;
        GHashTable *method_code_hash;
-       /* Maps methods to a RuntimeInvokeInfo structure */
+       /* Maps methods to a RuntimeInvokeInfo structure, protected by the associated MonoDomain lock */
        MonoConcurrentHashTable *runtime_invoke_hash;
        /* Maps MonoMethod to a GPtrArray containing sequence point locations */
+       /* Protected by the domain lock */
        GHashTable *seq_points;
        /* Debugger agent data */
        gpointer agent_info;
@@ -494,7 +499,6 @@ extern MonoMethodDesc *mono_inject_async_exc_method;
 extern int mono_inject_async_exc_pos;
 extern MonoMethodDesc *mono_break_at_bb_method;
 extern int mono_break_at_bb_bb_num;
-extern gboolean check_for_pending_exc;
 extern gboolean mono_verify_all;
 extern gboolean mono_do_x86_stack_align;
 extern const char *mono_build_date;
@@ -508,7 +512,6 @@ extern GSList *mono_single_method_list;
 extern GHashTable *mono_single_method_hash;
 extern gboolean        mono_using_xdebug;
 extern int mini_verbose;
-extern gboolean check_for_pending_exc;
 extern int valgrind_register;
 
 #define INS_INFO(opcode) (&ins_info [((opcode) - OP_START - 1) * 4])
@@ -722,6 +725,9 @@ typedef enum {
         * consists of floats/doubles.
         */
        LLVMArgFpStruct,
+       LLVMArgVtypeByRef,
+       /* Vtype returned as an int */
+       LLVMArgVtypeAsScalar,
 } LLVMArgStorage;
 
 typedef struct {
@@ -1092,6 +1098,15 @@ typedef struct {
 } MonoLMFExt;
 
 /* Generic sharing */
+
+/*
+ * Flags for which contexts were used in inflating a generic.
+ */
+enum {
+       MONO_GENERIC_CONTEXT_USED_CLASS = 1,
+       MONO_GENERIC_CONTEXT_USED_METHOD = 2
+};
+
 typedef enum {
        MONO_RGCTX_INFO_STATIC_DATA,
        MONO_RGCTX_INFO_KLASS,
@@ -1306,17 +1321,12 @@ struct MonoJumpInfoGSharedVtCall {
 typedef enum {
        MONO_TRAMPOLINE_JIT,
        MONO_TRAMPOLINE_JUMP,
-       MONO_TRAMPOLINE_CLASS_INIT,
-       MONO_TRAMPOLINE_GENERIC_CLASS_INIT,
        MONO_TRAMPOLINE_RGCTX_LAZY_FETCH,
        MONO_TRAMPOLINE_AOT,
        MONO_TRAMPOLINE_AOT_PLT,
        MONO_TRAMPOLINE_DELEGATE,
        MONO_TRAMPOLINE_RESTORE_STACK_PROT,
        MONO_TRAMPOLINE_GENERIC_VIRTUAL_REMOTING,
-       MONO_TRAMPOLINE_MONITOR_ENTER,
-       MONO_TRAMPOLINE_MONITOR_ENTER_V4,
-       MONO_TRAMPOLINE_MONITOR_EXIT,
        MONO_TRAMPOLINE_VCALL,
        MONO_TRAMPOLINE_HANDLER_BLOCK_GUARD,
        MONO_TRAMPOLINE_NUM
@@ -1324,21 +1334,12 @@ typedef enum {
 
 /* These trampolines return normally to their caller */
 #define MONO_TRAMPOLINE_TYPE_MUST_RETURN(t)            \
-       ((t) == MONO_TRAMPOLINE_CLASS_INIT ||           \
-        (t) == MONO_TRAMPOLINE_GENERIC_CLASS_INIT ||   \
-        (t) == MONO_TRAMPOLINE_RESTORE_STACK_PROT ||   \
-        (t) == MONO_TRAMPOLINE_RGCTX_LAZY_FETCH ||     \
-        (t) == MONO_TRAMPOLINE_MONITOR_ENTER ||        \
-        (t) == MONO_TRAMPOLINE_MONITOR_ENTER_V4 ||     \
-        (t) == MONO_TRAMPOLINE_MONITOR_EXIT)
+       ((t) == MONO_TRAMPOLINE_RESTORE_STACK_PROT ||   \
+        (t) == MONO_TRAMPOLINE_RGCTX_LAZY_FETCH)
 
 /* These trampolines receive an argument directly in a register */
 #define MONO_TRAMPOLINE_TYPE_HAS_ARG(t)                \
-       ((t) == MONO_TRAMPOLINE_GENERIC_CLASS_INIT ||   \
-        (t) == MONO_TRAMPOLINE_MONITOR_ENTER ||                \
-        (t) == MONO_TRAMPOLINE_MONITOR_ENTER_V4 ||             \
-        (t) == MONO_TRAMPOLINE_MONITOR_EXIT ||                 \
-        (t) == MONO_TRAMPOLINE_HANDLER_BLOCK_GUARD)
+       ((t) == MONO_TRAMPOLINE_HANDLER_BLOCK_GUARD)
 
 /* optimization flags */
 #define OPTFLAG(id,shift,name,descr) MONO_OPT_ ## id = 1 << shift,
@@ -1456,8 +1457,6 @@ typedef struct {
        /* The current virtual register number */
        guint32 next_vreg;
 
-       MonoGenericSharingContext *generic_sharing_context;
-
        MonoGenericSharingContext gsctx;
        MonoGenericContext *gsctx_context;
 
@@ -1910,6 +1909,7 @@ typedef struct {
        gboolean suspend_on_unhandled;
        gboolean dyn_runtime_invoke;
        gboolean gdb;
+       gboolean arm_use_fallback_tls;
        /*
         * Whenever data such as next sequence points and flags is required.
         * Next sequence points and flags are required by the debugger agent.
@@ -2116,8 +2116,6 @@ void      mono_cprop_local                  (MonoCompile *cfg, MonoBasicBlock *b
 MonoInst* mono_compile_create_var           (MonoCompile *cfg, MonoType *type, int opcode);
 MonoInst* mono_compile_create_var_for_vreg  (MonoCompile *cfg, MonoType *type, int opcode, int vreg);
 void      mono_compile_make_var_load        (MonoCompile *cfg, MonoInst *dest, gssize var_index);
-MonoInst* mono_compile_create_var_load      (MonoCompile *cfg, gssize var_index);
-MonoInst* mono_compile_create_var_store     (MonoCompile *cfg, gssize var_index, MonoInst *value);
 MonoInst* mini_get_int_to_float_spill_area  (MonoCompile *cfg);
 MonoType* mono_type_from_stack_type         (MonoInst *ins);
 guint32   mono_alloc_ireg                   (MonoCompile *cfg) MONO_LLVM_INTERNAL;
@@ -2195,7 +2193,7 @@ void      mono_linear_scan                  (MonoCompile *cfg, GList *vars, GLis
 void      mono_global_regalloc              (MonoCompile *cfg);
 void      mono_create_jump_table            (MonoCompile *cfg, MonoInst *label, MonoBasicBlock **bbs, int num_blocks);
 int       mono_compile_assembly             (MonoAssembly *ass, guint32 opts, const char *aot_options);
-MonoCompile *mini_method_compile            (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFlags flags, int parts);
+MonoCompile *mini_method_compile            (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFlags flags, int parts, int aot_method_index);
 void      mono_destroy_compile              (MonoCompile *cfg);
 MonoJitICallInfo *mono_find_jit_opcode_emulation (int opcode);
 void     mono_print_ins_index (int i, MonoInst *ins);
@@ -2206,7 +2204,7 @@ MonoInst *mono_get_got_var (MonoCompile *cfg);
 void      mono_add_seq_point (MonoCompile *cfg, MonoBasicBlock *bb, MonoInst *ins, int native_offset);
 void      mono_add_var_location (MonoCompile *cfg, MonoInst *var, gboolean is_reg, int reg, int offset, int from, int to);
 MonoInst* mono_emit_jit_icall (MonoCompile *cfg, gconstpointer func, MonoInst **args);
-MonoInst* mono_emit_jit_icall_by_info (MonoCompile *cfg, MonoJitICallInfo *info, MonoInst **args, MonoBasicBlock **out_cbb);
+MonoInst* mono_emit_jit_icall_by_info (MonoCompile *cfg, MonoJitICallInfo *info, MonoInst **args);
 MonoInst* mono_emit_method_call (MonoCompile *cfg, MonoMethod *method, MonoInst **args, MonoInst *this);
 void      mono_create_helper_signatures (void);
 
@@ -2321,13 +2319,15 @@ void     mono_save_trampoline_xdebug_info   (MonoTrampInfo *info);
 void     mono_xdebug_flush                  (void);
 
 /* LLVM backend */
-/* Keep this in synch with mini-llvm-loaded.c */
+/* KEEP THIS IN SYNCH WITH mini-llvm-loaded.c */
 void     mono_llvm_init                     (void) MONO_LLVM_INTERNAL;
 void     mono_llvm_cleanup                  (void) MONO_LLVM_INTERNAL;
 void     mono_llvm_emit_method              (MonoCompile *cfg) MONO_LLVM_INTERNAL;
 void     mono_llvm_emit_call                (MonoCompile *cfg, MonoCallInst *call) MONO_LLVM_INTERNAL;
-void     mono_llvm_create_aot_module        (const char *got_symbol, gboolean external_symbols, gboolean emit_dwarf) MONO_LLVM_INTERNAL;
+void     mono_llvm_create_aot_module        (MonoAssembly *assembly, const char *global_prefix, gboolean emit_dwarf, gboolean static_link) MONO_LLVM_INTERNAL;
 void     mono_llvm_emit_aot_module          (const char *filename, const char *cu_name) MONO_LLVM_INTERNAL;
+void     mono_llvm_emit_aot_file_info       (MonoAotFileInfo *info, gboolean has_jitted_code) MONO_LLVM_INTERNAL;
+void     mono_llvm_emit_aot_data            (const char *symbol, guint8 *data, int data_len) MONO_LLVM_INTERNAL;
 void     mono_llvm_check_method_supported   (MonoCompile *cfg) MONO_LLVM_INTERNAL;
 void     mono_llvm_free_domain_info         (MonoDomain *domain) MONO_LLVM_INTERNAL;
 MONO_API void mono_personality              (void);
@@ -2395,8 +2395,10 @@ char*             mono_get_rgctx_fetch_trampoline_name (int slot);
 gpointer          mini_get_nullified_class_init_trampoline (void);
 gpointer          mini_get_single_step_trampoline (void);
 gpointer          mini_get_breakpoint_trampoline (void);
-gpointer          mini_add_method_trampoline (MonoMethod *orig_method, MonoMethod *m, gpointer compiled_method, gboolean add_static_rgctx_tramp, gboolean add_unbox_tramp);
+gpointer          mini_add_method_trampoline (MonoMethod *m, gpointer compiled_method, gboolean add_static_rgctx_tramp, gboolean add_unbox_tramp);
 gboolean          mini_jit_info_is_gsharedvt (MonoJitInfo *ji);
+gpointer*         mini_resolve_imt_method (MonoVTable *vt, gpointer *vtable_slot, MonoMethod *imt_method, MonoMethod **impl_method, gpointer *out_aot_addr,
+                                                                                  gboolean *out_need_rgctx_tramp, MonoMethod **variant_iface);
 
 gboolean          mono_running_on_valgrind (void);
 void*             mono_global_codeman_reserve (int size);
@@ -2426,7 +2428,7 @@ void              mono_emit_unwind_op (MonoCompile *cfg, int when,
                                                                           int val);
 MonoTrampInfo*    mono_tramp_info_create (const char *name, guint8 *code, guint32 code_size, MonoJumpInfo *ji, GSList *unwind_ops);
 void              mono_tramp_info_free (MonoTrampInfo *info);
-void              mono_tramp_info_register (MonoTrampInfo *info);
+void              mono_tramp_info_register (MonoTrampInfo *info, MonoDomain *domain);
 int               mini_exception_id_by_name (const char *name);
 gboolean          mini_type_is_hfa (MonoType *t, int *out_nfields, int *out_esize) MONO_LLVM_INTERNAL;
 
@@ -2434,7 +2436,7 @@ int               mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoB
                                                                         MonoInst *return_var, MonoInst **inline_args,
                                                                         guint inline_offset, gboolean is_virtual_call);
 
-MonoInst         *mono_decompose_opcode (MonoCompile *cfg, MonoInst *ins, MonoBasicBlock **out_cbb);
+MonoInst         *mono_decompose_opcode (MonoCompile *cfg, MonoInst *ins);
 void              mono_decompose_long_opts (MonoCompile *cfg);
 void              mono_decompose_vtype_opts (MonoCompile *cfg);
 void              mono_decompose_vtype_opts_llvm (MonoCompile *cfg);
@@ -2491,8 +2493,8 @@ void      mono_arch_output_basic_block          (MonoCompile *cfg, MonoBasicBloc
 void      mono_arch_free_jit_tls_data           (MonoJitTlsData *tls);
 void      mono_arch_fill_argument_info          (MonoCompile *cfg);
 void      mono_arch_allocate_vars               (MonoCompile *m);
-int       mono_arch_get_argument_info           (MonoGenericSharingContext *gsctx, MonoMethodSignature *csig, int param_count, MonoJitArgumentInfo *arg_info);
-gboolean  mono_arch_print_tree                 (MonoInst *tree, int arity);
+int       mono_arch_get_argument_info           (MonoMethodSignature *csig, int param_count, MonoJitArgumentInfo *arg_info);
+gboolean  mono_arch_print_tree                         (MonoInst *tree, int arity);
 void      mono_arch_emit_call                   (MonoCompile *cfg, MonoCallInst *call);
 void      mono_arch_emit_outarg_vt              (MonoCompile *cfg, MonoInst *ins, MonoInst *src);
 void      mono_arch_emit_setret                 (MonoCompile *cfg, MonoMethod *method, MonoInst *val);
@@ -2511,7 +2513,7 @@ GSList*   mono_arch_get_cie_program             (void);
 void      mono_arch_set_target                  (char *mtriple);
 gboolean  mono_arch_gsharedvt_sig_supported     (MonoMethodSignature *sig);
 gpointer  mono_arch_get_gsharedvt_trampoline    (MonoTrampInfo **info, gboolean aot);
-gpointer  mono_arch_get_gsharedvt_call_info     (gpointer addr, MonoMethodSignature *normal_sig, MonoMethodSignature *gsharedvt_sig, MonoGenericSharingContext *gsctx, gboolean gsharedvt_in, gint32 vcall_offset, gboolean calli);
+gpointer  mono_arch_get_gsharedvt_call_info     (gpointer addr, MonoMethodSignature *normal_sig, MonoMethodSignature *gsharedvt_sig, gboolean gsharedvt_in, gint32 vcall_offset, gboolean calli);
 gboolean  mono_arch_opcode_needs_emulation      (MonoCompile *cfg, int opcode);
 gboolean  mono_arch_tail_call_supported         (MonoCompile *cfg, MonoMethodSignature *caller_sig, MonoMethodSignature *callee_sig);
 int       mono_arch_translate_tls_offset        (int offset);
@@ -2558,11 +2560,11 @@ mono_jumptable_get_entry (guint8 *code);
 #endif
 
 gboolean
-mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, 
-                                                MonoJitInfo *ji, MonoContext *ctx, 
-                                                MonoContext *new_ctx, MonoLMF **lmf,
-                                                mgreg_t **save_locations,
-                                                StackFrameInfo *frame_info);
+mono_arch_unwind_frame (MonoDomain *domain, MonoJitTlsData *jit_tls, 
+                                               MonoJitInfo *ji, MonoContext *ctx, 
+                                               MonoContext *new_ctx, MonoLMF **lmf,
+                                               mgreg_t **save_locations,
+                                               StackFrameInfo *frame_info);
 gpointer  mono_arch_get_throw_exception_by_name (void);
 gpointer mono_arch_get_call_filter              (MonoTrampInfo **info, gboolean aot);
 gpointer mono_arch_get_restore_context          (MonoTrampInfo **info, gboolean aot);
@@ -2635,6 +2637,7 @@ void     mono_walk_stack_with_ctx               (MonoJitStackWalk func, MonoCont
 void     mono_walk_stack_with_state             (MonoJitStackWalk func, MonoThreadUnwindState *state, MonoUnwindOptions unwind_options, void *user_data);
 void     mono_walk_stack                        (MonoJitStackWalk func, MonoUnwindOptions options, void *user_data);
 gboolean mono_thread_state_init_from_sigctx     (MonoThreadUnwindState *ctx, void *sigctx);
+void     mono_thread_state_init                 (MonoThreadUnwindState *ctx);
 gboolean mono_thread_state_init_from_current    (MonoThreadUnwindState *ctx);
 gboolean mono_thread_state_init_from_monoctx    (MonoThreadUnwindState *ctx, MonoContext *mctx);
 
@@ -2752,10 +2755,10 @@ gboolean
 mono_class_generic_sharing_enabled (MonoClass *class);
 
 gpointer
-mono_class_fill_runtime_generic_context (MonoVTable *class_vtable, guint8 *caller, guint32 slot);
+mono_class_fill_runtime_generic_context (MonoVTable *class_vtable, guint32 slot);
 
 gpointer
-mono_method_fill_runtime_generic_context (MonoMethodRuntimeGenericContext *mrgctx, guint8 *caller, guint32 slot);
+mono_method_fill_runtime_generic_context (MonoMethodRuntimeGenericContext *mrgctx, guint32 slot);
 
 MonoMethodRuntimeGenericContext*
 mono_method_lookup_rgctx (MonoVTable *class_vtable, MonoGenericInst *method_inst);
@@ -2812,8 +2815,6 @@ mono_is_partially_sharable_inst (MonoGenericInst *inst);
 gboolean
 mini_is_gsharedvt_gparam (MonoType *t);
 
-MonoGenericSharingContext* mono_get_generic_context_from_code (guint8 *code);
-
 MonoGenericContext* mini_method_get_context (MonoMethod *method);
 
 int mono_method_check_context_used (MonoMethod *method);
@@ -2830,38 +2831,37 @@ void mono_generic_sharing_cleanup (void);
 MonoClass* mini_class_get_container_class (MonoClass *class);
 MonoGenericContext* mini_class_get_context (MonoClass *class);
 
-MonoType* mini_replace_type (MonoType *type) MONO_LLVM_INTERNAL;
-MonoType* mini_get_underlying_type (MonoCompile *cfg, MonoType *type) MONO_LLVM_INTERNAL;
-MonoType* mini_get_basic_type_from_generic (MonoGenericSharingContext *gsctx, MonoType *type);
-MonoType* mini_type_get_underlying_type (MonoGenericSharingContext *gsctx, MonoType *type);
+MonoType* mini_get_underlying_type (MonoType *type) MONO_LLVM_INTERNAL;
+MonoType* mini_type_get_underlying_type (MonoType *type);
 MonoMethod* mini_get_shared_method (MonoMethod *method);
 MonoMethod* mini_get_shared_method_to_register (MonoMethod *method);
 MonoMethod* mini_get_shared_method_full (MonoMethod *method, gboolean all_vt, gboolean is_gsharedvt);
+int mini_get_rgctx_entry_slot (MonoJumpInfoRgctxEntry *entry);
 
-int mini_type_stack_size (MonoGenericSharingContext *gsctx, MonoType *t, int *align);
-int mini_type_stack_size_full (MonoGenericSharingContext *gsctx, MonoType *t, guint32 *align, gboolean pinvoke);
+int mini_type_stack_size (MonoType *t, int *align);
+int mini_type_stack_size_full (MonoType *t, guint32 *align, gboolean pinvoke);
 void type_to_eval_stack_type (MonoCompile *cfg, MonoType *type, MonoInst *inst);
 guint mono_type_to_regmove (MonoCompile *cfg, MonoType *type) MONO_LLVM_INTERNAL;
 
 void mono_cfg_add_try_hole (MonoCompile *cfg, MonoExceptionClause *clause, guint8 *start, MonoBasicBlock *bb);
 
 void mono_cfg_set_exception (MonoCompile *cfg, int type);
-gboolean mini_type_is_reference (MonoCompile *cfg, MonoType *type);
-gboolean mini_type_is_vtype (MonoCompile *cfg, MonoType *t) MONO_LLVM_INTERNAL;
-gboolean mini_type_var_is_vt (MonoCompile *cfg, MonoType *type) MONO_LLVM_INTERNAL;
-gboolean mini_is_gsharedvt_klass (MonoCompile *cfg, MonoClass *klass) MONO_LLVM_INTERNAL;
-gboolean mini_is_gsharedvt_type (MonoCompile *cfg, MonoType *t);
-gboolean mini_is_gsharedvt_signature (MonoCompile *cfg, MonoMethodSignature *sig);
-gboolean mini_is_gsharedvt_type_gsctx (MonoGenericSharingContext *gsctx, MonoType *t);
-gboolean mini_is_gsharedvt_variable_type (MonoCompile *cfg, MonoType *t) MONO_LLVM_INTERNAL;
-gboolean mini_is_gsharedvt_variable_klass (MonoCompile *cfg, MonoClass *klass) MONO_LLVM_INTERNAL;
+
+gboolean mini_type_is_reference (MonoType *type);
+gboolean mini_type_is_vtype (MonoType *t) MONO_LLVM_INTERNAL;
+gboolean mini_type_var_is_vt (MonoType *type) MONO_LLVM_INTERNAL;
+gboolean mini_is_gsharedvt_type (MonoType *t);
+gboolean mini_is_gsharedvt_klass (MonoClass *klass) MONO_LLVM_INTERNAL;
+gboolean mini_is_gsharedvt_signature (MonoMethodSignature *sig);
+gboolean mini_is_gsharedvt_variable_type (MonoType *t) MONO_LLVM_INTERNAL;
+gboolean mini_is_gsharedvt_variable_klass (MonoClass *klass) MONO_LLVM_INTERNAL;
 gboolean mini_is_gsharedvt_sharable_method (MonoMethod *method);
 gboolean mini_is_gsharedvt_variable_signature (MonoMethodSignature *sig);
 gboolean mini_is_gsharedvt_sharable_inst (MonoGenericInst *inst);
 gpointer mini_method_get_rgctx (MonoMethod *m);
 void mini_init_gsctx (MonoDomain *domain, MonoMemPool *mp, MonoGenericContext *context, MonoGenericSharingContext *gsctx);
 
-gpointer mini_get_gsharedvt_wrapper (gboolean gsharedvt_in, gpointer addr, MonoMethodSignature *normal_sig, MonoMethodSignature *gsharedvt_sig, MonoGenericSharingContext *gsctx,
+gpointer mini_get_gsharedvt_wrapper (gboolean gsharedvt_in, gpointer addr, MonoMethodSignature *normal_sig, MonoMethodSignature *gsharedvt_sig,
                                                                         gint32 vcall_offset, gboolean calli);
 
 /* SIMD support */
index cd931e57e1a790c859bcfa83f0bcf4f29c027896..d2ef247a130a1c046d3aaff1d71d970a94dfafa7 100644 (file)
@@ -1653,6 +1653,20 @@ ncells ) {
                else
                        return 0;
        }
+
+       struct HFA4D {
+               public double a, b, c, d;
+       }
+
+       static double arm64_hfa_on_stack_inner (double d1, double d2, double d3, double d4, double d5, double d6, double d7, double d8, HFA4D s) {
+               return s.a + s.b + s.c + s.d;
+       }
+
+       static int test_0_arm64_hfa_on_stack () {
+               var s = new HFA4D () { a = 1.0, b = 2.0, c = 3.0, d = 4.0 };
+               var res = arm64_hfa_on_stack_inner (1, 2, 3, 4, 5, 6, 7, 8, s);
+               return res == 10.0 ? 0 : 1;
+       }
 }
 
 #if MOBILE
index 165984f23a4c153f8e4217a4facf0b6ea1051558..4560a65d46a61fbffe81e368880dabda56f8a72c 100644 (file)
@@ -14,7 +14,6 @@ PATCH_INFO(CLASS, "class")
 PATCH_INFO(IMAGE, "image")
 PATCH_INFO(FIELD, "field")
 PATCH_INFO(VTABLE, "vtable")
-PATCH_INFO(CLASS_INIT, "class_init")
 PATCH_INFO(SFLDA, "sflda")
 PATCH_INFO(LDSTR, "ldstr")
 PATCH_INFO(LDTOKEN, "ldtoken")
index e48696334c00629dda6476ec595866a5d32ef35e..c9f74b8e170b68359225bbc6e8a1fba44da6598c 100644 (file)
@@ -190,16 +190,22 @@ MonoSeqPointInfo*
 mono_get_seq_points (MonoDomain *domain, MonoMethod *method)
 {
        MonoSeqPointInfo *seq_points;
+       MonoMethod *declaring_generic_method = NULL, *shared_method = NULL;
 
-       mono_domain_lock (domain);
+       if (method->is_inflated) {
+               declaring_generic_method = mono_method_get_declaring_generic_method (method);
+               shared_method = mini_get_shared_method (method);
+       }
+
+       mono_loader_lock ();
        seq_points = g_hash_table_lookup (domain_jit_info (domain)->seq_points, method);
        if (!seq_points && method->is_inflated) {
                /* generic sharing + aot */
-               seq_points = g_hash_table_lookup (domain_jit_info (domain)->seq_points, mono_method_get_declaring_generic_method (method));
+               seq_points = g_hash_table_lookup (domain_jit_info (domain)->seq_points, declaring_generic_method);
                if (!seq_points)
-                       seq_points = g_hash_table_lookup (domain_jit_info (domain)->seq_points, mini_get_shared_method (method));
+                       seq_points = g_hash_table_lookup (domain_jit_info (domain)->seq_points, shared_method);
        }
-       mono_domain_unlock (domain);
+       mono_loader_unlock ();
 
        return seq_points;
 }
index 8f804b85c93ee73019f43f97f19fb3b6e6aca8a4..95bea3006eef32939c9fbfd145f62f5b754c3816 100644 (file)
@@ -1363,22 +1363,10 @@ mono_ssa_loop_invariant_code_motion (MonoCompile *cfg)
                if (bb != h)
                        continue;
                MONO_BB_FOR_EACH_INS_SAFE (bb, n, ins) {
-                       gboolean is_class_init = FALSE;
-
                        /*
                         * Try to move instructions out of loop headers into the preceeding bblock.
                         */
-                       if (ins->opcode == OP_VOIDCALL) {
-                               MonoCallInst *call = (MonoCallInst*)ins;
-
-                               if (call->fptr_is_patch) {
-                                       MonoJumpInfo *ji = (MonoJumpInfo*)call->fptr;
-
-                                       if (ji->type == MONO_PATCH_INFO_CLASS_INIT)
-                                               is_class_init = TRUE;
-                               }
-                       }
-                       if (ins->opcode == OP_LDLEN || ins->opcode == OP_STRLEN || ins->opcode == OP_CHECK_THIS || ins->opcode == OP_AOTCONST || is_class_init) {
+                       if (ins->opcode == OP_LDLEN || ins->opcode == OP_STRLEN || ins->opcode == OP_CHECK_THIS || ins->opcode == OP_AOTCONST || ins->opcode == OP_GENERIC_CLASS_INIT) {
                                gboolean skip;
                                int sreg;
 
index 4c4b7d32f7611a86a5f9c0620aa0db039a393671..f93dc88c0c6922e3b097ffd2c0f488df657801d9 100644 (file)
@@ -1,99 +1,6 @@
 #ifndef __MONO_SUPPORT_S390X_H__
 #define __MONO_SUPPORT_S390X_H__
 
-typedef struct __FACLIST__ {
-       uint8_t n3:1;           // 000 - N3 instructions
-       uint8_t zi:1;           // 001 - z/Arch installed
-       uint8_t za:1;           // 002 - z/Arch active
-       uint8_t date:1;         // 003 - DAT-enhancement
-       uint8_t idtes:1;        // 004 - IDTE-segment tables
-       uint8_t idter:1;        // 005 - IDTE-region tables
-       uint8_t asnlx:1;        // 006 - ASN-LX reuse
-       uint8_t stfle:1;        // 007 - STFLE
-       uint8_t edat1:1;        // 008 - EDAT 1
-       uint8_t srs:1;          // 009 - Sense-Running-Status
-       uint8_t csske:1;        // 010 - Conditional SSKE
-       uint8_t ctf:1;          // 011 - Configuration-topology
-       uint8_t ibm01:1;        // 012 - Assigned to IBM
-       uint8_t ipter:1;        // 013 - IPTE-range
-       uint8_t nqks:1;         // 014 - Nonquiescing key-setting
-       uint8_t ibm02:1;        // 015 - Assigned to IBM
-       uint8_t etf2:1;         // 016 - Extended translation 2
-       uint8_t msa:1;          // 017 - Message security assist 1
-       uint8_t ld:1;           // 018 - Long displacement
-       uint8_t ldh:1;          // 019 - Long displacement high perf
-       uint8_t mas:1;          // 020 - HFP multiply-add-subtract
-       uint8_t eif:1;          // 021 - Extended immediate
-       uint8_t etf3:1;         // 022 - Extended translation 3
-       uint8_t hux:1;          // 023 - HFP unnormalized extension
-       uint8_t etf2e:1;        // 024 - Extended translation enhanced 2
-       uint8_t stckf:1;        // 025 - Store clock fast
-       uint8_t pe:1;           // 026 - Parsing enhancement
-       uint8_t mvcos:1;        // 027 - Move with optional specs
-       uint8_t tods:1;         // 028 - TOD steering
-       uint8_t x000:1;         // 029 - Undefined
-       uint8_t etf3e:1;        // 030 - ETF3 enhancement
-       uint8_t ecput:1;        // 031 - Extract CPU time
-       uint8_t csst:1;         // 032 - Compare swap and store
-       uint8_t csst2:1;        // 033 - Compare swap and store 2
-       uint8_t gie:1;          // 034 - General instructions extension
-       uint8_t ee:1;           // 035 - Execute extensions
-       uint8_t em:1;           // 036 - Enhanced monitor
-       uint8_t fpe:1;          // 037 - Floating point extension
-       uint8_t x001:1;         // 038 - Undefined
-       uint8_t ibm03:1;        // 039 - Assigned to IBM
-       uint8_t spp:1;          // 040 - Set program parameters
-       uint8_t fpse:1;         // 041 - FP support enhancement
-       uint8_t dfp:1;          // 042 - DFP
-       uint8_t dfph:1;         // 043 - DFP high performance
-       uint8_t pfpo:1;         // 044 - PFPO instruction
-       uint8_t multi:1;        // 045 - Multiple inc load/store on CC 1
-       uint8_t ibm04:1;        // 046 - Assigned to IBM
-       uint8_t cmpsce:1;       // 047 - CMPSC enhancement
-       uint8_t dfpzc:1;        // 048 - DFP zoned conversion
-       uint8_t misc:1;         // 049 - Multiple inc load and trap
-       uint8_t ctx:1;          // 050 - Constrained transactional-execution
-       uint8_t ltlb:1;         // 051 - Local TLB clearing
-       uint8_t ia:1;           // 052 - Interlocked access
-       uint8_t lsoc2:1;        // 053 - Load/store on CC 2
-       uint8_t x002:1;         // 054 - Undefined
-       uint8_t ibm05:1;        // 055 - Assigned to IBM
-       uint8_t x003:1;         // 056 - Undefined
-       uint8_t msa5:1;         // 057 - Message security assist 5
-       uint8_t x004:1;         // 058 - Undefined
-       uint8_t x005:1;         // 059 - Undefined
-       uint8_t x006:1;         // 060 - Undefined
-       uint8_t x007:1;         // 061 - Undefined
-       uint8_t ibm06:1;        // 062 - Assigned to IBM
-       uint8_t x008:1;         // 063 - Undefined
-       uint8_t x009:1;         // 064 - Undefined
-       uint8_t ibm07:1;        // 065 - Assigned to IBM
-       uint8_t rrbm:1;         // 066 - Reset reference bits multiple
-       uint8_t cmc:1;          // 067 - CPU measurement counter
-       uint8_t cms:1;          // 068 - CPU Measurement sampling
-       uint8_t ibm08:1;        // 069 - Assigned to IBM
-       uint8_t ibm09:1;        // 070 - Assigned to IBM
-       uint8_t ibm10:1;        // 071 - Assigned to IBM
-       uint8_t ibm11:1;        // 072 - Assigned to IBM
-       uint8_t txe:1;          // 073 - Transactional execution
-       uint8_t sthy:1;         // 074 - Store hypervisor information
-       uint8_t aefsi:1;        // 075 - Access exception fetch/store indication
-       uint8_t msa3:1;         // 076 - Message security assist 3
-       uint8_t msa4:1;         // 077 - Message security assist 4
-       uint8_t edat2:1;        // 078 - Enhanced DAT 2
-       uint8_t x010:1;         // 079 - Undefined
-       uint8_t dfppc:1;        // 080 - DFP packed conversion
-       uint8_t x011:7;         // 081-87 - Undefined
-       uint8_t x012[5];        // 088-127 - Undefined
-       uint8_t ibm12:1;        // 128 - Assigned to IBM
-       uint8_t vec:1;          // 129 - Vector facility
-       uint8_t x013:6;         // 130-135 - Undefined
-       uint8_t x014:6;         // 136-141 - Undefined
-       uint8_t sccm:1;         // 142 - Store CPU counter multiple
-       uint8_t ibm13:1;        // 143 - Assigned to IBM
-       uint8_t x015[14];       // 144-256 Undefined
-} __attribute__ ((packed)) __attribute__ ((aligned(8))) facilities_t;
-
 #define S390_SET(loc, dr, v)                                   \
        do {                                                    \
                guint64 val = (guint64) v;                      \
index 28e7644d29cf3ab2f77cb4d1acd16e612f454dc2..cdd2117aceacf51710bc8067e646a91657e0144c 100644 (file)
@@ -20,7 +20,7 @@ internal_init (void)
        if (keepalive_stacks)
                return;
        MONO_GC_REGISTER_ROOT_PINNING (keepalive_stacks);
-       keepalive_stacks = mono_g_hash_table_new (NULL, NULL);
+       keepalive_stacks = mono_g_hash_table_new_type (NULL, NULL, MONO_HASH_CONSERVATIVE_GC);
 }
 
 static void*
@@ -69,7 +69,7 @@ continuation_mark_frame (MonoContinuation *cont)
                ctx = new_ctx;
                if (endloop)
                        break;
-               if (strcmp (jinfo_get_method (ji)->name, "Mark") == 0)
+               if (!ji->is_trampoline && strcmp (jinfo_get_method (ji)->name, "Mark") == 0)
                        endloop = TRUE;
        } while (1);
 
index d29b282e2ba2889f6753055501a717ea08383f64..a5c7a3fb36c43dc41a577634648e153f33fefc89 100755 (executable)
@@ -6,7 +6,7 @@ USE_AOT=$2
 TMP_FILE_PREFIX=$(basename $0).tmp
 BASEDIR=$(dirname $0)
 
-MONO_PATH=$BASEDIR/../../mcs/class/lib/net_4_5:$BASEDIR
+MONO_PATH=$BASEDIR/../../mcs/class/lib/net_4_x:$BASEDIR
 RUNTIME=$BASEDIR/../../runtime/mono-wrapper
 
 trap "rm -rf ${TMP_FILE_PREFIX}*" EXIT
index e0fa41e3be6edcd05e31865b6cc491dfabe902e3..abd79479169cf069619ed65c68f3b33858550e4b 100644 (file)
@@ -403,7 +403,7 @@ void
 mono_trace_enter_method (MonoMethod *method, char *ebp)
 {
        int i, j;
-       MonoClass *class;
+       MonoClass *klass;
        MonoObject *o;
        MonoJitArgumentInfo *arg_info;
        MonoMethodSignature *sig;
@@ -432,7 +432,7 @@ mono_trace_enter_method (MonoMethod *method, char *ebp)
                MonoJitInfo *ji = mini_jit_info_table_find (mono_domain_get (), RETURN_ADDRESS (), NULL);
                if (ji) {
                        gsctx = mono_jit_info_get_generic_sharing_context (ji);
-                       if (gsctx && (gsctx->var_is_vt || gsctx->mvar_is_vt)) {
+                       if (gsctx && gsctx->is_gsharedvt) {
                                /* Needs a ctx to get precise method */
                                printf (") <gsharedvt>\n");
                                return;
@@ -440,7 +440,7 @@ mono_trace_enter_method (MonoMethod *method, char *ebp)
                }
        }
 
-       mono_arch_get_argument_info (gsctx, sig, sig->param_count, arg_info);
+       mono_arch_get_argument_info (sig, sig->param_count, arg_info);
 
        if (MONO_TYPE_ISSTRUCT (mono_method_signature (method)->ret)) {
                g_assert (!mono_method_signature (method)->ret->byref);
@@ -456,16 +456,16 @@ mono_trace_enter_method (MonoMethod *method, char *ebp)
                        o = *arg_in_stack_slot(this, MonoObject *);
 
                        if (o) {
-                               class = o->vtable->klass;
+                               klass = o->vtable->klass;
 
-                               if (class == mono_defaults.string_class) {
+                               if (klass == mono_defaults.string_class) {
                                        MonoString *s = (MonoString*)o;
                                        char *as = string_to_utf8 (s);
 
                                        printf ("this:[STRING:%p:%s], ", o, as);
                                        g_free (as);
                                } else {
-                                       printf ("this:%p[%s.%s %s], ", o, class->name_space, class->name, o->vtable->domain->friendly_name);
+                                       printf ("this:%p[%s.%s %s], ", o, klass->name_space, klass->name, o->vtable->domain->friendly_name);
                                }
                        } else 
                                printf ("this:NULL, ");
@@ -518,19 +518,19 @@ mono_trace_enter_method (MonoMethod *method, char *ebp)
                case MONO_TYPE_OBJECT: {
                        o = *arg_in_stack_slot(cpos, MonoObject *);
                        if (o) {
-                               class = o->vtable->klass;
+                               klass = o->vtable->klass;
                    
-                               if (class == mono_defaults.string_class) {
+                               if (klass == mono_defaults.string_class) {
                                        char *as = string_to_utf8 ((MonoString*)o);
 
                                        printf ("[STRING:%p:%s], ", o, as);
                                        g_free (as);
-                               } else if (class == mono_defaults.int32_class) {
+                               } else if (klass == mono_defaults.int32_class) {
                                        printf ("[INT32:%p:%d], ", o, *(gint32 *)((char *)o + sizeof (MonoObject)));
-                               } else if (class == mono_defaults.monotype_class) {
+                               } else if (klass == mono_defaults.monotype_class) {
                                        printf ("[TYPE:%s], ", mono_type_full_name (((MonoReflectionType*)o)->type));
                                } else
-                                       printf ("[%s.%s:%p], ", class->name_space, class->name, o);
+                                       printf ("[%s.%s:%p], ", klass->name_space, klass->name, o);
                        } else {
                                printf ("%p, ", *arg_in_stack_slot(cpos, gpointer));
                        }
@@ -590,7 +590,7 @@ mono_trace_leave_method (MonoMethod *method, ...)
                MonoJitInfo *ji = mini_jit_info_table_find (mono_domain_get (), RETURN_ADDRESS (), NULL);
                if (ji) {
                        gsctx = mono_jit_info_get_generic_sharing_context (ji);
-                       if (gsctx && (gsctx->var_is_vt || gsctx->mvar_is_vt)) {
+                       if (gsctx && gsctx->is_gsharedvt) {
                                /* Needs a ctx to get precise method */
                                printf (") <gsharedvt>\n");
                                return;
index 4be828414da66c2fdd47259d72db0fc4ae9060ee..dc169f04d76941f232c6e3266bdbbc5d132588ea 100644 (file)
@@ -18,7 +18,6 @@
 #include <mono/metadata/marshal.h>
 #include <mono/metadata/tabledefs.h>
 #include <mono/metadata/mono-debug-debugger.h>
-#include <mono/metadata/monitor.h>
 #include <mono/metadata/profiler-private.h>
 #include <mono/metadata/gc-internal.h>
 #include <mono/arch/amd64/amd64-codegen.h>
@@ -51,6 +50,7 @@ gpointer
 mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
 {
        guint8 *code, *start;
+       GSList *unwind_ops;
        int this_reg, size = NACL_SIZE (20, 32);
 
        MonoDomain *domain = mono_domain_get ();
@@ -59,6 +59,8 @@ mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
 
        start = code = mono_domain_code_reserve (domain, size);
 
+       unwind_ops = mono_arch_get_cie_program ();
+
        amd64_alu_reg_imm (code, X86_ADD, this_reg, sizeof (MonoObject));
        /* FIXME: Optimize this */
        amd64_mov_reg_imm (code, AMD64_RAX, addr);
@@ -70,6 +72,8 @@ mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
        mono_arch_flush_icache (start, code - start);
        mono_profiler_code_buffer_new (start, code - start, MONO_PROFILER_CODE_BUFFER_UNBOX_TRAMPOLINE, m);
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, unwind_ops), domain);
+
        return start;
 }
 
@@ -82,6 +86,7 @@ gpointer
 mono_arch_get_static_rgctx_trampoline (MonoMethod *m, MonoMethodRuntimeGenericContext *mrgctx, gpointer addr)
 {
        guint8 *code, *start;
+       GSList *unwind_ops;
        int buf_len;
 
        MonoDomain *domain = mono_domain_get ();
@@ -98,6 +103,8 @@ mono_arch_get_static_rgctx_trampoline (MonoMethod *m, MonoMethodRuntimeGenericCo
 
        start = code = mono_domain_code_reserve (domain, buf_len);
 
+       unwind_ops = mono_arch_get_cie_program ();
+
        amd64_mov_reg_imm (code, MONO_ARCH_RGCTX_REG, mrgctx);
        amd64_jump_code (code, addr);
        g_assert ((code - start) < buf_len);
@@ -106,6 +113,8 @@ mono_arch_get_static_rgctx_trampoline (MonoMethod *m, MonoMethodRuntimeGenericCo
        mono_arch_flush_icache (start, code - start);
        mono_profiler_code_buffer_new (start, code - start, MONO_PROFILER_CODE_BUFFER_GENERICS_TRAMPOLINE, NULL);
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, unwind_ops), domain);
+
        return start;
 }
 
@@ -279,116 +288,9 @@ mono_arch_patch_plt_entry (guint8 *code, gpointer *got, mgreg_t *regs, guint8 *a
 
 #endif /* __native_client_codegen__ */
 
-
        InterlockedExchangePointer (plt_jump_table_entry, addr);
 }
 
-static gpointer
-get_vcall_slot (guint8 *code, mgreg_t *regs, int *displacement)
-{
-       guint8 buf [10];
-       gint32 disp;
-       MonoJitInfo *ji = NULL;
-
-#ifdef ENABLE_LLVM
-       /* code - 9 might be before the start of the method */
-       /* FIXME: Avoid this expensive call somehow */
-       ji = mono_jit_info_table_find (mono_domain_get (), (char*)code);
-#endif
-
-       mono_breakpoint_clean_code (ji ? ji->code_start : NULL, code, 9, buf, sizeof (buf));
-       code = buf + 9;
-
-       *displacement = 0;
-
-       code -= 7;
-
-       if ((code [0] == 0x41) && (code [1] == 0xff) && (code [2] == 0x15)) {
-               /* call OFFSET(%rip) */
-               g_assert_not_reached ();
-               *displacement = *(guint32*)(code + 3);
-               return (gpointer*)(code + disp + 7);
-       } else {
-               g_assert_not_reached ();
-               return NULL;
-       }
-}
-
-static gpointer*
-get_vcall_slot_addr (guint8* code, mgreg_t *regs)
-{
-       gpointer vt;
-       int displacement;
-       vt = get_vcall_slot (code, regs, &displacement);
-       if (!vt)
-               return NULL;
-       return (gpointer*)((char*)vt + displacement);
-}
-
-void
-mono_arch_nullify_class_init_trampoline (guint8 *code, mgreg_t *regs)
-{
-       guint8 buf [16];
-       MonoJitInfo *ji = NULL;
-       gboolean can_write;
-       gpointer tramp = mini_get_nullified_class_init_trampoline ();
-
-       if (mono_use_llvm) {
-               /* code - 7 might be before the start of the method */
-               /* FIXME: Avoid this expensive call somehow */
-               ji = mono_jit_info_table_find (mono_domain_get (), (char*)code);
-       }
-
-       can_write = mono_breakpoint_clean_code (ji ? ji->code_start : NULL, code, 7, buf, sizeof (buf));
-
-       if (!can_write)
-               return;
-
-       /* 
-        * A given byte sequence can match more than case here, so we have to be
-        * really careful about the ordering of the cases. Longer sequences
-        * come first.
-        */
-       if ((buf [0] == 0x41) && (buf [1] == 0xff) && (buf [2] == 0x15)) {
-               gpointer *vtable_slot;
-
-               /* call *<OFFSET>(%rip) */
-               vtable_slot = get_vcall_slot_addr (code, regs);
-               g_assert (vtable_slot);
-
-               *vtable_slot = tramp;
-       } else if (buf [2] == 0xe8) {
-               /* call <TARGET> */
-               //guint8 *buf = code - 2;
-
-               /* 
-                * It would be better to replace the call with nops, but that doesn't seem
-                * to work on SMP machines even when the whole call is inside a cache line.
-                * Patching the call address seems to work.
-                */
-               /*
-               buf [0] = 0x66;
-               buf [1] = 0x66;
-               buf [2] = 0x90;
-               buf [3] = 0x66;
-               buf [4] = 0x90;
-               */
-
-               mono_arch_patch_callsite (code - 5, code, tramp);
-       } else if ((buf [5] == 0xff) && x86_modrm_mod (buf [6]) == 3 && x86_modrm_reg (buf [6]) == 2) {
-               /* call *<reg> */
-               /* Generated by the LLVM JIT or on platforms without MAP_32BIT set */
-               mono_arch_patch_callsite (code - 13, code, tramp);
-       } else if (buf [4] == 0x90 || buf [5] == 0xeb || buf [6] == 0x66) {
-               /* Already changed by another thread */
-               ;
-       } else {
-               printf ("Invalid trampoline sequence: %x %x %x %x %x %x %x\n", buf [0], buf [1], buf [2], buf [3],
-                       buf [4], buf [5], buf [6]);
-               g_assert_not_reached ();
-       }
-}
-
 static void
 stack_unaligned (MonoTrampolineType tramp_type)
 {
@@ -402,7 +304,7 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        char *tramp_name;
        guint8 *buf, *code, *tramp, *br [2], *r11_save_code, *after_r11_save_code;
        int i, lmf_offset, offset, res_offset, arg_offset, rax_offset, tramp_offset, ctx_offset, saved_regs_offset;
-       int saved_fpregs_offset, rbp_offset, framesize, orig_rsp_to_rbp_offset, cfa_offset;
+       int r11_save_offset, saved_fpregs_offset, rbp_offset, framesize, orig_rsp_to_rbp_offset, cfa_offset;
        gboolean has_caller;
        GSList *unwind_ops = NULL;
        MonoJumpInfo *ji = NULL;
@@ -426,6 +328,9 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        offset += sizeof(mgreg_t);
        rax_offset = -offset;
 
+       offset += sizeof(mgreg_t);
+       r11_save_offset = -offset;
+
        offset += sizeof(mgreg_t);
        tramp_offset = -offset;
 
@@ -443,13 +348,12 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        offset += sizeof (MonoLMFTramp);
        lmf_offset = -offset;
 
-       framesize = ALIGN_TO (offset, MONO_ARCH_FRAME_ALIGNMENT);
+#ifdef TARGET_WIN32
+       /* Reserve space where the callee can save the argument registers */
+       offset += 4 * sizeof (mgreg_t);
+#endif
 
-       orig_rsp_to_rbp_offset = 0;
-       r11_save_code = code;
-       /* Reserve space for the mov_membase_reg to save R11 */
-       code += 8;
-       after_r11_save_code = code;
+       framesize = ALIGN_TO (offset, MONO_ARCH_FRAME_ALIGNMENT);
 
        // CFA = sp + 16 (the trampoline address is on the stack)
        cfa_offset = 16;
@@ -457,6 +361,12 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        // IP saved at CFA - 8
        mono_add_unwind_op_offset (unwind_ops, code, buf, AMD64_RIP, -8);
 
+       orig_rsp_to_rbp_offset = 0;
+       r11_save_code = code;
+       /* Reserve space for the mov_membase_reg to save R11 */
+       code += 5;
+       after_r11_save_code = code;
+
        /* Pop the return address off the stack */
        amd64_pop_reg (code, AMD64_R11);
        orig_rsp_to_rbp_offset += sizeof(mgreg_t);
@@ -513,8 +423,13 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
                        /* We have to save R11 right at the start of
                           the trampoline code because it's used as a
                           scratch register */
-                       amd64_mov_membase_reg (r11_save_code, AMD64_RSP, saved_regs_offset + orig_rsp_to_rbp_offset + (i * sizeof(mgreg_t)), i, sizeof(mgreg_t));
+                       /* This happens before the frame is set up, so it goes into the redzone */
+                       amd64_mov_membase_reg (r11_save_code, AMD64_RSP, r11_save_offset + orig_rsp_to_rbp_offset, i, sizeof(mgreg_t));
                        g_assert (r11_save_code == after_r11_save_code);
+
+                       /* Copy from the save slot into the register array slot */
+                       amd64_mov_reg_membase (code, i, AMD64_RSP, r11_save_offset + orig_rsp_to_rbp_offset, sizeof(mgreg_t));
+                       amd64_mov_membase_reg (code, AMD64_RBP, saved_regs_offset + (i * sizeof(mgreg_t)), i, sizeof(mgreg_t));
                }
        }
        for (i = 0; i < 8; ++i)
@@ -539,11 +454,7 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        //amd64_breakpoint (code);
 #endif
 
-       if (tramp_type != MONO_TRAMPOLINE_GENERIC_CLASS_INIT &&
-               tramp_type != MONO_TRAMPOLINE_MONITOR_ENTER &&
-               tramp_type != MONO_TRAMPOLINE_MONITOR_ENTER_V4 &&
-               tramp_type != MONO_TRAMPOLINE_MONITOR_EXIT &&
-               tramp_type != MONO_TRAMPOLINE_HANDLER_BLOCK_GUARD) {
+       if (tramp_type != MONO_TRAMPOLINE_HANDLER_BLOCK_GUARD) {
                /* Obtain the trampoline argument which is encoded in the instruction stream */
                if (aot) {
                        /* Load the GOT offset */
@@ -690,6 +601,9 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
 
        /* Restore stack */
        amd64_leave (code);
+       cfa_offset -= sizeof (mgreg_t);
+       mono_add_unwind_op_def_cfa (unwind_ops, code, buf, AMD64_RSP, cfa_offset);
+
 
        if (MONO_TRAMPOLINE_TYPE_MUST_RETURN (tramp_type)) {
                /* Load result */
@@ -714,25 +628,6 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        return buf;
 }
 
-gpointer
-mono_arch_get_nullified_class_init_trampoline (MonoTrampInfo **info)
-{
-       guint8 *code, *buf;
-       int size = NACL_SIZE (16, 32);
-
-       code = buf = mono_global_codeman_reserve (size);
-       amd64_ret (code);
-
-       nacl_global_codeman_validate(&buf, size, &code);
-
-       mono_arch_flush_icache (buf, code - buf);
-       mono_profiler_code_buffer_new (buf, code - buf, MONO_PROFILER_CODE_BUFFER_HELPER, NULL);
-
-       *info = mono_tramp_info_create ("nullified_class_init_trampoline", buf, code - buf, NULL, NULL);
-
-       return buf;
-}
-
 gpointer
 mono_arch_create_specific_trampoline (gpointer arg1, MonoTrampolineType tramp_type, MonoDomain *domain, guint32 *code_len)
 {
@@ -816,7 +711,7 @@ mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info
        int i;
        gboolean mrgctx;
        MonoJumpInfo *ji = NULL;
-       GSList *unwind_ops = NULL;
+       GSList *unwind_ops;
 
        mrgctx = MONO_RGCTX_SLOT_IS_MRGCTX (slot);
        index = MONO_RGCTX_SLOT_INDEX (slot);
@@ -905,317 +800,6 @@ mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info
        return buf;
 }
 
-#ifdef MONO_ARCH_MONITOR_OBJECT_REG
-
-gpointer
-mono_arch_create_monitor_enter_trampoline (MonoTrampInfo **info, gboolean is_v4, gboolean aot)
-{
-       guint8 *tramp;
-       guint8 *code, *buf;
-       guint8 *jump_obj_null, *jump_sync_null, *jump_cmpxchg_failed, *jump_other_owner, *jump_tid, *jump_sync_thin_hash = NULL;
-       guint8 *jump_lock_taken_true = NULL;
-       int tramp_size;
-       int status_offset, nest_offset;
-       MonoJumpInfo *ji = NULL;
-       GSList *unwind_ops = NULL;
-       int obj_reg = MONO_AMD64_ARG_REG1;
-       int lock_taken_reg = MONO_AMD64_ARG_REG2;
-       int sync_reg = MONO_AMD64_ARG_REG3;
-       int tid_reg = MONO_AMD64_ARG_REG4;
-       int status_reg = AMD64_RAX;
-
-       g_assert (MONO_ARCH_MONITOR_OBJECT_REG == obj_reg);
-#ifdef MONO_ARCH_MONITOR_LOCK_TAKEN_REG
-       g_assert (MONO_ARCH_MONITOR_LOCK_TAKEN_REG == lock_taken_reg);
-#else
-       g_assert (!is_v4);
-#endif
-
-       mono_monitor_threads_sync_members_offset (&status_offset, &nest_offset);
-       g_assert (MONO_THREADS_SYNC_MEMBER_SIZE (status_offset) == sizeof (guint32));
-       g_assert (MONO_THREADS_SYNC_MEMBER_SIZE (nest_offset) == sizeof (guint32));
-       status_offset = MONO_THREADS_SYNC_MEMBER_OFFSET (status_offset);
-       nest_offset = MONO_THREADS_SYNC_MEMBER_OFFSET (nest_offset);
-
-       tramp_size = 128;
-
-       code = buf = mono_global_codeman_reserve (tramp_size);
-
-       unwind_ops = mono_arch_get_cie_program ();
-
-       if (!aot && mono_thread_get_tls_offset () != -1) {
-               /* MonoObject* obj is in obj_reg */
-               /* is obj null? */
-               amd64_test_reg_reg (code, obj_reg, obj_reg);
-               /* if yes, jump to actual trampoline */
-               jump_obj_null = code;
-               amd64_branch8 (code, X86_CC_Z, -1, 1);
-
-               if (is_v4) {
-                       amd64_test_membase_imm (code, lock_taken_reg, 0, 1);
-                       /* if *lock_taken is 1, jump to actual trampoline */
-                       jump_lock_taken_true = code;
-                       x86_branch8 (code, X86_CC_NZ, -1, 1);
-               }
-
-               /* load obj->synchronization to sync_reg */
-               amd64_mov_reg_membase (code, sync_reg, obj_reg, MONO_STRUCT_OFFSET (MonoObject, synchronisation), 8);
-
-               if (mono_gc_is_moving ()) {
-                       /*if bit zero is set it's a thin hash*/
-                       /*FIXME use testb encoding*/
-                       amd64_test_reg_imm (code, sync_reg, 0x01);
-                       jump_sync_thin_hash = code;
-                       amd64_branch8 (code, X86_CC_NE, -1, 1);
-
-                       /*clear bits used by the gc*/
-                       amd64_alu_reg_imm (code, X86_AND, sync_reg, ~0x3);
-               }
-
-               /* is synchronization null? */
-               amd64_test_reg_reg (code, sync_reg, sync_reg);
-               /* if yes, jump to actual trampoline */
-               jump_sync_null = code;
-               amd64_branch8 (code, X86_CC_Z, -1, 1);
-
-               /* load MonoInternalThread* into tid_reg */
-               code = mono_amd64_emit_tls_get (code, tid_reg, mono_thread_get_tls_offset ());
-               /* load TID into tid_reg */
-               amd64_mov_reg_membase (code, tid_reg, tid_reg, MONO_STRUCT_OFFSET (MonoInternalThread, small_id), 4);
-
-               /* is synchronization->owner free */
-               amd64_mov_reg_membase (code, status_reg, sync_reg, status_offset, 4);
-               amd64_test_reg_imm_size (code, status_reg, OWNER_MASK, 4);
-               /* if not, jump to next case */
-               jump_tid = code;
-               amd64_branch8 (code, X86_CC_NZ, -1, 1);
-
-               /* if yes, try a compare-exchange with the TID */
-               g_assert (tid_reg != X86_EAX);
-               /* Form new status in tid_reg */
-               amd64_alu_reg_reg_size (code, X86_OR, tid_reg, status_reg, 4);
-               /* compare and exchange */
-               amd64_prefix (code, X86_LOCK_PREFIX);
-               amd64_cmpxchg_membase_reg_size (code, sync_reg, status_offset, tid_reg, 4);
-               /* if not successful, jump to actual trampoline */
-               jump_cmpxchg_failed = code;
-               amd64_branch8 (code, X86_CC_NZ, -1, 1);
-               /* if successful, return */
-               if (is_v4)
-                       amd64_mov_membase_imm (code, lock_taken_reg, 0, 1, 1);
-               amd64_ret (code);
-
-               /* next case: synchronization->owner is not null */
-               x86_patch (jump_tid, code);
-               /* is synchronization->owner == TID? */
-               amd64_alu_reg_imm_size (code, X86_AND, status_reg, OWNER_MASK, 4);
-               amd64_alu_reg_reg_size (code, X86_CMP, status_reg, tid_reg, 4);
-               /* if not, jump to actual trampoline */
-               jump_other_owner = code;
-               amd64_branch8 (code, X86_CC_NZ, -1, 1);
-               /* if yes, increment nest */
-               amd64_inc_membase_size (code, sync_reg, nest_offset, 4);
-               /* return */
-               if (is_v4)
-                       amd64_mov_membase_imm (code, lock_taken_reg, 0, 1, 1);
-               amd64_ret (code);
-
-               x86_patch (jump_obj_null, code);
-               if (jump_sync_thin_hash)
-                       x86_patch (jump_sync_thin_hash, code);
-               x86_patch (jump_sync_null, code);
-               x86_patch (jump_cmpxchg_failed, code);
-               x86_patch (jump_other_owner, code);
-               if (is_v4)
-                       x86_patch (jump_lock_taken_true, code);
-       }
-
-       /* jump to the actual trampoline */
-       if (MONO_AMD64_ARG_REG1 != obj_reg)
-               amd64_mov_reg_reg (code, MONO_AMD64_ARG_REG1, obj_reg, sizeof (mgreg_t));
-
-       if (aot) {
-               if (is_v4)
-                       code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "specific_trampoline_monitor_enter_v4");
-               else
-                       code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "specific_trampoline_monitor_enter");
-               amd64_jump_reg (code, AMD64_R11);
-       } else {
-               if (is_v4)
-                       tramp = mono_arch_create_specific_trampoline (NULL, MONO_TRAMPOLINE_MONITOR_ENTER_V4, mono_get_root_domain (), NULL);
-               else
-                       tramp = mono_arch_create_specific_trampoline (NULL, MONO_TRAMPOLINE_MONITOR_ENTER, mono_get_root_domain (), NULL);
-
-               /* jump to the actual trampoline */
-               amd64_jump_code (code, tramp);
-       }
-
-       nacl_global_codeman_validate (&buf, tramp_size, &code);
-
-       mono_arch_flush_icache (code, code - buf);
-       mono_profiler_code_buffer_new (buf, code - buf, MONO_PROFILER_CODE_BUFFER_MONITOR, NULL);
-       g_assert (code - buf <= tramp_size);
-
-       if (is_v4)
-               *info = mono_tramp_info_create ("monitor_enter_v4_trampoline", buf, code - buf, ji, unwind_ops);
-       else
-               *info = mono_tramp_info_create ("monitor_enter_trampoline", buf, code - buf, ji, unwind_ops);
-
-       return buf;
-}
-
-gpointer
-mono_arch_create_monitor_exit_trampoline (MonoTrampInfo **info, gboolean aot)
-{
-       guint8 *tramp;
-       guint8 *code, *buf;
-       guint8 *jump_obj_null, *jump_have_waiters, *jump_sync_null, *jump_not_owned, *jump_cmpxchg_failed;
-       guint8 *jump_next, *jump_sync_thin_hash = NULL;
-       int tramp_size;
-       int status_offset, nest_offset;
-       MonoJumpInfo *ji = NULL;
-       GSList *unwind_ops = NULL;
-       int obj_reg = MONO_AMD64_ARG_REG1;
-       int sync_reg = MONO_AMD64_ARG_REG2;
-       int status_reg = MONO_AMD64_ARG_REG3;
-
-       g_assert (obj_reg == MONO_ARCH_MONITOR_OBJECT_REG);
-
-       mono_monitor_threads_sync_members_offset (&status_offset, &nest_offset);
-       g_assert (MONO_THREADS_SYNC_MEMBER_SIZE (status_offset) == sizeof (guint32));
-       g_assert (MONO_THREADS_SYNC_MEMBER_SIZE (nest_offset) == sizeof (guint32));
-       status_offset = MONO_THREADS_SYNC_MEMBER_OFFSET (status_offset);
-       nest_offset = MONO_THREADS_SYNC_MEMBER_OFFSET (nest_offset);
-
-       tramp_size = 112;
-
-       code = buf = mono_global_codeman_reserve (tramp_size);
-
-       unwind_ops = mono_arch_get_cie_program ();
-
-       if (!aot && mono_thread_get_tls_offset () != -1) {
-               /* MonoObject* obj is in obj_reg */
-               /* is obj null? */
-               amd64_test_reg_reg (code, obj_reg, obj_reg);
-               /* if yes, jump to actual trampoline */
-               jump_obj_null = code;
-               amd64_branch8 (code, X86_CC_Z, -1, 1);
-
-               /* load obj->synchronization to RCX */
-               amd64_mov_reg_membase (code, sync_reg, obj_reg, MONO_STRUCT_OFFSET (MonoObject, synchronisation), 8);
-
-               if (mono_gc_is_moving ()) {
-                       /*if bit zero is set it's a thin hash*/
-                       /*FIXME use testb encoding*/
-                       amd64_test_reg_imm (code, sync_reg, 0x01);
-                       jump_sync_thin_hash = code;
-                       amd64_branch8 (code, X86_CC_NE, -1, 1);
-
-                       /*clear bits used by the gc*/
-                       amd64_alu_reg_imm (code, X86_AND, sync_reg, ~0x3);
-               }
-
-               /* is synchronization null? */
-               amd64_test_reg_reg (code, sync_reg, sync_reg);
-               /* if yes, jump to actual trampoline */
-               jump_sync_null = code;
-               amd64_branch8 (code, X86_CC_Z, -1, 1);
-
-               /* next case: synchronization is not null */
-               /* load MonoInternalThread* into RAX */
-               code = mono_amd64_emit_tls_get (code, AMD64_RAX, mono_thread_get_tls_offset ());
-               /* load TID into RAX */
-               amd64_mov_reg_membase (code, AMD64_RAX, AMD64_RAX, MONO_STRUCT_OFFSET (MonoInternalThread, small_id), 4);
-               /* is synchronization->owner == TID */
-               amd64_mov_reg_membase (code, status_reg, sync_reg, status_offset, 4);
-               amd64_alu_reg_reg_size (code, X86_XOR, AMD64_RAX, status_reg, 4);
-               amd64_test_reg_imm_size (code, AMD64_RAX, OWNER_MASK, 4);
-
-               /* if no, jump to actual trampoline */
-               jump_not_owned = code;
-               amd64_branch8 (code, X86_CC_NZ, -1, 1);
-
-               /* next case: synchronization->owner == TID */
-               /* is synchronization->nest == 1 */
-               amd64_alu_membase_imm_size (code, X86_CMP, sync_reg, nest_offset, 1, 4);
-               /* if not, jump to next case */
-               jump_next = code;
-               amd64_branch8 (code, X86_CC_NZ, -1, 1);
-               /* if yes, is synchronization->entry_count greater than zero */
-               amd64_test_reg_imm_size (code, status_reg, ENTRY_COUNT_WAITERS, 4);
-               /* if not, jump to actual trampoline */
-               jump_have_waiters = code;
-               amd64_branch8 (code, X86_CC_NZ, -1 , 1);
-               /* if yes, try to set synchronization->owner to null and return */
-               g_assert (status_reg != AMD64_RAX);
-               /* old status in RAX */
-               amd64_mov_reg_reg (code, AMD64_RAX, status_reg, 4);
-               /* form new status */
-               amd64_alu_reg_imm_size (code, X86_AND, status_reg, ENTRY_COUNT_MASK, 4);
-               /* compare and exchange */
-               amd64_prefix (code, X86_LOCK_PREFIX);
-               amd64_cmpxchg_membase_reg_size (code, sync_reg, status_offset, status_reg, 4);
-               /* if not successful, jump to actual trampoline */
-               jump_cmpxchg_failed = code;
-               amd64_branch8 (code, X86_CC_NZ, -1, 1);
-               amd64_ret (code);
-
-               /* next case: synchronization->nest is not 1 */
-               x86_patch (jump_next, code);
-               /* decrease synchronization->nest and return */
-               amd64_dec_membase_size (code, sync_reg, nest_offset, 4);
-               amd64_ret (code);
-
-               if (jump_sync_thin_hash)
-                       x86_patch (jump_sync_thin_hash, code);
-               x86_patch (jump_obj_null, code);
-               x86_patch (jump_have_waiters, code);
-               x86_patch (jump_not_owned, code);
-               x86_patch (jump_cmpxchg_failed, code);
-               x86_patch (jump_sync_null, code);
-       }
-
-       /* jump to the actual trampoline */
-       if (MONO_AMD64_ARG_REG1 != obj_reg)
-               amd64_mov_reg_reg (code, MONO_AMD64_ARG_REG1, obj_reg, sizeof (mgreg_t));
-
-       if (aot) {
-               code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "specific_trampoline_monitor_exit");
-               amd64_jump_reg (code, AMD64_R11);
-       } else {
-               tramp = mono_arch_create_specific_trampoline (NULL, MONO_TRAMPOLINE_MONITOR_EXIT, mono_get_root_domain (), NULL);
-               amd64_jump_code (code, tramp);
-       }
-
-       nacl_global_codeman_validate (&buf, tramp_size, &code);
-
-       mono_arch_flush_icache (code, code - buf);
-       mono_profiler_code_buffer_new (buf, code - buf, MONO_PROFILER_CODE_BUFFER_MONITOR, NULL);
-       g_assert (code - buf <= tramp_size);
-
-       *info = mono_tramp_info_create ("monitor_exit_trampoline", buf, code - buf, ji, unwind_ops);
-
-       return buf;
-}
-
-#else
-
-gpointer
-mono_arch_create_monitor_enter_trampoline (MonoTrampInfo **info, gboolean is_v4, gboolean aot)
-{
-       g_assert_not_reached ();
-       return NULL;
-}
-
-gpointer
-mono_arch_create_monitor_exit_trampoline (MonoTrampInfo **info, gboolean aot)
-{
-       g_assert_not_reached ();
-       return NULL;
-}
-
-#endif
-
 void
 mono_arch_invalidate_method (MonoJitInfo *ji, void *func, gpointer func_arg)
 {
@@ -1244,12 +828,14 @@ mono_arch_create_handler_block_trampoline (MonoTrampInfo **info, gboolean aot)
        guint8 *code, *buf;
        int tramp_size = 64;
        MonoJumpInfo *ji = NULL;
-       GSList *unwind_ops = NULL;
+       GSList *unwind_ops;
 
        g_assert (!aot);
 
        code = buf = mono_global_codeman_reserve (tramp_size);
 
+       unwind_ops = mono_arch_get_cie_program ();
+
        /*
        This trampoline restore the call chain of the handler block then jumps into the code that deals with it.
        */
@@ -1258,13 +844,16 @@ mono_arch_create_handler_block_trampoline (MonoTrampInfo **info, gboolean aot)
                amd64_mov_reg_membase (code, MONO_AMD64_ARG_REG1, MONO_AMD64_ARG_REG1, MONO_STRUCT_OFFSET (MonoJitTlsData, handler_block_return_address), 8);
                /* Simulate a call */
                amd64_push_reg (code, AMD64_RAX);
+               mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, 16);
                amd64_jump_code (code, tramp);
        } else {
                /*Slow path uses a c helper*/
                amd64_mov_reg_reg (code, MONO_AMD64_ARG_REG1, AMD64_RSP, 8);
                amd64_mov_reg_imm (code, AMD64_RAX, tramp);
                amd64_push_reg (code, AMD64_RAX);
+               mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, 16);
                amd64_push_reg (code, AMD64_RAX);
+               mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, 24);
                amd64_jump_code (code, handler_block_trampoline_helper);
        }
 
@@ -1330,7 +919,15 @@ mono_arch_create_sdb_trampoline (gboolean single_step, MonoTrampInfo **info, gbo
 
        code = buf = mono_global_codeman_reserve (tramp_size);
 
-       framesize = sizeof (MonoContext);
+       framesize = 0;
+#ifdef TARGET_WIN32
+       /* Reserve space where the callee can save the argument registers */
+       framesize += 4 * sizeof (mgreg_t);
+#endif
+
+       ctx_offset = framesize;
+       framesize += sizeof (MonoContext);
+
        framesize = ALIGN_TO (framesize, MONO_ARCH_FRAME_ALIGNMENT);
 
        // CFA = sp + 8
@@ -1348,7 +945,6 @@ mono_arch_create_sdb_trampoline (gboolean single_step, MonoTrampInfo **info, gbo
        mono_add_unwind_op_def_cfa_reg (unwind_ops, code, buf, AMD64_RBP);
        amd64_alu_reg_imm (code, X86_SUB, AMD64_RSP, framesize);
 
-       ctx_offset = 0;
        gregs_offset = ctx_offset + MONO_STRUCT_OFFSET (MonoContext, gregs);
 
        /* Initialize a MonoContext structure on the stack */
@@ -1390,6 +986,8 @@ mono_arch_create_sdb_trampoline (gboolean single_step, MonoTrampInfo **info, gbo
        amd64_mov_membase_reg (code, AMD64_RBP, sizeof (mgreg_t), AMD64_R11, sizeof (mgreg_t));
 
        amd64_leave (code);
+       cfa_offset -= sizeof (mgreg_t);
+       mono_add_unwind_op_def_cfa (unwind_ops, code, buf, AMD64_RSP, cfa_offset);
        amd64_ret (code);
 
        mono_arch_flush_icache (code, code - buf);
index e6b2732d5f38c413430214dfdbffdca285e451d8..156a5ee54fb561dc72c3573cd46e9de525c14eaa 100644 (file)
@@ -129,12 +129,6 @@ mono_arch_patch_plt_entry (guint8 *code, gpointer *got, mgreg_t *regs, guint8 *a
        *(guint8**)jump_entry = addr;
 }
 
-void
-mono_arch_nullify_class_init_trampoline (guint8 *code, mgreg_t *regs)
-{
-       mono_arch_patch_callsite (NULL, code, mini_get_nullified_class_init_trampoline ());
-}
-
 #ifndef DISABLE_JIT
 
 #define arm_is_imm12(v) ((int)(v) > -4096 && (int)(v) < 4096)
@@ -224,16 +218,13 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        /* The offset where lr was saved inside the regsave area */
        lr_offset = 13 * sizeof (mgreg_t);
 
-       // FIXME: Finish the unwind info, the current info allows us to unwind
-       // when the trampoline is not in the epilog
-
        // CFA = SP + (num registers pushed) * 4
        cfa_offset = 14 * sizeof (mgreg_t);
        mono_add_unwind_op_def_cfa (unwind_ops, code, buf, ARMREG_SP, cfa_offset);
        // PC saved at sp+LR_OFFSET
        mono_add_unwind_op_offset (unwind_ops, code, buf, ARMREG_LR, -4);
 
-       if (aot && tramp_type != MONO_TRAMPOLINE_GENERIC_CLASS_INIT) {
+       if (aot) {
                /* 
                 * For page trampolines the data is in r1, so just move it, otherwise use the got slot as below.
                 * The trampoline contains a pc-relative offset to the got slot 
@@ -248,10 +239,7 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
                        ARM_LDR_REG_REG (code, ARMREG_V2, ARMREG_V2, ARMREG_LR);
                }
        } else {
-               if (tramp_type != MONO_TRAMPOLINE_GENERIC_CLASS_INIT)
-                       ARM_LDR_IMM (code, ARMREG_V2, ARMREG_LR, 0);
-               else
-                       ARM_LDR_IMM (code, ARMREG_V2, ARMREG_SP, 0);
+               ARM_LDR_IMM (code, ARMREG_V2, ARMREG_LR, 0);
        }
        ARM_LDR_IMM (code, ARMREG_V3, ARMREG_SP, lr_offset);
 
@@ -434,10 +422,16 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
         * Note that IP has been conveniently set to the method addr.
         */
        ARM_ADD_REG_IMM8 (code, ARMREG_SP, ARMREG_SP, STACK - regsave_size);
+       cfa_offset -= STACK - regsave_size;
+       mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, cfa_offset);
        ARM_POP_NWB (code, 0x5fff);
+       mono_add_unwind_op_same_value (unwind_ops, code, buf, ARMREG_LR);
        if (tramp_type == MONO_TRAMPOLINE_RGCTX_LAZY_FETCH)
                ARM_MOV_REG_REG (code, ARMREG_R0, ARMREG_IP);
        ARM_ADD_REG_IMM8 (code, ARMREG_SP, ARMREG_SP, regsave_size);
+       cfa_offset -= regsave_size;
+       g_assert (cfa_offset == 0);
+       mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, cfa_offset);
        if (MONO_TRAMPOLINE_TYPE_MUST_RETURN (tramp_type))
                code = emit_bx (code, ARMREG_LR);
        else
@@ -475,23 +469,6 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        return buf;
 }
 
-gpointer
-mono_arch_get_nullified_class_init_trampoline (MonoTrampInfo **info)
-{
-       guint8 *buf, *code;
-
-       code = buf = mono_global_codeman_reserve (16);
-
-       code = emit_bx (code, ARMREG_LR);
-
-       mono_arch_flush_icache (buf, code - buf);
-       mono_profiler_code_buffer_new (buf, code - buf, MONO_PROFILER_CODE_BUFFER_HELPER, NULL);
-
-       *info = mono_tramp_info_create ("nullified_class_init_trampoline", buf, code - buf, NULL, NULL);
-
-       return buf;
-}
-
 #define SPEC_TRAMP_SIZE 24
 
 gpointer
@@ -597,6 +574,7 @@ mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
 {
        guint8 *code, *start;
        MonoDomain *domain = mono_domain_get ();
+       GSList *unwind_ops;
 #ifdef USE_JUMP_TABLES
        gpointer *jte;
        guint32 size = 20;
@@ -606,6 +584,8 @@ mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
 
        start = code = mono_domain_code_reserve (domain, size);
 
+       unwind_ops = mono_arch_get_cie_program ();
+
 #ifdef USE_JUMP_TABLES
        jte = mono_jumptable_add_entry ();
        code = mono_arm_load_jumptable_entry (code, jte, ARMREG_IP);
@@ -625,6 +605,8 @@ mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
        /*g_print ("unbox trampoline at %d for %s:%s\n", this_pos, m->klass->name, m->name);
        g_print ("unbox code is at %p for method at %p\n", start, addr);*/
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, unwind_ops), domain);
+
        return start;
 }
 
@@ -632,6 +614,7 @@ gpointer
 mono_arch_get_static_rgctx_trampoline (MonoMethod *m, MonoMethodRuntimeGenericContext *mrgctx, gpointer addr)
 {
        guint8 *code, *start;
+       GSList *unwind_ops;
 #ifdef USE_JUMP_TABLES
        int buf_len = 20;
        gpointer *jte;
@@ -642,6 +625,8 @@ mono_arch_get_static_rgctx_trampoline (MonoMethod *m, MonoMethodRuntimeGenericCo
 
        start = code = mono_domain_code_reserve (domain, buf_len);
 
+       unwind_ops = mono_arch_get_cie_program ();
+
 #ifdef USE_JUMP_TABLES
        jte = mono_jumptable_add_entries (2);
        code = mono_arm_load_jumptable_entry_addr (code, jte, ARMREG_IP);
@@ -664,6 +649,8 @@ mono_arch_get_static_rgctx_trampoline (MonoMethod *m, MonoMethodRuntimeGenericCo
        mono_arch_flush_icache (start, code - start);
        mono_profiler_code_buffer_new (start, code - start, MONO_PROFILER_CODE_BUFFER_GENERICS_TRAMPOLINE, NULL);
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, unwind_ops), domain);
+
        return start;
 }
 
@@ -700,7 +687,7 @@ mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info
 
        code = buf = mono_global_codeman_reserve (tramp_size);
 
-       mono_add_unwind_op_def_cfa (unwind_ops, code, buf, ARMREG_SP, 0);
+       unwind_ops = mono_arch_get_cie_program ();
 
        rgctx_null_jumps = g_malloc (sizeof (guint8*) * (depth + 2));
        njumps = 0;
@@ -809,7 +796,7 @@ mono_arch_create_general_rgctx_lazy_fetch_trampoline (MonoTrampInfo **info, gboo
 
        code = buf = mono_global_codeman_reserve (tramp_size);
 
-       mono_add_unwind_op_def_cfa (unwind_ops, code, buf, ARMREG_SP, 0);
+       unwind_ops = mono_arch_get_cie_program ();
 
        // FIXME: Currently, we always go to the slow path.
        /* Load trampoline addr */
@@ -848,6 +835,8 @@ mono_arch_create_handler_block_trampoline (MonoTrampInfo **info, gboolean aot)
 
        code = buf = mono_global_codeman_reserve (tramp_size);
 
+       unwind_ops = mono_arch_get_cie_program ();
+
        tramp = mono_arch_create_specific_trampoline (NULL, MONO_TRAMPOLINE_HANDLER_BLOCK_GUARD, NULL, NULL);
 
        /*
@@ -997,13 +986,6 @@ mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info
        return NULL;
 }
 
-gpointer
-mono_arch_get_nullified_class_init_trampoline (MonoTrampInfo **info)
-{
-       g_assert_not_reached ();
-       return NULL;
-}
-
 gpointer
 mono_arch_create_handler_block_trampoline (MonoTrampInfo **info, gboolean aot)
 {
@@ -1133,6 +1115,8 @@ mono_arch_get_gsharedvt_arg_trampoline (MonoDomain *domain, gpointer arg, gpoint
        mono_arch_flush_icache (buf, code - buf);
        mono_profiler_code_buffer_new (buf, code - buf, MONO_PROFILER_CODE_BUFFER_GENERICS_TRAMPOLINE, NULL);
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, buf, code - buf, NULL, NULL), domain);
+
        return buf;
 }
 
index c8f9754ec82552d563a53863db2225d5c9717b76..2b4af7f8fe2ac613acd6667519fa76134d17d8a0 100644 (file)
@@ -67,6 +67,8 @@ mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
        desc [0] = buf;
        desc [1] = func_gp;
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, buf, code.buf - buf, NULL, NULL), domain);
+
        return desc;
 }
 
@@ -123,52 +125,6 @@ mono_arch_patch_plt_entry (guint8 *code, gpointer *got, mgreg_t *regs, guint8 *a
        g_assert_not_reached ();
 }
 
-void
-mono_arch_nullify_class_init_trampoline (guint8 *code, mgreg_t *regs)
-{
-       guint8 *callsite_begin;
-       guint64 *callsite = (guint64*)(gpointer)(code - 16);
-       guint64 instructions [3];
-       guint64 buf [16];
-       Ia64CodegenState gen;
-
-       while ((ia64_bundle_template (callsite) != IA64_TEMPLATE_MLX) &&
-                  (ia64_bundle_template (callsite) != IA64_TEMPLATE_MLXS))
-               callsite -= 2;
-       callsite_begin = (guint8*)callsite;
-
-       /* Replace the code generated by emit_call with a sets of nops */
-
-       /* The first bundle might have other instructions in it */
-       instructions [0] = ia64_bundle_ins1 (callsite);
-       instructions [1] = IA64_NOP_X;
-       instructions [2] = IA64_NOP_X;
-
-       ia64_codegen_init (gen, (guint8*)buf);
-       ia64_emit_bundle_template (&gen, ia64_bundle_template (callsite), instructions [0], instructions [1], instructions [2]);
-       ia64_codegen_close (gen);
-
-       /* This might not be safe, but not all itanium processors support st16 */
-       callsite [0] = buf [0];
-       callsite [1] = buf [1];
-
-       callsite += 2;
-
-       /* The other bundles can be full replaced with nops */
-
-       ia64_codegen_init (gen, (guint8*)buf);
-       ia64_emit_bundle_template (&gen, IA64_TEMPLATE_MII, IA64_NOP_M, IA64_NOP_I, IA64_NOP_I);
-       ia64_codegen_close (gen);
-
-       while ((guint8*)callsite < code) {
-               callsite [0] = buf [0];
-               callsite [1] = buf [1];
-               callsite += 2;
-       }
-
-       mono_arch_flush_icache (callsite_begin, code - callsite_begin);
-}
-
 guchar*
 mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInfo **info, gboolean aot)
 {
@@ -316,25 +272,17 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
 
        /* FIXME: Handle NATs in fp regs / scratch regs */
 
-       if (tramp_type != MONO_TRAMPOLINE_CLASS_INIT) {
-               /* Load method address from function descriptor */
-               ia64_ld8 (code, l0, IA64_R8);
-               ia64_mov_to_br (code, IA64_B6, l0);
-       }
+       /* Load method address from function descriptor */
+       ia64_ld8 (code, l0, IA64_R8);
+       ia64_mov_to_br (code, IA64_B6, l0);
 
        /* Clean up register/memory stack frame */
        ia64_adds_imm (code, IA64_SP, framesize, IA64_SP);
        ia64_mov_to_ar_i (code, IA64_PFS, l5);
 
-       if (tramp_type == MONO_TRAMPOLINE_CLASS_INIT) {
-               ia64_mov_ret_to_br (code, IA64_B0, l7);
-               ia64_br_ret_reg (code, IA64_B0);
-       }
-       else {
-               /* Call the compiled method */
-               ia64_mov_to_br (code, IA64_B0, l7);
-               ia64_br_cond_reg (code, IA64_B6);
-       }
+       /* Call the compiled method */
+       ia64_mov_to_br (code, IA64_B0, l7);
+       ia64_br_cond_reg (code, IA64_B6);
 
        ia64_codegen_close (code);
 
index a8dbfd8fa5427027f497a16fd38f5947e4421315..37f17a47c89b3d7c20e638236364ae6fa25b4533 100644 (file)
@@ -53,6 +53,8 @@ mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
        /*g_print ("unbox trampoline at %d for %s:%s\n", this_pos, m->klass->name, m->name);
        g_print ("unbox code is at %p for method at %p\n", start, addr);*/
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, NULL), domain);
+
        return start;
 }
 
@@ -112,42 +114,6 @@ mono_arch_patch_plt_entry (guint8 *code, gpointer *got, mgreg_t *regs, guint8 *a
 
 #define STACK (int)(ALIGN_TO(4*IREG_SIZE + 8 + sizeof(MonoLMF) + 32, 8))
 
-void
-mono_arch_nullify_class_init_trampoline (guint8 *code, mgreg_t *regs)
-{
-       guint32 *code32 = (guint32*)code;
-
-       /* back up to the jal/jalr instruction */
-       code32 -= 2;
-
-       /* Check for jal/jalr -- and NOP it out */
-       if ((((*code32)&0xfc000000) == 0x0c000000)
-           || (((*code32)&0xfc1f003f) == 0x00000009)) {
-               mips_nop (code32);
-               mono_arch_flush_icache ((gpointer)(code32 - 1), 4);
-               return;
-       }
-       g_assert_not_reached ();
-}
-
-gpointer
-mono_arch_get_nullified_class_init_trampoline (MonoTrampInfo **info)
-{
-       guint8 *buf, *code;
-
-       code = buf = mono_global_codeman_reserve (16);
-
-       mips_jr (code, mips_ra);
-       mips_nop (code);
-
-       mono_arch_flush_icache (buf, code - buf);
-
-       if (info)
-               *info = mono_tramp_info_create ("nullified_class_init_trampoline", buf, code - buf, NULL, NULL);
-
-       return buf;
-}
-
 /*
  * Stack frame description when the generic trampoline is called.
  * caller frame
@@ -247,10 +213,7 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        }
 
        /* Arg 3: MonoMethod *method. */
-       if (tramp_type == MONO_TRAMPOLINE_GENERIC_CLASS_INIT)
-               mips_lw (code, mips_a2, mips_sp, lmf + G_STRUCT_OFFSET (MonoLMF, iregs [mips_a0]));
-       else
-               mips_lw (code, mips_a2, mips_sp, lmf + G_STRUCT_OFFSET (MonoLMF, method));
+       mips_lw (code, mips_a2, mips_sp, lmf + G_STRUCT_OFFSET (MonoLMF, method));
 
        /* Arg 4: Trampoline */
        mips_move (code, mips_a3, mips_zero);
@@ -363,6 +326,8 @@ mono_arch_get_static_rgctx_trampoline (MonoMethod *m, MonoMethodRuntimeGenericCo
 
        mono_arch_flush_icache (start, code - start);
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, NULL), domain);
+
        return start;
 }
 
index 0628be3772e7b198e58c8dc60955cd7f04f03fa3..32ab65ba8cda81118f2a16007cef51fda25a7b5a 100644 (file)
@@ -104,6 +104,8 @@ mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
        /*g_print ("unbox trampoline at %d for %s:%s\n", this_pos, m->klass->name, m->name);
        g_print ("unbox code is at %p for method at %p\n", start, addr);*/
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, NULL), domain);
+
        return start;
 }
 
@@ -149,6 +151,8 @@ mono_arch_get_static_rgctx_trampoline (MonoMethod *m, MonoMethodRuntimeGenericCo
        mono_arch_flush_icache (start, code - start);
        g_assert ((code - start) <= size);
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, NULL), domain);
+
        return start;
 }
 
@@ -198,12 +202,6 @@ mono_arch_patch_plt_entry (guint8 *code, gpointer *got, mgreg_t *regs, guint8 *a
        *(guint8**)((guint8*)got + offset) = addr;
 }
 
-void
-mono_arch_nullify_class_init_trampoline (guint8 *code, mgreg_t *regs)
-{
-       mono_arch_patch_callsite (NULL, code, mini_get_nullified_class_init_trampoline ());
-}
-
 /* Stack size for trampoline function 
  * PPC_MINIMAL_STACK_SIZE + 16 (args + alignment to ppc_magic_trampoline)
  * + MonoLMF + 14 fp regs + 13 gregs + alignment
@@ -348,10 +346,7 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
                ppc_ldr  (code, ppc_r4, STACK + PPC_RET_ADDR_OFFSET, ppc_r1);
 
        /* Arg 3: trampoline argument */
-       if (tramp_type == MONO_TRAMPOLINE_GENERIC_CLASS_INIT)
-               ppc_ldr (code, ppc_r5, GREGS_OFFSET + MONO_ARCH_VTABLE_REG * sizeof (mgreg_t), ppc_r1);
-       else
-               ppc_ldr (code, ppc_r5, GREGS_OFFSET, ppc_r1);
+       ppc_ldr (code, ppc_r5, GREGS_OFFSET, ppc_r1);
 
        if (aot) {
                code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, g_strdup_printf ("trampoline_func_%d", tramp_type));
@@ -612,24 +607,6 @@ mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info
        return buf;
 }
 
-gpointer
-mono_arch_get_nullified_class_init_trampoline (MonoTrampInfo **info)
-{
-       guint8 *code, *buf;
-       guint32 tramp_size = 64;
-
-       code = buf = mono_global_codeman_reserve (tramp_size);
-       ppc_blr (code);
-
-       mono_arch_flush_icache (buf, code - buf);
-
-       g_assert (code - buf <= tramp_size);
-
-       *info = mono_tramp_info_create ("nullified_class_init_trampoline", buf, code - buf, NULL, NULL);
-
-       return buf;
-}
-
 guint8*
 mono_arch_get_call_target (guint8 *code)
 {
index 98dbc887fd71199ca4f4627e8e60b7a802429c3a..e70f5c55c08a1142f9c4bef9ec9e30dacc25e675 100644 (file)
@@ -41,7 +41,6 @@
 #include <mono/metadata/appdomain.h>
 #include <mono/metadata/gc-internal.h>
 #include <mono/metadata/marshal.h>
-#include <mono/metadata/monitor.h>
 #include <mono/metadata/profiler-private.h>
 #include <mono/metadata/tabledefs.h>
 #include <mono/arch/s390x/s390x-codegen.h>
@@ -109,6 +108,8 @@ mono_arch_get_unbox_trampoline (MonoMethod *method, gpointer addr)
        mono_arch_flush_icache (start, code - start);
        mono_profiler_code_buffer_new (start, code - start, MONO_PROFILER_CODE_BUFFER_UNBOX_TRAMPOLINE, method);
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, NULL), domain);
+
        return start;
 }
 
@@ -160,54 +161,6 @@ mono_arch_patch_plt_entry (guint8 *code, gpointer *got, mgreg_t *regs, guint8 *a
 
 /*========================= End of Function ========================*/
 
-/*------------------------------------------------------------------*/
-/*                                                                  */
-/* Name                - mono_arch_nullify_class_init_trampoline           */
-/*                                                                  */
-/* Function    - Nullify a call which calls a class init trampoline*/
-/*                                                                  */
-/*------------------------------------------------------------------*/
-
-void
-mono_arch_nullify_class_init_trampoline (guint8 *code, mgreg_t *regs)
-{
-       char patch[2] = {0x07, 0x00};
-
-       code = code - 2;
-
-       memcpy(code, patch, sizeof(patch));
-}
-
-/*========================= End of Function ========================*/
-
-/*------------------------------------------------------------------*/
-/*                                                                  */
-/* Name                - mono_arch_get_nullified_class_init                */
-/*                                                                  */
-/* Function    - Nullify a PLT entry call.                         */
-/*                                                                  */
-/*------------------------------------------------------------------*/
-
-gpointer
-mono_arch_get_nullified_class_init_trampoline (MonoTrampInfo **info)
-{
-       guint8 *buf, *code;
-
-       code = buf = mono_global_codeman_reserve (16);
-
-       s390_br (code, s390_r14);
-
-       mono_arch_flush_icache (buf, code - buf);
-       mono_profiler_code_buffer_new (buf, code - buf, MONO_PROFILER_CODE_BUFFER_HELPER, NULL);
-
-       *info = mono_tramp_info_create ("nullified_class_init_trampoline", 
-                                                                       buf, code - buf, NULL, NULL);
-
-       return (buf);
-}
-
-/*========================= End of Function ========================*/
-
 /*------------------------------------------------------------------*/
 /*                                                                  */
 /* Name                - mono_arch_create_trampoline_code                  */
@@ -342,11 +295,7 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        }
 
        /* Arg 3: Trampoline argument */
-       if (tramp_type == MONO_TRAMPOLINE_GENERIC_CLASS_INIT)
-               s390_lg (buf, s390_r4, 0, LMFReg,
-                        G_STRUCT_OFFSET(MonoLMF, gregs[MONO_ARCH_VTABLE_REG]));
-       else
-               s390_lg (buf, s390_r4, 0, LMFReg, G_STRUCT_OFFSET(MonoLMF, gregs[1]));
+       s390_lg (buf, s390_r4, 0, LMFReg, G_STRUCT_OFFSET(MonoLMF, gregs[1]));
 
        /* Arg 4: trampoline address. */
        S390_SET (buf, s390_r5, buf);
@@ -454,24 +403,7 @@ mono_arch_create_specific_trampoline (gpointer arg1, MonoTrampolineType tramp_ty
        /*----------------------------------------------------------*/
        code = buf = mono_domain_code_reserve (domain, SPECIFIC_TRAMPOLINE_SIZE);
 
-       switch (tramp_type) {
-       /*
-        * Monitor tramps have the object in r2
-        */
-       case MONO_TRAMPOLINE_MONITOR_ENTER:
-       case MONO_TRAMPOLINE_MONITOR_ENTER_V4:
-       case MONO_TRAMPOLINE_MONITOR_EXIT:
-               s390_lgr (buf, s390_r1, s390_r2);
-               break;
-       /*
-        * Generic class trampoline arg is in r2
-        */
-       case MONO_TRAMPOLINE_GENERIC_CLASS_INIT:
-               s390_lgr (buf, s390_r1, s390_r2);
-               break;
-       default :
-               S390_SET  (buf, s390_r1, arg1);
-       }
+       S390_SET  (buf, s390_r1, arg1);
        displace = (tramp - buf) / 2;
        s390_jg   (buf, displace);
 
@@ -638,6 +570,8 @@ mono_arch_get_static_rgctx_trampoline (MonoMethod *m,
        mono_arch_flush_icache (start, code - start);
        mono_profiler_code_buffer_new (start, code - start, MONO_PROFILER_CODE_BUFFER_HELPER, NULL);
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, NULL), domain);
+
        return(start);
 }      
 
@@ -716,299 +650,3 @@ mono_arch_create_handler_block_trampoline (MonoTrampInfo **info, gboolean aot)
 }
 
 /*========================= End of Function ========================*/
-
-#ifdef MONO_ARCH_MONITOR_OBJECT_REG
-/*------------------------------------------------------------------*/
-/*                                                                  */
-/* Name                - mono_arch_create_monitor_enter_trampoline         */
-/*                                                                  */
-/* Function    -                                                   */
-/*                                                                  */
-/*------------------------------------------------------------------*/
-
-gpointer
-mono_arch_create_monitor_enter_trampoline (MonoTrampInfo **info, gboolean is_v4, gboolean aot)
-{
-       guint8  *tramp,
-               *code, *buf;
-       gint16  *jump_obj_null, 
-               *jump_sync_null, 
-               *jump_cs_failed, 
-               *jump_other_owner, 
-               *jump_tid, 
-               *jump_sync_thin_hash = NULL,
-               *jump_lock_taken_true = NULL;
-       int tramp_size,
-           status_reg = s390_r0,
-           lock_taken_reg = s390_r1,
-           obj_reg = s390_r2,
-           sync_reg = s390_r3,
-           tid_reg = s390_r4,
-           status_offset,
-           nest_offset;
-       MonoJumpInfo *ji = NULL;
-       GSList *unwind_ops = NULL;
-
-       g_assert (MONO_ARCH_MONITOR_OBJECT_REG == obj_reg);
-#ifdef MONO_ARCH_MONITOR_LOCK_TAKEN_REG
-       g_assert (MONO_ARCH_MONITOR_LOCK_TAKEN_REG == lock_taken_reg);
-#else
-       g_assert (!is_v4);
-#endif
-
-       mono_monitor_threads_sync_members_offset (&status_offset, &nest_offset);
-       g_assert (MONO_THREADS_SYNC_MEMBER_SIZE (status_offset) == sizeof (guint32));
-       g_assert (MONO_THREADS_SYNC_MEMBER_SIZE (nest_offset) == sizeof (guint32));
-       status_offset = MONO_THREADS_SYNC_MEMBER_OFFSET (status_offset);
-       nest_offset = MONO_THREADS_SYNC_MEMBER_OFFSET (nest_offset);
-
-       tramp_size = 160;
-
-       code = buf = mono_global_codeman_reserve (tramp_size);
-
-       unwind_ops = mono_arch_get_cie_program ();
-
-       if (mono_thread_get_tls_offset () != -1) {
-               /* MonoObject* obj is in obj_reg */
-               /* is obj null? */
-               s390_ltgr (code, obj_reg, obj_reg);
-               /* if yes, jump to actual trampoline */
-               s390_jz (code, 0); CODEPTR(code, jump_obj_null);
-
-               if (is_v4) {
-                       s390_cli (code, lock_taken_reg, 0, 1);
-                       /* if *lock_taken is 1, jump to actual trampoline */
-                       s390_je (code, 0); CODEPTR(code, jump_lock_taken_true);
-               }
-
-               /* load obj->synchronization to sync_reg */
-               s390_lg (code, sync_reg, 0, obj_reg, MONO_STRUCT_OFFSET (MonoObject, synchronisation));
-
-               if (mono_gc_is_moving ()) {
-                       /*if bit zero is set it's a thin hash*/
-                       s390_tmll (code, sync_reg, 1);
-                       s390_jo  (code, 0); CODEPTR(code, jump_sync_thin_hash);
-
-                       /* Clear bits used by the gc */
-                       s390_nill (code, sync_reg, ~0x3);
-               }
-
-               /* is synchronization null? */
-               s390_ltgr (code, sync_reg, sync_reg);
-               /* if yes, jump to actual trampoline */
-               s390_jz (code, 0); CODEPTR(code, jump_sync_null);
-
-               /* load MonoInternalThread* into tid_reg */
-               s390_ear (code, s390_r5, 0);
-               s390_sllg(code, s390_r5, s390_r5, 0, 32);
-               s390_ear (code, s390_r5, 1);
-               /* load tid */
-               s390_lg  (code, tid_reg, 0, s390_r5, mono_thread_get_tls_offset ());
-               s390_lgf (code, tid_reg, 0, tid_reg, MONO_STRUCT_OFFSET (MonoInternalThread, small_id));
-
-               /* is synchronization->owner free */
-               s390_lgf  (code, status_reg, 0, sync_reg, status_offset);
-               s390_nilf (code, status_reg, OWNER_MASK);
-               /* if not, jump to next case */
-               s390_jnz  (code, 0); CODEPTR(code, jump_tid);
-
-               /* if yes, try a compare-exchange with the TID */
-               /* Form new status in tid_reg */
-               s390_xr (code, tid_reg, status_reg);
-               /* compare and exchange */
-               s390_cs (code, status_reg, tid_reg, sync_reg, status_offset);
-               s390_jnz (code, 0); CODEPTR(code, jump_cs_failed);
-               /* if successful, return */
-               if (is_v4)
-                       s390_mvi (code, lock_taken_reg, 0, 1);
-               s390_br (code, s390_r14);
-
-               /* next case: synchronization->owner is not null */
-               PTRSLOT(code, jump_tid);
-               /* is synchronization->owner == TID? */
-               s390_nilf (code, status_reg, OWNER_MASK);
-               s390_cr (code, status_reg, tid_reg);
-               /* if not, jump to actual trampoline */
-               s390_jnz (code, 0); CODEPTR(code, jump_other_owner);
-               /* if yes, increment nest */
-               s390_lgf (code, s390_r5, 0, sync_reg, nest_offset);
-               s390_ahi (code, s390_r5, 1);
-               s390_st  (code, s390_r5, 0, sync_reg, nest_offset);
-               /* return */
-               if (is_v4)
-                       s390_mvi (code, lock_taken_reg, 0, 1);
-               s390_br (code, s390_r14);
-
-               PTRSLOT (code, jump_obj_null);
-               if (jump_sync_thin_hash)
-                       PTRSLOT (code, jump_sync_thin_hash);
-               PTRSLOT (code, jump_sync_null);
-               PTRSLOT (code, jump_cs_failed);
-               PTRSLOT (code, jump_other_owner);
-               if (is_v4)
-                       PTRSLOT (code, jump_lock_taken_true);
-       }
-
-       /* jump to the actual trampoline */
-       if (is_v4)
-               tramp = mono_arch_create_specific_trampoline (NULL, MONO_TRAMPOLINE_MONITOR_ENTER_V4, mono_get_root_domain (), NULL);
-       else
-               tramp = mono_arch_create_specific_trampoline (NULL, MONO_TRAMPOLINE_MONITOR_ENTER, mono_get_root_domain (), NULL);
-
-       /* jump to the actual trampoline */
-       S390_SET (code, s390_r1, tramp);
-       s390_br (code, s390_r1);
-
-       mono_arch_flush_icache (code, code - buf);
-       mono_profiler_code_buffer_new (buf, code - buf, MONO_PROFILER_CODE_BUFFER_MONITOR, NULL);
-       g_assert (code - buf <= tramp_size);
-
-       if (info) {
-               if (is_v4)
-                       *info = mono_tramp_info_create ("monitor_enter_v4_trampoline", buf, code - buf, ji, unwind_ops);
-               else
-                       *info = mono_tramp_info_create ("monitor_enter_trampoline", buf, code - buf, ji, unwind_ops);
-       }
-
-       return buf;
-}
-
-/*========================= End of Function ========================*/
-
-/*------------------------------------------------------------------*/
-/*                                                                  */
-/* Name                - mono_arch_create_monitor_exit_trampoline          */
-/*                                                                  */
-/* Function    -                                                   */
-/*                                                                  */
-/*------------------------------------------------------------------*/
-
-gpointer
-mono_arch_create_monitor_exit_trampoline (MonoTrampInfo **info, gboolean aot)
-{
-       guint8  *tramp,
-               *code, *buf;
-       gint16  *jump_obj_null, 
-               *jump_have_waiters, 
-               *jump_sync_null, 
-               *jump_not_owned, 
-               *jump_cs_failed,
-               *jump_next,
-               *jump_sync_thin_hash = NULL;
-       int     tramp_size,
-               status_offset, nest_offset;
-       MonoJumpInfo *ji = NULL;
-       GSList *unwind_ops = NULL;
-       int     obj_reg = s390_r2,
-               sync_reg = s390_r3,
-               status_reg = s390_r4;
-
-       g_assert (obj_reg == MONO_ARCH_MONITOR_OBJECT_REG);
-
-       mono_monitor_threads_sync_members_offset (&status_offset, &nest_offset);
-       g_assert (MONO_THREADS_SYNC_MEMBER_SIZE (status_offset) == sizeof (guint32));
-       g_assert (MONO_THREADS_SYNC_MEMBER_SIZE (nest_offset) == sizeof (guint32));
-       status_offset = MONO_THREADS_SYNC_MEMBER_OFFSET (status_offset);
-       nest_offset = MONO_THREADS_SYNC_MEMBER_OFFSET (nest_offset);
-
-       tramp_size = 160;
-
-       code = buf = mono_global_codeman_reserve (tramp_size);
-
-       unwind_ops = mono_arch_get_cie_program ();
-
-       if (mono_thread_get_tls_offset () != -1) {
-               /* MonoObject* obj is in obj_reg */
-               /* is obj null? */
-               s390_ltgr (code, obj_reg, obj_reg);
-               /* if yes, jump to actual trampoline */
-               s390_jz (code, 0); CODEPTR(code, jump_obj_null);
-
-               /* load obj->synchronization to RCX */
-               s390_lg (code, sync_reg, 0, obj_reg, MONO_STRUCT_OFFSET (MonoObject, synchronisation));
-
-               if (mono_gc_is_moving ()) {
-                       /*if bit zero is set it's a thin hash*/
-                       s390_tmll (code, sync_reg, 1);
-                       s390_jo   (code, 0); CODEPTR(code, jump_sync_thin_hash);
-
-                       /* Clear bits used by the gc */
-                       s390_nill (code, sync_reg, ~0x3);
-               }
-
-               /* is synchronization null? */
-               s390_ltgr (code, sync_reg, sync_reg);
-               /* if yes, jump to actual trampoline */
-               s390_jz (code, 0); CODEPTR(code, jump_sync_null);
-
-               /* next case: synchronization is not null */
-               /* load MonoInternalThread* into r5 */
-               s390_ear (code, s390_r5, 0);
-               s390_sllg(code, s390_r5, s390_r5, 0, 32);
-               s390_ear (code, s390_r5, 1);
-               /* load TID into r1 */
-               s390_lg  (code, s390_r1, 0, s390_r5, mono_thread_get_tls_offset ());
-               s390_lgf (code, s390_r1, 0, s390_r1, MONO_STRUCT_OFFSET (MonoInternalThread, small_id));
-               /* is synchronization->owner == TID */
-               s390_lgf (code, status_reg, 0, sync_reg, status_offset);
-               s390_xr  (code, s390_r1, status_reg);
-               s390_tmlh (code, s390_r1, OWNER_MASK);
-               /* if not, jump to actual trampoline */
-               s390_jno (code, 0); CODEPTR(code, jump_not_owned);
-
-               /* next case: synchronization->owner == TID */
-               /* is synchronization->nest == 1 */
-               s390_lgf (code, s390_r0, 0, sync_reg, nest_offset);
-               s390_chi (code, s390_r0, 1);
-               /* if not, jump to next case */
-               s390_jne (code, 0); CODEPTR(code, jump_next);
-               /* if yes, is synchronization->entry_count greater than zero */
-               s390_cfi (code, status_reg, ENTRY_COUNT_WAITERS);
-               /* if not, jump to actual trampoline */
-               s390_jnz (code, 0); CODEPTR(code, jump_have_waiters);
-               /* if yes, try to set synchronization->owner to null and return */
-               /* old status in s390_r0 */
-               s390_lgfr (code, s390_r0, status_reg);
-               /* form new status */
-               s390_nilf (code, status_reg, ENTRY_COUNT_MASK);
-               /* compare and exchange */
-               s390_cs (code, s390_r0, status_reg, sync_reg, status_offset);
-               /* if not successful, jump to actual trampoline */
-               s390_jnz (code, 0); CODEPTR(code, jump_cs_failed);
-               s390_br  (code, s390_r14);
-
-               /* next case: synchronization->nest is not 1 */
-               PTRSLOT (code, jump_next);
-               /* decrease synchronization->nest and return */
-               s390_lgf (code, s390_r0, 0, sync_reg, nest_offset);
-               s390_ahi (code, s390_r0, -1);
-               s390_st  (code, s390_r0, 0, sync_reg, nest_offset);
-               s390_br  (code, s390_r14);
-
-               PTRSLOT (code, jump_obj_null);
-               if (jump_sync_thin_hash)
-                       PTRSLOT (code, jump_sync_thin_hash);
-               PTRSLOT (code, jump_have_waiters);
-               PTRSLOT (code, jump_not_owned);
-               PTRSLOT (code, jump_cs_failed);
-               PTRSLOT (code, jump_sync_null);
-       }
-
-       /* jump to the actual trampoline */
-       tramp = mono_arch_create_specific_trampoline (NULL, MONO_TRAMPOLINE_MONITOR_EXIT, mono_get_root_domain (), NULL);
-
-       S390_SET (code, s390_r1, tramp);
-       s390_br (code, s390_r1);
-
-       mono_arch_flush_icache (code, code - buf);
-       mono_profiler_code_buffer_new (buf, code - buf, MONO_PROFILER_CODE_BUFFER_MONITOR, NULL);
-       g_assert (code - buf <= tramp_size);
-
-       if (info)
-               *info = mono_tramp_info_create ("monitor_exit_trampoline", buf, code - buf, ji, unwind_ops);
-
-       return buf;
-}
-
-/*========================= End of Function ========================*/
-#endif
index 56ace7a014f33976b60abd7bc364864ec97e03b1..99143b723b30291f156655b305b3bc19b4135f81 100644 (file)
@@ -51,6 +51,8 @@ mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
 
        mono_arch_flush_icache (start, code - start);
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, NULL), NULL);
+
        return start;
 }
 
@@ -68,13 +70,6 @@ mono_arch_patch_plt_entry (guint8 *code, gpointer *got, mgreg_t *regs, guint8 *a
        g_assert_not_reached ();
 }
 
-void
-mono_arch_nullify_class_init_trampoline (guint8 *code, mgreg_t *regs)
-{
-       /* Patch calling code */
-       sparc_nop (code);
-}
-
 #define ALIGN_TO(val,align) (((val) + ((align) - 1)) & ~((align) - 1))
 
 guchar*
@@ -191,10 +186,7 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
                sparc_lddf_imm (code, sparc_sp, MONO_SPARC_STACK_BIAS + 320 + (i * 8), sparc_f0 + (i * 2));
 #endif 
 
-       if (tramp_type == MONO_TRAMPOLINE_CLASS_INIT)
-               sparc_ret (code);
-       else
-               sparc_jmpl (code, sparc_o0, sparc_g0, sparc_g0);
+       sparc_jmpl (code, sparc_o0, sparc_g0, sparc_g0);
 
        /* restore previous frame in delay slot */
        sparc_restore_simple (code);
@@ -266,19 +258,3 @@ mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info
        g_assert_not_reached ();
        return NULL;
 }
-
-gpointer
-mono_arch_get_nullified_class_init_trampoline (MonoTrampInfo **info)
-{
-       guint8 *buf, *code;
-
-       code = buf = mono_global_codeman_reserve (16);
-
-       sparc_ret (code);
-
-       mono_arch_flush_icache (buf, code - buf);
-
-       *info = mono_tramp_info_create ("nullified_class_init_trampoline", buf, code - buf, NULL, NULL);
-
-       return buf;
-}
index 38705c1eb06c91f6dacf6146b21e85c8fab180c9..e13b422329ab29dd8213e995b7c6dd025caf40a9 100644 (file)
@@ -17,7 +17,6 @@
 #include <mono/metadata/tabledefs.h>
 #include <mono/metadata/mono-debug.h>
 #include <mono/metadata/mono-debug-debugger.h>
-#include <mono/metadata/monitor.h>
 #include <mono/metadata/profiler-private.h>
 #include <mono/metadata/gc-internal.h>
 #include <mono/arch/x86/x86-codegen.h>
@@ -26,6 +25,7 @@
 
 #include "mini.h"
 #include "mini-x86.h"
+#include "debugger-agent.h"
 
 #define ALIGN_TO(val,align) ((((guint64)val) + ((align) - 1)) & ~((align) - 1))
 
@@ -44,9 +44,12 @@ mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
        guint8 *code, *start;
        int this_pos = 4, size = NACL_SIZE(16, 32);
        MonoDomain *domain = mono_domain_get ();
+       GSList *unwind_ops;
 
        start = code = mono_domain_code_reserve (domain, size);
 
+       unwind_ops = mono_arch_get_cie_program ();
+
        x86_alu_membase_imm (code, X86_ADD, X86_ESP, this_pos, sizeof (MonoObject));
        x86_jump_code (code, addr);
        g_assert ((code - start) < size);
@@ -54,6 +57,8 @@ mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
        nacl_domain_code_validate (domain, &start, size, &code);
        mono_profiler_code_buffer_new (start, code - start, MONO_PROFILER_CODE_BUFFER_UNBOX_TRAMPOLINE, m);
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, unwind_ops), domain);
+
        return start;
 }
 
@@ -62,6 +67,7 @@ mono_arch_get_static_rgctx_trampoline (MonoMethod *m, MonoMethodRuntimeGenericCo
 {
        guint8 *code, *start;
        int buf_len;
+       GSList *unwind_ops;
 
        MonoDomain *domain = mono_domain_get ();
 
@@ -69,6 +75,8 @@ mono_arch_get_static_rgctx_trampoline (MonoMethod *m, MonoMethodRuntimeGenericCo
 
        start = code = mono_domain_code_reserve (domain, buf_len);
 
+       unwind_ops = mono_arch_get_cie_program ();
+
        x86_mov_reg_imm (code, MONO_ARCH_RGCTX_REG, mrgctx);
        x86_jump_code (code, addr);
        g_assert ((code - start) <= buf_len);
@@ -77,6 +85,8 @@ mono_arch_get_static_rgctx_trampoline (MonoMethod *m, MonoMethodRuntimeGenericCo
        mono_arch_flush_icache (start, code - start);
        mono_profiler_code_buffer_new (start, code - start, MONO_PROFILER_CODE_BUFFER_GENERICS_TRAMPOLINE, NULL);
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, unwind_ops), domain);
+
        return start;
 }
 
@@ -91,7 +101,7 @@ mono_arch_get_llvm_imt_trampoline (MonoDomain *domain, MonoMethod *m, int vt_off
 
        start = code = mono_domain_code_reserve (domain, buf_len);
 
-       this_offset = mono_x86_get_this_arg_offset (NULL, mono_method_signature (m));
+       this_offset = mono_x86_get_this_arg_offset (mono_method_signature (m));
 
        /* Set imt arg */
        x86_mov_reg_imm (code, MONO_ARCH_IMT_REG, m);
@@ -239,66 +249,6 @@ get_vcall_slot_addr (guint8* code, mgreg_t *regs)
        return (gpointer*)((char*)vt + displacement);
 }
 
-void
-mono_arch_nullify_class_init_trampoline (guint8 *code, mgreg_t *regs)
-{
-       guint8 buf [16];
-       gboolean can_write = mono_breakpoint_clean_code (NULL, code, 6, buf, sizeof (buf));
-       gpointer tramp = mini_get_nullified_class_init_trampoline ();
-
-       if (!can_write)
-               return;
-
-       code -= 5;
-       if (code [0] == 0xe8) {
-#if defined(__default_codegen__)
-               if (!mono_running_on_valgrind ()) {
-                       guint32 ops;
-                       /*
-                        * Thread safe code patching using the algorithm from the paper
-                        * 'Practicing JUDO: Java Under Dynamic Optimizations'
-                        */
-                       /* 
-                        * First atomically change the the first 2 bytes of the call to a
-                        * spinning jump.
-                        */
-                       ops = 0xfeeb;
-                       InterlockedExchange ((gint32*)code, ops);
-
-                       /* Then change the other bytes to a nop */
-                       code [2] = 0x90;
-                       code [3] = 0x90;
-                       code [4] = 0x90;
-
-                       /* Then atomically change the first 4 bytes to a nop as well */
-                       ops = 0x90909090;
-                       InterlockedExchange ((gint32*)code, ops);
-                       /* FIXME: the calltree skin trips on the self modifying code above */
-
-                       /* Tell valgrind to recompile the patched code */
-                       //VALGRIND_DISCARD_TRANSLATIONS (code, 8);
-               }
-#elif defined(__native_client_codegen__)
-               mono_arch_patch_callsite (code, code + 5, tramp);
-#endif
-       } else if (code [0] == 0x90 || code [0] == 0xeb) {
-               /* Already changed by another thread */
-               ;
-       } else if ((code [-1] == 0xff) && (x86_modrm_reg (code [0]) == 0x2)) {
-               /* call *<OFFSET>(<REG>) -> Call made from AOT code */
-               gpointer *vtable_slot;
-
-               vtable_slot = get_vcall_slot_addr (code + 5, regs);
-               g_assert (vtable_slot);
-
-               *vtable_slot = tramp;
-       } else {
-                       printf ("Invalid trampoline sequence: %x %x %x %x %x %x %x\n", code [0], code [1], code [2], code [3],
-                               code [4], code [5], code [6]);
-                       g_assert_not_reached ();
-               }
-}
-
 guchar*
 mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInfo **info, gboolean aot)
 {
@@ -307,8 +257,7 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        GSList *unwind_ops = NULL;
        MonoJumpInfo *ji = NULL;
        int i, offset, frame_size, regarray_offset, lmf_offset, caller_ip_offset, arg_offset;
-
-       unwind_ops = mono_arch_get_cie_program ();
+       int cfa_offset; /* cfa = cfa_reg + cfa_offset */
 
        code = buf = mono_global_codeman_reserve (256);
 
@@ -317,8 +266,6 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
         * the ret address is at: esp + (pushed_args + 1) * sizeof (gpointer)
         */
 
-       // FIXME: Unwind info
-
        /* Compute frame offsets relative to the frame pointer %ebp */
        arg_offset = sizeof (mgreg_t);
        caller_ip_offset = 2 * sizeof (mgreg_t);
@@ -331,9 +278,21 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        offset += 4 * sizeof (mgreg_t);
        frame_size = ALIGN_TO (offset, MONO_ARCH_FRAME_ALIGNMENT);
 
+       /* ret addr and arg are on the stack */
+       cfa_offset = 2 * sizeof (mgreg_t);
+       mono_add_unwind_op_def_cfa (unwind_ops, code, buf, X86_ESP, cfa_offset);
+       // IP saved at CFA - 4
+       mono_add_unwind_op_offset (unwind_ops, code, buf, X86_NREG, -4);
+
        /* Allocate frame */
        x86_push_reg (code, X86_EBP);
+       cfa_offset += sizeof (mgreg_t);
+       mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, cfa_offset);
+       mono_add_unwind_op_offset (unwind_ops, code, buf, X86_EBP, -cfa_offset);
+
        x86_mov_reg_reg (code, X86_EBP, X86_ESP, sizeof (mgreg_t));
+       mono_add_unwind_op_def_cfa_reg (unwind_ops, code, buf, X86_EBP);
+
        /* There are three words on the stack, adding + 4 aligns the stack to 16, which is needed on osx */
        x86_alu_reg_imm (code, X86_SUB, X86_ESP, frame_size + sizeof (mgreg_t));
 
@@ -397,7 +356,7 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        x86_mov_membase_reg (code, X86_EBP, lmf_offset + G_STRUCT_OFFSET (MonoLMF, lmf_addr), X86_EAX, sizeof (mgreg_t));
        /* lmf->previous_lmf = *(lmf_addr) */
        x86_mov_reg_membase (code, X86_ECX, X86_EAX, 0, sizeof (mgreg_t));
-       /* Signal to mono_arch_find_jit_info () that this is a trampoline frame */
+       /* Signal to mono_arch_unwind_frame () that this is a trampoline frame */
        x86_alu_reg_imm (code, X86_ADD, X86_ECX, 1);
        x86_mov_membase_reg (code, X86_EBP, lmf_offset + G_STRUCT_OFFSET (MonoLMF, previous_lmf), X86_ECX, sizeof (mgreg_t));
        /* *lmf_addr = lmf */
@@ -473,17 +432,24 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
 
        /* Restore frame */
        x86_leave (code);
+       cfa_offset -= sizeof (mgreg_t);
+       mono_add_unwind_op_def_cfa (unwind_ops, code, buf, X86_ESP, cfa_offset);
+       mono_add_unwind_op_same_value (unwind_ops, code, buf, X86_EBP);
 
        if (MONO_TRAMPOLINE_TYPE_MUST_RETURN (tramp_type)) {
                /* Load the value returned by the trampoline */
                x86_mov_reg_membase (code, X86_EAX, X86_ESP, 0, 4);
                /* The trampoline returns normally, pop the trampoline argument */
                x86_alu_reg_imm (code, X86_ADD, X86_ESP, 4);
+               cfa_offset -= sizeof (mgreg_t);
+               mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, cfa_offset);
                x86_ret (code);
        } else {
                /* The trampoline argument is at the top of the stack, and it contains the address we need to branch to */
                if (tramp_type == MONO_TRAMPOLINE_HANDLER_BLOCK_GUARD) {
                        x86_pop_reg (code, X86_EAX);
+                       cfa_offset -= sizeof (mgreg_t);
+                       mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, cfa_offset);
                        x86_alu_reg_imm (code, X86_ADD, X86_ESP, 0x8);
                        x86_jump_reg (code, X86_EAX);
                } else {
@@ -502,25 +468,6 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        return buf;
 }
 
-gpointer
-mono_arch_get_nullified_class_init_trampoline (MonoTrampInfo **info)
-{
-       guint8 *code, *buf;
-       int tramp_size = NACL_SIZE (16, kNaClAlignment);                
-
-       code = buf = mono_global_codeman_reserve (tramp_size);
-       x86_ret (code);
-
-       nacl_global_codeman_validate (&buf, tramp_size, &code);
-
-       mono_arch_flush_icache (buf, code - buf);
-       mono_profiler_code_buffer_new (buf, code - buf, MONO_PROFILER_CODE_BUFFER_HELPER, NULL);
-
-       *info = mono_tramp_info_create ("nullified_class_init_trampoline", buf, code - buf, NULL, NULL);
-
-       return buf;
-}
-
 #define TRAMPOLINE_SIZE 10
 
 gpointer
@@ -692,342 +639,6 @@ mono_arch_create_general_rgctx_lazy_fetch_trampoline (MonoTrampInfo **info, gboo
        return buf;
 }
 
-#ifdef MONO_ARCH_MONITOR_OBJECT_REG
-/*
- * The code produced by this trampoline is equivalent to this:
- *
- * if (obj) {
- *     if (obj->synchronisation) {
- *             if (obj->synchronisation->owner == 0) {
- *                     if (cmpxch (&obj->synchronisation->owner, TID, 0) == 0)
- *                             return;
- *             }
- *             if (obj->synchronisation->owner == TID) {
- *                     ++obj->synchronisation->nest;
- *                     return;
- *             }
- *     }
- * }
- * return full_monitor_enter ();
- *
- */
-gpointer
-mono_arch_create_monitor_enter_trampoline (MonoTrampInfo **info, gboolean is_v4, gboolean aot)
-{
-       guint8 *code, *buf;
-       guint8 *jump_obj_null, *jump_sync_null, *jump_other_owner, *jump_cmpxchg_failed, *jump_tid, *jump_sync_thin_hash = NULL;
-       guint8 *jump_lock_taken_true = NULL;
-       int tramp_size;
-       int status_offset, nest_offset;
-       MonoJumpInfo *ji = NULL;
-       GSList *unwind_ops = NULL;
-
-       g_assert (MONO_ARCH_MONITOR_OBJECT_REG == X86_EAX);
-#ifdef MONO_ARCH_MONITOR_LOCK_TAKEN_REG
-       g_assert (MONO_ARCH_MONITOR_LOCK_TAKEN_REG == X86_EDX);
-#else
-       g_assert (!is_v4);
-#endif
-
-       mono_monitor_threads_sync_members_offset (&status_offset, &nest_offset);
-       g_assert (MONO_THREADS_SYNC_MEMBER_SIZE (status_offset) == sizeof (guint32));
-       g_assert (MONO_THREADS_SYNC_MEMBER_SIZE (nest_offset) == sizeof (guint32));
-       status_offset = MONO_THREADS_SYNC_MEMBER_OFFSET (status_offset);
-       nest_offset = MONO_THREADS_SYNC_MEMBER_OFFSET (nest_offset);
-
-       tramp_size = NACL_SIZE (128, 192);
-
-       code = buf = mono_global_codeman_reserve (tramp_size);
-
-       x86_push_reg (code, X86_EAX);
-       if (mono_thread_get_tls_offset () != -1) {
-               if (is_v4) {
-                       x86_test_membase_imm (code, X86_EDX, 0, 1);
-                       /* if *lock_taken is 1, jump to actual trampoline */
-                       jump_lock_taken_true = code;
-                       x86_branch8 (code, X86_CC_NZ, -1, 1);
-                       x86_push_reg (code, X86_EDX);
-               }
-               /* MonoObject* obj is in EAX */
-               /* is obj null? */
-               x86_test_reg_reg (code, X86_EAX, X86_EAX);
-               /* if yes, jump to actual trampoline */
-               jump_obj_null = code;
-               x86_branch8 (code, X86_CC_Z, -1, 1);
-
-               /* load obj->synchronization to ECX */
-               x86_mov_reg_membase (code, X86_ECX, X86_EAX, MONO_STRUCT_OFFSET (MonoObject, synchronisation), 4);
-
-               if (mono_gc_is_moving ()) {
-                       /*if bit zero is set it's a thin hash*/
-                       /*FIXME use testb encoding*/
-                       x86_test_reg_imm (code, X86_ECX, 0x01);
-                       jump_sync_thin_hash = code;
-                       x86_branch8 (code, X86_CC_NE, -1, 1);
-
-                       /*clear bits used by the gc*/
-                       x86_alu_reg_imm (code, X86_AND, X86_ECX, ~0x3);
-               }
-
-               /* is synchronization null? */
-               x86_test_reg_reg (code, X86_ECX, X86_ECX);
-
-               /* if yes, jump to actual trampoline */
-               jump_sync_null = code;
-               x86_branch8 (code, X86_CC_Z, -1, 1);
-
-               /* load MonoInternalThread* into EDX */
-               if (aot) {
-                       /* load_aotconst () puts the result into EAX */
-                       x86_mov_reg_reg (code, X86_EDX, X86_EAX, sizeof (mgreg_t));
-                       code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_TLS_OFFSET, GINT_TO_POINTER (TLS_KEY_THREAD));
-                       code = mono_x86_emit_tls_get_reg (code, X86_EAX, X86_EAX);
-                       x86_xchg_reg_reg (code, X86_EAX, X86_EDX, sizeof (mgreg_t));
-               } else {
-                       code = mono_x86_emit_tls_get (code, X86_EDX, mono_thread_get_tls_offset ());
-               }
-               /* load TID into EDX */
-               x86_mov_reg_membase (code, X86_EDX, X86_EDX, MONO_STRUCT_OFFSET (MonoInternalThread, small_id), 4);
-
-               /* is synchronization->owner free */
-               x86_mov_reg_membase (code, X86_EAX, X86_ECX, status_offset, 4);
-               x86_test_reg_imm (code, X86_EAX, OWNER_MASK);
-               /* if not, jump to next case */
-               jump_tid = code;
-               x86_branch8 (code, X86_CC_NZ, -1, 1);
-
-               /* if yes, try a compare-exchange with the TID */
-               /* Form new status */
-               x86_alu_reg_reg (code, X86_OR, X86_EDX, X86_EAX);
-               /* compare and exchange */
-               x86_prefix (code, X86_LOCK_PREFIX);
-               x86_cmpxchg_membase_reg (code, X86_ECX, status_offset, X86_EDX);
-               /* if not successful, jump to actual trampoline */
-               jump_cmpxchg_failed = code;
-               x86_branch8 (code, X86_CC_NZ, -1, 1);
-               /* if successful, pop and return */
-               if (is_v4) {
-                       x86_pop_reg (code, X86_EDX);
-                       x86_mov_membase_imm (code, X86_EDX, 0, 1, 1);
-               }
-               x86_pop_reg (code, X86_EAX);
-               x86_ret (code);
-
-               /* next case: synchronization->owner is not null */
-               x86_patch (jump_tid, code);
-               /* is synchronization->owner == TID? */
-               x86_alu_reg_imm (code, X86_AND, X86_EAX, OWNER_MASK);
-               x86_alu_reg_reg (code, X86_CMP, X86_EAX, X86_EDX);
-               /* if not, jump to actual trampoline */
-               jump_other_owner = code;
-               x86_branch8 (code, X86_CC_NZ, -1, 1);
-               /* if yes, increment nest */
-               x86_inc_membase (code, X86_ECX, nest_offset);
-               if (is_v4) {
-                       x86_pop_reg (code, X86_EDX);
-                       x86_mov_membase_imm (code, X86_EDX, 0, 1, 1);
-               }
-               x86_pop_reg (code, X86_EAX);
-               /* return */
-               x86_ret (code);
-
-               /* obj is pushed, jump to the actual trampoline */
-               x86_patch (jump_obj_null, code);
-               if (jump_sync_thin_hash)
-                       x86_patch (jump_sync_thin_hash, code);
-               x86_patch (jump_sync_null, code);
-               x86_patch (jump_other_owner, code);
-               x86_patch (jump_cmpxchg_failed, code);
-
-               if (is_v4) {
-                       x86_pop_reg (code, X86_EDX);
-                       x86_patch (jump_lock_taken_true, code);
-               }
-       }
-
-       if (aot) {
-               /* We are calling the generic trampoline directly, the argument is pushed
-                * on the stack just like a specific trampoline.
-                */
-               if (is_v4)
-                       code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "generic_trampoline_monitor_enter_v4");
-               else
-                       code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "generic_trampoline_monitor_enter");
-               x86_jump_reg (code, X86_EAX);
-       } else {
-               if (is_v4)
-                       x86_jump_code (code, mono_get_trampoline_code (MONO_TRAMPOLINE_MONITOR_ENTER_V4));
-               else
-                       x86_jump_code (code, mono_get_trampoline_code (MONO_TRAMPOLINE_MONITOR_ENTER));
-       }
-
-       mono_arch_flush_icache (buf, code - buf);
-       g_assert (code - buf <= tramp_size);
-
-       nacl_global_codeman_validate (&buf, tramp_size, &code);
-       mono_profiler_code_buffer_new (buf, code - buf, MONO_PROFILER_CODE_BUFFER_MONITOR, NULL);
-
-       if (is_v4)
-               *info = mono_tramp_info_create ("monitor_enter_v4_trampoline", buf, code - buf, ji, unwind_ops);
-       else
-               *info = mono_tramp_info_create ("monitor_enter_trampoline", buf, code - buf, ji, unwind_ops);
-
-       return buf;
-}
-
-gpointer
-mono_arch_create_monitor_exit_trampoline (MonoTrampInfo **info, gboolean aot)
-{
-       guint8 *tramp = mono_get_trampoline_code (MONO_TRAMPOLINE_MONITOR_EXIT);
-       guint8 *code, *buf;
-       guint8 *jump_obj_null, *jump_have_waiters, *jump_sync_null, *jump_not_owned, *jump_sync_thin_hash = NULL;
-       guint8 *jump_next, *jump_cmpxchg_failed;
-       int tramp_size;
-       int status_offset, nest_offset;
-       MonoJumpInfo *ji = NULL;
-       GSList *unwind_ops = NULL;
-
-       g_assert (MONO_ARCH_MONITOR_OBJECT_REG == X86_EAX);
-
-       mono_monitor_threads_sync_members_offset (&status_offset, &nest_offset);
-       g_assert (MONO_THREADS_SYNC_MEMBER_SIZE (status_offset) == sizeof (guint32));
-       g_assert (MONO_THREADS_SYNC_MEMBER_SIZE (nest_offset) == sizeof (guint32));
-       status_offset = MONO_THREADS_SYNC_MEMBER_OFFSET (status_offset);
-       nest_offset = MONO_THREADS_SYNC_MEMBER_OFFSET (nest_offset);
-
-       tramp_size = NACL_SIZE (128, 192);
-
-       code = buf = mono_global_codeman_reserve (tramp_size);
-
-       x86_push_reg (code, X86_EAX);
-       if (mono_thread_get_tls_offset () != -1) {
-               /* MonoObject* obj is in EAX */
-               /* is obj null? */
-               x86_test_reg_reg (code, X86_EAX, X86_EAX);
-               /* if yes, jump to actual trampoline */
-               jump_obj_null = code;
-               x86_branch8 (code, X86_CC_Z, -1, 1);
-
-               /* load obj->synchronization to ECX */
-               x86_mov_reg_membase (code, X86_ECX, X86_EAX, MONO_STRUCT_OFFSET (MonoObject, synchronisation), 4);
-
-               if (mono_gc_is_moving ()) {
-                       /*if bit zero is set it's a thin hash*/
-                       /*FIXME use testb encoding*/
-                       x86_test_reg_imm (code, X86_ECX, 0x01);
-                       jump_sync_thin_hash = code;
-                       x86_branch8 (code, X86_CC_NE, -1, 1);
-
-                       /*clear bits used by the gc*/
-                       x86_alu_reg_imm (code, X86_AND, X86_ECX, ~0x3);
-               }
-
-               /* is synchronization null? */
-               x86_test_reg_reg (code, X86_ECX, X86_ECX);
-               /* if yes, jump to actual trampoline */
-               jump_sync_null = code;
-               x86_branch8 (code, X86_CC_Z, -1, 1);
-
-               /* next case: synchronization is not null */
-               /* load MonoInternalThread* into EDX */
-               if (aot) {
-                       /* load_aotconst () puts the result into EAX */
-                       x86_mov_reg_reg (code, X86_EDX, X86_EAX, sizeof (mgreg_t));
-                       code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_TLS_OFFSET, GINT_TO_POINTER (TLS_KEY_THREAD));
-                       code = mono_x86_emit_tls_get_reg (code, X86_EAX, X86_EAX);
-                       x86_xchg_reg_reg (code, X86_EAX, X86_EDX, sizeof (mgreg_t));
-               } else {
-                       code = mono_x86_emit_tls_get (code, X86_EDX, mono_thread_get_tls_offset ());
-               }
-               /* load TID into EDX */
-               x86_mov_reg_membase (code, X86_EDX, X86_EDX, MONO_STRUCT_OFFSET (MonoInternalThread, small_id), 4);
-               /* is synchronization->owner == TID */
-               x86_mov_reg_membase (code, X86_EAX, X86_ECX, status_offset, 4);
-               x86_alu_reg_reg (code, X86_XOR, X86_EDX, X86_EAX);
-               x86_test_reg_imm (code, X86_EDX, OWNER_MASK);
-               /* if no, jump to actual trampoline */
-               jump_not_owned = code;
-               x86_branch8 (code, X86_CC_NZ, -1, 1);
-
-               /* next case: synchronization->owner == TID */
-               /* is synchronization->nest == 1 */
-               x86_alu_membase_imm (code, X86_CMP, X86_ECX, nest_offset, 1);
-               /* if not, jump to next case */
-               jump_next = code;
-               x86_branch8 (code, X86_CC_NZ, -1, 1);
-               /* if yes, is synchronization->entry_count greater than zero? */
-               x86_test_reg_imm (code, X86_EAX, ENTRY_COUNT_WAITERS);
-               /* if yes, jump to actual trampoline */
-               jump_have_waiters = code;
-               x86_branch8 (code, X86_CC_NZ, -1 , 1);
-               /* if not, try to set synchronization->owner to null and return */
-               x86_mov_reg_reg (code, X86_EDX, X86_EAX, 4);
-               x86_alu_reg_imm (code, X86_AND, X86_EDX, ENTRY_COUNT_MASK); 
-               /* compare and exchange */
-               x86_prefix (code, X86_LOCK_PREFIX);
-               /* EAX contains the previous status */
-               x86_cmpxchg_membase_reg (code, X86_ECX, status_offset, X86_EDX);
-               /* if not successful, jump to actual trampoline */
-               jump_cmpxchg_failed = code;
-               x86_branch8 (code, X86_CC_NZ, -1, 1);
-
-               x86_pop_reg (code, X86_EAX);
-               x86_ret (code);
-
-               /* next case: synchronization->nest is not 1 */
-               x86_patch (jump_next, code);
-               /* decrease synchronization->nest and return */
-               x86_dec_membase (code, X86_ECX, nest_offset);
-               x86_pop_reg (code, X86_EAX);
-               x86_ret (code);
-
-               /* push obj and jump to the actual trampoline */
-               x86_patch (jump_obj_null, code);
-               if (jump_sync_thin_hash)
-                       x86_patch (jump_sync_thin_hash, code);
-               x86_patch (jump_have_waiters, code);
-               x86_patch (jump_cmpxchg_failed, code);
-               x86_patch (jump_not_owned, code);
-               x86_patch (jump_sync_null, code);
-       }
-
-       /* obj is pushed, jump to the actual trampoline */
-       if (aot) {
-               code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "generic_trampoline_monitor_exit");
-               x86_jump_reg (code, X86_EAX);
-       } else {
-               x86_jump_code (code, tramp);
-       }
-
-       nacl_global_codeman_validate (&buf, tramp_size, &code);
-
-       mono_arch_flush_icache (buf, code - buf);
-       g_assert (code - buf <= tramp_size);
-       mono_profiler_code_buffer_new (buf, code - buf, MONO_PROFILER_CODE_BUFFER_MONITOR, NULL);
-
-       *info = mono_tramp_info_create ("monitor_exit_trampoline", buf, code - buf, ji, unwind_ops);
-
-       return buf;
-}
-
-#else
-
-gpointer
-mono_arch_create_monitor_enter_trampoline (MonoTrampInfo **info, gboolean is_v4, gboolean aot)
-{
-       g_assert_not_reached ();
-       return NULL;
-}
-
-gpointer
-mono_arch_create_monitor_exit_trampoline (MonoTrampInfo **info, gboolean aot)
-{
-       g_assert_not_reached ();
-       return NULL;
-}
-
-#endif
-
 void
 mono_arch_invalidate_method (MonoJitInfo *ji, void *func, gpointer func_arg)
 {
@@ -1052,12 +663,15 @@ mono_arch_create_handler_block_trampoline (MonoTrampInfo **info, gboolean aot)
        guint8 *code, *buf;
        int tramp_size = 64;
        MonoJumpInfo *ji = NULL;
+       int cfa_offset;
        GSList *unwind_ops = NULL;
 
        g_assert (!aot);
 
        code = buf = mono_global_codeman_reserve (tramp_size);
 
+       unwind_ops = mono_arch_get_cie_program ();
+       cfa_offset = sizeof (mgreg_t);
        /*
        This trampoline restore the call chain of the handler block then jumps into the code that deals with it.
        */
@@ -1076,10 +690,18 @@ mono_arch_create_handler_block_trampoline (MonoTrampInfo **info, gboolean aot)
        /* Simulate a call */
        /*Fix stack alignment*/
        x86_alu_reg_imm (code, X86_SUB, X86_ESP, 0x4);
+       cfa_offset += sizeof (mgreg_t);
+       mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, cfa_offset);
+
        /* This is the address the trampoline will return to */
        x86_push_reg (code, X86_EAX);
+       cfa_offset += sizeof (mgreg_t);
+       mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, cfa_offset);
+
        /* Dummy trampoline argument, since we call the generic trampoline directly */
        x86_push_imm (code, 0);
+       cfa_offset += sizeof (mgreg_t);
+       mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, cfa_offset);
        x86_jump_code (code, tramp);
 
        nacl_global_codeman_validate (&buf, tramp_size, &code);
@@ -1122,11 +744,15 @@ mono_arch_get_gsharedvt_arg_trampoline (MonoDomain *domain, gpointer arg, gpoint
 {
        guint8 *code, *start;
        int buf_len;
+       GSList *unwind_ops;
+
 
        buf_len = 10;
 
        start = code = mono_domain_code_reserve (domain, buf_len);
 
+       unwind_ops = mono_arch_get_cie_program ();
+
        x86_mov_reg_imm (code, X86_EAX, arg);
        x86_jump_code (code, addr);
        g_assert ((code - start) <= buf_len);
@@ -1135,9 +761,111 @@ mono_arch_get_gsharedvt_arg_trampoline (MonoDomain *domain, gpointer arg, gpoint
        mono_arch_flush_icache (start, code - start);
        mono_profiler_code_buffer_new (start, code - start, MONO_PROFILER_CODE_BUFFER_GENERICS_TRAMPOLINE, NULL);
 
+       mono_tramp_info_register (mono_tramp_info_create (NULL, start, code - start, NULL, unwind_ops), domain);
+
        return start;
 }
 
+/*
+ * mono_arch_create_sdb_trampoline:
+ *
+ *   Return a trampoline which captures the current context, passes it to
+ * debugger_agent_single_step_from_context ()/debugger_agent_breakpoint_from_context (),
+ * then restores the (potentially changed) context.
+ */
+guint8*
+mono_arch_create_sdb_trampoline (gboolean single_step, MonoTrampInfo **info, gboolean aot)
+{
+       int tramp_size = 256;
+       int framesize, ctx_offset, cfa_offset;
+       guint8 *code, *buf;
+       GSList *unwind_ops = NULL;
+       MonoJumpInfo *ji = NULL;
+
+       code = buf = mono_global_codeman_reserve (tramp_size);
+
+       framesize = 0;
+
+       /* Argument area */
+       framesize += sizeof (mgreg_t);
+
+       ctx_offset = framesize;
+       framesize += sizeof (MonoContext);
+
+       framesize = ALIGN_TO (framesize, MONO_ARCH_FRAME_ALIGNMENT);
+
+       // CFA = sp + 4
+       cfa_offset = 4;
+       mono_add_unwind_op_def_cfa (unwind_ops, code, buf, X86_ESP, 4);
+       // IP saved at CFA - 4
+       mono_add_unwind_op_offset (unwind_ops, code, buf, X86_NREG, -cfa_offset);
+
+       x86_push_reg (code, X86_EBP);
+       cfa_offset += sizeof(mgreg_t);
+       mono_add_unwind_op_def_cfa_offset (unwind_ops, code, buf, cfa_offset);
+       mono_add_unwind_op_offset (unwind_ops, code, buf, X86_EBP, - cfa_offset);
+
+       x86_mov_reg_reg (code, X86_EBP, X86_ESP, sizeof(mgreg_t));
+       mono_add_unwind_op_def_cfa_reg (unwind_ops, code, buf, X86_EBP);
+       /* The + 8 makes the stack aligned */
+       x86_alu_reg_imm (code, X86_SUB, X86_ESP, framesize + 8);
+
+       /* Initialize a MonoContext structure on the stack */
+       x86_mov_membase_reg (code, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, eax), X86_EAX, sizeof (mgreg_t));
+       x86_mov_membase_reg (code, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, ebx), X86_EBX, sizeof (mgreg_t));
+       x86_mov_membase_reg (code, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, ecx), X86_ECX, sizeof (mgreg_t));
+       x86_mov_membase_reg (code, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, edx), X86_EDX, sizeof (mgreg_t));
+       x86_mov_reg_membase (code, X86_EAX, X86_EBP, 0, sizeof (mgreg_t));
+       x86_mov_membase_reg (code, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, ebp), X86_EAX, sizeof (mgreg_t));
+       x86_mov_reg_reg (code, X86_EAX, X86_EBP, sizeof (mgreg_t));
+       x86_alu_reg_imm (code, X86_ADD, X86_EAX, cfa_offset);
+       x86_mov_membase_reg (code, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, esp), X86_ESP, sizeof (mgreg_t));
+       x86_mov_membase_reg (code, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, esi), X86_ESI, sizeof (mgreg_t));
+       x86_mov_membase_reg (code, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, edi), X86_EDI, sizeof (mgreg_t));
+       x86_mov_reg_membase (code, X86_EAX, X86_EBP, 4, sizeof (mgreg_t));
+       x86_mov_membase_reg (code, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, eip), X86_EAX, sizeof (mgreg_t));
+
+       /* Call the single step/breakpoint function in sdb */
+       x86_lea_membase (code, X86_EAX, X86_ESP, ctx_offset);
+       x86_mov_membase_reg (code, X86_ESP, 0, X86_EAX, sizeof (mgreg_t));
+
+       if (aot) {
+               g_assert_not_reached ();
+       } else {
+               if (single_step)
+                       x86_call_code (code, debugger_agent_single_step_from_context);
+               else
+                       x86_call_code (code, debugger_agent_breakpoint_from_context);
+       }
+
+       /* Restore registers from ctx */
+       /* Overwrite the saved ebp */
+       x86_mov_reg_membase (code, X86_EAX, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, ebp), sizeof (mgreg_t));
+       x86_mov_membase_reg (code, X86_EBP, 0, X86_EAX, sizeof (mgreg_t));
+       /* Overwrite saved eip */
+       x86_mov_reg_membase (code, X86_EAX, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, eip), sizeof (mgreg_t));
+       x86_mov_membase_reg (code, X86_EBP, 4, X86_EAX, sizeof (mgreg_t));
+       x86_mov_reg_membase (code, X86_EAX, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, eax), sizeof (mgreg_t));
+       x86_mov_reg_membase (code, X86_EBX, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, ebx), sizeof (mgreg_t));
+       x86_mov_reg_membase (code, X86_ECX, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, ecx), sizeof (mgreg_t));
+       x86_mov_reg_membase (code, X86_EDX, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, edx), sizeof (mgreg_t));
+       x86_mov_reg_membase (code, X86_ESI, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, esi), sizeof (mgreg_t));
+       x86_mov_reg_membase (code, X86_EDI, X86_ESP, ctx_offset + G_STRUCT_OFFSET (MonoContext, edi), sizeof (mgreg_t));
+
+       x86_leave (code);
+       cfa_offset -= sizeof (mgreg_t);
+       mono_add_unwind_op_def_cfa (unwind_ops, code, buf, X86_ESP, cfa_offset);
+       x86_ret (code);
+
+       mono_arch_flush_icache (code, code - buf);
+       g_assert (code - buf <= tramp_size);
+
+       const char *tramp_name = single_step ? "sdb_single_step_trampoline" : "sdb_breakpoint_trampoline";
+       *info = mono_tramp_info_create (tramp_name, buf, code - buf, ji, unwind_ops);
+
+       return buf;
+}
+
 #if defined(ENABLE_GSHAREDVT)
 
 #include "../../../mono-extensions/mono/mini/tramp-x86-gsharedvt.c"
index 52b292ef0808a7d2b96920791df7d7584af5f6f7..1fbd5c9f63bbfed5c3b6bf580c31fb63a4770743 100644 (file)
@@ -338,13 +338,15 @@ mono_print_unwind_info (guint8 *unwind_info, int unwind_info_len)
 }
 
 /*
- * mono_unwind_ops_encode:
+ * mono_unwind_ops_encode_full:
  *
  *   Encode the unwind ops in UNWIND_OPS into the compact DWARF encoding.
  * Return a pointer to malloc'ed memory.
+ * If ENABLE_EXTENSIONS is FALSE, avoid encoding the mono extension
+ * opcode (DW_CFA_mono_advance_loc).
  */
 guint8*
-mono_unwind_ops_encode (GSList *unwind_ops, guint32 *out_len)
+mono_unwind_ops_encode_full (GSList *unwind_ops, guint32 *out_len, gboolean enable_extensions)
 {
        GSList *l;
        MonoUnwindOp *op;
@@ -430,6 +432,8 @@ mono_unwind_ops_encode (GSList *unwind_ops, guint32 *out_len)
                        *p ++ = op->op;
                        break;
                case DW_CFA_mono_advance_loc:
+                       if (!enable_extensions)
+                               break;
                        /* Only one location is supported */
                        g_assert (op->val == 0);
                        *p ++ = op->op;
@@ -447,6 +451,12 @@ mono_unwind_ops_encode (GSList *unwind_ops, guint32 *out_len)
        return res;
 }
 
+guint8*
+mono_unwind_ops_encode (GSList *unwind_ops, guint32 *out_len)
+{
+       return mono_unwind_ops_encode_full (unwind_ops, out_len, TRUE);
+}
+
 #if 0
 #define UNW_DEBUG(stmt) do { stmt; } while (0)
 #else
@@ -1164,7 +1174,7 @@ mono_unwind_decode_llvm_mono_fde (guint8 *fde, int fde_len, guint8 *cie, guint8
 GSList*
 mono_unwind_get_cie_program (void)
 {
-#if defined(TARGET_AMD64) || defined(TARGET_X86) || defined(TARGET_POWERPC)
+#if defined(TARGET_AMD64) || defined(TARGET_X86) || defined(TARGET_POWERPC) || defined(TARGET_ARM)
        return mono_arch_get_cie_program ();
 #else
        return NULL;
index e249e6e8e958f6b1f30ebe79f2366115453fc4cb..0e051966e126822f7121977b87b7aed82b1a2005 100644 (file)
@@ -27,7 +27,7 @@
 #include <glib.h>
 #include "mini.h"
 
-#if !defined(DISABLE_AOT) && !defined(DISABLE_JIT)
+#if !defined(DISABLE_AOT) && !defined(DISABLE_JIT) && USE_BIN_WRITER
 #include <sys/types.h>
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
index 3e1961e9966147781e184a9b95d40c0e316f922e..d67a97264ac046c1244e5951d859ba7a8fdf20ea 100644 (file)
@@ -75,7 +75,9 @@ PLOG_TESTS_SRC=test-alloc.cs test-busy.cs test-monitor.cs test-excleave.cs \
        test-heapshot.cs test-traces.cs
 PLOG_TESTS=$(PLOG_TESTS_SRC:.cs=.exe)
 
-with_mono_path = MONO_PATH=$(mcs_topdir)/class/lib/net_4_5
+CLASS=$(mcs_topdir)/class/lib/$(DEFAULT_PROFILE)
+
+with_mono_path = MONO_PATH=$(CLASS)
 
 RUNTIME = $(with_mono_path) $(top_builddir)/runtime/mono-wrapper
 MCS = $(RUNTIME) $(mcs_topdir)/class/lib/build/mcs.exe -unsafe -nowarn:0162 -nowarn:0168 -nowarn:0219 -debug
index 9690f6297bd6c2fdc5585e28e6bedcafeee2e360..0df2d3cd1af74d33f445fa11a8beaef0d820a95e 100644 (file)
@@ -572,6 +572,29 @@ add_image (intptr_t image, char *name)
        num_images++;
 }
 
+static int num_assemblies;
+
+typedef struct _AssemblyDesc AssemblyDesc;
+struct _AssemblyDesc {
+       AssemblyDesc *next;
+       intptr_t assembly;
+       char *asmname;
+};
+
+static AssemblyDesc* assembly_hash [SMALL_HASH_SIZE] = {0};
+
+static void
+add_assembly (intptr_t assembly, char *name)
+{
+       int slot = ((assembly >> 2) & 0xffff) % SMALL_HASH_SIZE;
+       AssemblyDesc *cd = malloc (sizeof (AssemblyDesc));
+       cd->assembly = assembly;
+       cd->asmname = pstrdup (name);
+       cd->next = assembly_hash [slot];
+       assembly_hash [slot] = cd;
+       num_assemblies++;
+}
+
 typedef struct _BackTrace BackTrace;
 typedef struct {
        uint64_t count;
@@ -1476,6 +1499,8 @@ add_backtrace (int count, MethodDesc **methods)
 
 typedef struct _MonitorDesc MonitorDesc;
 typedef struct _ThreadContext ThreadContext;
+typedef struct _DomainContext DomainContext;
+typedef struct _RemCtxContext RemCtxContext;
 
 typedef struct {
        FILE *file;
@@ -1492,7 +1517,11 @@ typedef struct {
        int port;
        uint64_t startup_time;
        ThreadContext *threads;
-       ThreadContext *current;
+       ThreadContext *current_thread;
+       DomainContext *domains;
+       DomainContext *current_domain;
+       RemCtxContext *remctxs;
+       RemCtxContext *current_remctx;
 } ProfContext;
 
 struct _ThreadContext {
@@ -1517,6 +1546,18 @@ struct _ThreadContext {
        uint64_t gc_start_times [3];
 };
 
+struct _DomainContext {
+       DomainContext *next;
+       intptr_t domain_id;
+       const char *friendly_name;
+};
+
+struct _RemCtxContext {
+       RemCtxContext *next;
+       intptr_t remctx_id;
+       intptr_t domain_id;
+};
+
 static void
 ensure_buffer (ProfContext *ctx, int size)
 {
@@ -1550,8 +1591,8 @@ static ThreadContext*
 get_thread (ProfContext *ctx, intptr_t thread_id)
 {
        ThreadContext *thread;
-       if (ctx->current && ctx->current->thread_id == thread_id)
-               return ctx->current;
+       if (ctx->current_thread && ctx->current_thread->thread_id == thread_id)
+               return ctx->current_thread;
        thread = ctx->threads;
        while (thread) {
                if (thread->thread_id == thread_id) {
@@ -1572,11 +1613,57 @@ get_thread (ProfContext *ctx, intptr_t thread_id)
        return thread;
 }
 
+static DomainContext *
+get_domain (ProfContext *ctx, intptr_t domain_id)
+{
+       if (ctx->current_domain && ctx->current_domain->domain_id == domain_id)
+               return ctx->current_domain;
+
+       DomainContext *domain = ctx->domains;
+
+       while (domain) {
+               if (domain->domain_id == domain_id)
+                       return domain;
+
+               domain = domain->next;
+       }
+
+       domain = calloc (sizeof (DomainContext), 1);
+       domain->next = ctx->domains;
+       ctx->domains = domain;
+       domain->domain_id = domain_id;
+
+       return domain;
+}
+
+static RemCtxContext *
+get_remctx (ProfContext *ctx, intptr_t remctx_id)
+{
+       if (ctx->current_remctx && ctx->current_remctx->remctx_id == remctx_id)
+               return ctx->current_remctx;
+
+       RemCtxContext *remctx = ctx->remctxs;
+
+       while (remctx) {
+               if (remctx->remctx_id == remctx_id)
+                       return remctx;
+
+               remctx = remctx->next;
+       }
+
+       remctx = calloc (sizeof (RemCtxContext), 1);
+       remctx->next = ctx->remctxs;
+       ctx->remctxs = remctx;
+       remctx->remctx_id = remctx_id;
+
+       return remctx;
+}
+
 static ThreadContext*
 load_thread (ProfContext *ctx, intptr_t thread_id)
 {
        ThreadContext *thread = get_thread (ctx, thread_id);
-       ctx->current = thread;
+       ctx->current_thread = thread;
        return thread;
 }
 
@@ -1758,6 +1845,7 @@ typedef struct {
        uint64_t live;
        uint64_t max_live;
        TraceDesc traces;
+       TraceDesc destroy_traces;
 } HandleInfo;
 static HandleInfo handle_info [4];
 
@@ -1904,12 +1992,18 @@ tracked_creation (uintptr_t obj, ClassDesc *cd, uint64_t size, BackTrace *bt, ui
 }
 
 static void
-track_handle (uintptr_t obj, int htype, uint32_t handle)
+track_handle (uintptr_t obj, int htype, uint32_t handle, BackTrace *bt, uint64_t timestamp)
 {
        int i;
        for (i = 0; i < num_tracked_objects; ++i) {
-               if (tracked_objects [i] == obj)
-                       fprintf (outfile, "Object %p referenced from handle %u\n", (void*)obj, handle);
+               if (tracked_objects [i] != obj)
+                       continue;
+               fprintf (outfile, "Object %p referenced from handle %u at %.3f secs.\n", (void*)obj, handle, (timestamp - startup_time) / 1000000000.0);
+               if (bt && bt->count) {
+                       int k;
+                       for (k = 0; k < bt->count; ++k)
+                               fprintf (outfile, "\t%s\n", bt->methods [k]->name);
+               }
        }
 }
 
@@ -2187,36 +2281,78 @@ decode_buffer (ProfContext *ctx)
                                                fprintf (outfile, "moved obj %p to %p\n", (void*)OBJ_ADDR (obj1diff), (void*)OBJ_ADDR (obj2diff));
                                        }
                                }
-                       } else if (subtype == TYPE_GC_HANDLE_CREATED) {
+                       } else if (subtype == TYPE_GC_HANDLE_CREATED || subtype == TYPE_GC_HANDLE_CREATED_BT) {
+                               int has_bt = subtype == TYPE_GC_HANDLE_CREATED_BT;
+                               int num_bt = 0;
+                               MethodDesc *sframes [8];
+                               MethodDesc **frames = sframes;
                                int htype = decode_uleb128 (p, &p);
                                uint32_t handle = decode_uleb128 (p, &p);
                                intptr_t objdiff = decode_sleb128 (p, &p);
+                               if (has_bt) {
+                                       num_bt = 8;
+                                       frames = decode_bt (sframes, &num_bt, p, &p, ptr_base);
+                                       if (!frames) {
+                                               fprintf (outfile, "Cannot load backtrace\n");
+                                               return 0;
+                                       }
+                               }
                                if (htype > 3)
                                        return 0;
-                               handle_info [htype].created++;
-                               handle_info [htype].live++;
-                               add_trace_thread (thread, &handle_info [htype].traces, 1);
-                               /* FIXME: we don't take into account timing here */
-                               if (handle_info [htype].live > handle_info [htype].max_live)
-                                       handle_info [htype].max_live = handle_info [htype].live;
-                               if (num_tracked_objects)
-                                       track_handle (OBJ_ADDR (objdiff), htype, handle);
+                               if ((thread_filter && thread_filter == thread->thread_id) || (time_base >= time_from && time_base < time_to)) {
+                                       handle_info [htype].created++;
+                                       handle_info [htype].live++;
+                                       if (handle_info [htype].live > handle_info [htype].max_live)
+                                               handle_info [htype].max_live = handle_info [htype].live;
+                                       BackTrace *bt;
+                                       if (has_bt)
+                                               bt = add_trace_methods (frames, num_bt, &handle_info [htype].traces, 1);
+                                       else
+                                               bt = add_trace_thread (thread, &handle_info [htype].traces, 1);
+                                       if (num_tracked_objects)
+                                               track_handle (OBJ_ADDR (objdiff), htype, handle, bt, time_base);
+                               }
                                if (debug)
                                        fprintf (outfile, "handle (%s) %u created for object %p\n", get_handle_name (htype), handle, (void*)OBJ_ADDR (objdiff));
-                       } else if (subtype == TYPE_GC_HANDLE_DESTROYED) {
+                               if (frames != sframes)
+                                       free (frames);
+                       } else if (subtype == TYPE_GC_HANDLE_DESTROYED || subtype == TYPE_GC_HANDLE_DESTROYED_BT) {
+                               int has_bt = subtype == TYPE_GC_HANDLE_DESTROYED_BT;
+                               int num_bt = 0;
+                               MethodDesc *sframes [8];
+                               MethodDesc **frames = sframes;
                                int htype = decode_uleb128 (p, &p);
                                uint32_t handle = decode_uleb128 (p, &p);
+                               if (has_bt) {
+                                       num_bt = 8;
+                                       frames = decode_bt (sframes, &num_bt, p, &p, ptr_base);
+                                       if (!frames) {
+                                               fprintf (outfile, "Cannot load backtrace\n");
+                                               return 0;
+                                       }
+                               }
                                if (htype > 3)
                                        return 0;
-                               handle_info [htype].destroyed ++;
-                               handle_info [htype].live--;
+                               if ((thread_filter && thread_filter == thread->thread_id) || (time_base >= time_from && time_base < time_to)) {
+                                       handle_info [htype].destroyed ++;
+                                       handle_info [htype].live--;
+                                       BackTrace *bt;
+                                       if (has_bt)
+                                               bt = add_trace_methods (frames, num_bt, &handle_info [htype].destroy_traces, 1);
+                                       else
+                                               bt = add_trace_thread (thread, &handle_info [htype].destroy_traces, 1);
+                                       /* TODO: track_handle_free () - would need to record and keep track of the associated object address... */
+                               }
                                if (debug)
                                        fprintf (outfile, "handle (%s) %u destroyed\n", get_handle_name (htype), handle);
+                               if (frames != sframes)
+                                       free (frames);
                        }
                        break;
                }
                case TYPE_METADATA: {
-                       int error = *p & TYPE_LOAD_ERR;
+                       int subtype = *p & 0xf0;
+                       const char *load_str = subtype == TYPE_END_LOAD ? "loaded" : "unloaded";
                        uint64_t tdiff = decode_uleb128 (p + 1, &p);
                        int mtype = *p++;
                        intptr_t ptrdiff = decode_sleb128 (p, &p);
@@ -2230,8 +2366,8 @@ decode_buffer (ProfContext *ctx)
                                        return 0;
                                }
                                if (debug)
-                                       fprintf (outfile, "loaded class %p (%s in %p) at %llu\n", (void*)(ptr_base + ptrdiff), p, (void*)(ptr_base + imptrdiff), (unsigned long long) time_base);
-                               if (!error)
+                                       fprintf (outfile, "%s class %p (%s in %p) at %llu\n", load_str, (void*)(ptr_base + ptrdiff), p, (void*)(ptr_base + imptrdiff), (unsigned long long) time_base);
+                               if (subtype == TYPE_END_LOAD)
                                        add_class (ptr_base + ptrdiff, (char*)p);
                                while (*p) p++;
                                p++;
@@ -2242,24 +2378,74 @@ decode_buffer (ProfContext *ctx)
                                        return 0;
                                }
                                if (debug)
-                                       fprintf (outfile, "loaded image %p (%s) at %llu\n", (void*)(ptr_base + ptrdiff), p, (unsigned long long) time_base);
-                               if (!error)
+                                       fprintf (outfile, "%s image %p (%s) at %llu\n", load_str, (void*)(ptr_base + ptrdiff), p, (unsigned long long) time_base);
+                               if (subtype == TYPE_END_LOAD)
                                        add_image (ptr_base + ptrdiff, (char*)p);
                                while (*p) p++;
                                p++;
-                       } else if (mtype == TYPE_THREAD) {
-                               ThreadContext *nt;
+                       } else if (mtype == TYPE_ASSEMBLY) {
                                uint64_t flags = decode_uleb128 (p, &p);
                                if (flags) {
-                                       fprintf (outfile, "non-zero flags in thread\n");
+                                       fprintf (outfile, "non-zero flags in assembly\n");
                                        return 0;
                                }
-                               nt = get_thread (ctx, ptr_base + ptrdiff);
-                               nt->name = pstrdup ((char*)p);
                                if (debug)
-                                       fprintf (outfile, "thread %p named: %s\n", (void*)(ptr_base + ptrdiff), p);
+                                       fprintf (outfile, "%s assembly %p (%s) at %llu\n", load_str, (void*)(ptr_base + ptrdiff), p, (unsigned long long) time_base);
+                               if (subtype == TYPE_END_LOAD)
+                                       add_assembly (ptr_base + ptrdiff, (char*)p);
                                while (*p) p++;
                                p++;
+                       } else if (mtype == TYPE_DOMAIN) {
+                               uint64_t flags = decode_uleb128 (p, &p);
+                               if (flags) {
+                                       fprintf (outfile, "non-zero flags in domain\n");
+                                       return 0;
+                               }
+                               DomainContext *nd = get_domain (ctx, ptr_base + ptrdiff);
+                               /* no subtype means it's a name event, rather than start/stop */
+                               if (subtype == 0)
+                                       nd->friendly_name = pstrdup ((char *) p);
+                               if (debug) {
+                                       if (subtype == 0)
+                                               fprintf (outfile, "domain %p named at %llu: %s\n", (void *) (ptr_base + ptrdiff), (unsigned long long) time_base, p);
+                                       else
+                                               fprintf (outfile, "%s thread %p at %llu\n", load_str, (void *) (ptr_base + ptrdiff), (unsigned long long) time_base);
+                               }
+                               if (subtype == 0) {
+                                       while (*p) p++;
+                                       p++;
+                               }
+                       } else if (mtype == TYPE_CONTEXT) {
+                               uint64_t flags = decode_uleb128 (p, &p);
+                               if (flags) {
+                                       fprintf (outfile, "non-zero flags in context\n");
+                                       return 0;
+                               }
+                               intptr_t domaindiff = decode_sleb128 (p, &p);
+                               if (debug)
+                                       fprintf (outfile, "%s context %p (%p) at %llu\n", load_str, (void*)(ptr_base + ptrdiff), (void *) (ptr_base + domaindiff), (unsigned long long) time_base);
+                               if (subtype == TYPE_END_LOAD)
+                                       get_remctx (ctx, ptr_base + ptrdiff)->domain_id = ptr_base + domaindiff;
+                       } else if (mtype == TYPE_THREAD) {
+                               uint64_t flags = decode_uleb128 (p, &p);
+                               if (flags) {
+                                       fprintf (outfile, "non-zero flags in thread\n");
+                                       return 0;
+                               }
+                               ThreadContext *nt = get_thread (ctx, ptr_base + ptrdiff);
+                               /* no subtype means it's a name event, rather than start/stop */
+                               if (subtype == 0)
+                                       nt->name = pstrdup ((char*)p);
+                               if (debug) {
+                                       if (subtype == 0)
+                                               fprintf (outfile, "thread %p named at %llu: %s\n", (void*)(ptr_base + ptrdiff), (unsigned long long) time_base, p);
+                                       else
+                                               fprintf (outfile, "%s thread %p at %llu\n", load_str, (void *) (ptr_base + ptrdiff), (unsigned long long) time_base);
+                               }
+                               if (subtype == 0) {
+                                       while (*p) p++;
+                                       p++;
+                               }
                        }
                        break;
                }
@@ -2574,13 +2760,16 @@ decode_buffer (ProfContext *ctx)
                                int i;
                                int sample_type = decode_uleb128 (p + 1, &p);
                                uint64_t tstamp = decode_uleb128 (p, &p);
+                               void *tid = (void *) thread_id;
+                               if (ctx->data_version > 10)
+                                       tid = (void *) (ptr_base + decode_sleb128 (p, &p));
                                int count = decode_uleb128 (p, &p);
                                for (i = 0; i < count; ++i) {
                                        uintptr_t ip = ptr_base + decode_sleb128 (p, &p);
                                        if ((tstamp >= time_from && tstamp < time_to))
                                                add_stat_sample (sample_type, ip);
                                        if (debug)
-                                               fprintf (outfile, "sample hit, type: %d at %p\n", sample_type, (void*)ip);
+                                               fprintf (outfile, "sample hit, type: %d at %p for thread %p\n", sample_type, (void*)ip, tid);
                                }
                                if (ctx->data_version > 5) {
                                        count = decode_uleb128 (p, &p);
@@ -2938,6 +3127,24 @@ dump_threads (ProfContext *ctx)
        }
 }
 
+static void
+dump_domains (ProfContext *ctx)
+{
+       fprintf (outfile, "\nDomain summary\n");
+
+       for (DomainContext *domain = ctx->domains; domain; domain = domain->next)
+               fprintf (outfile, "\tDomain: %p, friendly name: \"%s\"\n", (void *) domain->domain_id, domain->friendly_name);
+}
+
+static void
+dump_remctxs (ProfContext *ctx)
+{
+       fprintf (outfile, "\nContext summary\n");
+
+       for (RemCtxContext *remctx = ctx->remctxs; remctx; remctx = remctx->next)
+               fprintf (outfile, "\tContext: %p, domain: %p\n", (void *) remctx->remctx_id, (void *) remctx->domain_id);
+}
+
 static void
 dump_exceptions (void)
 {
@@ -3019,6 +3226,7 @@ dump_gcs (void)
                        (unsigned long long) (handle_info [i].destroyed),
                        (unsigned long long) (handle_info [i].max_live));
                dump_traces (&handle_info [i].traces, "created");
+               dump_traces (&handle_info [i].destroy_traces, "destroyed");
        }
 }
 
@@ -3131,7 +3339,18 @@ dump_metadata (void)
                        }
                }
        }
-
+       fprintf (outfile, "\tLoaded assemblies: %d\n", num_assemblies);
+       if (verbose) {
+               AssemblyDesc *assembly;
+               int i;
+               for (i = 0; i < SMALL_HASH_SIZE; ++i) {
+                       assembly = assembly_hash [i];
+                       while (assembly) {
+                               fprintf (outfile, "\t\t%s\n", assembly->asmname);
+                               assembly = assembly->next;
+                       }
+               }
+       }
 }
 
 static void
@@ -3524,6 +3743,16 @@ print_reports (ProfContext *ctx, const char *reps, int parse_only)
                                dump_threads (ctx);
                        continue;
                }
+               if ((opt = match_option (p, "domain")) != p) {
+                       if (!parse_only)
+                               dump_domains (ctx);
+                       continue;
+               }
+               if ((opt = match_option (p, "context")) != p) {
+                       if (!parse_only)
+                               dump_remctxs (ctx);
+                       continue;
+               }
                if ((opt = match_option (p, "gc")) != p) {
                        if (!parse_only)
                                dump_gcs ();
diff --git a/mono/profiler/mono-codeanalyst.c b/mono/profiler/mono-codeanalyst.c
deleted file mode 100644 (file)
index a6d13a0..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * mono-codeanalyst.c: AMD CodeAnalyst profiler
- *
- * Author:
- *   Jonathan Chambers (joncham@gmail.com)
- *
- * (C) 2011 Jonathan Chambers
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-#include <mono/metadata/profiler.h>
-#include <mono/metadata/tokentype.h>
-#include <mono/metadata/tabledefs.h>
-#include <mono/metadata/debug-helpers.h>
-#include <mono/metadata/assembly.h>
-#include <string.h>
-#include <glib.h>
-
-#define bool char
-
-#include "CAJITNTFLib.h"
-
-/* called at the end of the program */
-static void
-codeanalyst_shutdown (MonoProfiler *prof)
-{
-       CAJIT_CompleteJITLog ();
-}
-
-static void
-method_jit_result (MonoProfiler *prof, MonoMethod *method, MonoJitInfo* jinfo, int result) {
-       if (result == MONO_PROFILE_OK) {
-               gunichar2* name_utf16;
-               MonoClass *klass = mono_method_get_class (method);
-               char *signature = mono_signature_get_desc (mono_method_signature (method), TRUE);
-               char *name = g_strdup_printf ("%s.%s.%s (%s)", mono_class_get_namespace (klass), mono_class_get_name (klass), mono_method_get_name (method), signature);
-               gpointer code_start = mono_jit_info_get_code_start (jinfo);
-               int code_size = mono_jit_info_get_code_size (jinfo);
-               
-               name_utf16 = g_utf8_to_utf16 (name, strlen (name), NULL, NULL, NULL);
-               
-               CAJIT_LogJITCode ((uintptr_t)code_start, code_size, (wchar_t*)name_utf16);
-               
-               g_free (signature);
-               g_free (name);
-               g_free (name_utf16);
-       }
-}
-
-void
-mono_profiler_startup (const char *desc);
-
-/* the entry point */
-void
-mono_profiler_startup (const char *desc)
-{
-       CAJIT_Initialize ();
-
-       mono_profiler_install (NULL, codeanalyst_shutdown);
-       mono_profiler_install_jit_end (method_jit_result);
-       mono_profiler_set_events (MONO_PROFILE_JIT_COMPILATION);
-}
-
-
index 809002978597d0859d1fa31e87926561875a6eb8..b981feeeed94217c85b692f8687a2a5bd2d02fc3 100644 (file)
@@ -91,6 +91,12 @@ static int read_perf_mmap (MonoProfiler* prof, int cpu);
 #endif
 
 #define BUFFER_SIZE (4096 * 16)
+
+/* Worst-case size in bytes of a 64-bit value encoded with LEB128. */
+#define LEB128_SIZE 10
+/* Size in bytes of the event ID prefix. */
+#define EVENT_SIZE 1
+
 static int nocalls = 0;
 static int notraces = 0;
 static int use_zip = 0;
@@ -192,8 +198,8 @@ typedef struct _LogBuffer LogBuffer;
  *
  * type GC format:
  * type: TYPE_GC
- * exinfo: one of TYPE_GC_EVENT, TYPE_GC_RESIZE, TYPE_GC_MOVE, TYPE_GC_HANDLE_CREATED,
- * TYPE_GC_HANDLE_DESTROYED
+ * exinfo: one of TYPE_GC_EVENT, TYPE_GC_RESIZE, TYPE_GC_MOVE, TYPE_GC_HANDLE_CREATED[_BT],
+ * TYPE_GC_HANDLE_DESTROYED[_BT]
  * [time diff: uleb128] nanoseconds since last timing
  * if exinfo == TYPE_GC_RESIZE
  *     [heap_size: uleb128] new heap size
@@ -205,32 +211,42 @@ typedef struct _LogBuffer LogBuffer;
  *     [objaddr: sleb128]+ num_objects object pointer differences from obj_base
  *     num is always an even number: the even items are the old
  *     addresses, the odd numbers are the respective new object addresses
- * if exinfo == TYPE_GC_HANDLE_CREATED
+ * if exinfo == TYPE_GC_HANDLE_CREATED[_BT]
  *     [handle_type: uleb128] GC handle type (System.Runtime.InteropServices.GCHandleType)
  *     upper bits reserved as flags
  *     [handle: uleb128] GC handle value
  *     [objaddr: sleb128] object pointer differences from obj_base
- * if exinfo == TYPE_GC_HANDLE_DESTROYED
+ *     If exinfo == TYPE_GC_HANDLE_CREATED_BT, a backtrace follows.
+ * if exinfo == TYPE_GC_HANDLE_DESTROYED[_BT]
  *     [handle_type: uleb128] GC handle type (System.Runtime.InteropServices.GCHandleType)
  *     upper bits reserved as flags
  *     [handle: uleb128] GC handle value
+ *     If exinfo == TYPE_GC_HANDLE_DESTROYED_BT, a backtrace follows.
  *
  * type metadata format:
  * type: TYPE_METADATA
- * exinfo: flags: TYPE_LOAD_ERR
+ * exinfo: one of: TYPE_END_LOAD, TYPE_END_UNLOAD (optional for TYPE_THREAD and TYPE_DOMAIN)
  * [time diff: uleb128] nanoseconds since last timing
  * [mtype: byte] metadata type, one of: TYPE_CLASS, TYPE_IMAGE, TYPE_ASSEMBLY, TYPE_DOMAIN,
- * TYPE_THREAD
+ * TYPE_THREAD, TYPE_CONTEXT
  * [pointer: sleb128] pointer of the metadata type depending on mtype
  * if mtype == TYPE_CLASS
  *     [image: sleb128] MonoImage* as a pointer difference from ptr_base
- *     [flags: uleb128] must be 0
+ *  [flags: uleb128] must be 0
  *     [name: string] full class name
  * if mtype == TYPE_IMAGE
- *     [flags: uleb128] must be 0
+ *  [flags: uleb128] must be 0
  *     [name: string] image file name
- * if mtype == TYPE_THREAD
- *     [flags: uleb128] must be 0
+ * if mtype == TYPE_ASSEMBLY
+ *  [flags: uleb128] must be 0
+ *     [name: string] assembly name
+ * if mtype == TYPE_DOMAIN
+ *  [flags: uleb128] must be 0
+ * if mtype == TYPE_DOMAIN && exinfo == 0
+ *     [name: string] domain friendly name
+ * if mtype == TYPE_CONTEXT
+ *     [domain: sleb128] domain id as pointer
+ * if mtype == TYPE_THREAD && (format_version < 11 || (format_version > 10 && exinfo == 0))
  *     [name: string] thread name
  *
  * type method format:
@@ -296,6 +312,8 @@ typedef struct _LogBuffer LogBuffer;
  * if exinfo == TYPE_SAMPLE_HIT
  *     [sample_type: uleb128] type of sample (SAMPLE_*)
  *     [timestamp: uleb128] nanoseconds since startup (note: different from other timestamps!)
+ *     if (format_version > 10)
+ *             [thread: sleb128] thread id as difference from ptr_base
  *     [count: uleb128] number of following instruction addresses
  *     [ip: sleb128]* instruction pointer as difference from ptr_base
  *     if (format_version > 5)
@@ -455,6 +473,7 @@ struct _MonoProfiler {
        mono_mutex_t method_table_mutex;
        BinaryObject *binary_objects;
        GPtrArray *coverage_filters;
+       GPtrArray *sorted_sample_events;
 };
 
 typedef struct _WriterQueueEntry WriterQueueEntry;
@@ -885,7 +904,17 @@ gc_reference (MonoObject *obj, MonoClass *klass, uintptr_t size, uintptr_t num,
        int i;
        uintptr_t last_offset = 0;
        //const char *name = mono_class_get_name (klass);
-       LogBuffer *logbuffer = ensure_logbuf (20 + num * 8);
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* obj */ +
+               LEB128_SIZE /* klass */ +
+               LEB128_SIZE /* size */ +
+               LEB128_SIZE /* num */ +
+               num * (
+                       LEB128_SIZE /* offset */ +
+                       LEB128_SIZE /* ref */
+               )
+       );
        emit_byte (logbuffer, TYPE_HEAP_OBJECT | TYPE_HEAP);
        emit_obj (logbuffer, obj);
        emit_ptr (logbuffer, klass);
@@ -918,7 +947,10 @@ heap_walk (MonoProfiler *profiler)
        LogBuffer *logbuffer;
        if (!do_heap_shot)
                return;
-       logbuffer = ensure_logbuf (10);
+       logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */
+       );
        now = current_time ();
        if (hs_mode_ms && (now - last_hs_time)/1000000 >= hs_mode_ms)
                do_walk = 1;
@@ -935,7 +967,10 @@ heap_walk (MonoProfiler *profiler)
        emit_byte (logbuffer, TYPE_HEAP_START | TYPE_HEAP);
        emit_time (logbuffer, now);
        mono_gc_walk_heap (0, gc_reference, NULL);
-       logbuffer = ensure_logbuf (10);
+       logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */
+       );
        now = current_time ();
        emit_byte (logbuffer, TYPE_HEAP_END | TYPE_HEAP);
        emit_time (logbuffer, now);
@@ -945,7 +980,12 @@ heap_walk (MonoProfiler *profiler)
 static void
 gc_event (MonoProfiler *profiler, MonoGCEvent ev, int generation) {
        uint64_t now;
-       LogBuffer *logbuffer = ensure_logbuf (10);
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               LEB128_SIZE /* gc event */ +
+               LEB128_SIZE /* generation */
+       );
        now = current_time ();
        ENTER_LOG (logbuffer, "gcevent");
        emit_byte (logbuffer, TYPE_GC_EVENT | TYPE_GC);
@@ -969,7 +1009,11 @@ gc_event (MonoProfiler *profiler, MonoGCEvent ev, int generation) {
 static void
 gc_resize (MonoProfiler *profiler, int64_t new_size) {
        uint64_t now;
-       LogBuffer *logbuffer = ensure_logbuf (10);
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               LEB128_SIZE /* new size */
+       );
        now = current_time ();
        ENTER_LOG (logbuffer, "gcresize");
        emit_byte (logbuffer, TYPE_GC_RESIZE | TYPE_GC);
@@ -1044,7 +1088,20 @@ gc_alloc (MonoProfiler *prof, MonoObject *obj, MonoClass *klass)
        len &= ~7;
        if (do_bt)
                collect_bt (&data);
-       logbuffer = ensure_logbuf (32 + MAX_FRAMES * 8);
+       logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               LEB128_SIZE /* klass */ +
+               LEB128_SIZE /* obj */ +
+               LEB128_SIZE /* size */ +
+               (do_bt ? (
+                       LEB128_SIZE /* flags */ +
+                       LEB128_SIZE /* count */ +
+                       data.count * (
+                               LEB128_SIZE /* method */
+                       )
+               ) : 0)
+       );
        now = current_time ();
        ENTER_LOG (logbuffer, "gcalloc");
        emit_byte (logbuffer, do_bt | TYPE_ALLOC);
@@ -1066,7 +1123,14 @@ gc_moves (MonoProfiler *prof, void **objects, int num)
 {
        int i;
        uint64_t now;
-       LogBuffer *logbuffer = ensure_logbuf (10 + num * 8);
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               LEB128_SIZE /* num */ +
+               num * (
+                       LEB128_SIZE /* object */
+               )
+       );
        now = current_time ();
        ENTER_LOG (logbuffer, "gcmove");
        emit_byte (logbuffer, TYPE_GC_MOVE | TYPE_GC);
@@ -1082,7 +1146,16 @@ static void
 gc_roots (MonoProfiler *prof, int num, void **objects, int *root_types, uintptr_t *extra_info)
 {
        int i;
-       LogBuffer *logbuffer = ensure_logbuf (5 + num * 18);
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* num */ +
+               LEB128_SIZE /* collections */ +
+               num * (
+                       LEB128_SIZE /* object */ +
+                       LEB128_SIZE /* root type */ +
+                       LEB128_SIZE /* extra info */
+               )
+       );
        ENTER_LOG (logbuffer, "gcroots");
        emit_byte (logbuffer, TYPE_HEAP_ROOT | TYPE_HEAP);
        emit_value (logbuffer, num);
@@ -1098,21 +1171,50 @@ gc_roots (MonoProfiler *prof, int num, void **objects, int *root_types, uintptr_
 static void
 gc_handle (MonoProfiler *prof, int op, int type, uintptr_t handle, MonoObject *obj)
 {
+       int do_bt = nocalls && InterlockedRead (&runtime_inited) && !notraces;
        uint64_t now;
-       LogBuffer *logbuffer = ensure_logbuf (16);
+       FrameData data;
+
+       if (do_bt)
+               collect_bt (&data);
+
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               LEB128_SIZE /* type */ +
+               LEB128_SIZE /* handle */ +
+               (op == MONO_PROFILER_GC_HANDLE_CREATED ? (
+                       LEB128_SIZE /* obj */
+               ) : 0) +
+               (do_bt ? (
+                       LEB128_SIZE /* flags */ +
+                       LEB128_SIZE /* count */ +
+                       data.count * (
+                               LEB128_SIZE /* method */
+                       )
+               ) : 0)
+       );
+
        now = current_time ();
        ENTER_LOG (logbuffer, "gchandle");
+
        if (op == MONO_PROFILER_GC_HANDLE_CREATED)
-               emit_byte (logbuffer, TYPE_GC_HANDLE_CREATED | TYPE_GC);
+               emit_byte (logbuffer, (do_bt ? TYPE_GC_HANDLE_CREATED_BT : TYPE_GC_HANDLE_CREATED) | TYPE_GC);
        else if (op == MONO_PROFILER_GC_HANDLE_DESTROYED)
-               emit_byte (logbuffer, TYPE_GC_HANDLE_DESTROYED | TYPE_GC);
+               emit_byte (logbuffer, (do_bt ? TYPE_GC_HANDLE_DESTROYED_BT : TYPE_GC_HANDLE_DESTROYED) | TYPE_GC);
        else
-               return;
+               g_assert_not_reached ();
+
        emit_time (logbuffer, now);
        emit_value (logbuffer, type);
        emit_value (logbuffer, handle);
+
        if (op == MONO_PROFILER_GC_HANDLE_CREATED)
                emit_obj (logbuffer, obj);
+
+       if (do_bt)
+               emit_bt (prof, logbuffer, &data);
+
        EXIT_LOG (logbuffer);
        process_requests (prof);
 }
@@ -1164,7 +1266,14 @@ image_loaded (MonoProfiler *prof, MonoImage *image, int result)
                return;
        name = mono_image_get_filename (image);
        nlen = strlen (name) + 1;
-       logbuffer = ensure_logbuf (16 + nlen);
+       logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               EVENT_SIZE /* type */ +
+               LEB128_SIZE /* image */ +
+               LEB128_SIZE /* flags */ +
+               nlen /* name */
+       );
        now = current_time ();
        ENTER_LOG (logbuffer, "image");
        emit_byte (logbuffer, TYPE_END_LOAD | TYPE_METADATA);
@@ -1181,6 +1290,106 @@ image_loaded (MonoProfiler *prof, MonoImage *image, int result)
        process_requests (prof);
 }
 
+static void
+image_unloaded (MonoProfiler *prof, MonoImage *image)
+{
+       const char *name = mono_image_get_filename (image);
+       int nlen = strlen (name) + 1;
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               EVENT_SIZE /* type */ +
+               LEB128_SIZE /* image */ +
+               LEB128_SIZE /* flags */ +
+               nlen /* name */
+       );
+       uint64_t now = current_time ();
+
+       ENTER_LOG (logbuffer, "image-unload");
+       emit_byte (logbuffer, TYPE_END_UNLOAD | TYPE_METADATA);
+       emit_time (logbuffer, now);
+       emit_byte (logbuffer, TYPE_IMAGE);
+       emit_ptr (logbuffer, image);
+       emit_value (logbuffer, 0); /* flags */
+       memcpy (logbuffer->data, name, nlen);
+       logbuffer->data += nlen;
+       EXIT_LOG (logbuffer);
+
+       if (logbuffer->next)
+               safe_send (prof, logbuffer);
+
+       process_requests (prof);
+}
+
+static void
+assembly_loaded (MonoProfiler *prof, MonoAssembly *assembly, int result)
+{
+       if (result != MONO_PROFILE_OK)
+               return;
+
+       char *name = mono_stringify_assembly_name (mono_assembly_get_name (assembly));
+       int nlen = strlen (name) + 1;
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               EVENT_SIZE /* type */ +
+               LEB128_SIZE /* assembly */ +
+               LEB128_SIZE /* flags */ +
+               nlen /* name */
+       );
+       uint64_t now = current_time ();
+
+       ENTER_LOG (logbuffer, "assembly-load");
+       emit_byte (logbuffer, TYPE_END_LOAD | TYPE_METADATA);
+       emit_time (logbuffer, now);
+       emit_byte (logbuffer, TYPE_ASSEMBLY);
+       emit_ptr (logbuffer, assembly);
+       emit_value (logbuffer, 0); /* flags */
+       memcpy (logbuffer->data, name, nlen);
+       logbuffer->data += nlen;
+       EXIT_LOG (logbuffer);
+
+       mono_free (name);
+
+       if (logbuffer->next)
+               safe_send (prof, logbuffer);
+
+       process_requests (prof);
+}
+
+static void
+assembly_unloaded (MonoProfiler *prof, MonoAssembly *assembly)
+{
+       char *name = mono_stringify_assembly_name (mono_assembly_get_name (assembly));
+       int nlen = strlen (name) + 1;
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               EVENT_SIZE /* type */ +
+               LEB128_SIZE /* assembly */ +
+               LEB128_SIZE /* flags */ +
+               nlen /* name */
+       );
+       uint64_t now = current_time ();
+
+       ENTER_LOG (logbuffer, "assembly-unload");
+       emit_byte (logbuffer, TYPE_END_UNLOAD | TYPE_METADATA);
+       emit_time (logbuffer, now);
+       emit_byte (logbuffer, TYPE_ASSEMBLY);
+       emit_ptr (logbuffer, assembly);
+       emit_value (logbuffer, 0); /* flags */
+       memcpy (logbuffer->data, name, nlen);
+       logbuffer->data += nlen;
+       EXIT_LOG (logbuffer);
+
+       mono_free (name);
+
+       if (logbuffer->next)
+               safe_send (prof, logbuffer);
+
+       process_requests (prof);
+}
+
 static void
 class_loaded (MonoProfiler *prof, MonoClass *klass, int result)
 {
@@ -1197,7 +1406,15 @@ class_loaded (MonoProfiler *prof, MonoClass *klass, int result)
                name = type_name (klass);
        nlen = strlen (name) + 1;
        image = mono_class_get_image (klass);
-       logbuffer = ensure_logbuf (24 + nlen);
+       logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               EVENT_SIZE /* type */ +
+               LEB128_SIZE /* klass */ +
+               LEB128_SIZE /* image */ +
+               LEB128_SIZE /* flags */ +
+               nlen /* name */
+       );
        now = current_time ();
        ENTER_LOG (logbuffer, "class");
        emit_byte (logbuffer, TYPE_END_LOAD | TYPE_METADATA);
@@ -1219,6 +1436,51 @@ class_loaded (MonoProfiler *prof, MonoClass *klass, int result)
        process_requests (prof);
 }
 
+static void
+class_unloaded (MonoProfiler *prof, MonoClass *klass)
+{
+       char *name;
+
+       if (InterlockedRead (&runtime_inited))
+               name = mono_type_get_name (mono_class_get_type (klass));
+       else
+               name = type_name (klass);
+
+       int nlen = strlen (name) + 1;
+       MonoImage *image = mono_class_get_image (klass);
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               EVENT_SIZE /* type */ +
+               LEB128_SIZE /* klass */ +
+               LEB128_SIZE /* image */ +
+               LEB128_SIZE /* flags */ +
+               nlen /* name */
+       );
+       uint64_t now = current_time ();
+
+       ENTER_LOG (logbuffer, "class-unload");
+       emit_byte (logbuffer, TYPE_END_UNLOAD | TYPE_METADATA);
+       emit_time (logbuffer, now);
+       emit_byte (logbuffer, TYPE_CLASS);
+       emit_ptr (logbuffer, klass);
+       emit_ptr (logbuffer, image);
+       emit_value (logbuffer, 0); /* flags */
+       memcpy (logbuffer->data, name, nlen);
+       logbuffer->data += nlen;
+       EXIT_LOG (logbuffer);
+
+       if (runtime_inited)
+               mono_free (name);
+       else
+               free (name);
+
+       if (logbuffer->next)
+               safe_send (prof, logbuffer);
+
+       process_requests (prof);
+}
+
 #ifndef DISABLE_HELPER_THREAD
 static void process_method_enter_coverage (MonoProfiler *prof, MonoMethod *method);
 #endif /* DISABLE_HELPER_THREAD */
@@ -1232,7 +1494,11 @@ method_enter (MonoProfiler *prof, MonoMethod *method)
        process_method_enter_coverage (prof, method);
 #endif /* DISABLE_HELPER_THREAD */
 
-       LogBuffer *logbuffer = ensure_logbuf (16);
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               LEB128_SIZE /* method */
+       );
        if (logbuffer->call_depth++ > max_call_depth)
                return;
        ENTER_LOG (logbuffer, "enter");
@@ -1248,7 +1514,11 @@ static void
 method_leave (MonoProfiler *prof, MonoMethod *method)
 {
        uint64_t now;
-       LogBuffer *logbuffer = ensure_logbuf (16);
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               LEB128_SIZE /* method */
+       );
        if (--logbuffer->call_depth > max_call_depth)
                return;
        now = current_time ();
@@ -1269,7 +1539,11 @@ method_exc_leave (MonoProfiler *prof, MonoMethod *method)
        LogBuffer *logbuffer;
        if (nocalls)
                return;
-       logbuffer = ensure_logbuf (16);
+       logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               LEB128_SIZE /* method */
+       );
        if (--logbuffer->call_depth > max_call_depth)
                return;
        now = current_time ();
@@ -1288,6 +1562,8 @@ method_jitted (MonoProfiler *prof, MonoMethod *method, MonoJitInfo *ji, int resu
                return;
 
        register_method_local (prof, method, ji);
+
+       process_requests (prof);
 }
 
 static void
@@ -1304,7 +1580,16 @@ code_buffer_new (MonoProfiler *prof, void *buffer, int size, MonoProfilerCodeBuf
                name = NULL;
                nlen = 0;
        }
-       logbuffer = ensure_logbuf (32 + nlen);
+       logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               LEB128_SIZE /* type */ +
+               LEB128_SIZE /* buffer */ +
+               LEB128_SIZE /* size */ +
+               (name ? (
+                       nlen /* name */
+               ) : 0)
+       );
        now = current_time ();
        ENTER_LOG (logbuffer, "code buffer");
        emit_byte (logbuffer, TYPE_JITHELPER | TYPE_RUNTIME);
@@ -1329,7 +1614,18 @@ throw_exc (MonoProfiler *prof, MonoObject *object)
        LogBuffer *logbuffer;
        if (do_bt)
                collect_bt (&data);
-       logbuffer = ensure_logbuf (16 + MAX_FRAMES * 8);
+       logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               LEB128_SIZE /* object */ +
+               (do_bt ? (
+                       LEB128_SIZE /* flags */ +
+                       LEB128_SIZE /* count */ +
+                       data.count * (
+                               LEB128_SIZE /* method */
+                       )
+               ) : 0)
+       );
        now = current_time ();
        ENTER_LOG (logbuffer, "throw");
        emit_byte (logbuffer, do_bt | TYPE_EXCEPTION);
@@ -1345,7 +1641,13 @@ static void
 clause_exc (MonoProfiler *prof, MonoMethod *method, int clause_type, int clause_num)
 {
        uint64_t now;
-       LogBuffer *logbuffer = ensure_logbuf (16);
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               LEB128_SIZE /* clause type */ +
+               LEB128_SIZE /* clause num */ +
+               LEB128_SIZE /* method */
+       );
        now = current_time ();
        ENTER_LOG (logbuffer, "clause");
        emit_byte (logbuffer, TYPE_EXCEPTION | TYPE_CLAUSE);
@@ -1354,6 +1656,8 @@ clause_exc (MonoProfiler *prof, MonoMethod *method, int clause_type, int clause_
        emit_value (logbuffer, clause_num);
        emit_method (prof, logbuffer, method);
        EXIT_LOG (logbuffer);
+
+       process_requests (prof);
 }
 
 static void
@@ -1365,7 +1669,18 @@ monitor_event (MonoProfiler *profiler, MonoObject *object, MonoProfilerMonitorEv
        LogBuffer *logbuffer;
        if (do_bt)
                collect_bt (&data);
-       logbuffer = ensure_logbuf (16 + MAX_FRAMES * 8);
+       logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               LEB128_SIZE /* object */ +
+               (do_bt ? (
+                       LEB128_SIZE /* flags */ +
+                       LEB128_SIZE /* count */ +
+                       data.count * (
+                               LEB128_SIZE /* method */
+                       )
+               ) : 0)
+       );
        now = current_time ();
        ENTER_LOG (logbuffer, "monitor");
        emit_byte (logbuffer, (event << 4) | do_bt | TYPE_MONITOR);
@@ -1382,25 +1697,215 @@ thread_start (MonoProfiler *prof, uintptr_t tid)
 {
        //printf ("thread start %p\n", (void*)tid);
        init_thread ();
+
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               EVENT_SIZE /* type */ +
+               LEB128_SIZE /* tid */ +
+               LEB128_SIZE /* flags */
+       );
+       uint64_t now = current_time ();
+
+       ENTER_LOG (logbuffer, "thread-start");
+       emit_byte (logbuffer, TYPE_END_LOAD | TYPE_METADATA);
+       emit_time (logbuffer, now);
+       emit_byte (logbuffer, TYPE_THREAD);
+       emit_ptr (logbuffer, (void*) tid);
+       emit_value (logbuffer, 0); /* flags */
+       EXIT_LOG (logbuffer);
+
+       if (logbuffer->next)
+               safe_send (prof, logbuffer);
+
+       process_requests (prof);
 }
 
 static void
 thread_end (MonoProfiler *prof, uintptr_t tid)
 {
-       if (TLS_GET (LogBuffer, tlsbuffer))
-               send_buffer (prof, TLS_GET (GPtrArray, tlsmethodlist), TLS_GET (LogBuffer, tlsbuffer));
+       if (TLS_GET (LogBuffer, tlsbuffer)) {
+               LogBuffer *logbuffer = ensure_logbuf (
+                       EVENT_SIZE /* event */ +
+                       LEB128_SIZE /* time */ +
+                       EVENT_SIZE /* type */ +
+                       LEB128_SIZE /* tid */ +
+                       LEB128_SIZE /* flags */
+               );
+               uint64_t now = current_time ();
+
+               ENTER_LOG (logbuffer, "thread-end");
+               emit_byte (logbuffer, TYPE_END_UNLOAD | TYPE_METADATA);
+               emit_time (logbuffer, now);
+               emit_byte (logbuffer, TYPE_THREAD);
+               emit_ptr (logbuffer, (void*) tid);
+               emit_value (logbuffer, 0); /* flags */
+               EXIT_LOG (logbuffer);
+
+               send_buffer (prof, TLS_GET (GPtrArray, tlsmethodlist), logbuffer);
+
+               /* Don't process requests as the thread is detached from the runtime. */
+       }
 
        TLS_SET (tlsbuffer, NULL);
        TLS_SET (tlsmethodlist, NULL);
 }
 
+static void
+domain_loaded (MonoProfiler *prof, MonoDomain *domain, int result)
+{
+       if (result != MONO_PROFILE_OK)
+               return;
+
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               EVENT_SIZE /* type */ +
+               LEB128_SIZE /* domain id */ +
+               LEB128_SIZE /* flags */
+       );
+       uint64_t now = current_time ();
+
+       ENTER_LOG (logbuffer, "domain-start");
+       emit_byte (logbuffer, TYPE_END_LOAD | TYPE_METADATA);
+       emit_time (logbuffer, now);
+       emit_byte (logbuffer, TYPE_DOMAIN);
+       emit_ptr (logbuffer, (void*)(uintptr_t) mono_domain_get_id (domain));
+       emit_value (logbuffer, 0); /* flags */
+       EXIT_LOG (logbuffer);
+
+       if (logbuffer->next)
+               safe_send (prof, logbuffer);
+
+       process_requests (prof);
+}
+
+static void
+domain_unloaded (MonoProfiler *prof, MonoDomain *domain)
+{
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               EVENT_SIZE /* type */ +
+               LEB128_SIZE /* domain id */ +
+               LEB128_SIZE /* flags */
+       );
+       uint64_t now = current_time ();
+
+       ENTER_LOG (logbuffer, "domain-end");
+       emit_byte (logbuffer, TYPE_END_UNLOAD | TYPE_METADATA);
+       emit_time (logbuffer, now);
+       emit_byte (logbuffer, TYPE_DOMAIN);
+       emit_ptr (logbuffer, (void*)(uintptr_t) mono_domain_get_id (domain));
+       emit_value (logbuffer, 0); /* flags */
+       EXIT_LOG (logbuffer);
+
+       if (logbuffer->next)
+               safe_send (prof, logbuffer);
+
+       process_requests (prof);
+}
+
+static void
+domain_name (MonoProfiler *prof, MonoDomain *domain, const char *name)
+{
+       int nlen = strlen (name) + 1;
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               EVENT_SIZE /* type */ +
+               LEB128_SIZE /* domain id */ +
+               LEB128_SIZE /* flags */ +
+               nlen /* name */
+       );
+       uint64_t now = current_time ();
+
+       ENTER_LOG (logbuffer, "domain-name");
+       emit_byte (logbuffer, TYPE_METADATA);
+       emit_time (logbuffer, now);
+       emit_byte (logbuffer, TYPE_DOMAIN);
+       emit_ptr (logbuffer, (void*)(uintptr_t) mono_domain_get_id (domain));
+       emit_value (logbuffer, 0); /* flags */
+       memcpy (logbuffer->data, name, nlen);
+       logbuffer->data += nlen;
+       EXIT_LOG (logbuffer);
+
+       if (logbuffer->next)
+               safe_send (prof, logbuffer);
+
+       process_requests (prof);
+}
+
+static void
+context_loaded (MonoProfiler *prof, MonoAppContext *context)
+{
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               EVENT_SIZE /* type */ +
+               LEB128_SIZE /* context id */ +
+               LEB128_SIZE /* flags */ +
+               LEB128_SIZE /* domain id */
+       );
+       uint64_t now = current_time ();
+
+       ENTER_LOG (logbuffer, "context-start");
+       emit_byte (logbuffer, TYPE_END_LOAD | TYPE_METADATA);
+       emit_time (logbuffer, now);
+       emit_byte (logbuffer, TYPE_CONTEXT);
+       emit_ptr (logbuffer, (void*)(uintptr_t) mono_context_get_id (context));
+       emit_value (logbuffer, 0); /* flags */
+       emit_ptr (logbuffer, (void*)(uintptr_t) mono_context_get_domain_id (context));
+       EXIT_LOG (logbuffer);
+
+       if (logbuffer->next)
+               safe_send (prof, logbuffer);
+
+       process_requests (prof);
+}
+
+static void
+context_unloaded (MonoProfiler *prof, MonoAppContext *context)
+{
+       LogBuffer *logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               EVENT_SIZE /* type */ +
+               LEB128_SIZE /* context id */ +
+               LEB128_SIZE /* flags */ +
+               LEB128_SIZE /* domain id */
+       );
+       uint64_t now = current_time ();
+
+       ENTER_LOG (logbuffer, "context-end");
+       emit_byte (logbuffer, TYPE_END_UNLOAD | TYPE_METADATA);
+       emit_time (logbuffer, now);
+       emit_byte (logbuffer, TYPE_CONTEXT);
+       emit_ptr (logbuffer, (void*)(uintptr_t) mono_context_get_id (context));
+       emit_value (logbuffer, 0); /* flags */
+       emit_ptr (logbuffer, (void*)(uintptr_t) mono_context_get_domain_id (context));
+       EXIT_LOG (logbuffer);
+
+       if (logbuffer->next)
+               safe_send (prof, logbuffer);
+
+       process_requests (prof);
+}
+
 static void
 thread_name (MonoProfiler *prof, uintptr_t tid, const char *name)
 {
        int len = strlen (name) + 1;
        uint64_t now;
        LogBuffer *logbuffer;
-       logbuffer = ensure_logbuf (10 + len);
+       logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               EVENT_SIZE /* type */ +
+               LEB128_SIZE /* tid */ +
+               LEB128_SIZE /* flags */ +
+               len /* name */
+       );
        now = current_time ();
        ENTER_LOG (logbuffer, "tname");
        emit_byte (logbuffer, TYPE_METADATA);
@@ -1411,6 +1916,11 @@ thread_name (MonoProfiler *prof, uintptr_t tid, const char *name)
        memcpy (logbuffer->data, name, len);
        logbuffer->data += len;
        EXIT_LOG (logbuffer);
+
+       if (logbuffer->next)
+               safe_send (prof, logbuffer);
+
+       process_requests (prof);
 }
 
 typedef struct {
@@ -1581,7 +2091,14 @@ dump_ubin (const char *filename, uintptr_t load_addr, uint64_t offset, uintptr_t
        int len;
        len = strlen (filename) + 1;
        now = current_time ();
-       logbuffer = ensure_logbuf (20 + len);
+       logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */ +
+               LEB128_SIZE /* load address */ +
+               LEB128_SIZE /* offset */ +
+               LEB128_SIZE /* size */ +
+               nlen /* file name */
+       );
        emit_byte (logbuffer, TYPE_SAMPLE | TYPE_SAMPLE_UBIN);
        emit_time (logbuffer, now);
        emit_svalue (logbuffer, load_addr);
@@ -1598,7 +2115,12 @@ dump_usym (const char *name, uintptr_t value, uintptr_t size)
        LogBuffer *logbuffer;
        int len;
        len = strlen (name) + 1;
-       logbuffer = ensure_logbuf (20 + len);
+       logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* value */ +
+               LEB128_SIZE /* size */ +
+               len /* name */
+       );
        emit_byte (logbuffer, TYPE_SAMPLE | TYPE_SAMPLE_USYM);
        emit_ptr (logbuffer, (void*)value);
        emit_value (logbuffer, size);
@@ -1842,10 +2364,20 @@ dump_unmanaged_coderefs (MonoProfiler *prof)
        }
 }
 
+static gint
+compare_sample_events (gconstpointer a, gconstpointer b)
+{
+       uintptr_t tid1 = (*(uintptr_t **) a) [1];
+       uintptr_t tid2 = (*(uintptr_t **) b) [1];
+
+       return tid1 > tid2 ? 1 :
+              tid1 < tid2 ? -1 :
+              0;
+}
+
 static void
 dump_sample_hits (MonoProfiler *prof, StatBuffer *sbuf)
 {
-       uintptr_t *sample;
        LogBuffer *logbuffer;
        if (!sbuf)
                return;
@@ -1854,17 +2386,32 @@ dump_sample_hits (MonoProfiler *prof, StatBuffer *sbuf)
                free_buffer (sbuf->next, sbuf->next->size);
                sbuf->next = NULL;
        }
-       for (sample = sbuf->buf; sample < sbuf->data;) {
-               int i;
+
+       g_ptr_array_set_size (prof->sorted_sample_events, 0);
+
+       for (uintptr_t *sample = sbuf->buf; sample < sbuf->data;) {
                int count = sample [0] & 0xff;
                int mbt_count = (sample [0] & 0xff00) >> 8;
-               int type = sample [0] >> 16;
-               uintptr_t *managed_sample_base = sample + count + 3;
 
                if (sample + SAMPLE_EVENT_SIZE_IN_SLOTS (mbt_count) > sbuf->data)
                        break;
 
-               for (i = 0; i < mbt_count; ++i) {
+               g_ptr_array_add (prof->sorted_sample_events, sample);
+
+               sample += count + 3 + 4 * mbt_count;
+       }
+
+       g_ptr_array_sort (prof->sorted_sample_events, compare_sample_events);
+
+       for (guint sidx = 0; sidx < prof->sorted_sample_events->len; sidx++) {
+               uintptr_t *sample = g_ptr_array_index (prof->sorted_sample_events, sidx);
+               int count = sample [0] & 0xff;
+               int mbt_count = (sample [0] & 0xff00) >> 8;
+               int type = sample [0] >> 16;
+               uintptr_t *managed_sample_base = sample + count + 3;
+               uintptr_t thread_id = sample [1];
+
+               for (int i = 0; i < mbt_count; ++i) {
                        MonoMethod *method = (MonoMethod*)managed_sample_base [i * 4 + 0];
                        MonoDomain *domain = (MonoDomain*)managed_sample_base [i * 4 + 1];
                        void *address = (void*)managed_sample_base [i * 4 + 2];
@@ -1876,12 +2423,29 @@ dump_sample_hits (MonoProfiler *prof, StatBuffer *sbuf)
                                        managed_sample_base [i * 4 + 0] = (uintptr_t)mono_jit_info_get_method (ji);
                        }
                }
-               logbuffer = ensure_logbuf (20 + count * 8);
+
+               logbuffer = ensure_logbuf (
+                       EVENT_SIZE /* event */ +
+                       LEB128_SIZE /* type */ +
+                       LEB128_SIZE /* time */ +
+                       LEB128_SIZE /* tid */ +
+                       LEB128_SIZE /* count */ +
+                       count * (
+                               LEB128_SIZE /* ip */
+                       ) +
+                       LEB128_SIZE /* managed count */ +
+                       mbt_count * (
+                               LEB128_SIZE /* method */ +
+                               LEB128_SIZE /* il offset */ +
+                               LEB128_SIZE /* native offset */
+                       )
+               );
                emit_byte (logbuffer, TYPE_SAMPLE | TYPE_SAMPLE_HIT);
                emit_value (logbuffer, type);
                emit_uvalue (logbuffer, prof->startup_time + (uint64_t)sample [2] * (uint64_t)10000);
+               emit_ptr (logbuffer, (void *) thread_id);
                emit_value (logbuffer, count);
-               for (i = 0; i < count; ++i) {
+               for (int i = 0; i < count; ++i) {
                        emit_ptr (logbuffer, (void*)sample [i + 3]);
                        add_code_pointer (sample [i + 3]);
                }
@@ -1889,7 +2453,7 @@ dump_sample_hits (MonoProfiler *prof, StatBuffer *sbuf)
                sample += count + 3;
                /* new in data version 6 */
                emit_uvalue (logbuffer, mbt_count);
-               for (i = 0; i < mbt_count; ++i) {
+               for (int i = 0; i < mbt_count; ++i) {
                        MonoMethod *method = (MonoMethod *) sample [i * 4 + 0];
                        uintptr_t native_offset = sample [i * 4 + 3];
 
@@ -1897,8 +2461,8 @@ dump_sample_hits (MonoProfiler *prof, StatBuffer *sbuf)
                        emit_svalue (logbuffer, 0); /* il offset will always be 0 from now on */
                        emit_svalue (logbuffer, native_offset);
                }
-               sample += 4 * mbt_count;
        }
+
        dump_unmanaged_coderefs (prof);
 }
 
@@ -2011,6 +2575,8 @@ static void
 dump_perf_hits (MonoProfiler *prof, void *buf, int size)
 {
        LogBuffer *logbuffer;
+       int count = 1;
+       int mbt_count = 0;
        void *end = (char*)buf + size;
        int samples = 0;
        int pid = getpid ();
@@ -2028,15 +2594,36 @@ dump_perf_hits (MonoProfiler *prof, void *buf, int size)
                /*ip = (void*)s->ip;
                printf ("sample: %d, size: %d, ip: %p (%s), timestamp: %llu, nframes: %llu\n",
                        s->h.type, s->h.size, ip, symbol_for (ip), s->timestamp, s->nframes);*/
-               logbuffer = ensure_logbuf (20 + s->nframes * 8);
+               logbuffer = ensure_logbuf (
+                       EVENT_SIZE /* event */ +
+                       LEB128_SIZE /* type */ +
+                       LEB128_SIZE /* time */ +
+                       LEB128_SIZE /* tid */ +
+                       LEB128_SIZE /* count */ +
+                       count * (
+                               LEB128_SIZE /* ip */
+                       ) +
+                       LEB128_SIZE /* managed count */ +
+                       mbt_count * (
+                               LEB128_SIZE /* method */ +
+                               LEB128_SIZE /* il offset */ +
+                               LEB128_SIZE /* native offset */
+                       )
+               );
                emit_byte (logbuffer, TYPE_SAMPLE | TYPE_SAMPLE_HIT);
                emit_value (logbuffer, sample_type);
                emit_uvalue (logbuffer, s->timestamp - prof->startup_time);
-               emit_value (logbuffer, 1); /* count */
+               /*
+                * No useful thread ID to write here, since throughout the
+                * profiler we use pthread_self () but the ID we get from
+                * perf is the kernel's thread ID.
+                */
+               emit_ptr (logbuffer, 0);
+               emit_value (logbuffer, count);
                emit_ptr (logbuffer, (void*)(uintptr_t)s->ip);
-               /* no support here yet for the managed backtrace */
-               emit_uvalue (logbuffer, 0);
                add_code_pointer (s->ip);
+               /* no support here yet for the managed backtrace */
+               emit_uvalue (logbuffer, mbt_count);
                buf = (char*)buf + s->h.size;
                samples++;
        }
@@ -2232,7 +2819,11 @@ counters_emit (MonoProfiler *profiler)
 {
        MonoCounterAgent *agent;
        LogBuffer *logbuffer;
-       int size = 1 + 5, len = 0;
+       int len = 0;
+       int size =
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* len */
+       ;
 
        if (!counters_initialized)
                return;
@@ -2243,7 +2834,15 @@ counters_emit (MonoProfiler *profiler)
                if (agent->emitted)
                        continue;
 
-               size += strlen (mono_counter_get_name (agent->counter)) + 1 + 5 * 5;
+               size +=
+                       LEB128_SIZE /* section */ +
+                       strlen (mono_counter_get_name (agent->counter)) + 1 /* name */ +
+                       LEB128_SIZE /* type */ +
+                       LEB128_SIZE /* unit */ +
+                       LEB128_SIZE /* variance */ +
+                       LEB128_SIZE /* index */
+               ;
+
                len += 1;
        }
 
@@ -2275,7 +2874,7 @@ counters_emit (MonoProfiler *profiler)
        }
        EXIT_LOG (logbuffer);
 
-       safe_send (profiler, ensure_logbuf (0));
+       safe_send (profiler, logbuffer);
 
        mono_mutex_unlock (&counters_mutex);
 }
@@ -2301,9 +2900,22 @@ counters_sample (MonoProfiler *profiler, uint64_t timestamp)
 
        mono_mutex_lock (&counters_mutex);
 
-       size = 1 + 10 + 5;
-       for (agent = counters; agent; agent = agent->next)
-               size += 10 * 2 + mono_counter_get_size (agent->counter);
+       size =
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */
+       ;
+
+       for (agent = counters; agent; agent = agent->next) {
+               size +=
+                       LEB128_SIZE /* index */ +
+                       LEB128_SIZE /* type */ +
+                       mono_counter_get_size (agent->counter) /* value */
+               ;
+       }
+
+       size +=
+               LEB128_SIZE /* stop marker */
+       ;
 
        logbuffer = ensure_logbuf (size);
 
@@ -2393,7 +3005,7 @@ counters_sample (MonoProfiler *profiler, uint64_t timestamp)
        emit_value (logbuffer, 0);
        EXIT_LOG (logbuffer);
 
-       safe_send (profiler, ensure_logbuf (0));
+       safe_send (profiler, logbuffer);
 
        mono_mutex_unlock (&counters_mutex);
 }
@@ -2418,13 +3030,26 @@ perfcounters_emit (MonoProfiler *profiler)
 {
        PerfCounterAgent *pcagent;
        LogBuffer *logbuffer;
-       int size = 1 + 5, len = 0;
+       int len = 0;
+       int size =
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* len */
+       ;
 
        for (pcagent = perfcounters; pcagent; pcagent = pcagent->next) {
                if (pcagent->emitted)
                        continue;
 
-               size += strlen (pcagent->name) + 1 + 5 * 5;
+               size +=
+                       LEB128_SIZE /* section */ +
+                       strlen (pcagent->category_name) + 1 /* category name */ +
+                       strlen (pcagent->name) + 1 /* name */ +
+                       LEB128_SIZE /* type */ +
+                       LEB128_SIZE /* unit */ +
+                       LEB128_SIZE /* variance */ +
+                       LEB128_SIZE /* index */
+               ;
+
                len += 1;
        }
 
@@ -2452,7 +3077,7 @@ perfcounters_emit (MonoProfiler *profiler)
        }
        EXIT_LOG (logbuffer);
 
-       safe_send (profiler, ensure_logbuf (0));
+       safe_send (profiler, logbuffer);
 }
 
 static gboolean
@@ -2508,14 +3133,26 @@ perfcounters_sample (MonoProfiler *profiler, uint64_t timestamp)
 
        perfcounters_emit (profiler);
 
+       size =
+               EVENT_SIZE /* event */ +
+               LEB128_SIZE /* time */
+       ;
 
-       size = 1 + 10 + 5;
        for (pcagent = perfcounters; pcagent; pcagent = pcagent->next) {
                if (pcagent->deleted || !pcagent->updated)
                        continue;
-               size += 10 * 2 + sizeof (gint64);
+
+               size +=
+                       LEB128_SIZE /* index */ +
+                       LEB128_SIZE /* type */ +
+                       LEB128_SIZE /* value */
+               ;
        }
 
+       size +=
+               LEB128_SIZE /* stop marker */
+       ;
+
        logbuffer = ensure_logbuf (size);
 
        ENTER_LOG (logbuffer, "perfcounters");
@@ -2534,7 +3171,7 @@ perfcounters_sample (MonoProfiler *profiler, uint64_t timestamp)
        emit_value (logbuffer, 0);
        EXIT_LOG (logbuffer);
 
-       safe_send (profiler, ensure_logbuf (0));
+       safe_send (profiler, logbuffer);
 
        mono_mutex_unlock (&counters_mutex);
 }
@@ -2554,20 +3191,15 @@ counters_and_perfcounters_sample (MonoProfiler *prof)
 }
 
 #define COVERAGE_DEBUG(x) if (debug_coverage) {x}
+static mono_mutex_t coverage_mutex;
 static MonoConcurrentHashTable *coverage_methods = NULL;
-static mono_mutex_t coverage_methods_mutex;
 static MonoConcurrentHashTable *coverage_assemblies = NULL;
-static mono_mutex_t coverage_assemblies_mutex;
 static MonoConcurrentHashTable *coverage_classes = NULL;
-static mono_mutex_t coverage_classes_mutex;
+
 static MonoConcurrentHashTable *filtered_classes = NULL;
-static mono_mutex_t filtered_classes_mutex;
 static MonoConcurrentHashTable *entered_methods = NULL;
-static mono_mutex_t entered_methods_mutex;
 static MonoConcurrentHashTable *image_to_methods = NULL;
-static mono_mutex_t image_to_methods_mutex;
 static MonoConcurrentHashTable *suppressed_assemblies = NULL;
-static mono_mutex_t suppressed_assemblies_mutex;
 static gboolean coverage_initialized = FALSE;
 
 static GPtrArray *coverage_data = NULL;
@@ -2671,7 +3303,6 @@ build_method_buffer (gpointer key, gpointer value, gpointer userdata)
        char *class_name;
        const char *image_name, *method_name, *sig, *first_filename;
        LogBuffer *logbuffer;
-       int size = 1;
        guint i;
 
        previous_offset = 0;
@@ -2697,15 +3328,17 @@ build_method_buffer (gpointer key, gpointer value, gpointer userdata)
        sig = sig ? sig : "";
        method_name = method_name ? method_name : "";
 
-       size += strlen (image_name) + 1;
-       size += strlen (class_name) + 1;
-       size += strlen (method_name) + 1;
-       size += strlen (first_filename) + 1;
-       size += strlen (sig) + 1;
-
-       size += 10 + 10 + 5; /* token + method_id + n_entries*/
-
-       logbuffer = ensure_logbuf (size);
+       logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               strlen (image_name) + 1 /* image name */ +
+               strlen (class_name) + 1 /* class name */ +
+               strlen (method_name) + 1 /* method name */ +
+               strlen (sig) + 1 /* signature */ +
+               strlen (first_filename) + 1 /* first file name */ +
+               LEB128_SIZE /* token */ +
+               LEB128_SIZE /* method id */ +
+               LEB128_SIZE /* entries */
+       );
        ENTER_LOG (logbuffer, "coverage-methods");
 
        emit_byte (logbuffer, TYPE_COVERAGE_METHOD | TYPE_COVERAGE);
@@ -2720,15 +3353,19 @@ build_method_buffer (gpointer key, gpointer value, gpointer userdata)
        emit_value (logbuffer, coverage_data->len);
 
        EXIT_LOG (logbuffer);
-       safe_send (prof, ensure_logbuf (0));
+       safe_send (prof, logbuffer);
 
        for (i = 0; i < coverage_data->len; i++) {
                CoverageEntry *entry = coverage_data->pdata[i];
 
-               size = 1;
-               size += 10 * 5; /* method_id, offset, count, line, column */
-
-               logbuffer = ensure_logbuf (size);
+               logbuffer = ensure_logbuf (
+                       EVENT_SIZE /* event */ +
+                       LEB128_SIZE /* method id */ +
+                       LEB128_SIZE /* offset */ +
+                       LEB128_SIZE /* counter */ +
+                       LEB128_SIZE /* line */ +
+                       LEB128_SIZE /* column */
+               );
                ENTER_LOG (logbuffer, "coverage-statement");
 
                emit_byte (logbuffer, TYPE_COVERAGE_STATEMENT | TYPE_COVERAGE);
@@ -2739,7 +3376,7 @@ build_method_buffer (gpointer key, gpointer value, gpointer userdata)
                emit_uvalue (logbuffer, entry->column);
 
                EXIT_LOG (logbuffer);
-               safe_send (prof, ensure_logbuf (0));
+               safe_send (prof, logbuffer);
        }
 
        method_id++;
@@ -2778,7 +3415,6 @@ build_class_buffer (gpointer key, gpointer value, gpointer userdata)
        int number_of_methods, partially_covered;
        guint fully_covered;
        LogBuffer *logbuffer;
-       int size = 1;
 
        image = mono_class_get_image (klass);
        assembly_name = mono_image_get_name (image);
@@ -2790,11 +3426,14 @@ build_class_buffer (gpointer key, gpointer value, gpointer userdata)
        /* We don't handle partial covered yet */
        partially_covered = 0;
 
-       size += strlen (assembly_name) + 1;
-       size += strlen (class_name) + 1;
-       size += 30; /* number_of_methods, fully_covered, partially_covered */
-
-       logbuffer = ensure_logbuf (size);
+       logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               strlen (assembly_name) + 1 /* assembly name */ +
+               strlen (class_name) + 1 /* class name */ +
+               LEB128_SIZE /* no. methods */ +
+               LEB128_SIZE /* fully covered */ +
+               LEB128_SIZE /* partially covered */
+       );
 
        ENTER_LOG (logbuffer, "coverage-class");
        emit_byte (logbuffer, TYPE_COVERAGE_CLASS | TYPE_COVERAGE);
@@ -2805,7 +3444,7 @@ build_class_buffer (gpointer key, gpointer value, gpointer userdata)
        emit_uvalue (logbuffer, partially_covered);
        EXIT_LOG (logbuffer);
 
-       safe_send (prof, ensure_logbuf (0));
+       safe_send (prof, logbuffer);
 
        g_free (class_name);
 }
@@ -2833,7 +3472,6 @@ build_assembly_buffer (gpointer key, gpointer value, gpointer userdata)
        MonoImage *image = mono_assembly_get_image (assembly);
        LogBuffer *logbuffer;
        const char *name, *guid, *filename;
-       int size = 1;
        int number_of_methods = 0, partially_covered = 0;
        guint fully_covered = 0;
 
@@ -2847,11 +3485,15 @@ build_assembly_buffer (gpointer key, gpointer value, gpointer userdata)
 
        get_coverage_for_image (image, &number_of_methods, &fully_covered, &partially_covered);
 
-       size += strlen (name) + 1;
-       size += strlen (guid) + 1;
-       size += strlen (filename) + 1;
-       size += 30; /* number_of_methods, fully_covered, partially_covered */
-       logbuffer = ensure_logbuf (size);
+       logbuffer = ensure_logbuf (
+               EVENT_SIZE /* event */ +
+               strlen (name) + 1 /* name */ +
+               strlen (guid) + 1 /* guid */ +
+               strlen (filename) + 1 /* file name */ +
+               LEB128_SIZE /* no. methods */ +
+               LEB128_SIZE /* fully covered */ +
+               LEB128_SIZE /* partially covered */
+       );
 
        ENTER_LOG (logbuffer, "coverage-assemblies");
        emit_byte (logbuffer, TYPE_COVERAGE_ASSEMBLY | TYPE_COVERAGE);
@@ -2863,7 +3505,7 @@ build_assembly_buffer (gpointer key, gpointer value, gpointer userdata)
        emit_uvalue (logbuffer, partially_covered);
        EXIT_LOG (logbuffer);
 
-       safe_send (prof, ensure_logbuf (0));
+       safe_send (prof, logbuffer);
 }
 
 static void
@@ -2875,9 +3517,11 @@ dump_coverage (MonoProfiler *prof)
        COVERAGE_DEBUG(fprintf (stderr, "Coverage: Started dump\n");)
        method_id = 0;
 
+       mono_mutex_lock (&coverage_mutex);
        mono_conc_hashtable_foreach (coverage_assemblies, build_assembly_buffer, prof);
        mono_conc_hashtable_foreach (coverage_classes, build_class_buffer, prof);
        mono_conc_hashtable_foreach (coverage_methods, build_method_buffer, prof);
+       mono_mutex_unlock (&coverage_mutex);
 
        COVERAGE_DEBUG(fprintf (stderr, "Coverage: Finished dump\n");)
 }
@@ -2897,7 +3541,9 @@ process_method_enter_coverage (MonoProfiler *prof, MonoMethod *method)
        if (mono_conc_hashtable_lookup (suppressed_assemblies, (gpointer) mono_image_get_name (image)))
                return;
 
+       mono_mutex_lock (&coverage_mutex);
        mono_conc_hashtable_insert (entered_methods, method, method);
+       mono_mutex_unlock (&coverage_mutex);
 }
 
 static MonoLockFreeQueueNode *
@@ -2984,7 +3630,9 @@ coverage_filter (MonoProfiler *prof, MonoMethod *method)
                if (has_positive && !found) {
                        COVERAGE_DEBUG(fprintf (stderr, "   Positive match was not found\n");)
 
+                       mono_mutex_lock (&coverage_mutex);
                        mono_conc_hashtable_insert (filtered_classes, klass, klass);
+                       mono_mutex_unlock (&coverage_mutex);
                        g_free (fqn);
                        g_free (classname);
 
@@ -3004,7 +3652,9 @@ coverage_filter (MonoProfiler *prof, MonoMethod *method)
                        if (strstr (fqn, filter) != NULL) {
                                COVERAGE_DEBUG(fprintf (stderr, "matched\n");)
 
+                               mono_mutex_lock (&coverage_mutex);
                                mono_conc_hashtable_insert (filtered_classes, klass, klass);
+                               mono_mutex_unlock (&coverage_mutex);
                                g_free (fqn);
                                g_free (classname);
 
@@ -3025,15 +3675,19 @@ coverage_filter (MonoProfiler *prof, MonoMethod *method)
 
        assembly = mono_image_get_assembly (image);
 
+       mono_mutex_lock (&coverage_mutex);
        mono_conc_hashtable_insert (coverage_methods, method, method);
        mono_conc_hashtable_insert (coverage_assemblies, assembly, assembly);
+       mono_mutex_unlock (&coverage_mutex);
 
        image_methods = mono_conc_hashtable_lookup (image_to_methods, image);
 
        if (image_methods == NULL) {
                image_methods = g_malloc (sizeof (MonoLockFreeQueue));
                mono_lock_free_queue_init (image_methods);
+               mono_mutex_lock (&coverage_mutex);
                mono_conc_hashtable_insert (image_to_methods, image, image_methods);
+               mono_mutex_unlock (&coverage_mutex);
        }
 
        node = create_method_node (method);
@@ -3044,7 +3698,9 @@ coverage_filter (MonoProfiler *prof, MonoMethod *method)
        if (class_methods == NULL) {
                class_methods = g_malloc (sizeof (MonoLockFreeQueue));
                mono_lock_free_queue_init (class_methods);
+               mono_mutex_lock (&coverage_mutex);
                mono_conc_hashtable_insert (coverage_classes, klass, class_methods);
+               mono_mutex_unlock (&coverage_mutex);
        }
 
        node = create_method_node (method);
@@ -3117,8 +3773,7 @@ init_suppressed_assemblies (void)
        char *line;
        FILE *sa_file;
 
-       mono_mutex_init (&suppressed_assemblies_mutex);
-       suppressed_assemblies = mono_conc_hashtable_new (&suppressed_assemblies_mutex, g_str_hash, g_str_equal);
+       suppressed_assemblies = mono_conc_hashtable_new (g_str_hash, g_str_equal);
        sa_file = fopen (SUPPRESSION_DIR "/mono-profiler-log.suppression", "r");
        if (sa_file == NULL)
                return;
@@ -3131,26 +3786,13 @@ init_suppressed_assemblies (void)
 
        while ((line = get_next_line (content, &content))) {
                line = g_strchomp (g_strchug (line));
+               /* No locking needed as we're doing initialization */
                mono_conc_hashtable_insert (suppressed_assemblies, line, line);
        }
 
        fclose (sa_file);
 }
 
-static MonoConcurrentHashTable *
-init_hashtable (mono_mutex_t *mutex)
-{
-       mono_mutex_init (mutex);
-       return mono_conc_hashtable_new (mutex, NULL, NULL);
-}
-
-static void
-destroy_hashtable (MonoConcurrentHashTable *hashtable, mono_mutex_t *mutex)
-{
-       mono_conc_hashtable_destroy (hashtable);
-       mono_mutex_destroy (mutex);
-}
-
 #endif /* DISABLE_HELPER_THREAD */
 
 static void
@@ -3161,12 +3803,13 @@ coverage_init (MonoProfiler *prof)
 
        COVERAGE_DEBUG(fprintf (stderr, "Coverage initialized\n");)
 
-       coverage_methods = init_hashtable (&coverage_methods_mutex);
-       coverage_assemblies = init_hashtable (&coverage_assemblies_mutex);
-       coverage_classes = init_hashtable (&coverage_classes_mutex);
-       filtered_classes = init_hashtable (&filtered_classes_mutex);
-       entered_methods = init_hashtable (&entered_methods_mutex);
-       image_to_methods = init_hashtable (&image_to_methods_mutex);
+       mono_mutex_init (&coverage_mutex);
+       coverage_methods = mono_conc_hashtable_new (NULL, NULL);
+       coverage_assemblies = mono_conc_hashtable_new (NULL, NULL);
+       coverage_classes = mono_conc_hashtable_new (NULL, NULL);
+       filtered_classes = mono_conc_hashtable_new (NULL, NULL);
+       entered_methods = mono_conc_hashtable_new (NULL, NULL);
+       image_to_methods = mono_conc_hashtable_new (NULL, NULL);
        init_suppressed_assemblies ();
 
        coverage_initialized = TRUE;
@@ -3197,7 +3840,8 @@ log_shutdown (MonoProfiler *prof)
                        read_perf_mmap (prof, i);
        }
 #endif
-       dump_sample_hits (prof, prof->stat_buffers);
+
+       g_ptr_array_free (prof->sorted_sample_events, TRUE);
 
        if (TLS_GET (LogBuffer, tlsbuffer))
                send_buffer (prof, TLS_GET (GPtrArray, tlsmethodlist), TLS_GET (LogBuffer, tlsbuffer));
@@ -3217,16 +3861,19 @@ log_shutdown (MonoProfiler *prof)
        else
                fclose (prof->file);
 
-       destroy_hashtable (prof->method_table, &prof->method_table_mutex);
+       mono_conc_hashtable_destroy (prof->method_table);
+       mono_mutex_destroy (&prof->method_table_mutex);
 
        if (coverage_initialized) {
-               destroy_hashtable (coverage_methods, &coverage_methods_mutex);
-               destroy_hashtable (coverage_assemblies, &coverage_assemblies_mutex);
-               destroy_hashtable (coverage_classes, &coverage_classes_mutex);
-               destroy_hashtable (filtered_classes, &filtered_classes_mutex);
-               destroy_hashtable (entered_methods, &entered_methods_mutex);
-               destroy_hashtable (image_to_methods, &image_to_methods_mutex);
-               destroy_hashtable (suppressed_assemblies, &suppressed_assemblies_mutex);
+               mono_conc_hashtable_destroy (coverage_methods);
+               mono_conc_hashtable_destroy (coverage_assemblies);
+               mono_conc_hashtable_destroy (coverage_classes);
+               mono_conc_hashtable_destroy (filtered_classes);
+
+               mono_conc_hashtable_destroy (entered_methods);
+               mono_conc_hashtable_destroy (image_to_methods);
+               mono_conc_hashtable_destroy (suppressed_assemblies);
+               mono_mutex_destroy (&coverage_mutex);
        }
 
        free (prof);
@@ -3370,6 +4017,7 @@ helper_thread (void* arg)
                                continue;
                        }
                        /* time to shut down */
+                       dump_sample_hits (prof, prof->stat_buffers);
                        if (thread)
                                mono_thread_detach (thread);
                        if (do_debug)
@@ -3523,13 +4171,22 @@ writer_thread (void *arg)
                                 * method lists will just be empty for the rest of the
                                 * app's lifetime.
                                 */
+                               mono_mutex_lock (&prof->method_table_mutex);
                                mono_conc_hashtable_insert (prof->method_table, info->method, info->method);
+                               mono_mutex_unlock (&prof->method_table_mutex);
 
                                char *name = mono_method_full_name (info->method, 1);
                                int nlen = strlen (name) + 1;
                                uint64_t now = current_time ();
 
-                               method_buffer = ensure_logbuf_inner (method_buffer, 32 + nlen);
+                               method_buffer = ensure_logbuf_inner (method_buffer,
+                                       EVENT_SIZE /* event */ +
+                                       LEB128_SIZE /* time */ +
+                                       LEB128_SIZE /* method */ +
+                                       LEB128_SIZE /* start */ +
+                                       LEB128_SIZE /* size */ +
+                                       nlen /* name */
+                               );
 
                                emit_byte (method_buffer, TYPE_JIT | TYPE_METHOD);
                                emit_time (method_buffer, now);
@@ -3653,6 +4310,8 @@ create_profiler (const char *filename, GPtrArray *filters)
                need_helper_thread = 1;
        }
 
+       prof->sorted_sample_events = g_ptr_array_sized_new (BUFFER_SIZE / SAMPLE_EVENT_SIZE_IN_SLOTS (0));
+
 #ifdef DISABLE_HELPER_THREAD
        if (hs_mode_ondemand)
                fprintf (stderr, "Ondemand heapshot unavailable on this arch.\n");
@@ -3664,7 +4323,7 @@ create_profiler (const char *filename, GPtrArray *filters)
 
        mono_lock_free_queue_init (&prof->writer_queue);
        mono_mutex_init (&prof->method_table_mutex);
-       prof->method_table = mono_conc_hashtable_new (&prof->method_table_mutex, NULL, NULL);
+       prof->method_table = mono_conc_hashtable_new (NULL, NULL);
 
        if (do_coverage)
                coverage_init (prof);
@@ -3864,7 +4523,8 @@ mono_profiler_startup (const char *desc)
                MONO_PROFILE_GC_MOVES|MONO_PROFILE_CLASS_EVENTS|MONO_PROFILE_THREADS|
                MONO_PROFILE_ENTER_LEAVE|MONO_PROFILE_JIT_COMPILATION|MONO_PROFILE_EXCEPTIONS|
                MONO_PROFILE_MONITOR_EVENTS|MONO_PROFILE_MODULE_EVENTS|MONO_PROFILE_GC_ROOTS|
-               MONO_PROFILE_INS_COVERAGE;
+               MONO_PROFILE_INS_COVERAGE|MONO_PROFILE_APPDOMAIN_EVENTS|MONO_PROFILE_CONTEXT_EVENTS|
+               MONO_PROFILE_ASSEMBLY_EVENTS;
 
        p = desc;
        if (strncmp (p, "log", 3))
@@ -4051,8 +4711,12 @@ mono_profiler_startup (const char *desc)
        mono_profiler_install_allocation (gc_alloc);
        mono_profiler_install_gc_moves (gc_moves);
        mono_profiler_install_gc_roots (gc_handle, gc_roots);
-       mono_profiler_install_class (NULL, class_loaded, NULL, NULL);
-       mono_profiler_install_module (NULL, image_loaded, NULL, NULL);
+       mono_profiler_install_appdomain (NULL, domain_loaded, NULL, domain_unloaded);
+       mono_profiler_install_appdomain_name (domain_name);
+       mono_profiler_install_context (context_loaded, context_unloaded);
+       mono_profiler_install_class (NULL, class_loaded, NULL, class_unloaded);
+       mono_profiler_install_module (NULL, image_loaded, NULL, image_unloaded);
+       mono_profiler_install_assembly (NULL, assembly_loaded, NULL, assembly_unloaded);
        mono_profiler_install_thread (thread_start, thread_end);
        mono_profiler_install_thread_name (thread_name);
        mono_profiler_install_enter_leave (method_enter, method_leave);
index 8b7260bb1eb134047029febaf63e6141ec54a79b..8fc22e432828e6c7692723d70088411ff3284fad 100644 (file)
@@ -5,7 +5,7 @@
 #define LOG_HEADER_ID 0x4D505A01
 #define LOG_VERSION_MAJOR 0
 #define LOG_VERSION_MINOR 4
-#define LOG_DATA_VERSION 10
+#define LOG_DATA_VERSION 11
 /*
  * Changes in data versions:
  * version 2: added offsets in heap walk
  * version 8: added TYPE_RUNTIME and JIT helpers/trampolines
  * version 9: added MONO_PROFILER_CODE_BUFFER_EXCEPTION_HANDLING
  * version 10: added TYPE_COVERAGE
+ * version 11: added thread ID to TYPE_SAMPLE_HIT
+               added more load/unload events
+                   unload for class
+                   unload for image
+                   load/unload for appdomain
+                   load/unload for contexts
+                   load/unload/name for assemblies
+               removed TYPE_LOAD_ERR flag (profiler never generated it, now removed from the format itself)
+               added TYPE_GC_HANDLE_{CREATED,DESTROYED}_BT
  */
 
 enum {
@@ -35,22 +44,23 @@ enum {
        TYPE_HEAP_OBJECT = 2 << 4,
        TYPE_HEAP_ROOT   = 3 << 4,
        /* extended type for TYPE_METADATA */
-       TYPE_START_LOAD   = 1 << 4,
        TYPE_END_LOAD     = 2 << 4,
-       TYPE_START_UNLOAD = 3 << 4,
        TYPE_END_UNLOAD   = 4 << 4,
-       TYPE_LOAD_ERR     = 1 << 7,
+       /* metadata type byte for TYPE_METADATA */
        TYPE_CLASS     = 1,
        TYPE_IMAGE     = 2,
        TYPE_ASSEMBLY  = 3,
        TYPE_DOMAIN    = 4,
        TYPE_THREAD    = 5,
+       TYPE_CONTEXT   = 6,
        /* extended type for TYPE_GC */
        TYPE_GC_EVENT  = 1 << 4,
        TYPE_GC_RESIZE = 2 << 4,
        TYPE_GC_MOVE   = 3 << 4,
-       TYPE_GC_HANDLE_CREATED   = 4 << 4,
-       TYPE_GC_HANDLE_DESTROYED = 5 << 4,
+       TYPE_GC_HANDLE_CREATED      = 4 << 4,
+       TYPE_GC_HANDLE_DESTROYED    = 5 << 4,
+       TYPE_GC_HANDLE_CREATED_BT   = 6 << 4,
+       TYPE_GC_HANDLE_DESTROYED_BT = 7 << 4,
        /* extended type for TYPE_METHOD */
        TYPE_LEAVE     = 1 << 4,
        TYPE_ENTER     = 2 << 4,
index 72eca3d0dc306ed9ba69faf89163f8f15824ab7d..b7e4b6708c0681b3dcad2d0d611912c9e40d252c 100644 (file)
@@ -27,6 +27,9 @@
 #include "mono/utils/mono-compiler.h"
 #include "mono/utils/parse.h"
 #include "mono/utils/memfuncs.h"
+#ifdef HAVE_SGEN_GC
+#include "mono/sgen/sgen-conf.h"
+#endif
 
 typedef struct {
        guint minor_gc_count;
@@ -38,6 +41,14 @@ typedef struct {
 
 extern GCStats gc_stats;
 
+#ifdef HAVE_SGEN_GC
+typedef SgenDescriptor MonoGCDescriptor;
+#define MONO_GC_DESCRIPTOR_NULL        SGEN_DESCRIPTOR_NULL
+#else
+typedef void* MonoGCDescriptor;
+#define MONO_GC_DESCRIPTOR_NULL NULL
+#endif
+
 /*
  * Try to register a foreign thread with the GC, if we fail or the backend
  * can't cope with this concept - we return FALSE.
@@ -46,17 +57,17 @@ extern gboolean mono_gc_register_thread (void *baseptr);
 
 gboolean mono_gc_parse_environment_string_extract_number (const char *str, size_t *out);
 
-void* mono_gc_make_descr_for_object (gsize *bitmap, int numbits, size_t obj_size);
-void* mono_gc_make_descr_for_array (int vector, gsize *elem_bitmap, int numbits, size_t elem_size);
+MonoGCDescriptor mono_gc_make_descr_for_object (gsize *bitmap, int numbits, size_t obj_size);
+MonoGCDescriptor mono_gc_make_descr_for_array (int vector, gsize *elem_bitmap, int numbits, size_t elem_size);
 
 /* simple interface for data structures needed in the runtime */
-void* mono_gc_make_descr_from_bitmap (gsize *bitmap, int numbits);
+MonoGCDescriptor mono_gc_make_descr_from_bitmap (gsize *bitmap, int numbits);
 
 /* Return a root descriptor for a root with all refs */
-void* mono_gc_make_root_descr_all_refs (int numbits);
+MonoGCDescriptor mono_gc_make_root_descr_all_refs (int numbits);
 
 /* Return the bitmap encoded by a descriptor */
-gsize* mono_gc_get_bitmap_for_descr (void *descr, int *numbits);
+gsize* mono_gc_get_bitmap_for_descr (MonoGCDescriptor descr, int *numbits);
 
 /*
 These functions must be used when it's possible that either destination is not
index ac017ddf3143152ac07bf4b86fbcc17e80e88b69..413388810f8b4ec8053fe82bd6acd65f235a9af1 100644 (file)
@@ -93,10 +93,10 @@ static __thread char **tlab_next_addr MONO_ATTR_USED;
 #define TLAB_REAL_END  (__thread_info__->tlab_real_end)
 #endif
 
-static void*
-alloc_degraded (GCVTable *vtable, size_t size, gboolean for_mature)
+static GCObject*
+alloc_degraded (GCVTable vtable, size_t size, gboolean for_mature)
 {
-       void *p;
+       GCObject *p;
 
        if (!for_mature) {
                sgen_client_degraded_allocation (size);
@@ -145,8 +145,8 @@ zero_tlab_if_necessary (void *p, size_t size)
  * so when we scan the thread stacks for pinned objects, we can start
  * a search for the pinned object in SGEN_SCAN_START_SIZE chunks.
  */
-void*
-sgen_alloc_obj_nolock (GCVTable *vtable, size_t size)
+GCObject*
+sgen_alloc_obj_nolock (GCVTable vtable, size_t size)
 {
        /* FIXME: handle OOM */
        void **p;
@@ -219,7 +219,7 @@ sgen_alloc_obj_nolock (GCVTable *vtable, size_t size)
                        g_assert (*p == NULL);
                        mono_atomic_store_seq (p, vtable);
 
-                       return p;
+                       return (GCObject*)p;
                }
 
                /* Slow path */
@@ -326,11 +326,11 @@ sgen_alloc_obj_nolock (GCVTable *vtable, size_t size)
                mono_atomic_store_seq (p, vtable);
        }
 
-       return p;
+       return (GCObject*)p;
 }
 
-void*
-sgen_try_alloc_obj_nolock (GCVTable *vtable, size_t size)
+GCObject*
+sgen_try_alloc_obj_nolock (GCVTable vtable, size_t size)
 {
        void **p;
        char *new_next;
@@ -414,13 +414,13 @@ sgen_try_alloc_obj_nolock (GCVTable *vtable, size_t size)
 
        mono_atomic_store_seq (p, vtable);
 
-       return p;
+       return (GCObject*)p;
 }
 
-void*
-sgen_alloc_obj (GCVTable *vtable, size_t size)
+GCObject*
+sgen_alloc_obj (GCVTable vtable, size_t size)
 {
-       void *res;
+       GCObject *res;
        TLAB_ACCESS_INIT;
 
        if (!SGEN_CAN_ALIGN_UP (size))
@@ -446,7 +446,7 @@ sgen_alloc_obj (GCVTable *vtable, size_t size)
        }
 
        ENTER_CRITICAL_REGION;
-       res = sgen_try_alloc_obj_nolock ((GCVTable*)vtable, size);
+       res = sgen_try_alloc_obj_nolock (vtable, size);
        if (res) {
                EXIT_CRITICAL_REGION;
                return res;
@@ -454,7 +454,7 @@ sgen_alloc_obj (GCVTable *vtable, size_t size)
        EXIT_CRITICAL_REGION;
 #endif
        LOCK_GC;
-       res = sgen_alloc_obj_nolock ((GCVTable*)vtable, size);
+       res = sgen_alloc_obj_nolock (vtable, size);
        UNLOCK_GC;
        if (G_UNLIKELY (!res))
                sgen_client_out_of_memory (size);
@@ -465,10 +465,10 @@ sgen_alloc_obj (GCVTable *vtable, size_t size)
  * To be used for interned strings and possibly MonoThread, reflection handles.
  * We may want to explicitly free these objects.
  */
-void*
-sgen_alloc_obj_pinned (GCVTable *vtable, size_t size)
+GCObject*
+sgen_alloc_obj_pinned (GCVTable vtable, size_t size)
 {
-       void **p;
+       GCObject *p;
 
        if (!SGEN_CAN_ALIGN_UP (size))
                return NULL;
@@ -478,10 +478,10 @@ sgen_alloc_obj_pinned (GCVTable *vtable, size_t size)
 
        if (size > SGEN_MAX_SMALL_OBJ_SIZE) {
                /* large objects are always pinned anyway */
-               p = sgen_los_alloc_large_inner ((GCVTable*)vtable, size);
+               p = sgen_los_alloc_large_inner (vtable, size);
        } else {
                SGEN_ASSERT (9, sgen_client_vtable_is_inited (vtable), "class %s:%s is not initialized", sgen_client_vtable_get_namespace (vtable), sgen_client_vtable_get_name (vtable));
-               p = major_collector.alloc_small_pinned_obj ((GCVTable*)vtable, size, SGEN_VTABLE_HAS_REFERENCES ((GCVTable*)vtable));
+               p = major_collector.alloc_small_pinned_obj (vtable, size, SGEN_VTABLE_HAS_REFERENCES (vtable));
        }
        if (G_LIKELY (p)) {
                SGEN_LOG (6, "Allocated pinned object %p, vtable: %p (%s), size: %zd", p, vtable, sgen_client_vtable_get_name (vtable), size);
@@ -491,17 +491,17 @@ sgen_alloc_obj_pinned (GCVTable *vtable, size_t size)
        return p;
 }
 
-void*
-sgen_alloc_obj_mature (GCVTable *vtable, size_t size)
+GCObject*
+sgen_alloc_obj_mature (GCVTable vtable, size_t size)
 {
-       void *res;
+       GCObject *res;
 
        if (!SGEN_CAN_ALIGN_UP (size))
                return NULL;
        size = ALIGN_UP (size);
 
        LOCK_GC;
-       res = alloc_degraded ((GCVTable*)vtable, size, TRUE);
+       res = alloc_degraded (vtable, size, TRUE);
        UNLOCK_GC;
 
        return res;
index 6343de1be07cde5dc09a2d115972a173835f13e9..fb18def266d4bd4441db6466c5f782c4bd2b80d9 100644 (file)
@@ -467,7 +467,7 @@ sgen_get_card_table_configuration (int *shift_bits, gpointer *mask)
 
 #if 0
 void
-sgen_card_table_dump_obj_card (char *object, size_t size, void *dummy)
+sgen_card_table_dump_obj_card (GCObject *object, size_t size, void *dummy)
 {
        guint8 *start = sgen_card_table_get_card_scan_address (object);
        guint8 *end = start + sgen_card_table_number_of_cards_in_range (object, size);
@@ -486,7 +486,7 @@ sgen_card_table_dump_obj_card (char *object, size_t size, void *dummy)
 #endif
 
 void
-sgen_cardtable_scan_object (char *obj, mword block_obj_size, guint8 *cards, gboolean mod_union, ScanCopyContext ctx)
+sgen_cardtable_scan_object (GCObject *obj, mword block_obj_size, guint8 *cards, gboolean mod_union, ScanCopyContext ctx)
 {
        HEAVY_STAT (++large_objects);
 
@@ -501,7 +501,7 @@ sgen_cardtable_scan_object (char *obj, mword block_obj_size, guint8 *cards, gboo
                ctx.ops->scan_object (obj, sgen_obj_get_descriptor (obj), ctx.queue);
        }
 
-       binary_protocol_card_scan (obj, sgen_safe_object_get_size ((GCObject*)obj));
+       binary_protocol_card_scan (obj, sgen_safe_object_get_size (obj));
 }
 
 #ifdef CARDTABLE_STATS
index 85a6924650f0fd8cd746d0344ac37b17b736d44e..bda77e4e925fd5149ee09a244322af12c2c9bbaa 100644 (file)
@@ -30,7 +30,7 @@ mword sgen_card_table_number_of_cards_in_range (mword address, mword size);
 void sgen_card_table_reset_region (mword start, mword end);
 void* sgen_card_table_align_pointer (void *ptr);
 void sgen_card_table_mark_range (mword address, mword size);
-void sgen_cardtable_scan_object (char *obj, mword obj_size, guint8 *cards,
+void sgen_cardtable_scan_object (GCObject *obj, mword obj_size, guint8 *cards,
                gboolean mod_union, ScanCopyContext ctx);
 
 gboolean sgen_card_table_get_card_data (guint8 *dest, mword address, mword cards);
index 505edbdc3fb940b9660e905f332f0024d7447382..cb332823789a01da7a3ac9ee0a2ad2b987d82b8a 100644 (file)
@@ -29,7 +29,7 @@ void sgen_client_init (void);
  * The slow path for getting an object's size.  We're passing in the vtable because we've
  * already fetched it.
  */
-mword sgen_client_slow_object_get_size (GCVTable *vtable, GCObject* o);
+mword sgen_client_slow_object_get_size (GCVTable vtable, GCObject* o);
 
 /*
  * Fill the given range with a dummy object.  If the range is too short to be filled with an
@@ -92,7 +92,7 @@ void sgen_client_clear_unreachable_ephemerons (ScanCopyContext ctx);
  * parts of the object based on which cards are marked, do so and return TRUE.  Otherwise,
  * return FALSE.
  */
-gboolean sgen_client_cardtable_scan_object (char *obj, mword block_obj_size, guint8 *cards, gboolean mod_union, ScanCopyContext ctx);
+gboolean sgen_client_cardtable_scan_object (GCObject *obj, mword block_obj_size, guint8 *cards, gboolean mod_union, ScanCopyContext ctx);
 
 /*
  * Called after nursery objects have been pinned.  No action is necessary.
@@ -114,7 +114,7 @@ void sgen_client_collecting_major_3 (SgenPointerQueue *fin_ready_queue, SgenPoin
 /*
  * Called after a LOS object has been pinned.  No action is necessary.
  */
-void sgen_client_pinned_los_object (char *obj);
+void sgen_client_pinned_los_object (GCObject *obj);
 
 /*
  * Called for every degraded allocation.  No action is necessary.
@@ -144,9 +144,9 @@ const char* sgen_client_description_for_internal_mem_type (int type);
 /*
  * Only used for debugging.  `sgen_client_vtable_get_namespace()` may return NULL.
  */
-gboolean sgen_client_vtable_is_inited (GCVTable *vtable);
-const char* sgen_client_vtable_get_namespace (GCVTable *vtable);
-const char* sgen_client_vtable_get_name (GCVTable *vtable);
+gboolean sgen_client_vtable_is_inited (GCVTable vtable);
+const char* sgen_client_vtable_get_namespace (GCVTable vtable);
+const char* sgen_client_vtable_get_name (GCVTable vtable);
 
 /*
  * Called before starting collections.  The world is already stopped.  No action is
index f139a98e41ddb17ccef1d50acff21779a21308d1..368ec5a6d3be6fed582712f113fe1289b69755a6 100644 (file)
@@ -32,6 +32,8 @@ typedef guint32 mword;
 typedef guint64 mword;
 #endif
 
+typedef mword SgenDescriptor;
+#define SGEN_DESCRIPTOR_NULL   0
 
 /*
  * Turning on heavy statistics will turn off the managed allocator and
index 99fd0cc37ca36d3c4325b5925620c3d164e9b6be..847269d5d72b575174d6366fd6236e8652b6dc7b 100644 (file)
@@ -35,13 +35,13 @@ extern guint64 stat_slots_allocated_in_vain;
  * anymore, which is the case in the parallel collector.
  */
 static MONO_ALWAYS_INLINE void
-par_copy_object_no_checks (char *destination, GCVTable *vt, void *obj, mword objsize, SgenGrayQueue *queue)
+par_copy_object_no_checks (char *destination, GCVTable vt, void *obj, mword objsize, SgenGrayQueue *queue)
 {
        sgen_client_pre_copy_checks (destination, vt, obj, objsize);
        binary_protocol_copy (obj, destination, vt, objsize);
 
        /* FIXME: assumes object layout */
-       memcpy (destination + sizeof (mword), (char*)obj + sizeof (mword), objsize - sizeof (mword));
+       memcpy ((char*)destination + sizeof (mword), (char*)obj + sizeof (mword), objsize - sizeof (mword));
 
        /* adjust array->bounds */
        SGEN_ASSERT (9, sgen_vtable_get_descriptor (vt), "vtable %p has no gc descriptor", vt);
@@ -60,11 +60,11 @@ par_copy_object_no_checks (char *destination, GCVTable *vt, void *obj, mword obj
 static MONO_NEVER_INLINE void*
 copy_object_no_checks (void *obj, SgenGrayQueue *queue)
 {
-       GCVTable *vt = SGEN_LOAD_VTABLE_UNCHECKED (obj);
+       GCVTable vt = SGEN_LOAD_VTABLE_UNCHECKED (obj);
        gboolean has_references = SGEN_VTABLE_HAS_REFERENCES (vt);
        mword objsize = SGEN_ALIGN_UP (sgen_client_par_object_get_size (vt, obj));
        /* FIXME: Does this not mark the newly allocated object? */
-       char *destination = COLLECTOR_SERIAL_ALLOC_FOR_PROMOTION (vt, obj, objsize, has_references);
+       void *destination = COLLECTOR_SERIAL_ALLOC_FOR_PROMOTION (vt, obj, objsize, has_references);
 
        if (G_UNLIKELY (!destination)) {
                /* FIXME: Is this path ever tested? */
index be53b493fdd8fa35ae4faaa69e7905f00f1a7559..79e23ed453bea3003b1ed3947e7fdc786770ec73 100644 (file)
@@ -43,7 +43,7 @@
 #define safe_object_get_size   sgen_safe_object_get_size
 
 void describe_ptr (char *ptr);
-void check_object (char *start);
+void check_object (GCObject *obj);
 
 /*
  * ######################################################################
@@ -67,8 +67,8 @@ static char* describe_nursery_ptr (char *ptr, gboolean need_setup);
 static void
 describe_pointer (char *ptr, gboolean need_setup)
 {
-       GCVTable *vtable;
-       mword desc;
+       GCVTable vtable;
+       SgenDescriptor desc;
        int type;
        char *start;
        char *forwarded;
@@ -80,7 +80,7 @@ describe_pointer (char *ptr, gboolean need_setup)
                if (!start)
                        return;
                ptr = start;
-               vtable = (GCVTable*)LOAD_VTABLE (ptr);
+               vtable = LOAD_VTABLE ((GCObject*)ptr);
        } else {
                if (sgen_ptr_is_in_los (ptr, &start)) {
                        if (ptr == start)
@@ -89,7 +89,7 @@ describe_pointer (char *ptr, gboolean need_setup)
                                printf ("Pointer is at offset 0x%x of object %p in LOS space.\n", (int)(ptr - start), start);
                        ptr = start;
                        mono_sgen_los_describe_pointer (ptr);
-                       vtable = (GCVTable*)LOAD_VTABLE (ptr);
+                       vtable = LOAD_VTABLE ((GCObject*)ptr);
                } else if (major_collector.ptr_is_in_non_pinned_space (ptr, &start)) {
                        if (ptr == start)
                                printf ("Pointer is the start of object %p in oldspace.\n", start);
@@ -99,11 +99,11 @@ describe_pointer (char *ptr, gboolean need_setup)
                                printf ("Pointer inside oldspace.\n");
                        if (start)
                                ptr = start;
-                       vtable = (GCVTable*)major_collector.describe_pointer (ptr);
-               } else if (major_collector.obj_is_from_pinned_alloc (ptr)) {
+                       vtable = (GCVTable)major_collector.describe_pointer (ptr);
+               } else if (major_collector.ptr_is_from_pinned_alloc (ptr)) {
                        // FIXME: Handle pointers to the inside of objects
                        printf ("Pointer is inside a pinned chunk.\n");
-                       vtable = (GCVTable*)LOAD_VTABLE (ptr);
+                       vtable = LOAD_VTABLE ((GCObject*)ptr);
                } else {
                        printf ("Pointer unknown.\n");
                        return;
@@ -130,7 +130,7 @@ describe_pointer (char *ptr, gboolean need_setup)
        }
        printf ("Class: %s.%s\n", sgen_client_vtable_get_namespace (vtable), sgen_client_vtable_get_name (vtable));
 
-       desc = sgen_vtable_get_descriptor ((GCVTable*)vtable);
+       desc = sgen_vtable_get_descriptor (vtable);
        printf ("Descriptor: %lx\n", (long)desc);
 
        type = desc & DESC_TYPE_MASK;
@@ -162,7 +162,7 @@ static gboolean missing_remsets;
 #define HANDLE_PTR(ptr,obj)    do {    \
        if (*(ptr) && sgen_ptr_in_nursery ((char*)*(ptr))) { \
                if (!sgen_get_remset ()->find_address ((char*)(ptr)) && !sgen_cement_lookup (*(ptr))) { \
-                       GCVTable *__vt = SGEN_LOAD_VTABLE ((obj));      \
+                       GCVTable __vt = SGEN_LOAD_VTABLE (obj); \
                        SGEN_LOG (0, "Oldspace->newspace reference %p at offset %zd in object %p (%s.%s) not found in remsets.", *(ptr), (char*)(ptr) - (char*)(obj), (obj), sgen_client_vtable_get_namespace (__vt), sgen_client_vtable_get_name (__vt)); \
                        binary_protocol_missing_remset ((obj), __vt, (int) ((char*)(ptr) - (char*)(obj)), *(ptr), (gpointer)LOAD_VTABLE(*(ptr)), object_is_pinned (*(ptr))); \
                        if (!object_is_pinned (*(ptr)))                                                         \
@@ -176,10 +176,11 @@ static gboolean missing_remsets;
  * be found in the remembered sets.
  */
 static void
-check_consistency_callback (char *start, size_t size, void *dummy)
+check_consistency_callback (GCObject *obj, size_t size, void *dummy)
 {
-       GCVTable *vt = (GCVTable*)LOAD_VTABLE (start);
-       mword desc = sgen_vtable_get_descriptor ((GCVTable*)vt);
+       char *start = (char*)obj;
+       GCVTable vt = LOAD_VTABLE (obj);
+       SgenDescriptor desc = sgen_vtable_get_descriptor (vt);
        SGEN_LOG (8, "Scanning object %p, vtable: %p (%s)", start, vt, sgen_client_vtable_get_name (vt));
 
 #include "sgen-scan-object.h"
@@ -211,7 +212,7 @@ sgen_check_consistency (void)
 }
 
 static gboolean
-is_major_or_los_object_marked (char *obj)
+is_major_or_los_object_marked (GCObject *obj)
 {
        if (sgen_safe_object_get_size ((GCObject*)obj) > SGEN_MAX_SMALL_OBJ_SIZE) {
                return sgen_los_object_is_pinned (obj);
@@ -222,9 +223,9 @@ is_major_or_los_object_marked (char *obj)
 
 #undef HANDLE_PTR
 #define HANDLE_PTR(ptr,obj)    do {    \
-       if (*(ptr) && !sgen_ptr_in_nursery ((char*)*(ptr)) && !is_major_or_los_object_marked ((char*)*(ptr))) { \
+       if (*(ptr) && !sgen_ptr_in_nursery ((char*)*(ptr)) && !is_major_or_los_object_marked ((GCObject*)*(ptr))) { \
                if (!sgen_get_remset ()->find_address_with_cards (start, cards, (char*)(ptr))) { \
-                       GCVTable *__vt = SGEN_LOAD_VTABLE ((obj));      \
+                       GCVTable __vt = SGEN_LOAD_VTABLE (obj); \
                        SGEN_LOG (0, "major->major reference %p at offset %zd in object %p (%s.%s) not found in remsets.", *(ptr), (char*)(ptr) - (char*)(obj), (obj), sgen_client_vtable_get_namespace (__vt), sgen_client_vtable_get_name (__vt)); \
                        binary_protocol_missing_remset ((obj), __vt, (int) ((char*)(ptr) - (char*)(obj)), *(ptr), (gpointer)LOAD_VTABLE(*(ptr)), object_is_pinned (*(ptr))); \
                        missing_remsets = TRUE;                         \
@@ -233,21 +234,22 @@ is_major_or_los_object_marked (char *obj)
        } while (0)
 
 static void
-check_mod_union_callback (char *start, size_t size, void *dummy)
+check_mod_union_callback (GCObject *obj, size_t size, void *dummy)
 {
+       char *start = (char*)obj;
        gboolean in_los = (gboolean) (size_t) dummy;
-       GCVTable *vt = (GCVTable*)LOAD_VTABLE (start);
-       mword desc = sgen_vtable_get_descriptor ((GCVTable*)vt);
+       GCVTable vt = LOAD_VTABLE (obj);
+       SgenDescriptor desc = sgen_vtable_get_descriptor (vt);
        guint8 *cards;
-       SGEN_LOG (8, "Scanning object %p, vtable: %p (%s)", start, vt, sgen_client_vtable_get_name (vt));
+       SGEN_LOG (8, "Scanning object %p, vtable: %p (%s)", obj, vt, sgen_client_vtable_get_name (vt));
 
-       if (!is_major_or_los_object_marked (start))
+       if (!is_major_or_los_object_marked (obj))
                return;
 
        if (in_los)
-               cards = sgen_los_header_for_object (start)->cardtable_mod_union;
+               cards = sgen_los_header_for_object (obj)->cardtable_mod_union;
        else
-               cards = sgen_get_major_collector ()->get_cardtable_mod_union_for_object (start);
+               cards = sgen_get_major_collector ()->get_cardtable_mod_union_for_reference (start);
 
        SGEN_ASSERT (0, cards, "we must have mod union for marked major objects");
 
@@ -274,9 +276,10 @@ sgen_check_mod_union_consistency (void)
        } while (0)
 
 static void
-check_major_refs_callback (char *start, size_t size, void *dummy)
+check_major_refs_callback (GCObject *obj, size_t size, void *dummy)
 {
-       mword desc = sgen_obj_get_descriptor (start);
+       char *start = (char*)obj;
+       SgenDescriptor desc = sgen_obj_get_descriptor (obj);
 
 #include "sgen-scan-object.h"
 }
@@ -303,25 +306,26 @@ sgen_check_major_refs (void)
  * reference fields are valid.
  */
 void
-check_object (char *start)
+check_object (GCObject *obj)
 {
-       mword desc;
+       char *start = (char*)obj;
+       SgenDescriptor desc;
 
        if (!start)
                return;
 
-       desc = sgen_obj_get_descriptor (start);
+       desc = sgen_obj_get_descriptor (obj);
 
 #include "sgen-scan-object.h"
 }
 
 
-static char **valid_nursery_objects;
+static GCObject **valid_nursery_objects;
 static int valid_nursery_object_count;
 static gboolean broken_heap;
 
 static void 
-setup_mono_sgen_scan_area_with_callback (char *object, size_t size, void *data)
+setup_mono_sgen_scan_area_with_callback (GCObject *object, size_t size, void *data)
 {
        valid_nursery_objects [valid_nursery_object_count++] = object;
 }
@@ -332,7 +336,7 @@ setup_valid_nursery_objects (void)
        if (!valid_nursery_objects)
                valid_nursery_objects = sgen_alloc_os_memory (DEFAULT_NURSERY_SIZE, SGEN_ALLOC_INTERNAL | SGEN_ALLOC_ACTIVATE, "debugging data");
        valid_nursery_object_count = 0;
-       sgen_scan_area_with_callback (nursery_section->data, nursery_section->end_data, setup_mono_sgen_scan_area_with_callback, NULL, FALSE);
+       sgen_scan_area_with_callback (nursery_section->data, nursery_section->end_data, setup_mono_sgen_scan_area_with_callback, NULL, FALSE, FALSE);
 }
 
 static gboolean
@@ -341,10 +345,10 @@ find_object_in_nursery_dump (char *object)
        int first = 0, last = valid_nursery_object_count;
        while (first < last) {
                int middle = first + ((last - first) >> 1);
-               if (object == valid_nursery_objects [middle])
+               if (object == (char*)valid_nursery_objects [middle])
                        return TRUE;
 
-               if (object < valid_nursery_objects [middle])
+               if (object < (char*)valid_nursery_objects [middle])
                        last = middle;
                else
                        first = middle + 1;
@@ -358,8 +362,8 @@ iterate_valid_nursery_objects (IterateObjectCallbackFunc callback, void *data)
 {
        int i;
        for (i = 0; i < valid_nursery_object_count; ++i) {
-               char *obj = valid_nursery_objects [i];
-               callback (obj, safe_object_get_size ((GCObject*)obj), data);
+               GCObject *obj = valid_nursery_objects [i];
+               callback (obj, safe_object_get_size (obj), data);
        }
 }
 
@@ -372,20 +376,20 @@ describe_nursery_ptr (char *ptr, gboolean need_setup)
                setup_valid_nursery_objects ();
 
        for (i = 0; i < valid_nursery_object_count - 1; ++i) {
-               if (valid_nursery_objects [i + 1] > ptr)
+               if ((char*)valid_nursery_objects [i + 1] > ptr)
                        break;
        }
 
-       if (i >= valid_nursery_object_count || valid_nursery_objects [i] + safe_object_get_size ((GCObject *)valid_nursery_objects [i]) < ptr) {
+       if (i >= valid_nursery_object_count || (char*)valid_nursery_objects [i] + safe_object_get_size (valid_nursery_objects [i]) < ptr) {
                SGEN_LOG (0, "nursery-ptr (unalloc'd-memory)");
                return NULL;
        } else {
-               char *obj = valid_nursery_objects [i];
-               if (obj == ptr)
+               GCObject *obj = valid_nursery_objects [i];
+               if ((char*)obj == ptr)
                        SGEN_LOG (0, "nursery-ptr %p", obj);
                else
-                       SGEN_LOG (0, "nursery-ptr %p (interior-ptr offset %zd)", obj, ptr - obj);
-               return obj;
+                       SGEN_LOG (0, "nursery-ptr %p (interior-ptr offset %zd)", obj, ptr - (char*)obj);
+               return (char*)obj;
        }
 }
 
@@ -407,7 +411,7 @@ static void
 bad_pointer_spew (char *obj, char **slot)
 {
        char *ptr = *slot;
-       GCVTable *vtable = (GCVTable*)LOAD_VTABLE (obj);
+       GCVTable vtable = LOAD_VTABLE ((GCObject*)obj);
 
        SGEN_LOG (0, "Invalid object pointer %p at offset %zd in object %p (%s.%s):", ptr,
                        (char*)slot - obj,
@@ -420,7 +424,7 @@ static void
 missing_remset_spew (char *obj, char **slot)
 {
        char *ptr = *slot;
-       GCVTable *vtable = (GCVTable*)LOAD_VTABLE (obj);
+       GCVTable vtable = LOAD_VTABLE ((GCObject*)obj);
 
        SGEN_LOG (0, "Oldspace->newspace reference %p at offset %zd in object %p (%s.%s) not found in remsets.",
                        ptr, (char*)slot - obj, obj, 
@@ -438,17 +442,18 @@ FIXME Flag missing remsets due to pinning as non fatal
                        if (!is_valid_object_pointer (*(char**)ptr)) {  \
                                bad_pointer_spew ((char*)obj, (char**)ptr);     \
                        } else if (!sgen_ptr_in_nursery (obj) && sgen_ptr_in_nursery ((char*)*ptr)) {   \
-                               if (!sgen_get_remset ()->find_address ((char*)(ptr)) && !sgen_cement_lookup ((char*)*(ptr)) && (!allow_missing_pinned || !SGEN_OBJECT_IS_PINNED ((char*)*(ptr)))) \
+                               if (!sgen_get_remset ()->find_address ((char*)(ptr)) && !sgen_cement_lookup (*(ptr)) && (!allow_missing_pinned || !SGEN_OBJECT_IS_PINNED (*(ptr)))) \
                                missing_remset_spew ((char*)obj, (char**)ptr);  \
                        }       \
         } \
        } while (0)
 
 static void
-verify_object_pointers_callback (char *start, size_t size, void *data)
+verify_object_pointers_callback (GCObject *obj, size_t size, void *data)
 {
+       char *start = (char*)obj;
        gboolean allow_missing_pinned = (gboolean) (size_t) data;
-       mword desc = sgen_obj_get_descriptor (start);
+       SgenDescriptor desc = sgen_obj_get_descriptor (obj);
 
 #include "sgen-scan-object.h"
 }
@@ -464,7 +469,7 @@ sgen_check_whole_heap (gboolean allow_missing_pinned)
        setup_valid_nursery_objects ();
 
        broken_heap = FALSE;
-       sgen_scan_area_with_callback (nursery_section->data, nursery_section->end_data, verify_object_pointers_callback, (void*) (size_t) allow_missing_pinned, FALSE);
+       sgen_scan_area_with_callback (nursery_section->data, nursery_section->end_data, verify_object_pointers_callback, (void*) (size_t) allow_missing_pinned, FALSE, TRUE);
        major_collector.iterate_objects (ITERATE_OBJECTS_SWEEP_ALL, verify_object_pointers_callback, (void*) (size_t) allow_missing_pinned);
        sgen_los_iterate_objects (verify_object_pointers_callback, (void*) (size_t) allow_missing_pinned);
 
@@ -561,31 +566,32 @@ find_pinning_reference (char *obj, size_t size)
                        } else {                                        \
                                mword __size = sgen_safe_object_get_size ((GCObject*)__target); \
                                if (__size <= SGEN_MAX_SMALL_OBJ_SIZE)  \
-                                       g_assert (major_collector.is_object_live (__target)); \
+                                       g_assert (major_collector.is_object_live ((GCObject*)__target)); \
                                else                                    \
-                                       g_assert (sgen_los_object_is_pinned (__target)); \
+                                       g_assert (sgen_los_object_is_pinned ((GCObject*)__target)); \
                        }                                               \
                }                                                       \
        } while (0)
 
 static void
-check_marked_callback (char *start, size_t size, void *dummy)
+check_marked_callback (GCObject *obj, size_t size, void *dummy)
 {
+       char *start = (char*)obj;
        gboolean flag = (gboolean) (size_t) dummy;
-       mword desc;
+       SgenDescriptor desc;
 
        if (sgen_ptr_in_nursery (start)) {
                if (flag)
-                       SGEN_ASSERT (0, SGEN_OBJECT_IS_PINNED (start), "All objects remaining in the nursery must be pinned");
+                       SGEN_ASSERT (0, SGEN_OBJECT_IS_PINNED (obj), "All objects remaining in the nursery must be pinned");
        } else if (flag) {
-               if (!sgen_los_object_is_pinned (start))
+               if (!sgen_los_object_is_pinned (obj))
                        return;
        } else {
-               if (!major_collector.is_object_live (start))
+               if (!major_collector.is_object_live (obj))
                        return;
        }
 
-       desc = sgen_obj_get_descriptor_safe (start);
+       desc = sgen_obj_get_descriptor_safe (obj);
 
 #include "sgen-scan-object.h"
 }
@@ -617,7 +623,7 @@ sgen_check_nursery_objects_pinned (gboolean pinned)
 {
        sgen_clear_nursery_fragments ();
        sgen_scan_area_with_callback (nursery_section->data, nursery_section->end_data,
-                       (IterateObjectCallbackFunc)check_nursery_objects_pinned_callback, (void*) (size_t) pinned /* (void*)&ctx */, FALSE);
+                       (IterateObjectCallbackFunc)check_nursery_objects_pinned_callback, (void*) (size_t) pinned /* (void*)&ctx */, FALSE, TRUE);
 }
 
 static void
@@ -665,7 +671,7 @@ sgen_debug_verify_nursery (gboolean do_dump_nursery_content)
                verify_scan_starts (cur, cur + size);
                is_array_fill = sgen_client_object_is_array_fill ((GCObject*)cur);
                if (do_dump_nursery_content) {
-                       GCVTable *vtable = SGEN_LOAD_VTABLE (cur);
+                       GCVTable vtable = SGEN_LOAD_VTABLE ((GCObject*)cur);
                        if (cur > hole_start)
                                SGEN_LOG (0, "HOLE [%p %p %d]", hole_start, cur, (int)(cur - hole_start));
                        SGEN_LOG (0, "OBJ  [%p %p %d %d %s.%s %d]", cur, cur + size, (int)size, (int)ss,
@@ -673,7 +679,7 @@ sgen_debug_verify_nursery (gboolean do_dump_nursery_content)
                                        is_array_fill);
                }
                if (nursery_canaries_enabled () && !is_array_fill) {
-                       CHECK_CANARY_FOR_OBJECT (cur);
+                       CHECK_CANARY_FOR_OBJECT ((GCObject*)cur, TRUE);
                        CANARIFY_SIZE (size);
                }
                cur += size;
@@ -718,39 +724,40 @@ static gboolean scan_object_for_specific_ref_precise = TRUE;
 #undef HANDLE_PTR
 #define HANDLE_PTR(ptr,obj) do {                                       \
                if ((GCObject*)*(ptr) == key) {                         \
-                       GCVTable *vtable = SGEN_LOAD_VTABLE (*(ptr));   \
+                       GCVTable vtable = SGEN_LOAD_VTABLE (*(ptr));    \
                        g_print ("found ref to %p in object %p (%s.%s) at offset %zd\n", \
                                        key, (obj), sgen_client_vtable_get_namespace (vtable), sgen_client_vtable_get_name (vtable), ((char*)(ptr) - (char*)(obj))); \
                }                                                       \
        } while (0)
 
 static void
-scan_object_for_specific_ref (char *start, GCObject *key)
+scan_object_for_specific_ref (GCObject *obj, GCObject *key)
 {
-       char *forwarded;
+       GCObject *forwarded;
 
-       if ((forwarded = SGEN_OBJECT_IS_FORWARDED (start)))
-               start = forwarded;
+       if ((forwarded = SGEN_OBJECT_IS_FORWARDED (obj)))
+               obj = forwarded;
 
        if (scan_object_for_specific_ref_precise) {
-               mword desc = sgen_obj_get_descriptor_safe (start);
+               char *start = (char*)obj;
+               SgenDescriptor desc = sgen_obj_get_descriptor_safe (obj);
                #include "sgen-scan-object.h"
        } else {
-               mword *words = (mword*)start;
-               size_t size = safe_object_get_size ((GCObject*)start);
+               mword *words = (mword*)obj;
+               size_t size = safe_object_get_size (obj);
                int i;
                for (i = 0; i < size / sizeof (mword); ++i) {
                        if (words [i] == (mword)key) {
-                               GCVTable *vtable = SGEN_LOAD_VTABLE (start);
+                               GCVTable vtable = SGEN_LOAD_VTABLE (obj);
                                g_print ("found possible ref to %p in object %p (%s.%s) at offset %zd\n",
-                                               key, start, sgen_client_vtable_get_namespace (vtable), sgen_client_vtable_get_name (vtable), i * sizeof (mword));
+                                               key, obj, sgen_client_vtable_get_namespace (vtable), sgen_client_vtable_get_name (vtable), i * sizeof (mword));
                        }
                }
        }
 }
 
 static void
-scan_object_for_specific_ref_callback (char *obj, size_t size, GCObject *key)
+scan_object_for_specific_ref_callback (GCObject *obj, size_t size, GCObject *key)
 {
        scan_object_for_specific_ref (obj, key);
 }
@@ -767,7 +774,7 @@ static GCObject *check_key = NULL;
 static RootRecord *check_root = NULL;
 
 static void
-check_root_obj_specific_ref_from_marker (void **obj, void *gc_data)
+check_root_obj_specific_ref_from_marker (GCObject **obj, void *gc_data)
 {
        check_root_obj_specific_ref (check_root, check_key, *obj);
 }
@@ -780,7 +787,7 @@ scan_roots_for_specific_ref (GCObject *key, int root_type)
        check_key = key;
 
        SGEN_HASH_TABLE_FOREACH (&roots_hash [root_type], start_root, root) {
-               mword desc = root->root_desc;
+               SgenDescriptor desc = root->root_desc;
 
                check_root = root;
 
@@ -837,7 +844,7 @@ mono_gc_scan_for_specific_ref (GCObject *key, gboolean precise)
        scan_object_for_specific_ref_precise = precise;
 
        sgen_scan_area_with_callback (nursery_section->data, nursery_section->end_data,
-                       (IterateObjectCallbackFunc)scan_object_for_specific_ref_callback, key, TRUE);
+                       (IterateObjectCallbackFunc)scan_object_for_specific_ref_callback, key, TRUE, FALSE);
 
        major_collector.iterate_objects (ITERATE_OBJECTS_SWEEP_ALL, (IterateObjectCallbackFunc)scan_object_for_specific_ref_callback, key);
 
@@ -869,9 +876,9 @@ check_obj_not_in_domain (MonoObject **o)
 
 
 static void
-check_obj_not_in_domain_callback (void **o, void *gc_data)
+check_obj_not_in_domain_callback (GCObject **o, void *gc_data)
 {
-       g_assert (((MonoObject*)(*o))->vtable->domain != check_domain);
+       g_assert ((*o)->vtable->domain != check_domain);
 }
 
 void
@@ -881,7 +888,7 @@ sgen_scan_for_registered_roots_in_domain (MonoDomain *domain, int root_type)
        RootRecord *root;
        check_domain = domain;
        SGEN_HASH_TABLE_FOREACH (&roots_hash [root_type], start_root, root) {
-               mword desc = root->root_desc;
+               SgenDescriptor desc = root->root_desc;
 
                /* The MonoDomain struct is allowed to hold
                   references to objects in its own domain. */
@@ -932,10 +939,10 @@ sgen_scan_for_registered_roots_in_domain (MonoDomain *domain, int root_type)
 }
 
 static gboolean
-is_xdomain_ref_allowed (gpointer *ptr, char *obj, MonoDomain *domain)
+is_xdomain_ref_allowed (GCObject **ptr, GCObject *obj, MonoDomain *domain)
 {
        MonoObject *o = (MonoObject*)(obj);
-       MonoObject *ref = (MonoObject*)*(ptr);
+       MonoObject *ref = *ptr;
        size_t offset = (char*)(ptr) - (char*)o;
 
        if (o->vtable->klass == mono_defaults.thread_class && offset == G_STRUCT_OFFSET (MonoThread, internal_thread))
@@ -974,11 +981,10 @@ is_xdomain_ref_allowed (gpointer *ptr, char *obj, MonoDomain *domain)
 }
 
 static void
-check_reference_for_xdomain (gpointer *ptr, char *obj, MonoDomain *domain)
+check_reference_for_xdomain (GCObject **ptr, GCObject *obj, MonoDomain *domain)
 {
-       MonoObject *o = (MonoObject*)(obj);
-       MonoObject *ref = (MonoObject*)*(ptr);
-       size_t offset = (char*)(ptr) - (char*)o;
+       MonoObject *ref = *ptr;
+       size_t offset = (char*)(ptr) - (char*)obj;
        MonoClass *class;
        MonoClassField *field;
        char *str;
@@ -989,7 +995,7 @@ check_reference_for_xdomain (gpointer *ptr, char *obj, MonoDomain *domain)
                return;
 
        field = NULL;
-       for (class = o->vtable->klass; class; class = class->parent) {
+       for (class = obj->vtable->klass; class; class = class->parent) {
                int i;
 
                for (i = 0; i < class->field.count; ++i) {
@@ -1007,10 +1013,10 @@ check_reference_for_xdomain (gpointer *ptr, char *obj, MonoDomain *domain)
        else
                str = NULL;
        g_print ("xdomain reference in %p (%s.%s) at offset %d (%s) to %p (%s.%s) (%s)  -  pointed to by:\n",
-                       o, o->vtable->klass->name_space, o->vtable->klass->name,
+                       obj, obj->vtable->klass->name_space, obj->vtable->klass->name,
                        offset, field ? field->name : "",
                        ref, ref->vtable->klass->name_space, ref->vtable->klass->name, str ? str : "");
-       mono_gc_scan_for_specific_ref (o, TRUE);
+       mono_gc_scan_for_specific_ref (obj, TRUE);
        if (str)
                g_free (str);
 }
@@ -1019,11 +1025,12 @@ check_reference_for_xdomain (gpointer *ptr, char *obj, MonoDomain *domain)
 #define HANDLE_PTR(ptr,obj)    check_reference_for_xdomain ((ptr), (obj), domain)
 
 static void
-scan_object_for_xdomain_refs (char *start, mword size, void *data)
+scan_object_for_xdomain_refs (GCObject *obj, mword size, void *data)
 {
-       MonoVTable *vt = (MonoVTable*)SGEN_LOAD_VTABLE (start);
+       char *start = (char*)obj;
+       MonoVTable *vt = SGEN_LOAD_VTABLE (obj);
        MonoDomain *domain = vt->domain;
-       mword desc = sgen_vtable_get_descriptor ((GCVTable*)vt);
+       SgenDescriptor desc = sgen_vtable_get_descriptor (vt);
 
        #include "sgen-scan-object.h"
 }
@@ -1034,12 +1041,12 @@ sgen_check_for_xdomain_refs (void)
        LOSObject *bigobj;
 
        sgen_scan_area_with_callback (nursery_section->data, nursery_section->end_data,
-                       (IterateObjectCallbackFunc)scan_object_for_xdomain_refs, NULL, FALSE);
+                       (IterateObjectCallbackFunc)scan_object_for_xdomain_refs, NULL, FALSE, TRUE);
 
        major_collector.iterate_objects (ITERATE_OBJECTS_SWEEP_ALL, (IterateObjectCallbackFunc)scan_object_for_xdomain_refs, NULL);
 
        for (bigobj = los_object_list; bigobj; bigobj = bigobj->next)
-               scan_object_for_xdomain_refs (bigobj->data, sgen_los_object_size (bigobj), NULL);
+               scan_object_for_xdomain_refs ((GCObject*)bigobj->data, sgen_los_object_size (bigobj), NULL);
 }
 
 #endif
@@ -1064,7 +1071,7 @@ sgen_dump_section (GCMemSection *section, const char *type)
 
        while (start < end) {
                guint size;
-               //GCVTable *vt;
+               //GCVTable vt;
                //MonoClass *class;
 
                if (!*(void**)start) {
@@ -1080,7 +1087,7 @@ sgen_dump_section (GCMemSection *section, const char *type)
                if (!occ_start)
                        occ_start = start;
 
-               //vt = (GCVTable*)SGEN_LOAD_VTABLE (start);
+               //vt = SGEN_LOAD_VTABLE (start);
                //class = vt->klass;
 
                size = SGEN_ALIGN_UP (safe_object_get_size ((GCObject*) start));
@@ -1189,27 +1196,27 @@ sgen_debug_dump_heap (const char *type, int num, const char *reason)
        fprintf (heap_dump_file, "</collection>\n");
 }
 
-static char *found_obj;
+static GCObject *found_obj;
 
 static void
-find_object_for_ptr_callback (char *obj, size_t size, void *user_data)
+find_object_for_ptr_callback (GCObject *obj, size_t size, void *user_data)
 {
        char *ptr = user_data;
 
-       if (ptr >= obj && ptr < obj + size) {
+       if (ptr >= (char*)obj && ptr < (char*)obj + size) {
                g_assert (!found_obj);
                found_obj = obj;
        }
 }
 
 /* for use in the debugger */
-char*
+GCObject*
 sgen_find_object_for_ptr (char *ptr)
 {
        if (ptr >= nursery_section->data && ptr < nursery_section->end_data) {
                found_obj = NULL;
                sgen_scan_area_with_callback (nursery_section->data, nursery_section->end_data,
-                               find_object_for_ptr_callback, ptr, TRUE);
+                               find_object_for_ptr_callback, ptr, TRUE, FALSE);
                if (found_obj)
                        return found_obj;
        }
index 4747c7ce29285183df516b3e5e568b516d094e90..1cae87f4bc201ba3fe8ba2810bedc3bf87a94910 100644 (file)
@@ -56,7 +56,7 @@ static int complex_descriptors_size = 0;
 static int complex_descriptors_next = 0;
 static SgenUserRootMarkFunc user_descriptors [MAX_USER_DESCRIPTORS];
 static int user_descriptors_next = 0;
-static void *all_ref_root_descrs [32];
+static SgenDescriptor all_ref_root_descrs [32];
 
 #ifdef HEAVY_STATISTICS
 static guint64 stat_scanned_count_per_descriptor [DESC_TYPE_MAX];
@@ -110,7 +110,7 @@ alloc_complex_descriptor (gsize *bitmap, int numbits)
 }
 
 gsize*
-sgen_get_complex_descriptor (mword desc)
+sgen_get_complex_descriptor (SgenDescriptor desc)
 {
        return complex_descriptors + (desc >> LOW_TYPE_BITS);
 }
@@ -118,11 +118,11 @@ sgen_get_complex_descriptor (mword desc)
 /*
  * Descriptor builders.
  */
-void*
+SgenDescriptor
 mono_gc_make_descr_for_object (gsize *bitmap, int numbits, size_t obj_size)
 {
        int first_set = -1, num_set = 0, last_set = -1, i;
-       mword desc = 0;
+       SgenDescriptor desc = 0;
        size_t stored_size = obj_size;
 
        stored_size += SGEN_ALLOC_ALIGN - 1;
@@ -140,8 +140,8 @@ mono_gc_make_descr_for_object (gsize *bitmap, int numbits, size_t obj_size)
        if (first_set < 0) {
                SGEN_LOG (6, "Ptrfree descriptor %p, size: %zd", (void*)desc, stored_size);
                if (stored_size <= MAX_RUNLEN_OBJECT_SIZE && stored_size <= SGEN_MAX_SMALL_OBJ_SIZE)
-                       return (void*)(DESC_TYPE_SMALL_PTRFREE | stored_size);
-               return (void*)DESC_TYPE_COMPLEX_PTRFREE;
+                       return DESC_TYPE_SMALL_PTRFREE | stored_size;
+               return DESC_TYPE_COMPLEX_PTRFREE;
        }
 
        g_assert (!(stored_size & 0x7));
@@ -152,7 +152,7 @@ mono_gc_make_descr_for_object (gsize *bitmap, int numbits, size_t obj_size)
        if (last_set < BITMAP_NUM_BITS + OBJECT_HEADER_WORDS && stored_size <= SGEN_MAX_SMALL_OBJ_SIZE) {
                desc = DESC_TYPE_BITMAP | ((*bitmap >> OBJECT_HEADER_WORDS) << LOW_TYPE_BITS);
                SGEN_LOG (6, "Largebitmap descriptor %p, size: %zd, last set: %d", (void*)desc, stored_size, last_set);
-               return (void*) desc;
+               return desc;
        }
 
        if (stored_size <= MAX_RUNLEN_OBJECT_SIZE && stored_size <= SGEN_MAX_SMALL_OBJ_SIZE) {
@@ -163,21 +163,21 @@ mono_gc_make_descr_for_object (gsize *bitmap, int numbits, size_t obj_size)
                if (first_set < 256 && num_set < 256 && (first_set + num_set == last_set + 1)) {
                        desc = DESC_TYPE_RUN_LENGTH | stored_size | (first_set << 16) | (num_set << 24);
                        SGEN_LOG (6, "Runlen descriptor %p, size: %zd, first set: %d, num set: %d", (void*)desc, stored_size, first_set, num_set);
-                       return (void*) desc;
+                       return desc;
                }
        }
 
        /* it's a complex object ... */
        desc = DESC_TYPE_COMPLEX | (alloc_complex_descriptor (bitmap, last_set + 1) << LOW_TYPE_BITS);
-       return (void*) desc;
+       return desc;
 }
 
 /* If the array holds references, numbits == 1 and the first bit is set in elem_bitmap */
-void*
+SgenDescriptor
 mono_gc_make_descr_for_array (int vector, gsize *elem_bitmap, int numbits, size_t elem_size)
 {
        int first_set = -1, num_set = 0, last_set = -1, i;
-       mword desc = DESC_TYPE_VECTOR | (vector ? VECTOR_KIND_SZARRAY : VECTOR_KIND_ARRAY);
+       SgenDescriptor desc = DESC_TYPE_VECTOR | (vector ? VECTOR_KIND_SZARRAY : VECTOR_KIND_ARRAY);
        for (i = 0; i < numbits; ++i) {
                if (elem_bitmap [i / GC_BITS_PER_WORD] & ((gsize)1 << (i % GC_BITS_PER_WORD))) {
                        if (first_set < 0)
@@ -189,36 +189,36 @@ mono_gc_make_descr_for_array (int vector, gsize *elem_bitmap, int numbits, size_
 
        if (first_set < 0) {
                if (elem_size <= MAX_ELEMENT_SIZE)
-                       return (void*)(desc | VECTOR_SUBTYPE_PTRFREE | (elem_size << VECTOR_ELSIZE_SHIFT));
-               return (void*)DESC_TYPE_COMPLEX_PTRFREE;
+                       return desc | VECTOR_SUBTYPE_PTRFREE | (elem_size << VECTOR_ELSIZE_SHIFT);
+               return DESC_TYPE_COMPLEX_PTRFREE;
        }
 
        if (elem_size <= MAX_ELEMENT_SIZE) {
                desc |= elem_size << VECTOR_ELSIZE_SHIFT;
                if (!num_set) {
-                       return (void*)(desc | VECTOR_SUBTYPE_PTRFREE);
+                       return desc | VECTOR_SUBTYPE_PTRFREE;
                }
                /* Note: we also handle structs with just ref fields */
                if (num_set * sizeof (gpointer) == elem_size) {
-                       return (void*)(desc | VECTOR_SUBTYPE_REFS | ((gssize)(-1) << 16));
+                       return desc | VECTOR_SUBTYPE_REFS | ((gssize)(-1) << 16);
                }
                /* FIXME: try run-len first */
                /* Note: we can't skip the object header here, because it's not present */
                if (last_set < VECTOR_BITMAP_SIZE) {
-                       return (void*)(desc | VECTOR_SUBTYPE_BITMAP | (*elem_bitmap << 16));
+                       return desc | VECTOR_SUBTYPE_BITMAP | (*elem_bitmap << 16);
                }
        }
        /* it's am array of complex structs ... */
        desc = DESC_TYPE_COMPLEX_ARR;
        desc |= alloc_complex_descriptor (elem_bitmap, last_set + 1) << LOW_TYPE_BITS;
-       return (void*) desc;
+       return desc;
 }
 
 /* Return the bitmap encoded by a descriptor */
 gsize*
-mono_gc_get_bitmap_for_descr (void *descr, int *numbits)
+mono_gc_get_bitmap_for_descr (SgenDescriptor descr, int *numbits)
 {
-       mword d = (mword)descr;
+       SgenDescriptor d = (SgenDescriptor)descr;
        gsize *bitmap;
 
        switch (d & DESC_TYPE_MASK) {
@@ -270,24 +270,24 @@ mono_gc_get_bitmap_for_descr (void *descr, int *numbits)
        }
 }
 
-void*
+SgenDescriptor
 mono_gc_make_descr_from_bitmap (gsize *bitmap, int numbits)
 {
        if (numbits == 0) {
-               return (void*)MAKE_ROOT_DESC (ROOT_DESC_BITMAP, 0);
+               return MAKE_ROOT_DESC (ROOT_DESC_BITMAP, 0);
        } else if (numbits < ((sizeof (*bitmap) * 8) - ROOT_DESC_TYPE_SHIFT)) {
-               return (void*)MAKE_ROOT_DESC (ROOT_DESC_BITMAP, bitmap [0]);
+               return MAKE_ROOT_DESC (ROOT_DESC_BITMAP, bitmap [0]);
        } else {
-               mword complex = alloc_complex_descriptor (bitmap, numbits);
-               return (void*)MAKE_ROOT_DESC (ROOT_DESC_COMPLEX, complex);
+               SgenDescriptor complex = alloc_complex_descriptor (bitmap, numbits);
+               return MAKE_ROOT_DESC (ROOT_DESC_COMPLEX, complex);
        }
 }
 
-void*
+SgenDescriptor
 mono_gc_make_root_descr_all_refs (int numbits)
 {
        gsize *gc_bitmap;
-       void *descr;
+       SgenDescriptor descr;
        int num_bytes = numbits / 8;
 
        if (numbits < 32 && all_ref_root_descrs [numbits])
@@ -310,33 +310,33 @@ mono_gc_make_root_descr_all_refs (int numbits)
        return descr;
 }
 
-void*
+SgenDescriptor
 sgen_make_user_root_descriptor (SgenUserRootMarkFunc marker)
 {
-       void *descr;
+       SgenDescriptor descr;
 
        g_assert (user_descriptors_next < MAX_USER_DESCRIPTORS);
-       descr = (void*)MAKE_ROOT_DESC (ROOT_DESC_USER, (mword)user_descriptors_next);
+       descr = MAKE_ROOT_DESC (ROOT_DESC_USER, (SgenDescriptor)user_descriptors_next);
        user_descriptors [user_descriptors_next ++] = marker;
 
        return descr;
 }
 
 void*
-sgen_get_complex_descriptor_bitmap (mword desc)
+sgen_get_complex_descriptor_bitmap (SgenDescriptor desc)
 {
        return complex_descriptors + (desc >> ROOT_DESC_TYPE_SHIFT);
 }
 
 SgenUserRootMarkFunc
-sgen_get_user_descriptor_func (mword desc)
+sgen_get_user_descriptor_func (SgenDescriptor desc)
 {
        return user_descriptors [desc >> ROOT_DESC_TYPE_SHIFT];
 }
 
 #ifdef HEAVY_STATISTICS
 void
-sgen_descriptor_count_scanned_object (mword desc)
+sgen_descriptor_count_scanned_object (SgenDescriptor desc)
 {
        int type = desc & DESC_TYPE_MASK;
        SGEN_ASSERT (0, type, "Descriptor type can't be zero");
@@ -344,7 +344,7 @@ sgen_descriptor_count_scanned_object (mword desc)
 }
 
 void
-sgen_descriptor_count_copied_object (mword desc)
+sgen_descriptor_count_copied_object (SgenDescriptor desc)
 {
        int type = desc & DESC_TYPE_MASK;
        SGEN_ASSERT (0, type, "Descriptor type can't be zero");
index 1a9d8cc37fe08dab75b868e63d67dd6e19c68486..c61fa5f74d6bda3391e959ce4b0b580a15d0cdf2 100644 (file)
@@ -25,7 +25,6 @@
 
 #include <mono/sgen/sgen-conf.h>
 
-
 /*
  * ######################################################################
  * ########  GC descriptors
@@ -131,24 +130,24 @@ enum {
        ROOT_DESC_TYPE_SHIFT = 3,
 };
 
-typedef void (*SgenUserMarkFunc)     (void **addr, void *gc_data);
+typedef void (*SgenUserMarkFunc)     (GCObject **addr, void *gc_data);
 typedef void (*SgenUserRootMarkFunc) (void *addr, SgenUserMarkFunc mark_func, void *gc_data);
 
-void* sgen_make_user_root_descriptor (SgenUserRootMarkFunc marker);
+SgenDescriptor sgen_make_user_root_descriptor (SgenUserRootMarkFunc marker);
 
-gsize* sgen_get_complex_descriptor (mword desc);
-void* sgen_get_complex_descriptor_bitmap (mword desc);
-SgenUserRootMarkFunc sgen_get_user_descriptor_func (mword desc);
+gsize* sgen_get_complex_descriptor (SgenDescriptor desc);
+void* sgen_get_complex_descriptor_bitmap (SgenDescriptor desc);
+SgenUserRootMarkFunc sgen_get_user_descriptor_func (SgenDescriptor desc);
 
 void sgen_init_descriptors (void);
 
 #ifdef HEAVY_STATISTICS
-void sgen_descriptor_count_scanned_object (mword desc);
-void sgen_descriptor_count_copied_object (mword desc);
+void sgen_descriptor_count_scanned_object (SgenDescriptor desc);
+void sgen_descriptor_count_copied_object (SgenDescriptor desc);
 #endif
 
 static inline gboolean
-sgen_gc_descr_has_references (mword desc)
+sgen_gc_descr_has_references (SgenDescriptor desc)
 {
        /* This covers SMALL_PTRFREE and COMPLEX_PTRFREE */
        if ((desc & DESC_TYPE_PTRFREE_MASK) == DESC_TYPE_PTRFREE_BITS)
@@ -188,7 +187,7 @@ sgen_gc_descr_has_references (mword desc)
                        _objptr += ((desc) >> 16) & 0xff;       \
                        _objptr_end = _objptr + (((desc) >> 24) & 0xff);        \
                        while (_objptr < _objptr_end) { \
-                               HANDLE_PTR (_objptr, (obj));    \
+                               HANDLE_PTR ((GCObject**)_objptr, (obj)); \
                                _objptr++;      \
                        };      \
                }       \
@@ -207,7 +206,7 @@ sgen_gc_descr_has_references (mword desc)
                        int _index = GNUC_BUILTIN_CTZ (_bmap);  \
                        _objptr += _index;                      \
                        _bmap >>= (_index + 1);                 \
-                       HANDLE_PTR (_objptr, (obj));            \
+                       HANDLE_PTR ((GCObject**)_objptr, (obj));        \
                        ++_objptr;                              \
                } while (_bmap);                                \
        } while (0)
@@ -219,7 +218,7 @@ sgen_gc_descr_has_references (mword desc)
                _objptr += OBJECT_HEADER_WORDS; \
                do {    \
                        if ((_bmap & 1)) {      \
-                               HANDLE_PTR (_objptr, (obj));    \
+                               HANDLE_PTR ((GCObject**)_objptr, (obj));        \
                        }       \
                        _bmap >>= 1;    \
                        ++_objptr;      \
@@ -240,7 +239,7 @@ sgen_gc_descr_has_references (mword desc)
                        /*g_print ("bitmap: 0x%x/%d at %p\n", _bmap, bwords, _objptr);*/        \
                        while (_bmap) { \
                                if ((_bmap & 1)) {      \
-                                       HANDLE_PTR (_objptr, (obj));    \
+                                       HANDLE_PTR ((GCObject**)_objptr, (obj));        \
                                }       \
                                _bmap >>= 1;    \
                                ++_objptr;      \
@@ -252,7 +251,7 @@ sgen_gc_descr_has_references (mword desc)
 /* this one is untested */
 #define OBJ_COMPLEX_ARR_FOREACH_PTR(desc,obj)  do {    \
                /* there are pointers */        \
-               GCVTable *vt = (GCVTable*)SGEN_LOAD_VTABLE (obj); \
+               GCVTable vt = SGEN_LOAD_VTABLE (obj); \
                gsize *mbitmap_data = sgen_get_complex_descriptor ((desc)); \
                gsize mbwords = (*mbitmap_data++) - 1;  \
                gsize el_size = sgen_client_array_element_size (vt);    \
@@ -268,7 +267,7 @@ sgen_gc_descr_has_references (mword desc)
                                /*g_print ("bitmap: 0x%x\n", _bmap);*/  \
                                while (_bmap) { \
                                        if ((_bmap & 1)) {      \
-                                               HANDLE_PTR (_objptr, (obj));    \
+                                               HANDLE_PTR ((GCObject**)_objptr, (obj));        \
                                        }       \
                                        _bmap >>= 1;    \
                                        ++_objptr;      \
@@ -290,7 +289,7 @@ sgen_gc_descr_has_references (mword desc)
                                void **end_refs = (void**)((char*)p + el_size * sgen_client_array_length ((GCObject*)(obj)));   \
                                /* Note: this code can handle also arrays of struct with only references in them */     \
                                while (p < end_refs) {  \
-                                       HANDLE_PTR (p, (obj));  \
+                                       HANDLE_PTR ((GCObject**)p, (obj));      \
                                        ++p;    \
                                }       \
                        } else if (etype == DESC_TYPE_V_RUN_LEN << 14) {        \
@@ -303,7 +302,7 @@ sgen_gc_descr_has_references (mword desc)
                                        int i;  \
                                        p += offset;    \
                                        for (i = 0; i < num_refs; ++i) {        \
-                                               HANDLE_PTR (p + i, (obj));      \
+                                               HANDLE_PTR ((GCObject**)p + i, (obj));  \
                                        }       \
                                        e_start += el_size;     \
                                }       \
@@ -316,7 +315,7 @@ sgen_gc_descr_has_references (mword desc)
                                        /* Note: there is no object header here to skip */      \
                                        while (_bmap) { \
                                                if ((_bmap & 1)) {      \
-                                                       HANDLE_PTR (p, (obj));  \
+                                                       HANDLE_PTR ((GCObject**)p, (obj));      \
                                                }       \
                                                _bmap >>= 1;    \
                                                ++p;    \
index 047d9a41169ca2a30675e6e9f947c1498f912daf..a0994b9a1be1c9d03f2fd0285c0713ab514f4e41 100644 (file)
@@ -115,7 +115,7 @@ sgen_collect_bridge_objects (int generation, ScanCopyContext ctx)
        SgenHashTable *hash_table = get_finalize_entry_hash_table (generation);
        GCObject *object;
        gpointer dummy G_GNUC_UNUSED;
-       char *copy;
+       GCObject *copy;
        SgenPointerQueue moved_fin_objects;
 
        sgen_pointer_queue_init (&moved_fin_objects, INTERNAL_MEM_TEMPORARY);
@@ -132,7 +132,7 @@ sgen_collect_bridge_objects (int generation, ScanCopyContext ctx)
                        continue;
 
                /* Object is a bridge object and major heap says it's dead  */
-               if (major_collector.is_object_live ((char*)object))
+               if (major_collector.is_object_live (object))
                        continue;
 
                /* Nursery says the object is dead. */
@@ -142,10 +142,10 @@ sgen_collect_bridge_objects (int generation, ScanCopyContext ctx)
                if (!sgen_client_bridge_is_bridge_object (object))
                        continue;
 
-               copy = (char*)object;
-               copy_func ((void**)&copy, queue);
+               copy = object;
+               copy_func (&copy, queue);
 
-               sgen_client_bridge_register_finalized_object ((GCObject*)copy);
+               sgen_client_bridge_register_finalized_object (copy);
                
                if (hash_table == &minor_finalizable_hash && !ptr_in_nursery (copy)) {
                        /* remove from the list */
@@ -157,7 +157,7 @@ sgen_collect_bridge_objects (int generation, ScanCopyContext ctx)
                        SGEN_LOG (5, "Promoting finalization of object %p (%s) (was at %p) to major table", copy, sgen_client_vtable_get_name (SGEN_LOAD_VTABLE (copy)), object);
 
                        continue;
-               } else if (copy != (char*)object) {
+               } else if (copy != object) {
                        /* update pointer */
                        SGEN_HASH_TABLE_FOREACH_REMOVE (TRUE);
 
@@ -196,10 +196,10 @@ sgen_finalize_in_range (int generation, ScanCopyContext ctx)
        SGEN_HASH_TABLE_FOREACH (hash_table, object, dummy) {
                int tag = tagged_object_get_tag (object);
                object = tagged_object_get_object (object);
-               if (!major_collector.is_object_live ((char*)object)) {
+               if (!major_collector.is_object_live (object)) {
                        gboolean is_fin_ready = sgen_gc_is_object_ready_for_finalization (object);
                        GCObject *copy = object;
-                       copy_func ((void**)&copy, queue);
+                       copy_func (&copy, queue);
                        if (is_fin_ready) {
                                /* remove and put in fin_ready_list */
                                SGEN_HASH_TABLE_FOREACH_REMOVE (TRUE);
@@ -251,12 +251,12 @@ register_for_finalization (GCObject *obj, void *user_data, int generation)
 
        if (user_data) {
                if (sgen_hash_table_replace (hash_table, obj, NULL, NULL)) {
-                       GCVTable *vt = SGEN_LOAD_VTABLE_UNCHECKED (obj);
+                       GCVTable vt = SGEN_LOAD_VTABLE_UNCHECKED (obj);
                        SGEN_LOG (5, "Added finalizer for object: %p (%s) (%d) to %s table", obj, sgen_client_vtable_get_name (vt), hash_table->num_entries, sgen_generation_name (generation));
                }
        } else {
                if (sgen_hash_table_remove (hash_table, obj, NULL)) {
-                       GCVTable *vt = SGEN_LOAD_VTABLE_UNCHECKED (obj);
+                       GCVTable vt = SGEN_LOAD_VTABLE_UNCHECKED (obj);
                        SGEN_LOG (5, "Removed finalizer for object: %p (%s) (%d)", obj, sgen_client_vtable_get_name (vt), hash_table->num_entries);
                }
        }
@@ -672,7 +672,7 @@ sgen_null_link_in_range (int generation, gboolean before_finalization, ScanCopyC
        SgenHashTable *hash = get_dislink_hash_table (generation);
 
        SGEN_HASH_TABLE_FOREACH (hash, link, dummy) {
-               char *object;
+               GCObject *object;
                gboolean track;
 
                /*
@@ -716,8 +716,8 @@ sgen_null_link_in_range (int generation, gboolean before_finalization, ScanCopyC
                                        SGEN_HASH_TABLE_FOREACH_REMOVE (TRUE);
                                        continue;
                                } else {
-                                       char *copy = object;
-                                       copy_func ((void**)&copy, queue);
+                                       GCObject *copy = object;
+                                       copy_func (&copy, queue);
 
                                        /* Update pointer if it's moved.  If the object
                                         * has been moved out of the nursery, we need to
@@ -732,7 +732,7 @@ sgen_null_link_in_range (int generation, gboolean before_finalization, ScanCopyC
 
                                                g_assert (copy);
                                                *link = HIDE_POINTER (copy, track);
-                                               add_or_remove_disappearing_link ((GCObject*)copy, link, GENERATION_OLD);
+                                               add_or_remove_disappearing_link (copy, link, GENERATION_OLD);
                                                binary_protocol_dislink_update (link, copy, track, 0);
 
                                                SGEN_LOG (5, "Upgraded dislink at %p to major because object %p moved to %p", link, object, copy);
index 5d8cb5db3fe62e0a116be9f0b53be5707c67b603..4b1a1ac16169849b72bd9bc8b630e45592caa29f 100644 (file)
@@ -465,7 +465,7 @@ gray_queue_enable_redirect (SgenGrayQueue *queue)
 }
 
 void
-sgen_scan_area_with_callback (char *start, char *end, IterateObjectCallbackFunc callback, void *data, gboolean allow_flags)
+sgen_scan_area_with_callback (char *start, char *end, IterateObjectCallbackFunc callback, void *data, gboolean allow_flags, gboolean fail_on_canaries)
 {
        while (start < end) {
                size_t size;
@@ -484,9 +484,9 @@ sgen_scan_area_with_callback (char *start, char *end, IterateObjectCallbackFunc
                }
 
                if (!sgen_client_object_is_array_fill ((GCObject*)obj)) {
-                       CHECK_CANARY_FOR_OBJECT (obj);
+                       CHECK_CANARY_FOR_OBJECT ((GCObject*)obj, fail_on_canaries);
                        size = ALIGN_UP (safe_object_get_size ((GCObject*)obj));
-                       callback (obj, size, data);
+                       callback ((GCObject*)obj, size, data);
                        CANARIFY_SIZE (size);
                } else {
                        size = ALIGN_UP (safe_object_get_size ((GCObject*)obj));
@@ -554,8 +554,8 @@ sgen_drain_gray_stack (int max_objs, ScanCopyContext ctx)
        do {
                int i;
                for (i = 0; i != max_objs; ++i) {
-                       char *obj;
-                       mword desc;
+                       GCObject *obj;
+                       SgenDescriptor desc;
                        GRAY_OBJECT_DEQUEUE (queue, &obj, &desc);
                        if (!obj)
                                return TRUE;
@@ -594,9 +594,9 @@ pin_objects_from_nursery_pin_queue (gboolean do_scan_objects, ScanCopyContext ct
        sgen_nursery_allocator_prepare_for_pinning ();
 
        while (start < end) {
-               void *obj_to_pin = NULL;
+               GCObject *obj_to_pin = NULL;
                size_t obj_to_pin_size = 0;
-               mword desc;
+               SgenDescriptor desc;
 
                addr = *start;
 
@@ -664,12 +664,12 @@ pin_objects_from_nursery_pin_queue (gboolean do_scan_objects, ScanCopyContext ct
                         * either.
                         */
                        if (!sgen_client_object_is_array_fill ((GCObject*)search_start)) {
-                               CHECK_CANARY_FOR_OBJECT (search_start);
+                               CHECK_CANARY_FOR_OBJECT (search_start, TRUE);
                                CANARIFY_SIZE (canarified_obj_size);
 
                                if (addr >= search_start && (char*)addr < (char*)search_start + obj_size) {
                                        /* This is the object we're looking for. */
-                                       obj_to_pin = search_start;
+                                       obj_to_pin = (GCObject*)search_start;
                                        obj_to_pin_size = canarified_obj_size;
                                        break;
                                }
@@ -695,7 +695,7 @@ pin_objects_from_nursery_pin_queue (gboolean do_scan_objects, ScanCopyContext ct
                 * If this is a dummy array marking the beginning of a nursery
                 * fragment, we don't pin it.
                 */
-               if (sgen_client_object_is_array_fill ((GCObject*)obj_to_pin))
+               if (sgen_client_object_is_array_fill (obj_to_pin))
                        goto next_pin_queue_entry;
 
                /*
@@ -744,7 +744,7 @@ pin_objects_in_nursery (gboolean do_scan_objects, ScanCopyContext ctx)
  * when we can't promote an object because we're out of memory.
  */
 void
-sgen_pin_object (void *object, GrayQueue *queue)
+sgen_pin_object (GCObject *object, GrayQueue *queue)
 {
        /*
         * All pinned objects are assumed to have been staged, so we need to stage as well.
@@ -889,8 +889,8 @@ static void
 unpin_objects_from_queue (SgenGrayQueue *queue)
 {
        for (;;) {
-               char *addr;
-               mword desc;
+               GCObject *addr;
+               SgenDescriptor desc;
                GRAY_OBJECT_DEQUEUE (queue, &addr, &desc);
                if (!addr)
                        break;
@@ -900,7 +900,7 @@ unpin_objects_from_queue (SgenGrayQueue *queue)
 }
 
 static void
-single_arg_user_copy_or_mark (void **obj, void *gc_data)
+single_arg_user_copy_or_mark (GCObject **obj, void *gc_data)
 {
        ScanCopyContext *ctx = gc_data;
        ctx->ops->copy_or_mark_object (obj, ctx->queue);
@@ -915,7 +915,7 @@ single_arg_user_copy_or_mark (void **obj, void *gc_data)
  * This function is not thread-safe!
  */
 static void
-precisely_scan_objects_from (void** start_root, void** end_root, char* n_start, char *n_end, mword desc, ScanCopyContext ctx)
+precisely_scan_objects_from (void** start_root, void** end_root, char* n_start, char *n_end, SgenDescriptor desc, ScanCopyContext ctx)
 {
        CopyOrMarkObjectFunc copy_func = ctx.ops->copy_or_mark_object;
        SgenGrayQueue *queue = ctx.queue;
@@ -925,7 +925,7 @@ precisely_scan_objects_from (void** start_root, void** end_root, char* n_start,
                desc >>= ROOT_DESC_TYPE_SHIFT;
                while (desc) {
                        if ((desc & 1) && *start_root) {
-                               copy_func (start_root, queue);
+                               copy_func ((GCObject**)start_root, queue);
                                SGEN_LOG (9, "Overwrote root at %p with %p", start_root, *start_root);
                        }
                        desc >>= 1;
@@ -942,7 +942,7 @@ precisely_scan_objects_from (void** start_root, void** end_root, char* n_start,
                        void **objptr = start_run;
                        while (bmap) {
                                if ((bmap & 1) && *objptr) {
-                                       copy_func (objptr, queue);
+                                       copy_func ((GCObject**)objptr, queue);
                                        SGEN_LOG (9, "Overwrote root at %p with %p", objptr, *objptr);
                                }
                                bmap >>= 1;
@@ -1045,11 +1045,11 @@ scan_finalizer_entries (SgenPointerQueue *fin_queue, ScanCopyContext ctx)
        size_t i;
 
        for (i = 0; i < fin_queue->next_slot; ++i) {
-               void *obj = fin_queue->data [i];
+               GCObject *obj = fin_queue->data [i];
                if (!obj)
                        continue;
                SGEN_LOG (5, "Scan of fin ready object: %p (%s)\n", obj, sgen_client_vtable_get_name (SGEN_LOAD_VTABLE (obj)));
-               copy_func (&fin_queue->data [i], queue);
+               copy_func ((GCObject**)&fin_queue->data [i], queue);
        }
 }
 
@@ -1672,7 +1672,7 @@ collect_nursery (SgenGrayQueue *unpin_queue, gboolean finish_up_concurrent_mark)
 }
 
 static void
-scan_nursery_objects_callback (char *obj, size_t size, ScanCopyContext *ctx)
+scan_nursery_objects_callback (GCObject *obj, size_t size, ScanCopyContext *ctx)
 {
        /*
         * This is called on all objects in the nursery, including pinned ones, so we need
@@ -1685,7 +1685,7 @@ static void
 scan_nursery_objects (ScanCopyContext ctx)
 {
        sgen_scan_area_with_callback (nursery_section->data, nursery_section->end_data,
-                       (IterateObjectCallbackFunc)scan_nursery_objects_callback, (void*)&ctx, FALSE);
+                       (IterateObjectCallbackFunc)scan_nursery_objects_callback, (void*)&ctx, FALSE, TRUE);
 }
 
 typedef enum {
@@ -1796,8 +1796,8 @@ major_copy_or_mark_from_roots (size_t *old_next_pin_slot, CopyOrMarkFromRootsMod
        SGEN_LOG (6, "Pinning from large objects");
        for (bigobj = los_object_list; bigobj; bigobj = bigobj->next) {
                size_t dummy;
-               if (sgen_find_optimized_pin_queue_area (bigobj->data, (char*)bigobj->data + sgen_los_object_size (bigobj), &dummy, &dummy)) {
-                       binary_protocol_pin (bigobj->data, (gpointer)LOAD_VTABLE (bigobj->data), safe_object_get_size (((GCObject*)(bigobj->data))));
+               if (sgen_find_optimized_pin_queue_area ((char*)bigobj->data, (char*)bigobj->data + sgen_los_object_size (bigobj), &dummy, &dummy)) {
+                       binary_protocol_pin (bigobj->data, (gpointer)LOAD_VTABLE (bigobj->data), safe_object_get_size (bigobj->data));
 
                        if (sgen_los_object_is_pinned (bigobj->data)) {
                                SGEN_ASSERT (0, mode == COPY_OR_MARK_FROM_ROOTS_FINISH_CONCURRENT, "LOS objects can only be pinned here after concurrent marking.");
@@ -1805,8 +1805,8 @@ major_copy_or_mark_from_roots (size_t *old_next_pin_slot, CopyOrMarkFromRootsMod
                        }
                        sgen_los_pin_object (bigobj->data);
                        if (SGEN_OBJECT_HAS_REFERENCES (bigobj->data))
-                               GRAY_OBJECT_ENQUEUE (WORKERS_DISTRIBUTE_GRAY_QUEUE, bigobj->data, sgen_obj_get_descriptor (bigobj->data));
-                       sgen_pin_stats_register_object ((char*) bigobj->data, safe_object_get_size ((GCObject*) bigobj->data));
+                               GRAY_OBJECT_ENQUEUE (WORKERS_DISTRIBUTE_GRAY_QUEUE, bigobj->data, sgen_obj_get_descriptor ((GCObject*)bigobj->data));
+                       sgen_pin_stats_register_object (bigobj->data, safe_object_get_size (bigobj->data));
                        SGEN_LOG (6, "Marked large object %p (%s) size: %lu from roots", bigobj->data,
                                        sgen_client_vtable_get_name (SGEN_LOAD_VTABLE (bigobj->data)),
                                        (unsigned long)sgen_los_object_size (bigobj));
@@ -2468,7 +2468,7 @@ report_internal_mem_usage (void)
  * Return TRUE if @obj is ready to be finalized.
  */
 static inline gboolean
-sgen_is_object_alive (void *object)
+sgen_is_object_alive (GCObject *object)
 {
        if (ptr_in_nursery (object))
                return sgen_nursery_is_object_alive (object);
@@ -2482,7 +2482,7 @@ sgen_is_object_alive (void *object)
  * are never alive during a minor collection.
  */
 static inline int
-sgen_is_object_alive_and_on_current_collection (char *object)
+sgen_is_object_alive_and_on_current_collection (GCObject *object)
 {
        if (ptr_in_nursery (object))
                return sgen_nursery_is_object_alive (object);
@@ -2495,7 +2495,7 @@ sgen_is_object_alive_and_on_current_collection (char *object)
 
 
 gboolean
-sgen_gc_is_object_ready_for_finalization (void *object)
+sgen_gc_is_object_ready_for_finalization (GCObject *object)
 {
        return !sgen_is_object_alive (object);
 }
@@ -2511,7 +2511,7 @@ sgen_queue_finalization_entry (GCObject *obj)
 }
 
 gboolean
-sgen_object_is_live (void *obj)
+sgen_object_is_live (GCObject *obj)
 {
        return sgen_is_object_alive_and_on_current_collection (obj);
 }
@@ -2538,7 +2538,7 @@ sgen_gc_invoke_finalizers (void)
 
        /* FIXME: batch to reduce lock contention */
        while (sgen_have_pending_finalizers ()) {
-               void *obj;
+               GCObject *obj;
 
                LOCK_GC;
 
@@ -2596,7 +2596,7 @@ sgen_have_pending_finalizers (void)
  * We do not coalesce roots.
  */
 int
-sgen_register_root (char *start, size_t size, void *descr, int root_type)
+sgen_register_root (char *start, size_t size, SgenDescriptor descr, int root_type)
 {
        RootRecord new_root;
        int i;
@@ -2607,9 +2607,8 @@ sgen_register_root (char *start, size_t size, void *descr, int root_type)
                if (root) {
                        size_t old_size = root->end_root - start;
                        root->end_root = start + size;
-                       g_assert (((root->root_desc != 0) && (descr != NULL)) ||
-                                         ((root->root_desc == 0) && (descr == NULL)));
-                       root->root_desc = (mword)descr;
+                       SGEN_ASSERT (0, !!root->root_desc == !!descr, "Can't change whether a root is precise or conservative.");
+                       root->root_desc = descr;
                        roots_size += size;
                        roots_size -= old_size;
                        UNLOCK_GC;
@@ -2618,12 +2617,12 @@ sgen_register_root (char *start, size_t size, void *descr, int root_type)
        }
 
        new_root.end_root = start + size;
-       new_root.root_desc = (mword)descr;
+       new_root.root_desc = descr;
 
        sgen_hash_table_replace (&roots_hash [root_type], start, &new_root, NULL);
        roots_size += size;
 
-       SGEN_LOG (3, "Added root for range: %p-%p, descr: %p  (%d/%d bytes)", start, new_root.end_root, descr, (int)size, (int)roots_size);
+       SGEN_LOG (3, "Added root for range: %p-%p, descr: %llx  (%d/%d bytes)", start, new_root.end_root, descr, (int)size, (int)roots_size);
 
        UNLOCK_GC;
        return TRUE;
index 0fb1b3a1065f4296227dc0d5e567f65c785135fa..49fb4c1fac132347f01575b8c0130dfaefe5b8aa 100644 (file)
@@ -41,8 +41,6 @@ typedef struct _SgenThreadInfo SgenThreadInfo;
 #include "mono/utils/atomic.h"
 #include "mono/utils/mono-mutex.h"
 #include "mono/sgen/sgen-conf.h"
-#include "mono/sgen/sgen-descriptor.h"
-#include "mono/sgen/sgen-gray.h"
 #include "mono/sgen/sgen-hash-table.h"
 #include "mono/sgen/sgen-protocol.h"
 
@@ -276,7 +274,7 @@ sgen_get_nursery_end (void)
  * Since we set bits in the vtable, use the macro to load it from the pointer to
  * an object that is potentially pinned.
  */
-#define SGEN_LOAD_VTABLE(obj)          SGEN_POINTER_UNTAG_ALL (SGEN_LOAD_VTABLE_UNCHECKED ((obj)))
+#define SGEN_LOAD_VTABLE(obj)          ((GCVTable)(SGEN_POINTER_UNTAG_ALL (SGEN_LOAD_VTABLE_UNCHECKED ((obj)))))
 
 /*
 List of what each bit on of the vtable gc bits means. 
@@ -287,37 +285,12 @@ enum {
        SGEN_GC_BIT_FINALIZER_AWARE = 4,
 };
 
-/* the runtime can register areas of memory as roots: we keep two lists of roots,
- * a pinned root set for conservatively scanned roots and a normal one for
- * precisely scanned roots (currently implemented as a single list).
- */
-typedef struct _RootRecord RootRecord;
-struct _RootRecord {
-       char *end_root;
-       mword root_desc;
-};
-
-enum {
-       ROOT_TYPE_NORMAL = 0, /* "normal" roots */
-       ROOT_TYPE_PINNED = 1, /* roots without a GC descriptor */
-       ROOT_TYPE_WBARRIER = 2, /* roots with a write barrier */
-       ROOT_TYPE_NUM
-};
-
-extern SgenHashTable roots_hash [ROOT_TYPE_NUM];
-
-int sgen_register_root (char *start, size_t size, void *descr, int root_type);
-void sgen_deregister_root (char* addr);
-
-typedef void (*IterateObjectCallbackFunc) (char*, size_t, void*);
-
 void sgen_gc_init (void);
 
 void sgen_os_init (void);
 
 void sgen_update_heap_boundaries (mword low, mword high);
 
-void sgen_scan_area_with_callback (char *start, char *end, IterateObjectCallbackFunc callback, void *data, gboolean allow_flags);
 void sgen_check_section_scan_starts (GCMemSection *section);
 
 void sgen_conservatively_pin_objects_from (void **start, void **end, void *start_nursery, void *end_nursery, int pin_type);
@@ -384,6 +357,35 @@ void sgen_init_internal_allocator (void);
 #endif
 #undef SGEN_DEFINE_OBJECT_VTABLE
 
+#include "mono/sgen/sgen-descriptor.h"
+#include "mono/sgen/sgen-gray.h"
+
+/* the runtime can register areas of memory as roots: we keep two lists of roots,
+ * a pinned root set for conservatively scanned roots and a normal one for
+ * precisely scanned roots (currently implemented as a single list).
+ */
+typedef struct _RootRecord RootRecord;
+struct _RootRecord {
+       char *end_root;
+       SgenDescriptor root_desc;
+};
+
+enum {
+       ROOT_TYPE_NORMAL = 0, /* "normal" roots */
+       ROOT_TYPE_PINNED = 1, /* roots without a GC descriptor */
+       ROOT_TYPE_WBARRIER = 2, /* roots with a write barrier */
+       ROOT_TYPE_NUM
+};
+
+extern SgenHashTable roots_hash [ROOT_TYPE_NUM];
+
+int sgen_register_root (char *start, size_t size, SgenDescriptor descr, int root_type);
+void sgen_deregister_root (char* addr);
+
+typedef void (*IterateObjectCallbackFunc) (GCObject*, size_t, void*);
+
+void sgen_scan_area_with_callback (char *start, char *end, IterateObjectCallbackFunc callback, void *data, gboolean allow_flags, gboolean fail_on_canaries);
+
 /* eventually share with MonoThread? */
 /*
  * This structure extends the MonoThreadInfo structure.
@@ -406,9 +408,9 @@ struct _SgenThreadInfo {
 
 gboolean sgen_is_worker_thread (MonoNativeThreadId thread);
 
-typedef void (*CopyOrMarkObjectFunc) (void**, SgenGrayQueue*);
-typedef void (*ScanObjectFunc) (char *obj, mword desc, SgenGrayQueue*);
-typedef void (*ScanVTypeFunc) (char *full_object, char *start, mword desc, SgenGrayQueue* BINARY_PROTOCOL_ARG (size_t size));
+typedef void (*CopyOrMarkObjectFunc) (GCObject**, SgenGrayQueue*);
+typedef void (*ScanObjectFunc) (GCObject *obj, SgenDescriptor desc, SgenGrayQueue*);
+typedef void (*ScanVTypeFunc) (GCObject *full_object, char *start, SgenDescriptor desc, SgenGrayQueue* BINARY_PROTOCOL_ARG (size_t size));
 
 typedef struct {
        CopyOrMarkObjectFunc copy_or_mark_object;
@@ -439,8 +441,8 @@ void* sgen_alloc_internal_dynamic (size_t size, int type, gboolean assert_on_fai
 void sgen_free_internal_dynamic (void *addr, size_t size, int type);
 
 void sgen_pin_stats_enable (void);
-void sgen_pin_stats_register_object (char *obj, size_t size);
-void sgen_pin_stats_register_global_remset (char *obj);
+void sgen_pin_stats_register_object (GCObject *obj, size_t size);
+void sgen_pin_stats_register_global_remset (GCObject *obj);
 void sgen_pin_stats_print_class_stats (void);
 
 void sgen_sort_addresses (void **array, size_t size);
@@ -497,9 +499,9 @@ extern char *sgen_space_bitmap;
 extern size_t sgen_space_bitmap_size;
 
 static inline gboolean
-sgen_nursery_is_to_space (char *object)
+sgen_nursery_is_to_space (void *object)
 {
-       size_t idx = (object - sgen_nursery_start) >> SGEN_TO_SPACE_GRANULE_BITS;
+       size_t idx = ((char*)object - sgen_nursery_start) >> SGEN_TO_SPACE_GRANULE_BITS;
        size_t byte = idx >> 3;
        size_t bit = idx & 0x7;
 
@@ -510,13 +512,13 @@ sgen_nursery_is_to_space (char *object)
 }
 
 static inline gboolean
-sgen_nursery_is_from_space (char *object)
+sgen_nursery_is_from_space (void *object)
 {
        return !sgen_nursery_is_to_space (object);
 }
 
 static inline gboolean
-sgen_nursery_is_object_alive (char *obj)
+sgen_nursery_is_object_alive (GCObject *obj)
 {
        /* FIXME put this asserts under a non default level */
        g_assert (sgen_ptr_in_nursery (obj));
@@ -533,7 +535,7 @@ sgen_nursery_is_object_alive (char *obj)
 typedef struct {
        gboolean is_split;
 
-       char* (*alloc_for_promotion) (GCVTable *vtable, char *obj, size_t objsize, gboolean has_references);
+       GCObject* (*alloc_for_promotion) (GCVTable vtable, GCObject *obj, size_t objsize, gboolean has_references);
 
        SgenObjectOperations serial_ops;
 
@@ -558,7 +560,7 @@ void sgen_split_nursery_init (SgenMinorCollector *collector);
 #ifdef SGEN_CHECK_UPDATE_REFERENCE
 gboolean sgen_thread_pool_is_thread_pool_thread (MonoNativeThreadId some_thread) MONO_INTERNAL;
 static inline void
-sgen_update_reference (void **p, void *o, gboolean allow_null)
+sgen_update_reference (GCObject **p, GCObject *o, gboolean allow_null)
 {
        if (!allow_null)
                SGEN_ASSERT (0, o, "Cannot update a reference with a NULL pointer");
@@ -566,10 +568,10 @@ sgen_update_reference (void **p, void *o, gboolean allow_null)
        *p = o;
 }
 
-#define SGEN_UPDATE_REFERENCE_ALLOW_NULL(p,o)  sgen_update_reference ((void**)(p), (void*)(o), TRUE)
-#define SGEN_UPDATE_REFERENCE(p,o)             sgen_update_reference ((void**)(p), (void*)(o), FALSE)
+#define SGEN_UPDATE_REFERENCE_ALLOW_NULL(p,o)  sgen_update_reference ((GCObject**)(p), (GCObject*)(o), TRUE)
+#define SGEN_UPDATE_REFERENCE(p,o)             sgen_update_reference ((GCObject**)(p), (GCObject*)(o), FALSE)
 #else
-#define SGEN_UPDATE_REFERENCE_ALLOW_NULL(p,o)  (*(void**)(p) = (void*)(o))
+#define SGEN_UPDATE_REFERENCE_ALLOW_NULL(p,o)  (*(GCObject**)(p) = (GCObject*)(o))
 #define SGEN_UPDATE_REFERENCE(p,o)             SGEN_UPDATE_REFERENCE_ALLOW_NULL ((p), (o))
 #endif
 
@@ -610,17 +612,17 @@ struct _SgenMajorCollector {
        gboolean *want_synchronous_collection;
 
        void* (*alloc_heap) (mword nursery_size, mword nursery_align, int nursery_bits);
-       gboolean (*is_object_live) (char *obj);
-       void* (*alloc_small_pinned_obj) (GCVTable *vtable, size_t size, gboolean has_references);
-       void* (*alloc_degraded) (GCVTable *vtable, size_t size);
+       gboolean (*is_object_live) (GCObject *obj);
+       GCObject* (*alloc_small_pinned_obj) (GCVTable vtable, size_t size, gboolean has_references);
+       GCObject* (*alloc_degraded) (GCVTable vtable, size_t size);
 
        SgenObjectOperations major_ops_serial;
        SgenObjectOperations major_ops_concurrent_start;
        SgenObjectOperations major_ops_concurrent;
        SgenObjectOperations major_ops_concurrent_finish;
 
-       void* (*alloc_object) (GCVTable *vtable, size_t size, gboolean has_references);
-       void (*free_pinned_object) (char *obj, size_t size);
+       GCObject* (*alloc_object) (GCVTable vtable, size_t size, gboolean has_references);
+       void (*free_pinned_object) (GCObject *obj, size_t size);
 
        /*
         * This is used for domain unloading, heap walking from the logging profiler, and
@@ -628,9 +630,9 @@ struct _SgenMajorCollector {
         */
        void (*iterate_objects) (IterateObjectsFlags flags, IterateObjectCallbackFunc callback, void *data);
 
-       void (*free_non_pinned_object) (char *obj, size_t size);
+       void (*free_non_pinned_object) (GCObject *obj, size_t size);
        void (*pin_objects) (SgenGrayQueue *queue);
-       void (*pin_major_object) (char *obj, SgenGrayQueue *queue);
+       void (*pin_major_object) (GCObject *obj, SgenGrayQueue *queue);
        void (*scan_card_table) (gboolean mod_union, ScanCopyContext ctx);
        void (*iterate_live_block_ranges) (sgen_cardtable_block_callback callback);
        void (*update_cardtable_mod_union) (void);
@@ -648,16 +650,16 @@ struct _SgenMajorCollector {
        void (*finish_major_collection) (ScannedObjectCounts *counts);
        gboolean (*drain_gray_stack) (ScanCopyContext ctx);
        gboolean (*ptr_is_in_non_pinned_space) (char *ptr, char **start);
-       gboolean (*obj_is_from_pinned_alloc) (char *obj);
+       gboolean (*ptr_is_from_pinned_alloc) (char *ptr);
        void (*report_pinned_memory_usage) (void);
        size_t (*get_num_major_sections) (void);
        size_t (*get_bytes_survived_last_sweep) (void);
        gboolean (*handle_gc_param) (const char *opt);
        void (*print_gc_param_usage) (void);
        void (*post_param_init) (SgenMajorCollector *collector);
-       gboolean (*is_valid_object) (char *object);
-       GCVTable* (*describe_pointer) (char *pointer);
-       guint8* (*get_cardtable_mod_union_for_object) (char *object);
+       gboolean (*is_valid_object) (char *ptr);
+       GCVTable (*describe_pointer) (char *pointer);
+       guint8* (*get_cardtable_mod_union_for_reference) (char *object);
        long long (*get_and_reset_num_major_objects_marked) (void);
        void (*count_cards) (long long *num_total_cards, long long *num_marked_cards);
 };
@@ -702,30 +704,33 @@ void mono_gc_wbarrier_generic_store_atomic (gpointer ptr, GCObject *value);
 
 void sgen_wbarrier_value_copy_bitmap (gpointer _dest, gpointer _src, int size, unsigned bitmap);
 
-static inline mword
-sgen_obj_get_descriptor (char *obj)
+static inline SgenDescriptor
+sgen_obj_get_descriptor (GCObject *obj)
 {
-       GCVTable *vtable = SGEN_LOAD_VTABLE_UNCHECKED (obj);
+       GCVTable vtable = SGEN_LOAD_VTABLE_UNCHECKED (obj);
        SGEN_ASSERT (9, !SGEN_POINTER_IS_TAGGED_ANY (vtable), "Object can't be tagged");
        return sgen_vtable_get_descriptor (vtable);
 }
 
-static inline mword
-sgen_obj_get_descriptor_safe (char *obj)
+static inline SgenDescriptor
+sgen_obj_get_descriptor_safe (GCObject *obj)
 {
-       GCVTable *vtable = (GCVTable*)SGEN_LOAD_VTABLE (obj);
+       GCVTable vtable = SGEN_LOAD_VTABLE (obj);
        return sgen_vtable_get_descriptor (vtable);
 }
 
+static mword sgen_client_par_object_get_size (GCVTable vtable, GCObject* o);
+static mword sgen_client_slow_object_get_size (GCVTable vtable, GCObject* o);
+
 static inline mword
 sgen_safe_object_get_size (GCObject *obj)
 {
-       char *forwarded;
+       GCObject *forwarded;
 
        if ((forwarded = SGEN_OBJECT_IS_FORWARDED (obj)))
-               obj = (GCObject*)forwarded;
+               obj = forwarded;
 
-       return sgen_client_par_object_get_size ((GCVTable*)SGEN_LOAD_VTABLE (obj), obj);
+       return sgen_client_par_object_get_size (SGEN_LOAD_VTABLE (obj), obj);
 }
 
 static inline gboolean
@@ -743,13 +748,13 @@ sgen_safe_object_is_small (GCObject *obj, int type)
 static inline guint
 sgen_safe_object_get_size_unaligned (GCObject *obj)
 {
-       char *forwarded;
+       GCObject *forwarded;
 
-       if ((forwarded = SGEN_OBJECT_IS_FORWARDED (obj))) {
-               obj = (GCObject*)forwarded;
-       }
+       if ((forwarded = SGEN_OBJECT_IS_FORWARDED (obj))) {
+               obj = (GCObject*)forwarded;
+       }
 
-       return sgen_client_slow_object_get_size ((GCVTable*)SGEN_LOAD_VTABLE (obj), obj);
+       return sgen_client_slow_object_get_size (SGEN_LOAD_VTABLE (obj), obj);
 }
 
 #ifdef SGEN_CLIENT_HEADER
@@ -758,7 +763,7 @@ sgen_safe_object_get_size_unaligned (GCObject *obj)
 #include "metadata/sgen-client-mono.h"
 #endif
 
-gboolean sgen_object_is_live (void *obj);
+gboolean sgen_object_is_live (GCObject *obj);
 
 void  sgen_init_fin_weak_hash (void);
 
@@ -776,7 +781,7 @@ typedef gboolean (*SgenObjectPredicateFunc) (GCObject *obj, void *user_data);
 
 void sgen_null_links_if (SgenObjectPredicateFunc predicate, void *data, int generation);
 
-gboolean sgen_gc_is_object_ready_for_finalization (void *object);
+gboolean sgen_gc_is_object_ready_for_finalization (GCObject *object);
 void sgen_gc_lock (void);
 void sgen_gc_unlock (void);
 
@@ -805,7 +810,7 @@ enum {
        SPACE_LOS
 };
 
-void sgen_pin_object (void *object, SgenGrayQueue *queue);
+void sgen_pin_object (GCObject *object, SgenGrayQueue *queue);
 void sgen_set_pinned_from_failed_allocation (mword objsize);
 
 void sgen_ensure_free_space (size_t size);
@@ -844,14 +849,14 @@ struct _LOSObject {
 #if SIZEOF_VOID_P < 8
        mword dummy;            /* to align object to sizeof (double) */
 #endif
-       char data [MONO_ZERO_LEN_ARRAY];
+       GCObject data [MONO_ZERO_LEN_ARRAY];
 };
 
 extern LOSObject *los_object_list;
 extern mword los_memory_usage;
 
 void sgen_los_free_object (LOSObject *obj);
-void* sgen_los_alloc_large_inner (GCVTable *vtable, size_t size);
+void* sgen_los_alloc_large_inner (GCVTable vtable, size_t size);
 void sgen_los_sweep (void);
 gboolean sgen_ptr_is_in_los (char *ptr, char **start);
 void sgen_los_iterate_objects (IterateObjectCallbackFunc cb, void *user_data);
@@ -861,10 +866,10 @@ void sgen_los_update_cardtable_mod_union (void);
 void sgen_los_count_cards (long long *num_total_cards, long long *num_marked_cards);
 gboolean sgen_los_is_valid_object (char *object);
 gboolean mono_sgen_los_describe_pointer (char *ptr);
-LOSObject* sgen_los_header_for_object (char *data);
+LOSObject* sgen_los_header_for_object (GCObject *data);
 mword sgen_los_object_size (LOSObject *obj);
-void sgen_los_pin_object (char *obj);
-gboolean sgen_los_object_is_pinned (char *obj);
+void sgen_los_pin_object (GCObject *obj);
+gboolean sgen_los_object_is_pinned (GCObject *obj);
 void sgen_los_mark_mod_union_card (GCObject *mono_obj, void **ptr);
 
 
@@ -886,10 +891,10 @@ void sgen_nursery_retire_region (void *address, ptrdiff_t size);
 void sgen_nursery_alloc_prepare_for_minor (void);
 void sgen_nursery_alloc_prepare_for_major (void);
 
-char* sgen_alloc_for_promotion (char *obj, size_t objsize, gboolean has_references);
+GCObject* sgen_alloc_for_promotion (GCObject *obj, size_t objsize, gboolean has_references);
 
-void* sgen_alloc_obj_nolock (GCVTable *vtable, size_t size);
-void* sgen_try_alloc_obj_nolock (GCVTable *vtable, size_t size);
+GCObject* sgen_alloc_obj_nolock (GCVTable vtable, size_t size);
+GCObject* sgen_try_alloc_obj_nolock (GCVTable vtable, size_t size);
 
 /* Threads */
 
@@ -899,7 +904,7 @@ void sgen_thread_unregister (SgenThreadInfo *p);
 /* Finalization/ephemeron support */
 
 static inline gboolean
-sgen_major_is_object_alive (void *object)
+sgen_major_is_object_alive (GCObject *object)
 {
        mword objsize;
 
@@ -911,7 +916,7 @@ sgen_major_is_object_alive (void *object)
         * FIXME: major_collector.is_object_live() also calculates the
         * size.  Avoid the double calculation.
         */
-       objsize = SGEN_ALIGN_UP (sgen_safe_object_get_size ((GCObject*)object));
+       objsize = SGEN_ALIGN_UP (sgen_safe_object_get_size (object));
        if (objsize > SGEN_MAX_SMALL_OBJ_SIZE)
                return sgen_los_object_is_pinned (object);
 
@@ -923,7 +928,7 @@ sgen_major_is_object_alive (void *object)
  * and we're currently doing a minor collection.
  */
 static inline int
-sgen_is_object_alive_for_current_gen (char *object)
+sgen_is_object_alive_for_current_gen (GCObject *object)
 {
        if (sgen_ptr_in_nursery (object))
                return sgen_nursery_is_object_alive (object);
@@ -975,9 +980,9 @@ typedef enum {
 void sgen_init_tlab_info (SgenThreadInfo* info);
 void sgen_clear_tlabs (void);
 
-void* sgen_alloc_obj (GCVTable *vtable, size_t size);
-void* sgen_alloc_obj_pinned (GCVTable *vtable, size_t size);
-void* sgen_alloc_obj_mature (GCVTable *vtable, size_t size);
+GCObject* sgen_alloc_obj (GCVTable vtable, size_t size);
+GCObject* sgen_alloc_obj_pinned (GCVTable vtable, size_t size);
+GCObject* sgen_alloc_obj_mature (GCVTable vtable, size_t size);
 
 /* Debug support */
 
@@ -990,7 +995,7 @@ void sgen_check_objref (char *obj);
 void sgen_check_heap_marked (gboolean nursery_must_be_pinned);
 void sgen_check_nursery_objects_pinned (gboolean pinned);
 void sgen_check_for_xdomain_refs (void);
-char* sgen_find_object_for_ptr (char *ptr);
+GCObject* sgen_find_object_for_ptr (char *ptr);
 
 void mono_gc_scan_for_specific_ref (GCObject *key, gboolean precise);
 
@@ -1051,13 +1056,16 @@ gboolean nursery_canaries_enabled (void);
 
 #define CANARY_VALID(addr) (strncmp ((char*) (addr), CANARY_STRING, CANARY_SIZE) == 0)
 
-#define CHECK_CANARY_FOR_OBJECT(addr) if (nursery_canaries_enabled ()) {       \
+#define CHECK_CANARY_FOR_OBJECT(addr,fail) if (nursery_canaries_enabled ()) {  \
                                char* canary_ptr = (char*) (addr) + sgen_safe_object_get_size_unaligned ((GCObject *) (addr));  \
                                if (!CANARY_VALID(canary_ptr)) {        \
                                        char canary_copy[CANARY_SIZE +1];       \
                                        strncpy (canary_copy, canary_ptr, CANARY_SIZE); \
                                        canary_copy[CANARY_SIZE] = 0;   \
-                                       g_error ("CORRUPT CANARY:\naddr->%p\ntype->%s\nexcepted->'%s'\nfound->'%s'\n", (char*) addr, sgen_client_vtable_get_name (SGEN_LOAD_VTABLE ((addr))), CANARY_STRING, canary_copy);      \
+                                       if ((fail))                     \
+                                               g_error ("CORRUPT CANARY:\naddr->%p\ntype->%s\nexcepted->'%s'\nfound->'%s'\n", (char*) addr, sgen_client_vtable_get_name (SGEN_LOAD_VTABLE ((addr))), CANARY_STRING, canary_copy); \
+                                       else                            \
+                                               g_warning ("CORRUPT CANARY:\naddr->%p\ntype->%s\nexcepted->'%s'\nfound->'%s'\n", (char*) addr, sgen_client_vtable_get_name (SGEN_LOAD_VTABLE ((addr))), CANARY_STRING, canary_copy); \
                                } }
 
 #endif /* HAVE_SGEN_GC */
index 331484adf31dd7a993f403cf4d16e22898be63fc..fd561d50ff4319174803a13980ab0c18728609f6 100644 (file)
@@ -96,7 +96,7 @@ sgen_gray_object_free_queue_section (GrayQueueSection *section)
  */
 
 void
-sgen_gray_object_enqueue (SgenGrayQueue *queue, char *obj, mword desc)
+sgen_gray_object_enqueue (SgenGrayQueue *queue, GCObject *obj, SgenDescriptor desc)
 {
        GrayQueueEntry entry = SGEN_GRAY_QUEUE_ENTRY (obj, desc);
 
index 966a37736238811dfabbe7f76c95fc16fdcee82d..79d2c701a0e4938ecd873144e72132546cbcae83 100644 (file)
@@ -70,8 +70,8 @@ typedef enum {
 
 typedef struct _GrayQueueEntry GrayQueueEntry;
 struct _GrayQueueEntry {
-       char *obj;
-       mword desc;
+       GCObject *obj;
+       SgenDescriptor desc;
 };
 
 #define SGEN_GRAY_QUEUE_ENTRY(obj,desc)        { (obj), (desc) }
@@ -98,7 +98,7 @@ struct _GrayQueueSection {
 typedef struct _SgenGrayQueue SgenGrayQueue;
 
 typedef void (*GrayQueueAllocPrepareFunc) (SgenGrayQueue*);
-typedef void (*GrayQueueEnqueueCheckFunc) (char*);
+typedef void (*GrayQueueEnqueueCheckFunc) (GCObject*);
 
 struct _SgenGrayQueue {
        GrayQueueEntry *cursor;
@@ -136,7 +136,7 @@ extern guint64 stat_gray_queue_dequeue_slow_path;
 
 void sgen_init_gray_queues (void);
 
-void sgen_gray_object_enqueue (SgenGrayQueue *queue, char *obj, mword desc);
+void sgen_gray_object_enqueue (SgenGrayQueue *queue, GCObject *obj, SgenDescriptor desc);
 GrayQueueEntry sgen_gray_object_dequeue (SgenGrayQueue *queue);
 GrayQueueSection* sgen_gray_object_dequeue_section (SgenGrayQueue *queue);
 void sgen_gray_object_enqueue_section (SgenGrayQueue *queue, GrayQueueSection *section);
@@ -166,7 +166,7 @@ sgen_gray_object_queue_is_empty (SgenGrayQueue *queue)
 }
 
 static inline MONO_ALWAYS_INLINE void
-GRAY_OBJECT_ENQUEUE (SgenGrayQueue *queue, char* obj, mword desc)
+GRAY_OBJECT_ENQUEUE (SgenGrayQueue *queue, GCObject *obj, SgenDescriptor desc)
 {
 #if SGEN_MAX_DEBUG_LEVEL >= 9
        sgen_gray_object_enqueue (queue, obj, desc);
@@ -187,7 +187,7 @@ GRAY_OBJECT_ENQUEUE (SgenGrayQueue *queue, char* obj, mword desc)
 }
 
 static inline MONO_ALWAYS_INLINE void
-GRAY_OBJECT_DEQUEUE (SgenGrayQueue *queue, char** obj, mword *desc)
+GRAY_OBJECT_DEQUEUE (SgenGrayQueue *queue, GCObject** obj, SgenDescriptor *desc)
 {
        GrayQueueEntry entry;
 #if SGEN_MAX_DEBUG_LEVEL >= 9
index dcc742aceda2bd28c781fc89f89eba809670c801..70cf34fb8a9a6e26828a8453f0af92181c063d5b 100644 (file)
@@ -331,7 +331,7 @@ sgen_los_free_object (LOSObject *obj)
  * and we avoid the memcpy overhead.
  */
 void*
-sgen_los_alloc_large_inner (GCVTable *vtable, size_t size)
+sgen_los_alloc_large_inner (GCVTable vtable, size_t size)
 {
        LOSObject *obj = NULL;
        void **vtslot;
@@ -402,7 +402,7 @@ sgen_los_alloc_large_inner (GCVTable *vtable, size_t size)
        return obj->data;
 }
 
-static void sgen_los_unpin_object (char *data);
+static void sgen_los_unpin_object (GCObject *data);
 
 void
 sgen_los_sweep (void)
@@ -418,7 +418,7 @@ sgen_los_sweep (void)
                SGEN_ASSERT (0, !SGEN_OBJECT_IS_PINNED (bigobj->data), "Who pinned a LOS object?");
 
                if (bigobj->cardtable_mod_union) {
-                       sgen_card_table_free_mod_union (bigobj->cardtable_mod_union, bigobj->data, bigobj->size);
+                       sgen_card_table_free_mod_union (bigobj->cardtable_mod_union, (char*)bigobj->data, bigobj->size);
                        bigobj->cardtable_mod_union = NULL;
                }
 
@@ -502,10 +502,10 @@ sgen_ptr_is_in_los (char *ptr, char **start)
 
        *start = NULL;
        for (obj = los_object_list; obj; obj = obj->next) {
-               char *end = obj->data + obj->size;
+               char *end = (char*)obj->data + obj->size;
 
-               if (ptr >= obj->data && ptr < end) {
-                       *start = obj->data;
+               if (ptr >= (char*)obj->data && ptr < end) {
+                       *start = (char*)obj->data;
                        return TRUE;
                }
        }
@@ -527,7 +527,7 @@ sgen_los_is_valid_object (char *object)
        LOSObject *obj;
 
        for (obj = los_object_list; obj; obj = obj->next) {
-               if (obj->data == object)
+               if ((char*)obj->data == object)
                        return TRUE;
        }
        return FALSE;
@@ -543,7 +543,7 @@ mono_sgen_los_describe_pointer (char *ptr)
                mword size;
                gboolean pinned;
 
-               if (obj->data > ptr || obj->data + obj->size <= ptr)
+               if ((char*)obj->data > ptr || (char*)obj->data + obj->size <= ptr)
                        continue;
 
                size = sgen_los_object_size (obj);
@@ -554,11 +554,11 @@ mono_sgen_los_describe_pointer (char *ptr)
                else
                        los_kind = "los-ptr";
 
-               if (obj->data == ptr) {
+               if ((char*)obj->data == ptr) {
                        SGEN_LOG (0, "%s (size %d pin %d)\n", los_kind, (int)size, pinned ? 1 : 0);
                } else {
                        SGEN_LOG (0, "%s (interior-ptr offset %zd size %d pin %d)",
-                                         los_kind, ptr - obj->data, (int)size, pinned ? 1 : 0);
+                                       los_kind, ptr - (char*)obj->data, (int)size, pinned ? 1 : 0);
                }
 
                return TRUE;
@@ -571,7 +571,7 @@ sgen_los_iterate_live_block_ranges (sgen_cardtable_block_callback callback)
 {
        LOSObject *obj;
        for (obj = los_object_list; obj; obj = obj->next) {
-               GCVTable *vt = (GCVTable*)SGEN_LOAD_VTABLE (obj->data);
+               GCVTable vt = SGEN_LOAD_VTABLE (obj->data);
                if (SGEN_VTABLE_HAS_REFERENCES (vt))
                        callback ((mword)obj->data, (mword)obj->size);
        }
@@ -584,13 +584,13 @@ get_cardtable_mod_union_for_object (LOSObject *obj)
        guint8 *other;
        if (mod_union)
                return mod_union;
-       mod_union = sgen_card_table_alloc_mod_union (obj->data, obj->size);
+       mod_union = sgen_card_table_alloc_mod_union ((char*)obj->data, obj->size);
        other = SGEN_CAS_PTR ((gpointer*)&obj->cardtable_mod_union, mod_union, NULL);
        if (!other) {
                SGEN_ASSERT (0, obj->cardtable_mod_union == mod_union, "Why did CAS not replace?");
                return mod_union;
        }
-       sgen_card_table_free_mod_union (mod_union, obj->data, obj->size);
+       sgen_card_table_free_mod_union (mod_union, (char*)obj->data, obj->size);
        return other;
 }
 
@@ -655,7 +655,7 @@ sgen_los_update_cardtable_mod_union (void)
                if (!SGEN_OBJECT_HAS_REFERENCES (obj->data))
                        continue;
                sgen_card_table_update_mod_union (get_cardtable_mod_union_for_object (obj),
-                               obj->data, obj->size, NULL);
+                               (char*)obj->data, obj->size, NULL);
        }
 }
 
@@ -666,32 +666,32 @@ sgen_los_object_size (LOSObject *obj)
 }
 
 LOSObject*
-sgen_los_header_for_object (char *data)
+sgen_los_header_for_object (GCObject *data)
 {
 #if _MSC_VER
-       return (LOSObject*)(data - (int)(&(((LOSObject*)0)->data)));
+       return (LOSObject*)((char*)data - (int)(&(((LOSObject*)0)->data)));
 #else
-       return (LOSObject*)(data - sizeof (LOSObject));
+       return (LOSObject*)((char*)data - sizeof (LOSObject));
 #endif
 }
 
 void
-sgen_los_pin_object (char *data)
+sgen_los_pin_object (GCObject *data)
 {
        LOSObject *obj = sgen_los_header_for_object (data);
        obj->size = obj->size | 1;
-       binary_protocol_pin (data, (gpointer)SGEN_LOAD_VTABLE (data), sgen_safe_object_get_size ((GCObject*)data));
+       binary_protocol_pin (data, (gpointer)SGEN_LOAD_VTABLE (data), sgen_safe_object_get_size (data));
 }
 
 static void
-sgen_los_unpin_object (char *data)
+sgen_los_unpin_object (GCObject *data)
 {
        LOSObject *obj = sgen_los_header_for_object (data);
        obj->size = sgen_los_object_size (obj);
 }
 
 gboolean
-sgen_los_object_is_pinned (char *data)
+sgen_los_object_is_pinned (GCObject *data)
 {
        LOSObject *obj = sgen_los_header_for_object (data);
        return obj->size & 1;
@@ -700,7 +700,7 @@ sgen_los_object_is_pinned (char *data)
 void
 sgen_los_mark_mod_union_card (GCObject *mono_obj, void **ptr)
 {
-       LOSObject *obj = sgen_los_header_for_object ((char*)mono_obj);
+       LOSObject *obj = sgen_los_header_for_object (mono_obj);
        guint8 *mod_union = get_cardtable_mod_union_for_object (obj);
        size_t offset = sgen_card_table_get_card_offset ((char*)ptr, (char*)sgen_card_table_align_pointer ((char*)obj));
        SGEN_ASSERT (0, mod_union, "FIXME: optionally allocate the mod union if it's not here and CAS it in.");
index ebfb2507cb831d2ea523e1b7a83873791fb11707..01d276ad06df9c15d84703b677bf3974505f655b 100644 (file)
@@ -33,7 +33,7 @@
 
 /* Returns whether the object is still in the nursery. */
 static inline MONO_ALWAYS_INLINE gboolean
-COPY_OR_MARK_FUNCTION_NAME (void **ptr, void *obj, SgenGrayQueue *queue)
+COPY_OR_MARK_FUNCTION_NAME (GCObject **ptr, GCObject *obj, SgenGrayQueue *queue)
 {
        MSBlockInfo *block;
 
@@ -41,7 +41,7 @@ COPY_OR_MARK_FUNCTION_NAME (void **ptr, void *obj, SgenGrayQueue *queue)
        ++stat_optimized_copy;
        {
                char *forwarded;
-               mword desc;
+               SgenDescriptor desc;
                if ((forwarded = SGEN_OBJECT_IS_FORWARDED (obj)))
                        desc = sgen_obj_get_descriptor_safe (forwarded);
                else
@@ -56,7 +56,7 @@ COPY_OR_MARK_FUNCTION_NAME (void **ptr, void *obj, SgenGrayQueue *queue)
 
        if (sgen_ptr_in_nursery (obj)) {
                int word, bit;
-               char *forwarded, *old_obj;
+               GCObject *forwarded, *old_obj;
                mword vtable_word = *(mword*)obj;
 
                HEAVY_STAT (++stat_optimized_copy_nursery);
@@ -125,19 +125,19 @@ COPY_OR_MARK_FUNCTION_NAME (void **ptr, void *obj, SgenGrayQueue *queue)
                MS_CALC_MARK_BIT (word, bit, obj);
                SGEN_ASSERT (9, !MS_MARK_BIT (block, word, bit), "object %p already marked", obj);
                MS_SET_MARK_BIT (block, word, bit);
-               binary_protocol_mark (obj, (gpointer)LOAD_VTABLE (obj), sgen_safe_object_get_size ((GCObject*)obj));
+               binary_protocol_mark (obj, (gpointer)LOAD_VTABLE (obj), sgen_safe_object_get_size (obj));
 
                return FALSE;
        } else {
                mword vtable_word = *(mword*)obj;
-               mword desc;
+               SgenDescriptor desc;
                int type;
 
                HEAVY_STAT (++stat_optimized_copy_major);
 
 #ifdef COPY_OR_MARK_WITH_EVACUATION
                {
-                       char *forwarded;
+                       GCObject *forwarded;
                        if ((forwarded = SGEN_VTABLE_IS_FORWARDED (vtable_word))) {
                                HEAVY_STAT (++stat_optimized_copy_major_forwarded);
                                SGEN_UPDATE_REFERENCE (ptr, forwarded);
@@ -149,10 +149,10 @@ COPY_OR_MARK_FUNCTION_NAME (void **ptr, void *obj, SgenGrayQueue *queue)
 
                SGEN_ASSERT (9, !SGEN_VTABLE_IS_PINNED (vtable_word), "Pinned object in non-pinned block?");
 
-               desc = sgen_vtable_get_descriptor ((GCVTable*)vtable_word);
+               desc = sgen_vtable_get_descriptor ((GCVTable)vtable_word);
                type = desc & DESC_TYPE_MASK;
 
-               if (sgen_safe_object_is_small ((GCObject*)obj, type)) {
+               if (sgen_safe_object_is_small (obj, type)) {
 #ifdef HEAVY_STATISTICS
                        if (type <= DESC_TYPE_MAX_SMALL_OBJ)
                                ++stat_optimized_copy_major_small_fast;
@@ -181,7 +181,7 @@ COPY_OR_MARK_FUNCTION_NAME (void **ptr, void *obj, SgenGrayQueue *queue)
 
                        if (sgen_los_object_is_pinned (obj))
                                return FALSE;
-                       binary_protocol_pin (obj, (gpointer)SGEN_LOAD_VTABLE (obj), sgen_safe_object_get_size ((GCObject*)obj));
+                       binary_protocol_pin (obj, (gpointer)SGEN_LOAD_VTABLE (obj), sgen_safe_object_get_size (obj));
 
                        sgen_los_pin_object (obj);
                        if (SGEN_OBJECT_HAS_REFERENCES (obj))
@@ -194,9 +194,9 @@ COPY_OR_MARK_FUNCTION_NAME (void **ptr, void *obj, SgenGrayQueue *queue)
 }
 
 static void
-SCAN_OBJECT_FUNCTION_NAME (char *obj, mword desc, SgenGrayQueue *queue)
+SCAN_OBJECT_FUNCTION_NAME (GCObject *obj, SgenDescriptor desc, SgenGrayQueue *queue)
 {
-       char *start = obj;
+       char *start = (char*)obj;
 
 #ifdef HEAVY_STATISTICS
        ++stat_optimized_major_scan;
@@ -235,8 +235,8 @@ DRAIN_GRAY_STACK_FUNCTION_NAME (ScanCopyContext ctx)
        SGEN_ASSERT (0, ctx.ops->scan_object == major_scan_object_with_evacuation, "Wrong scan function");
 
        for (;;) {
-               char *obj;
-               mword desc;
+               GCObject *obj;
+               SgenDescriptor desc;
 
                HEAVY_STAT (++stat_drain_loops);
 
index bdad9737591db0f42f7c599064e5af6468370fb9..b2061da8ca18b15dce41354c0c054571493bf156 100644 (file)
@@ -34,7 +34,7 @@ extern guint64 stat_scan_object_called_major;
 
 #undef HANDLE_PTR
 #define HANDLE_PTR(ptr,obj)    do {                                    \
-               void *__old = *(ptr);                                   \
+               GCObject *__old = *(ptr);                                       \
                SGEN_OBJECT_LAYOUT_STATISTICS_MARK_BITMAP ((obj), (ptr)); \
                binary_protocol_scan_process_reference ((obj), (ptr), __old); \
                if (__old && !sgen_ptr_in_nursery (__old)) {            \
@@ -42,19 +42,19 @@ extern guint64 stat_scan_object_called_major;
                        major_copy_or_mark_object_concurrent ((ptr), __old, queue); \
                } else {                                                \
                        if (G_UNLIKELY (sgen_ptr_in_nursery (__old) && !sgen_ptr_in_nursery ((ptr)))) \
-                               ADD_TO_GLOBAL_REMSET ((GCObject*)(full_object), (ptr), __old); \
+                               ADD_TO_GLOBAL_REMSET ((full_object), (ptr), __old); \
                }                                                       \
        } while (0)
 
 /* FIXME: Unify this with optimized code in sgen-marksweep.c. */
 
 #undef ADD_TO_GLOBAL_REMSET
-#define ADD_TO_GLOBAL_REMSET(object,ptr,target)        mark_mod_union_card ((object), (ptr))
+#define ADD_TO_GLOBAL_REMSET(object,ptr,target)        mark_mod_union_card ((object), (void**)(ptr))
 
 static void
-major_scan_object_no_mark_concurrent_anywhere (char *full_object, mword desc, SgenGrayQueue *queue)
+major_scan_object_no_mark_concurrent_anywhere (GCObject *full_object, SgenDescriptor desc, SgenGrayQueue *queue)
 {
-       char *start = full_object;
+       char *start = (char*)full_object;
 
        SGEN_OBJECT_LAYOUT_STATISTICS_DECLARE_BITMAP;
 
@@ -73,13 +73,13 @@ major_scan_object_no_mark_concurrent_anywhere (char *full_object, mword desc, Sg
 }
 
 static void
-major_scan_object_no_mark_concurrent_start (char *start, mword desc, SgenGrayQueue *queue)
+major_scan_object_no_mark_concurrent_start (GCObject *start, SgenDescriptor desc, SgenGrayQueue *queue)
 {
        major_scan_object_no_mark_concurrent_anywhere (start, desc, queue);
 }
 
 static void
-major_scan_object_no_mark_concurrent (char *start, mword desc, SgenGrayQueue *queue)
+major_scan_object_no_mark_concurrent (GCObject *start, SgenDescriptor desc, SgenGrayQueue *queue)
 {
        SGEN_ASSERT (0, !sgen_ptr_in_nursery (start), "Why are we scanning nursery objects in the concurrent collector?");
        major_scan_object_no_mark_concurrent_anywhere (start, desc, queue);
@@ -89,7 +89,7 @@ major_scan_object_no_mark_concurrent (char *start, mword desc, SgenGrayQueue *qu
 #define ADD_TO_GLOBAL_REMSET(object,ptr,target)        sgen_add_to_global_remset ((ptr), (target))
 
 static void
-major_scan_vtype_concurrent_finish (char *full_object, char *start, mword desc, SgenGrayQueue *queue BINARY_PROTOCOL_ARG (size_t size))
+major_scan_vtype_concurrent_finish (GCObject *full_object, char *start, SgenDescriptor desc, SgenGrayQueue *queue BINARY_PROTOCOL_ARG (size_t size))
 {
        SGEN_OBJECT_LAYOUT_STATISTICS_DECLARE_BITMAP;
 
index 8ad7c5a147d6c02448ebfe617ea2a6e98492d999..fe3ab1a1742b5bc311b41e7cb65aca8a7d3ad471 100644 (file)
@@ -121,7 +121,7 @@ struct _MSBlockInfo {
 
 #define MS_BLOCK_FOR_BLOCK_INFO(b)     ((char*)(b))
 
-#define MS_BLOCK_OBJ(b,i)              (MS_BLOCK_FOR_BLOCK_INFO(b) + MS_BLOCK_SKIP + (b)->obj_size * (i))
+#define MS_BLOCK_OBJ(b,i)              ((void*)(MS_BLOCK_FOR_BLOCK_INFO(b) + MS_BLOCK_SKIP + (b)->obj_size * (i)))
 #define MS_BLOCK_OBJ_FOR_SIZE(b,i,obj_size)            (MS_BLOCK_FOR_BLOCK_INFO(b) + MS_BLOCK_SKIP + (obj_size) * (i))
 #define MS_BLOCK_DATA_FOR_OBJ(o)       ((char*)((mword)(o) & ~(mword)(MS_BLOCK_SIZE - 1)))
 
@@ -573,7 +573,7 @@ ms_alloc_block (int size_index, gboolean pinned, gboolean has_references)
 }
 
 static gboolean
-obj_is_from_pinned_alloc (char *ptr)
+ptr_is_from_pinned_alloc (char *ptr)
 {
        MSBlockInfo *block;
 
@@ -642,8 +642,8 @@ unlink_slot_from_free_list_uncontested (MSBlockInfo * volatile *free_blocks, int
        return obj;
 }
 
-static void*
-alloc_obj (GCVTable *vtable, size_t size, gboolean pinned, gboolean has_references)
+static GCObject*
+alloc_obj (GCVTable vtable, size_t size, gboolean pinned, gboolean has_references)
 {
        int size_index = MS_BLOCK_OBJ_SIZE_INDEX (size);
        MSBlockInfo * volatile * free_blocks = FREE_BLOCKS (pinned, has_references);
@@ -656,13 +656,14 @@ alloc_obj (GCVTable *vtable, size_t size, gboolean pinned, gboolean has_referenc
 
        obj = unlink_slot_from_free_list_uncontested (free_blocks, size_index);
 
-       *(GCVTable**)obj = vtable;
+       /* FIXME: assumes object layout */
+       *(GCVTable*)obj = vtable;
 
        return obj;
 }
 
-static void*
-major_alloc_object (GCVTable *vtable, size_t size, gboolean has_references)
+static GCObject*
+major_alloc_object (GCVTable vtable, size_t size, gboolean has_references)
 {
        return alloc_obj (vtable, size, FALSE, has_references);
 }
@@ -675,7 +676,7 @@ major_alloc_object (GCVTable *vtable, size_t size, gboolean has_references)
  * single thread and has the GC lock, so we don't need an extra lock.
  */
 static void
-free_object (char *obj, size_t size, gboolean pinned)
+free_object (GCObject *obj, size_t size, gboolean pinned)
 {
        MSBlockInfo *block = MS_BLOCK_FOR_OBJ (obj);
        int word, bit;
@@ -704,14 +705,14 @@ free_object (char *obj, size_t size, gboolean pinned)
 }
 
 static void
-major_free_non_pinned_object (char *obj, size_t size)
+major_free_non_pinned_object (GCObject *obj, size_t size)
 {
        free_object (obj, size, FALSE);
 }
 
 /* size is a multiple of SGEN_ALLOC_ALIGN */
-static void*
-major_alloc_small_pinned_obj (GCVTable *vtable, size_t size, gboolean has_references)
+static GCObject*
+major_alloc_small_pinned_obj (GCVTable vtable, size_t size, gboolean has_references)
 {
        void *res;
 
@@ -727,7 +728,7 @@ major_alloc_small_pinned_obj (GCVTable *vtable, size_t size, gboolean has_refere
 }
 
 static void
-free_pinned_object (char *obj, size_t size)
+free_pinned_object (GCObject *obj, size_t size)
 {
        free_object (obj, size, TRUE);
 }
@@ -735,10 +736,10 @@ free_pinned_object (char *obj, size_t size)
 /*
  * size is already rounded up and we hold the GC lock.
  */
-static void*
-major_alloc_degraded (GCVTable *vtable, size_t size)
+static GCObject*
+major_alloc_degraded (GCVTable vtable, size_t size)
 {
-       void *obj = alloc_obj (vtable, size, FALSE, SGEN_VTABLE_HAS_REFERENCES (vtable));
+       GCObject *obj = alloc_obj (vtable, size, FALSE, SGEN_VTABLE_HAS_REFERENCES (vtable));
        if (G_LIKELY (obj)) {
                HEAVY_STAT (++stat_objects_alloced_degraded);
                HEAVY_STAT (stat_bytes_alloced_degraded += size);
@@ -752,7 +753,7 @@ major_alloc_degraded (GCVTable *vtable, size_t size)
  * been marked or copied.
  */
 static gboolean
-major_is_object_live (char *obj)
+major_is_object_live (GCObject *obj)
 {
        MSBlockInfo *block;
        int word, bit;
@@ -761,7 +762,7 @@ major_is_object_live (char *obj)
        if (sgen_ptr_in_nursery (obj))
                return FALSE;
 
-       objsize = SGEN_ALIGN_UP (sgen_safe_object_get_size ((GCObject*)obj));
+       objsize = SGEN_ALIGN_UP (sgen_safe_object_get_size (obj));
 
        /* LOS */
        if (objsize > SGEN_MAX_SMALL_OBJ_SIZE)
@@ -786,7 +787,7 @@ major_ptr_is_in_non_pinned_space (char *ptr, char **start)
 
                        *start = NULL;
                        for (i = 0; i <= count; ++i) {
-                               if (ptr >= MS_BLOCK_OBJ (block, i) && ptr < MS_BLOCK_OBJ (block, i + 1)) {
+                               if (ptr >= (char*)MS_BLOCK_OBJ (block, i) && ptr < (char*)MS_BLOCK_OBJ (block, i + 1)) {
                                        *start = MS_BLOCK_OBJ (block, i);
                                        break;
                                }
@@ -896,7 +897,7 @@ major_iterate_objects (IterateObjectsFlags flags, IterateObjectCallbackFunc call
                                        continue;
                        }
                        if (MS_OBJ_ALLOCED (obj, block))
-                               callback ((char*)obj, block->obj_size, data);
+                               callback ((GCObject*)obj, block->obj_size, data);
                }
        } END_FOREACH_BLOCK_NO_LOCK;
 }
@@ -924,7 +925,7 @@ major_is_valid_object (char *object)
 }
 
 
-static GCVTable*
+static GCVTable
 major_describe_pointer (char *ptr)
 {
        MSBlockInfo *block;
@@ -933,7 +934,7 @@ major_describe_pointer (char *ptr)
                int idx;
                char *obj;
                gboolean live;
-               GCVTable *vtable;
+               GCVTable vtable;
                int w, b;
                gboolean marked;
 
@@ -946,7 +947,7 @@ major_describe_pointer (char *ptr)
                idx = MS_BLOCK_OBJ_INDEX (ptr, block);
                obj = (char*)MS_BLOCK_OBJ (block, idx);
                live = MS_OBJ_ALLOCED (obj, block);
-               vtable = live ? (GCVTable*)SGEN_LOAD_VTABLE (obj) : NULL;
+               vtable = live ? SGEN_LOAD_VTABLE ((GCObject*)obj) : NULL;
 
                MS_CALC_MARK_BIT (w, b, obj);
                marked = MS_MARK_BIT (block, w, b);
@@ -1064,7 +1065,7 @@ major_get_cardtable_mod_union_for_reference (char *ptr)
 static void
 mark_mod_union_card (GCObject *obj, void **ptr)
 {
-       int type = sgen_obj_get_descriptor ((char*)obj) & DESC_TYPE_MASK;
+       int type = sgen_obj_get_descriptor (obj) & DESC_TYPE_MASK;
        if (sgen_safe_object_is_small (obj, type)) {
                guint8 *card_byte = major_get_cardtable_mod_union_for_reference ((char*)ptr);
                SGEN_ASSERT (0, MS_BLOCK_FOR_OBJ (obj) == MS_BLOCK_FOR_OBJ (ptr), "How can an object and a reference inside it not be in the same block?");
@@ -1083,7 +1084,7 @@ mark_mod_union_card (GCObject *obj, void **ptr)
                        MS_SET_MARK_BIT ((block), __word, __bit);       \
                        if (sgen_gc_descr_has_references (desc))                        \
                                GRAY_OBJECT_ENQUEUE ((queue), (obj), (desc)); \
-                       binary_protocol_mark ((obj), (gpointer)LOAD_VTABLE ((obj)), sgen_safe_object_get_size ((GCObject*)(obj))); \
+                       binary_protocol_mark ((obj), (gpointer)LOAD_VTABLE ((obj)), sgen_safe_object_get_size ((obj))); \
                        INC_NUM_MAJOR_OBJECTS_MARKED ();                \
                }                                                       \
        } while (0)
@@ -1095,13 +1096,13 @@ mark_mod_union_card (GCObject *obj, void **ptr)
                        MS_SET_MARK_BIT ((block), __word, __bit);       \
                        if (sgen_gc_descr_has_references (desc))                        \
                                GRAY_OBJECT_ENQUEUE ((queue), (obj), (desc)); \
-                       binary_protocol_mark ((obj), (gpointer)LOAD_VTABLE ((obj)), sgen_safe_object_get_size ((GCObject*)(obj))); \
+                       binary_protocol_mark ((obj), (gpointer)LOAD_VTABLE ((obj)), sgen_safe_object_get_size ((obj))); \
                        INC_NUM_MAJOR_OBJECTS_MARKED ();                \
                }                                                       \
        } while (0)
 
 static void
-pin_major_object (char *obj, SgenGrayQueue *queue)
+pin_major_object (GCObject *obj, SgenGrayQueue *queue)
 {
        MSBlockInfo *block;
 
@@ -1116,7 +1117,7 @@ pin_major_object (char *obj, SgenGrayQueue *queue)
 #include "sgen-major-copy-object.h"
 
 static void
-major_copy_or_mark_object_concurrent (void **ptr, void *obj, SgenGrayQueue *queue)
+major_copy_or_mark_object_concurrent (GCObject **ptr, GCObject *obj, SgenGrayQueue *queue)
 {
        SGEN_ASSERT (9, sgen_concurrent_collection_in_progress (), "Why are we scanning concurrently when there's no concurrent collection on?");
        SGEN_ASSERT (9, !sgen_workers_are_working () || sgen_thread_pool_is_thread_pool_thread (mono_native_thread_id_get ()), "We must not scan from two threads at the same time!");
@@ -1126,7 +1127,7 @@ major_copy_or_mark_object_concurrent (void **ptr, void *obj, SgenGrayQueue *queu
        if (!sgen_ptr_in_nursery (obj)) {
                mword objsize;
 
-               objsize = SGEN_ALIGN_UP (sgen_safe_object_get_size ((GCObject*)obj));
+               objsize = SGEN_ALIGN_UP (sgen_safe_object_get_size (obj));
 
                if (objsize <= SGEN_MAX_SMALL_OBJ_SIZE) {
                        MSBlockInfo *block = MS_BLOCK_FOR_OBJ (obj);
@@ -1191,7 +1192,7 @@ static guint64 stat_drain_prefetch_fill_failures;
 static guint64 stat_drain_loops;
 #endif
 
-static void major_scan_object_with_evacuation (char *start, mword desc, SgenGrayQueue *queue);
+static void major_scan_object_with_evacuation (GCObject *start, mword desc, SgenGrayQueue *queue);
 
 #define COPY_OR_MARK_FUNCTION_NAME     major_copy_or_mark_object_no_evacuation
 #define SCAN_OBJECT_FUNCTION_NAME      major_scan_object_no_evacuation
@@ -1225,19 +1226,19 @@ drain_gray_stack (ScanCopyContext ctx)
 #include "sgen-marksweep-scan-object-concurrent.h"
 
 static void
-major_copy_or_mark_object_canonical (void **ptr, SgenGrayQueue *queue)
+major_copy_or_mark_object_canonical (GCObject **ptr, SgenGrayQueue *queue)
 {
        major_copy_or_mark_object_with_evacuation (ptr, *ptr, queue);
 }
 
 static void
-major_copy_or_mark_object_concurrent_canonical (void **ptr, SgenGrayQueue *queue)
+major_copy_or_mark_object_concurrent_canonical (GCObject **ptr, SgenGrayQueue *queue)
 {
        major_copy_or_mark_object_concurrent (ptr, *ptr, queue);
 }
 
 static void
-major_copy_or_mark_object_concurrent_finish_canonical (void **ptr, SgenGrayQueue *queue)
+major_copy_or_mark_object_concurrent_finish_canonical (GCObject **ptr, SgenGrayQueue *queue)
 {
        major_copy_or_mark_object_no_evacuation (ptr, *ptr, queue);
 }
@@ -1258,7 +1259,7 @@ mark_pinned_objects_in_block (MSBlockInfo *block, size_t first_entry, size_t las
 
        for (; entry < end; ++entry) {
                int index = MS_BLOCK_OBJ_INDEX (*entry, block);
-               char *obj;
+               GCObject *obj;
                SGEN_ASSERT (9, index >= 0 && index < MS_BLOCK_FREE / block->obj_size, "invalid object %p index %d max-index %d", *entry, index, (int)(MS_BLOCK_FREE / block->obj_size));
                if (index == last_index)
                        continue;
@@ -1688,9 +1689,9 @@ static int count_nonpinned_ref;
 static int count_nonpinned_nonref;
 
 static void
-count_nonpinned_callback (char *obj, size_t size, void *data)
+count_nonpinned_callback (GCObject *obj, size_t size, void *data)
 {
-       GCVTable *vtable = (GCVTable*)LOAD_VTABLE (obj);
+       GCVTable vtable = LOAD_VTABLE (obj);
 
        if (SGEN_VTABLE_HAS_REFERENCES (vtable))
                ++count_nonpinned_ref;
@@ -1699,9 +1700,9 @@ count_nonpinned_callback (char *obj, size_t size, void *data)
 }
 
 static void
-count_pinned_callback (char *obj, size_t size, void *data)
+count_pinned_callback (GCObject *obj, size_t size, void *data)
 {
-       GCVTable *vtable = (GCVTable*)LOAD_VTABLE (obj);
+       GCVTable vtable = LOAD_VTABLE (obj);
 
        if (SGEN_VTABLE_HAS_REFERENCES (vtable))
                ++count_pinned_ref;
@@ -2282,12 +2283,14 @@ scan_card_table_for_block (MSBlockInfo *block, gboolean mod_union, ScanCopyConte
                                        goto next_object;
                        }
 
+                       GCObject *object = (GCObject*)obj;
+
                        if (small_objects) {
                                HEAVY_STAT (++scanned_objects);
-                               scan_func (obj, sgen_obj_get_descriptor (obj), queue);
+                               scan_func (object, sgen_obj_get_descriptor (object), queue);
                        } else {
                                size_t offset = sgen_card_table_get_card_offset (obj, block_start);
-                               sgen_cardtable_scan_object (obj, block_obj_size, card_base + offset, mod_union, ctx);
+                               sgen_cardtable_scan_object (object, block_obj_size, card_base + offset, mod_union, ctx);
                        }
                next_object:
                        obj += block_obj_size;
@@ -2458,10 +2461,10 @@ sgen_marksweep_init_internal (SgenMajorCollector *collector, gboolean is_concurr
        collector->pin_objects = major_pin_objects;
        collector->pin_major_object = pin_major_object;
        collector->scan_card_table = major_scan_card_table;
-       collector->iterate_live_block_ranges = (void*)(void*) major_iterate_live_block_ranges;
+       collector->iterate_live_block_ranges = major_iterate_live_block_ranges;
        if (is_concurrent) {
                collector->update_cardtable_mod_union = update_cardtable_mod_union;
-               collector->get_cardtable_mod_union_for_object = major_get_cardtable_mod_union_for_reference;
+               collector->get_cardtable_mod_union_for_reference = major_get_cardtable_mod_union_for_reference;
        }
        collector->init_to_space = major_init_to_space;
        collector->sweep = major_sweep;
@@ -2476,7 +2479,7 @@ sgen_marksweep_init_internal (SgenMajorCollector *collector, gboolean is_concurr
        collector->start_major_collection = major_start_major_collection;
        collector->finish_major_collection = major_finish_major_collection;
        collector->ptr_is_in_non_pinned_space = major_ptr_is_in_non_pinned_space;
-       collector->obj_is_from_pinned_alloc = obj_is_from_pinned_alloc;
+       collector->ptr_is_from_pinned_alloc = ptr_is_from_pinned_alloc;
        collector->report_pinned_memory_usage = major_report_pinned_memory_usage;
        collector->get_num_major_sections = get_num_major_sections;
        collector->get_bytes_survived_last_sweep = get_bytes_survived_last_sweep;
index e32321885d5095bdfe47a7967e4ab0aac5199856..49b42265c7a7d4076c214b5c80f55a8634e248af 100644 (file)
@@ -47,11 +47,11 @@ extern guint64 stat_nursery_copy_object_failed_to_space; /* from sgen-gc.c */
  */
 
 static MONO_ALWAYS_INLINE void
-SERIAL_COPY_OBJECT (void **obj_slot, SgenGrayQueue *queue) 
+SERIAL_COPY_OBJECT (GCObject **obj_slot, SgenGrayQueue *queue) 
 {
-       char *forwarded;
-       char *copy;
-       char *obj = *obj_slot;
+       GCObject *forwarded;
+       GCObject *copy;
+       GCObject *obj = *obj_slot;
 
        SGEN_ASSERT (9, current_collection_generation == GENERATION_NURSERY, "calling minor-serial-copy from a %d generation collection", current_collection_generation);
 
@@ -78,7 +78,7 @@ SERIAL_COPY_OBJECT (void **obj_slot, SgenGrayQueue *queue)
                return;
        }
        if (G_UNLIKELY (SGEN_OBJECT_IS_PINNED (obj))) {
-               SGEN_ASSERT (9, sgen_vtable_get_descriptor ((GCVTable*)SGEN_LOAD_VTABLE(obj)), "pinned object %p has no gc descriptor", obj);
+               SGEN_ASSERT (9, sgen_vtable_get_descriptor (SGEN_LOAD_VTABLE(obj)), "pinned object %p has no gc descriptor", obj);
                SGEN_LOG (9, " (pinned, no change)");
                HEAVY_STAT (++stat_nursery_copy_object_failed_pinned);
                return;
@@ -86,7 +86,7 @@ SERIAL_COPY_OBJECT (void **obj_slot, SgenGrayQueue *queue)
 
 #ifndef SGEN_SIMPLE_NURSERY
        if (sgen_nursery_is_to_space (obj)) {
-               SGEN_ASSERT (9, sgen_vtable_get_descriptor ((GCVTable*)SGEN_LOAD_VTABLE(obj)), "to space object %p has no gc descriptor", obj);
+               SGEN_ASSERT (9, sgen_vtable_get_descriptor (SGEN_LOAD_VTABLE(obj)), "to space object %p has no gc descriptor", obj);
                SGEN_LOG (9, " (tospace, no change)");
                HEAVY_STAT (++stat_nursery_copy_object_failed_to_space);                
                return;
@@ -105,11 +105,11 @@ SERIAL_COPY_OBJECT (void **obj_slot, SgenGrayQueue *queue)
  *   Similar to SERIAL_COPY_OBJECT, but assumes that OBJ_SLOT is part of an object, so it handles global remsets as well.
  */
 static MONO_ALWAYS_INLINE void
-SERIAL_COPY_OBJECT_FROM_OBJ (void **obj_slot, SgenGrayQueue *queue) 
+SERIAL_COPY_OBJECT_FROM_OBJ (GCObject **obj_slot, SgenGrayQueue *queue)
 {
-       char *forwarded;
-       char *obj = *obj_slot;
-       void *copy;
+       GCObject *forwarded;
+       GCObject *obj = *obj_slot;
+       GCObject *copy;
 
        SGEN_ASSERT (9, current_collection_generation == GENERATION_NURSERY, "calling minor-serial-copy-from-obj from a %d generation collection", current_collection_generation);
 
@@ -140,7 +140,7 @@ SERIAL_COPY_OBJECT_FROM_OBJ (void **obj_slot, SgenGrayQueue *queue)
                return;
        }
        if (G_UNLIKELY (SGEN_OBJECT_IS_PINNED (obj))) {
-               SGEN_ASSERT (9, sgen_vtable_get_descriptor ((GCVTable*)SGEN_LOAD_VTABLE(obj)), "pinned object %p has no gc descriptor", obj);
+               SGEN_ASSERT (9, sgen_vtable_get_descriptor (SGEN_LOAD_VTABLE(obj)), "pinned object %p has no gc descriptor", obj);
                SGEN_LOG (9, " (pinned, no change)");
                HEAVY_STAT (++stat_nursery_copy_object_failed_pinned);
                if (!sgen_ptr_in_nursery (obj_slot) && !SGEN_OBJECT_IS_CEMENTED (obj))
@@ -151,7 +151,7 @@ SERIAL_COPY_OBJECT_FROM_OBJ (void **obj_slot, SgenGrayQueue *queue)
 #ifndef SGEN_SIMPLE_NURSERY
        if (sgen_nursery_is_to_space (obj)) {
                /* FIXME: all of these could just use `sgen_obj_get_descriptor_safe()` */
-               SGEN_ASSERT (9, sgen_vtable_get_descriptor ((GCVTable*)SGEN_LOAD_VTABLE(obj)), "to space object %p has no gc descriptor", obj);
+               SGEN_ASSERT (9, sgen_vtable_get_descriptor (SGEN_LOAD_VTABLE(obj)), "to space object %p has no gc descriptor", obj);
                SGEN_LOG (9, " (tospace, no change)");
                HEAVY_STAT (++stat_nursery_copy_object_failed_to_space);                
 
index efe782f058adebd085446a35a2c2e94d64cc527a..cda7746a44d8667b4403ae0f59a839b5d24df49c 100644 (file)
@@ -46,8 +46,10 @@ extern guint64 stat_scan_object_called_nursery;
        } while (0)
 
 static void
-SERIAL_SCAN_OBJECT (char *start, mword desc, SgenGrayQueue *queue)
+SERIAL_SCAN_OBJECT (GCObject *object, SgenDescriptor desc, SgenGrayQueue *queue)
 {
+       char *start = (char*)object;
+
        SGEN_OBJECT_LAYOUT_STATISTICS_DECLARE_BITMAP;
 
 #ifdef HEAVY_STATISTICS
@@ -64,7 +66,7 @@ SERIAL_SCAN_OBJECT (char *start, mword desc, SgenGrayQueue *queue)
 }
 
 static void
-SERIAL_SCAN_VTYPE (char *full_object, char *start, mword desc, SgenGrayQueue *queue BINARY_PROTOCOL_ARG (size_t size))
+SERIAL_SCAN_VTYPE (GCObject *full_object, char *start, SgenDescriptor desc, SgenGrayQueue *queue BINARY_PROTOCOL_ARG (size_t size))
 {
        SGEN_OBJECT_LAYOUT_STATISTICS_DECLARE_BITMAP;
 
index e680cefa5a1b12db84925da0290675b817c50e28..dc6152c77e77b854cde2b55053d4edf837c4062d 100644 (file)
@@ -753,7 +753,7 @@ sgen_build_nursery_fragments (GCMemSection *nursery_section, SgenGrayQueue *unpi
 
                if (addr0 < addr1) {
                        if (unpin_queue)
-                               GRAY_OBJECT_ENQUEUE (unpin_queue, addr0, sgen_obj_get_descriptor_safe (addr0));
+                               GRAY_OBJECT_ENQUEUE (unpin_queue, (GCObject*)addr0, sgen_obj_get_descriptor_safe ((GCObject*)addr0));
                        else
                                SGEN_UNPIN_OBJECT (addr0);
                        size = SGEN_ALIGN_UP (sgen_safe_object_get_size ((GCObject*)addr0));
index df25033acb88c785a67d92623bbe709de21093a3..546f895583c44cb8017e67bee75ff895160a19f7 100644 (file)
@@ -116,8 +116,9 @@ sgen_pin_stats_register_address (char *addr, int pin_type)
 }
 
 static void
-pin_stats_count_object_from_tree (char *obj, size_t size, PinStatAddress *node, int *pin_types)
+pin_stats_count_object_from_tree (GCObject *object, size_t size, PinStatAddress *node, int *pin_types)
 {
+       char *obj = (char*)object;
        if (!node)
                return;
        if (node->addr >= obj && node->addr < obj + size) {
@@ -131,13 +132,13 @@ pin_stats_count_object_from_tree (char *obj, size_t size, PinStatAddress *node,
                }
        }
        if (obj < node->addr)
-               pin_stats_count_object_from_tree (obj, size, node->left, pin_types);
+               pin_stats_count_object_from_tree (object, size, node->left, pin_types);
        if (obj + size - 1 > node->addr)
-               pin_stats_count_object_from_tree (obj, size, node->right, pin_types);
+               pin_stats_count_object_from_tree (object, size, node->right, pin_types);
 }
 
 static gpointer
-lookup_vtable_entry (SgenHashTable *hash_table, GCVTable *vtable, gpointer empty_entry)
+lookup_vtable_entry (SgenHashTable *hash_table, GCVTable vtable, gpointer empty_entry)
 {
        char *name = g_strdup_printf ("%s.%s", sgen_client_vtable_get_namespace (vtable), sgen_client_vtable_get_name (vtable));
        gpointer entry = sgen_hash_table_lookup (hash_table, name);
@@ -153,7 +154,7 @@ lookup_vtable_entry (SgenHashTable *hash_table, GCVTable *vtable, gpointer empty
 }
 
 static void
-register_vtable (GCVTable *vtable, int pin_types)
+register_vtable (GCVTable vtable, int pin_types)
 {
        PinnedClassEntry empty_entry;
        PinnedClassEntry *entry;
@@ -169,7 +170,7 @@ register_vtable (GCVTable *vtable, int pin_types)
 }
 
 void
-sgen_pin_stats_register_object (char *obj, size_t size)
+sgen_pin_stats_register_object (GCObject *obj, size_t size)
 {
        int pin_types = 0;
 
@@ -180,11 +181,11 @@ sgen_pin_stats_register_object (char *obj, size_t size)
        sgen_pointer_queue_add (&pinned_objects, obj);
 
        if (pin_types)
-               register_vtable ((GCVTable*)SGEN_LOAD_VTABLE (obj), pin_types);
+               register_vtable (SGEN_LOAD_VTABLE (obj), pin_types);
 }
 
 void
-sgen_pin_stats_register_global_remset (char *obj)
+sgen_pin_stats_register_global_remset (GCObject *obj)
 {
        GlobalRemsetClassEntry empty_entry;
        GlobalRemsetClassEntry *entry;
@@ -193,7 +194,7 @@ sgen_pin_stats_register_global_remset (char *obj)
                return;
 
        memset (&empty_entry, 0, sizeof (GlobalRemsetClassEntry));
-       entry = lookup_vtable_entry (&global_remset_class_hash_table, (GCVTable*)SGEN_LOAD_VTABLE (obj), &empty_entry);
+       entry = lookup_vtable_entry (&global_remset_class_hash_table, SGEN_LOAD_VTABLE (obj), &empty_entry);
 
        ++entry->num_remsets;
 }
index 6d122f8ab395841c8c7050738f293288b6509d41..fc0ba0bbdf6c6e977ed1b5a9c33205d90fcdd615 100644 (file)
@@ -180,7 +180,7 @@ sgen_dump_pin_queue (void)
 
 typedef struct _CementHashEntry CementHashEntry;
 struct _CementHashEntry {
-       char *obj;
+       GCObject *obj;
        unsigned int count;
 };
 
@@ -202,7 +202,7 @@ sgen_cement_reset (void)
 }
 
 gboolean
-sgen_cement_lookup (char *obj)
+sgen_cement_lookup (GCObject *obj)
 {
        guint hv = sgen_aligned_addr_hash (obj);
        int i = SGEN_CEMENT_HASH (hv);
@@ -221,7 +221,7 @@ sgen_cement_lookup (char *obj)
 }
 
 gboolean
-sgen_cement_lookup_or_register (char *obj)
+sgen_cement_lookup_or_register (GCObject *obj)
 {
        guint hv;
        int i;
@@ -252,7 +252,7 @@ sgen_cement_lookup_or_register (char *obj)
                SGEN_CEMENT_OBJECT (obj);
 
                binary_protocol_cement (obj, (gpointer)SGEN_LOAD_VTABLE (obj),
-                               (int)sgen_safe_object_get_size ((GCObject*)obj));
+                               (int)sgen_safe_object_get_size (obj));
        }
 
        return FALSE;
index dd8051fbdef7b35de56c67e1f4fc73ce7d740460..e7f1e288f81c42d41e51a565c19eaa4d80a9e38c 100644 (file)
@@ -56,8 +56,8 @@ void sgen_pin_stats_reset (void);
 
 void sgen_cement_init (gboolean enabled);
 void sgen_cement_reset (void);
-gboolean sgen_cement_lookup (char *obj);
-gboolean sgen_cement_lookup_or_register (char *obj);
+gboolean sgen_cement_lookup (GCObject *obj);
+gboolean sgen_cement_lookup_or_register (GCObject *obj);
 void sgen_pin_cemented_objects (void);
 void sgen_cement_clear_below_threshold (void);
 
index 9d1611c22c36a44b7aeace6bc378dee47f033c07..b7f973646315254877cee62e526435d6f8dcba7b 100644 (file)
@@ -46,7 +46,7 @@
 {
 #ifndef SCAN_OBJECT_NOVTABLE
 #if defined(SGEN_HEAVY_BINARY_PROTOCOL) && defined(SCAN_OBJECT_PROTOCOL)
-       binary_protocol_scan_begin (start, SGEN_LOAD_VTABLE (start), sgen_safe_object_get_size ((GCObject*)start));
+       binary_protocol_scan_begin ((GCObject*)start, SGEN_LOAD_VTABLE ((GCObject*)start), sgen_safe_object_get_size ((GCObject*)start));
 #endif
 #else
 #if defined(SGEN_HEAVY_BINARY_PROTOCOL) && defined(SCAN_OBJECT_PROTOCOL)
 #endif
        switch (desc & DESC_TYPE_MASK) {
        case DESC_TYPE_RUN_LENGTH:
-#define SCAN OBJ_RUN_LEN_FOREACH_PTR (desc, start)
+#define SCAN OBJ_RUN_LEN_FOREACH_PTR (desc, ((GCObject*)start))
 #ifndef SCAN_OBJECT_NOSCAN
                SCAN;
 #endif
 #undef SCAN
                break;
        case DESC_TYPE_VECTOR:
-#define SCAN OBJ_VECTOR_FOREACH_PTR (desc, start)
+#define SCAN OBJ_VECTOR_FOREACH_PTR (desc, ((GCObject*)start))
 #ifndef SCAN_OBJECT_NOSCAN
                SCAN;
 #endif
 #undef SCAN
                break;
        case DESC_TYPE_BITMAP:
-#define SCAN OBJ_BITMAP_FOREACH_PTR (desc, start)
+#define SCAN OBJ_BITMAP_FOREACH_PTR (desc, ((GCObject*)start))
 #ifndef SCAN_OBJECT_NOSCAN
                SCAN;
 #endif
@@ -77,7 +77,7 @@
                break;
        case DESC_TYPE_COMPLEX:
                /* this is a complex object */
-#define SCAN OBJ_COMPLEX_FOREACH_PTR (desc, start)
+#define SCAN OBJ_COMPLEX_FOREACH_PTR (desc, ((GCObject*)start))
 #ifndef SCAN_OBJECT_NOSCAN
                SCAN;
 #endif
@@ -86,7 +86,7 @@
 #ifndef SCAN_OBJECT_NOVTABLE
        case DESC_TYPE_COMPLEX_ARR:
                /* this is an array of complex structs */
-#define SCAN OBJ_COMPLEX_ARR_FOREACH_PTR (desc, start)
+#define SCAN OBJ_COMPLEX_ARR_FOREACH_PTR (desc, ((GCObject*)start))
 #ifndef SCAN_OBJECT_NOSCAN
                SCAN;
 #endif
index 5488775d4f673b8cdafc252a33d5453a1b61e9ac..40639d7050b1db8d2793aa66cf7156285fe0bb9a 100644 (file)
@@ -30,8 +30,8 @@
 #include "mono/sgen/sgen-layout-stats.h"
 #include "mono/sgen/sgen-client.h"
 
-static inline char*
-alloc_for_promotion (GCVTable *vtable, char *obj, size_t objsize, gboolean has_references)
+static inline GCObject*
+alloc_for_promotion (GCVTable vtable, GCObject *obj, size_t objsize, gboolean has_references)
 {
        return major_collector.alloc_object (vtable, objsize, has_references);
 }
index 96d765fb8555fc910f2bfa51f16b1aeaa0d5a990..ea427f6a21fee793d5738222aa793cdf3ee52bf8 100644 (file)
@@ -148,9 +148,9 @@ static AgeAllocationBuffer age_alloc_buffers [MAX_AGE];
 static SgenFragmentAllocator collector_allocator;
 
 static inline int
-get_object_age (char *object)
+get_object_age (GCObject *object)
 {
-       size_t idx = (object - sgen_nursery_start) >> SGEN_TO_SPACE_GRANULE_BITS;
+       size_t idx = ((char*)object - sgen_nursery_start) >> SGEN_TO_SPACE_GRANULE_BITS;
        return region_age [idx];
 }
 
@@ -258,8 +258,8 @@ alloc_for_promotion_slow_path (int age, size_t objsize)
        return p;
 }
 
-static inline char*
-alloc_for_promotion (GCVTable *vtable, char *obj, size_t objsize, gboolean has_references)
+static inline GCObject*
+alloc_for_promotion (GCVTable vtable, GCObject *obj, size_t objsize, gboolean has_references)
 {
        char *p = NULL;
        int age;
@@ -281,13 +281,13 @@ alloc_for_promotion (GCVTable *vtable, char *obj, size_t objsize, gboolean has_r
        }
 
        /* FIXME: assumes object layout */
-       *(GCVTable**)p = vtable;
+       *(GCVTable*)p = vtable;
 
-       return p;
+       return (GCObject*)p;
 }
 
-static char*
-minor_alloc_for_promotion (GCVTable *vtable, char *obj, size_t objsize, gboolean has_references)
+static GCObject*
+minor_alloc_for_promotion (GCVTable vtable, GCObject *obj, size_t objsize, gboolean has_references)
 {
        /*
        We only need to check for a non-nursery object if we're doing a major collection.
index 613f332cca4398e68c9b3b45b7ae5a4c8da8f14f..b26234298473a093bf81712b97b50e6fa6515506 100644 (file)
@@ -227,7 +227,7 @@ workers_get_work (WorkerData *data)
 }
 
 static void
-concurrent_enqueue_check (char *obj)
+concurrent_enqueue_check (GCObject *obj)
 {
        g_assert (sgen_concurrent_collection_in_progress ());
        g_assert (!sgen_ptr_in_nursery (obj));
index 1da8f045d701416864bcb7a08eca9d6fbb52db7c..97ad6e34dfd6156a69bc9056e9f3788047fbdecf 100644 (file)
@@ -1,6 +1,6 @@
 SUBDIRS = assemblyresolve gc-descriptors
 
-check-local: assemblyresolve/test/asm.dll testjit test-generic-sharing test-type-load test-cattr-type-load test-reflection-load-with-context test_platform test-process-exit test-messages rm-empty-logs
+check-local: assemblyresolve/test/asm.dll testjit test-generic-sharing test-type-load test-cattr-type-load test-reflection-load-with-context test_platform test-process-exit test-messages test-unhandled-exception-2 rm-empty-logs
 check-full: test-sgen check-local
 check-parallel: compile-tests check-full
 
@@ -18,19 +18,21 @@ JITTEST_PROG_RUN = MONO_CFG_DIR=$(mono_build_root)/runtime/etc $(LIBTOOL) --mode
 
 RUNTIME_ARGS=--config tests-config --optimize=all --debug
 
-with_mono_path = MONO_PATH=$(mcs_topdir)/class/lib/net_4_5
+CLASS=$(mcs_topdir)/class/lib/$(DEFAULT_PROFILE)
+
+with_mono_path = MONO_PATH=$(CLASS)
 
 RUNTIME = $(with_mono_path) $(top_builddir)/runtime/mono-wrapper
 
 MKBUNDLE = \
        PKG_CONFIG_PATH=$(top_builddir):$(PKG_CONFIG_PATH) \
-       $(RUNTIME) $(mcs_topdir)/class/lib/net_4_5/mkbundle.exe
+       $(RUNTIME) $(CLASS)/mkbundle.exe
 
 MCS = $(RUNTIME) $(mcs_topdir)/class/lib/build/mcs.exe -unsafe -debug \
        -nowarn:0162 -nowarn:0168 -nowarn:0219 -nowarn:0414 -nowarn:0618 \
        -nowarn:0169 -nowarn:1690 -nowarn:0649 -nowarn:0612 -nowarn:3021 \
        -nowarn:0197
-ILASM = $(RUNTIME) $(mcs_topdir)/class/lib/net_4_5/ilasm.exe
+ILASM = $(RUNTIME) $(CLASS)/ilasm.exe
 
 BENCHSRC=fib.cs random.cs nested-loops.cs ackermann.cs tight-loop.cs sieve.cs
 
@@ -140,6 +142,7 @@ BASE_TEST_CS_SRC=           \
        many-locals.cs          \
        string-compare.cs       \
        test-prime.cs           \
+       test-tls.cs             \
        params.cs               \
        reflection.cs           \
        interface.cs            \
@@ -458,6 +461,11 @@ if POWERPC
 PLATFORM_DISABLED_TESTS=finalizer-abort.exe finalizer-exception.exe finalizer-exit.exe
 endif
 
+if POWERPC64
+# These tests hang
+PLATFORM_DISABLED_TESTS=monitor.exe finalizer-abort.exe finalizer-exception.exe finalizer-exit.exe
+endif
+
 if ARM
 PLATFORM_DISABLED_TESTS=filter-stack.exe
 endif
@@ -1086,7 +1094,7 @@ test-aot:
        @failed=0; \
        passed=0; \
        failed_tests="";\
-       profile=net_4_5;        \
+       profile=$(DEFAULT_PROFILE);     \
        tmpfile=`mktemp -t mono_aot_output` || exit 1;  \
        rm -f test-aot-$${name}.stdout test-aot-$${name}.stderr; \
        for assembly in $(mcs_topdir)/class/lib/$$profile/*.dll ; do    \
@@ -1280,11 +1288,11 @@ GSHARED_TESTS = \
 test-generic-sharing-normal: $(GSHARED_TESTS)
        @for fn in $+ ; do      \
                echo "Testing $$fn ...";        \
-               MONO_GENERIC_SHARING=all $(RUNTIME) -O=gshared                $$fn > $$fn.stdout || exit 1;     \
-               MONO_GENERIC_SHARING=all $(RUNTIME) -O=gshared,shared         $$fn > $$fn.stdout || exit 1;     \
-               MONO_GENERIC_SHARING=all $(RUNTIME) -O=gshared,-inline        $$fn > $$fn.stdout || exit 1;     \
-               MONO_GENERIC_SHARING=all $(RUNTIME) -O=gshared,-inline,shared $$fn > $fn.stdout || exit 1;      \
-               if [ x$(AOT) = x1 ]; then MONO_GENERIC_SHARING=all $(with_mono_path) $(JITTEST_PROG_RUN) --aot --debug $$fn > /dev/null || exit 1; MONO_GENERIC_SHARING=all $(RUNTIME) $$fn > $$fn.stdout || exit 1; fi; \
+               $(RUNTIME) -O=gshared                $$fn > $$fn.stdout || exit 1;      \
+               $(RUNTIME) -O=gshared,shared         $$fn > $$fn.stdout || exit 1;      \
+               $(RUNTIME) -O=gshared,-inline        $$fn > $$fn.stdout || exit 1;      \
+               $(RUNTIME) -O=gshared,-inline,shared $$fn > $fn.stdout || exit 1;       \
+               if [ x$(AOT) = x1 ]; then $(with_mono_path) $(JITTEST_PROG_RUN) --aot --debug $$fn > /dev/null || exit 1; $(RUNTIME) $$fn > $$fn.stdout || exit 1; fi; \
        done
 
 test-generic-sharing-managed: test-runner.exe $(GSHARED_TESTS)
@@ -1341,10 +1349,23 @@ test-oom: $(OOM_TESTS)
                MONO_GC_PARAMS=max-heap-size=16m                                                  $(RUNTIME) $$fn > $$fn.stdout || exit 1;      \
        done
 
+if HOST_WIN32
+test-unhandled-exception-2:
+else
+test-unhandled-exception-2: unhandled-exception.exe
+       @echo "Testing unhandled-exception_1 ..."; $(RUNTIME) $+ 1 1> unhandled-exception_1.exe.stdout 2> unhandled-exception_1.exe.stderr; if test "x$$?" != "x1";   then exit 1; fi;  \
+        echo "Testing unhandled-exception_2 ..."; $(RUNTIME) $+ 2 1> unhandled-exception_2.exe.stdout 2> unhandled-exception_2.exe.stderr; if test "x$$?" != "x0";   then exit 2; fi;  \
+        echo "Testing unhandled-exception_3 ..."; $(RUNTIME) $+ 3 1> unhandled-exception_3.exe.stdout 2> unhandled-exception_3.exe.stderr; if test "x$$?" != "x0";   then exit 3; fi;  \
+        echo "Testing unhandled-exception_4 ..."; $(RUNTIME) $+ 4 1> unhandled-exception_4.exe.stdout 2> unhandled-exception_4.exe.stderr; if test "x$$?" != "x0";   then exit 4; fi;  \
+        echo "Testing unhandled-exception_5 ..."; $(RUNTIME) $+ 5 1> unhandled-exception_5.exe.stdout 2> unhandled-exception_5.exe.stderr; if test "x$$?" != "x255"; then exit 5; fi;  \
+        echo "Testing unhandled-exception_6 ..."; $(RUNTIME) $+ 6 1> unhandled-exception_6.exe.stdout 2> unhandled-exception_6.exe.stderr; if test "x$$?" != "x0";   then exit 6; fi;  \
+        echo "Testing unhandled-exception_7 ..."; $(RUNTIME) $+ 7 1> unhandled-exception_7.exe.stdout 2> unhandled-exception_7.exe.stderr; if test "x$$?" != "x0";   then exit 7; fi;  \
+        echo "Testing unhandled-exception_8 ..."; $(RUNTIME) $+ 8 1> unhandled-exception_8.exe.stdout 2> unhandled-exception_8.exe.stderr; if test "x$$?" != "x3";   then exit 8; fi
+endif
 
 noinst_LTLIBRARIES = libtest.la
 
-AM_CPPFLAGS = $(GLIB_CFLAGS) $(GMODULE_CFLAGS)
+AM_CPPFLAGS = $(GLIB_CFLAGS)
 
 if HOST_WIN32
 # gcc-3.4.4 emits incorrect code when making indirect calls to stdcall functions using a tail call
index 22bd1d415ea790e6cd2cf868197189829553a2d4..dac89cabea949deb3b7423d5cacd7d0537d774e4 100644 (file)
@@ -1,4 +1,6 @@
-with_mono_path = MONO_PATH=$(mcs_topdir)/class/lib/net_4_5
+CLASS=$(mcs_topdir)/class/lib/$(DEFAULT_PROFILE)
+
+with_mono_path = MONO_PATH=$(CLASS)
 
 RUNTIME = $(with_mono_path) $(top_builddir)/runtime/mono-wrapper --debug
 MCS = $(RUNTIME) $(mcs_topdir)/class/lib/build/mcs.exe -debug:full -target:library
index 0e48d9081c045dc93a7260d5534bfd6e74ec3e91..71f4b4cc20933647e7fcc1df7d36407ec6261ae7 100644 (file)
@@ -18,7 +18,8 @@ public class FinalizerException {
                int* values = stackalloc int [20];
                aptr = new IntPtr (values);
                if (depth <= 0) {
-                       new FinalizerException ();
+                       for (int i = 0; i < 10; i++)
+                               new FinalizerException ();
                        return;
                }
                MakeException (depth - 1);
diff --git a/mono/tests/find_aot_method_in_amodule_stress/Makefile b/mono/tests/find_aot_method_in_amodule_stress/Makefile
new file mode 100644 (file)
index 0000000..023c7c1
--- /dev/null
@@ -0,0 +1,18 @@
+MONO_BIN_DIR=$(shell dirname `which mono`)
+MONO_DIR=$(shell echo $(MONO_BIN_DIR)/../)
+
+all: Template.py mscorlib.dll
+       python3 Template.py $(MONO_DIR) | grep -v find_aot_method_in_amodule
+
+run:
+       MONO_PATH=. mono --full-aot Hello.exe   
+
+mscorlib.dll:
+       cp $(MONO_DIR)/lib/mono/4.5/mscorlib.dll ./mscorlib.dll
+
+clean:
+       - rm -f *.dll
+       - rm -f *.dylib
+       - rm -f *.exe
+       - rm -rf *.dSYM
+       - rm -f *TypeBucket.cs Hello.cs Foo.cs
diff --git a/mono/tests/find_aot_method_in_amodule_stress/Template.py b/mono/tests/find_aot_method_in_amodule_stress/Template.py
new file mode 100644 (file)
index 0000000..50f2009
--- /dev/null
@@ -0,0 +1,139 @@
+import subprocess as sub
+import sys
+
+commands = {}
+
+def typeof (typ):
+       return "typeof (" + typ + ")\n"
+
+def inst (one, two):
+       return "TypeBucket.Foo <TypeBucket." + one + ", TypeBucket." + two + ">.CallMe ();\n"
+
+def bucketCall (filePrefix):
+       return "TypeBucket." + filePrefix + ".CallMe ();\n"
+
+def classDef (name):
+       return "public struct " + name + " {\t\n public int inner; \t\n}\n"
+
+def run (cmd):
+       print(cmd)
+       child = sub.Popen (cmd, shell=True)
+       child.wait()
+       error = child.returncode
+       if error != 0:
+               raise Exception ("Compilation error " + str(error))
+
+def typeBucketInst (types, filePrefix):
+       accum = "\npublic class " + filePrefix + "{\n"
+       accum += "\tpublic static void CallMe () {\n"
+       for t1 in types:
+               for t2 in types:
+                       accum += inst (t1, t2)
+       accum += "\t\n}\n}\n"
+       return accum
+
+def makeGenericDef (fileName):
+       fileTemplate = """
+using System.Runtime.CompilerServices;
+
+namespace TypeBucket {
+       public class Foo <S, P> {
+               public static void CallMe () {
+                       A ();
+                       B ();
+                       C ();
+                       D ();
+                       E ();
+               }
+
+               [MethodImplAttribute (MethodImplOptions.NoInlining)]
+               public static void A () {
+               }
+               [MethodImplAttribute (MethodImplOptions.NoInlining)]
+               public static void B () {
+               }
+               [MethodImplAttribute (MethodImplOptions.NoInlining)]
+               public static void C () {
+               }
+               [MethodImplAttribute (MethodImplOptions.NoInlining)]
+               public static void D () {
+               }
+               [MethodImplAttribute (MethodImplOptions.NoInlining)]
+               public static void E () {
+               }
+       }
+}
+
+"""
+       csName = fileName + ".cs"
+       with open(csName, 'w') as f:
+               f.write (fileTemplate);
+       cmd = commands ["mcs"] + " -t:library " + csName
+       run (cmd)
+       
+def makeFile (prefix, insts, files, genericDefDll):
+       types = []
+       fileName = prefix + "TypeBucket"
+       csName = fileName + ".cs"
+       templatePrefix = "using TypeBucket;\n\tnamespace TypeBucket {\n"
+       with open(csName, 'w') as f:
+               f.write (templatePrefix)
+               for i in range(100):
+                       name = "classy" + prefix + str(i)
+                       f.write (classDef (name))
+                       types.append (name)
+               f.write(typeBucketInst (types, fileName))
+               f.write ("\n}\n")
+
+       insts.append(bucketCall (fileName))
+
+       cmd = commands ["mcs"] + " -t:library " + csName + " -r:" + genericDefDll
+       run (cmd)
+
+       files.append (fileName)
+
+
+template_head = """
+using TypeBucket;
+
+class MainClass {
+       public static void Main () {
+               """
+
+template_tail = """
+       }
+}
+"""
+
+def main (bin_prefix):
+       commands ["mono"] = "MONO_PATH=. " + bin_prefix + "/bin/mono "
+       commands ["mcs"] = "MONO_PATH=. " + bin_prefix + "/bin/mcs "
+
+       generic_def_file = "Foo"
+       makeGenericDef (generic_def_file)
+
+       insts = []
+       files = [generic_def_file]
+       for prefix in ["One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten"]:
+               makeFile (prefix, insts, files, generic_def_file + ".dll")
+
+       template = template_head + "\n\t".join(insts) + template_tail
+
+       f = open("Hello.cs", 'w')
+       f.write (template)
+       f.close ();
+
+       cmd = commands ["mcs"] + " Hello.cs"
+       for f in files:
+               cmd = cmd + " -r:" + f + ".dll"
+       run (cmd)
+
+
+       run (commands ["mono"] + "--aot=full " + "Hello.exe")
+
+       files.append ("mscorlib")
+       for f in files:
+               run (commands ["mono"] + "--aot=full " +  f + ".dll")
+
+if __name__ == "__main__":
+       main (sys.argv [1])
index 54eca51ef5197e10332720ead06d5652bd9e8f7d..e7c09cc8175147cd3eb8e21979d3383816201f1a 100755 (executable)
@@ -1,4 +1,6 @@
-with_mono_path = MONO_PATH=$(mcs_topdir)/class/lib/net_4_5
+CLASS=$(mcs_topdir)/class/lib/$(DEFAULT_PROFILE)
+
+with_mono_path = MONO_PATH=$(CLASS)
 RUNTIME = $(with_mono_path) $(top_builddir)/runtime/mono-wrapper
 MCS = $(RUNTIME) $(mcs_topdir)/class/lib/build/mcs.exe -unsafe -nowarn:0162 -nowarn:0168 -nowarn:0219 -debug
 
index 0154d608954f93d6ed2e6b6ee373f26cfa68c19d..924a643418f60d4ea9ebb708ae66474555a54e71 100644 (file)
@@ -1290,6 +1290,16 @@ mono_test_empty_struct (int a, EmptyStruct es, int b)
 #endif
 }
 
+LIBTEST_API EmptyStruct STDCALL
+mono_test_return_empty_struct (int a)
+{
+       EmptyStruct s;
+
+       g_assert (a == 42);
+
+       return s;
+}
+
 typedef struct {
        char a[100];
 } ByValStrStruct;
index e3b855ea6198eac86e091661cd38230298c1284c..3f2da10c57a8f6d507acc718faf8cfb4cb179605 100644 (file)
@@ -62,7 +62,7 @@
     }\r
 \r
     .method public hidebysig newslot virtual \r
-            instance void  Invoke([t]Missing t) runtime managed\r
+            instance void  Invoke(class [t]Missing t) runtime managed\r
     {\r
     }\r
 \r
   {\r
     .maxstack 8\r
     ldstr "Hello"\r
-    call void class [mscorlib]System.String::Trim([mscorlib]MissingType)\r
+    call void class [mscorlib]System.String::Trim(class [mscorlib]MissingType)\r
     ret\r
   }\r
 \r
     IL_0001:  newobj     instance void LoadMissing::.ctor()\r
     IL_0006:  stloc.0\r
     IL_0007:  ldloc.0\r
-    IL_0008:  ldftn      instance void LoadMissing::delegate_target()\r
+    IL_0008:  ldftn      void LoadMissing::delegate_target()\r
     IL_000e:  newobj     instance void DelegateWithMissingArgument::.ctor(object,\r
                                                                           native int)\r
     IL_0013:  stloc.1\r
 \r
 .class public auto ansi beforefieldinit FieldWithMissingType\r
 {\r
-       .field  public [t]Missing BrokenField\r
+       .field  public class [t]Missing BrokenField\r
     .field  public static int32 WorkingField\r
 }\r
index 2ce4a3c4d78f7e9e00f22a0d81ab57292d22cc48..205d10ca16e98838c73ff9da01053e166f4ce530 100644 (file)
@@ -12,14 +12,26 @@ public class Foo  {
                resurrect = this;
        }
 
+       public static void EnterMonitor (object obj)
+       {
+               for (int i = 0; i < 257; i++)
+                       Monitor.Enter (obj);
+       }
+
+       public static void ExitMonitor (object obj)
+       {
+               for (int i = 0; i < 257; i++)
+                       Monitor.Exit (obj);
+       }
+
        public static void CreateFoo (int level)
        {
                if (level == 0) {
                        reference = new Foo ();
 
                        /* Allocate a MonoThreadsSync for the object */
-                       Monitor.Enter (reference);
-                       Monitor.Exit (reference);
+                       EnterMonitor (reference);
+                       ExitMonitor (reference);
                        reference = null;
                } else {
                        CreateFoo (level - 1);
@@ -52,7 +64,7 @@ public class Foo  {
                        /* Make sure these are not collected */
                        list.Add (foo);
 
-                       Monitor.Enter (foo);
+                       EnterMonitor (foo);
                }
        }
 } 
index abc81f8d70d77fe44b7a2588b0c7e98d96825339..d4d6bebd0db5b76eddf9fcf91acd1f9438413c99 100644 (file)
@@ -61,6 +61,10 @@ public class Tests {
        public struct EmptyStruct {
        }
 
+       [StructLayout (LayoutKind.Sequential, Size=1)]
+       public struct EmptyStructCpp {
+       }
+
        [StructLayout (LayoutKind.Sequential)]
        public struct DelegateStruct {
                public int a;
@@ -263,6 +267,12 @@ public class Tests {
        [DllImport ("libtest", EntryPoint="mono_test_empty_struct")]
        public static extern int mono_test_empty_struct (int a, EmptyStruct es, int b);
 
+       [DllImport ("libtest", EntryPoint="mono_test_return_empty_struct")]
+       public static extern EmptyStruct mono_test_return_empty_struct (int a);
+
+       [DllImport ("libtest", EntryPoint="mono_test_return_empty_struct")]
+       public static extern EmptyStructCpp mono_test_return_empty_struct_cpp (int a);
+
        [DllImport ("libtest", EntryPoint="mono_test_marshal_lpstruct")]
        public static extern int mono_test_marshal_lpstruct ([In, MarshalAs(UnmanagedType.LPStruct)] SimpleStruct ss);
 
@@ -483,9 +493,22 @@ public class Tests {
 
                if (mono_test_empty_struct (1, es, 2) != 0)
                        return 1;
+
+               mono_test_return_empty_struct (42);
+
+               return 0;
+       }
+
+       /* FIXME: This doesn't work on all platforms */
+       /*
+       public static int test_0_marshal_empty_struct_cpp () {
+               EmptyStructCpp es = new EmptyStructCpp ();
+
+               mono_test_return_empty_struct_cpp (42);
                
                return 0;
        }
+       */
 
        public static int test_0_marshal_lpstruct () {
                SimpleStruct ss = new  SimpleStruct ();
index b7ff6475d23cdb14ba9877754c6a53446d341625..2145f0561c00cfea150b74a07b4b78c70a1ce635 100644 (file)
@@ -54,10 +54,11 @@ class main {
                        b.test_exception ();
                }
                catch (SynchronizationLockException ex) {
-                       return 1;
+                       // OK
                }
                catch (Exception ex) {
-                       // OK
+                       // The other exception should be overwritten by the lock one
+                       return 1;
                }
 
                Console.WriteLine ("Test4...");
@@ -81,10 +82,10 @@ class main {
                        d ();
                }
                catch (SynchronizationLockException ex) {
-                       return 2;
+                       // OK
                }
                catch (Exception ex) {
-                       // OK
+                       return 2;
                }
 
                return 0;
index a63b63fa5c6d4c66262f59a661bbcc8710ac771e..9d56cd8c365a121503d886399b40ec3d2a5c5081 100644 (file)
@@ -76,10 +76,11 @@ class Tests {
                        b.test_exception ();
                }
                catch (SynchronizationLockException ex) {
-                       return 1;
+                       // OK
                }
                catch (Exception ex) {
-                       // OK
+                       // The other exception should be overwritten by the lock one
+                       return 1;
                }
                if (is_synchronized (b))
                        return 1;
@@ -113,10 +114,10 @@ class Tests {
                        d ();
                }
                catch (SynchronizationLockException ex) {
-                       return 2;
+                       // OK
                }
                catch (Exception ex) {
-                       // OK
+                       return 2;
                }
                if (is_synchronized (b))
                        return 1;
diff --git a/mono/tests/test-tls.cs b/mono/tests/test-tls.cs
new file mode 100644 (file)
index 0000000..cfa31f5
--- /dev/null
@@ -0,0 +1,43 @@
+using System;
+using System.Threading;
+
+public class Program
+{
+       public const int nr_threads = 4;
+       public const int reps = 10000;
+       public static int[] allocs = new int[nr_threads];
+
+       public Program (int index)
+       {
+               allocs [index] += 1;
+       }
+
+       public static void Work (object oindex)
+       {
+               int index = (int)oindex;
+               for (int i = 0; i < reps; i++) {
+                       Thread thread = Thread.CurrentThread;
+                       if (string.Compare (thread.Name, "t" + index) == 0)
+                               new Program (index);
+               }
+       }
+
+       public static int Main (string[] args)
+       {
+               Thread[] threads = new Thread[nr_threads];
+
+               for (int i = 0; i < nr_threads; i++) {
+                       threads [i] = new Thread (Work);
+                       threads [i].Name = "t" + i;
+                       threads [i].Start (i);
+               }
+
+               for (int i = 0; i < nr_threads; i++) {
+                       threads [i].Join ();
+                       if (allocs [i] != reps)
+                               return 1;
+               }
+
+               return 0;
+       }
+}
diff --git a/mono/tests/unhandled-exception.cs b/mono/tests/unhandled-exception.cs
new file mode 100644 (file)
index 0000000..7658e07
--- /dev/null
@@ -0,0 +1,193 @@
+using System;
+using System.Diagnostics;
+using System.Threading;
+using System.Threading.Tasks;
+
+class CustomException : Exception
+{
+}
+
+class CustomException2 : Exception
+{
+}
+
+
+class CrossDomain : MarshalByRefObject
+{
+       public Action NewDelegateWithTarget ()
+       {
+               return new Action (Bar);
+       }
+
+       public Action NewDelegateWithoutTarget ()
+       {
+               return () => { throw new CustomException (); };
+       }
+
+       public void Bar ()
+       {
+               throw new CustomException ();
+       }
+}
+
+class Driver {
+       static ManualResetEvent mre = new ManualResetEvent (false);
+
+       static void DoTest1 ()
+       {
+               mre.Reset ();
+
+               var t = new Thread (new ThreadStart (() => { try { throw new CustomException (); } finally { mre.Set (); } }));
+               t.Start ();
+
+               if (!mre.WaitOne (5000))
+                       Environment.Exit (2);
+
+               t.Join ();
+       }
+
+       static void DoTest2 ()
+       {
+               mre.Reset ();
+
+               var a = new Action (() => { try { throw new CustomException (); } finally { mre.Set (); } });
+               var ares = a.BeginInvoke (null, null);
+
+               if (!mre.WaitOne (5000))
+                       Environment.Exit (2);
+
+               try {
+                       a.EndInvoke (ares);
+                       throw new Exception ();
+               } catch (CustomException) {                     
+               } catch (Exception) {
+                       Environment.Exit (3);
+               }
+       }
+
+       static void DoTest3 ()
+       {
+               mre.Reset ();
+
+               ThreadPool.QueueUserWorkItem (_ => { try { throw new CustomException (); } finally { mre.Set (); } });
+
+               if (!mre.WaitOne (5000))
+                       Environment.Exit (2);
+       }
+
+       static void DoTest4 ()
+       {
+               mre.Reset ();
+
+               var t = Task.Factory.StartNew (new Action (() => { try { throw new CustomException (); } finally { mre.Set (); } }));
+
+               if (!mre.WaitOne (5000))
+                       Environment.Exit (2);
+
+               try {
+                       t.Wait ();
+                       throw new Exception ();
+               } catch (AggregateException ae) {
+                       if (!(ae.InnerExceptions [0] is CustomException))
+                               Environment.Exit (4);
+               } catch (Exception) {
+                       Environment.Exit (3);
+               }
+       }
+       
+       class FinalizedClass
+       {
+               ~FinalizedClass ()
+               {
+                       try {
+                               throw new CustomException ();
+                       } finally {
+                               mre.Set ();
+                       }
+               }
+       }
+
+       static void DoTest5 ()
+       {
+               mre.Reset ();
+
+               new FinalizedClass();
+
+               GC.Collect ();
+               GC.WaitForPendingFinalizers ();
+
+               if (!mre.WaitOne (5000))
+                       Environment.Exit (2);
+       }
+
+       static void DoTest6 ()
+       {
+               ManualResetEvent mre2 = new ManualResetEvent (false);
+
+               mre.Reset ();
+
+               var a = new Action (() => { try { throw new CustomException (); } finally { mre.Set (); } });
+               var ares = a.BeginInvoke (_ => { mre2.Set (); throw new CustomException2 (); }, null);
+
+               if (!mre.WaitOne (5000))
+                       Environment.Exit (2);
+               if (!mre2.WaitOne (5000))
+                       Environment.Exit (22);
+
+               try {
+                       a.EndInvoke (ares);
+                       throw new Exception ();
+               } catch (CustomException) {
+               } catch (Exception) {
+                       Environment.Exit (3);
+               }
+       }
+
+       static void DoTest7 ()
+       {
+               var cd = (CrossDomain) AppDomain.CreateDomain ("ad").CreateInstanceAndUnwrap (typeof(CrossDomain).Assembly.FullName, "CrossDomain");
+
+               var a = cd.NewDelegateWithoutTarget ();
+               var ares = a.BeginInvoke (delegate { throw new CustomException2 (); }, null);
+
+               try {
+                       a.EndInvoke (ares);
+                       throw new Exception ();
+               } catch (CustomException) {
+               } catch (Exception) {
+                       Environment.Exit (3);
+               }
+       }
+
+       static void DoTest8 ()
+       {
+               var cd = (CrossDomain) AppDomain.CreateDomain ("ad").CreateInstanceAndUnwrap (typeof(CrossDomain).Assembly.FullName, "CrossDomain");
+
+               var a = cd.NewDelegateWithTarget ();
+               var ares = a.BeginInvoke (delegate { throw new CustomException2 (); }, null);
+
+               try {
+                       a.EndInvoke (ares);
+                       throw new Exception ();
+               } catch (CustomException) {
+               } catch (Exception) {
+                       Environment.Exit (3);
+               }
+       }
+
+       static void Main (string[] args)
+       {
+               switch (int.Parse (args [0])) {
+               case 1: DoTest1 (); break;
+               case 2: DoTest2 (); break;
+               case 3: DoTest3 (); break;
+               case 4: DoTest4 (); break;
+               case 5: DoTest5 (); break;
+               case 6: DoTest6 (); break;
+               case 7: DoTest7 (); break;
+               case 8: DoTest8 (); break;
+               default: throw new ArgumentOutOfRangeException ();
+               }
+               Environment.Exit (0);
+       }
+}
index bdafa56291eb3a9bab4d764c83e0c29066ee1e52..fec63391ed85d337ac078ed81ebcc71014c73bb0 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "utils/mono-threads.h"
 #include "utils/mono-conc-hashtable.h"
+#include "utils/checked-build.h"
 
 #include <stdlib.h>
 #include <string.h>
@@ -37,11 +38,23 @@ single_writer_single_reader (void)
        int res = 0;
 
        mono_mutex_init (&mutex);
-       h = mono_conc_hashtable_new (&mutex, NULL, NULL);
+       h = mono_conc_hashtable_new (NULL, NULL);
+
+       mono_mutex_lock (&mutex);
        mono_conc_hashtable_insert (h, GUINT_TO_POINTER (10), GUINT_TO_POINTER (20));
+       mono_mutex_unlock (&mutex);
+
+       mono_mutex_lock (&mutex);
        mono_conc_hashtable_insert (h, GUINT_TO_POINTER (30), GUINT_TO_POINTER (40));
+       mono_mutex_unlock (&mutex);
+
+       mono_mutex_lock (&mutex);
        mono_conc_hashtable_insert (h, GUINT_TO_POINTER (50), GUINT_TO_POINTER (60));
+       mono_mutex_unlock (&mutex);
+
+       mono_mutex_lock (&mutex);
        mono_conc_hashtable_insert (h, GUINT_TO_POINTER (2), GUINT_TO_POINTER (3));
+       mono_mutex_unlock (&mutex);
 
        if (mono_conc_hashtable_lookup (h, GUINT_TO_POINTER (30)) != GUINT_TO_POINTER (40))
                res = 1;
@@ -60,6 +73,7 @@ single_writer_single_reader (void)
 }
 
 static MonoConcurrentHashTable *hash;
+static mono_mutex_t global_mutex;
 
 static void*
 pw_sr_thread (void *arg)
@@ -67,8 +81,11 @@ pw_sr_thread (void *arg)
        int i, idx = 1000 * GPOINTER_TO_INT (arg);
        mono_thread_info_attach ((gpointer)&arg);
 
-       for (i = 0; i < 1000; ++i)
+       for (i = 0; i < 1000; ++i) {
+               mono_mutex_lock (&global_mutex);
                mono_conc_hashtable_insert (hash, GINT_TO_POINTER (i + idx), GINT_TO_POINTER (i + 1));
+               mono_mutex_unlock (&global_mutex);
+       }
        return NULL;
 }
 
@@ -76,11 +93,10 @@ static int
 parallel_writer_single_reader (void)
 {
        pthread_t a,b,c;
-       mono_mutex_t mutex;
        int i, j, res = 0;
 
-       mono_mutex_init (&mutex);
-       hash = mono_conc_hashtable_new (&mutex, NULL, NULL);
+       mono_mutex_init (&global_mutex);
+       hash = mono_conc_hashtable_new (NULL, NULL);
 
        pthread_create (&a, NULL, pw_sr_thread, GINT_TO_POINTER (1));
        pthread_create (&b, NULL, pw_sr_thread, GINT_TO_POINTER (2));
@@ -101,7 +117,7 @@ parallel_writer_single_reader (void)
 
 done:
        mono_conc_hashtable_destroy (hash);
-       mono_mutex_destroy (&mutex);
+       mono_mutex_destroy (&global_mutex);
        if (res)
                printf ("PAR_WRITER_SINGLE_READER TEST FAILED %d\n", res);
        return res;
@@ -129,22 +145,29 @@ static int
 single_writer_parallel_reader (void)
 {
        pthread_t a,b,c;
-       mono_mutex_t mutex;
        gpointer ra, rb, rc;
        int i, res = 0;
        ra = rb = rc = GINT_TO_POINTER (1);
 
-       mono_mutex_init (&mutex);
-       hash = mono_conc_hashtable_new (&mutex, NULL, NULL);
+       mono_mutex_init (&global_mutex);
+       hash = mono_conc_hashtable_new (NULL, NULL);
 
        pthread_create (&a, NULL, pr_sw_thread, GINT_TO_POINTER (0));
        pthread_create (&b, NULL, pr_sw_thread, GINT_TO_POINTER (1));
        pthread_create (&c, NULL, pr_sw_thread, GINT_TO_POINTER (2));
 
        for (i = 0; i < 100; ++i) {
+               mono_mutex_lock (&global_mutex);
                mono_conc_hashtable_insert (hash, GINT_TO_POINTER (i +   0 + 1), GINT_TO_POINTER ((i +   0) * 2 + 1));
+               mono_mutex_unlock (&global_mutex);
+
+               mono_mutex_lock (&global_mutex);
                mono_conc_hashtable_insert (hash, GINT_TO_POINTER (i + 100 + 1), GINT_TO_POINTER ((i + 100) * 2 + 1));
+               mono_mutex_unlock (&global_mutex);
+
+               mono_mutex_lock (&global_mutex);
                mono_conc_hashtable_insert (hash, GINT_TO_POINTER (i + 200 + 1), GINT_TO_POINTER ((i + 200) * 2 + 1));
+               mono_mutex_unlock (&global_mutex);
        }
 
        pthread_join (a, &ra);
@@ -153,7 +176,7 @@ single_writer_parallel_reader (void)
        res = GPOINTER_TO_INT (ra) + GPOINTER_TO_INT (rb) + GPOINTER_TO_INT (rc);
 
        mono_conc_hashtable_destroy (hash);
-       mono_mutex_destroy (&mutex);
+       mono_mutex_destroy (&global_mutex);
        if (res)
                printf ("SINGLE_WRITER_PAR_READER TEST FAILED %d\n", res);
        return res;
@@ -189,8 +212,11 @@ pw_pr_w_add_thread (void *arg)
 
        mono_thread_info_attach ((gpointer)&arg);
 
-       for (i = idx; i < idx + 1000; i++)
+       for (i = idx; i < idx + 1000; i++) {
+               mono_mutex_lock (&global_mutex);
                mono_conc_hashtable_insert (hash, GINT_TO_POINTER (i + 1), GINT_TO_POINTER (i + 1));
+               mono_mutex_unlock (&global_mutex);
+       }
        return NULL;
 }
 
@@ -201,8 +227,11 @@ pw_pr_w_del_thread (void *arg)
 
        mono_thread_info_attach ((gpointer)&arg);
 
-       for (i = idx; i < idx + 1000; i++)
+       for (i = idx; i < idx + 1000; i++) {
+               mono_mutex_lock (&global_mutex);
                mono_conc_hashtable_remove (hash, GINT_TO_POINTER (i + 1));
+               mono_mutex_unlock (&global_mutex);
+       }
        return NULL;
 }
 
@@ -210,14 +239,13 @@ static int
 parallel_writer_parallel_reader (void)
 {
        pthread_t wa, wb, wc, ra, rb, rc;
-       mono_mutex_t mutex;
        gpointer a, b, c;
        int res = 0, i;
 
        srand(time(NULL));
 
-       mono_mutex_init (&mutex);
-       hash = mono_conc_hashtable_new (&mutex, NULL, NULL);
+       mono_mutex_init (&global_mutex);
+       hash = mono_conc_hashtable_new (NULL, NULL);
 
        for (i = 0; i < 2; i++) {
                running = 1;
@@ -256,7 +284,7 @@ parallel_writer_parallel_reader (void)
                printf ("PAR_WRITER_PAR_READER TEST FAILED %d %d %d\n", GPOINTER_TO_INT (a), GPOINTER_TO_INT (b), GPOINTER_TO_INT (c));
 
        mono_conc_hashtable_destroy (hash);
-       mono_mutex_destroy (&mutex);
+       mono_mutex_destroy (&global_mutex);
 
        return res;
 }
@@ -264,15 +292,14 @@ parallel_writer_parallel_reader (void)
 static void G_GNUC_UNUSED
 benchmark_conc (void)
 {
-       mono_mutex_t mutex;
        MonoConcurrentHashTable *h;
        int i, j;
 
-       mono_mutex_init (&mutex);
-       h = mono_conc_hashtable_new (&mutex, NULL, NULL);
+       h = mono_conc_hashtable_new (NULL, NULL);
 
-       for (i = 1; i < 10 * 1000; ++i)
+       for (i = 1; i < 10 * 1000; ++i) {
                mono_conc_hashtable_insert (h, GUINT_TO_POINTER (i), GUINT_TO_POINTER (i));
+       }
 
 
        for (j = 0; j < 100000; ++j)
@@ -280,8 +307,6 @@ benchmark_conc (void)
                        mono_conc_hashtable_lookup (h, GUINT_TO_POINTER (i));
 
        mono_conc_hashtable_destroy (h);
-       mono_mutex_destroy (&mutex);
-
 }
 
 static void G_GNUC_UNUSED
@@ -309,6 +334,7 @@ main (void)
        MonoThreadInfoCallbacks cb = { NULL };
        int res = 0;
 
+       CHECKED_MONO_INIT ();
        mono_threads_init (&cb, sizeof (MonoThreadInfo));
        mono_thread_info_attach ((gpointer)&cb);
 
index 32cc0e515a146d7d594b3b6f21963df47944bd3b..b6ec57751b8e4a23a5d1f750d8408bf00d5d4a59 100644 (file)
@@ -39,6 +39,7 @@ monoutils_sources = \
        mono-mmap-internal.h    \
        mono-mutex.c            \
        mono-mutex.h            \
+       mono-lazy-init.h                \
        mono-networkinterfaces.c                \
        mono-networkinterfaces.h                \
        mono-proclib.c          \
@@ -138,7 +139,9 @@ monoutils_sources = \
        memfuncs.c \
        memfuncs.h \
        parse.c \
-       parse.h
+       parse.h \
+       checked-build.c \
+       checked-build.h
 
 arch_sources = 
 
diff --git a/mono/utils/checked-build.c b/mono/utils/checked-build.c
new file mode 100644 (file)
index 0000000..7dd6599
--- /dev/null
@@ -0,0 +1,228 @@
+/*
+ * checked-build.c: Expensive asserts used when mono is built with --with-checked-build=yes
+ *
+ * Author:
+ *     Rodrigo Kumpera (kumpera@gmail.com)
+ *
+ * (C) 2015 Xamarin
+ */
+#include <config.h>
+#ifdef CHECKED_BUILD
+
+#include <mono/utils/checked-build.h>
+#include <mono/utils/mono-threads.h>
+#include <mono/utils/mono-tls.h>
+#include <glib.h>
+
+#define MAX_NATIVE_BT 6
+#define MAX_NATIVE_BT_PROBE (MAX_NATIVE_BT + 5)
+#define MAX_TRANSITIONS 3
+
+
+#ifdef HAVE_BACKTRACE_SYMBOLS
+#include <execinfo.h>
+
+//XXX We should collect just the IPs and lazily symbolificate them.
+static int
+collect_backtrace (gpointer out_data[])
+{
+       return backtrace (out_data, MAX_NATIVE_BT_PROBE);
+}
+
+static char*
+translate_backtrace (gpointer native_trace[], int size)
+{
+       char **names = backtrace_symbols (native_trace, size);
+       GString* bt = g_string_sized_new (100);
+
+       int i, j = -1;
+
+       //Figure out the cut point of useless backtraces
+       //We'll skip up to the caller of checked_build_thread_transition
+       for (i = 0; i < size; ++i) {
+               if (strstr (names [i], "checked_build_thread_transition")) {
+                       j = i + 1;
+                       break;
+               }
+       }
+
+       if (j == -1)
+               j = 0;
+       for (i = j; i < size; ++i) {
+               if (i - j <= MAX_NATIVE_BT)
+                       g_string_append_printf (bt, "\tat %s\n", names [i]);
+       }
+
+       free (names);
+       return g_string_free (bt, FALSE);
+}
+
+#else
+
+static int
+collect_backtrace (gpointer out_data[])
+{
+       return 0;
+}
+
+static char*
+translate_backtrace (gpointer native_trace[], int size)
+{
+       return g_strdup ("\tno backtrace available\n");
+}
+
+#endif
+
+
+typedef struct {
+       GPtrArray *transitions;
+} CheckState;
+
+typedef struct {
+       const char *name;
+       int from_state, next_state, suspend_count, suspend_count_delta, size;
+       gpointer backtrace [MAX_NATIVE_BT_PROBE];
+} ThreadTransition;
+
+static MonoNativeTlsKey thread_status;
+
+void
+checked_build_init (void)
+{
+       mono_native_tls_alloc (&thread_status, NULL);
+}
+
+static CheckState*
+get_state (void)
+{
+       CheckState *state = mono_native_tls_get_value (thread_status);
+       if (!state) {
+               state = g_new0 (CheckState, 1);
+               state->transitions = g_ptr_array_new ();
+               mono_native_tls_set_value (thread_status, state);
+       }
+
+       return state;
+}
+
+static void
+free_transition (ThreadTransition *t)
+{
+       g_free (t);
+}
+
+void
+checked_build_thread_transition (const char *transition, void *info, int from_state, int suspend_count, int next_state, int suspend_count_delta)
+{
+       MonoThreadInfo *cur = mono_thread_info_current_unchecked ();
+       CheckState *state = get_state ();
+       /* We currently don't record external changes as those are hard to reason about. */
+       if (cur != info)
+               return;
+
+       if (state->transitions->len >= MAX_TRANSITIONS)
+               free_transition (g_ptr_array_remove_index (state->transitions, 0));
+
+       ThreadTransition *t = g_new0 (ThreadTransition, 1);
+       t->name = transition;
+       t->from_state = from_state;
+       t->next_state = next_state;
+       t->suspend_count = suspend_count;
+       t->suspend_count_delta = suspend_count_delta;
+       t->size = collect_backtrace (t->backtrace);
+       g_ptr_array_add (state->transitions, t);
+}
+
+static void
+assertion_fail (const char *msg, ...)
+{
+       int i;
+       GString* err = g_string_sized_new (100);
+       CheckState *state = get_state ();
+
+       g_string_append_printf (err, "Assertion failure in thread %p due to: ", mono_native_thread_id_get ());
+
+       va_list args;
+       va_start (args, msg);
+       g_string_append_vprintf (err, msg, args);
+       va_end (args);
+
+       g_string_append_printf (err, "\nLast %d state transitions: (most recent first)\n", state->transitions->len);
+
+       for (i = state->transitions->len - 1; i >= 0; --i) {
+               ThreadTransition *t = state->transitions->pdata [i];
+               char *bt = translate_backtrace (t->backtrace, t->size);
+               g_string_append_printf (err, "[%s] %s -> %s (%d) %s%d at:\n%s",
+                       t->name,
+                       mono_thread_state_name (t->from_state),
+                       mono_thread_state_name (t->next_state),
+                       t->suspend_count,
+                       t->suspend_count_delta > 0 ? "+" : "", //I'd like to see this sort of values: -1, 0, +1
+                       t->suspend_count_delta,
+                       bt);
+               g_free (bt);
+       }
+
+       g_error (err->str);
+       g_string_free (err, TRUE);
+}
+
+void
+assert_gc_safe_mode (void)
+{
+       MonoThreadInfo *cur = mono_thread_info_current ();
+       int state;
+
+       if (!cur)
+               assertion_fail ("Expected GC Safe mode but thread is not attached");
+
+       switch (state = mono_thread_info_current_state (cur)) {
+       case STATE_BLOCKING:
+       case STATE_BLOCKING_AND_SUSPENDED:
+               break;
+       default:
+               assertion_fail ("Expected GC Safe mode but was in %s state", mono_thread_state_name (state));
+       }
+}
+
+void
+assert_gc_unsafe_mode (void)
+{
+       MonoThreadInfo *cur = mono_thread_info_current ();
+       int state;
+
+       if (!cur)
+               assertion_fail ("Expected GC Unsafe mode but thread is not attached");
+
+       switch (state = mono_thread_info_current_state (cur)) {
+       case STATE_RUNNING:
+       case STATE_ASYNC_SUSPEND_REQUESTED:
+       case STATE_SELF_SUSPEND_REQUESTED:
+               break;
+       default:
+               assertion_fail ("Expected GC Unsafe mode but was in %s state", mono_thread_state_name (state));
+       }
+}
+
+void
+assert_gc_neutral_mode (void)
+{
+       MonoThreadInfo *cur = mono_thread_info_current ();
+       int state;
+
+       if (!cur)
+               assertion_fail ("Expected GC Neutral mode but thread is not attached");
+
+       switch (state = mono_thread_info_current_state (cur)) {
+       case STATE_RUNNING:
+       case STATE_ASYNC_SUSPEND_REQUESTED:
+       case STATE_SELF_SUSPEND_REQUESTED:
+       case STATE_BLOCKING:
+       case STATE_BLOCKING_AND_SUSPENDED:
+               break;
+       default:
+               assertion_fail ("Expected GC Neutral mode but was in %s state", mono_thread_state_name (state));
+       }
+}
+
+#endif /* CHECKED_BUILD */
diff --git a/mono/utils/checked-build.h b/mono/utils/checked-build.h
new file mode 100644 (file)
index 0000000..d2ba9ec
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ * checked-build.h: Expensive asserts used when mono is built with --with-checked-build=yes
+ *
+ * Author:
+ *     Rodrigo Kumpera (kumpera@gmail.com)
+ *
+ * (C) 2015 Xamarin
+ */
+
+#ifndef __CHECKED_BUILD_H__
+#define __CHECKED_BUILD_H__
+
+#include <config.h>
+
+#ifdef CHECKED_BUILD
+
+/*
+GC runtime modes rules:
+
+- GC Safe
+Can:
+Call into foreigh functions.
+Call GC Safe or Neutral modes functions.
+Read from pinned managed memory.
+
+Cannot:
+Touch managed memory (read/write).
+Be dettached.
+
+What's good for?
+Doing blocking calls.
+
+- GC Unsafe
+Can:
+Touch managed memory (read/write).
+Call GC Unsafe or Neutral modes functions.
+
+Cannot:
+Call foreign native code (embedder callbacks, pinvokes, etc)
+Call into any Blocking functions/syscalls (mutexes, IO, etc)
+Be dettached.
+
+What's good for?
+Poking into managed memory.
+
+-- GC Neutral
+Can:
+Call other GC Neutral mode functions.
+
+Cannot:
+Touch managed memory.
+Call foreign native code (embedder callbacks, pinvokes, etc)
+Call into any Blocking functions/syscalls (mutexes, IO, etc)
+Be dettached.
+
+What's good for?
+Functions that can be called from both coop or preept modes.
+
+*/
+
+#define MONO_REQ_GC_SAFE_MODE do {     \
+       assert_gc_safe_mode (); \
+} while (0);
+
+#define MONO_REQ_GC_UNSAFE_MODE do {   \
+       assert_gc_unsafe_mode ();       \
+} while (0);
+
+#define MONO_REQ_GC_NEUTRAL_MODE do {  \
+       assert_gc_neutral_mode ();      \
+} while (0);
+
+/*
+This can be called by embedders
+*/
+#define MONO_REQ_API_ENTRYPOINT
+
+/*
+The JIT will generate code that will land on this function
+*/
+#define MONO_REQ_RUNTIME_ENTRYPOINT
+
+#define CHECKED_MONO_INIT() do { checked_build_init (); } while (0)
+
+#define CHECKED_BUILD_THREAD_TRANSITION(transition, info, from_state, suspend_count, next_state, suspend_count_delta) do {     \
+       checked_build_thread_transition (transition, info, from_state, suspend_count, next_state, suspend_count_delta); \
+} while (0)
+
+void assert_gc_safe_mode (void);
+void assert_gc_unsafe_mode (void);
+void assert_gc_neutral_mode (void);
+
+void checked_build_init (void);
+void checked_build_thread_transition(const char *transition, void *info, int from_state, int suspend_count, int next_state, int suspend_count_delta);
+
+#else
+
+#define MONO_REQ_GC_SAFE_MODE
+#define MONO_REQ_GC_UNSAFE_MODE
+#define MONO_REQ_GC_NEUTRAL_MODE
+#define MONO_REQ_API_ENTRYPOINT
+#define MONO_REQ_RUNTIME_ENTRYPOINT
+
+#define CHECKED_MONO_INIT()
+#define CHECKED_BUILD_THREAD_TRANSITION(transition, info, from_state, suspend_count, next_state, suspend_count_delta)
+
+#endif /* CHECKED_BUILD */
+
+#endif
index 19040885da612aaf9908a3dedec6831aab1b491e..7944e2c986b68ceaa2dd2b86cb2fc5d3946f2d15 100644 (file)
 /* All OSX versions up to 10.8 */
 #define TLS_VECTOR_OFFSET_CATS 0x60
 #define TLS_VECTOR_OFFSET_10_9 0xe0
+#define TLS_VECTOR_OFFSET_10_11 0x100
+
+/* This is 2 slots less than the known low */
+#define TLS_PROBE_LOW_WATERMARK 0x50
+/* This is 28 slots above the know high, which is more than the known high-low*/
+#define TLS_PROBE_HIGH_WATERMARK 0x200
+
 
 static int tls_vector_offset;
 
@@ -100,6 +107,7 @@ mono_mach_get_tls_address_from_thread (pthread_t thread, pthread_key_t key)
         */
        intptr_t *p = (intptr_t *)thread;
        intptr_t **tsd = (intptr_t **) ((char*)p + tls_vector_offset);
+       g_assert (tls_vector_offset != -1);
 
        return (void *) &tsd [key];
 }
@@ -113,6 +121,7 @@ mono_mach_arch_get_tls_value_from_thread (pthread_t thread, guint32 key)
 void
 mono_mach_init (pthread_key_t key)
 {
+       int i;
        void *old_value = pthread_getspecific (key);
        void *canary = (void*)0xDEADBEEFu;
 
@@ -130,7 +139,21 @@ mono_mach_init (pthread_key_t key)
        if (mono_mach_arch_get_tls_value_from_thread (pthread_self (), key) == canary)
                goto ok;
 
-       g_error ("could not discover the mach TLS offset");
+       tls_vector_offset = TLS_VECTOR_OFFSET_10_11;
+       if (mono_mach_arch_get_tls_value_from_thread (pthread_self (), key) == canary)
+               goto ok;
+
+       /*Fallback to scanning a large range of offsets*/
+       for (i = TLS_PROBE_LOW_WATERMARK; i <= TLS_PROBE_HIGH_WATERMARK; i += 4) {
+               tls_vector_offset = i;
+               if (mono_mach_arch_get_tls_value_from_thread (pthread_self (), key) == canary) {
+                       g_warning ("Found new TLS offset at %d", i);
+                       goto ok;
+               }
+       }
+
+       tls_vector_offset = -1;
+       g_warning ("could not discover the mach TLS offset");
 ok:
        pthread_setspecific (key, old_value);
 }
index eb1e009bfc20c8648ef993432ee01ef1f7f25cda..ef5e6f1f250e25496796b48106f8e41558660735 100644 (file)
@@ -126,6 +126,9 @@ mono_mach_arch_get_thread_state_size ()
 kern_return_t
 mono_mach_arch_get_thread_state (thread_port_t thread, thread_state_t state, mach_msg_type_number_t *count)
 {
+#if defined(HOST_WATCHOS)
+       g_error ("thread_get_state() is not supported by this platform");
+#else  
 #ifdef TARGET_ARM64
        arm_unified_thread_state_t *arch_state = (arm_unified_thread_state_t *) state;
        kern_return_t ret;
@@ -142,15 +145,20 @@ mono_mach_arch_get_thread_state (thread_port_t thread, thread_state_t state, mac
        ret = thread_get_state (thread, ARM_THREAD_STATE, (thread_state_t) arch_state, count);
 #endif
        return ret;
+#endif
 }
 
 kern_return_t
 mono_mach_arch_set_thread_state (thread_port_t thread, thread_state_t state, mach_msg_type_number_t count)
 {
+#if defined(HOST_WATCHOS)
+       g_error ("thread_set_state() is not supported by this platform");
+#else
 #ifdef TARGET_ARM64
-       return thread_set_state (thread, ARM_UNIFIED_THREAD_STATE_COUNT, state, count);
+       return thread_set_state (thread, ARM_UNIFIED_THREAD_STATE, state, count);
 #else
-       return thread_set_state (thread, ARM_THREAD_STATE_COUNT, state, count);
+       return thread_set_state (thread, ARM_THREAD_STATE, state, count);
+#endif
 #endif
 }
 
@@ -163,6 +171,7 @@ mono_mach_get_tls_address_from_thread (pthread_t thread, pthread_key_t key)
         */
        intptr_t *p = (intptr_t *) thread;
        intptr_t **tsd = (intptr_t **) ((char*)p + tls_vector_offset);
+       g_assert (tls_vector_offset != -1);
 
        return (void *) &tsd [key];
 }
@@ -201,7 +210,8 @@ mono_mach_init (pthread_key_t key)
                }
        }
 
-       g_error ("could not discover the mach TLS offset");
+       tls_vector_offset = -1;
+       g_warning ("could not discover the mach TLS offset");
 ok:
        pthread_setspecific (key, old_value);
 }
index 76d2b06beef149fdee73ddc7c1977bc6c2f40d42..5650e8b92c916b7a584ccfe073d9e915a30ff489 100644 (file)
 /* All OSX versions up to 10.8 */
 #define TLS_VECTOR_OFFSET_CATS 0x48
 #define TLS_VECTOR_OFFSET_10_9 0xb0
+#define TLS_VECTOR_OFFSET_10_11 0x100
+
+
+/* This is 2 slots less than the known low */
+#define TLS_PROBE_LOW_WATERMARK 0x40
+/* This is 28 slots above the know high, which is more than the known high-low*/
+#define TLS_PROBE_HIGH_WATERMARK 0x120
+
 
 static int tls_vector_offset;
 
@@ -73,20 +81,27 @@ mono_mach_arch_get_thread_state_size ()
 kern_return_t
 mono_mach_arch_get_thread_state (thread_port_t thread, thread_state_t state, mach_msg_type_number_t *count)
 {
+#if defined(HOST_WATCHOS)
+       g_error ("thread_get_state() is not supported by this platform");
+#else
        x86_thread_state32_t *arch_state = (x86_thread_state32_t *) state;
        kern_return_t ret;
 
        *count = x86_THREAD_STATE32_COUNT;
-
        ret = thread_get_state (thread, x86_THREAD_STATE32, (thread_state_t) arch_state, count);
 
        return ret;
+#endif
 }
 
 kern_return_t
 mono_mach_arch_set_thread_state (thread_port_t thread, thread_state_t state, mach_msg_type_number_t count)
 {
+#if defined(HOST_WATCHOS)
+       g_error ("thread_set_state() is not supported by this platform");
+#else
        return thread_set_state (thread, x86_THREAD_STATE32, state, count);
+#endif 
 }
 
 void *
@@ -98,6 +113,7 @@ mono_mach_get_tls_address_from_thread (pthread_t thread, pthread_key_t key)
         */
        intptr_t *p = (intptr_t *) thread;
        intptr_t **tsd = (intptr_t **) ((char*)p + tls_vector_offset);
+       g_assert (tls_vector_offset != -1);
 
        return (void *) &tsd [key];     
 }
@@ -111,6 +127,7 @@ mono_mach_arch_get_tls_value_from_thread (pthread_t thread, guint32 key)
 void
 mono_mach_init (pthread_key_t key)
 {
+       int i;
        void *old_value = pthread_getspecific (key);
        void *canary = (void*)0xDEADBEEFu;
 
@@ -128,7 +145,21 @@ mono_mach_init (pthread_key_t key)
        if (mono_mach_arch_get_tls_value_from_thread (pthread_self (), key) == canary)
                goto ok;
 
-       g_error ("could not discover the mach TLS offset");
+       tls_vector_offset = TLS_VECTOR_OFFSET_10_11;
+       if (mono_mach_arch_get_tls_value_from_thread (pthread_self (), key) == canary)
+               goto ok;
+
+       /*Fallback to scanning a large range of offsets*/
+       for (i = TLS_PROBE_LOW_WATERMARK; i <= TLS_PROBE_HIGH_WATERMARK; i += 4) {
+               tls_vector_offset = i;
+               if (mono_mach_arch_get_tls_value_from_thread (pthread_self (), key) == canary) {
+                       g_warning ("Found new TLS offset at %d", i);
+                       goto ok;
+               }
+       }
+
+       tls_vector_offset = -1;
+       g_warning ("could not discover the mach TLS offset");
 ok:
        pthread_setspecific (key, old_value);
 }
index d06a2143a02e6394146385c1a9bc377978701a50..a13c0b7798420c2ef1a533540960230c2ce96201 100644 (file)
 
 #elif defined(TARGET_MACH) && (defined(__i386__) || defined(__x86_64__))
 
-#define MONO_HAVE_FAST_TLS
+#define MONO_HAVE_FAST_TLS 1
 #define MONO_FAST_TLS_SET(x,y) pthread_setspecific(x, y)
 #define MONO_FAST_TLS_GET(x) pthread_getspecific(x)
 #define MONO_FAST_TLS_ADDR(x) (mono_mach_get_tls_address_from_thread (pthread_self (), x))
        pthread_key_t _y;       \
        (void) (&_x == &_y);            \
        y = (gint32) x; })
+
+#elif (defined(TARGET_ANDROID) || defined(TARGET_IOS)) && defined(TARGET_ARM)
+
+#define MONO_HAVE_FAST_TLS
+#define MONO_FAST_TLS_SET(x,y) pthread_setspecific(x, y)
+#define MONO_FAST_TLS_GET(x) pthread_getspecific(x)
+#define MONO_FAST_TLS_INIT(x) pthread_key_create(&x, NULL)
+#define MONO_FAST_TLS_DECLARE(x) static pthread_key_t x;
+
+#define MONO_THREAD_VAR_OFFSET(var, offset) do { offset = (int)var; } while (0)
+
 #else /* no HAVE_KW_THREAD */
 
 #define MONO_THREAD_VAR_OFFSET(var,offset) (offset) = -1
index 6aaa04f07dd585fb9fd58637c350d09fcbca87da..30521b2af9ef81e221add9051db5cbf3f46a299f 100644 (file)
@@ -30,7 +30,6 @@ struct _MonoConcurrentHashTable {
        volatile conc_table *table; /* goes to HP0 */
        GHashFunc hash_func;
        GEqualFunc equal_func;
-       mono_mutex_t *mutex;
        int element_count;
        int overflow_count;
        GDestroyNotify key_destroy_func;
@@ -111,10 +110,9 @@ expand_table (MonoConcurrentHashTable *hash_table)
 
 
 MonoConcurrentHashTable*
-mono_conc_hashtable_new (mono_mutex_t *mutex, GHashFunc hash_func, GEqualFunc key_equal_func)
+mono_conc_hashtable_new (GHashFunc hash_func, GEqualFunc key_equal_func)
 {
        MonoConcurrentHashTable *res = g_new0 (MonoConcurrentHashTable, 1);
-       res->mutex = mutex;
        res->hash_func = hash_func ? hash_func : g_direct_hash;
        res->equal_func = key_equal_func ? key_equal_func : g_direct_equal;
        // res->equal_func = g_direct_equal;
@@ -125,9 +123,9 @@ mono_conc_hashtable_new (mono_mutex_t *mutex, GHashFunc hash_func, GEqualFunc ke
 }
 
 MonoConcurrentHashTable*
-mono_conc_hashtable_new_full (mono_mutex_t *mutex, GHashFunc hash_func, GEqualFunc key_equal_func, GDestroyNotify key_destroy_func, GDestroyNotify value_destroy_func)
+mono_conc_hashtable_new_full (GHashFunc hash_func, GEqualFunc key_equal_func, GDestroyNotify key_destroy_func, GDestroyNotify value_destroy_func)
 {
-       MonoConcurrentHashTable *res = mono_conc_hashtable_new (mutex, hash_func, key_equal_func);
+       MonoConcurrentHashTable *res = mono_conc_hashtable_new (hash_func, key_equal_func);
        res->key_destroy_func = key_destroy_func;
        res->value_destroy_func = value_destroy_func;
        return res;
@@ -215,7 +213,9 @@ retry:
 }
 
 /**
- * mono_conc_hashtable_remove
+ * mono_conc_hashtable_remove:
+ *
+ * Remove a value from the hashtable. Requires external locking
  *
  * @Returns the old value if key is already present or null
  */
@@ -229,7 +229,6 @@ mono_conc_hashtable_remove (MonoConcurrentHashTable *hash_table, gpointer key)
        g_assert (key != NULL && key != TOMBSTONE);
 
        hash = mix_hash (hash_table->hash_func (key));
-       mono_mutex_lock (hash_table->mutex);
 
        table = (conc_table*)hash_table->table;
        kvs = table->kvs;
@@ -239,7 +238,6 @@ mono_conc_hashtable_remove (MonoConcurrentHashTable *hash_table, gpointer key)
        if (!hash_table->equal_func) {
                for (;;) {
                        if (!kvs [i].key) {
-                               mono_mutex_unlock (hash_table->mutex);
                                return NULL; /*key not found*/
                        }
 
@@ -249,7 +247,6 @@ mono_conc_hashtable_remove (MonoConcurrentHashTable *hash_table, gpointer key)
                                mono_memory_barrier ();
                                kvs [i].key = TOMBSTONE;
 
-                               mono_mutex_unlock (hash_table->mutex);
                                if (hash_table->key_destroy_func != NULL)
                                        (*hash_table->key_destroy_func) (key);
                                if (hash_table->value_destroy_func != NULL)
@@ -263,7 +260,6 @@ mono_conc_hashtable_remove (MonoConcurrentHashTable *hash_table, gpointer key)
                GEqualFunc equal = hash_table->equal_func;
                for (;;) {
                        if (!kvs [i].key) {
-                               mono_mutex_unlock (hash_table->mutex);
                                return NULL; /*key not found*/
                        }
 
@@ -274,7 +270,6 @@ mono_conc_hashtable_remove (MonoConcurrentHashTable *hash_table, gpointer key)
                                mono_memory_barrier ();
                                kvs [i].key = TOMBSTONE;
 
-                               mono_mutex_unlock (hash_table->mutex);
                                if (hash_table->key_destroy_func != NULL)
                                        (*hash_table->key_destroy_func) (old_key);
                                if (hash_table->value_destroy_func != NULL)
@@ -287,8 +282,9 @@ mono_conc_hashtable_remove (MonoConcurrentHashTable *hash_table, gpointer key)
        }
 }
 /**
- * mono_conc_hashtable_insert
- *
+ * mono_conc_hashtable_insert:
+ * 
+ * Insert a value into the hashtable. Requires external locking.
  * @Returns the old value if key is already present or null
  */
 gpointer
@@ -302,7 +298,6 @@ mono_conc_hashtable_insert (MonoConcurrentHashTable *hash_table, gpointer key, g
        g_assert (value != NULL);
 
        hash = mix_hash (hash_table->hash_func (key));
-       mono_mutex_lock (hash_table->mutex);
 
        if (hash_table->element_count >= hash_table->overflow_count)
                expand_table (hash_table);
@@ -320,12 +315,10 @@ mono_conc_hashtable_insert (MonoConcurrentHashTable *hash_table, gpointer key, g
                                mono_memory_barrier ();
                                kvs [i].key = key;
                                ++hash_table->element_count;
-                               mono_mutex_unlock (hash_table->mutex);
                                return NULL;
                        }
                        if (key == kvs [i].key) {
                                gpointer value = kvs [i].value;
-                               mono_mutex_unlock (hash_table->mutex);
                                return value;
                        }
                        i = (i + 1) & table_mask;
@@ -339,12 +332,10 @@ mono_conc_hashtable_insert (MonoConcurrentHashTable *hash_table, gpointer key, g
                                mono_memory_barrier ();
                                kvs [i].key = key;
                                ++hash_table->element_count;
-                               mono_mutex_unlock (hash_table->mutex);
                                return NULL;
                        }
                        if (equal (key, kvs [i].key)) {
                                gpointer value = kvs [i].value;
-                               mono_mutex_unlock (hash_table->mutex);
                                return value;
                        }
                        i = (i + 1) & table_mask;
@@ -352,6 +343,11 @@ mono_conc_hashtable_insert (MonoConcurrentHashTable *hash_table, gpointer key, g
        }
 }
 
+/**
+ * mono_conc_hashtable_foreach:
+ *
+ * Calls @func for each value in the hashtable. Requires external locking.
+ */
 void
 mono_conc_hashtable_foreach (MonoConcurrentHashTable *hash_table, GHFunc func, gpointer userdata)
 {
@@ -359,11 +355,9 @@ mono_conc_hashtable_foreach (MonoConcurrentHashTable *hash_table, GHFunc func, g
        conc_table *table = (conc_table*)hash_table->table;
        key_value_pair *kvs = table->kvs;
 
-  mono_mutex_lock (hash_table->mutex);
        for (i = 0; i < table->table_size; ++i) {
                if (kvs [i].key && kvs [i].key != TOMBSTONE) {
                        func (kvs [i].key, kvs [i].value, userdata);
                }
        }
-       mono_mutex_unlock (hash_table->mutex);
 }
index 91d4e1948b1c6706da1f46665c1ecef32ed5a7fb..a1d20f1b04e7695dafff1b4825eb9a3609dfa887 100644 (file)
@@ -17,8 +17,8 @@
 
 typedef struct _MonoConcurrentHashTable MonoConcurrentHashTable;
 
-MONO_API MonoConcurrentHashTable* mono_conc_hashtable_new (mono_mutex_t *mutex, GHashFunc hash_func, GEqualFunc key_equal_func);
-MONO_API MonoConcurrentHashTable* mono_conc_hashtable_new_full (mono_mutex_t *mutex, GHashFunc hash_func, GEqualFunc key_equal_func, GDestroyNotify key_destroy_func, GDestroyNotify value_destroy_func);
+MONO_API MonoConcurrentHashTable* mono_conc_hashtable_new (GHashFunc hash_func, GEqualFunc key_equal_func);
+MONO_API MonoConcurrentHashTable* mono_conc_hashtable_new_full (GHashFunc hash_func, GEqualFunc key_equal_func, GDestroyNotify key_destroy_func, GDestroyNotify value_destroy_func);
 MONO_API void mono_conc_hashtable_destroy (MonoConcurrentHashTable *hash_table);
 MONO_API gpointer mono_conc_hashtable_lookup (MonoConcurrentHashTable *hash_table, gpointer key);
 MONO_API gpointer mono_conc_hashtable_insert (MonoConcurrentHashTable *hash_table, gpointer key, gpointer value);
index a05c7bab76d9e0d1701bd879e4abf7f2311f1a55..b796c81ec7be686242fece021f587e6b3888f0e3 100644 (file)
@@ -34,7 +34,7 @@
 void
 mono_sigctx_to_monoctx (void *sigctx, MonoContext *mctx)
 {
-#if defined (__native_client__)
+#if defined (__native_client__) || defined (HOST_WATCHOS)
        printf("WARNING: mono_arch_sigctx_to_monoctx() called!\n");
        mctx->eax = 0xDEADBEEF;
        mctx->ebx = 0xDEADBEEF;
@@ -87,7 +87,7 @@ mono_sigctx_to_monoctx (void *sigctx, MonoContext *mctx)
 void
 mono_monoctx_to_sigctx (MonoContext *mctx, void *sigctx)
 {
-#if defined(__native_client__)
+#if defined(__native_client__) || defined(HOST_WATCHOS)
        printf("WARNING: mono_arch_monoctx_to_sigctx() called!\n");
 #elif defined(MONO_SIGNAL_USE_SIGACTION)
        ucontext_t *ctx = (ucontext_t*)sigctx;
index 1ea32db6bd3913821d81a3b608a8a561f9a1969f..33a821a198a9bd57851f752fb29a49cd3619b75d 100644 (file)
 #include <signal.h>
 #endif
 
+#ifdef HOST_WATCHOS
+#include <libunwind.h>
+#endif
+
 /*
  * General notes about mono-context.
  * Each arch defines a MonoContext struct with all GPR regs + IP/PC.
@@ -248,6 +252,33 @@ typedef struct {
 #define MONO_CONTEXT_GET_BP(ctx) ((gpointer)((ctx)->regs [ARMREG_FP]))
 #define MONO_CONTEXT_GET_SP(ctx) ((gpointer)((ctx)->regs [ARMREG_SP]))
 
+#if defined(HOST_WATCHOS)
+
+#define MONO_CONTEXT_GET_CURRENT(ctx) do { \
+       unw_context_t uctx; \
+       unw_cursor_t c; \
+       unw_word_t data; \
+       g_assert (unw_getcontext (&uctx) == 0); \
+       g_assert (unw_init_local (&c, &uctx) == 0); \
+       for (int reg = 0; reg < 13; ++reg) { \
+               unw_get_reg (&c, (unw_regnum_t) UNW_ARM_R0 + reg, &data); \
+               ctx.regs[reg] = data; \
+       } \
+       unw_get_reg (&c, UNW_ARM_SP, &data); \
+       ctx.regs[ARMREG_SP] = data; \
+       unw_get_reg (&c, UNW_ARM_LR, &data); \
+       ctx.regs[ARMREG_LR] = data; \
+       unw_get_reg (&c, UNW_ARM_IP, &data); \
+       ctx.regs[ARMREG_PC] = data; \
+       ctx.pc = ctx.regs[ARMREG_PC]; \
+       for (int reg = 0; reg < 16; ++reg) { \
+               unw_get_reg (&c, (unw_regnum_t) UNW_ARM_D0 + reg, &data); \
+               ctx.fregs[reg] = data; \
+       } \
+} while (0);
+
+#else
+
 #define MONO_CONTEXT_GET_CURRENT(ctx)  do {    \
        __asm__ __volatile__(                   \
                "push {r0}\n"                           \
@@ -271,6 +302,8 @@ typedef struct {
        ctx.pc = ctx.regs [15];                 \
 } while (0)
 
+#endif
+
 #define MONO_ARCH_HAS_MONO_CONTEXT 1
 
 #elif (defined(__aarch64__) && !defined(MONO_CROSS_COMPILE)) || (defined(TARGET_ARM64))
index 313aca8bcb432fbd174cfd6deaaab76a04ef1514..7a4522f8db9907a0e18a239cf6ef5cffdf86b0f4 100644 (file)
@@ -3,84 +3,99 @@
 
 #include "mono/utils/mono-hwcap.h"
 
-typedef struct
-{
-       char    n3:1;           // N3 instructions present
-       char    zArch:1;        // z/Architecture mode installed
-       char    zAct:1;         // z/Architecture mode active
-       char    date:1;         // DAT enhancement facility
-       char    idte1:1;        // IDTE present (PST)
-       char    idte2:1;        // IDTE present (REG)
-       char    asnlx:1;        // ASN and LX reuse facility
-       char    stfle:1;        // STFLE installed
-       char    zDATe:1;        // Enhanced DAT in z mode
-       char    srstat:1;       // Sense running status facility
-       char    cSSKE:1;        // Conditional SSKE facility
-       char    topo:1;         // Configuration topology facility
-       char    rv1:1;          // Reserved
-       char    xTrans2:1;      // Extended translation facility 2
-       char    msgSec:1;       // Message security facility
-       char    longDsp:1;      // Long displacement facility
-       char    hiPerfLD:1;     // High performance long displacement facility
-       char    hfpMAS:1;       // HFP multiply-and-add/subtrace facility
-       char    xImm:1;         // Extended immediate facility
-       char    xTrans3:1;      // Extended translation facility 3
-       char    hfpUnX:1;       // HFP unnormalized extension facility
-       char    etf2:1;         // ETF2-enhancement facility
-       char    stckf:1;        // Store-clock-fast facility
-       char    parse:1;        // Parsing enhancement facility
-       char    mvcos:1;        // MVCOS facility
-       char    todSteer:1;     // TOD-clock steering facility
-       char    etf3:1;         // ETF3-enhancement facility
-       char    xCPUtm:1;       // Extract CPU time facility
-       char    csst:1;         // Compare-swap-and-store facility
-       char    csst2:1;        // Compare-swap-and-store facility 2
-       char    giX:1;          // General instructions extension facility
-       char    exX:1;          // Execute extensions facility
-       char    em:1;           // Enhanced monitor
-       char    rv2:1;          // Reserved
-       char    spp:1;          // Set program parameters
-       char    fps:1;          // Floating point support enhancement
-       char    dfp:1;          // Decimal floating point facility
-       char    hiDFP:1;        // High Performance DFP facility
-       char    pfpo:1;         // PFPO instruction facility
-       char    doclpkia:1;     // DO/Fast BCR/CL/PK/IA
-       char    rv3:1;          // Reserved
-       char    cmpsce:1;       // CMPSC enhancement
-       char    dfpzc:1;        // DFP zoned-conversion
-       char    eh:1;           // Execution hint
-       char    lt:1;           // Load and trap
-       char    mi:1;           // Miscellaneous instruction enhancements
-       char    pa:1;           // Processor assist
-       char    cx:1;           // Constrained transactional execution
-       char    ltlb:1;         // Local TLB clearing
-       char    ia2:1;          // Interlocked access 2
-       char    rv4:1;          // Reserved;
-       char    rv5:1;          // Reserved;
-       char    rv6:1;          // Reserved;
-       char    rv7:1;          // Reserved;
-       char    rv8:1;          // Reserved;
-       char    rv9:1;          // Reserved;
-       char    rva:1;          // Reserved;
-       char    rvb:1;          // Reserved;
-       char    rvc:1;          // Reserved;
-       char    rvd:1;          // Reserved;
-       char    rve:1;          // Reserved;
-       char    rvf:1;          // Reserved;
-       char    rvg:1;          // Reserved;
-       char    rb:1;           // RRB multiple
-       char    cmc:1;          // CPU measurement counter
-       char    cms:1;          // CPU measurement sampling
-       char    rvh:4;          // Reserved
-       char    tx:1;           // Transactional execution
-       char    rvi:1;          // Reserved
-       char    axsi:1;         // Access exception/store indication
-       char    m3:1;           // Message security extension 3
-       char    m4:1;           // Message security extension 4
-       char    ed2:1;          // Enhanced DAT 2
-       int64_t end[0];         // End on a double word
-} __attribute__((aligned(8))) facilityList_t;
-       
+typedef struct __FACLIST__ {
+       uint8_t n3:1;           // 000 - N3 instructions
+       uint8_t zi:1;           // 001 - z/Arch installed
+       uint8_t za:1;           // 002 - z/Arch active
+       uint8_t date:1;         // 003 - DAT-enhancement
+       uint8_t idtes:1;        // 004 - IDTE-segment tables
+       uint8_t idter:1;        // 005 - IDTE-region tables
+       uint8_t asnlx:1;        // 006 - ASN-LX reuse
+       uint8_t stfle:1;        // 007 - STFLE
+       uint8_t edat1:1;        // 008 - EDAT 1
+       uint8_t srs:1;          // 009 - Sense-Running-Status
+       uint8_t csske:1;        // 010 - Conditional SSKE
+       uint8_t ctf:1;          // 011 - Configuration-topology
+       uint8_t ibm01:1;        // 012 - Assigned to IBM
+       uint8_t ipter:1;        // 013 - IPTE-range
+       uint8_t nqks:1;         // 014 - Nonquiescing key-setting
+       uint8_t ibm02:1;        // 015 - Assigned to IBM
+       uint8_t etf2:1;         // 016 - Extended translation 2
+       uint8_t msa:1;          // 017 - Message security assist 1
+       uint8_t ld:1;           // 018 - Long displacement
+       uint8_t ldh:1;          // 019 - Long displacement high perf
+       uint8_t mas:1;          // 020 - HFP multiply-add-subtract
+       uint8_t eif:1;          // 021 - Extended immediate
+       uint8_t etf3:1;         // 022 - Extended translation 3
+       uint8_t hux:1;          // 023 - HFP unnormalized extension
+       uint8_t etf2e:1;        // 024 - Extended translation enhanced 2
+       uint8_t stckf:1;        // 025 - Store clock fast
+       uint8_t pe:1;           // 026 - Parsing enhancement
+       uint8_t mvcos:1;        // 027 - Move with optional specs
+       uint8_t tods:1;         // 028 - TOD steering
+       uint8_t x000:1;         // 029 - Undefined
+       uint8_t etf3e:1;        // 030 - ETF3 enhancement
+       uint8_t ecput:1;        // 031 - Extract CPU time
+       uint8_t csst:1;         // 032 - Compare swap and store
+       uint8_t csst2:1;        // 033 - Compare swap and store 2
+       uint8_t gie:1;          // 034 - General instructions extension
+       uint8_t ee:1;           // 035 - Execute extensions
+       uint8_t em:1;           // 036 - Enhanced monitor
+       uint8_t fpe:1;          // 037 - Floating point extension
+       uint8_t x001:1;         // 038 - Undefined
+       uint8_t ibm03:1;        // 039 - Assigned to IBM
+       uint8_t spp:1;          // 040 - Set program parameters
+       uint8_t fpse:1;         // 041 - FP support enhancement
+       uint8_t dfp:1;          // 042 - DFP
+       uint8_t dfph:1;         // 043 - DFP high performance
+       uint8_t pfpo:1;         // 044 - PFPO instruction
+       uint8_t multi:1;        // 045 - Multiple inc load/store on CC 1
+       uint8_t ibm04:1;        // 046 - Assigned to IBM
+       uint8_t cmpsce:1;       // 047 - CMPSC enhancement
+       uint8_t dfpzc:1;        // 048 - DFP zoned conversion
+       uint8_t misc:1;         // 049 - Multiple inc load and trap
+       uint8_t ctx:1;          // 050 - Constrained transactional-execution
+       uint8_t ltlb:1;         // 051 - Local TLB clearing
+       uint8_t ia:1;           // 052 - Interlocked access
+       uint8_t lsoc2:1;        // 053 - Load/store on CC 2
+       uint8_t x002:1;         // 054 - Undefined
+       uint8_t ibm05:1;        // 055 - Assigned to IBM
+       uint8_t x003:1;         // 056 - Undefined
+       uint8_t msa5:1;         // 057 - Message security assist 5
+       uint8_t x004:1;         // 058 - Undefined
+       uint8_t x005:1;         // 059 - Undefined
+       uint8_t x006:1;         // 060 - Undefined
+       uint8_t x007:1;         // 061 - Undefined
+       uint8_t ibm06:1;        // 062 - Assigned to IBM
+       uint8_t x008:1;         // 063 - Undefined
+       uint8_t x009:1;         // 064 - Undefined
+       uint8_t ibm07:1;        // 065 - Assigned to IBM
+       uint8_t rrbm:1;         // 066 - Reset reference bits multiple
+       uint8_t cmc:1;          // 067 - CPU measurement counter
+       uint8_t cms:1;          // 068 - CPU Measurement sampling
+       uint8_t ibm08:1;        // 069 - Assigned to IBM
+       uint8_t ibm09:1;        // 070 - Assigned to IBM
+       uint8_t ibm10:1;        // 071 - Assigned to IBM
+       uint8_t ibm11:1;        // 072 - Assigned to IBM
+       uint8_t txe:1;          // 073 - Transactional execution
+       uint8_t sthy:1;         // 074 - Store hypervisor information
+       uint8_t aefsi:1;        // 075 - Access exception fetch/store indication
+       uint8_t msa3:1;         // 076 - Message security assist 3
+       uint8_t msa4:1;         // 077 - Message security assist 4
+       uint8_t edat2:1;        // 078 - Enhanced DAT 2
+       uint8_t x010:1;         // 079 - Undefined
+       uint8_t dfppc:1;        // 080 - DFP packed conversion
+       uint8_t x011:7;         // 081-87 - Undefined
+       uint8_t x012[5];        // 088-127 - Undefined
+       uint8_t ibm12:1;        // 128 - Assigned to IBM
+       uint8_t vec:1;          // 129 - Vector facility
+       uint8_t x013:6;         // 130-135 - Undefined
+       uint8_t x014:6;         // 136-141 - Undefined
+       uint8_t sccm:1;         // 142 - Store CPU counter multiple
+       uint8_t ibm13:1;        // 143 - Assigned to IBM
+       uint8_t x015[14];       // 144-256 Undefined
+} __attribute__ ((packed)) __attribute__ ((aligned(8))) facilityList_t;
+
 extern facilityList_t facs;
 
 #endif /* __MONO_UTILS_HWCAP_S390X_H__ */
diff --git a/mono/utils/mono-lazy-init.h b/mono/utils/mono-lazy-init.h
new file mode 100644 (file)
index 0000000..99631f0
--- /dev/null
@@ -0,0 +1,124 @@
+/*
+ * mono-lazy-init.h: Lazy initialization and cleanup utilities
+ *
+ * Authors: Ludovic Henry <ludovic@xamarin.com>
+ *
+ * Copyright 2015 Xamarin, Inc. (www.xamarin.com)
+ */
+
+#ifndef __MONO_LAZY_INIT_H__
+#define __MONO_LAZY_INIT_H__
+
+#include <glib.h>
+
+#include <config.h>
+
+#include "atomic.h"
+#include "mono-threads.h"
+#include "mono-memory-model.h"
+
+/*
+ * These functions should be used if you want some form of lazy initialization. You can have a look at the
+ * threadpool-ms for a more detailed example.
+ *
+ * The idea is that a module can be in 5 different states:
+ *  - not initialized: it is the first state it starts in
+ *  - initializing/initialized: whenever we need this module for the first time, we need to initialize it: allocate
+ *     memory, launch background thread, etc. To achieve this, we have a module specific function (let's call it
+ *     initialize)
+ *  - cleaning/cleaned: when we want to clean this module specific data up, then we need to clean it up: deallocate
+ *     memory, wait for background threads to finish, etc. As for the initialization process, we need a module specific
+ *     function (let's call it cleanup)
+ *
+ * The switch from one state to the other can only happen in the following ways:
+ *  - not initialized
+ *  - not initialized -> initializing -> initialized
+ *  - not initialized -> cleaned
+ *  - not initialized -> initializing -> initialized -> cleaning -> cleaned
+ *
+ * The initialize and cleanup functions are guaranteed to:
+ *  - be each called once and only once
+ *  - not be called concurrently (either 2+ initialize or 2+ cleanup, either initialize and cleanup)
+ */
+
+typedef gint32 mono_lazy_init_t;
+
+enum {
+       MONO_LAZY_INIT_STATUS_NOT_INITIALIZED,
+       MONO_LAZY_INIT_STATUS_INITIALIZING,
+       MONO_LAZY_INIT_STATUS_INITIALIZED,
+       MONO_LAZY_INIT_STATUS_CLEANING,
+       MONO_LAZY_INIT_STATUS_CLEANED,
+};
+
+static inline void
+mono_lazy_initialize (mono_lazy_init_t *lazy_init, void (*initialize) (void))
+{
+       gint32 status;
+
+       g_assert (lazy_init);
+
+       status = *lazy_init;
+
+       if (status >= MONO_LAZY_INIT_STATUS_INITIALIZED)
+               return;
+       if (status == MONO_LAZY_INIT_STATUS_INITIALIZING
+            || InterlockedCompareExchange (lazy_init, MONO_LAZY_INIT_STATUS_INITIALIZING, MONO_LAZY_INIT_STATUS_NOT_INITIALIZED)
+                != MONO_LAZY_INIT_STATUS_NOT_INITIALIZED
+       ) {
+               while (*lazy_init == MONO_LAZY_INIT_STATUS_INITIALIZING)
+                       mono_thread_info_yield ();
+               g_assert (InterlockedRead (lazy_init) >= MONO_LAZY_INIT_STATUS_INITIALIZED);
+               return;
+       }
+
+       initialize ();
+
+       mono_atomic_store_release (lazy_init, MONO_LAZY_INIT_STATUS_INITIALIZED);
+}
+
+static inline void
+mono_lazy_cleanup (mono_lazy_init_t *lazy_init, void (*cleanup) (void))
+{
+       gint32 status;
+
+       g_assert (lazy_init);
+
+       status = *lazy_init;
+
+       if (status == MONO_LAZY_INIT_STATUS_NOT_INITIALIZED
+            && InterlockedCompareExchange (lazy_init, MONO_LAZY_INIT_STATUS_CLEANED, MONO_LAZY_INIT_STATUS_NOT_INITIALIZED)
+                == MONO_LAZY_INIT_STATUS_NOT_INITIALIZED
+       ) {
+               return;
+       }
+       if (status == MONO_LAZY_INIT_STATUS_INITIALIZING) {
+               while ((status = *lazy_init) == MONO_LAZY_INIT_STATUS_INITIALIZING)
+                       mono_thread_info_yield ();
+       }
+
+       if (status == MONO_LAZY_INIT_STATUS_CLEANED)
+               return;
+       if (status == MONO_LAZY_INIT_STATUS_CLEANING
+            || InterlockedCompareExchange (lazy_init, MONO_LAZY_INIT_STATUS_CLEANING, MONO_LAZY_INIT_STATUS_INITIALIZED)
+                != MONO_LAZY_INIT_STATUS_INITIALIZED
+       ) {
+               while (*lazy_init == MONO_LAZY_INIT_STATUS_CLEANING)
+                       mono_thread_info_yield ();
+               g_assert (InterlockedRead (lazy_init) == MONO_LAZY_INIT_STATUS_CLEANED);
+               return;
+       }
+
+       cleanup ();
+
+       mono_atomic_store_release (lazy_init, MONO_LAZY_INIT_STATUS_CLEANED);
+}
+
+static inline gboolean
+mono_lazy_is_initialized (mono_lazy_init_t *lazy_init)
+{
+       g_assert (lazy_init);
+       return InterlockedRead (lazy_init) == MONO_LAZY_INIT_STATUS_INITIALIZED;
+}
+
+#endif
index 93fc010ac93bc2ef52f5ebaf1ce0420b12e12913..209b9e6f0ca0e45437b54ba6373cbda941806d3a 100644 (file)
@@ -14,13 +14,15 @@ typedef enum {
         MONO_TRACE_CONFIG              = (1<<4),
        MONO_TRACE_AOT                  = (1<<5),
        MONO_TRACE_SECURITY             = (1<<6),
+       MONO_TRACE_THREADPOOL           = (1<<7),
        MONO_TRACE_ALL                  = MONO_TRACE_ASSEMBLY |
                                          MONO_TRACE_TYPE |
                                          MONO_TRACE_DLLIMPORT |
                                          MONO_TRACE_GC |
                                          MONO_TRACE_CONFIG |
                                          MONO_TRACE_AOT |
-                                         MONO_TRACE_SECURITY
+                                         MONO_TRACE_SECURITY |
+                                         MONO_TRACE_THREADPOOL
 } MonoTraceMask;
 
 void 
index 73c54f17993fee0e5cb6eb43300d85474c304ac0..54bf4db6f629e4f8f90f4e0d26ca9136950f2b39 100644 (file)
@@ -213,10 +213,10 @@ mono_trace_set_mask_string (const char *value)
        const char *tok;
        guint32 flags = 0;
 
-       const char *valid_flags[] = {"asm", "type", "dll", "gc", "cfg", "aot", "security", "all", NULL};
+       const char *valid_flags[] = {"asm", "type", "dll", "gc", "cfg", "aot", "security", "threadpool", "all", NULL};
        const MonoTraceMask     valid_masks[] = {MONO_TRACE_ASSEMBLY, MONO_TRACE_TYPE, MONO_TRACE_DLLIMPORT,
-                                                MONO_TRACE_GC, MONO_TRACE_CONFIG, MONO_TRACE_AOT, MONO_TRACE_SECURITY, 
-                                                MONO_TRACE_ALL };
+                                                MONO_TRACE_GC, MONO_TRACE_CONFIG, MONO_TRACE_AOT, MONO_TRACE_SECURITY,
+                                                MONO_TRACE_THREADPOOL, MONO_TRACE_ALL };
 
        if(!value)
                return;
@@ -337,5 +337,5 @@ mono_trace_set_printerr_handler (MonoPrintCallback callback)
 {
        g_assert (callback);
        printerr_callback = callback;
-       g_set_print_handler (printerr_handler);
+       g_set_printerr_handler (printerr_handler);
 }
index 4f9a97523e2d63e92405466bd814d1f1668a41ba..78a4f140cff747d7b4ef911d3c3e74988fd90c87 100644 (file)
 #ifdef HOST_WIN32
 #include <winsock2.h>
 #include <windows.h>
+
+/* Vanilla MinGW is missing some defs, loan them from MinGW-w64. */
+#if defined __MINGW32__ && !defined __MINGW64_VERSION_MAJOR
+
+#if (_WIN32_WINNT >= 0x0600)
+/* Fixme: Opaque structs */
+typedef PVOID RTL_CONDITION_VARIABLE;
+typedef PVOID RTL_SRWLOCK;
+
+#ifndef _RTL_RUN_ONCE_DEF
+#define _RTL_RUN_ONCE_DEF 1
+typedef PVOID RTL_RUN_ONCE, *PRTL_RUN_ONCE;
+typedef DWORD (WINAPI *PRTL_RUN_ONCE_INIT_FN)(PRTL_RUN_ONCE, PVOID, PVOID *);
+#define RTL_RUN_ONCE_INIT 0
+#define RTL_RUN_ONCE_CHECK_ONLY 1UL
+#define RTL_RUN_ONCE_ASYNC 2UL
+#define RTL_RUN_ONCE_INIT_FAILED 4UL
+#define RTL_RUN_ONCE_CTX_RESERVED_BITS 2
+#endif
+#define RTL_SRWLOCK_INIT 0
+#define RTL_CONDITION_VARIABLE_INIT 0
+#define RTL_CONDITION_VARIABLE_LOCKMODE_SHARED 1
+
+#define CONDITION_VARIABLE_INIT RTL_CONDITION_VARIABLE_INIT
+#define CONDITION_VARIABLE_LOCKMODE_SHARED RTL_CONDITION_VARIABLE_LOCKMODE_SHARED
+#define SRWLOCK_INIT RTL_SRWLOCK_INIT
 #endif
 
+#if (_WIN32_WINNT >= 0x0600)
+/*Condition Variables http://msdn.microsoft.com/en-us/library/ms682052%28VS.85%29.aspx*/
+typedef RTL_CONDITION_VARIABLE CONDITION_VARIABLE, *PCONDITION_VARIABLE;
+typedef RTL_SRWLOCK SRWLOCK, *PSRWLOCK;
+
+WINBASEAPI VOID WINAPI InitializeConditionVariable(PCONDITION_VARIABLE ConditionVariable);
+WINBASEAPI WINBOOL WINAPI SleepConditionVariableCS(PCONDITION_VARIABLE ConditionVariable, PCRITICAL_SECTION CriticalSection, DWORD dwMilliseconds);
+WINBASEAPI WINBOOL WINAPI SleepConditionVariableSRW(PCONDITION_VARIABLE ConditionVariable, PSRWLOCK SRWLock, DWORD dwMilliseconds, ULONG Flags);
+WINBASEAPI VOID WINAPI WakeAllConditionVariable(PCONDITION_VARIABLE ConditionVariable);
+WINBASEAPI VOID WINAPI WakeConditionVariable(PCONDITION_VARIABLE ConditionVariable);
+
+/*Slim Reader/Writer (SRW) Locks http://msdn.microsoft.com/en-us/library/aa904937%28VS.85%29.aspx*/
+WINBASEAPI VOID WINAPI AcquireSRWLockExclusive(PSRWLOCK SRWLock);
+WINBASEAPI VOID WINAPI AcquireSRWLockShared(PSRWLOCK SRWLock);
+WINBASEAPI VOID WINAPI InitializeSRWLock(PSRWLOCK SRWLock);
+WINBASEAPI VOID WINAPI ReleaseSRWLockExclusive(PSRWLOCK SRWLock);
+WINBASEAPI VOID WINAPI ReleaseSRWLockShared(PSRWLOCK SRWLock);
+
+WINBASEAPI BOOLEAN TryAcquireSRWLockExclusive(PSRWLOCK SRWLock);
+WINBASEAPI BOOLEAN TryAcquireSRWLockShared(PSRWLOCK SRWLock);
+
+/*One-Time Initialization http://msdn.microsoft.com/en-us/library/aa363808(VS.85).aspx*/
+#define INIT_ONCE_ASYNC 0x00000002UL
+#define INIT_ONCE_INIT_FAILED 0x00000004UL
+
+typedef PRTL_RUN_ONCE PINIT_ONCE;
+typedef PRTL_RUN_ONCE LPINIT_ONCE;
+typedef WINBOOL CALLBACK (*PINIT_ONCE_FN) (PINIT_ONCE InitOnce, PVOID Parameter, PVOID *Context);
+
+WINBASEAPI WINBOOL WINAPI InitOnceBeginInitialize(LPINIT_ONCE lpInitOnce, DWORD dwFlags, PBOOL fPending, LPVOID *lpContext);
+WINBASEAPI WINBOOL WINAPI InitOnceComplete(LPINIT_ONCE lpInitOnce, DWORD dwFlags, LPVOID lpContext);
+WINBASEAPI WINBOOL WINAPI InitOnceExecuteOnce(PINIT_ONCE InitOnce, PINIT_ONCE_FN InitFn, PVOID Parameter, LPVOID *Context);
+#endif
+
+#endif /* defined __MINGW32__ && !defined __MINGW64_VERSION_MAJOR */
+#endif /* HOST_WIN32 */
+
 G_BEGIN_DECLS
 
 #ifndef HOST_WIN32
@@ -51,7 +114,7 @@ typedef pthread_cond_t mono_cond_t;
 #define mono_cond_timedwait(cond,mutex,timeout) pthread_cond_timedwait (cond, mutex, timeout)
 #define mono_cond_signal(cond) pthread_cond_signal (cond)
 #define mono_cond_broadcast(cond) pthread_cond_broadcast (cond)
-#define mono_cond_destroy(cond)
+#define mono_cond_destroy(cond) pthread_cond_destroy (cond)
 
 /*
  * This should be used instead of mono_cond_timedwait, since that function is not implemented on windows.
index 05ff5b6d5c3c77cba8c6849054884393d1237c4b..7766729c65552e301e146a025fe8382c80f6bd9a 100644 (file)
@@ -755,6 +755,15 @@ mono_atexit (void (*func)(void))
 #endif
 }
 
+/*
+ * This function returns the cpu usage in percentage,
+ * normalized on the number of cores.
+ *
+ * Warning : the percentage returned can be > 100%. This
+ * might happens on systems like Android which, for
+ * battery and performance reasons, shut down cores and
+ * lie about the number of active cores.
+ */
 gint32
 mono_cpu_usage (MonoCpuUsageState *prev)
 {
@@ -808,8 +817,5 @@ mono_cpu_usage (MonoCpuUsageState *prev)
        if (cpu_total_time > 0 && cpu_busy_time > 0)
                cpu_usage = (gint32)(cpu_busy_time * 100 / cpu_total_time);
 
-       g_assert (cpu_usage >= 0);
-       g_assert (cpu_usage <= 100);
-
        return cpu_usage;
 }
index 4ac92196e07c5cdae57975616aa4c7f54c1e2ba0..6c857fe823951c21df058ba1773856689ac2d0cf 100644 (file)
@@ -55,22 +55,27 @@ mono_sem_timedwait (MonoSemType *sem, guint32 timeout_ms, gboolean alertable)
 #endif
        ts.tv_sec = timeout_ms / 1000 + t.tv_sec;
        ts.tv_nsec = (timeout_ms % 1000) * 1000000 + t.tv_usec * 1000;
-       while (ts.tv_nsec > NSEC_PER_SEC) {
+       while (ts.tv_nsec >= NSEC_PER_SEC) {
                ts.tv_nsec -= NSEC_PER_SEC;
                ts.tv_sec++;
        }
 
        copy = ts;
-       while ((res = WAIT_BLOCK (sem, &ts)) == -1 && errno == EINTR) {
+#ifdef USE_MACH_SEMA
+       gettimeofday (&t, NULL);
+       while ((res = WAIT_BLOCK (sem, &ts)) == KERN_ABORTED)
+#else
+       while ((res = WAIT_BLOCK (sem, &ts)) == -1 && errno == EINTR)
+#endif
+       {
+#ifdef USE_MACH_SEMA
                struct timeval current;
+#endif
                if (alertable)
                        return -1;
+               ts = copy;
 #ifdef USE_MACH_SEMA
-               memset (&current, 0, sizeof (current));
-#else
                gettimeofday (&current, NULL);
-#endif
-               ts = copy;
                ts.tv_sec -= (current.tv_sec - t.tv_sec);
                ts.tv_nsec -= (current.tv_usec - t.tv_usec) * 1000;
                if (ts.tv_nsec < 0) {
@@ -85,6 +90,7 @@ mono_sem_timedwait (MonoSemType *sem, guint32 timeout_ms, gboolean alertable)
                        ts.tv_sec = 0;
                        ts.tv_nsec = 0;
                }
+#endif
        }
 
        /* OSX might return > 0 for error */
index d821f3c5e32b167c5b8c868668f0cb931da592da..cfeb19d31b9f5960698c4925ba8ecb13e711c757 100644 (file)
@@ -19,7 +19,8 @@ typedef enum {
        FRAME_TYPE_DEBUGGER_INVOKE = 1,
        /* Frame for transitioning to native code */
        FRAME_TYPE_MANAGED_TO_NATIVE = 2,
-       FRAME_TYPE_SENTINEL = 3
+       FRAME_TYPE_TRAMPOLINE = 3,
+       FRAME_TYPE_NUM = 4
 } MonoStackFrameType;
 
 typedef enum {
index b44719109ffc277ad377942a4b219b21a92d8408..f0dc7585aac9162157f3348045209d439cf28a82 100644 (file)
@@ -1,4 +1,4 @@
-/*
+ /*
  * mono-threads.c: Coop threading
  *
  * Author:
 #include <mono/utils/mono-mmap.h>
 #include <mono/utils/atomic.h>
 #include <mono/utils/mono-time.h>
+#include <mono/utils/mono-counters.h>
 
 #ifdef USE_COOP_BACKEND
 
 volatile size_t mono_polling_required;
 
+static int coop_reset_blocking_count, coop_try_blocking_count, coop_do_blocking_count, coop_do_polling_count, coop_save_count;
+
 void
 mono_threads_state_poll (void)
 {
        MonoThreadInfo *info;
+       ++coop_do_polling_count;
 
        info = mono_thread_info_current_unchecked ();
        if (!info)
@@ -35,7 +39,8 @@ mono_threads_state_poll (void)
        if (!(info->thread_state & (STATE_ASYNC_SUSPEND_REQUESTED | STATE_SELF_SUSPEND_REQUESTED)))
                return;
 
-       g_assert (mono_threads_get_runtime_callbacks ()->thread_state_init_from_sigctx (&info->thread_saved_state [SELF_SUSPEND_STATE_INDEX], NULL));
+       ++coop_save_count;
+       mono_threads_get_runtime_callbacks ()->thread_state_init (&info->thread_saved_state [SELF_SUSPEND_STATE_INDEX]);
 
        /* commit the saved state and notify others if needed */
        switch (mono_threads_transition_state_poll (info)) {
@@ -55,6 +60,7 @@ void*
 mono_threads_prepare_blocking (void)
 {
        MonoThreadInfo *info;
+       ++coop_do_blocking_count;
 
        info = mono_thread_info_current_unchecked ();
        /* If the thread is not attached, it doesn't make sense prepare for suspend. */
@@ -64,11 +70,8 @@ mono_threads_prepare_blocking (void)
        }
 
 retry:
-       /*The JIT might not be able to save*/
-       if (!mono_threads_get_runtime_callbacks ()->thread_state_init_from_sigctx (&info->thread_saved_state [SELF_SUSPEND_STATE_INDEX], NULL)) {
-               THREADS_SUSPEND_DEBUG ("PREPARE-BLOCKING failed %p to save thread state\n", mono_thread_info_get_tid (info));
-               return NULL;
-       }
+       ++coop_save_count;
+       mono_threads_get_runtime_callbacks ()->thread_state_init (&info->thread_saved_state [SELF_SUSPEND_STATE_INDEX]);
 
        switch (mono_threads_transition_do_blocking (info)) {
        case DoBlockingContinue:
@@ -117,6 +120,7 @@ void*
 mono_threads_reset_blocking_start (void)
 {
        MonoThreadInfo *info = mono_thread_info_current_unchecked ();
+       ++coop_reset_blocking_count;
 
        /* If the thread is not attached, it doesn't make sense prepare for suspend. */
        if (!info || !mono_thread_info_is_live (info))
@@ -156,6 +160,7 @@ void*
 mono_threads_try_prepare_blocking (void)
 {
        MonoThreadInfo *info;
+       ++coop_try_blocking_count;
 
        info = mono_thread_info_current_unchecked ();
        /* If the thread is not attached, it doesn't make sense prepare for suspend. */
@@ -165,11 +170,8 @@ mono_threads_try_prepare_blocking (void)
        }
 
 retry:
-       /*The JIT might not be able to save*/
-       if (!mono_threads_get_runtime_callbacks ()->thread_state_init_from_sigctx (&info->thread_saved_state [SELF_SUSPEND_STATE_INDEX], NULL)) {
-               THREADS_SUSPEND_DEBUG ("PREPARE-TRY-BLOCKING failed %p to save thread state\n", mono_thread_info_get_tid (info));
-               return NULL;
-       }
+       ++coop_save_count;
+       mono_threads_get_runtime_callbacks ()->thread_state_init (&info->thread_saved_state [SELF_SUSPEND_STATE_INDEX]);
 
        switch (mono_threads_transition_do_blocking (info)) {
        case DoBlockingContinue:
@@ -235,6 +237,11 @@ mono_threads_core_needs_abort_syscall (void)
 void
 mono_threads_init_platform (void)
 {
+       mono_counters_register ("Coop Reset Blocking", MONO_COUNTER_GC | MONO_COUNTER_INT, &coop_reset_blocking_count);
+       mono_counters_register ("Coop Try Blocking", MONO_COUNTER_GC | MONO_COUNTER_INT, &coop_try_blocking_count);
+       mono_counters_register ("Coop Do Blocking", MONO_COUNTER_GC | MONO_COUNTER_INT, &coop_do_blocking_count);
+       mono_counters_register ("Coop Do Polling", MONO_COUNTER_GC | MONO_COUNTER_INT, &coop_do_polling_count);
+       mono_counters_register ("Coop Save Count", MONO_COUNTER_GC | MONO_COUNTER_INT, &coop_save_count);
        //See the above for what's wrong here.
 }
 
index 6eca0266dcfb897f4fbef80bdfd1bc58f9ecdb01..88ae40aee8769cbf4005a79d8196d5ceaac6d88e 100644 (file)
@@ -17,7 +17,7 @@
 /* Runtime consumable API */
 
 #define MONO_SUSPEND_CHECK() do {      \
-       if (G_UNLIKELY (mono_threads_polling_required)) mono_threads_state_poll ();     \
+       if (G_UNLIKELY (mono_polling_required)) mono_threads_state_poll ();     \
 } while (0);
 
 #define MONO_PREPARE_BLOCKING  \
@@ -46,8 +46,6 @@
 
 /* Internal API */
 
-extern volatile size_t mono_threads_polling_required;
-
 void mono_threads_state_poll (void);
 void* mono_threads_prepare_blocking (void);
 void mono_threads_finish_blocking (void* cookie);
@@ -59,11 +57,11 @@ void* mono_threads_try_prepare_blocking (void);
 void mono_threads_finish_try_blocking (void* cookie);
 
 /* JIT specific interface */
-extern volatile size_t mono_polling_required ;
+extern volatile size_t mono_polling_required;
 
 #else
 
-#define MONO_SUSPEND_CHECK do {        } while (0);
+#define MONO_SUSPEND_CHECK() do {      } while (0);
 #define MONO_PREPARE_BLOCKING {
 #define MONO_FINISH_BLOCKING }
 #define MONO_PREPARE_RESET_BLOCKING {
index e2ee61c42f82d08760b5ad627be3c9d7fbc87b58..c5d6e8bab38eb01f2f7cda6eab0cc03be1f0b58a 100644 (file)
@@ -1,6 +1,6 @@
 #include <config.h>
 
-#if defined(__linux__) && !defined(PLATFORM_ANDROID)
+#if (defined(__linux__) && !defined(PLATFORM_ANDROID)) || defined(__FreeBSD_kernel__)
 
 #include <mono/utils/mono-threads.h>
 #include <pthread.h>
index fc884e7a05584787d813ff2b241012da9a61eaa1..fbb78b498fa7d252b59e3b236bfa6772676d9a35 100644 (file)
@@ -31,12 +31,6 @@ mono_threads_init_platform (void)
        mono_threads_init_dead_letter ();
 }
 
-void
-mono_threads_core_interrupt (MonoThreadInfo *info)
-{
-       thread_abort (info->native_handle);
-}
-
 void
 mono_threads_core_abort_syscall (MonoThreadInfo *info)
 {
index 879e15f3c95c2021e7b4a14febc4bf061c45a75d..84e423ec1c29669da086d9d67df29af446f01504 100644 (file)
@@ -71,7 +71,7 @@ inner_start_thread (void *arg)
        start_info->handle = handle;
 
        info = mono_thread_info_attach (&result);
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
 
        info->runtime_thread = TRUE;
        info->handle = handle;
@@ -92,7 +92,7 @@ inner_start_thread (void *arg)
                MONO_SEM_DESTROY (&info->create_suspended_sem);
        }
 
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        /* Run the actual main function of the thread */
        result = start_func (t_arg);
 
@@ -236,30 +236,6 @@ mono_threads_core_open_thread_handle (HANDLE handle, MonoNativeThreadId tid)
        return handle;
 }
 
-gpointer
-mono_threads_core_prepare_interrupt (HANDLE thread_handle)
-{
-       return wapi_prepare_interrupt_thread (thread_handle);
-}
-
-void
-mono_threads_core_finish_interrupt (gpointer wait_handle)
-{
-       wapi_finish_interrupt_thread (wait_handle);
-}
-
-void
-mono_threads_core_self_interrupt (void)
-{
-       wapi_self_interrupt ();
-}
-
-void
-mono_threads_core_clear_interruption (void)
-{
-       wapi_clear_interruption ();
-}
-
 int
 mono_threads_pthread_kill (MonoThreadInfo *info, int signum)
 {
@@ -275,6 +251,8 @@ mono_threads_pthread_kill (MonoThreadInfo *info, int signum)
 #elif defined(__native_client__)
        /* Workaround pthread_kill abort() in NaCl glibc. */
        return 0;
+#elif !defined(HAVE_PTHREAD_KILL)
+       g_error ("pthread_kill() is not supported by this platform");
 #else
        return pthread_kill (mono_thread_info_get_tid (info), signum);
 #endif
index 9f5792c1d9c1d1d6c9da640b2807920440729006..bf38fd4f24415b797d3551c9ad5036962241ccd9 100644 (file)
@@ -5,6 +5,7 @@
 #include <mono/utils/mono-tls.h>
 #include <mono/utils/mono-memory-model.h>
 #include <mono/utils/atomic.h>
+#include <mono/utils/checked-build.h>
 
 #include <errno.h>
 
@@ -89,6 +90,8 @@ trace_state_change (const char *transition, MonoThreadInfo *info, int cur_raw_st
                state_name (next_state),
                get_thread_suspend_count (cur_raw_state),
                get_thread_suspend_count (cur_raw_state) + suspend_count_delta);
+
+       CHECKED_BUILD_THREAD_TRANSITION (transition, info, get_thread_state (cur_raw_state), get_thread_suspend_count (cur_raw_state), next_state, suspend_count_delta);
 }
 
 /*
@@ -187,7 +190,7 @@ STATE_BLOCKING_AND_SUSPENDED: Self suspension cannot be started when the thread
 If this turns to be an issue we can introduce a new suspend request state for when both have been requested.
 */
        default:
-               g_error ("Cannot transition thread %p from %s with SUSPEND_REQUEST", info, state_name (cur_state));
+               g_error ("Cannot transition thread %p from %s with SUSPEND_REQUEST", mono_thread_info_get_tid (info), state_name (cur_state));
        }
 }
 
@@ -248,7 +251,7 @@ The expected behavior is that the target should poll its state very soon so the
 STATE_ASYNC_SUSPEND_REQUESTED: Since there can only be one async suspend in progress and it must finish, it should not be possible to witness this.
 */
        default:
-               g_error ("Cannot transition thread %p from %s with ASYNC_SUSPEND_REQUESTED", info, state_name (cur_state));
+               g_error ("Cannot transition thread %p from %s with ASYNC_SUSPEND_REQUESTED", mono_thread_info_get_tid (info), state_name (cur_state));
        }
        return (MonoRequestAsyncSuspendResult) FALSE;
 }
@@ -297,7 +300,7 @@ STATE_BLOCKING:
 STATE_BLOCKING_AND_SUSPENDED: Pool is a local state transition. No VM activities are allowed while in blocking mode.
 */
        default:
-               g_error ("Cannot transition thread %p from %s with STATE_POLL", info, state_name (cur_state));
+               g_error ("Cannot transition thread %p from %s with STATE_POLL", mono_thread_info_get_tid (info), state_name (cur_state));
        }
 }
 
@@ -397,7 +400,7 @@ If this turns to be a problem we should either implement [2] or make this an inv
 
 */
        default:
-               g_error ("Cannot transition thread %p from %s with REQUEST_RESUME", info, state_name (cur_state));
+               g_error ("Cannot transition thread %p from %s with REQUEST_RESUME", mono_thread_info_get_tid (info), state_name (cur_state));
        }
 }
 
@@ -433,7 +436,7 @@ STATE_SELF_SUSPEND_REQUESTED: When self suspend and async suspend happen togethe
 STATE_BLOCKING: Async suspend only begins if a transition to async suspend requested happened. Blocking would have put us into blocking with positive suspend count if it raced with async finish.
 */
        default:
-               g_error ("Cannot transition thread %p from %s with FINISH_ASYNC_SUSPEND", info, state_name (cur_state));
+               g_error ("Cannot transition thread %p from %s with FINISH_ASYNC_SUSPEND", mono_thread_info_get_tid (info), state_name (cur_state));
        }
 }
 
@@ -477,7 +480,7 @@ STATE_BLOCKING_AND_SUSPENDED
 STATE_SELF_SUSPEND_REQUESTED: All those are invalid end states of a sucessfull finish async suspend
 */
        default:
-               g_error ("Cannot transition thread %p from %s with COMPENSATE_FINISH_ASYNC_SUSPEND", info, state_name (cur_state));
+               g_error ("Cannot transition thread %p from %s with COMPENSATE_FINISH_ASYNC_SUSPEND", mono_thread_info_get_tid (info), state_name (cur_state));
 
        }
 }
@@ -522,7 +525,7 @@ STATE_BLOCKING:
 STATE_BLOCKING_AND_SUSPENDED: Blocking is not nestabled
 */
        default:
-               g_error ("Cannot transition thread %p from %s with DO_BLOCKING", info, state_name (cur_state));
+               g_error ("Cannot transition thread %p from %s with DO_BLOCKING", mono_thread_info_get_tid (info), state_name (cur_state));
        }
 }
 
@@ -570,7 +573,7 @@ STATE_SELF_SUSPEND_REQUESTED: A blocking operation must not be done while trying
 STATE_BLOCKING_AND_SUSPENDED: This an exit state of done blocking
 */
        default:
-               g_error ("Cannot transition thread %p from %s with DONE_BLOCKING", info, state_name (cur_state));
+               g_error ("Cannot transition thread %p from %s with DONE_BLOCKING", mono_thread_info_get_tid (info), state_name (cur_state));
        }
 }
 
@@ -620,7 +623,7 @@ STATE_SELF_SUSPEND_REQUESTED: A blocking operation must not be done while trying
 STATE_BLOCKING_AND_SUSPENDED: This is an exit state of done blocking, can't happen here.
 */
        default:
-               g_error ("Cannot transition thread %p from %s with DONE_BLOCKING", info, state_name (cur_state));
+               g_error ("Cannot transition thread %p from %s with DONE_BLOCKING", mono_thread_info_get_tid (info), state_name (cur_state));
        }
 }
 
@@ -691,3 +694,9 @@ mono_thread_info_current_state (MonoThreadInfo *info)
 {
        return get_thread_state (info->thread_state);
 }
+
+const char*
+mono_thread_state_name (int state)
+{
+       return state_name (state);
+}
old mode 100755 (executable)
new mode 100644 (file)
index 9f3581e..9e59810
@@ -395,26 +395,4 @@ mono_threads_core_set_name (MonoNativeThreadId tid, const char *name)
 #endif
 }
 
-
-gpointer
-mono_threads_core_prepare_interrupt (HANDLE thread_handle)
-{
-       return NULL;
-}
-
-void
-mono_threads_core_finish_interrupt (gpointer wait_handle)
-{
-}
-
-void
-mono_threads_core_self_interrupt (void)
-{
-}
-
-void
-mono_threads_core_clear_interruption (void)
-{
-}
-
 #endif
index 781757f3d4edd8912006a2d66094a7c9d55cad61..5d4664369a172e207e06ef114002dfa4b5a094ff 100644 (file)
@@ -149,7 +149,7 @@ dump_threads (void)
        MonoThreadInfo *info;
        MonoThreadInfo *cur = mono_thread_info_current ();
 
-       MOSTLY_ASYNC_SAFE_PRINTF ("STATE CUE CARD: (? means a positive number, usually 1 or 2)\n");
+       MOSTLY_ASYNC_SAFE_PRINTF ("STATE CUE CARD: (? means a positive number, usually 1 or 2, * means any number)\n");
        MOSTLY_ASYNC_SAFE_PRINTF ("\t0x0\t- starting (GOOD, unless the thread is running managed code)\n");
        MOSTLY_ASYNC_SAFE_PRINTF ("\t0x1\t- running (BAD, unless it's the gc thread)\n");
        MOSTLY_ASYNC_SAFE_PRINTF ("\t0x2\t- detached (GOOD, unless the thread is running managed code)\n");
@@ -157,7 +157,7 @@ dump_threads (void)
        MOSTLY_ASYNC_SAFE_PRINTF ("\t0x?04\t- self suspended (GOOD)\n");
        MOSTLY_ASYNC_SAFE_PRINTF ("\t0x?05\t- async suspend requested (BAD)\n");
        MOSTLY_ASYNC_SAFE_PRINTF ("\t0x?06\t- self suspend requested (BAD)\n");
-       MOSTLY_ASYNC_SAFE_PRINTF ("\t0x07\t- blocking (GOOD)\n");
+       MOSTLY_ASYNC_SAFE_PRINTF ("\t0x*07\t- blocking (GOOD)\n");
        MOSTLY_ASYNC_SAFE_PRINTF ("\t0x?08\t- blocking with pending suspend (GOOD)\n");
 
        FOREACH_THREAD_SAFE (info) {
@@ -362,9 +362,9 @@ unregister_thread (void *arg)
        This ensures that we won't lose any suspend requests as a suspend initiator must hold the lock.
        Once we're holding the suspend lock, no threads can suspend us and once we unregister, no thread can find us. 
        */
-       MONO_PREPARE_BLOCKING
+       MONO_PREPARE_BLOCKING;
        mono_thread_info_suspend_lock ();
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
 
        /*
        Now perform the callback that must be done under locks.
@@ -681,7 +681,7 @@ mono_thread_info_end_self_suspend (void)
                return;
        THREADS_SUSPEND_DEBUG ("FINISH SELF SUSPEND OF %p\n", info);
 
-       g_assert (mono_threads_get_runtime_callbacks ()->thread_state_init_from_sigctx (&info->thread_saved_state [SELF_SUSPEND_STATE_INDEX], NULL));
+       mono_threads_get_runtime_callbacks ()->thread_state_init (&info->thread_saved_state [SELF_SUSPEND_STATE_INDEX]);
 
        /* commit the saved state and notify others if needed */
        switch (mono_threads_transition_state_poll (info)) {
@@ -800,10 +800,6 @@ is_thread_in_critical_region (MonoThreadInfo *info)
        if (info->inside_critical_region)
                return TRUE;
 
-       if (threads_callbacks.mono_thread_in_critical_region && threads_callbacks.mono_thread_in_critical_region (info)) {
-               return TRUE;
-       }
-
        /* Are we inside a GC critical region? */
        if (threads_callbacks.mono_thread_in_critical_region && threads_callbacks.mono_thread_in_critical_region (info)) {
                return TRUE;
@@ -1157,42 +1153,204 @@ mono_thread_info_set_name (MonoNativeThreadId tid, const char *name)
        mono_threads_core_set_name (tid, name);
 }
 
+#define INTERRUPT_STATE ((MonoThreadInfoInterruptToken*) (size_t) -1)
+
+struct _MonoThreadInfoInterruptToken {
+       void (*callback) (gpointer data);
+       gpointer data;
+};
+
 /*
- * mono_thread_info_prepare_interrupt:
+ * mono_thread_info_install_interrupt: install an interruption token for the current thread.
  *
- *   See wapi_prepare_interrupt ().
+ *  - @callback: must be able to be called from another thread and always cancel the wait
+ *  - @data: passed to the callback
+ *  - @interrupted: will be set to TRUE if a token is already installed, FALSE otherwise
+ *     if set to TRUE, it must mean that the thread is in interrupted state
  */
-gpointer
-mono_thread_info_prepare_interrupt (HANDLE thread_handle)
+void
+mono_thread_info_install_interrupt (void (*callback) (gpointer data), gpointer data, gboolean *interrupted)
 {
-       return mono_threads_core_prepare_interrupt (thread_handle);
+       MonoThreadInfo *info;
+       MonoThreadInfoInterruptToken *previous_token, *token;
+
+       g_assert (callback);
+
+       g_assert (interrupted);
+       *interrupted = FALSE;
+
+       info = mono_thread_info_current ();
+       g_assert (info);
+
+       /* The memory of this token can be freed at 2 places:
+        *  - if the token is not interrupted: it will be freed in uninstall, as info->interrupt_token has not been replaced
+        *     by the INTERRUPT_STATE flag value, and it still contains the pointer to the memory location
+        *  - if the token is interrupted: it will be freed in finish, as the token is now owned by the prepare/finish
+        *     functions, and info->interrupt_token does not contains a pointer to the memory anymore */
+       token = g_new0 (MonoThreadInfoInterruptToken, 1);
+       token->callback = callback;
+       token->data = data;
+
+       previous_token = InterlockedCompareExchangePointer ((gpointer*) &info->interrupt_token, token, NULL);
+
+       if (previous_token) {
+               if (previous_token != INTERRUPT_STATE)
+                       g_error ("mono_thread_info_install_interrupt: previous_token should be INTERRUPT_STATE (%p), but it was %p", INTERRUPT_STATE, previous_token);
+
+               g_free (token);
+
+               *interrupted = TRUE;
+       }
+
+       THREADS_INTERRUPT_DEBUG ("interrupt install    tid %p token %p previous_token %p interrupted %s\n",
+               mono_thread_info_get_tid (info), token, previous_token, *interrupted ? "TRUE" : "FALSE");
 }
 
 void
-mono_thread_info_finish_interrupt (gpointer wait_handle)
+mono_thread_info_uninstall_interrupt (gboolean *interrupted)
+{
+       MonoThreadInfo *info;
+       MonoThreadInfoInterruptToken *previous_token;
+
+       g_assert (interrupted);
+       *interrupted = FALSE;
+
+       info = mono_thread_info_current ();
+       g_assert (info);
+
+       previous_token = InterlockedExchangePointer ((gpointer*) &info->interrupt_token, NULL);
+
+       /* only the installer can uninstall the token */
+       g_assert (previous_token);
+
+       if (previous_token == INTERRUPT_STATE) {
+               /* if it is interrupted, then it is going to be freed in finish interrupt */
+               *interrupted = TRUE;
+       } else {
+               g_free (previous_token);
+       }
+
+       THREADS_INTERRUPT_DEBUG ("interrupt uninstall  tid %p previous_token %p interrupted %s\n",
+               mono_thread_info_get_tid (info), previous_token, *interrupted ? "TRUE" : "FALSE");
+}
+
+static MonoThreadInfoInterruptToken*
+set_interrupt_state (MonoThreadInfo *info)
+{
+       MonoThreadInfoInterruptToken *token, *previous_token;
+
+       g_assert (info);
+
+       /* Atomically obtain the token the thread is
+       * waiting on, and change it to a flag value. */
+
+       do {
+               previous_token = info->interrupt_token;
+
+               /* Already interrupted */
+               if (previous_token == INTERRUPT_STATE) {
+                       token = NULL;
+                       break;
+               }
+
+               token = previous_token;
+       } while (InterlockedCompareExchangePointer ((gpointer*) &info->interrupt_token, INTERRUPT_STATE, previous_token) != previous_token);
+
+       return token;
+}
+
+/*
+ * mono_thread_info_prepare_interrupt:
+ *
+ * The state of the thread info interrupt token is set to 'interrupted' which means that :
+ *  - if the thread calls one of the WaitFor functions, the function will return with
+ *     WAIT_IO_COMPLETION instead of waiting
+ *  - if the thread was waiting when this function was called, the wait will be broken
+ *
+ * It is possible that the wait functions return WAIT_IO_COMPLETION, but the target thread
+ * didn't receive the interrupt signal yet, in this case it should call the wait function
+ * again. This essentially means that the target thread will busy wait until it is ready to
+ * process the interruption.
+ */
+MonoThreadInfoInterruptToken*
+mono_thread_info_prepare_interrupt (MonoThreadInfo *info)
 {
-       mono_threads_core_finish_interrupt (wait_handle);
+       MonoThreadInfoInterruptToken *token;
+
+       token = set_interrupt_state (info);
+
+       THREADS_INTERRUPT_DEBUG ("interrupt prepare    tid %p token %p\n",
+               mono_thread_info_get_tid (info), token);
+
+       return token;
 }
 
 void
-mono_thread_info_interrupt (HANDLE thread_handle)
+mono_thread_info_finish_interrupt (MonoThreadInfoInterruptToken *token)
 {
-       gpointer wait_handle;
+       THREADS_INTERRUPT_DEBUG ("interrupt finish     token %p\n", token);
+
+       if (token == NULL)
+               return;
+
+       g_assert (token->callback);
+
+       token->callback (token->data);
 
-       wait_handle = mono_thread_info_prepare_interrupt (thread_handle);
-       mono_thread_info_finish_interrupt (wait_handle);
+       g_free (token);
 }
-       
+
 void
 mono_thread_info_self_interrupt (void)
 {
-       mono_threads_core_self_interrupt ();
+       MonoThreadInfo *info;
+       MonoThreadInfoInterruptToken *token;
+
+       info = mono_thread_info_current ();
+       g_assert (info);
+
+       token = set_interrupt_state (info);
+       g_assert (!token);
+
+       THREADS_INTERRUPT_DEBUG ("interrupt self       tid %p\n",
+               mono_thread_info_get_tid (info));
 }
 
+/* Clear the interrupted flag of the current thread, set with
+ * mono_thread_info_self_interrupt, so it can wait again */
 void
-mono_thread_info_clear_interruption (void)
+mono_thread_info_clear_self_interrupt ()
 {
-       mono_threads_core_clear_interruption ();
+       MonoThreadInfo *info;
+       MonoThreadInfoInterruptToken *previous_token;
+
+       info = mono_thread_info_current ();
+       g_assert (info);
+
+       previous_token = InterlockedCompareExchangePointer ((gpointer*) &info->interrupt_token, NULL, INTERRUPT_STATE);
+       g_assert (previous_token == NULL || previous_token == INTERRUPT_STATE);
+
+       THREADS_INTERRUPT_DEBUG ("interrupt clear self tid %p previous_token %p\n", mono_thread_info_get_tid (info), previous_token);
+}
+
+gboolean
+mono_thread_info_is_interrupt_state (MonoThreadInfo *info)
+{
+       g_assert (info);
+       return InterlockedReadPointer ((gpointer*) &info->interrupt_token) == INTERRUPT_STATE;
+}
+
+void
+mono_thread_info_describe_interrupt_token (MonoThreadInfo *info, GString *text)
+{
+       g_assert (info);
+
+       if (!InterlockedReadPointer ((gpointer*) &info->interrupt_token))
+               g_string_append_printf (text, "not waiting");
+       else if (InterlockedReadPointer ((gpointer*) &info->interrupt_token) == INTERRUPT_STATE)
+               g_string_append_printf (text, "interrupted state");
+       else
+               g_string_append_printf (text, "waiting");
 }
 
 /* info must be self or be held in a hazard pointer. */
index edbf934ac9bf7321a524a47459231121c00d9f40..67957c8f1981a285ecd36aff1af989e02f40f9c9 100644 (file)
@@ -117,6 +117,12 @@ and reduce the number of casts drastically.
 #define THREADS_STATE_MACHINE_DEBUG MOSTLY_ASYNC_SAFE_PRINTF
 #endif
 
+#if 1
+#define THREADS_INTERRUPT_DEBUG(...)
+#else
+#define THREADS_INTERRUPT_DEBUG MOSTLY_ASYNC_SAFE_PRINTF
+#endif
+
 /* If this is defined, use the signals backed on Mach. Debug only as signals can't be made usable on OSX. */
 // #define USE_SIGNALS_ON_MACH
 
@@ -170,6 +176,8 @@ typedef enum {
        MONO_SERVICE_REQUEST_SAMPLE = 1,
 } MonoAsyncJob;
 
+typedef struct _MonoThreadInfoInterruptToken MonoThreadInfoInterruptToken;
+
 typedef struct {
        MonoLinkedListSetNode node;
        guint32 small_id; /*Used by hazard pointers */
@@ -243,6 +251,8 @@ typedef struct {
        volatile gint32 service_requests;
 
        void *jit_data;
+
+       MonoThreadInfoInterruptToken *interrupt_token;
 } MonoThreadInfo;
 
 typedef struct {
@@ -270,6 +280,7 @@ typedef struct {
        void (*setup_async_callback) (MonoContext *ctx, void (*async_cb)(void *fun), gpointer user_data);
        gboolean (*thread_state_init_from_sigctx) (MonoThreadUnwindState *state, void *sigctx);
        gboolean (*thread_state_init_from_handle) (MonoThreadUnwindState *tctx, MonoThreadInfo *info);
+       void (*thread_state_init) (MonoThreadUnwindState *tctx);
 } MonoThreadInfoRuntimeCallbacks;
 
 //Not using 0 and 1 to ensure callbacks are not returning bad data
@@ -401,20 +412,29 @@ mono_thread_info_exit (void);
 HANDLE
 mono_thread_info_open_handle (void);
 
-gpointer
-mono_thread_info_prepare_interrupt (HANDLE thread_handle);
+void
+mono_thread_info_install_interrupt (void (*callback) (gpointer data), gpointer data, gboolean *interrupted);
 
 void
-mono_thread_info_finish_interrupt (gpointer wait_handle);
+mono_thread_info_uninstall_interrupt (gboolean *interrupted);
+
+MonoThreadInfoInterruptToken*
+mono_thread_info_prepare_interrupt (THREAD_INFO_TYPE *info);
 
 void
-mono_thread_info_interrupt (HANDLE thread_handle);
+mono_thread_info_finish_interrupt (MonoThreadInfoInterruptToken *token);
 
 void
 mono_thread_info_self_interrupt (void);
 
 void
-mono_thread_info_clear_interruption (void);
+mono_thread_info_clear_self_interrupt (void);
+
+gboolean
+mono_thread_info_is_interrupt_state (THREAD_INFO_TYPE *info);
+
+void
+mono_thread_info_describe_interrupt_token (THREAD_INFO_TYPE *info, GString *text);
 
 gboolean
 mono_thread_info_is_live (THREAD_INFO_TYPE *info);
@@ -457,7 +477,6 @@ gboolean mono_threads_core_suspend (THREAD_INFO_TYPE *info, gboolean interrupt_k
 gboolean mono_threads_core_resume (THREAD_INFO_TYPE *info);
 void mono_threads_platform_register (THREAD_INFO_TYPE *info); //ok
 void mono_threads_platform_free (THREAD_INFO_TYPE *info);
-void mono_threads_core_interrupt (THREAD_INFO_TYPE *info);
 void mono_threads_core_abort_syscall (THREAD_INFO_TYPE *info);
 gboolean mono_threads_core_needs_abort_syscall (void);
 HANDLE mono_threads_core_create_thread (LPTHREAD_START_ROUTINE start, gpointer arg, guint32 stack_size, guint32 creation_flags, MonoNativeThreadId *out_tid);
@@ -523,10 +542,6 @@ void mono_threads_core_unregister (THREAD_INFO_TYPE *info);
 HANDLE mono_threads_core_open_handle (void);
 HANDLE mono_threads_core_open_thread_handle (HANDLE handle, MonoNativeThreadId tid);
 void mono_threads_core_set_name (MonoNativeThreadId tid, const char *name);
-gpointer mono_threads_core_prepare_interrupt (HANDLE thread_handle);
-void mono_threads_core_finish_interrupt (gpointer wait_handle);
-void mono_threads_core_self_interrupt (void);
-void mono_threads_core_clear_interruption (void);
 
 MonoNativeThreadId mono_native_thread_id_get (void);
 
@@ -617,6 +632,7 @@ gboolean mono_thread_info_is_running (THREAD_INFO_TYPE *info);
 gboolean mono_thread_info_is_live (THREAD_INFO_TYPE *info);
 int mono_thread_info_suspend_count (THREAD_INFO_TYPE *info);
 int mono_thread_info_current_state (THREAD_INFO_TYPE *info);
+const char* mono_thread_state_name (int state);
 
 gboolean mono_thread_info_in_critical_location (THREAD_INFO_TYPE *info);
 gboolean mono_thread_info_begin_suspend (THREAD_INFO_TYPE *info, gboolean interrupt_kernel);
index 84ed279abfc550bf76a7a46a09958757ed9d2074..646ede9538114136b145c3ee51e4f7716c01c9d6 100644 (file)
     <ClCompile Include="..\mono\metadata\mono-basic-block.c" />\r
     <ClCompile Include="..\mono\metadata\mono-config.c" />\r
     <ClCompile Include="..\mono\metadata\mono-config-dirs.c" />\r
-    <ClCompile Include="..\mono\metadata\mono-cq.c" />\r
     <ClCompile Include="..\mono\metadata\mono-debug.c" />\r
     <ClCompile Include="..\mono\metadata\mono-endian.c" />\r
     <ClCompile Include="..\mono\metadata\mono-hash.c" />\r
     <ClCompile Include="..\mono\metadata\mono-mlist.c" />\r
     <ClCompile Include="..\mono\metadata\mono-perfcounters.c" />\r
-    <ClCompile Include="..\mono\metadata\mono-wsq.c" />\r
     <ClCompile Include="..\mono\metadata\nacl-stub.c" />\r
     <ClCompile Include="..\mono\metadata\null-gc.c" />\r
     <ClCompile Include="..\mono\metadata\number-ms.c" />\r
     <ClCompile Include="..\mono\metadata\socket-io.c" />\r
     <ClCompile Include="..\mono\metadata\string-icalls.c" />\r
     <ClCompile Include="..\mono\metadata\sysmath.c" />\r
-    <ClCompile Include="..\mono\metadata\threadpool.c" />\r
-    <ClCompile Include="..\mono\metadata\tpool-poll.c" />\r
     <ClCompile Include="..\mono\metadata\threads.c" />\r
     <ClCompile Include="..\mono\metadata\verify.c" />\r
     <ClCompile Include="..\mono\mini\mini-cross-helpers.c" />\r
     <ClInclude Include="..\mono\metadata\mono-basic-block.h" />\r
     <ClInclude Include="..\mono\metadata\mono-config.h" />\r
     <ClInclude Include="..\mono\metadata\mono-config-dirs.h" />\r
-    <ClInclude Include="..\mono\metadata\mono-cq.h" />\r
     <ClInclude Include="..\mono\metadata\mono-debug-debugger.h" />\r
     <ClInclude Include="..\mono\metadata\mono-debug.h" />\r
     <ClInclude Include="..\mono\metadata\mono-endian.h" />\r
     <ClInclude Include="..\mono\metadata\mono-perfcounters-def.h" />\r
     <ClInclude Include="..\mono\metadata\mono-perfcounters.h" />\r
     <ClInclude Include="..\mono\metadata\mono-ptr-array.h" />\r
-    <ClInclude Include="..\mono\metadata\mono-wsq.h" />\r
     <ClInclude Include="..\mono\metadata\normalization-tables.h" />\r
     <ClInclude Include="..\mono\metadata\number-formatter.h" />\r
     <ClInclude Include="..\mono\metadata\object-internals.h" />\r
     <ClInclude Include="..\mono\metadata\string-icalls.h" />\r
     <ClInclude Include="..\mono\metadata\sysmath.h" />\r
     <ClInclude Include="..\mono\metadata\tabledefs.h" />\r
-    <ClInclude Include="..\mono\metadata\threadpool-internals.h" />\r
-    <ClInclude Include="..\mono\metadata\threadpool.h" />\r
     <ClInclude Include="..\mono\metadata\threads-types.h" />\r
     <ClInclude Include="..\mono\metadata\verify-internals.h" />\r
     <ClInclude Include="..\mono\metadata\verify.h" />\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
   <ImportGroup Label="ExtensionTargets">\r
   </ImportGroup>\r
-</Project>\r
+</Project>
\ No newline at end of file
index d98ead82b479a38b8a48d2d14c84825fb4a28c8e..109ef31eb84c1e9be22bf4c40aba56c5a6fa87ac 100644 (file)
@@ -472,9 +472,6 @@ mono_install_assembly_refonly_preload_hook
 mono_install_assembly_refonly_search_hook
 mono_install_assembly_search_hook
 mono_install_runtime_cleanup
-mono_install_threadpool_item_hooks
-mono_install_threadpool_thread_hooks
-mono_install_unhandled_exception_hook
 mono_invoke_unhandled_exception_hook
 mono_is_debugger_attached
 mono_jit_cleanup
@@ -904,4 +901,3 @@ mono_win32_compat_CopyMemory
 mono_win32_compat_FillMemory
 mono_win32_compat_MoveMemory
 mono_win32_compat_ZeroMemory
-mono_xdebug_flush
index 1f002a420686e30d559cd7231cb6ae5336289c50..ec5a9a9c9fcd130873547197a7d89f09027c385b 100644 (file)
@@ -12,7 +12,7 @@
     </project>
     <project dir="class/corlib" library="corlib-basic">
       <boot>true</boot>
-      <flags>/codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP -d:NET_4_0 -d:NET_4_5 -d:MONO -d:BOOTSTRAP_BASIC -nowarn:1699 -d:DISABLE_CAS_USE -lib:./../../class/lib/basic -optimize /noconfig -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP -resource:resources/charinfo.nlp -resource:resources/collation.core.bin -resource:resources/collation.tailoring.bin -resource:resources/collation.cjkCHS.bin -resource:resources/collation.cjkCHT.bin -resource:resources/collation.cjkJA.bin -resource:resources/collation.cjkKO.bin -resource:resources/collation.cjkKOlv2.bin --runtime:v4</flags>
+      <flags>/codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP,FEATURE_ROLE_BASED_SECURITY -d:NET_4_0 -d:NET_4_5 -d:MONO -d:BOOTSTRAP_BASIC -nowarn:1699 -d:DISABLE_CAS_USE -lib:./../../class/lib/basic -optimize /noconfig -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP,FEATURE_ROLE_BASED_SECURITY -resource:resources/charinfo.nlp -resource:resources/collation.core.bin -resource:resources/collation.tailoring.bin -resource:resources/collation.cjkCHS.bin -resource:resources/collation.cjkCHT.bin -resource:resources/collation.cjkJA.bin -resource:resources/collation.cjkKO.bin -resource:resources/collation.cjkKOlv2.bin --runtime:v4</flags>
       <output>mscorlib.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/basic/mscorlib.dll</library_output>
@@ -72,7 +72,7 @@
     </project>
     <project dir="class/corlib" library="corlib-build">
       <boot>true</boot>
-      <flags>/codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/build -optimize /noconfig -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP -resource:resources/charinfo.nlp -resource:resources/collation.core.bin -resource:resources/collation.tailoring.bin -resource:resources/collation.cjkCHS.bin -resource:resources/collation.cjkCHT.bin -resource:resources/collation.cjkJA.bin -resource:resources/collation.cjkKO.bin -resource:resources/collation.cjkKOlv2.bin --runtime:v4</flags>
+      <flags>/codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP,FEATURE_ROLE_BASED_SECURITY -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/build -optimize /noconfig -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP,FEATURE_ROLE_BASED_SECURITY -resource:resources/charinfo.nlp -resource:resources/collation.core.bin -resource:resources/collation.tailoring.bin -resource:resources/collation.cjkCHS.bin -resource:resources/collation.cjkCHT.bin -resource:resources/collation.cjkJA.bin -resource:resources/collation.cjkKO.bin -resource:resources/collation.cjkKOlv2.bin --runtime:v4</flags>
       <output>mscorlib.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/build/mscorlib.dll</library_output>
     </project>
     <project dir="class/corlib" library="corlib-net_4_5">
       <boot>true</boot>
-      <flags>/codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -debug -optimize /noconfig -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP -resource:resources/charinfo.nlp -resource:resources/collation.core.bin -resource:resources/collation.tailoring.bin -resource:resources/collation.cjkCHS.bin -resource:resources/collation.cjkCHT.bin -resource:resources/collation.cjkJA.bin -resource:resources/collation.cjkKO.bin -resource:resources/collation.cjkKOlv2.bin --runtime:v4</flags>
+      <flags>/codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP,FEATURE_ROLE_BASED_SECURITY -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -debug -optimize /noconfig -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP,FEATURE_ROLE_BASED_SECURITY -resource:resources/charinfo.nlp -resource:resources/collation.core.bin -resource:resources/collation.tailoring.bin -resource:resources/collation.cjkCHS.bin -resource:resources/collation.cjkCHT.bin -resource:resources/collation.cjkJA.bin -resource:resources/collation.cjkKO.bin -resource:resources/collation.cjkKOlv2.bin --runtime:v4</flags>
       <output>mscorlib.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/net_4_5/mscorlib.dll</library_output>
     </project>
     <project dir="class/corlib" library="corlib-tests-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -debug -optimize -r:./../../class/lib/net_4_5/mscorlib.dll -debug -nowarn:168,219,618,672 -unsafe -r:Mono.Posix.dll -r:System.Core.dll -define:MONO_DATACONVERTER_STATIC_METHODS -resource:Test/resources/Resources.resources</flags>
+      <flags>/codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP,FEATURE_ROLE_BASED_SECURITY -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -debug -optimize -r:./../../class/lib/net_4_5/mscorlib.dll -debug -nowarn:168,219,618,672 -unsafe -r:Mono.Posix.dll -r:System.Core.dll -define:MONO_DATACONVERTER_STATIC_METHODS -resource:Test/resources/Resources.resources</flags>
       <output>corlib_test_net_4_5.dll</output>
       <built_sources></built_sources>
       <library_output>corlib_test_net_4_5.dll</library_output>
     </project>
     <project dir="tools/xbuild" library="xbuild-net_4_5">
       <boot></boot>
-      <flags>/codepage:65001 -r:./../../class/lib/net_4_5/Microsoft.Build.Framework.dll -r:./../../class/lib/net_4_5/Microsoft.Build.Utilities.v4.0.dll -r:./../../class/lib/net_4_5/Microsoft.Build.Engine.dll -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig</flags>
+      <flags>/codepage:65001 -r:./../../class/lib/net_4_5/Microsoft.Build.Framework.dll -r:./../../class/lib/net_4_5/Microsoft.Build.Utilities.v4.0.dll -r:./../../class/lib/net_4_5/Microsoft.Build.Engine.dll -r:./../../class/lib/net_4_5/Microsoft.Build.Tasks.v4.0.dll -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig</flags>
       <output>xbuild.exe</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/net_4_5/xbuild.exe</library_output>
     </project>
     <project dir="tools/xbuild" library="xbuild-xbuild_12">
       <boot></boot>
-      <flags>/codepage:65001 -r:./../../class/lib/xbuild_12/Microsoft.Build.Framework.dll -r:./../../class/lib/xbuild_12/Microsoft.Build.Utilities.v12.0.dll -r:./../../class/lib/xbuild_12/Microsoft.Build.Engine.dll -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/xbuild_12 -r:mscorlib.dll -debug -d:XBUILD_12 -d:MONO -d:DISABLE_CAS_USE -lib:./../../class/lib/net_4_5 -optimize /noconfig</flags>
+      <flags>/codepage:65001 -r:./../../class/lib/xbuild_12/Microsoft.Build.Framework.dll -r:./../../class/lib/xbuild_12/Microsoft.Build.Utilities.v12.0.dll -r:./../../class/lib/xbuild_12/Microsoft.Build.Engine.dll -r:./../../class/lib/xbuild_12/Microsoft.Build.Tasks.v12.0.dll -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/xbuild_12 -r:mscorlib.dll -debug -d:XBUILD_12 -d:MONO -d:DISABLE_CAS_USE -lib:./../../class/lib/net_4_5 -optimize /noconfig</flags>
       <output>xbuild.exe</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/xbuild_12/xbuild.exe</library_output>
     </project>
     <project dir="tools/xbuild" library="xbuild-xbuild_14">
       <boot></boot>
-      <flags>/codepage:65001 -r:./../../class/lib/xbuild_14/Microsoft.Build.Framework.dll -r:./../../class/lib/xbuild_14/Microsoft.Build.Utilities.Core.dll -r:./../../class/lib/xbuild_14/Microsoft.Build.Engine.dll -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/xbuild_14 -r:mscorlib.dll -debug -d:XBUILD_12 -d:XBUILD_14 -d:MONO -d:DISABLE_CAS_USE -lib:./../../class/lib/net_4_5 -optimize /noconfig</flags>
+      <flags>/codepage:65001 -r:./../../class/lib/xbuild_14/Microsoft.Build.Framework.dll -r:./../../class/lib/xbuild_14/Microsoft.Build.Utilities.Core.dll -r:./../../class/lib/xbuild_14/Microsoft.Build.Engine.dll -r:./../../class/lib/xbuild_14/Microsoft.Build.Tasks.Core.dll -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/xbuild_14 -r:mscorlib.dll -debug -d:XBUILD_12 -d:XBUILD_14 -d:MONO -d:DISABLE_CAS_USE -lib:./../../class/lib/net_4_5 -optimize /noconfig</flags>
       <output>xbuild.exe</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/xbuild_14/xbuild.exe</library_output>
index 415c21b1cb35101af9673996f481659e99eebdde..f72e5934198cd5fa58cbfae02c5b25abb2f80f29 100644 (file)
@@ -5,7 +5,7 @@ noinst_SCRIPTS = mono-wrapper monodis-wrapper
 etctmp = etc
 symlinks = etc/mono/1.0/machine.config etc/mono/2.0/machine.config etc/mono/2.0/web.config etc/mono/browscap.ini etc/mono/2.0/Browsers/Compat.browser
 
-if INSTALL_4_5
+if INSTALL_4_x
 symlinks += etc/mono/4.0/machine.config etc/mono/4.0/web.config etc/mono/4.5/web.config etc/mono/4.5/machine.config etc/mono/4.0/Browsers/Compat.browser etc/mono/4.5/Browsers/Compat.browser
 endif
 
@@ -25,17 +25,11 @@ $(symlinks):
 
 SUPPORT_FILES = $(symlinks) mono-wrapper etc/mono/config
 
-if ONLY_MONOTOUCH
-build_profiles = monotouch
-else
-if ONLY_XAMMAC
-build_profiles = xammac
-else
 build_profiles = 
 
-if INSTALL_4_5
-build_profiles += binary_reference_assemblies net_4_5 xbuild_12 xbuild_14
-al_profile = net_4_5
+if INSTALL_4_x
+build_profiles += binary_reference_assemblies net_4_x xbuild_12 xbuild_14
+al_profile = net_4_x
 endif
 
 if INSTALL_MONODROID
@@ -46,15 +40,16 @@ if INSTALL_MONOTOUCH
 build_profiles += monotouch monotouch_runtime
 endif
 
+if INSTALL_MONOTOUCH_WATCH
+build_profiles += monotouch_watch
+endif
+
 if INSTALL_XAMMAC
-build_profiles += xammac
+build_profiles += xammac xammac_net_4_5
 endif
 
 test_profiles = $(build_profiles)
 
-endif
-endif
-
 if BUILD_MCS
 
 MAKE_FLAGS=$(if $(V),,--no-print-directory -s)
@@ -116,9 +111,9 @@ mcs-compileall: mono-wrapper etc/mono/config
           continue; \
       fi; \
          if [ "xbuild_12" = "$$profile" ]; then \
-                 MONO_PATH="$$mcs_topdir/class/lib/$$profile$(PLATFORM_PATH_SEPARATOR)$$mcs_topdir/class/lib/net_4_5$(PLATFORM_PATH_SEPARATOR)$$save_MONO_PATH"; \
+                 MONO_PATH="$$mcs_topdir/class/lib/$$profile$(PLATFORM_PATH_SEPARATOR)$$mcs_topdir/class/lib/net_4_x$(PLATFORM_PATH_SEPARATOR)$$save_MONO_PATH"; \
          elif [ "xbuild_14" = "$$profile" ]; then \
-                 MONO_PATH="$$mcs_topdir/class/lib/$$profile$(PLATFORM_PATH_SEPARATOR)$$mcs_topdir/class/lib/net_4_5$(PLATFORM_PATH_SEPARATOR)$$save_MONO_PATH"; \
+                 MONO_PATH="$$mcs_topdir/class/lib/$$profile$(PLATFORM_PATH_SEPARATOR)$$mcs_topdir/class/lib/net_4_x$(PLATFORM_PATH_SEPARATOR)$$save_MONO_PATH"; \
          else \
                  MONO_PATH="$$mcs_topdir/class/lib/$$profile$(PLATFORM_PATH_SEPARATOR)$$save_MONO_PATH"; \
          fi; \
@@ -149,7 +144,7 @@ CLEANFILES = etc/mono/config
 # depend on $(symlinks) to ensure 'etc/mono' directory exists
 etc/mono/config: ../data/config Makefile $(symlinks)
        d=`cd ../support && pwd`; \
-       sed 's,target="$(prefix)/$(reloc_libdir)/libMonoPosixHelper$(libsuffix)",target="'$$d'/libMonoPosixHelper.la",' ../data/config > $@t
+       sed 's,target="$$mono_libdir/libMonoPosixHelper$(libsuffix)",target="'$$d'/libMonoPosixHelper.la",' ../data/config > $@t
        if test -z "$(libgdiplus_loc)"; then :; else \
          sed 's,target="$(libgdiplus_install_loc)",target="$(libgdiplus_loc)",' $@t > $@tt; \
          mv -f $@tt $@t; fi
index daa0204872fd02cd37ad869315971341156c7487..f1240c98e551197478b0a59db2a3f63ff1bed782 100644 (file)
@@ -39,7 +39,7 @@ bin_SCRIPTS = \
        mono-heapviz            \
        $(scripts_mono_configuration_crypto)
 
-if INSTALL_4_5
+if INSTALL_4_x
 bin_SCRIPTS += $(scripts_4_0)
 bin_SCRIPTS += dmcs
 bin_SCRIPTS += xbuild
@@ -189,7 +189,7 @@ REWRITE2_DEBUG = $(REWRITE_DEBUG) -e 's,@''framework_version@,2.0,g'
 
 REWRITE2 = $(REWRITE) -e 's,@''framework_version@,2.0,g'
 REWRITE2_1 = $(REWRITE) -e 's,@''framework_version@,2.1,g'
-if INSTALL_4_5
+if INSTALL_4_x
 REWRITE4 = $(REWRITE) -e 's,@''framework_version@,4.5,g'
 REWRITE4_DEBUG = $(REWRITE_DEBUG) -e 's,@''framework_version@,4.5,g'
 endif
index 155690d75adad1c75ec255675b443167bc94089f..5e440ab046bf8a6058aed1214e51a7ecc400234e 100644 (file)
@@ -14,7 +14,7 @@ monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$"))
 
 # Only include files with /gac/ in path
 #  (Allows packages to contain private assemblies that don't conflict with other packages)
-#monolist=($(printf "%s\n" "${monolist[@]}" | egrep "/gac/"))
+monolist=($(printf "%s\n" "${monolist[@]}" | egrep "/gac/"))
 # Disabled... see ChangeLog
 
 # Set the prefix, unless it is overriden (used when building mono rpms)
index 26ee780169183aff8538e23987818f38721356f4..384451da47c4af2149080cad2de18498e7be577b 100644 (file)
@@ -35,7 +35,7 @@ Mono_Posix_Stdlib_SetLastError (int error_number)
  * we assume that the XPG version is present.
  */
 
-#ifdef _GNU_SOURCE
+#ifdef _GNU_SOURCE && !PLATFORM_ANDROID
 #define mph_min(x,y) ((x) <= (y) ? (x) : (y))
 
 /* If you pass an invalid errno value to glibc 2.3.2's strerror_r, you get
@@ -80,7 +80,27 @@ Mono_Posix_Syscall_strerror_r (int errnum, char *buf, mph_size_t n)
        mph_return_if_size_t_overflow (n);
 
        /* first, check for valid errnum */
+#if PLATFORM_ANDROID
+       /* Android NDK defines _GNU_SOURCE but strerror_r follows the XSI semantics
+        * not the GNU one. XSI version returns an integer, as opposed to the GNU one
+        * which returns pointer to the buffer.
+        */
+       if (strerror_r (errnum, ebuf, sizeof(ebuf)) == -1) {
+               /* XSI strerror_r will return -1 if errno is set, but if we leave the value
+                * alone it breaks Mono.Posix StdioFileStream tests, so we'll ignore the value
+                * and set errno as below
+                */
+               errno = EINVAL;
+               return -1;
+       }
+       r = ebuf;
+#else
        r = strerror_r (errnum, ebuf, sizeof(ebuf));
+#endif
+       if (!r) {
+               errno = EINVAL;
+               return -1;
+       } 
        len = strlen (r);
 
        if (r == ebuf ||
index 28146c02611a82acbc253cd4b87f8aaa4ca8db4a..6adf5463878ef2693b8d3ecc101ea5809b88cb28 100644 (file)
@@ -195,6 +195,7 @@ static pthread_mutex_t signals_mutex = PTHREAD_MUTEX_INITIALIZER;
 void*
 Mono_Unix_UnixSignal_install (int sig)
 {
+#if defined(HAVE_SIGNAL)
        int i;
        signal_info* h = NULL; 
        int have_handler = 0;
@@ -252,6 +253,10 @@ Mono_Unix_UnixSignal_install (int sig)
        release_mutex (&signals_mutex);
 
        return h;
+#else
+       g_error ("signal() is not supported by this platform");
+       return 0;
+#endif
 }
 
 static int
@@ -269,6 +274,7 @@ count_handlers (int signum)
 int
 Mono_Unix_UnixSignal_uninstall (void* info)
 {
+#if defined(HAVE_SIGNAL)       
        signal_info* h;
        int r = -1;
 
@@ -294,6 +300,10 @@ Mono_Unix_UnixSignal_uninstall (void* info)
        release_mutex (&signals_mutex);
 
        return r;
+#else
+       g_error ("signal() is not supported by this platform");
+       return 0;
+#endif
 }
 
 static int
index 17d8a32c1625d1578a296638a719fb9002364a18..a8ec6d2f0e7771fcc9cd864db8fc221a66c884ff 100644 (file)
@@ -1000,6 +1000,12 @@ namespace Mono.Tools.LocaleBuilder
                                nodes = node.SelectNodes ("months/monthContext[@type='stand-alone']/monthWidth[@type='wide']/month");
                                ProcessAllNodes (nodes, df.MonthNames, AddOrReplaceValue);
 
+                               if (df.MonthNames != null) {
+                                       if (ci.Name == "sv" || ci.Name == "sv-SE") {
+                                               ToLower (df.MonthNames);
+                                       }
+                               }
+
                                // Apply global rule first <alias source="locale" path="../../monthContext[@type='format']/monthWidth[@type='abbreviated']"/>
                                if (ci.Name == "ja" || ci.Name == "ja-JP") {
                                        // Use common number style
@@ -1010,6 +1016,12 @@ namespace Mono.Tools.LocaleBuilder
                                        ProcessAllNodes (nodes, df.AbbreviatedMonthNames, AddOrReplaceValue);
                                }
 
+                               if (df.AbbreviatedMonthNames != null) {
+                                       if (ci.Name == "sv" || ci.Name == "sv-SE") {
+                                               ToLower (df.AbbreviatedMonthNames);
+                                       }
+                               }
+
                                nodes = node.SelectNodes ("months/monthContext[@type='format']/monthWidth[@type='wide']/month");
                                if (nodes != null) {
                                        ProcessAllNodes (nodes, df.MonthGenitiveNames, AddOrReplaceValue);
@@ -1027,6 +1039,12 @@ namespace Mono.Tools.LocaleBuilder
                                nodes = node.SelectNodes ("days/dayContext[@type='stand-alone']/dayWidth[@type='abbreviated']/day");
                                ProcessAllNodes (nodes, df.AbbreviatedDayNames, AddOrReplaceDayValue);
 
+                               if (df.AbbreviatedDayNames != null) {
+                                       if (ci.Name == "sv" || ci.Name == "sv-SE") {
+                                               ToLower (df.AbbreviatedDayNames);
+                                       }
+                               }
+
                                // TODO: This is not really ShortestDayNames as .NET uses it
                                // Apply global rules first <alias source="locale" path="../../dayContext[@type='stand-alone']/dayWidth[@type='narrow']"/>
                                nodes = node.SelectNodes ("days/dayContext[@type='format']/dayWidth[@type='narrow']/day");
@@ -1171,6 +1189,19 @@ namespace Mono.Tools.LocaleBuilder
                        }
                }
 
+               static void ToLower (string[] values)
+               {
+                       if (values == null)
+                               return;
+
+                       for (int i = 0; i < values.Length; ++i) {
+                               if (values [i] == null)
+                                       continue;
+
+                               values [i] = values [i].ToLower ();
+                       }
+               }
+
                string GetInfinitySymbol (CultureInfoEntry ci)
                {
                        // TODO: Add more
index cbb134e68bbf453f9512c3056e6c78a864490c88..27e774f066cf401299ef8f9e2b699ce92e12de44 100644 (file)
@@ -97,6 +97,9 @@
 /* Define to 1 if you have the <complex.h> header file. */
 #define HAVE_COMPLEX_H 1
 
+/* Define to 1 if you have the `system' function. */
+#define HAVE_SYSTEM 1
+
 /* Have /dev/random */
 #define HAVE_CRYPT_RNG 1
 
 /* Using the simple generational GC. */
 /* #undef HAVE_SGEN_GC */
 
+ /* Have signal */
+#define HAVE_SIGNAL 1
+
 /* Have signbit */
 /* #undef HAVE_SIGNBIT */